class Button(Widget, BinBaselineCalculator): def __init__(self, text, style='normal', width=None): Widget.__init__(self) BinBaselineCalculator.__init__(self) # We just ignore style here, GTK users expect their own buttons. self.set_widget(gtk.Button()) self.create_signal('clicked') self.forward_signal('clicked') self.label = Label(text) if width: current_width = self.label.get_width() padding = (width - current_width) // 2 odd = width - current_width - padding * 2 alignment = layout.Alignment(0.5, 0.5, 0, 0) alignment.set_padding(0, 0, padding, padding + odd) alignment.add(self.label) self._widget.add(alignment._widget) else: self._widget.add(self.label._widget) self.label._widget.show() def set_text(self, title): self.label.set_text(title) def set_bold(self, bold): self.label.set_bold(bold) def set_size(self, scale_factor): self.label.set_size(scale_factor) def set_color(self, color): self.label.set_color(color)
class Button(Widget, BinBaselineCalculator): def __init__(self, text, style='normal', width=None): Widget.__init__(self) BinBaselineCalculator.__init__(self) # We just ignore style here, GTK users expect their own buttons. self.set_widget(gtk.Button()) self.create_signal('clicked') self.forward_signal('clicked') self.label = Label(text) if width: current_width = self.label.get_width() padding = (width - current_width) // 2 odd = width - current_width - padding * 2 alignment = layout.Alignment(0.5, 0.5, 0, 0) alignment.set_padding(0, 0, padding, padding+odd) alignment.add(self.label) self._widget.add(alignment._widget) else: self._widget.add(self.label._widget) self.label._widget.show() def set_text(self, title): self.label.set_text(title) def set_bold(self, bold): self.label.set_bold(bold) def set_size(self, scale_factor): self.label.set_size(scale_factor) def set_color(self, color): self.label.set_color(color)
class Button(Widget, BinBaselineCalculator): def __init__(self, text, style='normal', width=None): Widget.__init__(self) BinBaselineCalculator.__init__(self) # We just ignore style here, GTK users expect their own buttons. self.set_widget(gtk.Button()) self.create_signal('clicked') self.forward_signal('clicked') self.label = Label(text) # only honor width if its bigger than the width we need to display the # label (#18994) if width and width > self.label.get_width(): alignment = layout.Alignment(0.5, 0.5, 0, 0) alignment.set_size_request(width, -1) alignment.add(self.label) self._widget.add(alignment._widget) else: self._widget.add(self.label._widget) self.label._widget.show() def set_text(self, title): self.label.set_text(title) def set_bold(self, bold): self.label.set_bold(bold) def set_size(self, scale_factor): self.label.set_size(scale_factor) def set_color(self, color): self.label.set_color(color)
def __init__(self, text=None, bold=False): Widget.__init__(self) BinBaselineCalculator.__init__(self) if text is None: text = '' self.set_widget(gtk.CheckButton()) self.label = Label(text) self._widget.add(self.label._widget) self.label._widget.show() self.create_signal('toggled') self.forward_signal('toggled') if bold: self.label.set_bold(True)
def __init__(self, text, style='normal'): Widget.__init__(self) # We just ignore style here, GTK users expect their own buttons. self.set_widget(gtk.Button()) self.create_signal('clicked') self.forward_signal('clicked') self.label = Label(text) self._widget.add(self.label._widget) self.label._widget.show()
class Checkbox(Widget, BinBaselineCalculator): """Widget that the user can toggle on or off.""" def __init__(self, text=None, bold=False): Widget.__init__(self) BinBaselineCalculator.__init__(self) if text is None: text = '' self.set_widget(gtk.CheckButton()) self.label = Label(text) self._widget.add(self.label._widget) self.label._widget.show() self.create_signal('toggled') self.forward_signal('toggled') if bold: self.label.set_bold(True) def get_checked(self): return self._widget.get_active() def set_checked(self, value): self._widget.set_active(value) def set_size(self, scale_factor): self.label.set_size(scale_factor) def get_text_padding(self): """ Returns the amount of space the checkbox takes up before the label. """ indicator_size = self._widget.style_get_property('indicator-size') indicator_spacing = self._widget.style_get_property( 'indicator-spacing') focus_width = self._widget.style_get_property('focus-line-width') focus_padding = self._widget.style_get_property('focus-padding') return (indicator_size + 3 * indicator_spacing + 2 * (focus_width + focus_padding))
class Button(Widget, BinBaselineCalculator): def __init__(self, text, style='normal'): Widget.__init__(self) # We just ignore style here, GTK users expect their own buttons. self.set_widget(gtk.Button()) self.create_signal('clicked') self.forward_signal('clicked') self.label = Label(text) self._widget.add(self.label._widget) self.label._widget.show() def set_text(self, title): self.label.set_text(title) def set_bold(self, bold): self.label.set_bold(bold) def set_size(self, scale_factor): self.label.set_size(scale_factor) def set_color(self, color): self.label.set_color(color)
def __init__(self): Label.__init__(self) self.create_signal("clicked")