From ab4d4af7f8dca8c321af46568361bff2f016ea63 Mon Sep 17 00:00:00 2001 From: alfrix Date: Thu, 1 Dec 2022 20:09:37 -0300 Subject: [PATCH] tweak image size of buttons with side labes or no label --- ks_includes/KlippyGtk.py | 16 ++++++++++++---- ks_includes/screen_panel.py | 7 +------ panels/base_panel.py | 11 ++++++----- panels/bed_mesh.py | 10 +++++----- panels/fan.py | 4 ++-- panels/temperature.py | 6 +++--- 6 files changed, 29 insertions(+), 25 deletions(-) diff --git a/ks_includes/KlippyGtk.py b/ks_includes/KlippyGtk.py index 06da58c8..3da3e316 100644 --- a/ks_includes/KlippyGtk.py +++ b/ks_includes/KlippyGtk.py @@ -34,20 +34,26 @@ class KlippyGtk: self.themedir = os.path.join(pathlib.Path(__file__).parent.resolve().parent, "styles", theme, "images") self.cursor = cursor self.font_size_type = fontsize_type - self.font_ratio = [33, 49] if self.screen.vertical_mode else [43, 29] self.font_size = min(self.width / self.font_ratio[0], self.height / self.font_ratio[1]) self.img_scale = self.font_size * 2 + self.button_image_scale = 1.38 + self.bsidescale = .65 # Buttons with image at the side + if fontsize_type == "max": self.font_size = self.font_size * 1.2 + self.bsidescale = .7 elif fontsize_type == "extralarge": self.font_size = self.font_size * 1.14 - self.img_scale = self.img_scale * 0.6 + self.img_scale = self.img_scale * 0.7 + self.bsidescale = 1 elif fontsize_type == "large": self.font_size = self.font_size * 1.09 self.img_scale = self.img_scale * 0.9 + self.bsidescale = .8 elif fontsize_type == "small": self.font_size = self.font_size * 0.91 + self.bsidescale = .55 self.img_width = self.font_size * 3 self.img_height = self.font_size * 3 self.titlebar_height = self.font_size * 2 @@ -155,8 +161,8 @@ class KlippyGtk: stream.close_async(2) return pixbuf - def Button(self, image_name=None, label=None, style=None, scale=1.38, position=Gtk.PositionType.TOP, lines=2): - if self.font_size_type == "max" and label is not None and scale == 1.38: + def Button(self, image_name=None, label=None, style=None, scale=None, position=Gtk.PositionType.TOP, lines=2): + if self.font_size_type == "max" and label is not None and scale is None: image_name = None b = Gtk.Button() if label is not None: @@ -165,6 +171,8 @@ class KlippyGtk: b.set_vexpand(True) b.set_can_focus(False) if image_name is not None: + if scale is None: + scale = self.button_image_scale if label is None: scale = scale * 1.5 width = height = self.img_scale * scale diff --git a/ks_includes/screen_panel.py b/ks_includes/screen_panel.py index 7b2327f8..31db17b4 100644 --- a/ks_includes/screen_panel.py +++ b/ks_includes/screen_panel.py @@ -33,12 +33,7 @@ class ScreenPanel: self.content.set_hexpand(True) self.content.set_vexpand(True) self._show_heater_power = self._config.get_main_config().getboolean('show_heater_power', False) - if self._gtk.font_size_type == "extralarge": - self.bts = 1 - elif self._gtk.font_size_type == "large": - self.bts = .7 - else: - self.bts = .5 + self.bts = self._gtk.bsidescale self.update_dialog = None diff --git a/panels/base_panel.py b/panels/base_panel.py index 9e42dc6a..ac6f609a 100644 --- a/panels/base_panel.py +++ b/panels/base_panel.py @@ -28,22 +28,23 @@ class BasePanel(ScreenPanel): } self.current_extruder = None # Action bar buttons - self.control['back'] = self._gtk.Button('back', scale=self.bts) + abscale = self.bts * 1.1 + self.control['back'] = self._gtk.Button('back', scale=abscale) self.control['back'].connect("clicked", self.back) - self.control['home'] = self._gtk.Button('main', scale=self.bts) + self.control['home'] = self._gtk.Button('main', scale=abscale) self.control['home'].connect("clicked", self._screen._menu_go_back, True) if len(self._config.get_printers()) > 1: - self.control['printer_select'] = self._gtk.Button('shuffle', scale=self.bts) + self.control['printer_select'] = self._gtk.Button('shuffle', scale=abscale) self.control['printer_select'].connect("clicked", self._screen.show_printer_select) - self.control['macros_shortcut'] = self._gtk.Button('custom-script', scale=self.bts) + self.control['macros_shortcut'] = self._gtk.Button('custom-script', scale=abscale) self.control['macros_shortcut'].connect("clicked", self.menu_item_clicked, "gcode_macros", { "name": "Macros", "panel": "gcode_macros" }) - self.control['estop'] = self._gtk.Button('emergency', scale=self.bts) + self.control['estop'] = self._gtk.Button('emergency', scale=abscale) self.control['estop'].connect("clicked", self.emergency_stop) # Any action bar button should close the keyboard diff --git a/panels/bed_mesh.py b/panels/bed_mesh.py index bef3c9ae..bb32186e 100644 --- a/panels/bed_mesh.py +++ b/panels/bed_mesh.py @@ -23,9 +23,9 @@ class BedMeshPanel(ScreenPanel): self.active_mesh = None self.profiles = {} self.buttons = { - 'add': self._gtk.Button("increase", " " + _("Add profile"), "color1", .66, Gtk.PositionType.LEFT, 1), - 'calib': self._gtk.Button("refresh", " " + _("Calibrate"), "color3", .66, Gtk.PositionType.LEFT, 1), - 'clear': self._gtk.Button("cancel", " " + _("Clear"), "color2", .66, Gtk.PositionType.LEFT, 1), + 'add': self._gtk.Button("increase", " " + _("Add profile"), "color1", self.bts, Gtk.PositionType.LEFT, 1), + 'calib': self._gtk.Button("refresh", " " + _("Calibrate"), "color3", self.bts, Gtk.PositionType.LEFT, 1), + 'clear': self._gtk.Button("cancel", " " + _("Clear"), "color2", self.bts, Gtk.PositionType.LEFT, 1), } self.buttons['add'].connect("clicked", self.show_create_profile) self.buttons['add'].set_hexpand(True) @@ -125,8 +125,8 @@ class BedMeshPanel(ScreenPanel): name.connect("clicked", self.update_graph, profile) buttons = { - "save": self._gtk.Button("complete", None, "color4", .75), - "delete": self._gtk.Button("cancel", None, "color2", .75), + "save": self._gtk.Button("complete", None, "color4", self.bts), + "delete": self._gtk.Button("cancel", None, "color2", self.bts), } buttons["save"].connect("clicked", self.send_save_mesh, profile) buttons["delete"].connect("clicked", self.send_remove_mesh, profile) diff --git a/panels/fan.py b/panels/fan.py index feabeac1..7dc74a89 100644 --- a/panels/fan.py +++ b/panels/fan.py @@ -72,10 +72,10 @@ class FanPanel(ScreenPanel): name.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR) fan_col = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5) - stop_btn = self._gtk.Button("cancel", None, "color1", 1) + stop_btn = self._gtk.Button("cancel", None, "color1") stop_btn.set_hexpand(False) stop_btn.connect("clicked", self.update_fan_speed, fan, 0) - max_btn = self._gtk.Button("fan-on", _("Max"), "color2", 1) + max_btn = self._gtk.Button("fan-on", _("Max"), "color2") max_btn.set_hexpand(False) max_btn.connect("clicked", self.update_fan_speed, fan, 100) diff --git a/panels/temperature.py b/panels/temperature.py index c9adebe3..b2a12fdc 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -68,7 +68,7 @@ class TemperaturePanel(ScreenPanel): def create_right_panel(self): cooldown = self._gtk.Button('cool-down', _('Cooldown'), "color4", self.bts, Gtk.PositionType.LEFT, 1) - adjust = self._gtk.Button('fine-tune', None, "color3", self.bts, Gtk.PositionType.LEFT, 1) + adjust = self._gtk.Button('fine-tune', None, "color3", self.bts * 1.4, Gtk.PositionType.LEFT, 1) cooldown.connect("clicked", self.set_temperature, "cooldown") adjust.connect("clicked", self.switch_preheat_adjust) @@ -106,9 +106,9 @@ class TemperaturePanel(ScreenPanel): def delta_adjust(self): deltagrid = self._gtk.HomogeneousGrid() - self.labels["increase"] = self._gtk.Button("increase", _("Increase"), "color1") + self.labels["increase"] = self._gtk.Button("increase", None, "color1") self.labels["increase"].connect("clicked", self.change_target_temp_incremental, "+") - self.labels["decrease"] = self._gtk.Button("decrease", _("Decrease"), "color3") + self.labels["decrease"] = self._gtk.Button("decrease", None, "color3") self.labels["decrease"].connect("clicked", self.change_target_temp_incremental, "-") tempgrid = Gtk.Grid()