settings: add extra large font close #798

This commit is contained in:
alfrix 2022-11-20 18:44:00 -03:00
parent fa10b00db7
commit 054523d937
6 changed files with 54 additions and 40 deletions

View File

@ -18,37 +18,40 @@ class KlippyGtk:
self.width = width self.width = width
self.height = height self.height = height
self.themedir = os.path.join(pathlib.Path(__file__).parent.resolve().parent, "styles", theme, "images") 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_ratio = [33, 49] if self.screen.vertical_mode else [43, 29]
self.font_size = int(min( self.font_size = min(self.width / self.font_ratio[0], self.height / self.font_ratio[1])
self.width / self.font_ratio[0], self.img_scale = self.font_size * 2
self.height / self.font_ratio[1] if fontsize_type == "max":
)) self.font_size = self.font_size * 1.2
if fontsize_type == "small": elif fontsize_type == "extralarge":
self.font_size = round(self.font_size * 0.91) self.font_size = self.font_size * 1.14
self.img_scale = self.img_scale * 0.6
elif fontsize_type == "large": elif fontsize_type == "large":
self.font_size = round(self.font_size * 1.09) self.font_size = self.font_size * 1.09
self.titlebar_height = self.font_size * 2 self.img_scale = self.img_scale * 0.9
self.img_scale = self.font_size * 2.5 elif fontsize_type == "small":
self.font_size = self.font_size * 0.91
self.img_width = self.font_size * 3 self.img_width = self.font_size * 3
self.img_height = self.font_size * 3 self.img_height = self.font_size * 3
self.titlebar_height = self.font_size * 2
logging.info(f"Font size: {self.font_size} ({fontsize_type})")
if self.screen.vertical_mode: if self.screen.vertical_mode:
self.action_bar_width = int(self.width) self.action_bar_width = int(self.width)
self.action_bar_height = int(self.height * .1) self.action_bar_height = int(self.height * .1)
else: else:
self.action_bar_width = int(self.width * .1) self.action_bar_width = int(self.width * .1)
self.action_bar_height = int(self.height) self.action_bar_height = int(self.height)
self.cursor = cursor
self.color_list = {} # This is set by screen.py init_style() self.color_list = {} # This is set by screen.py init_style()
for key in self.color_list: for key in self.color_list:
if "base" in self.color_list[key]: if "base" in self.color_list[key]:
rgb = [int(self.color_list[key]['base'][i:i + 2], 16) for i in range(0, 6, 2)] rgb = [int(self.color_list[key]['base'][i:i + 2], 16) for i in range(0, 6, 2)]
self.color_list[key]['rgb'] = rgb self.color_list[key]['rgb'] = rgb
logging.debug(f"img width: {self.img_width} height: {self.img_height}")
def get_action_bar_width(self): def get_action_bar_width(self):
return self.action_bar_width return self.action_bar_width
@ -150,6 +153,8 @@ class KlippyGtk:
return b return b
def ButtonImage(self, image_name=None, label=None, style=None, scale=1.38, position=Gtk.PositionType.TOP, lines=2): def ButtonImage(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:
image_name = None
b = Gtk.Button() b = Gtk.Button()
if label is not None: if label is not None:
b.set_label(label.replace("\n", " ")) b.set_label(label.replace("\n", " "))

View File

@ -241,7 +241,9 @@ class KlipperScreenConfig:
"value": "medium", "callback": screen.restart_warning, "options": [ "value": "medium", "callback": screen.restart_warning, "options": [
{"name": _("Small"), "value": "small"}, {"name": _("Small"), "value": "small"},
{"name": _("Medium") + " " + _("(default)"), "value": "medium"}, {"name": _("Medium") + " " + _("(default)"), "value": "medium"},
{"name": _("Large"), "value": "large"}]}}, {"name": _("Large"), "value": "large"},
{"name": _("Extra Large"), "value": "extralarge"},
{"name": _("Maximum"), "value": "max"}]}},
{"confirm_estop": {"section": "main", "name": _("Confirm Emergency Stop"), "type": "binary", {"confirm_estop": {"section": "main", "name": _("Confirm Emergency Stop"), "type": "binary",
"value": "False"}}, "value": "False"}},
{"only_heaters": {"section": "main", "name": _("Hide sensors in Temp."), "type": "binary", {"only_heaters": {"section": "main", "name": _("Hide sensors in Temp."), "type": "binary",
@ -486,7 +488,7 @@ class KlipperScreenConfig:
f"{self.do_not_edit_line}\n" f"{self.do_not_edit_line}\n"
f"{self.do_not_edit_prefix}\n" f"{self.do_not_edit_prefix}\n"
+ '\n'.join(save_output) + f"\n" + '\n'.join(save_output) + f"\n"
f"{self.do_not_edit_prefix}\n") f"{self.do_not_edit_prefix}\n")
if self.config_path != self.default_config_path: if self.config_path != self.default_config_path:
filepath = self.config_path filepath = self.config_path

View File

@ -30,22 +30,23 @@ class BasePanel(ScreenPanel):
} }
self.current_extruder = None self.current_extruder = None
# Action bar buttons # Action bar buttons
self.control['back'] = self._gtk.ButtonImage('back', scale=1) scale = 1.5 if self._gtk.font_size_type == "extralarge" else 1
self.control['back'] = self._gtk.ButtonImage('back', scale=scale)
self.control['back'].connect("clicked", self.back) self.control['back'].connect("clicked", self.back)
self.control['home'] = self._gtk.ButtonImage('main', scale=1) self.control['home'] = self._gtk.ButtonImage('main', scale=scale)
self.control['home'].connect("clicked", self.menu_return, True) self.control['home'].connect("clicked", self.menu_return, True)
if len(self._config.get_printers()) > 1: if len(self._config.get_printers()) > 1:
self.control['printer_select'] = self._gtk.ButtonImage('shuffle', scale=1) self.control['printer_select'] = self._gtk.ButtonImage('shuffle', scale=scale)
self.control['printer_select'].connect("clicked", self._screen.show_printer_select) self.control['printer_select'].connect("clicked", self._screen.show_printer_select)
self.control['macros_shortcut'] = self._gtk.ButtonImage('custom-script', scale=1) self.control['macros_shortcut'] = self._gtk.ButtonImage('custom-script', scale=scale)
self.control['macros_shortcut'].connect("clicked", self.menu_item_clicked, "gcode_macros", { self.control['macros_shortcut'].connect("clicked", self.menu_item_clicked, "gcode_macros", {
"name": "Macros", "name": "Macros",
"panel": "gcode_macros" "panel": "gcode_macros"
}) })
self.control['estop'] = self._gtk.ButtonImage('emergency', scale=1) self.control['estop'] = self._gtk.ButtonImage('emergency', scale=scale)
self.control['estop'].connect("clicked", self.emergency_stop) self.control['estop'].connect("clicked", self.emergency_stop)
# Any action bar button should close the keyboard # Any action bar button should close the keyboard
@ -122,7 +123,10 @@ class BasePanel(ScreenPanel):
if not show or self._screen.printer.get_temp_store_devices() is None: if not show or self._screen.printer.get_temp_store_devices() is None:
return return
img_size = self._gtk.img_scale * .5 if self._gtk.font_size_type == "extralarge":
img_size = self._gtk.img_scale * .75
else:
img_size = self._gtk.img_scale * .5
for device in self._screen.printer.get_temp_store_devices(): for device in self._screen.printer.get_temp_store_devices():
self.labels[device] = Gtk.Label(label="100º") self.labels[device] = Gtk.Label(label="100º")
self.labels[device].set_ellipsize(Pango.EllipsizeMode.START) self.labels[device].set_ellipsize(Pango.EllipsizeMode.START)

View File

@ -48,6 +48,7 @@ class JobStatusPanel(ScreenPanel):
self.progress = self.zoffset = self.flowrate = self.vel = 0 self.progress = self.zoffset = self.flowrate = self.vel = 0
self.main_status_displayed = True self.main_status_displayed = True
self.velstore = self.flowstore = [] self.velstore = self.flowstore = []
self.bt_scale = 1 if self._gtk.font_size_type == "extralarge" else .6
data = ['pos_x', 'pos_y', 'pos_z', 'time_left', 'duration', 'slicer_time', 'file_time', data = ['pos_x', 'pos_y', 'pos_z', 'time_left', 'duration', 'slicer_time', 'file_time',
'filament_time', 'est_time', 'speed_factor', 'req_speed', 'max_accel', 'extrude_factor', 'zoffset', 'filament_time', 'est_time', 'speed_factor', 'req_speed', 'max_accel', 'extrude_factor', 'zoffset',
@ -152,8 +153,8 @@ class JobStatusPanel(ScreenPanel):
if self._screen.printer.get_tools(): if self._screen.printer.get_tools():
for i, extruder in enumerate(self._printer.get_tools()): for i, extruder in enumerate(self._printer.get_tools()):
self.labels[extruder] = Gtk.Label("-") self.labels[extruder] = Gtk.Label("-")
self.extruder_button[extruder] = self._gtk.ButtonImage(f"extruder-{i}", self.extruder_button[extruder] = self._gtk.ButtonImage(f"extruder-{i}", None, None, self.bt_scale,
None, None, .6, Gtk.PositionType.LEFT) Gtk.PositionType.LEFT)
self.extruder_button[extruder].set_label(self.labels[extruder].get_text()) self.extruder_button[extruder].set_label(self.labels[extruder].get_text())
self.extruder_button[extruder].connect("clicked", self.menu_item_clicked, "temperature", self.extruder_button[extruder].connect("clicked", self.menu_item_clicked, "temperature",
{"panel": "temperature", "name": _("Temperature")}) {"panel": "temperature", "name": _("Temperature")})
@ -165,8 +166,8 @@ class JobStatusPanel(ScreenPanel):
self.current_extruder = None self.current_extruder = None
self.heater_button = {} self.heater_button = {}
if self._printer.has_heated_bed(): if self._printer.has_heated_bed():
self.heater_button['heater_bed'] = self._gtk.ButtonImage("bed", self.heater_button['heater_bed'] = self._gtk.ButtonImage("bed", None, None, self.bt_scale,
None, None, .6, Gtk.PositionType.LEFT) Gtk.PositionType.LEFT)
self.labels['heater_bed'] = Gtk.Label("-") self.labels['heater_bed'] = Gtk.Label("-")
self.heater_button['heater_bed'].set_label(self.labels['heater_bed'].get_text()) self.heater_button['heater_bed'].set_label(self.labels['heater_bed'].get_text())
self.heater_button['heater_bed'].connect("clicked", self.menu_item_clicked, "temperature", self.heater_button['heater_bed'].connect("clicked", self.menu_item_clicked, "temperature",
@ -178,8 +179,8 @@ class JobStatusPanel(ScreenPanel):
if n >= nlimit: if n >= nlimit:
break break
if device.startswith("heater_generic"): if device.startswith("heater_generic"):
self.heater_button[device] = self._gtk.ButtonImage("heater", self.heater_button[device] = self._gtk.ButtonImage("heater", None, None, self.bt_scale,
None, None, .6, Gtk.PositionType.LEFT) Gtk.PositionType.LEFT)
self.labels[device] = Gtk.Label("-") self.labels[device] = Gtk.Label("-")
self.heater_button[device].set_label(self.labels[device].get_text()) self.heater_button[device].set_label(self.labels[device].get_text())
self.heater_button[device].connect("clicked", self.menu_item_clicked, "temperature", self.heater_button[device].connect("clicked", self.menu_item_clicked, "temperature",
@ -203,7 +204,7 @@ class JobStatusPanel(ScreenPanel):
nlimit += 1 nlimit += 1
if n >= nlimit: if n >= nlimit:
break break
self.heater_button[device] = self._gtk.ButtonImage("heat-up", None, None, .6, self.heater_button[device] = self._gtk.ButtonImage("heat-up", None, None, self.bt_scale,
Gtk.PositionType.LEFT) Gtk.PositionType.LEFT)
self.labels[device] = Gtk.Label("-") self.labels[device] = Gtk.Label("-")
self.heater_button[device].set_label(self.labels[device].get_text()) self.heater_button[device].set_label(self.labels[device].get_text())
@ -214,33 +215,35 @@ class JobStatusPanel(ScreenPanel):
n += 1 n += 1
break break
self.z_button = self._gtk.ButtonImage("home-z", None, None, .6, Gtk.PositionType.LEFT) self.z_button = self._gtk.ButtonImage("home-z", None, None, self.bt_scale, Gtk.PositionType.LEFT)
self.z_button.set_label(self.labels['pos_z'].get_text()) self.z_button.set_label(self.labels['pos_z'].get_text())
self.z_button.connect("clicked", self.create_move_grid) self.z_button.connect("clicked", self.create_move_grid)
self.z_button.set_halign(Gtk.Align.START) self.z_button.set_halign(Gtk.Align.START)
self.speed_button = self._gtk.ButtonImage("speed+", None, None, .6, Gtk.PositionType.LEFT) self.speed_button = self._gtk.ButtonImage("speed+", None, None, self.bt_scale, Gtk.PositionType.LEFT)
self.speed_button.set_label(self.labels['speed_factor'].get_text()) self.speed_button.set_label(self.labels['speed_factor'].get_text())
self.speed_button.connect("clicked", self.create_move_grid) self.speed_button.connect("clicked", self.create_move_grid)
self.speed_button.set_halign(Gtk.Align.START) self.speed_button.set_halign(Gtk.Align.START)
self.extrusion_button = self._gtk.ButtonImage("extrude", None, None, .6, Gtk.PositionType.LEFT) self.extrusion_button = self._gtk.ButtonImage("extrude", None, None, self.bt_scale, Gtk.PositionType.LEFT)
self.extrusion_button.set_label(self.labels['extrude_factor'].get_text()) self.extrusion_button.set_label(self.labels['extrude_factor'].get_text())
self.extrusion_button.connect("clicked", self.create_extrusion_grid) self.extrusion_button.connect("clicked", self.create_extrusion_grid)
self.extrusion_button.set_halign(Gtk.Align.START) self.extrusion_button.set_halign(Gtk.Align.START)
self.fan_button = self._gtk.ButtonImage("fan", None, None, .6, Gtk.PositionType.LEFT) self.fan_button = self._gtk.ButtonImage("fan", None, None, self.bt_scale, Gtk.PositionType.LEFT)
self.fan_button.set_label(self.labels['fan'].get_text()) self.fan_button.set_label(self.labels['fan'].get_text())
self.fan_button.connect("clicked", self.menu_item_clicked, "fan", {"panel": "fan", "name": _("Fan")}) self.fan_button.connect("clicked", self.menu_item_clicked, "fan", {"panel": "fan", "name": _("Fan")})
self.fan_button.set_halign(Gtk.Align.START) self.fan_button.set_halign(Gtk.Align.START)
elapsed_label = self.labels['elapsed'].get_text() + " " + self.labels['duration'].get_text() elapsed_label = self.labels['elapsed'].get_text() + " " + self.labels['duration'].get_text()
self.elapsed_button = self._gtk.ButtonImage("clock", elapsed_label, None, .6, Gtk.PositionType.LEFT, False) self.elapsed_button = self._gtk.ButtonImage("clock", elapsed_label, None,
self.bt_scale, Gtk.PositionType.LEFT, False)
self.elapsed_button.connect("clicked", self.create_time_grid) self.elapsed_button.connect("clicked", self.create_time_grid)
self.elapsed_button.set_halign(Gtk.Align.START) self.elapsed_button.set_halign(Gtk.Align.START)
remaining_label = self.labels['left'].get_text() + " " + self.labels['time_left'].get_text() remaining_label = self.labels['left'].get_text() + " " + self.labels['time_left'].get_text()
self.left_button = self._gtk.ButtonImage("hourglass", remaining_label, None, .6, Gtk.PositionType.LEFT, False) self.left_button = self._gtk.ButtonImage("hourglass", remaining_label,
None, self.bt_scale, Gtk.PositionType.LEFT, False)
self.left_button.connect("clicked", self.create_time_grid) self.left_button.connect("clicked", self.create_time_grid)
self.left_button.set_halign(Gtk.Align.START) self.left_button.set_halign(Gtk.Align.START)
@ -262,7 +265,7 @@ class JobStatusPanel(ScreenPanel):
def create_extrusion_grid(self, widget=None): def create_extrusion_grid(self, widget=None):
self.main_status_displayed = False self.main_status_displayed = False
goback = self._gtk.ButtonImage("back", None, "color1", .66, Gtk.PositionType.TOP, False) goback = self._gtk.ButtonImage("back", None, "color1", self.bt_scale, Gtk.PositionType.TOP, False)
goback.connect("clicked", self.create_status_grid) goback.connect("clicked", self.create_status_grid)
goback.set_hexpand(False) goback.set_hexpand(False)
goback.get_style_context().add_class("printing-info") goback.get_style_context().add_class("printing-info")
@ -287,7 +290,7 @@ class JobStatusPanel(ScreenPanel):
def create_move_grid(self, widget=None): def create_move_grid(self, widget=None):
self.main_status_displayed = False self.main_status_displayed = False
goback = self._gtk.ButtonImage("back", None, "color2", .66, Gtk.PositionType.TOP, False) goback = self._gtk.ButtonImage("back", None, "color2", self.bt_scale, Gtk.PositionType.TOP, False)
goback.connect("clicked", self.create_status_grid) goback.connect("clicked", self.create_status_grid)
goback.set_hexpand(False) goback.set_hexpand(False)
goback.get_style_context().add_class("printing-info") goback.get_style_context().add_class("printing-info")
@ -318,7 +321,7 @@ class JobStatusPanel(ScreenPanel):
def create_time_grid(self, widget=None): def create_time_grid(self, widget=None):
self.main_status_displayed = False self.main_status_displayed = False
goback = self._gtk.ButtonImage("back", None, "color3", .66, Gtk.PositionType.TOP, False) goback = self._gtk.ButtonImage("back", None, "color3", self.bt_scale, Gtk.PositionType.TOP, False)
goback.connect("clicked", self.create_status_grid) goback.connect("clicked", self.create_status_grid)
goback.set_hexpand(False) goback.set_hexpand(False)

View File

@ -70,7 +70,7 @@ class TemperaturePanel(ScreenPanel):
def create_right_panel(self): def create_right_panel(self):
cooldown = self._gtk.ButtonImage('cool-down', _('Cooldown'), "color4", .5, Gtk.PositionType.LEFT, 1) cooldown = self._gtk.ButtonImage('cool-down', _('Cooldown'), "color4", .5, Gtk.PositionType.LEFT, 1)
adjust = self._gtk.ButtonImage('fine-tune', '', "color3", 1, Gtk.PositionType.LEFT, 1) adjust = self._gtk.ButtonImage('fine-tune', None, "color3", 1, Gtk.PositionType.LEFT, 1)
right = self._gtk.HomogeneousGrid() right = self._gtk.HomogeneousGrid()
right.attach(cooldown, 0, 0, 2, 1) right.attach(cooldown, 0, 0, 2, 1)

View File

@ -372,7 +372,7 @@ trough {
} }
.printing-filename { .printing-filename {
font-size: 1.75em; font-size: 1.4em;
font-weight: bold; font-weight: bold;
margin: .25em .25em 0 0; margin: .25em .25em 0 0;
} }
@ -381,7 +381,7 @@ trough {
margin-right: .25em; margin-right: .25em;
} }
.printing-info button { .printing-info button {
margin: .15em; margin: .1em;
background-color: rgba(0, 0, 0, 0.1); background-color: rgba(0, 0, 0, 0.1);
border-radius: .5em; border-radius: .5em;
} }