def __init__(self, tab_index, tab_name, active_flag): ''' init docs ''' # Init. gtk.Button.__init__(self) self.tab_index = tab_index self.tab_name = tab_name self.tab_name_size = 10 self.tab_padding_x = 10 self.tab_padding_y = 0 (self.tab_name_width, self.tab_name_height) = get_content_size(self.tab_name) self.tab_width = self.tab_name_width + self.tab_padding_x * 2 self.tab_height = self.tab_name_height + self.tab_padding_y * 2 self.active_flag = active_flag self.set_size_request(self.tab_width, RANK_TAB_HEIGHT) self.connect("expose-event", self.expose_rank_tab) self.connect("motion-notify-event", self.motion_rank_tab) self.connect("clicked", self.button_press_rank_tab) self.connect("leave-notify-event", self.leave_rank_tab) global_event.register_event("click-rank-tab", self.click_rank_tab)
def __init__(self, data_manager): ''' init docs ''' # Init. gtk.VBox.__init__(self) self.data_manager = data_manager self.keywords = [] self.all_pkg_names = [] self.message_bar = MessageBar(18) self.content_box = gtk.VBox() self.treeview = TreeView(enable_drag_drop=False, expand_column=0) global_event.register_event("delete-search-page-items", self.treeview.delete_items) self.cute_message_image = gtk.VBox() self.cute_message_pixbuf = utils.get_common_locale_image_pixbuf("info", "noresult.png") self.cute_message_image.connect("expose-event", self.expose_cute_message_image) self.content_box.pack_start(self.message_bar, False, False) self.content_box.pack_start(self.treeview) self.loading_box = LoadingBox() self.pack_start(self.loading_box, True, True) self.treeview.connect("items-change", self.update_message_bar) self.treeview.draw_mask = self.draw_mask
def __init__(self, data_manager): # Init. gtk.VBox.__init__(self) self.data_manager = data_manager self.tab_box = gtk.HBox() self.tab_box.set_size_request(-1, RANK_TAB_HEIGHT) self.tab_box.set_spacing(1) self.tab_box_align = gtk.Alignment() self.tab_box_align.set(1, 0, 0, 0) self.tab_box_align.set_padding(3, 9, 25, 48) for (tab_index, tab_name) in enumerate([_("Top 25 weekly"), _("Top 25 monthly"), _("Top 25 totally")]): self.tab_box.pack_start(RankTab(tab_index, tab_name, tab_index == 0), False, False) self.page_box = gtk.VBox() self.page_align = gtk.Alignment() self.page_align.set(0.5, 0.5, 1, 1) self.page_align.set_padding(0, 0, 15, 15) self.week_rank_icon_view = IconView() self.week_rank_icon_view_scrlledwindow = ScrolledWindow() self.week_rank_icon_view.draw_mask = self.draw_mask self.month_rank_icon_view = IconView() self.month_rank_icon_view_scrlledwindow = ScrolledWindow() self.month_rank_icon_view.draw_mask = self.draw_mask self.all_rank_icon_view = IconView() self.all_rank_icon_view_scrlledwindow = ScrolledWindow() self.all_rank_icon_view.draw_mask = self.draw_mask self.week_rank_icon_view_scrlledwindow.add_child(self.week_rank_icon_view) self.month_rank_icon_view_scrlledwindow.add_child(self.month_rank_icon_view) self.all_rank_icon_view_scrlledwindow.add_child(self.all_rank_icon_view) self.tab_box_align.add(self.tab_box) self.page_box.pack_start(self.page_align) self.pack_start(self.tab_box_align, False, False) self.pack_start(self.page_box, True, True) self.loading = LoadingBox() self.view_list = [ ('week', self.week_rank_icon_view, self.week_rank_icon_view_scrlledwindow), ('month', self.month_rank_icon_view, self.month_rank_icon_view_scrlledwindow), ('all', self.all_rank_icon_view, self.all_rank_icon_view_scrlledwindow)] self.pkg_names = [] self.show_flag = None self.all_show_flag = ['week', 'month', 'all'] global_event.register_event("update-rank-page", self.update_rank_page) gtk.timeout_add(300, self.get_pkgs_status) global_event.emit("update-rank-page", 0)
def start_loading(self): global_event.register_event('download-app-info-finish', self.app_info_download_finish) FetchInfo(self.appid).start() self.swf_save_path = os.path.expanduser( "~/.cache/deepin-game-center/downloads/%s/%s" % (self.appid, os.path.split(self.swf_url)[1])) if os.path.exists(self.swf_save_path): gtk.timeout_add(200, lambda: self.load_game()) else: gtk.timeout_add(200, self.show_loading_page)
def start_loading(self): global_event.register_event('download-app-info-finish', self.app_info_download_finish) FetchInfo(self.appid).start() self.swf_save_path = os.path.expanduser( "~/.cache/deepin-game-center/downloads/%s/%s" % ( self.appid, os.path.split(self.swf_url)[1]) ) if os.path.exists(self.swf_save_path): gtk.timeout_add(200, lambda:self.load_game()) else: gtk.timeout_add(200, self.show_loading_page)
def __init__(self): ''' init docs ''' gtk.VBox.__init__(self) self.scrolled_window = ScrolledWindow() self.iconview = IconView() self.iconview.draw_mask = self.draw_mask self.scrolled_window.add_child(self.iconview) self.pack_start(self.scrolled_window, True, True) global_event.register_event('download-album-infos-finish', self.update_item)
def __init__(self, data_manager, recommend_status): ''' init docs ''' TreeItem.__init__(self) self.name = _("Home") self.data_manager = data_manager self.recommend_status = recommend_status self.page_cache = {} self.page_name = ['recommend', 'album', 'download_rank'] self.init_recommend_page() global_event.register_event('download-home-infos-finish', self.update_home_page)
def __init__(self): super(GuideBox, self).__init__() self.scrolled_window = ScrolledWindow() self.backgroundbox = BackgroundBox() self.backgroundbox.draw_mask = self.draw_mask self.guide_pixbuf = utils.get_common_image_pixbuf('guide.png') self.top_title = gtk.HBox() self.top_left_icon = gtk.VBox() self.top_left_icon.set_size_request(self.guide_pixbuf.get_width(), self.guide_pixbuf.get_height()) self.top_left_icon.connect('expose-event', self.expose_top_left_icon) top_left_icon_align = gtk.Alignment(0.5, 0.5, 0, 0) top_left_icon_align.set_padding(15, 3, 13, 3) top_left_icon_align.add(self.top_left_icon) self.top_right_text = Label( _("Introduction"), ui_theme.get_color('label_select_background'), 14) top_right_text_align = gtk.Alignment(0.5, 0.5, 0, 0) top_right_text_align.set_padding(18, 3, 3, 3) top_right_text_align.add(self.top_right_text) self.top_title.pack_start(top_left_icon_align, False, False) self.top_title.pack_start(top_right_text_align, False, False) self.content_box = gtk.VBox() self.guide_label = Label('', enable_select=False, wrap_width=200, text_size=9, text_color=DynamicColor('#808080')) guide_label_align = gtk.Alignment(0.5, 0.5, 1, 1) guide_label_align.set_padding(5, 5, 10, 10) guide_label_align.add(self.guide_label) self.content_box.pack_start(guide_label_align, False, False) self.backgroundbox.pack_start(self.top_title, False, False) self.backgroundbox.pack_start(self.content_box) self.scrolled_window.add_child(self.backgroundbox) self.add(self.scrolled_window) global_event.register_event('download-app-info-finish', self.update_content)
def __init__(self, hide_callback=None): self.hide_callback = hide_callback self.dialog_width = 330 DialogBox.__init__( self, title="", default_width=self.dialog_width, default_height=145, mask_type=0, close_callback=self.close_action, modal=True, window_hint=gtk.gdk.WINDOW_TYPE_HINT_DIALOG, window_pos=None, skip_taskbar_hint=True, resizable=False, window_type=gtk.WINDOW_TOPLEVEL, ) self.waiting_animation = gtk.VBox() self.waiting_animation.set_size_request(36, 36) self.waiting_bg_pixbuf = utils.get_common_image_pixbuf( "waiting/waiting_bg.png") self.waiting_fg_pixbuf = utils.get_common_image_pixbuf( "waiting/waiting_fg.png") self.waiting_animation.connect("expose-event", self.expose_waiting) self.counter = 1 self.factor = math.pi / 10 gtk.timeout_add(50, self.on_timer) self.label = Label( _("Speed testing will finish only after one minute, please wait."), text_size=10, wrap_width=self.dialog_width - 36 - 60, ) self.waiting_hbox = gtk.HBox() self.waiting_hbox.pack_start(self.waiting_animation, False, False) self.waiting_hbox.pack_start(self.label, False, False) self.center_align = gtk.Alignment() self.center_align.set(0.5, 0.5, 0, 0) self.center_align.set_padding(0, 0, 8, 8) self.body_box.add(self.center_align) global_event.register_event("mirror-test-finished", self.show_result)
def __init__(self, pkg_cache): ''' init docs ''' MissionThreadPool.__init__( self, 1, 1, self.clean_action, ) self.pkg_cache = pkg_cache self.install_action_dict = {} self.uninstall_action_dict = {} self.upgrade_action_dict = {} global_event.register_event("action-start", self.start_action) global_event.register_event("action-update", self.update_action)
def __init__(self): PreferenceDialog.__init__(self, 566, 488) self.waiting_dialog = WaitingDialog() self.waiting_dialog.set_transient_for(self) preference_items = [] self.general_box = GeneralBox() preference_items.append((_("General"), self.general_box)) #if len(all_mirrors) > 0: #self.mirrors_box = MirrorsBox() #preference_items.append((_("Mirrors"), self.mirrors_box)) self.about_box = AboutBox() preference_items.append((_("About"), self.about_box)) self.set_preference_items(preference_items) global_event.register_event("toggle-waiting-dialog", self.handle_toggle_waiting_dialog) global_event.register_event("mirror-backend-changed", self.handle_after_mirror_changed)
def __init__(self): PreferenceDialog.__init__(self, 566, 488) self.waiting_dialog = WaitingDialog() self.waiting_dialog.set_transient_for(self) self.general_box = GeneralBox() self.mirrors_box = MirrorsBox() self.about_box = AboutBox() self.set_preference_items([ (_("General"), self.general_box), (_("Mirrors"), self.mirrors_box), (_("About"), self.about_box), ]) global_event.register_event("toggle-waiting-dialog", self.handle_toggle_waiting_dialog) global_event.register_event("mirror-backend-changed", self.handle_after_mirror_changed)
def __init__(self, hide_callback=None): self.hide_callback = hide_callback self.dialog_width = 330 DialogBox.__init__( self, title="", default_width=self.dialog_width, default_height=145, mask_type=0, close_callback=self.close_action, modal=True, window_hint=gtk.gdk.WINDOW_TYPE_HINT_DIALOG, window_pos=None, skip_taskbar_hint=True, resizable=False, window_type=gtk.WINDOW_TOPLEVEL, ) self.waiting_animation = gtk.VBox() self.waiting_animation.set_size_request(36, 36) self.waiting_bg_pixbuf = utils.get_common_image_pixbuf("waiting/waiting_bg.png") self.waiting_fg_pixbuf = utils.get_common_image_pixbuf("waiting/waiting_fg.png") self.waiting_animation.connect("expose-event", self.expose_waiting) self.counter = 1 self.factor = math.pi/10 gtk.timeout_add(50, self.on_timer) self.label = Label( _("Speed testing will finish only after one minute, please wait."), text_size=10, wrap_width=self.dialog_width- 36 - 60, ) self.waiting_hbox = gtk.HBox() self.waiting_hbox.pack_start(self.waiting_animation, False, False) self.waiting_hbox.pack_start(self.label, False, False) self.center_align = gtk.Alignment() self.center_align.set(0.5, 0.5, 0, 0) self.center_align.set_padding(0, 0, 8, 8) self.body_box.add(self.center_align) global_event.register_event("mirror-test-finished", self.show_result)
def __init__(self, data_manager): ''' init docs ''' # Init. gtk.VBox.__init__(self) self.in_detail_view = False self.data_manager = data_manager self.album_summary_align = gtk.Alignment() self.album_summary_align.set(0.5, 0.5, 1, 1) self.album_summary_align.set_padding(0, 0, 0, 10) self.album_detail_align = gtk.Alignment() self.album_detail_align.set(0.5, 0.5, 1, 1) self.album_detail_align.set_padding(5, 0, 0, 10) self.album_summary_view = AlbumSummaryView() self.loading_box = LoadingBox() self.network_failed_box = NetworkConnectFailed( self.check_network_connection) container_remove_all(self) self.add(self.loading_box) self.check_network_connection() global_event.register_event("switch-to-album-detail-view", self.switch_to_album_detail_view) global_event.register_event('switch-to-album-summary-view', self.switch_to_album_summary_view) global_event.register_event('switch-to-network-problem-view', self.switch_to_network_problem_view)
def __init__(self): super(GuideBox, self).__init__() self.scrolled_window = ScrolledWindow() self.backgroundbox = BackgroundBox() self.backgroundbox.draw_mask = self.draw_mask self.guide_pixbuf = utils.get_common_image_pixbuf('guide.png') self.top_title = gtk.HBox() self.top_left_icon = gtk.VBox() self.top_left_icon.set_size_request(self.guide_pixbuf.get_width(), self.guide_pixbuf.get_height()) self.top_left_icon.connect('expose-event', self.expose_top_left_icon) top_left_icon_align = gtk.Alignment(0.5, 0.5, 0, 0) top_left_icon_align.set_padding(15, 3, 13, 3) top_left_icon_align.add(self.top_left_icon) self.top_right_text = Label(_("Introduction"), ui_theme.get_color('label_select_background'), 14) top_right_text_align = gtk.Alignment(0.5, 0.5, 0, 0) top_right_text_align.set_padding(18, 3, 3, 3) top_right_text_align.add(self.top_right_text) self.top_title.pack_start(top_left_icon_align, False, False) self.top_title.pack_start(top_right_text_align, False, False) self.content_box = gtk.VBox() self.guide_label = Label('', enable_select=False, wrap_width=200, text_size=9, text_color=DynamicColor('#808080')) guide_label_align = gtk.Alignment(0.5, 0.5, 1, 1) guide_label_align.set_padding(5, 5, 10, 10) guide_label_align.add(self.guide_label) self.content_box.pack_start(guide_label_align, False, False) self.backgroundbox.pack_start(self.top_title, False, False) self.backgroundbox.pack_start(self.content_box) self.scrolled_window.add_child(self.backgroundbox) self.add(self.scrolled_window) global_event.register_event('download-app-info-finish', self.update_content)
def create_mirror_select_table(self): vbox = gtk.VBox() vbox.set_size_request(423, -1) main_table = gtk.Table(2, 2) main_table.set_row_spacings(CONTENT_ROW_SPACING) dir_title_label = Label(_("Select mirror")) dir_title_label.set_size_request(423, 12) label_align = gtk.Alignment() label_align.set_padding(0, 0, 10, 0) label_align.add(dir_title_label) self.mirrors_dir = os.path.join(get_parent_dir(__file__, 2), 'mirrors') self.current_mirror_hostname = utils.get_current_mirror_hostname() self.mirror_items = self.get_mirror_items() self.mirror_view = TreeView(self.mirror_items, enable_drag_drop=False, enable_multiple_select=False, #mask_bound_height=0, ) self.mirror_view.set_expand_column(1) self.mirror_view.set_size_request(-1, len(self.mirror_view.visible_items) * self.mirror_view.visible_items[0].get_height()) self.mirror_view.draw_mask = self.mirror_treeview_draw_mask #self.display_current_mirror() self.mirror_test_progressbar = ProgressBar() main_table.attach(label_align, 0, 2, 0, 1, yoptions=gtk.FILL, xpadding=8) main_table.attach(create_separator_box(), 0, 2, 1, 2, yoptions=gtk.FILL) title = _("Select best mirror") info_message = _("Please wait. The process will take 30 seconds or more depending on your network connection") self.select_best_mirror_dialog = WaitingDialog(title, info_message, self.cancel_mirror_test) global_event.register_event("mirror-changed", self.mirror_changed_handler) global_event.register_event("update-list-finish", self.update_list_finish_handler) vbox.pack_start(main_table, False, False) vbox.pack_start(self.mirror_view, False, False) return vbox
def __init__(self, data_manager): ''' init docs ''' # Init. gtk.VBox.__init__(self) self.in_detail_view = False self.data_manager = data_manager self.album_summary_align = gtk.Alignment() self.album_summary_align.set(0.5, 0.5, 1, 1) self.album_summary_align.set_padding(0, 0, 0, 10) self.album_detail_align = gtk.Alignment() self.album_detail_align.set(0.5, 0.5, 1, 1) self.album_detail_align.set_padding(5, 0, 0, 10) self.album_summary_view = AlbumSummaryView() self.loading_box = LoadingBox() self.network_failed_box = NetworkConnectFailed(self.check_network_connection) container_remove_all(self) self.add(self.loading_box) self.check_network_connection() global_event.register_event("switch-to-album-detail-view", self.switch_to_album_detail_view) global_event.register_event('switch-to-album-summary-view', self.switch_to_album_summary_view) global_event.register_event('switch-to-network-problem-view', self.switch_to_network_problem_view)
def __init__(self, bus_interface, data_manager): ''' init docs ''' # Init. gtk.VBox.__init__(self) self.bus_interface = bus_interface self.data_manager = data_manager self.search_flag = False self.uninstall_change_items = {"add": [], "delete": []} ### init UI widgets self.message_bar = MessageBar(32) self.message_bar.search_entry.entry.connect("changed", self.search_cb) self.message_bar.search_button.connect("clicked", self.search_cb) self.top_hbox = gtk.HBox() self.top_hbox.pack_start(self.message_bar) self.treeview = TreeView(enable_drag_drop=False) self.treeview.set_expand_column(0) self.treeview.connect("items-change", self.update_message_bar) self.loading_box = LoadingBox() self.loading_box_align = create_align((0.5, 0.5, 1, 1), (10, 10, 10, 10)) self.loading_box_align.add(self.loading_box) ### init UI widgets self.white_kernel_pkg_names = self.get_white_kernel_pkg_names() global_event.register_event("uninstall-items-filtered", self.load_uninstall_items) self.show_loading_page() self.fetch_uninstall_info() self.treeview.draw_mask = self.draw_mask
def __init__(self): BaseBox.__init__(self) self.current_mirror_item = None self.select_best_mirror_button_texts = { "normal": _("Select the best mirror"), "wait": _("Waiting"), "success": _("Successfully") } self.main_box.pack_start(self.create_mirror_select_table(), True, True) self.main_box.pack_start(self.create_source_update_frequency_table(), False, True) self.mirror_test_obj = None global_event.register_event("mirror-test-finished", self.finish_mirror_test) global_event.register_event("cancel-mirror-test", self.cancel_mirror_test) global_event.register_event("mirror-backend-changed", self.mirror_changed_handler)
def __init__(self, data_manager): ''' init docs ''' gtk.HBox.__init__(self) self.data_manager = data_manager self.pkg_name = None self.alias_name = "" self.pkg_pixbuf = None self.pkg_star_view = None self.left_view_box = gtk.VBox() self.left_view_box.set_size_request(self.LEFT_INFO_WIDTH, - 1) self.left_logo_box = gtk.VBox() self.left_logo_box.set_size_request(-1, 90) self.star_box = gtk.HBox() self.star_align = gtk.Alignment(0.4, 0.5, 0, 0) self.star_align.set_padding(0, 5, 0, 0) self.star_align.add(self.star_box) self.left_action_box = gtk.HBox() self.left_action_align = gtk.Alignment() self.left_action_align.set(0.5, 0.5, 0, 0) self.left_action_align.set_padding(0, 30, 0, 0) self.left_action_align.add(self.left_action_box) self.left_label_table = gtk.Table(4, 1) self.left_label_table.set_row_spacings(4) self.left_label_align = gtk.Alignment() self.left_label_align.set(0.0, 0.5, 0, 0) self.left_label_align.set_padding(0, 0, 14, 0) self.left_category_name_label = Label() self.left_category_label = Label(hover_color=app_theme.get_color("homepage_hover")) self.left_category_label.set_clickable() self.left_category_label_align = gtk.Alignment() self.left_category_label_align.set(0.0, 0.5, 0, 0) self.left_category_label_align.add(self.left_category_label) self.left_category_label_box = gtk.HBox() self.left_category_label_box.pack_start(self.left_category_name_label, False, False) self.left_category_label_box.pack_start(self.left_category_label_align, True, True) self.left_category_box = gtk.VBox() self.left_version_label = Label(label_width=136) show_label_tooltip(self.left_version_label) self.left_version_label.set_ellipsize(pango.ELLIPSIZE_END) self.left_download_label = Label() self.left_size_label = Label() self.left_homepage_box = gtk.HBox() self.left_homepage_box_align = gtk.Alignment() self.left_homepage_box_align.set(0.0, 0.5, 0, 0) self.left_homepage_box_align.add(self.left_homepage_box) self.left_recommend_box = gtk.VBox() self.left_recommend_box_align = gtk.Alignment() self.left_recommend_box_align.set(0.0, 0.0, 0, 0) self.left_recommend_box_align.set_padding(30, 0, 14, 0) self.left_recommend_box_align.add(self.left_recommend_box) self.left_recommend_label = Label(_("Popular recommendations")) self.right_info_box = gtk.VBox() self.scrolled_window = ScrolledWindow(0, 0) self.right_view_box = gtk.VBox() self.right_top_box = gtk.HBox() self.right_top_box.set_size_request(-1, self.RIGHT_TITLE_BOX_HEIGHT) self.right_desc_box = gtk.VBox() self.right_slide_box = gtk.VBox() self.right_comment_box = gtk.VBox() self.right_title_box = gtk.VBox() self.return_button = ImageButton( app_theme.get_pixbuf("detail/normal.png"), app_theme.get_pixbuf("detail/hover.png"), app_theme.get_pixbuf("detail/press.png"), ) self.return_align = gtk.Alignment() self.return_align.set(0.5, 0.5, 1, 1) self.return_align.set_padding(self.ALIAS_NAME_PADDING_Y, 0, 0, self.RIGHT_INFO_PADDING_X) self.return_align.add(self.return_button) self.return_button.connect("clicked", lambda w: global_event.emit("switch-from-detail-page")) self.right_top_box.pack_start(self.right_title_box, True, True) self.right_top_box.pack_start(self.return_align, False, False) self.right_view_box.pack_start(self.right_top_box, False, False) self.right_view_box.pack_start(self.right_desc_box, False, False) self.right_view_box.pack_start(self.right_slide_box, False, False) self.right_view_box.pack_start(self.right_comment_box, False, False) self.scrolled_window.add_child(self.right_view_box) self.left_view_box.pack_start(self.left_logo_box, False, False) self.left_view_box.pack_start(self.star_align, False, False) self.left_view_box.pack_start(self.left_action_align, False, False) self.left_label_table.attach(self.left_category_box, 0, 1, 0, 1) self.left_label_table.attach(self.left_version_label, 0, 1, 1, 2) self.left_label_table.attach(self.left_size_label, 0, 1, 2, 3) self.left_label_table.attach(self.left_download_label, 0, 1, 3, 4) self.left_label_table.attach(self.left_homepage_box_align, 0, 1, 4, 5) self.left_label_align.add(self.left_label_table) self.left_view_box.pack_start(self.left_label_align, False, False) self.left_view_box.pack_start(self.left_recommend_box_align, False, False) self.right_info_box.pack_start(self.scrolled_window, True, True) self.pack_start(self.left_view_box, False, False) self.pack_start(self.right_info_box, True, True) self.left_view_box.connect("expose-event", self.expose_left_view) self.right_view_box.connect("expose-event", self.expose_right_view) self.left_logo_box.connect("expose-event", self.expose_left_logo_box) self.right_top_box.connect("expose-event", self.expose_right_top_box) self.right_title_box.connect("expose-event", self.expose_right_title_box) self.connect("hierarchy-changed", self.hierarchy_change) self.left_category_label.connect("button-press-event", lambda w, e: self.jump_to_category()) global_event.register_event("download-screenshot-finish", self.download_screenshot_finish) self.loading_label = Label(_("Loading comments...")) self.loading_label_align = gtk.Alignment(0.5, 0, 0, 0) self.loading_label_align.add(self.loading_label) self.loading_label_align.set_padding(10, 0, 0, 0) self.update_pkg_time = 0 self.update_pkg_interval = 0.2 # in seconds
global cursor_postion global timeout_tooltip_action_id if new_cursor_postion != cursor_postion and new_cursor_postion == "name": if timeout_tooltip_action_id: gobject.source_remove(timeout_tooltip_action_id) timeout_tooltip_action_id = None timeout_tooltip_action_id = gobject.timeout_add(1000, timeout_tooltip_action, item) elif new_cursor_postion != cursor_postion and new_cursor_postion == 'other': if timeout_tooltip_action_id: gobject.source_remove(timeout_tooltip_action_id) timeout_tooltip_action_id = None global_event.emit('hide-pkg-name-tooltip') cursor_postion = new_cursor_postion global_event.register_event("cursor-position-changed", cursor_postion_changed) def tooltip_aciton(view, item, x, y): if item.is_in_name_area(x, y): new_cursor_postion = "name" else: new_cursor_postion = "other" global_event.emit("cursor-position-changed", item, new_cursor_postion) def timeout_tooltip_action(item): global_event.emit("show-pkg-name-tooltip", item.alias_name) return False class HomePage(gtk.HBox):
def init_ui(self): self.application = Application() self.application.set_default_size(1000, 660) self.application.set_skin_preview(get_common_image("frame.png")) self.application.set_icon(get_common_image("logo48.png")) self.application.add_titlebar( ["theme", "menu", "max","min", "close"], show_title=False ) self.application.window.set_title(_("Deepin Games")) # Init page box. self.page_box = gtk.VBox() self.page_box.connect('expose-event', self.page_box_render) # Init page align. self.page_align = gtk.Alignment() self.page_align.set(0.5, 0.5, 1, 1) self.page_align.set_padding(0, 0, 2, 2) # Append page to switcher. self.paned_box = PanedBox(24) self.paned_box.add_content_widget(self.page_box) self.bottom_tip_bar = BottomTipBar() self.bottom_tip_bar.close_button.connect('clicked', lambda w: self.paned_box.bottom_window.hide()) self.paned_box.add_bottom_widget(self.bottom_tip_bar) self.page_align.add(self.paned_box) self.application.main_box.pack_start(self.page_align, True, True) # Init status bar. self.statusbar = Statusbar(30) status_box = gtk.HBox() self.statusbar.status_box.pack_start(status_box, True, True) self.application.main_box.pack_start(self.statusbar, False, False) self.webview = WebView(COOKIE_FILE) webkit.set_web_database_directory_path(CACHE_DIR) web_settings = self.webview.get_settings() web_settings.set_property("enable-page-cache", True) web_settings.set_property("enable-offline-web-application-cache", True) #web_settings.set_property("enable-file-access-from-file-uris", True) web_settings.set_property("enable-xss-auditor", False) web_settings.set_property('enable-universal-access-from-file-uris', True) web_settings.set_property("enable-default-context-menu", False) self.webview.set_settings(web_settings) #self.webview.enable_inspector() self.webview.connect('new-window-policy-decision-requested', self.navigation_policy_decision_requested_cb) #self.webview.connect('notify::load-status', self.webview_load_status_handler) self.webview.connect('notify::title', self.webview_title_changed_handler) self.webview.connect('script-alert', self.webview_script_alert_handler) self.webview.connect('window-object-cleared', self.webview_window_object_cleared) #self.webview.connect('load-progress-changed', self.load_progress) self.home_url = urllib.basejoin(GAME_CENTER_SERVER_ADDRESS, 'game/?hl=%s' % LANGUAGE) self.network_failed_box = NetworkConnectFailed(self.check_network_connection) self.check_network_connection() #self.page_box.add(self.network_failed_box) self.navigatebar = Navigatebar( [ (None, _("Home"), self.show_home_page), (None, _("Topics"), self.show_subject_page), (None, _("My Games"), self.show_mygame_page), ], font_size = 11, padding_x = 5, padding_y = 16, vertical=False, item_normal_pixbuf=DynamicPixbuf(get_common_image('top/nav_normal.png')), item_hover_pixbuf=DynamicPixbuf(get_common_image('top/nav_hover.png')), item_press_pixbuf=DynamicPixbuf(get_common_image('top/nav_press.png')), ) self.navigatebar.set_size_request(-1, 56) self.navigatebar_align = gtk.Alignment(0, 0, 1, 1) self.navigatebar_align.set_padding(0, 0, 4, 0) self.navigatebar_align.add(self.navigatebar) self.application.titlebar.set_size_request(-1, 56) self.application.titlebar.left_box.pack_start(self.navigatebar_align, True, True) self.application.window.add_move_event(self.navigatebar) self.about_dialog = AboutDialog(_('About us')) self.about_dialog.set_transient_for(self.application.window) # Init menu. #if LANGUAGE == 'en_US': #menu_min_width = 185 #else: #menu_min_width = 150 menu = Menu( [ (None, _("Clear all cached data"), self.clean_download_cache), (None, _("See what's new"), lambda : self.show_wizard_win()), (None, _("About us"), self.show_about_dialog), (None, _("Quit"), lambda: gtk.main_quit()), ], is_root_menu=True, #menu_min_width=menu_min_width, ) self.application.set_menu_callback( lambda button: menu.show( get_widget_root_coordinate(button, WIDGET_POS_BOTTOM_LEFT), (button.get_allocation().width, 0))) self.no_favorite_html_path = os.path.join(static_dir, "error-no-favorite.html") self.no_recent_html_path = os.path.join(static_dir, "error-no-recent.html") self.mygame_frame_path = os.path.join(static_dir, "mygame-frame.html") self.gallery_html_path = os.path.join(static_dir, 'game-mygame.html') skin_config.connect('theme-changed', self.theme_changed_handler) global_event.register_event('show-message', self.update_message)
def __init__(self, data_manager): # Init. gtk.VBox.__init__(self) self.data_manager = data_manager self.tab_box = gtk.HBox() self.tab_box.set_size_request(-1, RANK_TAB_HEIGHT) self.tab_box.set_spacing(1) self.tab_box_align = gtk.Alignment() self.tab_box_align.set(1, 0, 0, 0) self.tab_box_align.set_padding(3, 9, 25, 48) for (tab_index, tab_name) in enumerate( [_("Top 25 weekly"), _("Top 25 monthly"), _("Top 25 totally")]): self.tab_box.pack_start( RankTab(tab_index, tab_name, tab_index == 0), False, False) self.page_box = gtk.VBox() self.page_align = gtk.Alignment() self.page_align.set(0.5, 0.5, 1, 1) self.page_align.set_padding(0, 0, 15, 15) self.week_rank_icon_view = IconView() self.week_rank_icon_view_scrlledwindow = ScrolledWindow() self.week_rank_icon_view.draw_mask = self.draw_mask self.month_rank_icon_view = IconView() self.month_rank_icon_view_scrlledwindow = ScrolledWindow() self.month_rank_icon_view.draw_mask = self.draw_mask self.all_rank_icon_view = IconView() self.all_rank_icon_view_scrlledwindow = ScrolledWindow() self.all_rank_icon_view.draw_mask = self.draw_mask self.week_rank_icon_view_scrlledwindow.add_child( self.week_rank_icon_view) self.month_rank_icon_view_scrlledwindow.add_child( self.month_rank_icon_view) self.all_rank_icon_view_scrlledwindow.add_child( self.all_rank_icon_view) self.tab_box_align.add(self.tab_box) self.page_box.pack_start(self.page_align) self.pack_start(self.tab_box_align, False, False) self.pack_start(self.page_box, True, True) self.loading = LoadingBox() self.view_list = [('week', self.week_rank_icon_view, self.week_rank_icon_view_scrlledwindow), ('month', self.month_rank_icon_view, self.month_rank_icon_view_scrlledwindow), ('all', self.all_rank_icon_view, self.all_rank_icon_view_scrlledwindow)] self.pkg_names = [] self.show_flag = None self.all_show_flag = ['week', 'month', 'all'] global_event.register_event("update-rank-page", self.update_rank_page) gtk.timeout_add(300, self.get_pkgs_status) global_event.emit("update-rank-page", 0)
def __init__(self, appid, widget_display=[]): Statusbar.__init__(self, 39, ) self.appid = appid self.widget_display = widget_display self.widget_main_box = gtk.HBox() self.register_widgets = {} self.mute_button = ToggleButton( app_theme.get_pixbuf('mute/sound_normal.png'), app_theme.get_pixbuf('mute/mute_normal.png'), app_theme.get_pixbuf('mute/sound_hover.png'), app_theme.get_pixbuf('mute/mute_hover.png'), app_theme.get_pixbuf('mute/sound_press.png'), app_theme.get_pixbuf('mute/mute_press.png'), active_button_label = _('Volume'), inactive_button_label = _('Mute'), draw_background=True, padding_edge=10, padding_middle=6) #self.mute_button.connect('clicked', self.mute_handler) mute_button_align = gtk.Alignment() mute_button_align.set(0, 0.5, 0, 0) mute_button_align.set_padding(3, 6, 3, 3) mute_button_align.add(self.mute_button) self.register_widgets["mute"] = mute_button_align self.favorite_button = ToggleButton( app_theme.get_pixbuf('favorite/unfavorite_normal.png'), app_theme.get_pixbuf('favorite/favorite_normal.png'), app_theme.get_pixbuf('favorite/unfavorite_hover.png'), app_theme.get_pixbuf('favorite/favorite_hover.png'), app_theme.get_pixbuf('favorite/unfavorite_press.png'), app_theme.get_pixbuf('favorite/favorite_press.png'), active_button_label = _('Favorite'), draw_background=True, padding_edge=10, padding_middle=6) #self.favorite_button.connect('clicked', self.toggle_favorite) favorite_button_align = gtk.Alignment() favorite_button_align.set(0, 0.5, 0, 0) favorite_button_align.set_padding(3, 6, 3, 3) favorite_button_align.add(self.favorite_button) self.register_widgets['favorite'] = favorite_button_align self.replay_button = Button( app_theme.get_pixbuf('replay/replay_normal.png'), app_theme.get_pixbuf('replay/replay_hover.png'), app_theme.get_pixbuf('replay/replay_press.png'), button_label = _('Replay'), draw_background=True, padding_edge=10, padding_middle=6) #self.replay_button.connect('clicked', self.replay_action) replay_button_align = gtk.Alignment() replay_button_align.set(0, 0.5, 0, 0) replay_button_align.set_padding(3, 6, 3, 3) replay_button_align.add(self.replay_button) self.register_widgets["replay"] = replay_button_align if LANGUAGE == 'en_US': more_width = 14 else: more_width = 0 self.pause_button = ToggleButton( app_theme.get_pixbuf('pause/pause_normal.png'), app_theme.get_pixbuf('pause/play_normal.png'), app_theme.get_pixbuf('pause/pause_hover.png'), app_theme.get_pixbuf('pause/play_hover.png'), app_theme.get_pixbuf('pause/pause_press.png'), app_theme.get_pixbuf('pause/play_press.png'), active_button_label = _('Pause'), inactive_button_label = _('Continue'), draw_background=True, padding_edge=10, padding_middle=6, more_width=more_width) #self.pause_button.connect('button-press-event', self.pause_handler) pause_button_align = gtk.Alignment() pause_button_align.set(0, 0.5, 0, 0) pause_button_align.set_padding(3, 6, 10, 3) pause_button_align.add(self.pause_button) self.register_widgets["pause"] = pause_button_align self.fullscreen_button = ToggleButton( app_theme.get_pixbuf('fullscreen/fullscreen_normal.png'), app_theme.get_pixbuf('fullscreen/unfullscreen_normal.png'), app_theme.get_pixbuf('fullscreen/fullscreen_hover.png'), app_theme.get_pixbuf('fullscreen/unfullscreen_hover.png'), app_theme.get_pixbuf('fullscreen/fullscreen_press.png'), app_theme.get_pixbuf('fullscreen/unfullscreen_press.png'), active_button_label = _('Fullscreen'), inactive_button_label = _('Normal'), draw_background=True, padding_edge=10, padding_middle=6) #self.fullscreen_button.connect('clicked', self.fullscreen_action) fullscreen_button_align = gtk.Alignment() fullscreen_button_align.set(0, 0.5, 0, 0) fullscreen_button_align.set_padding(3, 6, 3, 3) fullscreen_button_align.add(self.fullscreen_button) self.register_widgets["fullscreen"] = fullscreen_button_align self.share_button = Button( app_theme.get_pixbuf('share/share_normal.png'), app_theme.get_pixbuf('share/share_hover.png'), app_theme.get_pixbuf('share/share_press.png'), button_label = _('Share'), draw_background=True, padding_edge=10, padding_middle=6) #self.share_button.connect('clicked', self.share_action) share_button_align = gtk.Alignment() share_button_align.set(0, 0.5, 0, 0) share_button_align.set_padding(3, 6, 3, 3) share_button_align.add(self.share_button) self.register_widgets["share"] = share_button_align star_box = gtk.HBox() self.star = StarView() self.star.set_star_level(9) star_align = gtk.Alignment(0.5, 0.5, 0, 0) star_align.set_padding(2, 2, 3, 0) star_align.add(self.star) self.star_mark = Markbox(5.0, '#ffffff') star_mark_align = gtk.Alignment(0.5, 0, 0, 0) star_mark_align.set_padding(2, 4, 3, 20) star_mark_align.add(self.star_mark) star_box.pack_start(star_align) star_box.pack_start(star_mark_align) star_box_align = gtk.Alignment(1, 0.5, 0, 0) star_box_align.set_padding(0, 0, 3, 0) star_box_align.add(star_box) self.register_widgets["star"] = star_box_align if "pause" in self.widget_display: self.widget_main_box.pack_start(pause_button_align, False, False) #if "mute" in self.widget_display: #self.widget_main_box.pack_start(mute_button_align, False, False) if "replay" in self.widget_display: self.widget_main_box.pack_start(replay_button_align, False, False) if "favorite" in self.widget_display: self.widget_main_box.pack_start(favorite_button_align, False, False) if "fullscreen" in self.widget_display: self.widget_main_box.pack_start(fullscreen_button_align, False, False) if "share" in self.widget_display: self.widget_main_box.pack_start(share_button_align, False, False) if "star" in self.widget_display: self.widget_main_box.pack_end(star_box_align) self.status_box.pack_start(self.widget_main_box, True, True) self.leave_callback = None #self.connect('motion-notify-event', self.leave_event_handler) global_event.register_event('download-app-info-finish', self.update_star) global_event.register_event('set-star-score-success', self.score_success_handler) self.star.connect("button-press-event", self.star_press) self.cookie = get_cookie_star(self.appid) if self.cookie: self.star.set_read_only(True)
def __init__(self, appid, widget_display=[]): Statusbar.__init__( self, 39, ) self.appid = appid self.widget_display = widget_display self.widget_main_box = gtk.HBox() self.register_widgets = {} self.mute_button = ToggleButton( app_theme.get_pixbuf('mute/sound_normal.png'), app_theme.get_pixbuf('mute/mute_normal.png'), app_theme.get_pixbuf('mute/sound_hover.png'), app_theme.get_pixbuf('mute/mute_hover.png'), app_theme.get_pixbuf('mute/sound_press.png'), app_theme.get_pixbuf('mute/mute_press.png'), active_button_label=_('Volume'), inactive_button_label=_('Mute'), draw_background=True, padding_edge=10, padding_middle=6) #self.mute_button.connect('clicked', self.mute_handler) mute_button_align = gtk.Alignment() mute_button_align.set(0, 0.5, 0, 0) mute_button_align.set_padding(3, 6, 3, 3) mute_button_align.add(self.mute_button) self.register_widgets["mute"] = mute_button_align self.favorite_button = ToggleButton( app_theme.get_pixbuf('favorite/unfavorite_normal.png'), app_theme.get_pixbuf('favorite/favorite_normal.png'), app_theme.get_pixbuf('favorite/unfavorite_hover.png'), app_theme.get_pixbuf('favorite/favorite_hover.png'), app_theme.get_pixbuf('favorite/unfavorite_press.png'), app_theme.get_pixbuf('favorite/favorite_press.png'), active_button_label=_('Favorite'), draw_background=True, padding_edge=10, padding_middle=6) #self.favorite_button.connect('clicked', self.toggle_favorite) favorite_button_align = gtk.Alignment() favorite_button_align.set(0, 0.5, 0, 0) favorite_button_align.set_padding(3, 6, 3, 3) favorite_button_align.add(self.favorite_button) self.register_widgets['favorite'] = favorite_button_align self.replay_button = Button( app_theme.get_pixbuf('replay/replay_normal.png'), app_theme.get_pixbuf('replay/replay_hover.png'), app_theme.get_pixbuf('replay/replay_press.png'), button_label=_('Replay'), draw_background=True, padding_edge=10, padding_middle=6) #self.replay_button.connect('clicked', self.replay_action) replay_button_align = gtk.Alignment() replay_button_align.set(0, 0.5, 0, 0) replay_button_align.set_padding(3, 6, 3, 3) replay_button_align.add(self.replay_button) self.register_widgets["replay"] = replay_button_align if LANGUAGE == 'en_US': more_width = 14 else: more_width = 0 self.pause_button = ToggleButton( app_theme.get_pixbuf('pause/pause_normal.png'), app_theme.get_pixbuf('pause/play_normal.png'), app_theme.get_pixbuf('pause/pause_hover.png'), app_theme.get_pixbuf('pause/play_hover.png'), app_theme.get_pixbuf('pause/pause_press.png'), app_theme.get_pixbuf('pause/play_press.png'), active_button_label=_('Pause'), inactive_button_label=_('Continue'), draw_background=True, padding_edge=10, padding_middle=6, more_width=more_width) #self.pause_button.connect('button-press-event', self.pause_handler) pause_button_align = gtk.Alignment() pause_button_align.set(0, 0.5, 0, 0) pause_button_align.set_padding(3, 6, 10, 3) pause_button_align.add(self.pause_button) self.register_widgets["pause"] = pause_button_align self.fullscreen_button = ToggleButton( app_theme.get_pixbuf('fullscreen/fullscreen_normal.png'), app_theme.get_pixbuf('fullscreen/unfullscreen_normal.png'), app_theme.get_pixbuf('fullscreen/fullscreen_hover.png'), app_theme.get_pixbuf('fullscreen/unfullscreen_hover.png'), app_theme.get_pixbuf('fullscreen/fullscreen_press.png'), app_theme.get_pixbuf('fullscreen/unfullscreen_press.png'), active_button_label=_('Fullscreen'), inactive_button_label=_('Normal'), draw_background=True, padding_edge=10, padding_middle=6) #self.fullscreen_button.connect('clicked', self.fullscreen_action) fullscreen_button_align = gtk.Alignment() fullscreen_button_align.set(0, 0.5, 0, 0) fullscreen_button_align.set_padding(3, 6, 3, 3) fullscreen_button_align.add(self.fullscreen_button) self.register_widgets["fullscreen"] = fullscreen_button_align self.share_button = Button( app_theme.get_pixbuf('share/share_normal.png'), app_theme.get_pixbuf('share/share_hover.png'), app_theme.get_pixbuf('share/share_press.png'), button_label=_('Share'), draw_background=True, padding_edge=10, padding_middle=6) #self.share_button.connect('clicked', self.share_action) share_button_align = gtk.Alignment() share_button_align.set(0, 0.5, 0, 0) share_button_align.set_padding(3, 6, 3, 3) share_button_align.add(self.share_button) self.register_widgets["share"] = share_button_align star_box = gtk.HBox() self.star = StarView() self.star.set_star_level(9) star_align = gtk.Alignment(0.5, 0.5, 0, 0) star_align.set_padding(2, 2, 3, 0) star_align.add(self.star) self.star_mark = Markbox(5.0, '#ffffff') star_mark_align = gtk.Alignment(0.5, 0, 0, 0) star_mark_align.set_padding(2, 4, 3, 20) star_mark_align.add(self.star_mark) star_box.pack_start(star_align) star_box.pack_start(star_mark_align) star_box_align = gtk.Alignment(1, 0.5, 0, 0) star_box_align.set_padding(0, 0, 3, 0) star_box_align.add(star_box) self.register_widgets["star"] = star_box_align if "pause" in self.widget_display: self.widget_main_box.pack_start(pause_button_align, False, False) #if "mute" in self.widget_display: #self.widget_main_box.pack_start(mute_button_align, False, False) if "replay" in self.widget_display: self.widget_main_box.pack_start(replay_button_align, False, False) if "favorite" in self.widget_display: self.widget_main_box.pack_start(favorite_button_align, False, False) if "fullscreen" in self.widget_display: self.widget_main_box.pack_start(fullscreen_button_align, False, False) if "share" in self.widget_display: self.widget_main_box.pack_start(share_button_align, False, False) if "star" in self.widget_display: self.widget_main_box.pack_end(star_box_align) self.status_box.pack_start(self.widget_main_box, True, True) self.leave_callback = None #self.connect('motion-notify-event', self.leave_event_handler) global_event.register_event('download-app-info-finish', self.update_star) global_event.register_event('set-star-score-success', self.score_success_handler) self.star.connect("button-press-event", self.star_press) self.cookie = get_cookie_star(self.appid) if self.cookie: self.star.set_read_only(True)
def init_backend(self): # Init detail view. self.detail_page = DetailPage(self.data_manager) self.page_switcher.append_page(self.detail_page) log("Init pages.") self.loginfo("Init pages") self.upgrade_page = UpgradePage(self.bus_interface, self.data_manager, self.preference_dialog) self.uninstall_page = UninstallPage(self.bus_interface, self.data_manager) self.install_page = InstallPage(self.bus_interface, self.data_manager) log("Handle global event.") # Handle global event. global_event.register_event("install-pkg", lambda pkg_names: install_pkg( self.bus_interface, self.install_page, pkg_names, self.application.window)) global_event.register_event("upgrade-pkg", self.upgrade_pkgs) global_event.register_event("uninstall-pkg", lambda pkg_name, purge_flag: self.uninstall_pkg(pkg_name, purge_flag)) global_event.register_event("stop-download-pkg", self.bus_interface.stop_download_pkg) global_event.register_event("switch-to-detail-page", lambda pkg_name : switch_to_detail_page(self.page_switcher, self.detail_page, pkg_name)) global_event.register_event("switch-from-detail-page", lambda : switch_from_detail_page(self.page_switcher, self.detail_page, self.page_box)) global_event.register_event("remove-wait-action", self.bus_interface.RemoveWaitMissions) global_event.register_event("remove-wait-download", self.bus_interface.remove_wait_downloads) global_event.register_event("request-clear-action-pages", request_clear_action_pages) global_event.register_event("request-stop-install-actions", request_stop_install_actions) global_event.register_event("request-clear-failed-action", request_clear_failed_action) global_event.register_event("update-upgrade-notify-number", lambda number: update_navigatebar_number(self.navigatebar, 1, number)) global_event.register_event("update-install-notify-number", lambda number: update_navigatebar_number(self.navigatebar, 3, number)) global_event.register_event("jump-to-category", lambda first_category_name, second_category_name: jump_to_category(self.page_switcher, self.page_box, self.home_page, self.detail_page, first_category_name, second_category_name)) global_event.register_event("grade-pkg", lambda pkg, star: grade_pkg(self.application.window, pkg, star)) global_event.register_event("set-cursor", lambda cursor: set_cursor(self.application.window, cursor)) global_event.register_event("show-message", self.update_status_bar_message) global_event.register_event("start-pkg", lambda alias_name, desktop_infos, offset: start_pkg( alias_name, desktop_infos, offset, self.application.window)) global_event.register_event("show-pkg-name-tooltip", lambda pkg_name: show_tooltip(self.application.window, pkg_name)) global_event.register_event("hide-pkg-name-tooltip", lambda :tool_tip.hide()) global_event.register_event("update-current-status-pkg-page", update_current_status_pkg_page) global_event.register_event('start-change-mirror', self.change_mirror_action) global_event.register_event('download-directory-changed', self.set_software_download_dir) global_event.register_event('vote-send-success', lambda p: vote_send_success_callback(p, self.application.window)) global_event.register_event('vote-send-failed', lambda p: vote_send_failed_callback(p, self.application.window)) global_event.register_event('max-download-number-changed', self.init_download_manager) global_event.register_event('update-list-finish', self.update_list_finish) global_event.register_event('start-update-list', self.update_list_handler) global_event.register_event("upgrade-finish-action", self.upgrade_finish_action) global_event.register_event("upload-error-log", self.exec_upload_error_log) self.bus_interface.connect_to_signal( signal_name="update_signal", handler_function=lambda messages: message_handler(messages, self.bus_interface, self.upgrade_page, self.uninstall_page, self.install_page, self.home_page, self.inhibit_obj, ), ) glib.timeout_add(1000, lambda : clear_action_pages(self.bus_interface, self.upgrade_page, self.uninstall_page, self.install_page)) glib.timeout_add(1000, lambda : clear_install_stop_list(self.install_page)) glib.timeout_add(1000, lambda : clear_failed_action(self.install_page, self.upgrade_page)) #self.init_download_manager() #self.request_update_list() self.upgrade_page.fetch_upgrade_info(utils.get_backend_running())
def __init__(self, data_manager): ''' init docs ''' gtk.HBox.__init__(self) self.data_manager = data_manager self.pkg_name = None self.alias_name = "" self.pkg_pixbuf = None self.pkg_star_view = None self.left_view_box = gtk.VBox() self.left_view_box.set_size_request(self.LEFT_INFO_WIDTH, -1) self.left_logo_box = gtk.VBox() self.left_logo_box.set_size_request(-1, 90) self.star_box = gtk.HBox() self.star_align = gtk.Alignment(0.4, 0.5, 0, 0) self.star_align.set_padding(0, 5, 0, 0) self.star_align.add(self.star_box) self.left_action_box = gtk.HBox() self.left_action_align = gtk.Alignment() self.left_action_align.set(0.5, 0.5, 0, 0) self.left_action_align.set_padding(0, 30, 0, 0) self.left_action_align.add(self.left_action_box) self.left_label_table = gtk.Table(4, 1) self.left_label_table.set_row_spacings(4) self.left_label_align = gtk.Alignment() self.left_label_align.set(0.0, 0.5, 0, 0) self.left_label_align.set_padding(0, 0, 14, 0) self.left_category_name_label = Label() self.left_category_label = Label( hover_color=app_theme.get_color("homepage_hover")) self.left_category_label.set_clickable() self.left_category_label_align = gtk.Alignment() self.left_category_label_align.set(0.0, 0.5, 0, 0) self.left_category_label_align.add(self.left_category_label) self.left_category_label_box = gtk.HBox() self.left_category_label_box.pack_start(self.left_category_name_label, False, False) self.left_category_label_box.pack_start(self.left_category_label_align, True, True) self.left_category_box = gtk.VBox() self.left_version_label = Label(label_width=136) show_label_tooltip(self.left_version_label) self.left_version_label.set_ellipsize(pango.ELLIPSIZE_END) self.left_download_label = Label() self.left_size_label = Label() self.left_homepage_box = gtk.HBox() self.left_homepage_box_align = gtk.Alignment() self.left_homepage_box_align.set(0.0, 0.5, 0, 0) self.left_homepage_box_align.add(self.left_homepage_box) self.left_recommend_box = gtk.VBox() self.left_recommend_box_align = gtk.Alignment() self.left_recommend_box_align.set(0.0, 0.0, 0, 0) self.left_recommend_box_align.set_padding(30, 0, 14, 0) self.left_recommend_box_align.add(self.left_recommend_box) self.left_recommend_label = Label(_("Popular recommendations")) self.right_info_box = gtk.VBox() self.scrolled_window = ScrolledWindow(0, 0) self.right_view_box = gtk.VBox() self.right_top_box = gtk.HBox() self.right_top_box.set_size_request(-1, self.RIGHT_TITLE_BOX_HEIGHT) self.right_desc_box = gtk.VBox() self.right_slide_box = gtk.VBox() self.right_comment_box = gtk.VBox() self.right_title_box = gtk.VBox() self.return_button = ImageButton( app_theme.get_pixbuf("detail/normal.png"), app_theme.get_pixbuf("detail/hover.png"), app_theme.get_pixbuf("detail/press.png"), ) self.return_align = gtk.Alignment() self.return_align.set(0.5, 0.5, 1, 1) self.return_align.set_padding(self.ALIAS_NAME_PADDING_Y, 0, 0, self.RIGHT_INFO_PADDING_X) self.return_align.add(self.return_button) self.return_button.connect( "clicked", lambda w: global_event.emit("switch-from-detail-page")) self.right_top_box.pack_start(self.right_title_box, True, True) self.right_top_box.pack_start(self.return_align, False, False) self.right_view_box.pack_start(self.right_top_box, False, False) self.right_view_box.pack_start(self.right_desc_box, False, False) self.right_view_box.pack_start(self.right_slide_box, False, False) self.right_view_box.pack_start(self.right_comment_box, False, False) self.scrolled_window.add_child(self.right_view_box) self.left_view_box.pack_start(self.left_logo_box, False, False) self.left_view_box.pack_start(self.star_align, False, False) self.left_view_box.pack_start(self.left_action_align, False, False) self.left_label_table.attach(self.left_category_box, 0, 1, 0, 1) self.left_label_table.attach(self.left_version_label, 0, 1, 1, 2) self.left_label_table.attach(self.left_size_label, 0, 1, 2, 3) self.left_label_table.attach(self.left_download_label, 0, 1, 3, 4) self.left_label_table.attach(self.left_homepage_box_align, 0, 1, 4, 5) self.left_label_align.add(self.left_label_table) self.left_view_box.pack_start(self.left_label_align, False, False) self.left_view_box.pack_start(self.left_recommend_box_align, False, False) self.right_info_box.pack_start(self.scrolled_window, True, True) self.pack_start(self.left_view_box, False, False) self.pack_start(self.right_info_box, True, True) self.left_view_box.connect("expose-event", self.expose_left_view) self.right_view_box.connect("expose-event", self.expose_right_view) self.left_logo_box.connect("expose-event", self.expose_left_logo_box) self.right_top_box.connect("expose-event", self.expose_right_top_box) self.right_title_box.connect("expose-event", self.expose_right_title_box) self.connect("hierarchy-changed", self.hierarchy_change) self.left_category_label.connect("button-press-event", lambda w, e: self.jump_to_category()) global_event.register_event("download-screenshot-finish", self.download_screenshot_finish) self.loading_label = Label(_("Loading comments...")) self.loading_label_align = gtk.Alignment(0.5, 0, 0, 0) self.loading_label_align.add(self.loading_label) self.loading_label_align.set_padding(10, 0, 0, 0) self.update_pkg_time = 0 self.update_pkg_interval = 0.2 # in seconds
def __init__(self, data_manager, recommend_status): ''' init docs ''' # Init. gtk.HBox.__init__(self) self.data_manager = data_manager self.recommend_status = recommend_status self.background_box = BackgroundBox() self.background_box.draw_mask = self.draw_mask self.sidebar_box = gtk.VBox() self.page_box = gtk.VBox() self.sidebar_box.set_size_request(CATEGORY_VIEW_WIDTH, -1) self.canopy = gtk.VBox() self.canopy.set_size_request(-1, 19) self.search_align = gtk.Alignment() self.search_align.set(0.5, 0.5, 0, 0) self.search_align.set_padding(15, 5, 13, 13) self.search_align.add(search_entry) self.in_press = False self.press_return = False self.press_id = 0 self.show_timeout_id = None self.entry_changed = False search_entry.entry.connect("changed", self.search_entry_changed) search_entry.entry.connect("key-press-event", self.search_entry_key_press) search_entry.entry.connect("key-release-event", self.search_entry_key_release) search_entry.connect("action-active", lambda entry, search_string: self.show_search_page(search_string)) search_entry.entry.connect("press-return", lambda entry: self.show_search_page(entry.get_text(), True)) self.recommend_item = RecommendItem(data_manager, self.recommend_status) category_items = [] for (index, first_category_name) in enumerate(data_manager.get_first_category()): category_items.append(CategoryItem(index+1, first_category_name, data_manager)) self.category_view = TreeView( [self.recommend_item] + category_items, enable_drag_drop=False, enable_multiple_select=False, expand_column=0, ) self.category_view.draw_mask = self.draw_mask self.category_view.set_size_request(-1, 470) self.category_view_align = gtk.Alignment() self.category_view_align.set(0.5, 0.5, 1, 1) self.category_view_align.set_padding(10, 10, 0, 0) self.category_view_align.add(self.category_view) self.background_box.pack_start(self.canopy, False, False) self.background_box.pack_start(self.search_align, True, True) self.background_box.pack_end(self.category_view_align, False, False) self.sidebar_box.pack_start(self.background_box, False, False) self.split_line = gtk.VBox() self.split_line.set_size_request(1, -1) self.pack_start(self.sidebar_box, False, False) self.pack_start(self.split_line, False, False) self.pack_start(self.page_box, True, True) self.canopy.connect("expose-event", self.expose_canopy) self.split_line.connect("expose-event", self.expose_split_line) global_event.register_event("show-pkg-view", self.show_pkg_view) global_event.register_event("category-expand", self.category_expand_handler)
def __init__(self, system_bus, mainloop): # Init dbus service. dbus.service.Object.__init__(self, system_bus, DSC_SERVICE_PATH) # Init. self.mainloop = mainloop self.pkg_cache = AptCache() self.exit_flag = False self.simulate = False self.all_upgrade_pkg_names = [] self.download_dir = "/var/cache/apt/archives" self.is_upgrading = False self.in_update_list = False self.apt_action_pool = AptActionPool(self.pkg_cache) self.apt_action_pool.start() global_event.register_event('parse-download-error', self.send_parse_download_error) global_event.register_event("action-start", self.action_start) global_event.register_event("action-update", self.action_update) global_event.register_event("action-finish", self.action_finish) global_event.register_event("action-failed", self.action_failed) global_event.register_event("download-start", self.download_start) global_event.register_event("download-update", self.download_update) global_event.register_event("download-finish", self.download_finish) global_event.register_event("download-stop", self.download_stop) global_event.register_event("download-error", self.download_failed) global_event.register_event("update-list-start", self.update_list_start) global_event.register_event("update-list-finish", self.update_list_finish) global_event.register_event("update-list-failed", self.update_list_failed) global_event.register_event("update-list-update", self.update_list_update) self.packages_status = {} self.exit_manager = ExitManager(self.mainloop, self.is_update_list_running, self.is_download_action_running, self.is_apt_action_running, self.have_exit_request) self.exit_manager.start() self.set_download_dir('/var/cache/apt/archives') self.download_manager = DownloadManager(global_event, verbose=True)
def __init__(self, data_manager, recommend_status): ''' init docs ''' # Init. gtk.HBox.__init__(self) self.data_manager = data_manager self.recommend_status = recommend_status self.background_box = BackgroundBox() self.background_box.draw_mask = self.draw_mask self.sidebar_box = gtk.VBox() self.page_box = gtk.VBox() self.sidebar_box.set_size_request(CATEGORY_VIEW_WIDTH, -1) self.canopy = gtk.VBox() self.canopy.set_size_request(-1, 19) self.search_align = gtk.Alignment() self.search_align.set(0.5, 0.5, 0, 0) self.search_align.set_padding(15, 5, 13, 13) self.search_align.add(search_entry) self.in_press = False self.press_return = False self.press_id = 0 self.show_timeout_id = None self.entry_changed = False search_entry.entry.connect("changed", self.search_entry_changed) search_entry.entry.connect("key-press-event", self.search_entry_key_press) search_entry.entry.connect("key-release-event", self.search_entry_key_release) search_entry.connect( "action-active", lambda entry, search_string: self.show_search_page(search_string)) search_entry.entry.connect( "press-return", lambda entry: self.show_search_page(entry.get_text(), True)) self.recommend_item = RecommendItem(data_manager, self.recommend_status) category_items = [] for (index, first_category_name) in enumerate( data_manager.get_first_category()): category_items.append( CategoryItem(index + 1, first_category_name, data_manager)) self.category_view = TreeView( [self.recommend_item] + category_items, enable_drag_drop=False, enable_multiple_select=False, expand_column=0, ) self.category_view.draw_mask = self.draw_mask self.category_view.set_size_request(-1, 470) self.category_view_align = gtk.Alignment() self.category_view_align.set(0.5, 0.5, 1, 1) self.category_view_align.set_padding(10, 10, 0, 0) self.category_view_align.add(self.category_view) self.background_box.pack_start(self.canopy, False, False) self.background_box.pack_start(self.search_align, True, True) self.background_box.pack_end(self.category_view_align, False, False) self.sidebar_box.pack_start(self.background_box, False, False) self.split_line = gtk.VBox() self.split_line.set_size_request(1, -1) self.pack_start(self.sidebar_box, False, False) self.pack_start(self.split_line, False, False) self.pack_start(self.page_box, True, True) self.canopy.connect("expose-event", self.expose_canopy) self.split_line.connect("expose-event", self.expose_split_line) global_event.register_event("show-pkg-view", self.show_pkg_view) global_event.register_event("category-expand", self.category_expand_handler)
if new_cursor_postion != cursor_postion and new_cursor_postion == "name": if timeout_tooltip_action_id: gobject.source_remove(timeout_tooltip_action_id) timeout_tooltip_action_id = None timeout_tooltip_action_id = gobject.timeout_add( 1000, timeout_tooltip_action, item) elif new_cursor_postion != cursor_postion and new_cursor_postion == 'other': if timeout_tooltip_action_id: gobject.source_remove(timeout_tooltip_action_id) timeout_tooltip_action_id = None global_event.emit('hide-pkg-name-tooltip') cursor_postion = new_cursor_postion global_event.register_event("cursor-position-changed", cursor_postion_changed) def tooltip_aciton(view, item, x, y): if item.is_in_name_area(x, y): new_cursor_postion = "name" else: new_cursor_postion = "other" global_event.emit("cursor-position-changed", item, new_cursor_postion) def timeout_tooltip_action(item): global_event.emit("show-pkg-name-tooltip", item.alias_name) return False
def __init__(self, system_bus, mainloop): log("init dbus") # Init dbus service. dbus.service.Object.__init__(self, system_bus, DSC_SERVICE_PATH) # Init. self.mainloop = mainloop self.pkg_cache = AptCache() self.exit_flag = False self.simulate = False self.all_upgrade_pkg_names = [] self.is_upgrading = False self.in_update_list = False self.apt_action_pool = AptActionPool(self.pkg_cache) self.apt_action_pool.start() global_event.register_event('parse-download-error', self.send_parse_download_error) global_event.register_event("action-start", self.action_start) global_event.register_event("action-update", self.action_update) global_event.register_event("action-finish", self.action_finish) global_event.register_event("action-failed", self.action_failed) global_event.register_event("download-start", self.download_start) global_event.register_event("download-update", self.download_update) global_event.register_event("download-finish", self.download_finish) global_event.register_event("download-stop", self.download_stop) global_event.register_event("download-error", self.download_failed) global_event.register_event("update-list-start", self.update_list_start) global_event.register_event("update-list-finish", self.update_list_finish) global_event.register_event("update-list-failed", self.update_list_failed) global_event.register_event("update-list-update", self.update_list_update) self.packages_status = {} self.exit_manager = ExitManager( self.mainloop, self.is_update_list_running, self.is_download_action_running, self.is_apt_action_running, self.have_exit_request) self.exit_manager.start() log("init finish") self.set_download_dir('/var/cache/apt/archives') self.init_download_manager(5)