def __init__(self, app, doc_file='', silent=False, template=False): self.app = app self.eventloop = EventLoop(self) self.selection = Selection(self) loader = None if doc_file: loader = get_loader(doc_file) if not loader: raise IOError(_('Loader is not found for <%s>') % doc_file) if loader and silent: self.doc_presenter = loader(app.appdata, doc_file) elif doc_file and not silent: pd = ProgressDialog(_('Opening file...'), self.app.mw) try: self.doc_presenter = pd.run(loader, [app.appdata, doc_file]) if not self.doc_presenter: LOG.error('Cannot load <%s>', doc_file) raise IOError(_('Cannot load <%s>') % doc_file) except Exception: raise finally: pd.destroy() if not template: self.doc_file = self.doc_presenter.doc_file self.doc_name = os.path.basename(self.doc_file) ext = uc2const.FORMAT_EXTENSION[uc2const.SK2][0] self.doc_name = change_file_extension(self.doc_name, ext) else: self.doc_name = self.app.get_new_docname() self.doc_presenter.doc_file = '' else: self.doc_presenter = SK2_Presenter(app.appdata) self.doc_name = self.app.get_new_docname() self.methods = self.doc_presenter.methods self.model = self.doc_presenter.model self.set_active_page() self.cms = self.doc_presenter.cms # self.app.default_cms.registry_cm(self.cms) self.api = PresenterAPI(self) self.corner = RulerCorner(self) self.hruler = Ruler(self, vertical=False) self.vruler = Ruler(self) self.canvas = AppCanvas(self) self.canvas.set_mode() self.eventloop.connect(self.eventloop.DOC_MODIFIED, self.modified) self.snap = SnapManager(self)
def __init__(self, presenter, parent): self.presenter = presenter VPanel.__init__(self, parent) self.SetBackgroundColour(wx.Colour(255, 255, 255)) #----- First row row_hbox = wx.BoxSizer(HORIZONTAL) self.corner = RulerCorner(presenter, self) row_hbox.Add(self.corner) self.hruler = Ruler(presenter, self, HORIZONTAL) row_hbox.Add(self.hruler, 1, EXPAND) self.box.Add(row_hbox, 0, EXPAND) #----- Second row row_hbox = wx.BoxSizer(HORIZONTAL) self.vruler = Ruler(presenter, self, VERTICAL) row_hbox.Add(self.vruler, 0, EXPAND) vbox = wx.BoxSizer(VERTICAL) hbox = wx.BoxSizer(HORIZONTAL) vbox.Add(hbox, 1, EXPAND) self.canvas = AppCanvas(presenter, self) hbox.Add(self.canvas, 1, EXPAND) self.vscroll = wx.ScrollBar(self, wx.ID_ANY, style=wx.SB_VERTICAL) hbox.Add(self.vscroll, 0, EXPAND) #----- Bottom row bottom_hbox = wx.BoxSizer(HORIZONTAL) bottom_vbox = wx.BoxSizer(VERTICAL) self.hscroll = wx.ScrollBar(self, wx.ID_ANY, style=wx.SB_HORIZONTAL) bottom_hbox.Add(self.hscroll, 1, EXPAND) self.bottom_corner = VPanel(self) size = self.vscroll.GetSize()[0] self.viewer = DocViewer(presenter, self, (size, size)) self.bottom_corner.add(self.viewer) bottom_hbox.Add(self.bottom_corner) vbox.Add(bottom_hbox, 0, EXPAND) row_hbox.Add(vbox, 1, EXPAND) self.box.Add(row_hbox, 1, EXPAND) self.canvas._set_scrolls(self.hscroll, self.vscroll)