def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' if self.pixbuf == None: self.create_cache_pixbuf() wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow( cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow") ) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow( cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow") ) # Draw wallpaper. draw_pixbuf(cr, self.pixbuf, wallpaper_x, wallpaper_y) # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb(*color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke() if self.is_tick: tick_pixbuf = self.tick_normal_dpixbuf.get_pixbuf() else: tick_pixbuf = self.tick_gray_dpixbuf.get_pixbuf() tick_x = wallpaper_x + self.wallpaper_width - tick_pixbuf.get_width() / 2 tick_y = wallpaper_y - tick_pixbuf.get_height() / 2 draw_pixbuf(cr, tick_pixbuf, tick_x, tick_y)
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' if self.pixbuf == None: self.create_cache_pixbuf() wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow(cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow")) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow(cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow")) # Draw wallpaper. draw_pixbuf(cr, self.pixbuf, wallpaper_x, wallpaper_y) # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb( *color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke() if self.is_tick: tick_pixbuf = self.tick_normal_dpixbuf.get_pixbuf() else: tick_pixbuf = self.tick_gray_dpixbuf.get_pixbuf() tick_x = wallpaper_x + self.wallpaper_width - tick_pixbuf.get_width( ) / 2 tick_y = wallpaper_y - tick_pixbuf.get_height() / 2 draw_pixbuf(cr, tick_pixbuf, tick_x, tick_y)
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' # Init. if self.pixbuf == None: self.pixbuf = get_optimum_pixbuf_from_file(self.image_path, self.wallpaper_width, self.wallpaper_height) wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow( cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow") ) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow( cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow") ) # Draw wallpaper. draw_pixbuf(cr, self.pixbuf, wallpaper_x, wallpaper_y) # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb(*color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke()
def render_info(self, cr, rect): if self.is_hover: draw_single_mask(cr, rect.x, rect.y, rect.width, rect.height, "globalItemHover") if self.icon_pixbuf is None: self.icon_pixbuf = cache_manager.get_small_pixbuf(self.image_object, 37, 38) icon_width = self.icon_pixbuf.get_width() icon_height = self.icon_pixbuf.get_height() icon_x = rect.x + self.info_padding_x icon_y = rect.y + (rect.height - icon_height) / 2 # Draw shadow. drop_shadow_padding = 3 drop_shadow_radious = 3 draw_shadow( cr, icon_x, icon_y, icon_width + drop_shadow_padding, icon_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow") ) outside_shadow_padding = 2 outside_shadow_radious = 3 draw_shadow( cr, icon_x - outside_shadow_padding, icon_y - outside_shadow_padding, icon_width + outside_shadow_padding * 2, icon_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow") ) # Draw wallpaper. draw_pixbuf(cr, self.icon_pixbuf, icon_x, icon_y) rect.x = icon_x + self.icon_pixbuf.get_width() + self.info_padding_x rect.width -= self.info_padding_x * 2 - self.icon_pixbuf.get_width() _width, _height = get_content_size(self.image_object.get_display_name()) draw_text(cr, "<b>%s</b>" % self.image_object.get_display_name(), rect.x, icon_y, rect.width, _height, text_size=10) rect.y = icon_y + icon_width - _height _width, _height = get_content_size(self.status_text) draw_text(cr, self.status_text, rect.x, rect.y, rect.width, _height)
def __init__(self, account_setting): super(IconEditPage, self).__init__(False) self.account_setting = account_setting self.error_label = Label("", label_width=350, enable_select=False, enable_double_click=False) left_align = gtk.Alignment() right_align = gtk.Alignment() left_align.set_padding(0, 0, 0, 60) #right_align.set_padding(0, 0, 0, 60) left_vbox = gtk.VBox(False) right_vbox = gtk.VBox(False) left_vbox.set_spacing(BETWEEN_SPACING) right_vbox.set_spacing(BETWEEN_SPACING) left_align.add(left_vbox) right_align.add(right_vbox) self.draw_area = IconEditArea() hseparator = HSeparator(app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(-1, 10) left_vbox.pack_start(tools.make_align(Label(_("Clip"), app_theme.get_color("globalTitleForeground"), text_size=TITLE_FONT_SIZE, enable_select=False, enable_double_click=False)), False, False) left_vbox.pack_start(hseparator, False, False) left_vbox.pack_start(tools.make_align(self.draw_area, yalign=0.0, width=300, height=300)) self.thumbnail_large = gtk.Image() self.thumbnail_mid = gtk.Image() self.thumbnail_small = gtk.Image() self.thumbnail_large.set_size_request(150, 150) self.thumbnail_mid.set_size_request(48, 48) self.thumbnail_small.set_size_request(24, 24) hseparator = HSeparator(app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(-1, 10) right_vbox.pack_start(tools.make_align(Label(_("Preview"), app_theme.get_color("globalTitleForeground"), text_size=TITLE_FONT_SIZE, enable_select=False, enable_double_click=False)), False, False) right_vbox.pack_start(hseparator, False, False) right_vbox.pack_start(tools.make_align(self.thumbnail_large), False, False) right_vbox.pack_start(tools.make_align(self.thumbnail_mid), False, False) right_vbox.pack_start(tools.make_align(self.thumbnail_small), False, False) right_vbox.pack_start(tools.make_align(self.error_label, yalign=0.0)) self.pack_start(left_align, False, False) self.pack_start(right_align, False, False) self.connect("expose-event", self.draw_frame_border, left_align, right_align) self.draw_area.connect("pixbuf-changed", self.__on_pixbuf_changed_cb)
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' # Init. if self.pixbuf == None: self.pixbuf = get_optimum_pixbuf_from_file(self.image_path, self.wallpaper_width, self.wallpaper_height) wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow(cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow")) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow(cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow")) # Draw wallpaper. draw_pixbuf(cr, self.pixbuf, wallpaper_x, wallpaper_y) # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb( *color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke()
def render_info(self, cr, rect): if self.is_hover: draw_single_mask(cr, rect.x, rect.y, rect.width, rect.height, "globalItemHover") if self.icon_pixbuf is None: self.icon_pixbuf = cache_manager.get_small_pixbuf( self.image_object, 37, 38) icon_width = self.icon_pixbuf.get_width() icon_height = self.icon_pixbuf.get_height() icon_x = rect.x + self.info_padding_x icon_y = rect.y + (rect.height - icon_height) / 2 # Draw shadow. drop_shadow_padding = 3 drop_shadow_radious = 3 draw_shadow(cr, icon_x, icon_y, icon_width + drop_shadow_padding, icon_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow")) outside_shadow_padding = 2 outside_shadow_radious = 3 draw_shadow(cr, icon_x - outside_shadow_padding, icon_y - outside_shadow_padding, icon_width + outside_shadow_padding * 2, icon_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow")) # Draw wallpaper. draw_pixbuf(cr, self.icon_pixbuf, icon_x, icon_y) rect.x = icon_x + self.icon_pixbuf.get_width() + self.info_padding_x rect.width -= self.info_padding_x * 2 - self.icon_pixbuf.get_width() _width, _height = get_content_size( self.image_object.get_display_name()) draw_text(cr, "<b>%s</b>" % self.image_object.get_display_name(), rect.x, icon_y, rect.width, _height, text_size=10) rect.y = icon_y + icon_width - _height _width, _height = get_content_size(self.status_text) draw_text(cr, self.status_text, rect.x, rect.y, rect.width, _height)
def _list_menu_show(self, button, x, y, offset_x, offset_y): '''the combo button clicked callback. show combo_buton list menu''' menu_item = [(None, _("save automatically"), self._list_menu_click, SAVE_OP_AUTO, button), (None, _("save as"), self._list_menu_click, SAVE_OP_AS, button), (None, _("save to clipboard"), self._list_menu_click, SAVE_OP_CLIP, button), (None, _("save automatically to file and clipboard"), self._list_menu_click, SAVE_OP_AUTO_AND_CLIP, button)] # set current operate icon current_item = menu_item[self.screenshot.save_op_index] menu_pixbuf = (app_theme.get_pixbuf("action/selected.png"), app_theme.get_pixbuf("action/selected_hover.png"), app_theme.get_pixbuf("action/selected.png")) menu_item[self.screenshot.save_op_index] = (menu_pixbuf, current_item[1], current_item[2], current_item[3]) self.combo_menu = Menu( menu_item, is_root_menu=True, menu_item_select_color=app_theme.get_shadow_color( "menu_item_select").get_color_info()) self.set_all_inactive() self.combo_menu.show((x, y), (offset_x, offset_y))
def get_separator(): hseparator = HSeparator(app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) # hseparator.set_size_request(500, 10) align = gtk.Alignment() align.set_padding(10, 10, 14, 0) align.set(0, 0, 1, 1) align.add(hseparator) return align
def get_separator(): hseparator = HSeparator( app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) # hseparator.set_size_request(500, 10) align = gtk.Alignment() align.set_padding(10, 10, 14, 0) align.set(0, 0, 1, 1) align.add(hseparator) return align
def _list_menu_show(self, button, x, y, offset_x, offset_y): '''the combo button clicked callback. show combo_buton list menu''' menu_item = [ (None, _("Save automatically"), self._list_menu_click, SAVE_OP_AUTO, button), (None, _("Save as"), self._list_menu_click, SAVE_OP_AS, button), (None, _("Save to clipboard"), self._list_menu_click, SAVE_OP_CLIP, button), (None, _("Save automatically to file and clipboard"), self._list_menu_click, SAVE_OP_AUTO_AND_CLIP, button)] # set current operate icon current_item = menu_item[self.screenshot.save_op_index] menu_pixbuf = ( app_theme.get_pixbuf("action/selected.png"), app_theme.get_pixbuf("action/selected_hover.png"), app_theme.get_pixbuf("action/selected.png")) menu_item[self.screenshot.save_op_index] = (menu_pixbuf, current_item[1], current_item[2], current_item[3]) self.combo_menu = Menu(menu_item, is_root_menu=True, menu_item_select_color=app_theme.get_shadow_color("menu_item_select").get_color_info()) self.set_all_inactive() self.combo_menu.show((x, y), (offset_x, offset_y))
def draw_separator(cr, x, y, width, height): draw_hlinear(cr, x, y, width, height, app_theme.get_shadow_color("hSeparator").get_color_info())
def __setup_separator(self): hseparator = HSeparator(app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(500, HSEPARATOR_HEIGHT) return hseparator
def __setup_separator(self): hseparator = HSeparator( app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(100, 3) return hseparator
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' if self.pixbuf == None: self.create_cache_pixbuf() wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow( cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow") ) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow( cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow") ) # Draw wallpaper. draw_pixbuf(cr, self.pixbuf, wallpaper_x, wallpaper_y) # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb(*color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke() if self.is_downloaded: downloaded_str = _("Downloaded") downloaded_padding = 4 downloaded_str_width, downloaded_str_height = get_content_size(downloaded_str) cr.rectangle(wallpaper_x + 1, wallpaper_y + self.wallpaper_height - downloaded_str_height - downloaded_padding, self.wallpaper_width - 2, downloaded_str_height - 1 + downloaded_padding) cr.set_source_rgba(0, 0, 0, 0.4) cr.fill() draw_text(cr, downloaded_str, wallpaper_x + (self.wallpaper_width - downloaded_str_width) / 2, wallpaper_y + self.wallpaper_height - downloaded_str_height - downloaded_padding / 1.5, self.wallpaper_width, downloaded_str_height, text_color = "#FFFFFF") if self.is_tick: tick_pixbuf = self.tick_normal_dpixbuf.get_pixbuf() else: tick_pixbuf = self.tick_gray_dpixbuf.get_pixbuf() tick_x = wallpaper_x + self.wallpaper_width - tick_pixbuf.get_width() / 2 tick_y = wallpaper_y - tick_pixbuf.get_height() / 2 #draw_pixbuf(cr, tick_pixbuf, tick_x, tick_y) if self.is_tick: tick_pixbuf = self.tick_normal_dpixbuf.get_pixbuf() else: tick_pixbuf = self.tick_gray_dpixbuf.get_pixbuf() tick_x = wallpaper_x + self.wallpaper_width - tick_pixbuf.get_width() / 2 tick_y = wallpaper_y - tick_pixbuf.get_height() / 2 #draw_pixbuf(cr, tick_pixbuf, tick_x, tick_y) if self.is_loop: loop_pixbuf = self.loop_dpixbuf.get_pixbuf() loop_x = wallpaper_x + (self.wallpaper_width - loop_pixbuf.get_width()) / 2 loop_y = wallpaper_y + (self.wallpaper_height - loop_pixbuf.get_height()) / 2 self.draw_loop_pixbuf(cr, loop_pixbuf, loop_x, loop_y)
def draw_item_mask(cr, x, y, width, height, name): draw_vlinear(cr, x, y, width, height, app_theme.get_shadow_color(name).get_color_info())
def create_separator_box(padding_x=0, padding_y=0): separator_box = HSeparator( app_theme.get_shadow_color("hSeparator").get_color_info(), padding_x, padding_y) return separator_box
def share_to_weibo_result(self): '''result of share to weibo''' font_color = app_theme.get_color("share_result_text") res_hbox = gtk.HBox(False) res_hbox.set_size_request(-1, 240) res_left_box = DialogLeftButtonBox() res_right_box = DialogRightButtonBox() res_left_box.button_align.set(0.5, 0.0, 0, 1) res_right_box.button_align.set(0.5, 0.0, 0, 1) res_left_box.button_align.set_padding(5, 9, 19, 0) res_right_box.button_align.set_padding(30, 0, 0, 0) res_left_box.set_size_request(405, -1) res_right_box.set_size_request(195, -1) res_hbox.pack_start(res_left_box) res_hbox.pack_start( VSeparator(app_theme.get_shadow_color("VSeparator").get_color_info(), 0, 0)) res_hbox.pack_start(res_right_box) res_vbox = gtk.VBox(False) follow_vbox = gtk.VBox(False) tmp_img = gtk.Image() # only use as a placeholder tmp_img.set_size_request(-1, 50) res_vbox.pack_start(tmp_img, False, False) follow_tip_hbox = gtk.HBox(False) img = gtk.image_new_from_file(app_theme.get_theme_file_path("image/share/deepin_logo.png")) follow_tip_hbox.pack_start(img, False, False, 5) follow_tip_hbox.pack_start( Label("%s %s" % (_("Follow"), "Linux Deepin"), text_color=app_theme_get_dynamic_color("#5f5f5f"), text_size=12, enable_select=False), False, False) follow_vbox.pack_start(follow_tip_hbox, False, False, 13) for weibo in self.to_share_weibo_res: vbox = gtk.VBox(False, 1) tip_box = gtk.HBox() error_box = gtk.HBox() vbox.pack_start(tip_box, False, False) vbox.pack_start(error_box, False, False) if self.to_share_weibo_res[weibo][0]: # upload succeed img = gtk.image_new_from_file(app_theme.get_theme_file_path("image/share/share_succeed.png")) #link = LinkButton(_(weibo.t_type), text_size=13, self.to_share_weibo_res[weibo][1]) link = Label(_(weibo.t_type), text_size=12, text_color=app_theme.get_color("link_text")) #, enable_gaussian=True, gaussian_radious=1, border_radious=0) link.add_events(gtk.gdk.BUTTON_PRESS_MASK) link.connect("enter-notify-event", lambda w, e: self.__draw_under_line(w)) link.connect("leave-notify-event", lambda w, e: w.queue_draw()) link.connect("button-press-event", self.goto_weibo_button_clicked, weibo) link_box = gtk.HBox(False) link_box.pack_start(link, False, False) utils.set_clickable_cursor(link) text = _("Share to") label = Label(text, text_size=12, text_color=font_color, enable_select=False) text = _("Successful") label1 = Label(text, text_size=12, text_color=font_color, enable_select=False) tip_box.pack_start(img, False, False, 15) tip_box.pack_start(label, False, False, 3) tip_box.pack_start(link_box, False, False, 3) tip_box.pack_start(label1, False, False) # only use as a placeholder img = gtk.Image() img.set_size_request(20, 1) error_box.pack_start(img, False, False, 16) tmp = Label(" ", text_size=9, label_width=200) tmp.set_size_request(200, 1) error_box.pack_start(tmp, False, False) #print text else: # upload failed img = gtk.image_new_from_file(app_theme.get_theme_file_path("image/share/share_failed.png")) #text = "% %s %s." % (_(weibo.t_type), _("upload failed")) text = _("Share to") label1 = Label(text, text_size=12, text_color=font_color, enable_select=False) label2 = Label(_(weibo.t_type), text_size=12, text_color=font_color, enable_select=False) text = _("Failed") label3 = Label(text, text_size=12, text_color=font_color, enable_select=False) if weibo.curl.error: error = "(%s)" % _(weibo.curl.error) elif weibo.get_error_msg(): error = "(%s)" % _(weibo.get_error_msg()) else: error = "(%s)" % _("Unknown reason") #print "%s: %s" % (weibo.t_type, error) #print "%s: %s" % (weibo.t_type, weibo.get_error_msg()) label = Label(text, text_size=12, text_color=font_color, enable_select=False) tip_box.pack_start(img, False, False, 15) tip_box.pack_start(label1, False, False, 3) tip_box.pack_start(label2, False, False, 3) tip_box.pack_start(label3, False, False) img = gtk.Image() # only use as a placeholder img.set_size_request(20, 20) error_box.pack_start(img, False, False, 16) error_box.pack_start(Label(error, text_size=9, label_width=200, text_color=font_color, enable_select=False), False, False) #print text res_vbox.pack_start(vbox, False, False, 10) for weibo in self.deepin_info: box = gtk.HBox(False, 15) # followed img = gtk.image_new_from_pixbuf(app_theme.get_pixbuf("share/"+weibo.t_type+".png").get_pixbuf()) box.pack_start(img, False, False) if self.deepin_info[weibo] is not None and self.deepin_info[weibo][3]: if not default_locale.startswith("zh_"): button = gtk.image_new_from_pixbuf( app_theme.get_pixbuf("share/followed_en.png").get_pixbuf()) else: button = gtk.image_new_from_pixbuf( app_theme.get_pixbuf("share/followed.png").get_pixbuf()) else: # to follow if not default_locale.startswith("zh_"): button = ImageButton( app_theme.get_pixbuf("share/follow_normal_en.png"), app_theme.get_pixbuf("share/follow_hover_en.png"), app_theme.get_pixbuf("share/follow_press_en.png")) else: button = ImageButton( app_theme.get_pixbuf("share/follow_normal.png"), app_theme.get_pixbuf("share/follow_hover.png"), app_theme.get_pixbuf("share/follow_press.png")) button.connect("clicked", self.friendships_add_button_clicked, weibo, box) box.pack_start(button, False, False) align = gtk.Alignment() align.set(0.0, 0.5, 0, 0) align.set_padding(0, 0, 30, 0) align.add(box) follow_vbox.pack_start(align, False, False, 8) res_left_box.set_buttons([res_vbox]) res_right_box.set_buttons([follow_vbox]) self.result_box.pack_start(res_hbox, False, False) self.result_box.show_all() self.set_slide_index(2)
def __init__(self, account_setting): super(IconEditPage, self).__init__(False) self.account_setting = account_setting self.error_label = Label("", label_width=350, enable_select=False, enable_double_click=False) left_align = gtk.Alignment() right_align = gtk.Alignment() left_align.set_padding(0, 0, 0, 60) #right_align.set_padding(0, 0, 0, 60) left_vbox = gtk.VBox(False) right_vbox = gtk.VBox(False) left_vbox.set_spacing(BETWEEN_SPACING) right_vbox.set_spacing(BETWEEN_SPACING) left_align.add(left_vbox) right_align.add(right_vbox) self.draw_area = IconEditArea() hseparator = HSeparator( app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(-1, 10) left_vbox.pack_start( tools.make_align( Label(_("Clip"), app_theme.get_color("globalTitleForeground"), text_size=TITLE_FONT_SIZE, enable_select=False, enable_double_click=False)), False, False) left_vbox.pack_start(hseparator, False, False) left_vbox.pack_start( tools.make_align(self.draw_area, yalign=0.0, width=300, height=300)) self.thumbnail_large = gtk.Image() self.thumbnail_mid = gtk.Image() self.thumbnail_small = gtk.Image() self.thumbnail_large.set_size_request(150, 150) self.thumbnail_mid.set_size_request(48, 48) self.thumbnail_small.set_size_request(24, 24) hseparator = HSeparator( app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(-1, 10) right_vbox.pack_start( tools.make_align( Label(_("Preview"), app_theme.get_color("globalTitleForeground"), text_size=TITLE_FONT_SIZE, enable_select=False, enable_double_click=False)), False, False) right_vbox.pack_start(hseparator, False, False) right_vbox.pack_start(tools.make_align(self.thumbnail_large), False, False) right_vbox.pack_start(tools.make_align(self.thumbnail_mid), False, False) right_vbox.pack_start(tools.make_align(self.thumbnail_small), False, False) right_vbox.pack_start(tools.make_align(self.error_label, yalign=0.0)) self.pack_start(left_align, False, False) self.pack_start(right_align, False, False) self.connect("expose-event", self.draw_frame_border, left_align, right_align) self.draw_area.connect("pixbuf-changed", self.__on_pixbuf_changed_cb)
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' # Init. wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow(cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow")) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow(cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow")) # Draw add button. cr.set_source_rgb(0.7, 0.7, 0.7) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.fill() add_button_width = 8 add_button_height = 40 cr.set_source_rgb(0.3, 0.3, 0.3) cr.rectangle( wallpaper_x + (self.wallpaper_width - add_button_height) / 2, wallpaper_y + (self.wallpaper_height - add_button_width) / 2, add_button_height, add_button_width) cr.fill() cr.rectangle( wallpaper_x + (self.wallpaper_width - add_button_width) / 2, wallpaper_y + (self.wallpaper_height - add_button_height) / 2, add_button_width, add_button_height) cr.fill() # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb( *color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke()
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' if self.pixbuf == None: self.create_cache_pixbuf() wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow(cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow")) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow(cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow")) # Draw wallpaper. draw_pixbuf(cr, self.pixbuf, wallpaper_x, wallpaper_y) # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb( *color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke() if self.is_downloaded: downloaded_str = _("Downloaded") downloaded_padding = 4 downloaded_str_width, downloaded_str_height = get_content_size( downloaded_str) cr.rectangle( wallpaper_x + 1, wallpaper_y + self.wallpaper_height - downloaded_str_height - downloaded_padding, self.wallpaper_width - 2, downloaded_str_height - 1 + downloaded_padding) cr.set_source_rgba(0, 0, 0, 0.4) cr.fill() draw_text(cr, downloaded_str, wallpaper_x + (self.wallpaper_width - downloaded_str_width) / 2, wallpaper_y + self.wallpaper_height - downloaded_str_height - downloaded_padding / 1.5, self.wallpaper_width, downloaded_str_height, text_color="#FFFFFF") if self.is_tick: tick_pixbuf = self.tick_normal_dpixbuf.get_pixbuf() else: tick_pixbuf = self.tick_gray_dpixbuf.get_pixbuf() tick_x = wallpaper_x + self.wallpaper_width - tick_pixbuf.get_width( ) / 2 tick_y = wallpaper_y - tick_pixbuf.get_height() / 2 #draw_pixbuf(cr, tick_pixbuf, tick_x, tick_y) if self.is_tick: tick_pixbuf = self.tick_normal_dpixbuf.get_pixbuf() else: tick_pixbuf = self.tick_gray_dpixbuf.get_pixbuf() tick_x = wallpaper_x + self.wallpaper_width - tick_pixbuf.get_width( ) / 2 tick_y = wallpaper_y - tick_pixbuf.get_height() / 2 #draw_pixbuf(cr, tick_pixbuf, tick_x, tick_y) if self.is_loop: loop_pixbuf = self.loop_dpixbuf.get_pixbuf() loop_x = wallpaper_x + (self.wallpaper_width - loop_pixbuf.get_width()) / 2 loop_y = wallpaper_y + (self.wallpaper_height - loop_pixbuf.get_height()) / 2 self.draw_loop_pixbuf(cr, loop_pixbuf, loop_x, loop_y)
def render(self, cr, rect): ''' Render item. This is IconView interface, you should implement it. ''' # Init. wallpaper_x = rect.x + (rect.width - self.wallpaper_width) / 2 wallpaper_y = rect.y + (rect.height - self.wallpaper_height) / 2 # Draw shadow. drop_shadow_padding = 7 drop_shadow_radious = 7 draw_shadow( cr, wallpaper_x, wallpaper_y, self.wallpaper_width + drop_shadow_padding, self.wallpaper_height + drop_shadow_padding, drop_shadow_radious, app_theme.get_shadow_color("window_shadow") ) outside_shadow_padding = 4 outside_shadow_radious = 5 draw_shadow( cr, wallpaper_x - outside_shadow_padding, wallpaper_y - outside_shadow_padding, self.wallpaper_width + outside_shadow_padding * 2, self.wallpaper_height + outside_shadow_padding * 2, outside_shadow_radious, app_theme.get_shadow_color("window_shadow") ) # Draw add button. cr.set_source_rgb(0.7, 0.7, 0.7) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.fill() add_button_width = 8 add_button_height = 40 cr.set_source_rgb(0.3, 0.3, 0.3) cr.rectangle(wallpaper_x + (self.wallpaper_width - add_button_height) / 2, wallpaper_y + (self.wallpaper_height - add_button_width) / 2, add_button_height, add_button_width) cr.fill() cr.rectangle(wallpaper_x + (self.wallpaper_width - add_button_width) / 2, wallpaper_y + (self.wallpaper_height - add_button_height) / 2, add_button_width, add_button_height) cr.fill() # Draw wallpaper frame. with cairo_disable_antialias(cr): cr.set_line_width(2) cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.stroke() if self.is_hover: cr.rectangle(wallpaper_x, wallpaper_y, self.wallpaper_width, self.wallpaper_height) cr.set_source_rgb(*color_hex_to_cairo(self.hover_stroke_dcolor.get_color())) cr.stroke()
def __make_separator(self): hseparator = HSeparator(app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(450, 10) return hseparator
def share_to_weibo_result(self): '''result of share to weibo''' font_color = app_theme.get_color("share_result_text") res_hbox = gtk.HBox(False) res_hbox.set_size_request(-1, 240) res_left_box = DialogLeftButtonBox() res_right_box = DialogRightButtonBox() res_left_box.button_align.set(0.5, 0.0, 0, 1) res_right_box.button_align.set(0.5, 0.0, 0, 1) res_left_box.button_align.set_padding(5, 9, 19, 0) res_right_box.button_align.set_padding(30, 0, 0, 0) res_left_box.set_size_request(405, -1) res_right_box.set_size_request(195, -1) res_hbox.pack_start(res_left_box) res_hbox.pack_start( VSeparator( app_theme.get_shadow_color("VSeparator").get_color_info(), 0, 0)) res_hbox.pack_start(res_right_box) res_vbox = gtk.VBox(False) follow_vbox = gtk.VBox(False) tmp_img = gtk.Image() # only use as a placeholder tmp_img.set_size_request(-1, 50) res_vbox.pack_start(tmp_img, False, False) follow_tip_hbox = gtk.HBox(False) img = gtk.image_new_from_file( app_theme.get_theme_file_path("image/share/deepin_logo.png")) follow_tip_hbox.pack_start(img, False, False, 5) follow_tip_hbox.pack_start( Label("%s %s" % (_("Follow"), "Linux Deepin"), text_color=app_theme_get_dynamic_color("#5f5f5f"), text_size=12, enable_select=False), False, False) follow_vbox.pack_start(follow_tip_hbox, False, False, 13) for weibo in self.to_share_weibo_res: vbox = gtk.VBox(False, 1) tip_box = gtk.HBox() error_box = gtk.HBox() vbox.pack_start(tip_box, False, False) vbox.pack_start(error_box, False, False) if self.to_share_weibo_res[weibo][0]: # upload succeed img = gtk.image_new_from_file( app_theme.get_theme_file_path( "image/share/share_succeed.png")) #link = LinkButton(_(weibo.t_type), text_size=13, self.to_share_weibo_res[weibo][1]) link = Label(_(weibo.t_type), text_size=12, text_color=app_theme.get_color("link_text")) #, enable_gaussian=True, gaussian_radious=1, border_radious=0) link.add_events(gtk.gdk.BUTTON_PRESS_MASK) link.connect("enter-notify-event", lambda w, e: self.__draw_under_line(w)) link.connect("leave-notify-event", lambda w, e: w.queue_draw()) link.connect("button-press-event", self.goto_weibo_button_clicked, weibo) link_box = gtk.HBox(False) link_box.pack_start(link, False, False) utils.set_clickable_cursor(link) text = _("Share to") label = Label(text, text_size=12, text_color=font_color, enable_select=False) text = _("Successful") label1 = Label(text, text_size=12, text_color=font_color, enable_select=False) tip_box.pack_start(img, False, False, 15) tip_box.pack_start(label, False, False, 3) tip_box.pack_start(link_box, False, False, 3) tip_box.pack_start(label1, False, False) # only use as a placeholder img = gtk.Image() img.set_size_request(20, 1) error_box.pack_start(img, False, False, 16) tmp = Label(" ", text_size=9, label_width=200) tmp.set_size_request(200, 1) error_box.pack_start(tmp, False, False) #print text else: # upload failed img = gtk.image_new_from_file( app_theme.get_theme_file_path( "image/share/share_failed.png")) #text = "% %s %s." % (_(weibo.t_type), _("upload failed")) text = _("Share to") label1 = Label(text, text_size=12, text_color=font_color, enable_select=False) label2 = Label(_(weibo.t_type), text_size=12, text_color=font_color, enable_select=False) text = _("Failed") label3 = Label(text, text_size=12, text_color=font_color, enable_select=False) if weibo.curl.error: error = "(%s)" % _(weibo.curl.error) elif weibo.get_error_msg(): error = "(%s)" % _(weibo.get_error_msg()) else: error = "(%s)" % _("Unknown reason") #print "%s: %s" % (weibo.t_type, error) #print "%s: %s" % (weibo.t_type, weibo.get_error_msg()) label = Label(text, text_size=12, text_color=font_color, enable_select=False) tip_box.pack_start(img, False, False, 15) tip_box.pack_start(label1, False, False, 3) tip_box.pack_start(label2, False, False, 3) tip_box.pack_start(label3, False, False) img = gtk.Image() # only use as a placeholder img.set_size_request(20, 20) error_box.pack_start(img, False, False, 16) error_box.pack_start( Label(error, text_size=9, label_width=200, text_color=font_color, enable_select=False), False, False) #print text res_vbox.pack_start(vbox, False, False, 10) for weibo in self.deepin_info: box = gtk.HBox(False, 15) # followed img = gtk.image_new_from_pixbuf( app_theme.get_pixbuf("share/" + weibo.t_type + ".png").get_pixbuf()) box.pack_start(img, False, False) if self.deepin_info[weibo] is not None and self.deepin_info[weibo][ 3]: if not default_locale.startswith("zh_"): button = gtk.image_new_from_pixbuf( app_theme.get_pixbuf( "share/followed_en.png").get_pixbuf()) else: button = gtk.image_new_from_pixbuf( app_theme.get_pixbuf( "share/followed.png").get_pixbuf()) else: # to follow if not default_locale.startswith("zh_"): button = ImageButton( app_theme.get_pixbuf("share/follow_normal_en.png"), app_theme.get_pixbuf("share/follow_hover_en.png"), app_theme.get_pixbuf("share/follow_press_en.png")) else: button = ImageButton( app_theme.get_pixbuf("share/follow_normal.png"), app_theme.get_pixbuf("share/follow_hover.png"), app_theme.get_pixbuf("share/follow_press.png")) button.connect("clicked", self.friendships_add_button_clicked, weibo, box) box.pack_start(button, False, False) align = gtk.Alignment() align.set(0.0, 0.5, 0, 0) align.set_padding(0, 0, 30, 0) align.add(box) follow_vbox.pack_start(align, False, False, 8) res_left_box.set_buttons([res_vbox]) res_right_box.set_buttons([follow_vbox]) self.result_box.pack_start(res_hbox, False, False) self.result_box.show_all() self.set_slide_index(2)
def __setup_separator(self): hseparator = HSeparator(app_theme.get_shadow_color("hSeparator").get_color_info(), 0, 0) hseparator.set_size_request(100, 3) return hseparator