Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-row functionality #928

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open

Conversation

Avid29
Copy link

@Avid29 Avid29 commented Oct 17, 2024

Still a work in progress, but here's some screenshots:

image
image
image

@Avid29 Avid29 marked this pull request as draft October 17, 2024 04:33
@Avid29
Copy link
Author

Avid29 commented Oct 17, 2024

Remaining tasks

  • Swap to large icon when the row count is greater than 1 (see Vista)
  • Fix unlocked mode glitches (especially prominent in XP Blue based styles)
  • Remove rounded corners when unlocked (side effect of ResizingMode="CanResize").
  • Keep row count in settings
  • Adjust style properties to explicitly handle row heights instead of assuming each row doubles the taskbar height
  • Allow resizing on sides and top

(Many were hot-fixed by replacing drag functionality with a settings option)

@Avid29
Copy link
Author

Avid29 commented Oct 17, 2024

Here's every taskbar with 2 rows:

System
image

System XP
image

Watercolor
image

Windows 2000
image

Windows 95-98
image

Windows Longhorn Aero
image

Windows Me
image

Windows Vista Aero
image

Windows Vista Basic
image

Windows Vista Classic
image

Windows XP Blue
image

Windows XP Classic
image

Windows XP Embedded
image

Windows XP Olive Green
image

Windows XP Royale Noir
image

Windows XP Royale
image

Windows XP Silver
image

Windows XP Zune
image

@Avid29 Avid29 marked this pull request as ready for review October 17, 2024 07:02
@Avid29 Avid29 changed the title Resizable taskbar Multi-row functionality Oct 17, 2024
@Avid29
Copy link
Author

Avid29 commented Oct 17, 2024

Small update. The toolbar is now vertically centered (on every taskbar)

image

@dremin
Copy link
Owner

dremin commented Oct 17, 2024

Hey, thanks, this is looking great so far! I am going to try to take a deeper look at this soon.

Copy link
Owner

@dremin dremin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great start! In addition to the items within the review comments, I noticed a few layout correctness issues:

  1. Within the Toolbar and the NotifyIconList controls: The WrapPanel within should have its Orientation property changed to Vertical when the taskbar is in a horizontal orientation and has more than 1 row. It should remain Horizontal otherwise.
  2. The classic Start button should not stretch vertically, it should keep its height and be aligned to the top. The XP start buttons should also be top aligned.
  3. For the XP and newer themes, the clock should change to the extended format that is used when in a vertical orientation.

I didn't pixel peep so there may be some other minor issues to address as well, but let's see how it looks after these changes! :)

Comment on lines 232 to 240
<DockPanel>
<Label VerticalAlignment="Center"
Target="{Binding ElementName=cboEdgeSelect}">
<AccessText Text="{DynamicResource rowcount_text}"
ToolTip="{DynamicResource rowcount_tip}" />
</Label>
<ComboBox ItemsSource="{DynamicResource rowcount_options}"
SelectedValue="{Binding Source={x:Static Settings:Settings.Instance}, Path=RowCount, UpdateSourceTrigger=PropertyChanged}" />
</DockPanel>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Since this does not affect vertical taskbars, lets disable it when the the Location is left or right.
  2. I think this would look better placed below the Location combobox.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want it disabled or hidden?

Comment on lines 16 to 18
<WindowChrome.WindowChrome>
<WindowChrome x:Name="Chrome" CaptionHeight="0" CornerRadius="0"/>
</WindowChrome.WindowChrome>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is needed as it stands, and it currently breaks ClearType, so let's remove it.

DesiredWidth = Settings.Instance.TaskbarScale * (Application.Current.FindResource("TaskbarWidth") as double? ?? 0);
DesiredHeight = DesiredRowHeight * Rows;
MinHeight = DesiredRowHeight;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MinHeight doesn't seem to be needed, so I think it should be removed. Also, since it isn't being updated in RecalculateSize(), things break :)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry. Another hold over from drag resizing

}
}

private void UpdateResizingOptions()
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove all the commented out stuff for now.

Comment on lines 966 to 967
<Setter Property="VerticalAlignment"
Value="Center"/>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't correct, the toolbars should keep their existing alignment. However, there is another related change that will need to be made for correctness, that I will comment separately on.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't tray icons be aligned at top as well, like quick launch?

@Avid29
Copy link
Author

Avid29 commented Oct 18, 2024

Alignment changes made
image
image
image

@Avid29
Copy link
Author

Avid29 commented Oct 18, 2024

I added the expanded clock, and it works great for System XP and Vista, but the padding is a bit messed up (especially on XP Blue)

image
image
image

@Avid29
Copy link
Author

Avid29 commented Oct 18, 2024

I added the vertical orientation adjustment:
image
image

Based on this I have two proposals

  • Add padding
  • Flip the FlowDirection (and item order?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants