class AutoCompletionTreeView(object): def __init__(self, model, text_view): self.model = model self.completion_tree_view = BrowserTreeView(self.model) self.completion_tree_view.set_enable_search(False) # hide column self.completion_tree_view.set_headers_visible(False) box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) self.completion_scrolled_win = ScrolledWindow( self.completion_tree_view) self.label = Gtk.Label('Tags') box.add(self.label) box.add(self.completion_scrolled_win) box.show_all() self.column = Gtk.TreeViewColumn() self.completion_tree_view.append_column(self.column) self.renderer_text = Gtk.CellRendererText() self.column.pack_start(self.renderer_text, False) self.column.set_attributes(self.renderer_text, text=DATA_COL) self.completion_scrolled_win.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.completion_scrolled_win.set_propagate_natural_height(True) self.completion_scrolled_win.set_max_content_height(WIN_HEIGHT) self.completion_scrolled_win.set_size_request(WIN_WIDTH, -1) self.column.set_min_width(50) # window to display results self.popover = Gtk.Popover() self.popover.set_relative_to(text_view) self.popover.add(box)
def __init__(self, parent, definition=None): ''' Constructor, which intializes the dialog window :param parent: :param definition: tuple of C{(ids, headers, wraps, aligns)} :return: ''' title = _('Insert Table') if definition is None else _('Edit Table') # T: Dialog title Dialog.__init__(self, parent, title) # Prepare treeview in which all columns of the table are listed self.default_column_item = [-1, "", 0, "left", Gtk.STOCK_JUSTIFY_LEFT, _("Left")] # currently edited cell - tuple (editable, path, colid) save it on exit self.currently_edited = None # Set layout of Window self.add_help_text(_('Managing table columns')) # T: Description of "Table-Insert" Dialog self.set_default_size(380, 400) liststore = self._prepare_liststore(definition) self.treeview = self._prepare_treeview_with_headcolumn_list(liststore) hbox = Gtk.HBox(spacing=5) hbox.set_size_request(300, 300) self.vbox.pack_start(hbox, False, True, 0) header_scrolled_area = ScrolledWindow(self.treeview) header_scrolled_area.set_size_request(200, -1) hbox.pack_start(header_scrolled_area, True, True, 0) hbox.pack_start(self._button_box(), False, False, 0) self.show_all() if definition is None: # preselect first entry path = self.treeview.get_model().get_path(self.treeview.get_model().get_iter_first()) self.treeview.set_cursor_on_cell(path, self.treeview.get_column(0), None, True)
class AutoCompletionTreeView(object): def __init__(self, model): self.model = model self.completion_win = Window() self.completion_win.set_modal(True) self.completion_win.set_keep_above(True) self.completion_tree_view = BrowserTreeView(self.model) self.completion_tree_view.set_enable_search(False) self.completion_scrolled_win = ScrolledWindow( self.completion_tree_view) self.completion_win.add(self.completion_scrolled_win) self.column = Gtk.TreeViewColumn() self.completion_tree_view.append_column(self.column) self.renderer_text = Gtk.CellRendererText() self.column.pack_start(self.renderer_text, False) self.column.set_attributes(self.renderer_text, text=DATA_COL) # display an undecorated window with a grey border self.completion_scrolled_win.set_size_request(WIN_WIDTH, WIN_HEIGHT) self.completion_scrolled_win.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.completion_win.set_decorated(False) self.completion_scrolled_win.set_border_width(2) # self.completion_scrolled_win.modify_bg(Gtk.StateType.NORMAL, Gdk.Color(GREY)) self.column.set_min_width(50) # hide column self.completion_tree_view.set_headers_visible(False)
def __init__(self, widget, label, generator, image_file=None, text='', syntax=None): title = _( 'Edit %s' ) % label # T: dialog title, %s is the object name like "Equation" Dialog.__init__(self, widget, title, defaultwindowsize=(450, 300)) self.generator = generator self.log_file = None self.image_file = image_file self.result = None, None self.vpane = VPaned() self.vpane.set_position(150) self.vbox.pack_start(self.vpane, True, True, 0) self.imageview = ImageView(bgcolor='#FFF') swin = ScrolledWindow(self.imageview) swin.set_size_request(200, 50) self.vpane.pack1(swin, resize=True) # TODO scrolled window and option to zoom in / real size window, textview = ScrolledSourceView(syntax=syntax) self.textview = textview self.textview.set_editable(True) self.vpane.pack2(window, resize=False) hbox = Gtk.HBox(spacing=5) self.vbox.pack_start(hbox, False, True, 0) self.previewbutton = Gtk.Button.new_with_mnemonic(_('_Preview')) # T: button in e.g. equation editor dialog self.previewbutton.set_sensitive(False) self.previewbutton.connect('clicked', lambda o: self.update_image()) hbox.pack_start(self.previewbutton, False, True, 0) self.textview.get_buffer().connect( 'modified-changed', lambda b: self.previewbutton.set_sensitive(b.get_modified())) self.logbutton = Gtk.Button.new_with_mnemonic(_('View _Log')) # T: button in e.g. equation editor dialog self.logbutton.set_sensitive(False) self.logbutton.connect('clicked', lambda o: self.show_log()) hbox.pack_start(self.logbutton, False, True, 0) self.set_text(text) self.imageview.set_file(self.image_file) # if None sets broken image self.textview.grab_focus()
def __init__(self, pageview, title, generator, image=None, syntax=None, **opt): '''Constructor @param window: the L{MainWindow} @param title: the dialog title @param generator: an L{ImageGeneratorClass} object @param image: image data for an image in the L{TextBuffer<zim.gui.pageview.TextBuffer>} @param syntax: optional syntax name (as understood by gtksourceview) @param opt: any other arguments to pass to the L{Dialog} constructor ''' Dialog.__init__(self, pageview, title, defaultwindowsize=(450, 300), **opt) self.pageview = pageview self.generator = generator self.imagefile = None self.logfile = None self.vpane = VPaned() self.vpane.set_position(150) self.vbox.pack_start(self.vpane, True, True, 0) self.imageview = ImageView(bgcolor='#FFF') swin = ScrolledWindow(self.imageview) swin.set_size_request(200, 50) self.vpane.pack1(swin, resize=True) # TODO scrolled window and option to zoom in / real size window, textview = ScrolledSourceView(syntax=syntax) self.textview = textview self.textview.set_editable(True) self.vpane.pack2(window, resize=False) hbox = Gtk.HBox(spacing=5) self.vbox.pack_start(hbox, False, True, 0) self.previewbutton = Gtk.Button.new_with_mnemonic(_('_Preview')) # T: button in e.g. equation editor dialog self.previewbutton.set_sensitive(False) self.previewbutton.connect_object( 'clicked', self.__class__.preview, self) hbox.pack_start(self.previewbutton, False, True, 0) self.textview.get_buffer().connect('modified-changed', lambda b: self.previewbutton.set_sensitive(b.get_modified())) self.logbutton = Gtk.Button.new_with_mnemonic(_('View _Log')) # T: button in e.g. equation editor dialog self.logbutton.set_sensitive(False) self.logbutton.connect_object( 'clicked', self.__class__.show_log, self) if generator.uses_log_file: hbox.pack_start(self.logbutton, False, True, 0) # else keep hidden if image: file = image['_src_file'] # FIXME ? textfile = self._stitch_fileextension(file, self.generator.scriptname) self._existing_file = textfile self.imageview.set_file(file) self.set_text(self.generator.filter_input(textfile.read())) else: self._existing_file = None self.set_text(self.generator.filter_input(self.generator.get_default_text())) self.textview.grab_focus()