led: layout tweaks

This commit is contained in:
alfrix 2023-09-25 09:48:59 -03:00
parent adc59f7df1
commit 700e8dcc5b

View File

@ -12,7 +12,9 @@ class Panel(ScreenPanel):
def __init__(self, screen, title):
super().__init__(screen, title)
self.preview = Gtk.DrawingArea()
self.da_size = self._gtk.img_scale * 2
self.preview = Gtk.DrawingArea(width_request=self.da_size, height_request=self.da_size)
self.preview.set_size_request(-1, self.da_size * 1.9)
self.preview.connect("draw", self.on_draw)
self.preview_label = Gtk.Label(label='')
self.preset_list = self._gtk.HomogeneousGrid()
@ -82,14 +84,13 @@ class Panel(ScreenPanel):
self.back()
return
scale_grid = self._gtk.HomogeneousGrid()
da_size = self._gtk.img_scale * 2.75
for idx, col_value in enumerate(self.color_data):
if not self.color_available(idx):
continue
color = [0, 0, 0, 0]
color[idx] = 1
button = self._gtk.Button()
preview = Gtk.DrawingArea(width_request=da_size, height_request=da_size)
preview = Gtk.DrawingArea(width_request=self.da_size, height_request=self.da_size)
preview.connect("draw", self.on_draw, color)
button.set_image(preview)
button.connect("clicked", self.apply_preset, color)
@ -103,13 +104,11 @@ class Panel(ScreenPanel):
scale.connect("button-release-event", self.apply_scales)
scale.connect("value_changed", self.update_preview)
self.scales[idx] = scale
scale_grid.attach(button, 1, idx, 1, 1)
scale_grid.attach(scale, 2, idx, 3, 1)
grid.attach(scale_grid, 0, 0, 2, 1)
scale_grid.attach(button, 0, idx, 1, 1)
scale_grid.attach(scale, 1, idx, 3, 1)
grid.attach(scale_grid, 0, 0, 3, 1)
columns = 3 if self._screen.vertical_mode else 2
self.preset_list.attach(self.preview_label, 0, 0, 1, 1)
self.preset_list.attach(self.preview, 1, 0, columns - 1, 1)
data_misc = self._screen.apiclient.send_request(
"server/database/item?namespace=mainsail&key=miscellaneous.entries")
if data_misc:
@ -118,7 +117,7 @@ class Panel(ScreenPanel):
self.presets.update(self.parse_presets(presets_data))
for i, key in enumerate(self.presets):
logging.info(f'Adding preset: {key}')
preview = Gtk.DrawingArea(width_request=da_size, height_request=da_size)
preview = Gtk.DrawingArea(width_request=self.da_size, height_request=self.da_size)
preview.connect("draw", self.on_draw, self.presets[key])
button = self._gtk.Button()
button.set_image(preview)
@ -127,10 +126,17 @@ class Panel(ScreenPanel):
scroll = self._gtk.ScrolledWindow()
scroll.add(self.preset_list)
preview_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
preview_box.add(self.preview_label)
preview_box.add(self.preview)
preview_box.set_homogeneous(True)
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
box.add(preview_box)
box.add(scroll)
if self._screen.vertical_mode:
grid.attach(scroll, 0, 1, 2, 1)
grid.attach(box, 0, 1, 3, 1)
else:
grid.attach(scroll, 2, 0, 1, 1)
grid.attach(box, 3, 0, 2, 1)
return grid
def on_draw(self, da, ctx, color=None):