[IronLute-CVS] ironlute/gtk IronLuteGtk.py,1.1,1.2 gtkmenubar.py,1.1,1.2 handletag.py,1.1,1.2 outlin
Status: Pre-Alpha
Brought to you by:
thejerf
From: Jeremy B. <th...@us...> - 2005-05-04 20:32:13
|
Update of /cvsroot/ironlute/ironlute/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10018 Modified Files: IronLuteGtk.py gtkmenubar.py handletag.py outlinewidget.py Log Message: Menus displaying. Index: gtkmenubar.py =================================================================== RCS file: /cvsroot/ironlute/ironlute/gtk/gtkmenubar.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gtkmenubar.py 27 Apr 2005 05:05:23 -0000 1.1 --- gtkmenubar.py 4 May 2005 20:32:03 -0000 1.2 *************** *** 10,22 **** guiSupport.IronLuteMenu.__init__(self, dispatcher) self.outlineWidget = outlineWidget def createMenus(self): for menu in self.menus: - print menu.name m = CommandMenu(menu, self.outlineWidget, menu.name) self.append(m) m.show() - class CommandMenu(gtk.MenuItem): """This implements a MenuItem that, when activated, rebuilds the --- 10,39 ---- guiSupport.IronLuteMenu.__init__(self, dispatcher) self.outlineWidget = outlineWidget + self.nodeMenu = None + self.documentMenu = None + + def checkActive(self): + """Updates the active status for the Node and Document + menus.""" + if self.nodeMenu is not None: + self.nodeMenu.cmds.checkActive(self.nodeMenu) + if self.documentMenu is not None: + self.documentMenu.cmds.checkActive(self.documentMenu) def createMenus(self): + """Creates the menus in the menubar. + + This is separated from initialization because the menu bar + needs to be created before the outline widget, + """ for menu in self.menus: m = CommandMenu(menu, self.outlineWidget, menu.name) + if menu.name == "Node": + self.nodeMenu = m + if menu.name == "Document": + self.documentMenu = m self.append(m) m.show() class CommandMenu(gtk.MenuItem): """This implements a MenuItem that, when activated, rebuilds the *************** *** 52,53 **** --- 69,97 ---- self.cmds.generateMenu(self, self.outlineWidget, context) + def ilDisable(self): + """Iron Lute telling this menu to disable itself.""" + self.set_sensitive(False) + + def ilEnable(self): + """Iron Lute telling this menu to enable itself.""" + self.set_sensitive(True) + + def ilAddSeparator(self): + """Add a separator to the menu.""" + item = gtk.SeparatorMenuItem() + item.show() + self.menu.append(item) + + def ilAddCommand(self, command, accelerator = None, accelString = + None, state = True): + """See command.py/CommandMenu.""" + + item = gtk.MenuItem(command.name) + # FIXME: Add a right-aligned label for the accelstring + item.set_sensitive(state) + item.show() + + def doCommand(): + self.outlineWidget.doCommand(command, self) + item.connect("activate", doCommand) + self.menu.append(item) Index: IronLuteGtk.py =================================================================== RCS file: /cvsroot/ironlute/ironlute/gtk/IronLuteGtk.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** IronLuteGtk.py 27 Apr 2005 05:05:23 -0000 1.1 --- IronLuteGtk.py 4 May 2005 20:32:03 -0000 1.2 *************** *** 51,63 **** self.vbox.show() - # Set up the menubar - # ---- - # Create the menubar - self.menubar = MenuBar(self, None) - self.menubar.createMenus() - self.menubar.show() - - self.vbox.add(self.menubar) - # Set up the outline widget self.sw = gtk.ScrolledWindow() --- 51,54 ---- *************** *** 69,72 **** --- 60,72 ---- self.outlineWidget.show() self.sw.show() + + # Create the menubar + self.menubar = MenuBar(self.outlineWidget, None) + self.outlineWidget.menubar = self.menubar + self.menubar.createMenus() + self.menubar.show() + self.outlineWidget.menubar.checkActive() + + self.vbox.add(self.menubar) self.vbox.add(self.sw) Index: outlinewidget.py =================================================================== RCS file: /cvsroot/ironlute/ironlute/gtk/outlinewidget.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** outlinewidget.py 27 Apr 2005 05:05:23 -0000 1.1 --- outlinewidget.py 4 May 2005 20:32:03 -0000 1.2 *************** *** 12,18 **** del d import guiSupport from handletag import HandleTag ! import constants # Note that TextViews, in order to scroll, must be placed in a --- 12,20 ---- del d + import outline import guiSupport from handletag import HandleTag ! import constants ! import ilerrors # Note that TextViews, in order to scroll, must be placed in a *************** *** 27,30 **** --- 29,33 ---- self.handleToTag = {} + self.gtkTagToHandleTag = {} self.nameToTag = {} self.rootHandle = rootHandle *************** *** 34,37 **** --- 37,42 ---- self.connect("move-cursor", self.cursorMove) + buffer = property(gtk.TextView.get_buffer) + def keypress(self, source, event): print event.keyval *************** *** 41,44 **** --- 46,51 ---- print "count", count print "sel", extendSelection + # We have to check the dynamic menus here + self.menubar.checkActive() def bindRootHandle(self): *************** *** 123,126 **** self.handleStates[handleToChange] = state ! buffer = property(gtk.TextView.get_buffer) --- 130,181 ---- self.handleStates[handleToChange] = state + def getInsert(self): + """Returns a GtkTextIter representing the cursor location.""" + cursorMark = self.buffer.get_insert() + return self.buffer.get_iter_at_mark(cursorMark) ! insert = property(getInsert) ! ! def getSelectionBound(self): ! """Returns a GtkTextIter representing the selection bound. ! ! The selection bound is the other end of the selection from the ! insert point; if they are equal, there is no selection.""" ! selMark = self.buffer.get_selection_bound() ! return self.buffer.get_iter_at_mark(selMark) ! ! selection_bound = property(getSelectionBound) ! ! def getCurrentHandleTag(self): ! """Returns the currently-focused HandleTag.""" ! cursor = self.insert ! tags = cursor.get_tags() ! ! # Scan the returned tags for something in ! # gtkTagToHandleTag ! for tag in tags: ! if tag in self.gtkTagToHandleTag: ! return self.gtkTagToHandleTag[tag] ! ! raise ilerrors.CantFindFocus("Tried to find the current " ! "focus, but failed.") ! ! currentHandleTag = property(getCurrentHandleTag) ! ! def getCurrentFocus(self): ! """Returns the currently-focused outline handle.""" ! return self.currentHandleTag.handle ! ! currentFocus = property(getCurrentFocus) ! ! def getSelection(self, sourceHandleTag = None): ! """Returns the current selection as an outline.Cursor.""" ! if sourceHandleTag is None: ! sourceHandleTag = self.currentHandleTag ! ! return outline.Cursor(sourceHandleTag.handle, ! self.insert.get_line_offset() - 1, ! self.selection_bound.get_line_offset() - 1) ! ! selection = property(getSelection) ! Index: handletag.py =================================================================== RCS file: /cvsroot/ironlute/ironlute/gtk/handletag.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** handletag.py 27 Apr 2005 05:05:23 -0000 1.1 --- handletag.py 4 May 2005 20:32:03 -0000 1.2 *************** *** 38,41 **** --- 38,42 ---- # set margin self.tag = self.buffer.create_tag(str(self)) + self.outlineWidget.gtkTagToHandleTag[self.tag] = self textToInsert = handle.getNode().getData() *************** *** 108,111 **** --- 109,113 ---- Note using this invalidates GtkTextIters.""" + del self.outlineWidget.gtkTagToHandleTag[self.tag] begin = self.getMarkIter() # just after the indicator #begin.backward_char() # back up to get the indicator |