def mk_line_menu(self, agr): self.line_item = Gtk.MenuItem.new_with_mnemonic(label="_Line") self.operations_bar.append(self.line_item) self.line_menu = Gtk.Menu() self.line_item.set_submenu(self.line_menu) self.line_2point_item = Gtk.MenuItem(label="Two point line") self.line_2point_item.connect( "activate", lambda *args: ep.push_event(ee.line_2point_click, args)) self.line_menu.append(self.line_2point_item)
def __init__(self, argv): args = { "--verbose": { "is_set": util.NOT_SET, "has_option": util.HAS_OPTION, "option": None }, "--plugins-dir": { "is_set": util.NOT_SET, "has_option": util.HAS_OPTION, "option": None } } util.parse_args(args, argv) if args["--verbose"]["has_option"]: verbose_level = int(args["--verbose"]["option"]) if verbose_level == 1: logging.getLogger("").setLevel(logging.CRITICAL) elif verbose_level == 2: logging.getLogger("").setLevel(logging.ERROR) elif verbose_level == 3: logging.getLogger("").setLevel(logging.WARNING) elif verbose_level == 4: logging.getLogger("").setLevel(logging.INFO) elif verbose_level >= 5: logging.getLogger("").setLevel(logging.DEBUG) self.window = Gtk.Window() self.window.maximize() self.window.connect("delete-event", Gtk.main_quit) self.window.set_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.KEY_RELEASE_MASK) self.window.connect("key_press_event", self.key_press_event) self.window.connect("key_release_event", self.key_release_event) self.menu_bar = Gtk.MenuBar() agr = Gtk.AccelGroup() self.window.add_accel_group(agr) self.mk_file_menu(agr) self.mk_edit_menu(agr) self.window_vbox = Gtk.VBox(homogeneous=False, spacing=0) self.window_vbox.pack_start(self.menu_bar, expand=False, fill=False, padding=0) self.window.add(self.window_vbox) self.widget = CairoScreen() self.__mk_left_vbox() self.hbox = Gtk.HBox(homogeneous=False, spacing=0) self.hbox.pack_start(self.left_vbox, expand=False, fill=False, padding=0) self.widget_vbox = Gtk.VBox(homogeneous=False, spacing=0) self.operations_hbox = Gtk.HBox(homogeneous=False, spacing=0) self.operations_bar = Gtk.MenuBar() self.operations_hbox.pack_start(self.operations_bar, expand=False, fill=False, padding=0) self.mk_line_menu(agr) self.mk_circle_menu(agr) self.mk_rectangle_menu(agr) hseparator = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL) self.operations_hbox.pack_start(hseparator, expand=False, fill=False, padding=0) self.snap_bar = Gtk.MenuBar() self.mk_snap_menu(agr) self.widget_vbox.pack_start(self.operations_hbox, expand=False, fill=False, padding=0) self.widget_vbox.pack_start(self.widget, expand=True, fill=True, padding=0) self.hbox.pack_start(self.widget_vbox, expand=True, fill=True, padding=0) self.window_vbox.pack_start(self.hbox, expand=True, fill=True, padding=0) self.window.show_all() self.window.present() ep.push_event(ee.sketcher_start, (None)) Singleton.mw = self ep.mw = self gobject.timeout_add(10, self.widget.periodic) Gtk.main()
def motion_notify_event(self, widget, event): ep.push_event(ee.pointer_motion, (event.x, event.y))
def button_release_event(self, widget, event): if event.button == 1: ep.push_event(ee.screen_left_release, (event.x, event.y))
def key_press_event(self, widget, event): debug("key press:" + str(event.keyval)) if event.keyval == Gdk.keyval_from_name('Escape'): # ESC ep.push_event(ee.escape, (None))
def button_press_event(self, widget, event): if event.button == 1: ep.push_event(ee.screen_left_press, (event.x, event.y))
def scroll_event(self, widget, event): if event.direction == Gdk.ScrollDirection.UP: ep.push_event(ee.scroll_up, (None)) elif event.direction == Gdk.ScrollDirection.DOWN: ep.push_event(ee.scroll_down, (None))