def double_click_test(self, widget, event): '''double clicked callback, to test the double-click time''' interval_time = event.time - widget.get_data("last_press_time") widget.set_data("last_press_time", event.time) if interval_time <= settings.mouse_get_double_click(): widget.set_data("last_press_time", 0) widget.set_data("has_double_clicked", not widget.get_data("has_double_clicked")) widget.queue_draw()
def __adjust_widget(self): ''' adjust widget ''' MID_SPACING = 10 RIGHT_BOX_WIDTH = TIP_BOX_WIDTH - 20 MAIN_AREA_WIDTH = 480 LABEL_WIDTH = 180 OPTION_LEFT_PADDING = WIDGET_SPACING + 16 TABLE_ROW_SPACING = 15 self.container_widgets["main_vbox"].pack_start(self.alignment_widgets["main_hbox"]) self.container_widgets["main_vbox"].pack_start(self.container_widgets["statusbar"], False, False) self.container_widgets["statusbar"].set_buttons([self.button_widgets["set_to_default"]]) self.alignment_widgets["main_hbox"].add(self.container_widgets["main_hbox"]) self.alignment_widgets["main_hbox"].set(0.0, 0.0, 1.0, 1.0) self.alignment_widgets["main_hbox"].set_padding( TEXT_WINDOW_TOP_PADDING, 0, 0, 0) self.container_widgets["main_hbox"].set_spacing(MID_SPACING) self.container_widgets["main_hbox"].pack_start(self.alignment_widgets["left"]) self.container_widgets["main_hbox"].pack_start(self.alignment_widgets["right"], False, False) self.alignment_widgets["left"].add(self.container_widgets["left_vbox"]) self.alignment_widgets["right"].add(self.container_widgets["right_vbox"]) self.container_widgets["right_vbox"].set_size_request(RIGHT_BOX_WIDTH, -1) # set left padding self.alignment_widgets["left"].set(0.0, 0.5, 1.0, 1.0) # set right padding self.alignment_widgets["right"].set(0.0, 0.0, 1.0, 1.0) self.alignment_widgets["right"].set_padding(0, 0, 0, 60) self.container_widgets["left_vbox"].set_spacing(BETWEEN_SPACING) self.container_widgets["left_vbox"].pack_start( self.container_widgets["custom_main_vbox"], False, False) self.container_widgets["left_vbox"].pack_start( self.container_widgets["pointer_speed_main_vbox"], False, False) self.container_widgets["left_vbox"].pack_start( self.container_widgets["double_click_main_vbox"], False, False) # set option label width label_widgets = self.label_widgets label_width = max(label_widgets["acceleration"].size_request()[0], label_widgets["sensitivity"].size_request()[0], label_widgets["click_rate"].size_request()[0]) + 2 #label_widgets["acceleration"].set_size_request(label_width, WIDGET_HEIGHT) #label_widgets["sensitivity"].set_size_request(label_width, WIDGET_HEIGHT) #label_widgets["click_rate"].set_size_request(label_width, WIDGET_HEIGHT) # custom self.alignment_widgets["custom_label"].add(self.container_widgets["custom_label_hbox"]) self.alignment_widgets["custom_button"].add(self.container_widgets["custom_button_hbox"]) # alignment set self.alignment_widgets["custom_label"].set(0.0, 0.5, 1.0, 0.0) self.alignment_widgets["custom_button"].set(0.0, 0.5, 0.0, 0.0) #self.alignment_widgets["custom_button"].set_padding(0, 0, TEXT_WINDOW_LEFT_PADDING+OPTION_LEFT_PADDING-10, 0) self.alignment_widgets["custom_label"].set_padding(0, 0, TEXT_WINDOW_LEFT_PADDING, 0) #self.alignment_widgets["custom_label"].set_size_request(-1, CONTAINNER_HEIGHT) self.alignment_widgets["custom_button"].set_size_request(-1, CONTAINNER_HEIGHT) self.container_widgets["custom_main_vbox"].pack_start( self.alignment_widgets["custom_label"], False, False) self.container_widgets["custom_main_vbox"].pack_start( self.__setup_separator(), False, False) self.container_widgets["custom_main_vbox"].pack_start( self.alignment_widgets["custom_button"]) # tips label self.container_widgets["custom_label_hbox"].set_spacing(WIDGET_SPACING) self.container_widgets["custom_label_hbox"].pack_start( self.image_widgets["custom"], False, False) self.container_widgets["custom_label_hbox"].pack_start( self.label_widgets["custom"], False, False) # radio button set if settings.mouse_get_left_handed(): self.button_widgets["left_hand_radio"].set_active(True) self.image_widgets["custom"].image_dpixbuf = app_theme.get_pixbuf("%s/mouse_r.png" % MODULE_NAME) else: self.button_widgets["right_hand_radio"].set_active(True) self.image_widgets["custom"].image_dpixbuf = app_theme.get_pixbuf("%s/mouse_l.png" % MODULE_NAME) #self.container_widgets["custom_button_hbox"].set_spacing(WIDGET_SPACING) self.container_widgets["custom_button_hbox0"] = gtk.HBox(False) self.container_widgets["custom_button_hbox0"].set_spacing(WIDGET_SPACING) self.container_widgets["custom_button_hbox0"].pack_start( self.button_widgets["right_hand_radio"], False, False) self.container_widgets["custom_button_hbox0"].pack_start( self.button_widgets["left_hand_radio"], False, False) button_align = self.__make_align(self.container_widgets["custom_button_hbox0"], xalign=0.0) #button_align.set_size_request(HSCALEBAR_WIDTH+WIDGET_SPACING+label_width, CONTAINNER_HEIGHT) self.container_widgets["custom_button_hbox"].pack_start(self.__make_align(width=STANDARD_LINE-5), False, False) self.container_widgets["custom_button_hbox"].pack_start(button_align) # pointer speed self.alignment_widgets["pointer_speed_label"].add(self.container_widgets["pointer_speed_label_hbox"]) self.alignment_widgets["pointer_speed_table"].add(self.container_widgets["pointer_speed_table"]) # alignment set self.alignment_widgets["pointer_speed_label"].set(0.0, 0.5, 1.0, 0.0) self.alignment_widgets["pointer_speed_table"].set(0.0, 0.5, 1.0, 1.0) #self.alignment_widgets["pointer_speed_table"].set_padding(0, 0, OPTION_LEFT_PADDING+TEXT_WINDOW_LEFT_PADDING, 0) #self.alignment_widgets["pointer_speed_label"].set_size_request(-1, CONTAINNER_HEIGHT) self.alignment_widgets["pointer_speed_label"].set_padding(0, 0, TEXT_WINDOW_LEFT_PADDING, 0) self.container_widgets["pointer_speed_main_vbox"].pack_start( self.alignment_widgets["pointer_speed_label"], False, False) self.container_widgets["pointer_speed_main_vbox"].pack_start( self.__setup_separator(), False, False) self.container_widgets["pointer_speed_main_vbox"].pack_start( self.alignment_widgets["pointer_speed_table"]) # tips lable self.container_widgets["pointer_speed_label_hbox"].set_spacing(WIDGET_SPACING) self.container_widgets["pointer_speed_label_hbox"].pack_start( self.image_widgets["speed"], False, False) self.container_widgets["pointer_speed_label_hbox"].pack_start( self.label_widgets["pointer_speed"], False, False) # motion acceleration self.scale_widgets["pointer_speed_accel"].set_value(settings.mouse_get_motion_acceleration()) self.scale_widgets["pointer_speed_accel"].add_mark(self.adjust_widgets["pointer_speed_accel"].get_lower(), gtk.POS_BOTTOM, _("Slow")) self.scale_widgets["pointer_speed_accel"].add_mark(self.adjust_widgets["pointer_speed_accel"].get_upper(), gtk.POS_BOTTOM, _("Fast")) self.scale_widgets["pointer_speed_accel"].set_size_request(HSCALEBAR_WIDTH, -1) # table attach self.container_widgets["pointer_speed_table"].set_size_request(MAIN_AREA_WIDTH, -1) self.container_widgets["pointer_speed_table"].set_col_spacings(WIDGET_SPACING) #self.container_widgets["pointer_speed_table"].set_row_spacing(0, TABLE_ROW_SPACING) acceleration_align = self.__make_align(self.label_widgets["acceleration"], xalign=1.0) acceleration_align.set_size_request(STANDARD_LINE, CONTAINNER_HEIGHT) self.container_widgets["pointer_speed_table"].attach( acceleration_align, 0, 1, 0, 1, 4) self.container_widgets["pointer_speed_table"].attach( self.__make_align(self.scale_widgets["pointer_speed_accel"], yalign=0.0, yscale=1.0, height=43), 1, 3, 0, 1, 4) # motion threshold self.scale_widgets["pointer_speed_sensitiv"].set_value(settings.mouse_get_motion_threshold()) self.scale_widgets["pointer_speed_sensitiv"].add_mark(self.adjust_widgets["pointer_speed_sensitiv"].get_lower(), gtk.POS_BOTTOM, _("Low")) self.scale_widgets["pointer_speed_sensitiv"].add_mark(self.adjust_widgets["pointer_speed_sensitiv"].get_upper(), gtk.POS_BOTTOM, _("High")) self.scale_widgets["pointer_speed_sensitiv"].set_size_request(HSCALEBAR_WIDTH, -1) # table attach sensitivity_align = self.__make_align(self.label_widgets["sensitivity"], xalign=1.0) sensitivity_align.set_size_request(STANDARD_LINE, CONTAINNER_HEIGHT) self.container_widgets["pointer_speed_table"].attach( sensitivity_align, 0, 1, 1, 2, 4) self.container_widgets["pointer_speed_table"].attach( self.__make_align(self.scale_widgets["pointer_speed_sensitiv"], yalign=0.0, yscale=1.0, height=43), 1, 3, 1, 2, 4) # double click self.alignment_widgets["double_click_label"].add(self.container_widgets["double_click_label_hbox"]) self.alignment_widgets["double_click_table"].add(self.container_widgets["double_click_table"]) self.alignment_widgets["double_click_label"].set(0.0, 0.5, 1.0, 0.0) self.alignment_widgets["double_click_table"].set(0.0, 0.5, 1.0, 1.0) #self.alignment_widgets["double_click_label"].set_size_request(-1, CONTAINNER_HEIGHT) self.alignment_widgets["double_click_label"].set_padding(0, 0, TEXT_WINDOW_LEFT_PADDING, 0) self.container_widgets["double_click_main_vbox"].pack_start( self.alignment_widgets["double_click_label"], False, False) self.container_widgets["double_click_main_vbox"].pack_start( self.__setup_separator(), False, False) self.container_widgets["double_click_main_vbox"].pack_start( self.alignment_widgets["double_click_table"]) # tips lable self.container_widgets["double_click_label_hbox"].set_spacing(WIDGET_SPACING) self.container_widgets["double_click_label_hbox"].pack_start( self.image_widgets["double"], False, False) self.container_widgets["double_click_label_hbox"].pack_start( self.label_widgets["double_click"], False, False) # double click rate self.scale_widgets["double_click_rate"].set_value(settings.mouse_get_double_click()) self.scale_widgets["double_click_rate"].add_mark(self.adjust_widgets["double_click_rate"].get_lower(), gtk.POS_BOTTOM, _("Slow")) self.scale_widgets["double_click_rate"].add_mark(self.adjust_widgets["double_click_rate"].get_upper(), gtk.POS_BOTTOM, _("Fast")) self.scale_widgets["double_click_rate"].set_size_request(HSCALEBAR_WIDTH, -1) # table attach self.container_widgets["double_click_table"].set_size_request(MAIN_AREA_WIDTH, -1) self.container_widgets["double_click_table"].set_col_spacings(WIDGET_SPACING) click_rate_align = self.__make_align(self.label_widgets["click_rate"], xalign=1.0) click_rate_align.set_size_request(STANDARD_LINE, CONTAINNER_HEIGHT) self.container_widgets["double_click_table"].attach( click_rate_align, 0, 1, 0, 1, 4) self.container_widgets["double_click_table"].attach( self.__make_align(self.scale_widgets["double_click_rate"], xalign=0.0, yalign=0.0, yscale=1.0, height=43), 1, 3, 0, 1, 4) self.container_widgets["double_click_table"].attach( self.__make_align(self.label_widgets["double_test"], xalign=0.0), 1, 3, 1, 2, 4) self.container_widgets["double_click_table"].attach( self.__make_align(self.button_widgets["double_test"], xalign=0.0, xscale=1.0, height=-1), 3, 4, 0, 2) self.button_widgets["double_test"].set_size_request( self.image_widgets["double_test_1"].get_pixbuf().get_width(), self.image_widgets["double_test_1"].get_pixbuf().get_height()) # relevant setting self.container_widgets["right_vbox"].pack_start( self.__make_align(self.label_widgets["relevant"], height=-1), False, False) self.container_widgets["right_vbox"].pack_start( self.alignment_widgets["keyboard_setting"], False, False) self.container_widgets["right_vbox"].pack_start( self.alignment_widgets["touchpad_setting"], False, False) self.alignment_widgets["keyboard_setting"].add(self.button_widgets["keyboard_setting"]) self.alignment_widgets["touchpad_setting"].add(self.button_widgets["touchpad_setting"]) self.alignment_widgets["keyboard_setting"].set(0.0, 0.5, 0.0, 0.0) self.alignment_widgets["touchpad_setting"].set(0.0, 0.5, 0.0, 0.0) self.alignment_widgets["keyboard_setting"].set_padding(15, 15, 0, 0) self.alignment_widgets["keyboard_setting"].set_size_request(-1, -1) self.alignment_widgets["touchpad_setting"].set_size_request(-1, -1)