Example #1
0
    def row_activated_handler(self, lBox, lBoxRow):
        collector = self.engine.get_collector(lBoxRow.get_name())
        if (self.get_selection_mode() == Gtk.SelectionMode.SINGLE):
            self.select_row(lBoxRow)
            self.attached_gui.create_config_window(Gdk.Event(), collector)
        if (self.get_selection_mode() == Gtk.SelectionMode.MULTIPLE):
            if (lBoxRow.get_name() !=
                    self.attached_gui.get_current_config_window_name()):

                no_collectors_active = True
                for i in self.collectorStatus:
                    if (self.collectorStatus[i] == True):
                        no_collectors_active = False

                self.toggle_clicked_row(lBoxRow)
                if (no_collectors_active):
                    self.attached_gui.create_config_window(
                        Gdk.Event(), collector)

            elif (lBoxRow.get_name() ==
                  self.attached_gui.get_current_config_window_name()):
                self.toggle_clicked_row(lBoxRow)
                for c in self.collectorStatus:
                    if (self.collectorStatus[c] == True):
                        collector = self.engine.get_collector(c)
                        self.attached_gui.create_config_window(
                            Gdk.Event(), collector)
                        break
            if (not self.attached_gui.is_config_window_active()):
                self.attached_gui.create_config_window(Gdk.Event(), collector)
        self.update_row_colors(Gdk.Event(), lBoxRow)
Example #2
0
 def test_debug_mode_eventhandler(self):
     """Run keybinding and mouse click in debug mode and therefore log it."""
     # Keybinding
     event = Gdk.Event().new(Gdk.EventType.KEY_PRESS)
     event.keyval = Gdk.keyval_from_name("j")
     self.vimiv["library"].treeview.emit("key_press_event", event)
     last_line = self.read_log(string=False)[-1]
     self.assertEqual(last_line, "%-15s %s\n" % ("[key]", "j: scroll_lib j"))
     # Mouse click
     event = Gdk.Event().new(Gdk.EventType.BUTTON_PRESS)
     event.button = 1
     self.vimiv["window"].emit("button_press_event", event)
     last_line = self.read_log(string=False)[-1]
     self.assertEqual(last_line, "%-15s %s\n" % ("[key]", "Button1: next"))
Example #3
0
def propagate_button_press_event(parent, event, *data):
    """Propagates a button-press-event from the widget parent
    to the first Gtk.Button or Gtk.EventBox child encountered"""
    parent_alloc = parent.get_allocation()
    x = parent_alloc.x + int(event.x)
    y = parent_alloc.y + int(event.y)
    children = parent.get_children()
    while children:
        for child in children:
            child_alloc = child.get_allocation()
            if child_alloc.x <= x <= child_alloc.x + child_alloc.width and \
                    child_alloc.y <= y <= child_alloc.y + child_alloc.height:
                if isinstance(child, Gtk.Button) or isinstance(
                        child, Gtk.EventBox):
                    cevent = Gdk.Event()
                    cevent.type = Gdk.EventType.FOCUS_CHANGE
                    cevent.send_event = True
                    cevent.in_ = True
                    cevent.window = event.window
                    child.emit('button-press-event', cevent, *data)
                    return True
                else:
                    if hasattr(child, 'get_children') and callable(
                            child.get_children):
                        children = child.get_children()
                    else:
                        None
        else:
            children = None
    return False
 def _emit_key_press(self, key, state=0):
     event = Gdk.Event().new(Gdk.EventType.KEY_PRESS)
     event.state = state
     event.keyval = Gdk.keyval_from_name(key)
     event.window = self._ui_terminal.get_window()
     event.send_event = True
     self._ui_terminal.emit("key-press-event", event)
Example #5
0
    def emulate_focus_out_event(self):
        tstamp = Gdk.CURRENT_TIME
        Gdk.keyboard_ungrab(tstamp)
        Gdk.pointer_ungrab(tstamp)

        fevent = Gdk.Event(Gdk.EventType.FOCUS_CHANGE)
        self.emit('focus-out-event', fevent)
Example #6
0
 def renew_GPS(self):
     del self.daemon
     try:
         daemon = gps.gps(host=self.host,
                          port=self.port,
                          mode=gps.WATCH_ENABLE | gps.WATCH_JSON
                          | gps.WATCH_SCALED,
                          verbose=self.debug)
         self.watch(daemon, self.device)
     except SocketError:
         w = Gtk.MessageDialog(parent=self.window,
                               type=Gtk.MessageType.ERROR,
                               flags=Gtk.DialogFlags.DESTROY_WITH_PARENT,
                               buttons=Gtk.ButtonsType.OK)
         w.set_title('Socket Error')
         w.set_markup(
             "Failed to connect to gpsd socket. Make sure that gpsd is running."
         )
         w.run()
         w.destroy()
     except KeyboardInterrupt:
         print("Keyboard interrupt")
         self.window.emit('delete_event', Gdk.Event(Gdk.NOTHING))
         w.run()
         w.destroy()
Example #7
0
 def cb_entry_flush_timeout(self):
     event = Gdk.Event(Gdk.EventType.FOCUS_CHANGE)
     event.focus_change.in_ = True
     event.focus_change.window = self._treeview.get_window()
     self._dialog_hide(event)
     self._entry_flush_timeout = 0
     return False
Example #8
0
 def destroy_top_window(self):
     if self.top_window is None:
         return
     w = self.top_window
     if not w.emit("delete-event", Gdk.Event(Gdk.EventType.DELETE)):
         w.destroy()
     self.top_window = None
Example #9
0
    def real_start_interactive_search(self, device, keybinding):
        """
        Pops up the interactive search entry.  If keybinding is TRUE then
        the user started this by typing the start_interactive_search
        keybinding. Otherwise, it came from just typing
        """
        if (self._search_window.get_visible()):
            return True
        self.ensure_interactive_directory()
        if keybinding:
            self._search_entry.set_text("")
        self._position_func()
        self._search_window.show()
        if self._search_entry_changed_id == 0:
            self._search_entry_changed_id = \
                self._search_entry.connect("changed", self.delayed_changed)

        # Grab focus without selecting all the text
        self._search_entry.grab_focus()
        self._search_entry.set_position(-1)
        # send focus-in event
        event = Gdk.Event(Gdk.EventType.FOCUS_CHANGE)
        event.focus_change.in_ = True
        event.focus_change.window = self._search_window.get_window()
        self._search_entry.emit('focus-in-event', event)
        # search first matching iter
        self.delayed_changed(self._search_entry)
        # uncomment when deleting delayed_changed
        # self.search_init(self._search_entry)
        return True
Example #10
0
def initialize(widgets):
    """ :Description: Initialises the various tabs for each section of configurable artifacts
    """
    GeneralTab(widgets)
    HintTab(widgets)
    SoundTab(widgets)

    # All side panels can be show/hide from View menu now, so no need to do the same from preferences
    # We can re enable this after implementing install/uninstall functionality in the future...
    # PanelTab(widgets)
    ThemeTab(widgets)

    SaveTab(widgets)

    uistuff.keepWindowSize("preferencesdialog", widgets["preferences_dialog"])

    def delete_event(widget, _):
        widgets["preferences_dialog"].hide()
        return True

    widgets["preferences_dialog"].connect("delete-event", delete_event)
    widgets["preferences_dialog"].connect(
        "key-press-event",
        lambda w, e: w.event(Gdk.Event(Gdk.EventType.DELETE))
        if e.keyval == Gdk.KEY_Escape else None)
Example #11
0
def initialize(widgets):
    """ :Description: Initialises the various tabs for each section of configurable artifacts
    """
    GeneralTab(widgets)

    # All side panels can be show/hide from View menu now, so no need to do the same from preferences
    # We can re enable this after implementing install/uninstall functionality in the future...
    # PanelTab(widgets)

    uistuff.keepWindowSize("preferencesdialog", widgets["preferences_dialog"])

    notebook = widgets["preferences_notebook"]

    def switch_page(widget, page, page_num):
        global hint_tab, theme_tab, sound_tab, save_tab

        if page_num == 1 and hint_tab is None:
            hint_tab = HintTab(widgets)
        elif page_num == 3 and theme_tab is None:
            theme_tab = ThemeTab(widgets)
        elif page_num == 4 and sound_tab is None:
            sound_tab = SoundTab(widgets)
        elif page_num == 5 and save_tab is None:
            save_tab = SaveTab(widgets)

    notebook.connect("switch_page", switch_page)

    def delete_event(widget, _):
        widgets["preferences_dialog"].hide()
        return True

    widgets["preferences_dialog"].connect("delete-event", delete_event)
    widgets["preferences_dialog"].connect(
        "key-press-event",
        lambda w, e: w.event(Gdk.Event(Gdk.EventType.DELETE)) if e.keyval == Gdk.KEY_Escape else None)
Example #12
0
    def test_key_press_event(self):
        event = Gdk.Event()
        event.key.type = Gdk.EventType.KEY_PRESS
        event.keyval = Gdk.KEY_Up
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
        event.keyval = Gdk.KEY_Down
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
        event.keyval = Gdk.KEY_Left
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
        event.keyval = Gdk.KEY_Right
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()

        event.state = Gdk.ModifierType.CONTROL_MASK
        event.keyval = Gdk.KEY_Up
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
        event.keyval = Gdk.KEY_Down
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
        event.keyval = Gdk.KEY_Left
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
        event.keyval = Gdk.KEY_Right
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()

        event.state = 0
        self.diagram.focus = True
        event.keyval = Gdk.KEY_Delete
        self.diagram.emit("key-press-event", event)
        self.refresh_gui()
Example #13
0
    def do_key_press_event(self, event):
        if not self.is_fullscreen and event.keyval == Gdk.KEY_F11:
            self.fullscreen()
            self.is_fullscreen = True
            return True

        if self.is_fullscreen and event.keyval == Gdk.KEY_Escape:
            self.unfullscreen()
            self.is_fullscreen = False
            return True

        # There's an issue in pygobject3 where it thinks there's a type
        # mismatch between Gdk.EventKey and Gdk.Event. This is the workaround.
        n = Gdk.Event()
        n.type = event.type
        n.window = event.window
        n.send_event = event.send_event
        n.time = event.time
        n.state = event.state
        n.keyval = event.keyval
        n.length = event.length
        n.string = event.string
        n.hardware_keycode = event.hardware_keycode
        n.group = event.group
        n.is_modifier = event.is_modifier
        return self.chain(n)
Example #14
0
 def test_button_release_event(self):
     event = Gdk.Event().new(Gdk.EventType.BUTTON_PRESS)
     event.button = 1
     event.state = Gdk.ModifierType.BUTTON1_MASK
     self.diagram.emit("button_press_event", event)
     self.refresh_gui()
     self.diagram.emit("button_release_event", event)
     self.refresh_gui()
Example #15
0
 def test_event(self):
     event = Gdk.Event()
     event.key.type = Gdk.EventType.KEY_PRESS
     event.state = Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.MOD2_MASK
     event.keyval = Gdk.KEY_a
     self.main_window.emit("key-press-event", event)
     self.main_window.emit("check-resize")
     self.main_window.emit("delete_event", event)
Example #16
0
    def test_item_reconnect(self):
        # Setting the stage:
        ci1 = self.create(items.ClassItem, UML.Class)
        ci2 = self.create(items.ClassItem, UML.Class)
        a = self.create(items.AssociationItem)

        self.connect(a, a.head, ci1)
        self.connect(a, a.tail, ci2)

        self.assertTrue(a.subject)
        self.assertTrue(a.head_end.subject)
        self.assertTrue(a.tail_end.subject)

        the_association = a.subject

        # The act: perform button press event and button release
        view = self.component_registry.get(UIComponent,
                                           "diagrams").get_current_view()

        self.assertSame(self.diagram.canvas, view.canvas)

        p = view.get_matrix_i2v(a).transform_point(*a.head.pos)

        event = Gdk.Event()
        event.x, event.y, event.type, event.state = (
            p[0],
            p[1],
            Gdk.EventType.BUTTON_PRESS,
            0,
        )

        view.do_event(event)

        self.assertSame(the_association, a.subject)

        event = Gdk.Event()
        event.x, event.y, event.type, event.state = (
            p[0],
            p[1],
            Gdk.EventType.BUTTON_RELEASE,
            0,
        )

        view.do_event(event)

        self.assertSame(the_association, a.subject)
Example #17
0
 def kp( s, bb, k, kc ):
     e = Gdk.Event()
     e.type = Gdk.EventType.KEY_PRESS
     e.keyval = k
     e.window = s.w.get_root_window()
     e.hardware_keycode = kc
     #print(e.keyval,e.hardware_keycode,e.send_event)
     s.w.emit( 'key-press-event', e )
Example #18
0
    def testAutozoom(self, mock_dialog_run):
        mock_dialog_run.side_effect = lambda: Gtk.ResponseType.CLOSE

        azd = autozoom.AutozoomDialog(self.mw, self.f)
        self.assertEqual(azd.minsize_entry.get_text(), "1e-13")
        azd.minsize_entry.set_text("1")
        azd.emit("focus-out-event", Gdk.Event())
        self.assertEqual(azd.minsize, 1)
Example #19
0
 def test_enter_leave_event(self):
     event = Gdk.Event().new(Gdk.EventType.BUTTON_PRESS)
     event.button = 1
     event.state = Gdk.ModifierType.BUTTON1_MASK
     self.comment.emit("enter_notify_event", self.comment, event)
     self.refresh_gui()
     self.comment.emit("leave_notify_event", self.comment, event)
     self.refresh_gui()
Example #20
0
 def send_message(self,socket,dest_xid,message):
     event = Gdk.Event(Gdk.CLIENT_EVENT)
     event.window = socket.get_window()                  # needs sending Gdk window
     event.message_type = Gdk.atom_intern('Gladevcp')    # change to any text you like
     event.data_format = 8                               # 8 bit (char) data (options: long,short)
     event.data = message                                # must be exactly 20 char bytes (options: 5 long or 10 short)
     event.send_event = True                             # signals this was sent explicedly
     event.send_client_message(dest_xid)                 # uses destination XID window number
Example #21
0
 def quit_callback(self, action, parameter):
     for window in self.get_windows():
         cancelled = window.emit("delete-event",
                                 Gdk.Event(Gdk.EventType.DELETE))
         if cancelled:
             return
         window.destroy()
     self.quit()
Example #22
0
 def video_complete(self, pid, status):
     self.spinner.stop()
     self.running = False
     if status == 0:
         self.error = False
     else:
         self.error = True
     self.dialog.emit('delete_event', Gdk.Event())
Example #23
0
    def test_event(self):
        event = Gdk.Event.new(Gdk.EventType.CONFIGURE)
        self.assertEqual(event.type, Gdk.EventType.CONFIGURE)
        self.assertEqual(event.send_event, 0)

        event = Gdk.Event()
        event.type = Gdk.EventType.SCROLL
        self.assertRaises(AttributeError, lambda: getattr(event, 'foo_bar'))
Example #24
0
    def test_item_reconnect(self):
        # Setting the stage:
        ci1 = self.create(ClassItem, UML.Class)
        ci2 = self.create(ClassItem, UML.Class)
        a = self.create(AssociationItem)

        self.connect(a, a.head, ci1)
        self.connect(a, a.tail, ci2)

        assert a.subject
        assert a.head_end.subject
        assert a.tail_end.subject

        the_association = a.subject

        # The act: perform button press event and button release
        view = self.component_registry.get(UIComponent,
                                           "diagrams").get_current_view()

        assert self.diagram is view.model

        p = view.get_matrix_i2v(a).transform_point(*a.head.pos)

        event = Gdk.Event()
        event.x, event.y, event.type, event.state = (
            p[0],
            p[1],
            Gdk.EventType.BUTTON_PRESS,
            0,
        )

        view.event(event)

        assert the_association is a.subject

        event = Gdk.Event()
        event.x, event.y, event.type, event.state = (
            p[0],
            p[1],
            Gdk.EventType.BUTTON_RELEASE,
            0,
        )

        view.event(event)

        assert the_association is a.subject
Example #25
0
 def _button_press_event(self, obj, event):
     if not obj:
         return
     # keyb_device = event.device
     event = Gdk.Event(Gdk.EventType.FOCUS_CHANGE)
     event.focus_change.in_ = True
     event.focus_change.window = self._treeview.get_window()
     self._dialog_hide(event)
Example #26
0
 def show_error(self, message, secondary):
     self.error = True
     error_dlg = hig.ErrorAlert(transient_for=self,
                                primary=message,
                                secondary=secondary)
     error_dlg.run()
     error_dlg.destroy()
     event = Gdk.Event(Gdk.EventType.DELETE)
     self.emit('delete_event', event)
Example #27
0
 def test_events(self):
     gdkevent = Gdk.Event()
     gdkevent.key.type = Gdk.EventType.BUTTON_PRESS
     self.workarea.add_diagram(self.create_diagram())
     tab = self.workarea.get_nth_page(self.workarea.get_current_page())
     hbox = self.workarea.get_tab_label(tab)
     label = hbox.get_children()[0]
     button = hbox.get_children()[1]
     button.emit("clicked")
Example #28
0
 def test_motion_notify_event(self):
     event = Gdk.Event().new(Gdk.EventType.BUTTON_PRESS)
     event.button = 1
     event.state = Gdk.ModifierType.BUTTON1_MASK
     self.comment.emit("motion_notify_event", self.comment, event)
     self.refresh_gui()
     event.state = Gdk.ModifierType.SHIFT_MASK | Gdk.ModifierType.MOD2_MASK
     self.comment.emit("motion_notify_event", self.comment, event)
     self.refresh_gui()
Example #29
0
 def test_add_number_via_keypress(self):
     """Add a number to the numstr by keypress."""
     self.assertFalse(self.vimiv["eventhandler"].num_str)
     event = Gdk.Event().new(Gdk.EventType.KEY_PRESS)
     event.keyval = Gdk.keyval_from_name("2")
     self.vimiv["library"].treeview.emit("key_press_event", event)
     self.assertEqual(self.vimiv["eventhandler"].num_str, "2")
     # Clear as it might interfere
     self.vimiv["eventhandler"].num_clear()
Example #30
0
 def test_key_press_modifier(self):
     """Press key with modifier."""
     before = self.vimiv["library"].show_hidden
     event = Gdk.Event().new(Gdk.EventType.KEY_PRESS)
     event.keyval = Gdk.keyval_from_name("h")
     event.state = Gdk.ModifierType.CONTROL_MASK
     self.vimiv["library"].treeview.emit("key_press_event", event)
     after = self.vimiv["library"].show_hidden
     self.assertNotEqual(before, after)