Skip to content

Commit

Permalink
Added support for scaling window toolbar
Browse files Browse the repository at this point in the history
  • Loading branch information
proneon267 committed Nov 3, 2023
1 parent 6f8019c commit 407156e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
2 changes: 2 additions & 0 deletions winforms/src/toga_winforms/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,8 @@ def hide_cursor(self):
def winforms_DisplaySettingsChanged(self, sender, event):
for window in self.interface.windows:
window._impl.update_scale()
if window._impl.toolbar_native is not None:
window._impl.update_toolbar_font_scale()
if isinstance(window._impl, MainWindow):
window._impl.update_menubar_font_scale()
for widget in window.widgets:
Expand Down
12 changes: 10 additions & 2 deletions winforms/src/toga_winforms/window.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import System.Windows.Forms as WinForms
from System.Drawing import Bitmap, Graphics, Point, Size
from System.Drawing import Bitmap, Font as WinFont, Graphics, Point, Size
from System.Drawing.Imaging import ImageFormat
from System.IO import MemoryStream

Expand Down Expand Up @@ -72,13 +72,21 @@ def create_toolbar(self):
item.Click += WeakrefCallable(cmd._impl.winforms_handler)
cmd._impl.native.append(item)
self.toolbar_native.Items.Add(item)

self.original_toolbar_font = self.toolbar_native.Font
elif self.toolbar_native:
self.native.Controls.Remove(self.toolbar_native)
self.toolbar_native = None

self.resize_content()

def update_toolbar_font_scale(self):
if self.toolbar_native is not None:
self.toolbar_native.Font = WinFont(
self.original_toolbar_font.FontFamily,
self.scale_font(self.original_toolbar_font.Size),
self.original_toolbar_font.Style,
)

def get_position(self):
location = self.native.Location
return tuple(map(self.scale_out, (location.X, location.Y)))
Expand Down

0 comments on commit 407156e

Please sign in to comment.