Exemple #1
0
    def __init__(self, parent, ID, mainControl):
        wx.Notebook.__init__(self, parent, ID)

        self.mainControl = mainControl

        wikiWordFilter = DatedWikiWordFilters.DatedWikiWordFilterModified()

        self.modifiedPanel = LayeredControlPanel(self, -1)
        self.versionPanel = LayeredControlPanel(self, -1)
        self.wwHistoryPanel = LayeredControlPanel(self, -1)

        tlp = TimelinePanel(self.modifiedPanel, -1, self.mainControl,
                            wikiWordFilter)
        #         tlp = CalendarPanel(self.modifiedPanel, -1, self.mainControl,
        #                 wikiWordFilter)
        self.modifiedPanel.setSubControl("timeline", tlp)
        self.modifiedPanel.switchSubControl("timeline")

        #         self.modifiedPanel = TimelinePanel(self, -1, self.mainControl, wikiWordFilter)
        #         self.modifiedPanel = CalendarPanel(self, -1, self.mainControl, wikiWordFilter)
        self.AddPage(self.modifiedPanel, wikiWordFilter.getDisplayName())

        vep = VersionExplorerPanel(self.versionPanel, -1, self.mainControl)
        self.versionPanel.setSubControl("version explorer", vep)
        self.versionPanel.switchSubControl("version explorer")

        self.AddPage(self.versionPanel, _(u"Versions"))

        wwh = WikiWideHistoryPanel(self.wwHistoryPanel, -1, self.mainControl)

        self.wwHistoryPanel.setSubControl("wiki wide history", wwh)
        self.wwHistoryPanel.switchSubControl("wiki wide history")

        self.AddPage(self.wwHistoryPanel, _(u"Wiki-wide history"))

        self.notebookPages = [
            self.modifiedPanel, self.versionPanel, self.wwHistoryPanel
        ]
        self.runningPageChangedEvent = False

        #         for i, w in enumerate(self.notebookPages):
        #             w.setLayerVisible(0 == i)

        lastTab = self.mainControl.getConfig().get("main",
                                                   "timeView_lastSelectedTab")

        if lastTab == u"version":
            tabIdx = 1
        elif lastTab == u"wiki wide history":
            tabIdx = 2
        else:
            tabIdx = 0

        self.ChangeSelection(tabIdx)
        self._adjustVisibilitySubControls(tabIdx)

        wx.EVT_CONTEXT_MENU(self, self.OnContextMenu)
        self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
                  self.OnNotebookPageChanged,
                  id=self.GetId())
Exemple #2
0
    def __init__(self, presenter, mainControl, parent, ID):
        SearchableScintillaControl.__init__(self, presenter, mainControl,
                                            parent, ID)

        self.fromText = None
        self.toText = None
        self.fromVerNo = None
        self.toVerNo = None

        #         self.presenter = presenter
        #         self.mainControl = mainControl
        self.procTokens = None  # NonTerminalNode with TerminalNode s
        self.stylebytes = None
        self.baseDocPage = None

        res = wx.xrc.XmlResource.Get()
        self.tabContextMenu = res.LoadMenu("MenuDiffTabPopup")

        # Self-modify to ansi/unicode version
        if isUnicode():
            self.bytelenSct = bytelenSct_utf8
        else:
            self.bytelenSct = bytelenSct_mbcs

        config = self.mainControl.getConfig()
        self.defaultFont = config.get(
            "main", "font", self.mainControl.presentationExt.faces["mono"])
        self.setWrapMode(config.getboolean("main", "wrap_mode"))

        wx.stc.EVT_STC_STYLENEEDED(self, ID, self.OnStyleNeeded)

        wx.EVT_KEY_DOWN(self, self.OnKeyDown)

        wx.EVT_CONTEXT_MENU(self, self.OnContextMenu)

        wx.EVT_MENU(self, GUI_ID.CMD_CLIPBOARD_COPY, lambda evt: self.Copy())
        wx.EVT_MENU(self, GUI_ID.CMD_SELECT_ALL, lambda evt: self.SelectAll())

        wx.EVT_MENU(self.tabContextMenu, GUI_ID.CMD_DIFF_SWAP_FROM_TO,
                    self.OnCmdSwapFromTo)

        wx.EVT_MENU(self, GUI_ID.CMD_ZOOM_IN,
                    lambda evt: self.CmdKeyExecute(wx.stc.STC_CMD_ZOOMIN))
        wx.EVT_MENU(self, GUI_ID.CMD_ZOOM_OUT,
                    lambda evt: self.CmdKeyExecute(wx.stc.STC_CMD_ZOOMOUT))

        # TODO: Make work
        #         self.StyleSetSpec(wx.stc.STC_STYLE_DEFAULT, "face:%(mono)s,size:%(size)d" %
        #                 self.presenter.getDefaultFontFaces())

        self.StyleSetSpec(
            wx.stc.STC_STYLE_DEFAULT, "face:%(mono)s,size:%(size)d" %
            self.mainControl.presentationExt.faces)

        self.StyleSetSpec(
            2, "face:%(mono)s,size:%(size)d" %
            self.mainControl.presentationExt.faces)

        self.setStyles()
    def __init__(self, parent, ID, mainControl):
        EnhancedListControl.__init__(self,
                                     parent,
                                     ID,
                                     style=wx.LC_REPORT | wx.LC_SINGLE_SEL)

        self.mainControl = mainControl

        self.InsertColumn(0, _(u"Page Name"), width=100)
        self.InsertColumn(1, _(u"Visited"), width=100)

        colConfig = self.mainControl.getConfig().get(
            "main", "wikiWideHistory_columnWidths", u"100,100")

        self.setColWidthsByConfigString(colConfig)

        #         self.updatingThreadHolder = Utilities.ThreadHolder()

        self.mainControl.getMiscEvent().addListener(self)

        self.layerVisible = True
        self.sizeVisible = True  # False if this window has a size
        # that it can't be read (one dim. less than 5 pixels)
        self.ignoreOnChange = False

        self.historyOverviewSink = wxKeyFunctionSink(
            (("changed wiki wide history", self.onUpdateNeeded), ))

        self.__sinkApp = wxKeyFunctionSink(
            (("options changed", self.onUpdateNeeded), ),
            wx.GetApp().getMiscEvent(), self)

        if not self.mainControl.isMainWindowConstructed():
            # Install event handler to wait for construction
            self.__sinkMainFrame = wxKeyFunctionSink(
                (("constructed main window", self.onConstructedMainWindow), ),
                self.mainControl.getMiscEvent(), self)
        else:
            self.onConstructedMainWindow(None)

        wx.EVT_CONTEXT_MENU(self, self.OnContextMenu)

        wx.EVT_WINDOW_DESTROY(self, self.OnDestroy)
        #         wx.EVT_LIST_ITEM_SELECTED(self, self.GetId(), self.OnItemSelected)
        wx.EVT_LIST_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
        wx.EVT_SIZE(self, self.OnSize)
        #         wx.EVT_KEY_DOWN(self, self.OnKeyDown)
        wx.EVT_MIDDLE_DOWN(self, self.OnMiddleButtonDown)

        wx.EVT_MENU(self, GUI_ID.CMD_WIKI_WIDE_HISTORY_DELETE_ALL,
                    self.OnCmdDeleteAll)

        self.onWikiStateChanged(None)
Exemple #4
0
    def __init__(self, mainControl, parent, id):
        wx.Notebook.__init__(self, parent, id)

        #         nb = wx.PreNotebook()
        #         self.PostCreate(nb)
        MiscEventSourceMixin.__init__(self)

        self.mainControl = mainControl
        self.mainControl.getMiscEvent().addListener(self)

        self.currentPresenter = None
        self.presenters = []
        self.mruTabIndex = []
        self.tabSwitchByKey = 0  # 2: Key hit, notebook change not processed;
        # 1: Key hit, nb. change processed
        # 0: Processing done
        self.currentPresenterProxyEvent = ProxyMiscEvent(self)

        # Last presenter for which a context menu was shown
        self.lastContextMenuPresenter = None

        self.runningPageChangedEvent = False

        #         res = xrc.XmlResource.Get()
        #         self.docPagePresContextMenu = res.LoadMenu("MenuDocPagePresenterTabPopup")

        self.tabDragCursor = wx.StockCursor(wx.CURSOR_HAND)
        self.tabDragging = wx.NOT_FOUND

        #         wx.EVT_NOTEBOOK_PAGE_CHANGED(self, self.GetId(),
        #                 self.OnNotebookPageChanged)
        self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnNotebookPageChanged)
        wx.EVT_KEY_UP(self, self.OnKeyUp)

        wx.EVT_LEFT_DOWN(self, self.OnLeftDown)
        wx.EVT_LEFT_UP(self, self.OnLeftUp)
        wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown)

        wx.EVT_MOTION(self, self.OnMotion)

        wx.EVT_CONTEXT_MENU(self, self.OnContextMenu)
        wx.EVT_SET_FOCUS(self, self.OnFocused)
        wx.EVT_KILL_FOCUS(self, self.OnKillFocus)
        #         EVT_AFTER_FOCUS(self, self.OnAfterFocus)

        wx.EVT_MENU(self, GUI_ID.CMD_CLOSE_THIS_TAB, self.OnCloseThisTab)
        wx.EVT_MENU(self, GUI_ID.CMD_CLOSE_CURRENT_TAB, self.OnCloseCurrentTab)
        wx.EVT_MENU(self, GUI_ID.CMD_THIS_TAB_SHOW_SWITCH_EDITOR_PREVIEW,
                    self.OnCmdSwitchThisEditorPreview)
        wx.EVT_MENU(self, GUI_ID.CMD_GO_NEXT_TAB, self.OnGoTab)
        wx.EVT_MENU(self, GUI_ID.CMD_GO_PREVIOUS_TAB, self.OnGoTab)
        wx.EVT_MENU(self, GUI_ID.CMD_CLIPBOARD_COPY_URL_TO_THIS_WIKIWORD,
                    self.OnCmdClipboardCopyUrlToThisWikiWord)
Exemple #5
0
    def __init__(self, parent, focus):
        self.failed = False
        wx.Window.__init__(self, parent)
        if mymcsup == None:
            self.failed = True
            return
        r = mymcsup.init_icon_renderer(focus.GetHandle(), self.GetHandle())
        if r == -1:
            print "init_icon_renderer failed"
            self.failed = True
            return

        self.config = config = mymcsup.icon_config()
        config.animate = True

        self.menu = wx.Menu()
        self.append_menu_options(self, self.menu)
        self.set_lighting(self.ID_CMD_LIGHT_ALT2)
        self.set_camera(self.ID_CMD_CAMERA_DEFAULT)

        wx.EVT_CONTEXT_MENU(self, self.evt_context_menu)
Exemple #6
0
    def __init__(self, parent, ID, mainControl):
        EnhancedListControl.__init__(self, parent, ID,
                style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_NO_HEADER)

        self.mainControl = mainControl

        self.InsertColumn(0, u"", width=3000)

        self.updatingThreadHolder = Utilities.ThreadHolder()
        
        self.versionEntries = []
        self.versionOverview = None
        self.activationMode = self._ACTIVATION_MODE_NORMAL
        
        self.mainControl.getMiscEvent().addListener(self)

        self.layerVisible = True
        self.sizeVisible = True   # False if this window has a size
                # that it can't be read (one dim. less than 5 pixels)
        self.ignoreOnChange = False

        self.docPagePresenterSink = wxKeyFunctionSink((
                ("loaded current doc page", self.onUpdateNeeded),
        ))

        self.versionOverviewSink = wxKeyFunctionSink((
                ("changed version overview", self.onUpdateNeeded),
                ("invalidated version overview", self.onUpdateNeeded)
        ))

        self.__sinkApp = wxKeyFunctionSink((
                ("options changed", self.onUpdateNeeded),
        ), wx.GetApp().getMiscEvent(), self)

        if not self.mainControl.isMainWindowConstructed():
            # Install event handler to wait for construction
            self.__sinkMainFrame = wxKeyFunctionSink((
                    ("constructed main window", self.onConstructedMainWindow),
            ), self.mainControl.getMiscEvent(), self)
        else:
            self.onConstructedMainWindow(None)

#         currPres = self.mainControl.getCurrentDocPagePresenter()
#         if currPres is not None:
#             self.docPagePresenterSink.setEventSource(currPres.getMiscEvent())

        self.docPagePresenterSink.setEventSource(
                self.mainControl.getCurrentPresenterProxyEvent())

        self.lastSelection = (-1, -1)

        self.updateList()

        wx.EVT_CONTEXT_MENU(self, self.OnContextMenu)

        wx.EVT_WINDOW_DESTROY(self, self.OnDestroy)
        wx.EVT_LIST_ITEM_SELECTED(self, self.GetId(), self.OnItemSelected)
        wx.EVT_LIST_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_KEY_DOWN(self, self.OnKeyDown)

        wx.EVT_MENU(self, GUI_ID.CMD_VERSIONING_DIFF_INLINE,
                self.OnCmdDiffInline)

        wx.EVT_MENU(self, GUI_ID.CMD_VERSIONING_DIFF_SET_FROM,
                self.OnCmdDiffSetFrom)
        wx.EVT_MENU(self, GUI_ID.CMD_VERSIONING_DIFF_SET_TO,
                self.OnCmdDiffSetTo)

        wx.EVT_MENU(self, GUI_ID.CMD_VERSIONING_DELETE_VERSION,
                self.OnCmdDeleteVersion)
        wx.EVT_MENU(self, GUI_ID.CMD_VERSIONING_DELETE_ALL_VERSION_DATA,
                self.OnCmdDeleteAllVersionData)
Exemple #7
0
    def __init__(self, parent, ID, mainControl, wikiWordFilter):
        EnhancedListControl.__init__(self, parent, ID,
                style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.LC_NO_HEADER |
                wx.LC_EDIT_LABELS)

        TimePresentationBase.__init__(self, mainControl, wikiWordFilter)

        self.InsertColumn(0, u"", width=1)  # date
        self.InsertColumn(1, u"", width=1)  # number of wiki words

        # Now gather some information
        self.InsertStringItem(0, u"1")
        self.itemHeight = self.GetItemRect(0).GetHeight()
        
        self.popupShiftX = 20
        self.popupShiftY = self.itemHeight - 2

        self.stdFont = self.GetFont()

        self.boldFont = cloneFont(self.stdFont)
        
#         # Clone font
#         self.boldFont = wx.Font(self.stdFont.GetPointSize(),
#                 self.stdFont.GetFamily(), self.stdFont.GetStyle(),
#                 self.stdFont.GetWeight(), self.stdFont.GetUnderlined(), 
#                 self.stdFont.GetFaceName(), self.stdFont.GetDefaultEncoding())

        self.boldFont.SetWeight(wx.FONTWEIGHT_BOLD)

        self.stepDays = 1
        
        self.DeleteAllItems()
        self.clientHeight = self.GetClientSizeTuple()[1]
        
        self.visibleItemCount = (self.clientHeight - 6) // self.itemHeight
        
        self.contextMenuWikiWords = IdRecycler()  # {menuid: wiki word to go to}
        self.listContent = [] # Tuples (wx.DateTime day, <number of wikiwords for day>)
        self.listMaxWordCount = 0  # max number of wikiwords over entries in listContent
        self.wikiWordListPopup = None

        self.firstResize = True  # Hack

#         self.topDay = None  # currTime - wx.TimeSpan_Days(self.visibleItemCount - 1)

        # Sets which day should be shown at which index
        self.fixedItemDay = None
        self.fixedItemIndex = 0

        self.minMaxDayCache = None

        wx.EVT_KEY_DOWN(self, self.OnKeyDown)

#         wx.EVT_SIZE(self, self.OnSize)
#         wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBg)
        wx.EVT_CONTEXT_MENU(self, self.OnContextMenu)
#         wx.EVT_MOTION(self, self.OnMouseMotion)
        wx.EVT_LIST_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
        wx.EVT_LIST_ITEM_SELECTED(self, self.GetId(), self.OnItemSelected)

        wx.EVT_LIST_BEGIN_LABEL_EDIT(self, self.GetId(), self.OnBeginLabelEdit)
        wx.EVT_LIST_END_LABEL_EDIT(self, self.GetId(), self.OnEndLabelEdit)
        
        wx.EVT_MENU(self, GUI_ID.CMD_CHECKBOX_TIMELINE_SHOW_EMPTY_DAYS,
                self.OnCmdCheckShowEmptyDays)
        wx.EVT_UPDATE_UI(self, GUI_ID.CMD_CHECKBOX_TIMELINE_SHOW_EMPTY_DAYS,
                self.OnCmdCheckUpdateEmptyDays)

        wx.EVT_MENU(self, GUI_ID.CMD_CHECKBOX_TIMELINE_DATE_ASCENDING,
                self.OnCmdCheckDateAscending)
        wx.EVT_UPDATE_UI(self, GUI_ID.CMD_CHECKBOX_TIMELINE_DATE_ASCENDING,
                self.OnCmdCheckUpdateDateAscending)