def cp_all(butt, self, self2, win2, iter=None): #print("Copy all to clip") win2.tree.get_selection().select_all() sel = win2.tree.get_selection() xmodel, xiter = sel.get_selected_rows() cumm = "" for aa in xiter: iter = xmodel.get_iter(aa) xstr = xmodel.get_value(iter, 0) #print("got %s" % xstr); cc = xstr.split(" ") bb = cc[0].split(":") dd = xstr[len(cc[0]) + 1:] #print("str '%s'" % dd); cumm += dd + "\n" disp = Gdk.Display().get_default() clip = Gtk.Clipboard.get_default(disp) clip.set_text(cumm, len(cumm)) self2.mained.update_statusbar("Copied hits to clipboard.", True) win2.destroy()
def ensure_display_open(cls, display): """ Return GdkDisplay for name @display. Return default if @display is None. """ return Gdk.DisplayManager.get().get_default_display() def norm_name(name): "normalize display name" if name[-2] == ":": return name + ".0" return name dm = Gdk.display_manager_get() if display: new_display = None for disp in dm.list_displays(): if norm_name(disp.get_name()) == norm_name(display): new_display = disp break if new_display is None: pretty.print_debug(__name__, "Opening display in ensure_display_open", display) new_display = Gdk.Display(display) else: new_display = Gdk.Display.get_default() ## Hold references to all open displays cls._open_displays = set(dm.list_displays()) return new_display
def get_area(): # width of the primary screen. dspl = Gdk.Display() dsp = dspl.get_default() prim = dsp.get_primary_monitor() geo = prim.get_geometry() return [geo.width, geo.height]
class MonitorScreenInfo(object): display = Gdk.Display().get_default() @staticmethod def get_default_display(): return MonitorScreenInfo.display @staticmethod def get_screens_number(): return MonitorScreenInfo.display.get_n_screens() @staticmethod def get_screens(): display = MonitorScreenInfo.display screen_number = display.get_n_screens() return [ ScreenInfo(display.get_screen(screennumber)) for screennumber in range(screen_number) ] @staticmethod def get_monitors_number(): return MonitorScreenInfo.display.get_n_monitors() @staticmethod def get_monitors(): display = MonitorScreenInfo.display monitor_number = display.get_n_monitors() return [ MonitorInfo(display.get_monitor(monitornumber)) for monitornumber in range(monitor_number) ]
def btn_press(self, _widget, event): if self.target_y == None: cursor = Gdk.Cursor.new_from_name(Gdk.Display().get_default(), 'grabbing') self.get_window().set_cursor(cursor) _, current_y = self.get_position() self.dragging_from = current_y - (current_y - event.y) return True
def __init__(self): display = Gdk.Display().get_default() self.monitor = display.get_monitor(0) self.x = self.monitor.get_geometry().x self.y = self.monitor.get_geometry().y self.width = self.monitor.get_geometry().width self.height = self.monitor.get_geometry().height self.geometry = self.monitor.get_geometry() self.info = {"monitor":self.monitor,"x":self.x,"y":self.y,"width":self.width,"height":self.height}
def __init__(self): self.full = False self.fcount = 0 self.statuscount = 0 self.alt = False self.fullscreen = False self.got_warn = False pgutils.register_stock_icons() global mained mained = self warnings.simplefilter("ignore") disp2 = Gdk.Display() disp = disp2.get_default() #print disp scr = disp.get_default_screen() ptr = disp.get_pointer() #ptr = disp2.get_position() mon = scr.get_monitor_at_point(ptr[1], ptr[2]) #mon = disp.get_monitor_at_point(ptr[1], ptr[2]) geo = scr.get_monitor_geometry(mon) www = geo.width hhh = geo.height xxx = geo.x yyy = geo.y warnings.simplefilter("default") # Resort to old means of getting screen w / h if www == 0 or hhh == 0: www = Gdk.screen_width() hhh = Gdk.screen_height() # Create the toplevel window self.mywin = Gtk.Window() self.logwin = pycallog.LogWin() self.mywin.set_icon_from_file("pycal.png") #self.mywin.set_hide_titlebar_when_maximized(True) self.mywin.connect("key-press-event", self.keypress) #self.mywin.set_title("Calendar Alarm Monitor") self.mywin.set_title("Python Calendar") self.mywin.set_position(Gtk.WindowPosition.CENTER) mwh = min(www, hhh) self.mywin.set_default_size(3 * www / 4, 3 * hhh / 4) self.mywin.set_size_request(200, 200) self.mywin.set_events(Gdk.EventMask.ALL_EVENTS_MASK) self.mywin.connect("unmap", OnExit) self.populate() self.mywin.show_all()
def set_visual(self, xid, realsink=None): if realsink is None: realsink = self.imagesink self.xid = xid if xid and hasattr(realsink, 'set_window_handle'): logger.info("Reparent " + hex(xid)) Gdk.Display().get_default().sync() realsink.set_window_handle(xid) if hasattr(realsink.props, 'force-aspect-ratio'): realsink.set_property('force-aspect-ratio', True) return True
def reparent(self, xid): logger.debug("Reparent %s", xid) # See https://bugzilla.gnome.org/show_bug.cgi?id=599885 if xid: self.log("Reparent " + hex(xid)) Gdk.Display().get_default().sync() self.imagesink.set_window_handle(xid) self.imagesink.set_property('force-aspect-ratio', True) self.imagesink.expose()
def __init__(self, title='hello', **kwargs): print('before suer') super().__init__(title=title) dims = Gdk.Display().get_default().get_monitor(0).get_geometry() print('dims') print(dims) if 'width' in kwargs.keys(): self.width = kwargs['width'] if 'height' in kwargs.keys(): self.height = kwargs['height'] self.set_default_size(width=self.width, height=self.height) self.move((dims.width / 2) - (self.width / 2), 40) self.set_has_resize_grip(False) self.set_decorated(False) self.connect('destroy', Gtk.main_quit)
def reparent(self, xid, sink=None): if sink is None: sink = self.real_imagesink else: self.real_imagesink = sink logger.debug("Reparent %s", xid) # See https://bugzilla.gnome.org/show_bug.cgi?id=599885 if xid: self.log("Reparent " + hex(xid)) Gdk.Display().get_default().sync() try: sink.set_window_handle(xid) sink.set_property('force-aspect-ratio', True) sink.expose() except AttributeError: logger.warning("cannot set video output widget")
def _inspectUnderMouse(self): ''' Inspect accessible of widget under mouse. ''' display = gdk.Display(gdk.get_display()) screen, x, y, flags = display.get_pointer() del screen # A workaround http://bugzilla.gnome.org/show_bug.cgi?id=593732 # First check if the currently selected accessible has the pointer over it. # This is an optimization: Instead of searching for # STATE_SELECTED and ROLE_MENU and LAYER_POPUP in the entire tree. item = self._getPopupItem(x,y) if item: self.node.update(item) return # Inspect accessible under mouse desktop = pyatspi.Registry.getDesktop(0) wnck_screen = wnck.Screen.get_default() window_order = [w.get_name() for w in wnck_screen.get_windows_stacked()] top_window = (None, -1) for app in desktop: if not app or self.isMyApp(app): continue for frame in app: if not frame: continue acc = self._getComponentAtCoords(frame, x, y) if acc: try: z_order = window_order.index(frame.name) except ValueError: # It's possibly a popup menu, so it would not be in our frame name # list. And if it is, it is probably the top-most component. try: if acc.queryComponent().getLayer() == pyatspi.LAYER_POPUP: self.node.update(acc) return except: pass else: if z_order > top_window[1]: top_window = (acc, z_order) if top_window[0]: self.node.update(top_window[0])
def Popupmenu_Activate(self, menuitem, listview, menuindex): if listview.get_selection() == None: return model = listview.get_selection().get_selected()[0] selection = listview.get_selection().get_selected()[1] clipboard = Gtk.Clipboard().get_for_display(Gdk.Display().get_default(), Gdk.SELECTION_CLIPBOARD) if menuindex == 0: # Copy Data clipboard.set_text(model.get_value(selection, 1), -1) elif menuindex == 1: # Copy Annotation clipboard.set_text(model.get_value(selection, 2), -1) elif menuindex == 2: # Copy Field Name clipboard.set_text(model.get_value(selection, 0), -1)
def paste(self, win, butt, idx): clip = Gtk.Clipboard.get_default(Gdk.Display().get_default()) self.text1.get_buffer().paste_clipboard(clip, None, True)
def get_mouse_pos(): display = Gdk.Display().get_default() dm = Gdk.Display.get_device_manager(display) mouse = Gdk.DeviceManager.get_client_pointer(dm) screen, x, y = mouse.get_position() return x, y
def copy(self, win, butt, idx): #print("Copy clip") clip = Gtk.Clipboard.get_default(Gdk.Display().get_default()) self.text2.get_buffer().copy_clipboard(clip)
def __init__(self, pvg, parent=None): Gtk.Window.__init__(self) try: self.set_screen(parent.get_screen()) except AttributeError: self.connect('destroy', lambda *w: Gtk.main_quit()) self.set_title(self.__class__.__name__) #self.set_border_width(0) img_dir = os.path.dirname(os.path.abspath(__file__)) img_path = os.path.join(img_dir, "pangview.png") try: self.set_icon_from_file(img_path) except: #print ("Cannot load app icon.") pass #rect = self.get_allocation() disp2 = Gdk.Display() disp = disp2.get_default() #print (disp) scr = disp.get_default_screen() ptr = disp.get_pointer() mon = scr.get_monitor_at_point(ptr[1], ptr[2]) geo = scr.get_monitor_geometry(mon) www = geo.width hhh = geo.height xxx = geo.x yyy = geo.y #www = rect.width; #hhh = rect.height; #self.set_default_size(7*www/8, 7*hhh/8) if pvg.full_screen: self.set_default_size(www, hhh) else: #self.set_default_size(3*www/4, 3*hhh/4) self.set_default_size(hhh, 3 * hhh / 4) self.set_position(Gtk.WindowPosition.CENTER) #self.set_title("Pango test display"); hpaned = Gtk.HPaned() hpaned.set_border_width(5) self.add(hpaned) view1 = Gtk.TextView() view1.set_border_width(8) view1.connect("key-press-event", self.key_press_event) view1.connect("event-after", self.event_after) view1.connect("motion-notify-event", self.motion_notify_event) view1.connect("visibility-notify-event", self.visibility_notify_event) view1.set_editable(False) view1.set_cursor_visible(False) self.view = view1 self.buffer_1 = view1.get_buffer() sw = Gtk.ScrolledWindow() sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) sw.add(view1) view2 = Gtk.TextView() view2.set_border_width(8) view2.set_editable(False) self.buffer_2 = view2.get_buffer() sw2 = Gtk.ScrolledWindow() sw2.set_shadow_type(Gtk.ShadowType.ETCHED_IN) sw2.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) sw2.add(view2) view2.connect("key-press-event", self.key_press_event2) view2.connect("event-after", self.event_after2) view2.connect("motion-notify-event", self.motion_notify_event2) view2.connect("visibility-notify-event", self.visibility_notify_event2) hpaned.add1(sw2) hpaned.add2(sw) self.hpaned = hpaned self.set_pane_position(1) self.iter = self.buffer_1.get_iter_at_offset(0) self.iter2 = self.buffer_1.get_iter_at_offset(0) self.set_focus(view1) self.show_all()
def get_area(): # width of the primary screen. dsp = Gdk.Display().get_default() prim = dsp.get_primary_monitor() return prim.get_geometry().width
def __init__(self): Gtk.Window.__init__(self, Gtk.WindowType.TOPLEVEL) #self = Gtk.Window(Gtk.WindowType.TOPLEVEL) #register_stock_icons() self.set_title("Template") self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) #ic = Gtk.Image(); ic.set_from_stock(Gtk.STOCK_DIALOG_INFO, Gtk.ICON_SIZE_BUTTON) #window.set_icon(ic.get_pixbuf()) www = Gdk.Screen.width() hhh = Gdk.Screen.height() disp2 = Gdk.Display() disp = disp2.get_default() #print( disp) scr = disp.get_default_screen() ptr = disp.get_pointer() mon = scr.get_monitor_at_point(ptr[1], ptr[2]) geo = scr.get_monitor_geometry(mon) www = geo.width hhh = geo.height xxx = geo.x yyy = geo.y # Resort to old means of getting screen w / h if www == 0 or hhh == 0: www = Gdk.screen_width() hhh = Gdk.screen_height() if www / hhh > 2: self.set_default_size(5 * www / 8, 7 * hhh / 8) else: self.set_default_size(7 * www / 8, 7 * hhh / 8) '''self.set_flags(Gtk.CAN_FOCUS | Gtk.SENSITIVE) self.set_events( Gdk.POINTER_MOTION_MASK | Gdk.POINTER_MOTION_HINT_MASK | Gdk.BUTTON_PRESS_MASK | Gdk.BUTTON_RELEASE_MASK | Gdk.KEY_PRESS_MASK | Gdk.KEY_RELEASE_MASK | Gdk.FOCUS_CHANGE_MASK ) ''' self.connect("destroy", self.OnExit) self.connect("key-press-event", self.key_press_event) self.connect("button-press-event", self.button_press_event) try: self.set_icon_from_file("icon.png") except: pass vbox = Gtk.VBox() hbox4 = Gtk.HBox() merge = Gtk.UIManager() #self.mywin.set_data("ui-manager", merge) aa = create_action_group(self) merge.insert_action_group(aa, 0) self.add_accel_group(merge.get_accel_group()) merge_id = merge.new_merge_id() try: mergeid = merge.add_ui_from_string(ui_info) except GLib.GError as msg: print("Building menus failed: %s" % msg) self.mbar = merge.get_widget("/MenuBar") self.mbar.show() self.tbar = merge.get_widget("/ToolBar") self.tbar.show() bbox = Gtk.VBox() bbox.pack_start(self.mbar, 0, 0, 0) bbox.pack_start(self.tbar, 0, 0, 0) vbox.pack_start(bbox, False, 0, 0) lab1 = Gtk.Label("") hbox4.pack_start(lab1, 1, 1, 0) butt1 = Gtk.Button.new_with_mnemonic(" _New ") #butt1.connect("clicked", self.show_new, window) hbox4.pack_start(butt1, False, 0, 2) butt2 = Gtk.Button.new_with_mnemonic(" E_xit ") butt2.connect("clicked", self.OnExit, self) hbox4.pack_start(butt2, False, 0, 0) lab2 = Gtk.Label(" ") hbox4.pack_start(lab2, 0, 0, 0) hbox2 = Gtk.HBox() lab3 = Gtk.Label("") hbox2.pack_start(lab3, 0, 0, 0) lab4 = Gtk.Label("") hbox2.pack_start(lab4, 0, 0, 0) vbox.pack_start(hbox2, False, 0, 0) hbox3 = Gtk.HBox() self.edit = SimpleEdit() hbox3.pack_start(self.edit, True, True, 6) vbox.pack_start(hbox3, True, True, 2) vbox.pack_start(hbox4, False, 0, 6) self.add(vbox) self.show_all()
def get_window_xid(): # On Xorg Only time.sleep(sl) d = Gdk.Display().get_default() dv = d.get_device_manager() p = dv.get_client_pointer() return p.get_window_at_position()[0].get_xid()
def __init__(self): Gtk.Window.__init__(self, Gtk.WindowType.TOPLEVEL) #self = Gtk.Window(Gtk.WindowType.TOPLEVEL) self.show_menu = True self.show_tbar = True register_stock_icons() self.set_title("Template") self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) #ic = Gtk.Image(); ic.set_from_stock(Gtk.STOCK_DIALOG_INFO, Gtk.ICON_SIZE_BUTTON) #window.set_icon(ic.get_pixbuf()) www = Gdk.Screen.width(); hhh = Gdk.Screen.height(); disp2 = Gdk.Display() disp = disp2.get_default() #print( disp) scr = disp.get_default_screen() ptr = disp.get_pointer() mon = scr.get_monitor_at_point(ptr[1], ptr[2]) geo = scr.get_monitor_geometry(mon) www = geo.width; hhh = geo.height xxx = geo.x; yyy = geo.y # Resort to old means of getting screen w / h if www == 0 or hhh == 0: www = Gdk.screen_width(); hhh = Gdk.screen_height(); if www / hhh > 2: self.set_default_size(5*www/8, 7*hhh/8) else: self.set_default_size(7*www/8, 7*hhh/8) self.connect("destroy", self.OnExit) self.connect("key-press-event", self.key_press_event) self.connect("button-press-event", self.button_press_event) try: self.set_icon_from_file("icon.png") except: pass self.headbar = Gtk.HeaderBar() self.headbar.set_decoration_layout("icon,menu:minimize,maximize,close") self.headbar.set_show_close_button(True) self.menu = MenuButt(("Open", "Close", "Exit"), self.menu_click) self.headbar.pack_start(Gtk.Label()) self.headbar.pack_start(self.menu) self.headbar.pack_start(Gtk.Label()) box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(box.get_style_context(), "linked") button = Gtk.Button() button.connect("pressed", self.xmail) button.set_tooltip_text("You may configure whatever you want ...") icon = Gio.ThemedIcon(name="mail-send-receive-symbolic") image = Gtk.Image.new_from_gicon(icon, Gtk.IconSize.BUTTON) button.add(image) self.headbar.pack_end(button) button = Gtk.Button() button.add(Gtk.Arrow(Gtk.ArrowType.DOWN, Gtk.ShadowType.NONE)) button.set_tooltip_text("Show / Hide Toolbar") box.add(button) box.add(Gtk.Label(" ")) button.connect("pressed", self.ttt) button = Gtk.Button() button.add(Gtk.Arrow(Gtk.ArrowType.DOWN, Gtk.ShadowType.NONE)) button.connect("pressed", self.mmm) button.set_tooltip_text("Show / Hide menu") box.add(button) box.add(Gtk.Label(" ")) box.add(Gtk.Label(" ")) button = Gtk.Button() button.add(Gtk.Arrow(Gtk.ArrowType.LEFT, Gtk.ShadowType.NONE)) button.connect("pressed", self.bleft) box.add(button) box.add(Gtk.Label(" ")) button = Gtk.Button() button.add(Gtk.Arrow(Gtk.ArrowType.RIGHT, Gtk.ShadowType.NONE)) button.connect("pressed", self.bright) box.add(button) self.headbar.pack_start(box) self.set_titlebar(self.headbar) vbox4 = Gtk.VBox(); hbox4 = Gtk.HBox() merge = Gtk.UIManager() #self.mywin.set_data("ui-manager", merge) aa = create_action_group(self) merge.insert_action_group(aa, 0) self.add_accel_group(merge.get_accel_group()) merge_id = merge.new_merge_id() try: mergeid = merge.add_ui_from_string(ui_info) except GLib.GError as msg: print("Building menus failed: %s" % msg) self.mbar = merge.get_widget("/MenuBar") self.mbar.show() self.tbar = merge.get_widget("/ToolBar"); self.tbar.show() bbox = Gtk.VBox() bbox.pack_start(self.mbar, 0,0, 0) bbox.pack_start(self.tbar, 0,0, 0) vbox4.pack_start(bbox, False, 0, 0) lab1 = Gtk.Label(""); hbox4.pack_start(lab1, 1, 1, 0) butt1 = Gtk.Button.new_with_mnemonic(" _New ") #butt1.connect("clicked", self.show_new, window) hbox4.pack_start(butt1, False, 0, 2) butt2 = Gtk.Button.new_with_mnemonic(" E_xit ") butt2.connect("clicked", self.OnExit, self) hbox4.pack_start(butt2, False, 0, 0) lab2 = Gtk.Label(" "); hbox4.pack_start(lab2, 0, 0, 0) hbox2 = Gtk.HBox() lab3 = Gtk.Label(""); hbox2.pack_start(lab3, 0, 0, 0) lab4 = Gtk.Label(""); hbox2.pack_start(lab4, 0, 0, 0) vbox4.pack_start(hbox2, False, 0, 0) hbox3 = Gtk.HBox() self.edit = SimpleEdit(); hbox3.pack_start(self.edit, True, True, 6) vbox4.pack_start(hbox3, True, True, 2) vbox4.pack_start(hbox4, False, 0, 6) self.add(vbox4) self.show_all()
def parameters(self): monitor = Gdk.Display().get_default().get_monitor(0) scale, geometry = monitor.get_scale_factor(), monitor.get_geometry() return (scale * geometry.width, scale * geometry.height, 30)
import gi #gi.require_version('Gtk', '3.0') gi.require_version('Gdk', '3.0') #from gi.repository import Gtk from gi.repository import Gdk Gdk.init("") displays = Gdk.DisplayManager().list_displays() print("Number of displays(" + str(len(displays)) + ")") #slaves = Gdk.Seat().get_slaves() print("Get default display...") display = Gdk.Display().get_default() if (display == None): print("Display not found!") exit devices = display.get_device_manager().list_devices(Gdk.DeviceType.MASTER) #devices = display.get_device_manager().list_devices(Gdk.DeviceType.SLAVE) #devices = display.get_device_manager().list_devices(Gdk.DeviceType.FLOATING) print("Number of devices(" + str(len(devices)) + ")") for device in devices: print(device.get_name()) print("Get default seat...") seat = display.get_default_seat() if (seat == None): print("Default seat not found!") exit