def __init__(self, extension, opener, preferences): gtk.HBox.__init__(self) self.extension = extension # XXX self.opener = opener self.uistate = extension.uistate self.preferences = preferences use_thumbs = self.preferences.setdefault('use_thumbnails', True) # Hidden setting self.iconview = FileBrowserIconView(opener, self.icon_size, use_thumbs) self.add(ScrolledWindow(self.iconview, shadow=gtk.SHADOW_NONE)) self.buttonbox = gtk.VBox() self.pack_end(self.buttonbox, False) open_folder_button = IconButton(gtk.STOCK_OPEN, relief=False) open_folder_button.connect('clicked', self.on_open_folder) self.buttonbox.pack_start(open_folder_button, False) refresh_button = IconButton(gtk.STOCK_REFRESH, relief=False) refresh_button.connect('clicked', lambda o: self.on_refresh_button()) self.buttonbox.pack_start(refresh_button, False) zoomin = IconButton(gtk.STOCK_ZOOM_IN, relief=False) zoomout = IconButton(gtk.STOCK_ZOOM_OUT, relief=False) zoomin.connect('clicked', lambda o: self.on_zoom_in()) zoomout.connect('clicked', lambda o: self.on_zoom_out()) self.buttonbox.pack_end(zoomout, False) self.buttonbox.pack_end(zoomin, False) self.zoomin_button = zoomin self.zoomout_button = zoomout self.set_icon_size(self.icon_size) self.iconview.connect('folder-changed', lambda o: self.extension._refresh_statusbar())
def __init__(self, parent): Dialog.__init__(self, parent, _('Custom Tools'), buttons=Gtk.ButtonsType.CLOSE) # T: Dialog title self.set_help(':Help:Custom Tools') self.manager = CustomToolManager() self.add_help_text( _('You can configure custom tools that will appear\n' 'in the tool menu and in the tool bar or context menus.') ) # T: help text in "Custom Tools" dialog hbox = Gtk.HBox(spacing=5) self.vbox.pack_start(hbox, True, True, 0) self.listview = CustomToolList(self.manager) hbox.pack_start(self.listview, True, True, 0) vbox = Gtk.VBox(spacing=5) hbox.pack_start(vbox, False, True, 0) for stock, handler, data in ( (Gtk.STOCK_ADD, self.__class__.on_add, None), (Gtk.STOCK_EDIT, self.__class__.on_edit, None), (Gtk.STOCK_DELETE, self.__class__.on_delete, None), (Gtk.STOCK_GO_UP, self.__class__.on_move, -1), (Gtk.STOCK_GO_DOWN, self.__class__.on_move, 1), ): button = IconButton(stock) # TODO tooltips for icon button if data: button.connect_object('clicked', handler, self, data) else: button.connect_object('clicked', handler, self) vbox.pack_start(button, False, True, 0)
def _button_box(self): ''' Panel which includes buttons for manipulating the current treeview: - add / delete - move up / move down row :return: vbox-panel ''' vbox = Gtk.VBox(spacing=5) for stock, handler, data, tooltip in ( (Gtk.STOCK_ADD, self.on_add_new_column, None, _('Add column')), # T: hoover tooltip (Gtk.STOCK_DELETE, self.on_delete_column, None, _('Remove column')), # T: hoover tooltip (Gtk.STOCK_GO_UP, self.on_move_column, -1, _('Move column ahead')), # T: hoover tooltip (Gtk.STOCK_GO_DOWN, self.on_move_column, 1, _('Move column backward')), # T: hoover tooltip ): button = IconButton(stock) if data: button.connect('clicked', handler, data) else: button.connect('clicked', handler) button.set_tooltip_text(tooltip) vbox.pack_start(button, False, True, 0) vbox.show_all() return vbox
def __init__(self, parent, linkmap, navigation): Dialog.__init__(self, parent, 'LinkMap', defaultwindowsize=(400, 400), buttons=Gtk.ButtonsType.CLOSE) self.linkmap = linkmap self.navigation = navigation hbox = Gtk.HBox(spacing=5) self.vbox.pack_start(hbox, True, True, 0) self.xdotview = xdot.DotWidget() self.xdotview.set_filter('fdp') self.xdotview.set_dotcode(linkmap.get_dotcode()) self.xdotview.connect('clicked', self.on_node_clicked) hbox.add(self.xdotview) vbox = Gtk.VBox() hbox.pack_start(vbox, False, False, 0) for stock, method in ( (Gtk.STOCK_ZOOM_IN, self.xdotview.on_zoom_in), (Gtk.STOCK_ZOOM_OUT, self.xdotview.on_zoom_out), (Gtk.STOCK_ZOOM_FIT, self.xdotview.on_zoom_fit), (Gtk.STOCK_ZOOM_100, self.xdotview.on_zoom_100), ): button = IconButton(stock) button.connect('clicked', method) vbox.pack_start(button, False, True, 0)
def __init__(self, ui, linkmap, opener): Dialog.__init__(self, ui, 'LinkMap', defaultwindowsize=(400, 400), buttons=gtk.BUTTONS_CLOSE) self.linkmap = linkmap self.opener = opener hbox = gtk.HBox(spacing=5) self.vbox.add(hbox) self.xdotview = xdot.DotWidget() self.xdotview.set_filter('fdp') self.xdotview.set_dotcode(linkmap.get_dotcode()) self.xdotview.connect('clicked', self.on_node_clicked) hbox.add(self.xdotview) vbox = gtk.VBox() hbox.pack_start(vbox, False) for stock, method in ( (gtk.STOCK_ZOOM_IN, self.xdotview.on_zoom_in), (gtk.STOCK_ZOOM_OUT, self.xdotview.on_zoom_out), (gtk.STOCK_ZOOM_FIT, self.xdotview.on_zoom_fit), (gtk.STOCK_ZOOM_100, self.xdotview.on_zoom_100), ): button = IconButton(stock) button.connect('clicked', method) vbox.pack_start(button, False)
def __init__(self, parent, callback=None): Dialog.__init__(self, parent, _('Open Notebook')) # T: dialog title # TODO set button to "OPEN" instead of "OK" self.callback = callback self.set_default_size(500, 400) self.set_help(':Help:Notebooks') # show some art work in an otherwise boring dialog path = data_file('globe_banner_small.png').path image = Gtk.Image() image.set_from_file(path) # new_from_file not in 2.6 align = Gtk.Alignment.new(0, 0.5, 0, 0) align.add(image) self.vbox.pack_start(align, False, True, 0) # split between treeview and vbuttonbox hbox = Gtk.HBox(spacing=12) self.vbox.pack_start(hbox, True, True, 0) # add notebook list - open notebook on clicking a row self.treeview = NotebookTreeView() self.treeview.connect('row-activated', lambda *a: self.response(Gtk.ResponseType.OK)) hbox.add(ScrolledWindow(self.treeview)) # add buttons for modifying the treeview vbbox = Gtk.VButtonBox() vbbox.set_layout(Gtk.ButtonBoxStyle.START) hbox.pack_start(vbbox, False, True, 0) add_button = Gtk.Button.new_with_mnemonic(_('_Add')) # T: Button label add_button.connect('clicked', self.do_add_notebook) #~ edit_button = Gtk.Button.new_with_mnemonic(_('_Edit')) # T: Button label #~ edit_button.connect('clicked', self.do_edit_notebook) rm_button = Gtk.Button.new_with_mnemonic( _('_Remove')) # T: Button label rm_button.connect('clicked', self.do_remove_notebook) #~ for b in (add_button, edit_button, rm_button): for b in (add_button, rm_button): b.set_alignment(0.0, 0.5) vbbox.add(b) # FIXME buttons for "up" and "down" ? # add dropdown to select default self.combobox = DefaultNotebookComboBox(self.treeview.get_model()) # clear button de-selects any item in the combobox clear_button = IconButton('gtk-clear') clear_button.connect('clicked', lambda o: self.combobox.set_active(-1)) hbox = Gtk.HBox(spacing=5) hbox.pack_start(Gtk.Label(_('Default notebook') + ': '), False, True, 0) # T: Input label in 'open notebook' dialog hbox.pack_start(self.combobox, False, True, 0) hbox.pack_start(clear_button, False, True, 0) self.vbox.pack_start(hbox, False, True, 0)
def __init__(self, extension, opener, preferences): GObject.GObject.__init__(self) self.extension = extension # XXX self.opener = opener self.uistate = extension.uistate self.preferences = preferences self._close_button = None self.iconview = FileBrowserIconView(opener, self.icon_size) self.add(ScrolledWindow(self.iconview, shadow=Gtk.ShadowType.NONE)) self.on_preferences_changed() self.preferences.connect('changed', self.on_preferences_changed) self.buttonbox = Gtk.VBox() self.pack_end(self.buttonbox, False, True, 0) open_folder_button = IconButton(Gtk.STOCK_OPEN, relief=False) open_folder_button.connect('clicked', self.on_open_folder) self.buttonbox.pack_start(open_folder_button, False, True, 0) refresh_button = IconButton(Gtk.STOCK_REFRESH, relief=False) refresh_button.connect('clicked', lambda o: self.on_refresh_button()) self.buttonbox.pack_start(refresh_button, False, True, 0) zoomin = IconButton(Gtk.STOCK_ZOOM_IN, relief=False) zoomout = IconButton(Gtk.STOCK_ZOOM_OUT, relief=False) zoomin.connect('clicked', lambda o: self.on_zoom_in()) zoomout.connect('clicked', lambda o: self.on_zoom_out()) self.buttonbox.pack_end(zoomout, False, True, 0) self.buttonbox.pack_end(zoomin, False, True, 0) self.zoomin_button = zoomin self.zoomout_button = zoomout self.set_icon_size(self.icon_size) self.iconview.connect('folder-changed', lambda o: self.update_title())
def __init__(self, plugin, window, uistate): GObject.GObject.__init__(self) self.plugin = plugin self.preferences = plugin.preferences self.window = window self.uistate = uistate self._close_button = None self.terminalview = ZimTerminal() self.terminalview.connect("key-press-event", self.on_key_press_event) self.terminalview.spawn_sync( Vte.PtyFlags.DEFAULT, os.environ['HOME'], [self.command_interpreter], [], GLib.SpawnFlags.DO_NOT_REAP_CHILD, None, None, ) self.add(ScrolledWindow(self.terminalview, shadow=Gtk.ShadowType.NONE)) self.on_preferences_changed() self.preferences.connect('changed', self.on_preferences_changed) self.buttonbox = Gtk.VBox() self.pack_end(self.buttonbox, False, True, 0) properties_button = IconButton(Gtk.STOCK_PROPERTIES, relief=False) properties_button.connect('clicked', lambda o: self.on_properties_button()) self.buttonbox.pack_start(properties_button, False, True, 0) change_path_button = IconButton(Gtk.STOCK_REFRESH, relief=False) change_path_button.connect('clicked', lambda o: self.on_change_path_button()) self.buttonbox.pack_start(change_path_button, False, True, 0)
def __init__(self, notebookinfo=None, port=8080, public=True, **opts): '''Constructor @param notebookinfo: the notebook location @param port: the http port to serve on @param public: allow connections to the server from other computers - if C{False} can only connect from localhost @param opts: options for L{WWWInterface.__init__()} ''' gtk.Window.__init__(self) self.set_title('Zim - ' + _('Web Server')) # T: Window title self.set_border_width(10) self.connect('destroy', lambda a: gtk.main_quit()) self.interface_opts = opts self.httpd = None self._source_id = None # Widgets self.status_label = gtk.Label() self.status_label.set_markup('<i>' + _('Server not started') + '</i>') # T: Status in web server gui self.start_button = IconButton('gtk-media-play') self.start_button.connect('clicked', lambda o: self.start()) self.stop_button = IconButton('gtk-media-stop') self.stop_button.connect('clicked', lambda o: self.stop()) self.stop_button.set_sensitive(False) if gtk.gtk_version >= (2, 10): self.link_button = gtk.LinkButton('') self.link_button.set_sensitive(False) gtk.link_button_set_uri_hook(lambda o, url: webbrowser.open(url)) else: self.link_button = None self.notebookcombobox = NotebookComboBox(current=notebookinfo) self.open_button = IconButton('gtk-index') self.open_button.connect('clicked', lambda *a: NotebookDialog(self).run()) self.portentry = gtk.SpinButton() self.portentry.set_numeric(True) self.portentry.set_range(80, 10000) self.portentry.set_increments(1, 80) self.portentry.set_value(port) self.public_checkbox = gtk.CheckButton(label=_('Allow public access')) # T: Checkbox in web server gui self.public_checkbox.set_active(public) # Build the interface vbox = gtk.VBox() self.add(vbox) hbox = gtk.HBox(spacing=12) hbox.pack_start(self.start_button, False) hbox.pack_start(self.stop_button, False) hbox.pack_start(self.status_label, False) vbox.add(hbox) table = input_table_factory(( (_('Notebook'), self.notebookcombobox, self.open_button), # T: Field in web server gui (_('Port'), self.portentry), # T: Field in web server gui for HTTP port (e.g. port 80) self.public_checkbox)) vbox.add(table) if self.link_button: hbox = gtk.HBox() hbox.pack_end(self.link_button, False) vbox.add(hbox)
def __init__(self, extension, opener, preferences): gtk.HBox.__init__(self) self.page = None # XXX self.extension = extension # XXX self.opener = opener self.uistate = extension.uistate self.preferences = preferences self.dir = None self._active = True self.thumbman = ThumbnailManager(preferences) self.thumbman.connect('thumbnail-ready', self.on_thumbnail_ready) self.fileview = gtk.IconView() self.store = gtk.ListStore(str, gtk.gdk.Pixbuf) # BASENAME_COL, PIXBUF_COL self.fileview = gtk.IconView(self.store) self.fileview.set_text_column(BASENAME_COL) self.fileview.set_pixbuf_column(PIXBUF_COL) self.fileview.enable_model_drag_source( gtk.gdk.BUTTON1_MASK, URI_TARGETS, gtk.gdk.ACTION_LINK | gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE) self.fileview.enable_model_drag_dest( URI_TARGETS, gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE) self.fileview.connect('drag-data-get', self.on_drag_data_get) self.fileview.connect('drag-data-received', self.on_drag_data_received) self.add(ScrolledWindow(self.fileview)) self.buttonbox = gtk.VBox() self.pack_end(self.buttonbox, False) open_folder_button = IconButton(gtk.STOCK_OPEN, relief=False) open_folder_button.connect('clicked', self.on_open_folder) self.buttonbox.pack_start(open_folder_button, False) refresh_button = IconButton(gtk.STOCK_REFRESH, relief=False) refresh_button.connect('clicked', lambda o: self.on_refresh_button()) self.buttonbox.pack_start(refresh_button, False) zoomin = IconButton(gtk.STOCK_ZOOM_IN, relief=False) zoomout = IconButton(gtk.STOCK_ZOOM_OUT, relief=False) zoomin.connect('clicked', lambda o: self.zoom_in()) zoomout.connect('clicked', lambda o: self.zoom_out()) self.buttonbox.pack_end(zoomout, False) self.buttonbox.pack_end(zoomin, False) self.fileview.connect('button-press-event', self.on_button_press_event) self.fileview.connect('item-activated', self.on_item_activated) self.zoomin_button = zoomin self.zoomout_button = zoomout if gtk.gtk_version >= (2, 12) \ and gtk.pygtk_version >= (2, 12): # custom tooltip self.fileview.props.has_tooltip = True self.fileview.connect("query-tooltip", self.query_tooltip_icon_view_cb) # Store colors self._senstive_color = None self._insenstive_color = None def _init_base_color(*a): # This is handled on expose event, because style does not # yet reflect theming on construction if self._senstive_color is None: self._senstive_color = self.fileview.style.base[ gtk.STATE_NORMAL] self._insenstive_color = self.fileview.style.base[ gtk.STATE_INSENSITIVE] self._update_state() self.connect('expose-event', _init_base_color)
def __init__(self, notebookinfo=None, port=8080, public=True, **opts): '''Constructor @param notebookinfo: the notebook location @param port: the http port to serve on @param public: allow connections to the server from other computers - if C{False} can only connect from localhost @param opts: options for L{WWWInterface.__init__()} ''' GObject.GObject.__init__(self) self.set_title('Zim - ' + _('Web Server')) # T: Window title self.set_border_width(10) self.interface_opts = opts self.httpd = None self._source_id = None # Widgets self.status_label = Gtk.Label() self.status_label.set_markup('<i>' + _('Server not started') + '</i>') # T: Status in web server gui self.start_button = IconButton('gtk-media-play') self.start_button.connect('clicked', lambda o: self.start()) self.stop_button = IconButton('gtk-media-stop') self.stop_button.connect('clicked', lambda o: self.stop()) self.stop_button.set_sensitive(False) self.link_button = Gtk.LinkButton('') self.link_button.set_sensitive(False) self.notebookcombobox = NotebookComboBox(current=notebookinfo) self.open_button = IconButton('gtk-index') self.open_button.connect('clicked', lambda *a: NotebookDialog(self).run()) self.portentry = Gtk.SpinButton() self.portentry.set_numeric(True) self.portentry.set_range(80, 10000) self.portentry.set_increments(1, 80) self.portentry.set_value(port) self.public_checkbox = Gtk.CheckButton.new_with_mnemonic( _('Allow public access')) # T: Checkbox in web server gui self.public_checkbox.set_active(public) self.templatecombobox = Gtk.ComboBoxText.new() template_names = [name for name, _ in list_templates('html')] for name in template_names: self.templatecombobox.append_text(name) self.templatecombobox.set_active(template_names.index('Default')) self.auth_checkbox = Gtk.CheckButton.new_with_mnemonic( _('Require authentication')) # T: checkbox in dialog for starting webserver self.username_input = InputEntry() self.password_input = InputEntry() self.password_input.set_visibility(False) # Build the interface vbox = Gtk.VBox() self.add(vbox) hbox = Gtk.HBox(spacing=12) hbox.pack_start(self.start_button, False, True, 0) hbox.pack_start(self.stop_button, False, True, 0) hbox.pack_start(self.status_label, False, True, 0) vbox.pack_start(hbox, False, False, 0) table = input_table_factory(( (_('Notebook'), self.notebookcombobox, self.open_button), # T: Field in web server gui (_('Port'), self.portentry), # T: Field in web server gui for HTTP port (e.g. port 80) (_('Template'), self.templatecombobox), # T: Field in web server gui for webpage template self.public_checkbox, self.auth_checkbox, (_('Username'), self.username_input), # T: Field in web server gui (_('Password'), self.password_input) # T: Field in web server gui )) vbox.pack_start(table, False, False, 0) if self.link_button: hbox = Gtk.HBox() hbox.pack_end(self.link_button, False, True, 0) vbox.pack_start(hbox, False, False, 0)