def createWidgets(self): self.transactionWidgets = {} self.pipes = {} self.scroll = ScrollContainer() self.scroll.hAdjust[0].set_property("step-increment", 20) self.cursor = Types.Observable(-1) # The ruler at the top is in charge of our time scale self.ruler = Ruler() TimeCursor(self.ruler, self.ruler, self.cursor) self.ruler.canvas.set_hadjustment(self.scroll.hAdjust[0]) # The top heading holds the ruler, and a spacer aligned with the left heading leftHeadingWidth = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) spacer = gtk.Label() leftHeadingWidth.add_widget(spacer) topHeading = gtk.HBox(False) topHeading.pack_start(spacer, False, padding=self.labelPadding) topHeading.pack_start(gtk.VSeparator(), False) topHeading.pack_start(self.ruler.canvas, True) # Everything except the top heading scrolls vertically using a viewport viewport = gtk.Viewport(None, self.scroll.vAdjust[0]) viewport.set_shadow_type(gtk.SHADOW_NONE) viewport.set_size_request(1, 1) viewportBox = gtk.VBox(False) viewportBox.pack_start(topHeading, False) viewportBox.pack_start(gtk.HSeparator(), False) viewportBox.pack_start(viewport, True) self.scroll.add(viewportBox) # Gnome Canvas has really silly event grabbing semantics. To work around # all this, we'll just grab all events before gnome-canvas sees them. for widget in (viewport, self.ruler.canvas): widget.add_events(gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.BUTTON_PRESS_MASK) for event in ('motion-notify-event', 'button-press-event', 'scroll-event'): widget.connect_after(event, self.mouseEvent) self.scroll.attachEvent(widget, horizontal=True) # The left heading holds labels for each canvas in the stack self.leftHeading = gtk.VBox(False) leftHeadingWidth.add_widget(self.leftHeading) # The viewport holds the left heading, then the main canvas stack scrolledBox = gtk.HBox(False) self.canvasList = [] self.canvasStack = gtk.VBox(False) scrolledBox.pack_start(self.leftHeading, False, padding=self.labelPadding) scrolledBox.pack_start(gtk.VSeparator(), False) scrolledBox.pack_start(self.canvasStack, True) viewport.add(scrolledBox) return self.scroll
def createWidgets(self): self.view = gtk.TreeView() self.view.set_rules_hint(True) self.view.connect("cursor-changed", self.onCursorChanged) self.selectionInfo = Types.Observable() self.onSelectionChanged(self.view.get_selection()) # Allow multiple select, and hook up a context menu self.view.get_selection().set_mode(gtk.SELECTION_MULTIPLE) self.view.get_selection().connect("changed", self.onSelectionChanged) self.view.connect("button-press-event", self.onButtonPressed) self.createModel() self.createColumns() self.eventToIter = {} self.pipes = {} return self.view
def __init__(self): self.hilight = Types.Observable() self.children = []