def label_expose_event(self, widget, event, width): color = self.btn_text_color if widget == self.ok_btn and self.ok_key_check: color = "#FFFFFF" elif widget == self.cancel_btn and self.cancel_key_check: color = "#FFFFFF" if widget.state == gtk.STATE_PRELIGHT: color = "#FFFFFF" cr = widget.window.cairo_create() rect = widget.allocation size = get_text_size(widget.get_label(), self.btn_text_size, DEFAULT_FONT) draw_text(cr, widget.get_label(), rect.x, rect.y + rect.height/2 - size[1]/2, text_size=self.btn_text_size, text_color=color, text_font=DEFAULT_FONT) widget.set_size_request(size[0] + width, size[1] + 10) return True
def label_expose_event(self, widget, event, width): color = self.btn_text_color if widget == self.ok_btn and self.ok_key_check: color = "#FFFFFF" elif widget == self.cancel_btn and self.cancel_key_check: color = "#FFFFFF" if widget.state == gtk.STATE_PRELIGHT: color = "#FFFFFF" cr = widget.window.cairo_create() rect = widget.allocation size = get_text_size(widget.get_label(), self.btn_text_size, DEFAULT_FONT) draw_text(cr, widget.get_label(), rect.x, rect.y + rect.height / 2 - size[1] / 2, text_size=self.btn_text_size, text_color=color, text_font=DEFAULT_FONT) widget.set_size_request(size[0] + width, size[1] + 10) return True
def __init__(self, label="", label_size=DEFAULT_FONT_SIZE): gtk.Button.__init__(self, label) self.btn_text = label self.btn_text_size = label_size size = get_text_size(label, label_size, DEFAULT_FONT) self.set_size_request(*size) self.btn_text_color = "#b9b9b9" self.check = False self.connect("expose-event", self.expose)
def open_btn_expose_event(self, widget, event): cr = widget.window.cairo_create() rect = widget.allocation text = widget.get_label().decode("utf-8") text_width = get_text_size("ABCDEFABCDEFH", text_size=9)[0] ch_width = get_text_size("a", text_size=9)[0] dec_width = get_text_size(text, text_size=9)[0] - text_width if dec_width > 0: index = (dec_width/ch_width) + 2 text = text[0:len(text)-index] + "..." if self.eject_check: text_color_value = "#000000" else: text_color_value = "#9d9d9d" draw_text(cr, text, rect.x, rect.y + rect.height/2 - get_text_size(text)[1]/2, text_color=text_color_value, text_size=9) return True
def open_btn_expose_event(self, widget, event): cr = widget.window.cairo_create() rect = widget.allocation text = widget.get_label().decode("utf-8") text_width = get_text_size("ABCDEFABCDEFH", text_size=9)[0] ch_width = get_text_size("a", text_size=9)[0] dec_width = get_text_size(text, text_size=9)[0] - text_width if dec_width > 0: index = (dec_width / ch_width) + 2 text = text[0 : len(text) - index] + "..." if self.eject_check: text_color_value = "#000000" else: text_color_value = "#9d9d9d" draw_text( cr, text, rect.x, rect.y + rect.height / 2 - get_text_size(text)[1] / 2, text_color=text_color_value, text_size=9, ) return True
def init_widgets(self): self.icon_width = self.icon_height = HEIGHT # self.user_hbox = gtk.HBox() self.user_icon = gtk.Image() self.user_icon.set_size_request(HEIGHT, HEIGHT) # user_name = self.cmd_dbus.get_user_name() user_name_width = get_text_size(user_name)[0] if user_name_width > WIDTH: de_user_name = user_name.decode("utf-8") user_name = de_user_name[0:10] + "..." self.user_label_ali = gtk.Alignment(0, 0, 1, 1) self.user_label_ali.set_padding(0, 0, 5, 0) self.user_label_event = gtk.EventBox() self.user_label = gtk.Label(user_name) self.user_label_event.add(self.user_label) self.user_label_ali.add(self.user_label_event) self.user_icon.connect_after("expose-event", self.user_label_event_expose_event) # self.user_hbox.pack_start(self.user_icon, False, False) self.user_hbox.pack_start(self.user_label_ali, False, False) # self.h_separator_top_ali = gtk.Alignment(1, 1, 1, 1) self.h_separator_top_ali.set_padding(5, 5, 0, 0) hseparator_color = [(0, ("#777777", 0.0)), (0.5, ("#000000", 0.3)), (1, ("#777777", 0.0))] self.h_separator_top = HSeparator(hseparator_color, 0, 0) self.h_separator_top_ali.add(self.h_separator_top) self.switch_separator_bottom = HSeparator(hseparator_color, 0, 0) self.switch_separator_bottom_ali = gtk.Alignment(1, 1, 1, 1) self.switch_separator_bottom_ali.set_padding(5, 5, 0, 0) self.switch_separator_bottom_ali.add(self.switch_separator_bottom) # ali_padding = 100 font_size = 10 self.switch_btn = SelectButton(_("Switch user"), font_size=font_size, ali_padding=ali_padding) self.stop_btn = SelectButton(_("Shut down"), font_size=font_size, ali_padding=ali_padding) self.restart_btn = SelectButton(_("Restart"), font_size=font_size, ali_padding=ali_padding) self.suspend_btn = SelectButton(_("Suspend"), font_size=font_size, ali_padding=ali_padding) self.logout_btn = SelectButton(_("Log out"), font_size=font_size, ali_padding=ali_padding) self.lock_btn = SelectButton(_("Lock"), font_size=font_size, ali_padding=ali_padding) # self.switch_btn.set_size_request(WIDTH, HEIGHT) self.stop_btn.set_size_request(WIDTH, HEIGHT) self.restart_btn.set_size_request(WIDTH, HEIGHT) self.suspend_btn.set_size_request(WIDTH, HEIGHT) self.logout_btn.set_size_request(WIDTH, HEIGHT) self.lock_btn.set_size_request(WIDTH, HEIGHT) # self.pack_start(self.user_hbox, True, True) self.pack_start(self.h_separator_top_ali, True, True) self.pack_start(self.switch_btn, True, True) self.pack_start(self.switch_separator_bottom_ali, True, True) self.pack_start(self.stop_btn, True, True) self.pack_start(self.restart_btn, True, True) self.pack_start(self.suspend_btn, True, True) self.pack_start(self.logout_btn, True, True) if self.cmd_dbus.real_name != "Guest": self.pack_start(self.lock_btn, True, True) set_clickable_cursor(self.user_label_event) gobject.timeout_add_seconds(2, self.check_is_livecd)