def set_item(self, pos, option=None, flag=None, border=None, size=None, force_layout=True): """\ Updates the layout of the item at the given pos. """ if not self.window.widget: return pos -= 1 label, item = self.window.tabs[pos] if not item or not item.widget: return if not (pos < self.window.widget.GetPageCount()): self.window.widget.AddPage(item.widget, label) elif self.window.widget.GetPage(pos) is not item.widget: #self.window.widget.RemovePage(pos) self.window.widget.DeletePage(pos) self.window.widget.InsertPage(pos, item.widget, label) self.window.widget.SetSelection(pos) try: misc.wxCallAfter(item.sel_marker.update) except AttributeError, e: #print e pass
def set_name(self, value): value = "%s" % value if not config.preferences.allow_duplicate_names and ( self.widget and common.app_tree.has_name(value, self.node) ): misc.wxCallAfter( wx.MessageBox, _('Name "%s" is already in use.\n' "Please enter a different one.") % value, _("Error"), wx.OK | wx.ICON_ERROR, ) self.name_prop.set_value(self.name) return if not re.match(self.set_name_pattern, value): self.name_prop.set_value(self.name) else: oldname = self.name self.name = value if self._rmenu: self._rmenu.SetTitle(self.name) try: common.app_tree.refresh_name(self.node, oldname) # , self.name) except AttributeError: pass self.property_window.SetTitle(_("Properties - <%s>") % self.name)
def show_widget(self, yes): ManagedBase.show_widget(self, yes) if yes and wx.Platform in ('__WXMSW__', '__WXMAC__'): misc.wxCallAfter(_ugly_hack_for_win32_notebook_bug, self.widget) if self._create_slots: self._create_slots = False for i in range(len(self.tabs)): if self.tabs[i][1] is None: self.tabs = self.tabs[:i] self.properties['tabs'].set_value(self.get_tabs())
def on_key_down(event): evt_flags = 0 if event.ControlDown(): evt_flags = wx.ACCEL_CTRL evt_key = event.GetKeyCode() done = False for flags, key, function in misc.accel_table: if evt_flags == flags and evt_key == key: misc.wxCallAfter(function) done = True break if not done: event.Skip()
def _add_tab(self, window, pos): if window is None: window = SizerSlot(self, self.virtual_sizer, pos) self.tabs[pos - 1][1] = window else: window._dont_destroy = True node = Tree.Node(window) window.node = node common.app_tree.add(node, self.node) if self.widget: window.show_widget(True) self.virtual_sizer.set_item(pos) try: misc.wxCallAfter(window.sel_marker.update) except AttributeError, e: #print e pass
def _add_tab(self, window, pos): if window is None: window = SizerSlot(self, self.virtual_sizer, pos) self.tabs[pos-1][1] = window else: window._dont_destroy = True node = Tree.Node(window) window.node = node common.app_tree.add(node, self.node) if self.widget: window.show_widget(True) self.virtual_sizer.set_item(pos) try: misc.wxCallAfter(window.sel_marker.update) except AttributeError, e: #print e pass
def set_name(self, value): value = "%s" % value if not config.preferences.allow_duplicate_names and \ (self.widget and common.app_tree.has_name(value, self.node)): misc.wxCallAfter( wx.MessageBox, _('Name "%s" is already in use.\n' 'Please enter a different one.') % value, _("Error"), wx.OK | wx.ICON_ERROR) self.name_prop.set_value(self.name) return if not re.match(self.set_name_pattern, value): self.name_prop.set_value(self.name) else: oldname = self.name self.name = value if self._rmenu: self._rmenu.SetTitle(self.name) try: common.app_tree.refresh_name(self.node, oldname) #, self.name) except AttributeError: pass self.property_window.SetTitle(_('Properties - <%s>') % self.name)
def cleanup(self, event): if self.ask_save(): # first, let's see if we have to save the geometry... prefs = config.preferences if prefs.remember_geometry: prefs.set_geometry('main', misc.get_geometry(self)) prefs.set_geometry('tree', misc.get_geometry(self.tree_frame)) prefs.set_geometry('properties', misc.get_geometry(self.frame2)) prefs.changed = True common.app_tree.clear() if self.about_box: self.about_box.Destroy() try: config.save_preferences() except Exception, e: wx.MessageBox( _('Error saving preferences:\n%s') % e, _('Error'), wx.OK | wx.CENTRE | wx.ICON_ERROR) #self._skip_activate = True self.frame2.Destroy() self.tree_frame.Destroy() self.Destroy() common.remove_autosaved() # ALB 2004-10-15 misc.wxCallAfter(wx.GetApp().ExitMainLoop)
def cleanup(self, event): if self.ask_save(): # first, let's see if we have to save the geometry... prefs = config.preferences if prefs.remember_geometry: prefs.set_geometry('main', misc.get_geometry(self)) prefs.set_geometry('tree', misc.get_geometry(self.tree_frame)) prefs.set_geometry('properties', misc.get_geometry(self.frame2)) prefs.changed = True common.app_tree.clear() if self.about_box: self.about_box.Destroy() try: config.save_preferences() except Exception, e: wx.MessageBox(_('Error saving preferences:\n%s') % e, _('Error'), wx.OK|wx.CENTRE|wx.ICON_ERROR) #self._skip_activate = True self.frame2.Destroy() self.tree_frame.Destroy() self.Destroy() common.remove_autosaved() # ALB 2004-10-15 misc.wxCallAfter(wx.GetApp().ExitMainLoop)
def bind(method): return lambda e: misc.wxCallAfter(method)