예제 #1
0
 def __init__(self, channel_info, default_width=300):
     Window.__init__(self, 
                     shadow_visible=False,
                     shadow_radius=0,
                     shape_frame_function=self.shape_panel_frame,
                     expose_frame_function=self.expose_panel_frame,
                     # window_type=gtk.WINDOW_POPUP,
                     )
     
     self.set_can_focus(False)
     self.set_accept_focus(False)
     self.set_skip_taskbar_hint(True)
     self.set_skip_pager_hint(True)        
     self.info_panel = gtk.EventBox()
     self.info_panel.set_visible_window(False)
     self.set_keep_above(True)
     self.info_panel.connect("expose-event", self.on_panel_expose_event)
     self.connect("enter-notify-event", self.on_enter_notify_event)
     self.window_frame.add(self.info_panel)
     
     self.channel_info = channel_info
     self.padding_y = 15
     self.padding_x = 10
     self.line_height = 15
     self.default_width = default_width
     
     self.init_size()
예제 #2
0
    def __init__(self, window_width, window_height):
        '''
        init docs
        '''
        # Init.
        Window.__init__(
            self,
            # shadow_visible=False,
            shape_frame_function=self.shape_completion_window_frame,
            expose_frame_function=self.expose_completion_window_frame)
        self.window_width = window_width
        self.window_height = window_height
        self.window_offset_x = 8
        self.window_offset_y = 34
        self.align_size = 2

        self.treeview = TreeView(
            [],
            enable_highlight=False,
            enable_multiple_select=False,
            enable_drag_drop=False,
            expand_column=0,
        )
        self.treeview.scrolled_window.tag_by_popup_grab_window = True
        self.treeview_align = gtk.Alignment()
        self.treeview_align.set(0.5, 0.5, 1, 1)
        self.treeview_align.set_padding(self.align_size, self.align_size,
                                        self.align_size, self.align_size)
        self.treeview_align.add(self.treeview)
        self.treeview.connect("press-return", self.treeview_press_return)
        self.treeview.draw_mask = self.draw_mask

        self.window_frame.pack_start(self.treeview_align, True, True)

        self.connect("realize", self.realize_completion_window)

        self.get_scrolledwindow = self.get_scrolledwindow

        wrap_grab_window(completion_grab_window, self)

        completion_grab_window.connect("input-method-focus-in",
                                       self.input_method_focus_in)
        completion_grab_window.connect("input-method-commit",
                                       self.input_method_commit)

        self.keymap = {
            "Home": self.treeview.select_first_item,
            "End": self.treeview.select_last_item,
            "Page_Up": self.treeview.scroll_page_up,
            "Page_Down": self.treeview.scroll_page_down,
            "Up": self.treeview.select_prev_item,
            "Down": self.treeview.select_next_item,
        }
예제 #3
0
    def __init__(self, default_width=27):
        Window.__init__(self, window_type=gtk.WINDOW_POPUP)
        self.set_size_request(default_width, 100)

        self.volume_slider = VScalebar(default_height=80)
        self.volume_slider.tag_by_popup_volume_grab_window = True

        main_align = gtk.Alignment()
        main_align.set_padding(5, 5, 5, 5)
        main_align.add(self.volume_slider)
        self.window_frame.pack_start(main_align)

        wrap_grab_window(volume_grab_window, self)
 def __init__(self, default_width=27):
     Window.__init__(self, window_type=gtk.WINDOW_POPUP)
     self.set_size_request(default_width, 100)
     
     self.volume_slider = VScalebar(default_height=80)
     self.volume_slider.tag_by_popup_volume_grab_window = True
     
     main_align = gtk.Alignment()
     main_align.set_padding(5, 5, 5, 5)
     main_align.add(self.volume_slider)
     self.window_frame.pack_start(main_align)
     
     wrap_grab_window(volume_grab_window, self)
예제 #5
0
 def __init__(self):
     Window.__init__(self, enable_resize=True)
     self.set_position(gtk.WIN_POS_CENTER)
     self.set_default_size(290, 512)
     titlebar = Titlebar(["min", "max", "close"], app_name="Baidu Hi for Linux")
     titlebar.min_button.connect("clicked", lambda w: self.min_window())
     titlebar.max_button.connect("clicked", lambda w: self.toggle_max_window())
     titlebar.close_button.connect("clicked", lambda w: gtk.main_quit())
     self.add_move_event(titlebar.drag_box)
     self.add_toggle_event(titlebar.drag_box)
     
     banner_image = gtk.image_new_from_file(get_banner_image())
     banner_box = set_widget_gravity(banner_image, (0,0,0,0), (10, 0, 0, 0))
     user_box, self.user_entry = self.create_combo_entry("帐号:")
     passwd_box, self.passwd_entry = self.create_combo_entry("密码:")
     self.remember_passwd = CheckButton("记住密码")
     self.automatic_login = CheckButton("自动登录")
     self.status_box, self.status_combo_box = self.create_combo_widget("状态:", 
                                                  [(key, None) for key in "在线 忙碌 离开 隐身".split()],
                                                  0)
     
     check_box = gtk.HBox(spacing=10)
     check_box.pack_start(self.remember_passwd, False, False)
     check_box.pack_start(self.automatic_login, False, False)
     
     body_table = gtk.Table(5, 1)
     body_table.set_row_spacings(10)
     body_table.attach(banner_box, 0, 1, 0, 1, xoptions=gtk.FILL, yoptions=gtk.FILL)
     body_table.attach(user_box, 0, 1, 1, 2, xoptions=gtk.FILL, yoptions=gtk.FILL, xpadding=8)
     body_table.attach(passwd_box, 0, 1, 2, 3, xoptions=gtk.FILL, yoptions=gtk.FILL, xpadding=8)
     # body_table.attach(self.status_box, 0, 1, 3, 4, xoptions=gtk.FILL, yoptions=gtk.FILL, xpadding=8)        
     body_table.attach(check_box, 0, 1, 4, 5, xoptions=gtk.FILL, yoptions=gtk.FILL)
     
     body_box_align = set_widget_gravity(set_widget_center(body_table), 
                                         (1, 1, 0.5, 0.5),
                                         (0, 0, 30, 30))
     
     self.login_button = Button("登录")
     self.login_button.set_size_request(95, 30)
     login_button_align = set_widget_gravity(set_widget_center(self.login_button),
                                             (1, 1, 0.5, 0.5),
                                             (30, 30, 0, 0))
     
     main_box = gtk.VBox()        
     main_box.connect("expose-event", self.draw_border_mask)
     main_box.pack_start(body_box_align, False, True)
     main_box.pack_start(login_button_align, False, True)
     
     self.window_frame.pack_start(titlebar, False, True)
     self.window_frame.pack_start(main_box)
예제 #6
0
    def __init__(self, window_width, window_height):
        '''
        init docs
        '''
        # Init.
        Window.__init__(
            self,
            # shadow_visible=False,
            shape_frame_function=self.shape_completion_window_frame,
            expose_frame_function=self.expose_completion_window_frame)
        self.window_width = window_width
        self.window_height = window_height
        self.window_offset_x = 8
        self.window_offset_y = 34
        self.align_size = 2

        self.treeview = TreeView(
            [],
            enable_highlight=False,
            enable_multiple_select=False,
            enable_drag_drop=False,
            expand_column=0,
            )
        self.treeview.scrolled_window.tag_by_popup_grab_window = True
        self.treeview_align = gtk.Alignment()
        self.treeview_align.set(0.5, 0.5, 1, 1)
        self.treeview_align.set_padding(self.align_size, self.align_size, self.align_size, self.align_size)
        self.treeview_align.add(self.treeview)
        self.treeview.connect("press-return", self.treeview_press_return)
        self.treeview.draw_mask = self.draw_mask

        self.window_frame.pack_start(self.treeview_align, True, True)

        self.connect("realize", self.realize_completion_window)

        self.get_scrolledwindow = self.get_scrolledwindow

        wrap_grab_window(completion_grab_window, self)

        completion_grab_window.connect("input-method-focus-in", self.input_method_focus_in)
        completion_grab_window.connect("input-method-commit", self.input_method_commit)

        self.keymap = {
            "Home" : self.treeview.select_first_item,
            "End" : self.treeview.select_last_item,
            "Page_Up" : self.treeview.scroll_page_up,
            "Page_Down" : self.treeview.scroll_page_down,
            "Up" : self.treeview.select_prev_item,
            "Down" : self.treeview.select_next_item,
            }
예제 #7
0
    def __init__(self, default_width=320, separate_text=" | "):
        Window.__init__(self,
                        shadow_visible=False,
                        shadow_radius=0,
                        shape_frame_function=self.shape_panel_frame,
                        expose_frame_function=self.expose_panel_frame,
                        window_type=gtk.WINDOW_POPUP)

        self.set_size_request(300, 400)
        self.panel = gtk.Button()
        self.panel.tag_by_poup_panel_grab_window = True
        self.panel.add_events(gtk.gdk.POINTER_MOTION_MASK
                              | gtk.gdk.BUTTON_PRESS_MASK
                              | gtk.gdk.BUTTON_RELEASE_MASK)

        self.panel.connect("expose-event", self.on_panel_expose_event)
        self.panel.connect("motion-notify-event",
                           self.on_panel_motion_notify_event)
        self.panel.connect("button-press-event",
                           self.on_panel_button_press_event)
        self.panel.connect("button-release-event",
                           self.on_panel_button_release_event)

        # Init.
        self.padding_x = 10
        self.padding_y = 5
        self.separate_text = separate_text

        self.default_width = default_width
        self.separate_width, self.separate_height = get_content_size(
            self.separate_text)
        self.coords = {}
        self.range = namedtuple("coord", "start_x end_x start_y end_y")
        self.hover_item = None
        self.items = []
        self.block_height = 5
        self.item_interval_height = 12

        # Redraw.
        self.redraw_delay = 100  # 100 milliseconds should be enough for redraw
        self.redraw_request_list = []
        gobject.timeout_add(self.redraw_delay, self.update_redraw_request_list)

        self.window_frame.add(self.panel)

        # Wrap self in poup grab window.
        wrap_grab_window(popup_grab_window, self)
    def __init__(self, default_width=320 ,separate_text=" | "):
        Window.__init__(self, 
                        shadow_visible=False,
                        shadow_radius=0,
                        shape_frame_function=self.shape_panel_frame,
                        expose_frame_function=self.expose_panel_frame,
                        window_type=gtk.WINDOW_POPUP)
        
        self.set_size_request(300, 400)
        self.panel = gtk.Button()
        self.panel.tag_by_poup_panel_grab_window = True
        self.panel.add_events(gtk.gdk.POINTER_MOTION_MASK |
                              gtk.gdk.BUTTON_PRESS_MASK |
                              gtk.gdk.BUTTON_RELEASE_MASK)
        
        self.panel.connect("expose-event", self.on_panel_expose_event)
        self.panel.connect("motion-notify-event", self.on_panel_motion_notify_event)
        self.panel.connect("button-press-event", self.on_panel_button_press_event)
        self.panel.connect("button-release-event", self.on_panel_button_release_event)

        # Init.
        self.padding_x = 10
        self.padding_y = 5
        self.separate_text = separate_text
        
        self.default_width = default_width
        self.separate_width, self.separate_height = get_content_size(self.separate_text)
        self.coords = {}
        self.range = namedtuple("coord", "start_x end_x start_y end_y")
        self.hover_item = None
        self.items = []
        self.block_height = 5
        self.item_interval_height = 12
        
        # Redraw.
        self.redraw_delay = 100 # 100 milliseconds should be enough for redraw
        self.redraw_request_list = []
        gobject.timeout_add(self.redraw_delay, self.update_redraw_request_list)
        
        self.window_frame.add(self.panel)
        
        # Wrap self in poup grab window.
        wrap_grab_window(popup_grab_window, self)
    def __init__(self):
        '''
        init docs
        '''
        Window.__init__(self, enable_resize=True)
        self.set_size_request(WINDOW_WIDTH, WINDOW_HEIGHT)
        self.set_position(gtk.WIN_POS_CENTER)
        self.set_skip_taskbar_hint(True)
        self.set_skip_pager_hint(True)
        self.resizable = True

        self.classified_items = None
        self.__init_pixbuf()

        self.main_box = gtk.VBox()
        self.titlebar_box = gtk.HBox()
        self.toolbar_box = gtk.HBox()
        self.toolbar_box.set_size_request(-1, TOOLBAR_HEIGHT)

        self.main_view_box = gtk.HBox()
        self.main_view_box.set_size_request(WINDOW_WIDTH,
                                            WINDOW_HEIGHT - TITLEBAR_HEIGHT - TOOLBAR_HEIGHT - 23)

        self.add_titlebar()
        self.treeview_box = gtk.VBox()
        self.main_view_box.pack_start(self.treeview_box, False, False)
        self.listview_box = gtk.VBox()
        self.main_view_box.pack_start(self.listview_box, True, True)
        self.refresh_view() #add treeview and listview

        self.main_box.pack_start(self.toolbar_box, False, False)
        # self.main_box.pack_start(self.main_view_box, False, False)
        self.main_box.pack_start(self.main_view_box, True, True)
        # self.main_box.connect("expose-event", self.on_main_box_expose_event)

        main_box_align = gtk.Alignment(0.5, 0.5, 1, 1)
        main_box_align.set_padding(2, 2, 2, 2)
        main_box_align.add(self.main_box)

        self.window_frame.pack_start(self.titlebar_box, False, False)
        self.window_frame.pack_start(main_box_align)
 def __init__(self, window_width, window_height):
     '''
     init docs
     '''
     # Init.
     Window.__init__(
         self,
         shadow_visible=False,
         shadow_radius = 0,
         shape_frame_function=self.shape_completion_window_frame,
         expose_frame_function=self.expose_completion_window_frame,
         # window_type=gtk.WINDOW_POPUP,
         )
     
     self.window_width = window_width
     self.window_height = window_height
     self.window_offset_x = 0
     self.window_offset_y = 0
     self.align_size = 2
     
     self.treeview = TreeView(
         enable_highlight=False,
         enable_multiple_select=False,
         enable_drag_drop=False,)
     
     self.treeview.draw_mask = self.treeview_draw_mask
     self.treeview.scrolled_window.tag_by_popup_grab_window = True
     self.treeview_align = gtk.Alignment()
     self.treeview_align.set(0.5, 0.5, 1, 1)
     self.treeview_align.set_padding(self.align_size, self.align_size, self.align_size, self.align_size)
     self.treeview_align.add(self.treeview)
     
     self.window_frame.pack_start(self.treeview_align, True, True)
     
     self.connect("realize", self.realize_completion_window)
     
     self.get_scrolledwindow = self.get_scrolledwindow
     
     wrap_grab_window(completion_grab_window, self)
    def __init__(self):
        '''
        init docs
        '''
        Window.__init__(self)

        self.window_width = 0
        self.window_height = 0
        
        self.max_columns = 4
        self.max_rows = 3
        
        self.iconview = IconView(mask_bound_height=0)
        self.iconview.draw_mask = self.draw_iconview_mask
        self.iconview.draw_background = self.draw_iconvew_background
        self.iconview_scrolledwindow = ScrolledWindow(0, 0)
        self.iconview_scrolledwindow.add_child(self.iconview)
        
        self.window_frame.add(self.iconview_scrolledwindow)
        
        self.connect("show", self.show_start_desktop_window)
        
        wrap_grab_window(start_desktop_grab_window, self)
    def __init__(self):
        '''
        init docs
        '''
        Window.__init__(self)

        self.window_width = 0
        self.window_height = 0

        self.max_columns = 4
        self.max_rows = 3

        self.iconview = IconView(mask_bound_height=0)
        self.iconview.draw_mask = self.draw_iconview_mask
        self.iconview.draw_background = self.draw_iconvew_background
        self.iconview_scrolledwindow = ScrolledWindow(0, 0)
        self.iconview_scrolledwindow.add_child(self.iconview)

        self.window_frame.add(self.iconview_scrolledwindow)

        self.connect("show", self.show_start_desktop_window)

        wrap_grab_window(start_desktop_grab_window, self)
예제 #13
0
    def __init__(self):
        Window.__init__(self,
                        window_type=gtk.WINDOW_POPUP,
                        shape_frame_function=self.shape_mini_frame,
                        expose_frame_function=self.expose_mini_frame)
        
        self.set_property("skip-pager-hint", True)
        self.set_property("skip-taskbar-hint", True)
        
        self.body_box = gtk.VBox()
        
        self.control_box = gtk.HBox()
        self.action_box = gtk.HBox()
        self.event_box = gtk.HBox()  
        self.info_box = gtk.HBox()              

        # Build info box
        self.logo_padding_left = 10
        self.logo_padding_right = 10
        logo_box = self.create_logo_box()
        logo_box_align = set_widget_gravity(logo_box, (0.5, 0.5, 0, 0),
                                            (0, 0, self.logo_padding_left,
                                             self.logo_padding_right))
        self.playinfo = PlayInfo(239, None, 0, "#000000")
        self.info_box.pack_start(logo_box_align, False, False)
        self.info_box.pack_start(self.playinfo, False, False)
        
        # Build control box
        self.lyrics_button = self.create_lyrics_button()
        self.signal_auto = False        
        if config.getboolean("lyrics", "status"):
            self.lyrics_button.set_active(True)
        self.signal_auto = True    
        
        
        self.lyrics_padding_left = 10
        self.lyrics_padding_right = 8
        lyrics_button_align = set_widget_gravity(self.lyrics_button, (0.5, 0.5, 0, 0),
                                                 (0, 0, self.lyrics_padding_left,
                                                  self.lyrics_padding_right))
        
        self.previous_button = self.create_button("previous")
        self.next_button = self.create_button("next")
        self.playpause_button = self.create_playpause_button()
        
        # swap played status handler
        self.__id_signal_play = self.playpause_button.connect("toggled", self.on_player_playpause)        
        Player.connect("played", self.__swap_play_status, True)
        Player.connect("paused", self.__swap_play_status, False)
        Player.connect("stopped", self.__swap_play_status, False)
        Player.connect("play-end", self.__swap_play_status, False)
        
        self.volume_slider = VolumeSlider(auto_hide=False, mini_mode=True)
        self.volume_padding_left = 8
        volume_slider_align = set_widget_gravity(self.volume_slider, (0.5, 0.5, 0, 0),
                                                 (0, 0, self.volume_padding_left, 0))
        
        self.action_box.pack_start(lyrics_button_align, False, False)
        self.action_box.pack_start(set_widget_vcenter(self.previous_button), False, False)
        self.action_box.pack_start(set_widget_vcenter(self.playpause_button), False, True)
        self.action_box.pack_start(set_widget_vcenter(self.next_button), False, False)
        self.action_box.pack_start(volume_slider_align, False, False)
        
        # Build event box.
        quell_button = QuellButton()
        quell_button.connect("clicked", self.on_quell_button_clicked)
        
        min_button = MinButton()
        min_button.connect("clicked", lambda w: self.min_window())
        close_button = CloseButton()
        close_button.connect("clicked", self.try_to_quit)
        self.event_box.pack_start(quell_button, False, False)
        self.event_box.pack_start(min_button, False, False)
        self.event_box.pack_start(close_button, False, False)
        event_box_align = set_widget_gravity(self.event_box, paddings=(0, 0, 8, 0))
        
        self.control_box.pack_start(self.action_box, False, True)
        self.control_box.pack_end(event_box_align, False, True)
        
        self.connect("configure-event", self.on_configure_event)
        self.connect("enter-notify-event", self.on_enter_notify_event)
        self.connect("leave-notify-event", self.on_leave_notify_event)
        self.connect("button-press-event", self.on_button_press_event)
        self.connect("motion-notify-event", self.on_motion_notify_event)
        self.connect("button-release-event", self.on_button_release_event)
        
        Dispatcher.connect("close-lyrics", lambda w : self.lyrics_button.set_active(False))
        Dispatcher.connect("show-lyrics", lambda w: self.lyrics_button.set_active(True))
        
        if config.get("mini", "x") == "-1":
            self.set_position(gtk.WIN_POS_CENTER)
        else:    
            self.move(int(config.get("mini","x")),int(config.get("mini","y")))
            
        # pixbufs    
        self.info_pixbuf = None
        self.control_pixbuf = None

        self.body_box.add(self.info_box)    
        self.window_frame.add(self.body_box)
        self.set_size_request(305, 40)
        
        
        # animation params.
        self.active_alpha = 1.0
        self.target_alpha = 0.0
        self.in_animation = False
        self.animation_time = 1000
        self.animation_timeout_id = None
        self.draw_animation = False
        self.active_draw_func = None
        self.target_draw_func = None
        
        # drag params.
        self.drag_move = False
        self.old_x = self.old_y = self.mouse_x = self.mouse_y = 0