def __init__(self, parent, dlg, cms, image_style, onchange=None): self.image_style = deepcopy(image_style) self.callback = onchange wal.HPanel.__init__(self, parent) self.pack(wal.Label(self, _('Fg:'))) txt = _('Change pattern foreground color') self.fg_btn = PDColorButton(self, dlg, cms, self.image_style[0], txt, onchange=self.fg_changed) self.pack(self.fg_btn, padding=5) self.pack((10, 1)) self.pack(wal.Label(self, _('Bg:'))) txt = _('Change pattern background color') self.bg_btn = PDColorButton(self, dlg, cms, self.image_style[1], txt, onchange=self.bg_changed) self.pack(self.bg_btn, padding=5)
def __init__(self, parent, dlg, cms, stops, sel_stop=0, onposition=None, oncolor=None): self.dlg = dlg self.cms = cms self.stops = stops self.selected_stop = sel_stop self.pos_callback = onposition self.color_callback = oncolor wal.LabeledPanel.__init__(self, parent, text=_('Gradient stop')) grid = wal.GridPanel(self, cols=3, vgap=5, hgap=5) grid.pack(wal.Label(grid, _('Color value:'))) clr = self.stops[self.selected_stop][1] txt = _('Change stop color') self.swatch = PDColorButton(grid, self.dlg, self.cms, clr, txt, onchange=self.edit_color) grid.pack(self.swatch) grid.pack((1, 1)) grid.pack(wal.Label(grid, _('Position:'))) self.position = wal.FloatSpin(grid, range_val=(0.0, 100.0), step=1.0, onchange=self.pos_changed, onenter=self.pos_changed) grid.pack(self.position) grid.pack(wal.Label(grid, '%')) self.pack(grid, align_center=False, padding_all=10)
class StopPanel(wal.LabeledPanel): dlg = None cms = None stops = None selected_stop = 0 pos_callback = None color_callback = None def __init__(self, parent, dlg, cms, stops, sel_stop=0, onposition=None, oncolor=None): self.dlg = dlg self.cms = cms self.stops = stops self.selected_stop = sel_stop self.pos_callback = onposition self.color_callback = oncolor wal.LabeledPanel.__init__(self, parent, text=_("Gradient stop")) grid = wal.GridPanel(self, cols=3, vgap=5, hgap=5) grid.pack(wal.Label(grid, _("Color value:"))) clr = self.stops[self.selected_stop][1] txt = _("Change stop color") self.swatch = PDColorButton(grid, self.dlg, self.cms, clr, txt, onchange=self.edit_color) grid.pack(self.swatch) grid.pack((1, 1)) grid.pack(wal.Label(grid, _("Position:"))) self.position = wal.FloatSpin( grid, range_val=(0.0, 100.0), step=1.0, onchange=self.pos_changed, onenter=self.pos_changed ) grid.pack(self.position) grid.pack(wal.Label(grid, "%")) self.pack(grid, align_center=False, padding_all=10) def edit_color(self, color): self.stops[self.selected_stop][1] = color self.update() if self.color_callback: self.color_callback() def pos_changed(self): if self.pos_callback: pos = self.position.get_value() / 100.0 self.pos_callback(self.selected_stop, pos) def set_selected_stop(self, index): self.selected_stop = index self.update() def set_stops(self, stops): self.stops = stops self.set_selected_stop(0) def update(self): last_indx = len(self.stops) - 1 self.swatch.set_color(self.stops[self.selected_stop][1]) self.position.set_value(self.stops[self.selected_stop][0] * 100.0) self.position.set_enable(not self.selected_stop in [0, last_indx])
class StopPanel(wal.LabeledPanel): dlg = None cms = None stops = None selected_stop = 0 pos_callback = None color_callback = None def __init__(self, parent, dlg, cms, stops, sel_stop=0, onposition=None, oncolor=None): self.dlg = dlg self.cms = cms self.stops = stops self.selected_stop = sel_stop self.pos_callback = onposition self.color_callback = oncolor wal.LabeledPanel.__init__(self, parent, text=_('Gradient stop')) grid = wal.GridPanel(self, cols=3, vgap=5, hgap=5) grid.pack(wal.Label(grid, _('Color value:'))) clr = self.stops[self.selected_stop][1] txt = _('Change stop color') self.swatch = PDColorButton(grid, self.dlg, self.cms, clr, txt, onchange=self.edit_color) grid.pack(self.swatch) grid.pack((1, 1)) grid.pack(wal.Label(grid, _('Position:'))) self.position = wal.FloatSpin(grid, range_val=(0.0, 100.0), step=1.0, onchange=self.pos_changed, onenter=self.pos_changed) grid.pack(self.position) grid.pack(wal.Label(grid, '%')) self.pack(grid, align_center=False, padding_all=10) def edit_color(self, color): self.stops[self.selected_stop][1] = color self.update() if self.color_callback:self.color_callback() def pos_changed(self): if self.pos_callback: pos = self.position.get_value() / 100.0 self.pos_callback(self.selected_stop, pos) def set_selected_stop(self, index): self.selected_stop = index self.update() def set_stops(self, stops): self.stops = stops self.set_selected_stop(0) def update(self): last_indx = len(self.stops) - 1 self.swatch.set_color(self.stops[self.selected_stop][1]) self.position.set_value(self.stops[self.selected_stop][0] * 100.0) self.position.set_enable(not self.selected_stop in [0, last_indx])
class PatternColorEditor(wal.HPanel): image_style = [] callback = None def __init__(self, parent, dlg, cms, image_style, onchange=None): self.image_style = deepcopy(image_style) self.callback = onchange wal.HPanel.__init__(self, parent) self.pack(wal.Label(self, _('Fg:'))) txt = _('Change pattern foreground color') self.fg_btn = PDColorButton(self, dlg, cms, self.image_style[0], txt, onchange=self.fg_changed) self.pack(self.fg_btn, padding=5) self.pack((10, 1)) self.pack(wal.Label(self, _('Bg:'))) txt = _('Change pattern background color') self.bg_btn = PDColorButton(self, dlg, cms, self.image_style[1], txt, onchange=self.bg_changed) self.pack(self.bg_btn, padding=5) def fg_changed(self, color): self.image_style[0] = deepcopy(color) if self.callback: self.callback(self.get_image_style()) def bg_changed(self, color): self.image_style[1] = deepcopy(color) if self.callback: self.callback(self.get_image_style()) def set_image_style(self, image_style): self.image_style = deepcopy(image_style) self.fg_btn.set_color(self.image_style[0]) self.bg_btn.set_color(self.image_style[1]) def get_image_style(self): return deepcopy(self.image_style)
def __init__(self, parent, dlg, cms, stops, sel_stop=0, onposition=None, oncolor=None): self.dlg = dlg self.cms = cms self.stops = stops self.selected_stop = sel_stop self.pos_callback = onposition self.color_callback = oncolor wal.LabeledPanel.__init__(self, parent, text=_("Gradient stop")) grid = wal.GridPanel(self, cols=3, vgap=5, hgap=5) grid.pack(wal.Label(grid, _("Color value:"))) clr = self.stops[self.selected_stop][1] txt = _("Change stop color") self.swatch = PDColorButton(grid, self.dlg, self.cms, clr, txt, onchange=self.edit_color) grid.pack(self.swatch) grid.pack((1, 1)) grid.pack(wal.Label(grid, _("Position:"))) self.position = wal.FloatSpin( grid, range_val=(0.0, 100.0), step=1.0, onchange=self.pos_changed, onenter=self.pos_changed ) grid.pack(self.position) grid.pack(wal.Label(grid, "%")) self.pack(grid, align_center=False, padding_all=10)