Example #1
0
 def press_notify_function(self, event):    
     temp_press_height = self.press_height
     self.press_height = event.y
     index_len = len(self.tree_list)
     index = int(self.press_height / self.height)
     
     if index_len > index:
         if is_single_click(event) and event.button == 1:
             self.highlight_index = index
             self.press_draw_bool = True
         
             if self.tree_list[index].child_items:        
                 self.tree_list[index].show_child_items_bool = not self.tree_list[index].show_child_items_bool 
                 self.sort()
                 self.queue_draw()
         
         if is_single_click(event) and event.button == 1:
             self.emit("single-click-item", self.tree_list[index].tree_view_item)
         elif is_double_click(event):    
             self.emit("double-click-item", self.tree_list[index].tree_view_item)
         elif is_right_button(event):    
             self.press_height = self.highlight_index * self.height
             self.emit("right-press-item", self.tree_list[index].tree_view_item, int(event.x_root), int(event.y_root), index)
             
     else:
         self.press_height = temp_press_height
         if is_right_button(event):    
             self.press_height = self.highlight_index * self.height
             self.emit("right-press-item", event, int(event.x_root), int(event.y_root), -1)
Example #2
0
    def button_press_mac_entry(self, widget, event):
        self.draw_area.grab_focus()

        if event.x <= self.cursor_positions[0]:
            self.set_cursor_index(0)
        elif event.x >= self.cursor_positions[-1]:
            self.set_cursor_index(len(self.mac))
        else:
            ip_segment_distance = self.width / self.segment_number
            segment_index = int(event.x / ip_segment_distance)

            for (cursor_index, cursor_position) in enumerate(self.cursor_positions):
                if len(self.mac.split(self.segment_split_char)[segment_index]) == 0:
                    self.set_cursor_index(segment_index)
                    break
                elif cursor_position < event.x <= self.cursor_positions[cursor_index + 1]:
                    self.set_cursor_index(cursor_index)
                    break

        # Hide right menu immediately.
        self.right_menu.hide()

        if is_double_click(event):
            self.highlight_current_segment()
        elif is_left_button(event):
            self.clear_highlight_segment()
        elif is_right_button(event):
            x, y = self.window.get_root_origin()
            wx, wy = int(event.x), int(event.y)
            (offset_x, offset_y) = widget.translate_coordinates(self, 0, 0)
            (_, px, py, modifier) = widget.get_display().get_pointer()
            self.right_menu.show((px - offset_x, py - wy - offset_y + widget.allocation.height))

        self.queue_draw()
Example #3
0
    def button_release_icon_view(self, widget, event):
        '''
        Internal callback for `button-release-event` signal.
        '''
        if len(self.items) > 0:
            index_info = self.icon_view_get_event_index(event)
            if index_info:
                (row_index, column_index, item_index, offset_x,
                 offset_y) = index_info

                if is_left_button(event):
                    self.emit("button-release-item", self.items[item_index],
                              offset_x - self.padding_x,
                              offset_y - self.padding_y)

                    if self.double_click_item == item_index:
                        self.emit("double-click-item",
                                  self.items[self.double_click_item],
                                  offset_x - self.padding_x,
                                  offset_y - self.padding_y)
                    elif self.single_click_item == item_index:
                        self.emit("single-click-item",
                                  self.items[self.single_click_item],
                                  offset_x - self.padding_x,
                                  offset_y - self.padding_y)
                elif is_right_button(event):
                    if self.right_click_item == item_index:
                        self.emit("right-click-item",
                                  self.items[self.right_click_item],
                                  event.x_root, event.y_root)

            self.double_click_item = None
            self.single_click_item = None
            self.right_click_item = None
Example #4
0
 def button_press(self, widget, event):
     if self.get_data("entry_widget") is None:
         return
     cell = self.get_cell_with_event(event)
     entry = self.get_data("entry_widget")
     item = entry.get_data("item")
     # if pressed outside entry column area, destroy entry
     if cell is None:
         entry.get_parent().destroy()
         return
     (row, column, offset_x, offset_y) = cell
     if self.visible_items[row] != item or column != item.ENTRY_COLUMN:
         entry.get_parent().destroy()
         return
     # right button the show menu
     if is_right_button(event):
         entry.right_menu.show((int(event.x_root), int(event.y_root)))
         return
     entry.set_data("button_press", True)
     send_event = event.copy()
     send_event.send_event = True
     send_event.x = float(offset_x)
     send_event.y = 1.0
     send_event.window = entry.window
     entry.event(send_event)
     send_event.free()
Example #5
0
 def button_press(self, widget, event):
     if self.get_data("entry_widget") is None:
         return
     cell = self.get_cell_with_event(event)
     entry = self.get_data("entry_widget")
     item = entry.get_data("item")
     # if pressed outside entry column area, destroy entry
     if cell is None:
         entry.get_parent().destroy()
         return
     (row, column, offset_x, offset_y) = cell
     if self.visible_items[row] != item or column != item.ENTRY_COLUMN:
         entry.get_parent().destroy()
         return
     # right button the show menu
     if is_right_button(event):
         entry.right_menu.show((int(event.x_root), int(event.y_root)))
         return
     entry.set_data("button_press", True)
     send_event = event.copy()
     send_event.send_event = True
     send_event.x = float(offset_x)
     send_event.y = 1.0
     send_event.window = entry.window
     entry.event(send_event)
     send_event.free()
Example #6
0
    def __listview_button_release_event(self, widget, event):
        #print "__listview_button_release_event..."
        self.__move_column_check = False  # 取消移动标题头.
        # 获取标题头触发的release事件返回的x索引.
        if is_left_button(event):
            # 列标头.
            if self.view == View.DETAILS:
                col_index, column_x, column_y = self.__get_columns_mouse_data(
                    event)
                if col_index != None:
                    self.__single_columns = self.columns[col_index]
                    if self.__single_columns_hd:
                        self.__single_columns_hd(self, self.__single_columns,
                                                 col_index, column_x, column_y)
            # 获取items触发的release事件返回的x,y索引.
            row_index, col_index, item_x, item_y = self.__get_items_mouse_data(
                event)
            #insert_index = self.__move_column_insert_index
            insert_index = row_index
            if not (None in [row_index]):
                # 发送信号.
                if self.__save_press_items_index == row_index:
                    if not self.__ctrl_check:
                        self.__single_items = []
                    # 判断是否重新选择了,如果是就消除掉.
                    if self.items[row_index] in self.__single_items:
                        self.__single_items.remove(self.items[row_index])
                    else:
                        self.__single_items.append(self.items[row_index])
                    if self.__single_items_hd:
                        self.__single_items_hd(self, self.__single_items,
                                               row_index, col_index, item_x,
                                               item_y)
            else:
                insert_index = len(self.items)

            if self.__move_items_check and self.__save_press_items_index != row_index:
                for insert_item in self.__single_items:
                    self.items.remove(insert_item)
                    self.items.add_insert(insert_index, insert_item)
            self.__save_press_items_check = False
            self.__drag_rect = (None, None, None)
            self.drag_preview_pixbuf = None
        elif is_right_button(event):
            row_index, col_index, item_x, item_y = self.__get_items_mouse_data(
                event)
            if self.__right_items_hd:
                self.__right_items_hd(self, event, row_index, col_index,
                                      item_x, item_y)
 def __listview_button_release_event(self, widget, event):
     #print "__listview_button_release_event..."
     self.__move_column_check = False # 取消移动标题头.
     # 获取标题头触发的release事件返回的x索引.
     if is_left_button(event):
         # 列标头.
         if self.view == View.DETAILS:
             col_index, column_x, column_y =  self.__get_columns_mouse_data(event)
             if col_index != None: 
                 self.__single_columns = self.columns[col_index]
                 if self.__single_columns_hd:
                     self.__single_columns_hd(self, self.__single_columns, col_index, column_x, column_y)
         # 获取items触发的release事件返回的x,y索引.
         row_index, col_index, item_x, item_y = self.__get_items_mouse_data(event)
         #insert_index = self.__move_column_insert_index
         insert_index = row_index
         if not (None in [row_index]):
             # 发送信号.
             if self.__save_press_items_index == row_index:
                 if not self.__ctrl_check:
                     self.__single_items = []
                 # 判断是否重新选择了,如果是就消除掉.
                 if self.items[row_index] in self.__single_items:
                    self.__single_items.remove(self.items[row_index]) 
                 else:
                     self.__single_items.append(self.items[row_index])
                 if self.__single_items_hd:
                     self.__single_items_hd(self, self.__single_items, row_index, col_index, item_x, item_y)
         else:
             insert_index = len(self.items)
         
         if self.__move_items_check and self.__save_press_items_index != row_index:
             for insert_item in self.__single_items:
                 self.items.remove(insert_item)
                 self.items.add_insert(insert_index, insert_item)
         self.__save_press_items_check = False
         self.__drag_rect = (None, None, None)
         self.drag_preview_pixbuf = None
     elif is_right_button(event):
         row_index, col_index, item_x, item_y = self.__get_items_mouse_data(event)
         if self.__right_items_hd:
             self.__right_items_hd(self, event, row_index, col_index, item_x, item_y)
Example #8
0
    def button_press_icon_view(self, widget, event):
        '''
        Internal callback for `button-press-event` signal.
        '''
        # Grab focus when button press, otherwise key-press signal can't response.
        self.grab_focus()

        if len(self.items) > 0:

            index_info = self.icon_view_get_event_index(event)

            if index_info:
                (row_index, column_index, item_index, offset_x,
                 offset_y) = index_info

                if is_left_button(event):
                    self.emit("button-press-item", self.items[item_index],
                              offset_x - self.padding_x,
                              offset_y - self.padding_y)
                    if is_double_click(event):
                        if index_info:
                            self.double_click_item = index_info[2]
                        else:
                            self.double_click_item = None

                    elif is_single_click(event):
                        if index_info:
                            self.single_click_item = index_info[2]
                        else:
                            self.single_click_item = None

                elif is_right_button(event):
                    if index_info:
                        self.right_click_item = index_info[2]
                    else:
                        self.right_click_item = None

                # Set highlight.
                if index_info:
                    self.clear_highlight()

                    self.set_highlight(self.items[index_info[2]])
Example #9
0
    def button_press_icon_view(self, widget, event):
        '''
        Internal callback for `button-press-event` signal.
        '''
        # Grab focus when button press, otherwise key-press signal can't response.
        self.grab_focus()
        
        if len(self.items) > 0:

            index_info = self.icon_view_get_event_index(event)
            
            if index_info:
                (row_index, column_index, item_index, offset_x, offset_y) = index_info
                
                if is_left_button(event):
                    self.emit("button-press-item", self.items[item_index], offset_x - self.padding_x, offset_y - self.padding_y)
                    if is_double_click(event):
                        if index_info:
                            self.double_click_item = index_info[2]
                        else:
                            self.double_click_item = None
                            
                    elif is_single_click(event):
                        if index_info:
                            self.single_click_item = index_info[2]
                        else:
                            self.single_click_item = None
                            
                elif is_right_button(event):
                    if index_info:
                        self.right_click_item = index_info[2]
                    else:    
                        self.right_click_item = None
                        
                # Set highlight.
                if index_info:
                    self.clear_highlight()
                        
                    self.set_highlight(self.items[index_info[2]])
Example #10
0
    def button_press_mac_entry(self, widget, event):
        self.draw_area.grab_focus()

        if event.x <= self.cursor_positions[0]:
            self.set_cursor_index(0)
        elif event.x >= self.cursor_positions[-1]:
            self.set_cursor_index(len(self.mac))
        else:
            ip_segment_distance = self.width / self.segment_number
            segment_index = int(event.x / ip_segment_distance)

            for (cursor_index,
                 cursor_position) in enumerate(self.cursor_positions):
                if len(self.mac.split(
                        self.segment_split_char)[segment_index]) == 0:
                    self.set_cursor_index(segment_index)
                    break
                elif cursor_position < event.x <= self.cursor_positions[
                        cursor_index + 1]:
                    self.set_cursor_index(cursor_index)
                    break

        # Hide right menu immediately.
        self.right_menu.hide()

        if is_double_click(event):
            self.highlight_current_segment()
        elif is_left_button(event):
            self.clear_highlight_segment()
        elif is_right_button(event):
            x, y = self.window.get_root_origin()
            wx, wy = int(event.x), int(event.y)
            (offset_x, offset_y) = widget.translate_coordinates(self, 0, 0)
            (_, px, py, modifier) = widget.get_display().get_pointer()
            self.right_menu.show(
                (px - offset_x, py - wy - offset_y + widget.allocation.height))

        self.queue_draw()
Example #11
0
 def button_release_icon_view(self, widget, event):
     '''
     Internal callback for `button-release-event` signal.
     '''
     if len(self.items) > 0:
         index_info = self.icon_view_get_event_index(event)
         if index_info:
             (row_index, column_index, item_index, offset_x, offset_y) = index_info
             
             if is_left_button(event):
                 self.emit("button-release-item", self.items[item_index], offset_x - self.padding_x, offset_y - self.padding_y)
                 
                 if self.double_click_item == item_index:
                     self.emit("double-click-item", self.items[self.double_click_item], offset_x - self.padding_x, offset_y - self.padding_y)
                 elif self.single_click_item == item_index:
                     self.emit("single-click-item", self.items[self.single_click_item], offset_x - self.padding_x, offset_y - self.padding_y)
             elif is_right_button(event):        
                 if self.right_click_item == item_index:    
                     self.emit("right-click-item", self.items[self.right_click_item], event.x_root, event.y_root)
         
         self.double_click_item = None
         self.single_click_item = None
         self.right_click_item = None
Example #12
0
 def handle_button_press(self, widget, event):
     '''Handle button press.'''
     # Get input focus.
     self.grab_focus()
     
     # Hide right menu immediately.
     self.right_menu.hide()
     
     # Select all when double click left button.
     if is_double_click(event):
         self.double_click_flag = True
         self.select_all()
     # Show right menu when click right button.
     elif is_right_button(event):
         if self.right_menu_visible_flag:
             (wx, wy) = self.window.get_root_origin()
             (cx, cy, modifier) = self.window.get_pointer()
             self.right_menu.show((cx + wx, cy + wy))
     # Change cursor when click left button.
     elif is_left_button(event):
         self.left_click_flag = True
         self.left_click_coordindate = (event.x, event.y)
         
         self.drag_start_index = self.get_index_at_event(widget, event)