def addProp(self, oid): attr = self.dialog.attribs[oid] value = attr.GetValue() if oid == self.dialog.rdnOid: icon = "attribRDN" elif oid in self.dialog.mustAttribs: icon = "attribMust" else: icon = "attribMay" if attr.IsBinary(): property = wxpg.StringProperty(attr.name, "", xlt("<binary data; can't edit>")) elif attr.IsSingleValue(): if attr.IsInteger(): property = wxpg.IntProperty(attr.name, oid, value) else: if not value: value = "" property = wxpg.StringProperty(attr.name, oid, value) else: if not value: value = [] property = wxpg.ArrayStringProperty(attr.name, oid, value) self.grid.Append(property) self.grid.SetPropertyImage(property, self.dialog.GetBitmap(icon)) if not attr.IsBinary(): attr.items[self.grid] = property return property
def populatepropgrid(self, pg): #Geometry Properties pg.Append(wxpg.PropertyCategory("Geometry")) normalID = pg.Append(wxpg.StringProperty("Center", value="<composed>")) pg.AppendIn(normalID, wxpg.FloatProperty("X", value=self.x)) pg.AppendIn(normalID, wxpg.FloatProperty("Y", value=self.y)) pg.AppendIn(normalID, wxpg.FloatProperty("Z", value=self.z)) normalID2 = pg.Append( wxpg.StringProperty("Center2", value="<composed>")) pg.AppendIn(normalID2, wxpg.FloatProperty("X", value=self.x2)) pg.AppendIn(normalID2, wxpg.FloatProperty("Y", value=self.y2)) pg.AppendIn(normalID2, wxpg.FloatProperty("Z", value=self.z2)) pg.Append(wxpg.FloatProperty("Radius", value=self.r)) #Material Properties pg.Append(wxpg.PropertyCategory("Material")) pg.Append(wxpg.FloatProperty("Reflectivity", value=self.reflectivity)) pg.Append(wxpg.BoolProperty("Cast Shadows", value=self.cast)) pg.SetPropertyAttribute("Cast Shadows", "UseCheckbox", True) pg.Append(wxpg.BoolProperty("Recieve Shadows", value=self.recieve)) pg.SetPropertyAttribute("Recieve Shadows", "UseCheckbox", True)
def __init__(self, parent, pipeline): wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY) self.pipeline = pipeline # Setup main settings panel. settingsGridSizer = wx.BoxSizer(wx.HORIZONTAL) self.settingsGrid = wx_propgrid.PropertyGrid(self, size=(500, 500)) settingsGridSizer.Add(self.settingsGrid, 1, wx.EXPAND) self.settingsGrid.Append( wx_propgrid.PropertyCategory("Basic Analysis Settings")) self.settingsGrid.Append( wx_propgrid.StringProperty("Pipeline name", "pipelineName", self.pipeline.pipelineName)) self.settingsGrid.Append( wx_propgrid.DirProperty("Data directory", "dataDirectory", self.pipeline.dataDirectory)) self.settingsGrid.Append( wx_propgrid.StringProperty("Data filename", "dataFilename", self.pipeline.dataFilename)) self.SetSizerAndFit(settingsGridSizer) self.Bind(wx_propgrid.EVT_PG_CHANGED, self.onUpdateMainSettingsGrid, self.settingsGrid)
def getPropertyForType(self, stg, pid, dt): if dt == "str": pgp = wxpg.StringProperty(pid, value="") elif dt == "float": pgp = wxpg.FloatProperty(pid, value=0.0) elif dt in ["int", "extruder"]: pgp = wxpg.IntProperty(pid, value=0) elif dt == "bool": pgp = wxpg.BoolProperty(pid, value=False) elif dt == "enum": opts = [str(x) for x in stg.getOptions()] pgp = wxpg.EnumProperty(pid, labels=opts, values=range(len(opts)), value=0) else: self.log("taking default action for unknown data type: %s" % dt) pgp = wxpg.StringProperty(pid, value="") return pgp
def __init__(self, label, name, value): wxpg.PGProperty.__init__(self, label, name) self.AddPrivateChild(wxpg.StringProperty("X", value=value[0])) self.AddPrivateChild(wxpg.StringProperty("Y", value=value[1])) self.m_value = value
def test_propgridprops02(self): pg.PG_PROP_PASSWORD p1 = pg.StringProperty() p2 = pg.StringProperty('label', 'name', 'value') s = p2.ValueToString(12345) assert s == '12345'
def AddProperty(self, property, parent_property=None): self.inAddProperty += 1 # add a cad.property, optionally to an existing wx.PGProperty if property.GetType() == cad.PROPERTY_TYPE_STRING: new_prop = wxpg.StringProperty(property.GetTitle(), value=property.GetString()) elif property.GetType() == cad.PROPERTY_TYPE_LONG_STRING: #new_prop = wxpg.LongStringProperty("MultipleButtons", wxpg.PG_LABEL) new_prop = wxpg.StringProperty(property.GetTitle(), value=property.GetString()) elif property.GetType() == cad.PROPERTY_TYPE_DOUBLE: new_prop = wxpg.FloatProperty(property.GetTitle(), value=property.GetDouble()) elif property.GetType() == cad.PROPERTY_TYPE_LENGTH: new_prop = wxpg.FloatProperty(property.GetTitle(), value=property.GetDouble() / cad.GetUnits()) elif property.GetType() == cad.PROPERTY_TYPE_INT: new_prop = wxpg.IntProperty(property.GetTitle(), value=property.GetInt()) elif property.GetType() == cad.PROPERTY_TYPE_COLOR: col = property.GetColor() wcol = wx.Colour(col.red, col.green, col.blue) new_prop = wxpg.ColourProperty(property.GetTitle(), value=wcol) elif property.GetType() == cad.PROPERTY_TYPE_CHOICE: new_prop = wxpg.EnumProperty(property.GetTitle(), labels=property.GetChoices(), value=property.GetInt()) elif property.GetType() == cad.PROPERTY_TYPE_CHECK: new_prop = wxpg.BoolProperty(property.GetTitle(), value=property.GetBool()) new_prop.SetAttribute(wxpg.PG_BOOL_USE_CHECKBOX, True) elif property.GetType() == cad.PROPERTY_TYPE_LIST: new_prop = wxpg.StringProperty(property.GetTitle(), value='<composed>') elif property.GetType() == cad.PROPERTY_TYPE_FILE: new_prop = wxpg.FileProperty(property.GetTitle(), value=property.GetString()) else: wx.MessageBox('invalid property type: ' + str(property.GetType())) return if not property.editable: new_prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) self.Append(parent_property, new_prop, property) if property.GetType() == cad.PROPERTY_TYPE_LIST: plist = property.GetProperties() for p in plist: self.AddProperty(p, new_prop) new_prop.ChangeFlag(wxpg.PG_PROP_COLLAPSED, True) elif property.GetType() == cad.PROPERTY_TYPE_LONG_STRING: # Change property to use editor created in the previous code segment #self.pg.SetPropertyEditor("MultipleButtons", self.multiButtonEditor) self.pg.SetPropertyEditor(new_prop, "TrivialPropertyEditor") self.inAddProperty -= 1
def Remplissage(self): # Heure min affichée propriete = wxpg.StringProperty(label=_(u"Heure minimale affichée"), name="heure_min", value="08:30") propriete.SetHelpString(_(u"Saisissez une heure")) propriete.SetEditor("EditeurHeure") propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Heure max affichée propriete = wxpg.StringProperty(label=_(u"Heure maximale affichée"), name="heure_max", value="22:30") propriete.SetHelpString(_(u"Saisissez une heure")) propriete.SetEditor("EditeurHeure") propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Intervalle souris propriete = wxpg.StringProperty(label=_(u"Pas de la souris"), name="temps_arrondi", value="00:30") propriete.SetHelpString(_(u"Saisissez un temps")) propriete.SetEditor("EditeurHeure") propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Durée minimale barre propriete = wxpg.StringProperty(label=_(u"Durée minimale location"), name="barre_duree_minimale", value="00:30") propriete.SetHelpString(_(u"Saisissez une durée")) propriete.SetEditor("EditeurHeure") propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Hauteur de ligne propriete = wxpg.IntProperty(label=_(u"Hauteur de ligne"), name="case_hauteur", value=50) propriete.SetHelpString( _(u"Saisissez une hauteur de ligne (50 par défaut)")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("case_hauteur", "SpinCtrl") # Autoriser changement de ligne propriete = wxpg.BoolProperty( label=_(u"Autoriser le changement de ligne"), name="autoriser_changement_ligne", value=True) propriete.SetHelpString( _(u"Cochez cette case si vous souhaitez pouvoir changer de ligne")) propriete.SetAttribute("UseCheckbox", True) self.Append(propriete)
def initEditor(self): #draw_button = wx.Button(self, label="Press Me") #self.Bind(wx.EVT_BUTTON, self.OnButtonPressed, draw_button) mb = self.MakeMenuBar() self.SetMenuBar(mb) self.CreateStatusBar() self.Maximize(True) self.Centre() self.Show() self.bSizer1 = wx.BoxSizer(wx.HORIZONTAL) self.m_auinotebook1 = wx.aui.AuiNotebook(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(550, -1), wx.aui.AUI_NB_DEFAULT_STYLE) self.bSizer1.Add(self.m_auinotebook1, 1, wx.EXPAND | wx.ALL, 5) bSizer2 = wx.BoxSizer(wx.VERTICAL) self.m_dataViewCtrl1 = wx.dataview.DataViewCtrl( self, wx.ID_ANY, wx.DefaultPosition, wx.Size(130, 200), 0) bSizer2.Add(self.m_dataViewCtrl1, 0, wx.ALL, 5) self.m_propertyGridManager1 = pg.PropertyGridManager( self, wx.ID_ANY, wx.DefaultPosition, wx.Size(130, 200), wx.propgrid.PGMAN_DEFAULT_STYLE) self.m_propertyGridManager1.SetExtraStyle( wx.propgrid.PG_EX_MODE_BUTTONS) self.m_propertyGridPage1 = self.m_propertyGridManager1.AddPage( u"Page", wx.NullBitmap) self.m_propertyGridItem1 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name", u"Name")) self.m_propertyGridItem6 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name1", u"Name1")) self.m_propertyGridItem7 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name2", u"Name2")) self.m_propertyGridItem8 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name3", u"Name3")) self.m_propertyGridItem9 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name4", u"Name4")) self.m_propertyGridItem2 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name5", u"Name5")) self.m_propertyGridItem3 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name6", u"Name6")) self.m_propertyGridItem4 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name7", u"Name7")) self.m_propertyGridItem5 = self.m_propertyGridPage1.Append( pg.StringProperty(u"Name8", u"Name8")) bSizer2.Add(self.m_propertyGridManager1, 0, wx.ALL, 5) self.bSizer1.Add(bSizer2, 1, wx.EXPAND, 5) self.SetSizer(self.bSizer1) self.Layout() self.Centre(wx.BOTH)
def initDetailPanel(self, pgm): pgm.Clear() page = pgm.AddPage(res.S_BD_FILE_INFO) page.Append(wxpg.LongStringProperty(res.S_BD_FILE_NAME, "file_name")) page.Append(wxpg.StringProperty(res.S_BD_EXT, "file_ext")) page.Append(wxpg.StringProperty(res.S_BD_SIZE, "file_size")) page.Append(wxpg.StringProperty(res.S_BD_MD5, "md5")) page.Append( wxpg.StringProperty(res.S_BD_MODIFY_TIME, "file_modify_time")) page.Append(wxpg.LongStringProperty(res.S_BD_PATH, "path")) self._pgm = pgm
def __init__(self, parent): wx.Dialog.__init__(self, parent, -1, 'NLExtract BAG config aanpassen', size=(400, 200)) self.panel = panel = wx.Panel(self, wx.ID_ANY) # Difference between using PropertyGridManager vs PropertyGrid is that # the manager supports multiple pages and a description box. self.pg = pg = wxpg.PropertyGridManager( panel, style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_AUTO_SORT) pg.AddPage("BAG Extract Config") pg.Append(wxpg.PropertyCategory("BAG Extract Config")) pg.Append( wxpg.StringProperty("Database naam", value="%s" % BAGConfig.config.database)) pg.Append( wxpg.StringProperty("Database schema", value="%s" % BAGConfig.config.schema)) pg.Append( wxpg.StringProperty("Database host", value="%s" % BAGConfig.config.host)) pg.Append( wxpg.StringProperty("Database user", value="%s" % BAGConfig.config.user)) pg.Append( wxpg.StringProperty("Database password", value="%s" % BAGConfig.config.password)) pg.Append( wxpg.IntProperty("Database poort", value=int(BAGConfig.config.port))) # pg.Append(wxpg.BoolProperty("Verbose logging", value=True)) # pg.SetPropertyAttribute("Bool_with_Checkbox", "UseCheckbox", True) topsizer = wx.BoxSizer(wx.VERTICAL) topsizer.Add(pg, 1, wx.EXPAND) but = wx.Button(panel, -1, "Bewaren") but.Bind(wx.EVT_BUTTON, self.OnSave) topsizer.Add(but, 1, wx.EXPAND) # rowsizer = wx.BoxSizer(wx.HORIZONTAL) # rowsizer.Add(but, 1) panel.SetSizer(topsizer) topsizer.SetSizeHints(panel) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(sizer) self.SetAutoLayout(True)
def initDetailPanel(self, pgm): pgm.Clear() page = pgm.AddPage("Page 1 - Testing All") page.Append(wxpg.PropertyCategory(res.S_BD_BOOK_INFO)) page.Append(wxpg.LongStringProperty(res.S_BD_NAME, "book_name")) page.Append(wxpg.StringProperty(res.S_BD_AUTHOR, "author")) page.Append(wxpg.LongStringProperty(res.S_BD_DESC, "notes")) page.Append(wxpg.PropertyCategory(res.S_BD_FILE_INFO)) page.Append(wxpg.StringProperty(res.S_BD_EXT, "ext")) page.Append(wxpg.StringProperty(res.S_BD_MD5, "md5")) pgm.AddPage("Page 2 - Testing All") self._pgm = pgm
def Remplissage(self): # Plateforme self.Append(wxpg.PropertyCategory(_(u"Paramètres"))) liste_choix = [ ("contact_everyone", _(u"Contact Everyone By Orange Business")), ("cleversms", _(u"Clever SMS")), ("clevermultimedias", _(u"Clever Multimedias")), ] propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Plateforme"), name="plateforme", liste_choix=liste_choix, valeur=None) propriete.SetEditor("EditeurChoix") propriete.SetHelpString(_(u"Sélectionnez une plateforme")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Adresse envoi d'email DB = GestionDB.DB() req = """SELECT IDadresse, adresse FROM adresses_mail ORDER BY adresse; """ DB.ExecuterReq(req) liste_adresses = DB.ResultatReq() DB.Close() liste_adresses.insert(0, (0, _(u"Aucune"))) propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Adresse d'expédition d'email"), name="adresse_expedition_email", liste_choix=liste_adresses, valeur=0) propriete.SetEditor("EditeurChoix") propriete.SetHelpString(_(u"Sélectionnez l'adresse d'expédition de l'email. Cette adresse doit être référencée sur votre compte Contact Everyone.")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) # Adresse de destination propriete = wxpg.StringProperty(label=_(u"Adresse de destination"), name="orange_adresse_destination_email", value="*****@*****.**") propriete.SetHelpString(_(u"Saisissez l'adresse de destination de l'email")) self.Append(propriete) # Adresse de destination propriete = wxpg.StringProperty(label=_(u"Adresse de destination"), name="cleversms_adresse_destination_email", value="*****@*****.**") propriete.SetHelpString(_(u"Saisissez l'adresse de destination de l'email")) self.Append(propriete) # Adresse de destination propriete = wxpg.StringProperty(label=_(u"Adresse de destination"), name="clevermultimedias_adresse_destination_email", value="*****@*****.**") propriete.SetHelpString(_(u"Saisissez l'adresse de destination de l'email")) self.Append(propriete) # Nbre caractères max propriete = wxpg.IntProperty(label=_(u"Nombre maximal de caractères du message"), name="nbre_caracteres_max", value=160) propriete.SetHelpString(_(u"Nombre maximal de caractères du message")) propriete.SetAttribute("obligatoire", True) self.Append(propriete) self.SetPropertyEditor("nbre_caracteres_max", "SpinCtrl")
def _create_dummy_content(self): # some dummy content from the wxPython demo import wx.propgrid as wxpg pg = self.widget pg.AddPage( "Page 1 - Dummy" ) pg.Append( wxpg.PropertyCategory("1 - Basic Properties") ) pg.Append( wxpg.StringProperty("String",value="Some Text") ) sp = pg.Append( wxpg.StringProperty('StringProperty w/ Password flag', value='ABadPassword') ) sp.SetAttribute('Hint', 'This is a hint') sp.SetAttribute('Password', True) pg.Append( wxpg.IntProperty("Int",value=123) ) pg.Append( wxpg.FloatProperty("Float",value=123.4) ) pg.Append( wxpg.BoolProperty("Bool",value=True) ) pg.Append( wxpg.BoolProperty("Bool_with_Checkbox",value=True) ) pg.SetPropertyAttribute( "Bool_with_Checkbox", "UseCheckbox", True) pg.Append( wxpg.PropertyCategory("2 - More Properties") ) pg.Append( wxpg.LongStringProperty("LongString", value="This is a\nmulti-line string\nwith\ttabs\nmixed\tin.")) pg.Append( wxpg.DirProperty("Dir",value=r"C:\Windows") ) pg.Append( wxpg.FileProperty("File",value=r"C:\Windows\system.ini") ) pg.Append( wxpg.ArrayStringProperty("ArrayString",value=['A','B','C']) ) pg.Append( wxpg.EnumProperty("Enum","Enum", ['wxPython Rules', 'wxPython Rocks', 'wxPython Is The Best'], [10,11,12], 0) ) pg.Append( wxpg.EditEnumProperty("EditEnum","EditEnumProperty", ['A','B','C'], [0,1,2], "Text Not in List") ) pg.Append( wxpg.PropertyCategory("3 - Advanced Properties") ) pg.Append( wxpg.DateProperty("Date",value=wx.DateTime.Now()) ) pg.Append( wxpg.FontProperty("Font",value=self.widget.GetFont()) ) pg.Append( wxpg.ColourProperty("Colour", value=self.widget.GetBackgroundColour()) ) pg.Append( wxpg.SystemColourProperty("SystemColour") ) pg.Append( wxpg.ImageFileProperty("ImageFile") ) pg.Append( wxpg.MultiChoiceProperty("MultiChoice", choices=['wxWidgets','QT','GTK+']) ) pg.Append( wxpg.PropertyCategory("4 - Additional Properties") ) pg.Append( wxpg.IntProperty("IntWithSpin",value=256) ) pg.SetPropertyEditor("IntWithSpin","SpinCtrl") pg.SetPropertyAttribute( "File", wxpg.PG_FILE_SHOW_FULL_PATH, 0 ) pg.SetPropertyAttribute( "File", wxpg.PG_FILE_INITIAL_PATH, r"C:\Program Files\Internet Explorer" ) if compat.IS_PHOENIX: pg.SetPropertyAttribute( "Date", wxpg.PG_DATE_PICKER_STYLE, wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY ) pg.AddPage( "Page 2 - Almost Empty" ) pg.Append( wxpg.PropertyCategory("1 - Basic Properties") ) pg.Append( wxpg.StringProperty("String 2",value="Some Text") )
def initialize_fixed_properties(self, pg): pg.Append(wxpg.StringProperty(self.SLIDE_RANGE)) pg.Append( wxpg.EnumProperty(self.IMAGE_TYPE, labels=["GIF", "PNG"], value=1)) pg.Append(wxpg.DirProperty(self.OUTPUT_DIR)) pg.Append(wxpg.BoolProperty(self.CLEANUP_OUTPUT_DIR))
def AddMethod(self, name, m): doc = inspect.getdoc(m) if doc is None: doc = "No Description" prop = propgrid.StringProperty(name, value=doc) prop.Enable(False) self.Append(prop)
def _update_node(self, node, tree): # type: (propgrid.PGProperty, any) -> None for key in tree: value = tree[key] if value is None: continue name = node.GetName() + '.' + key existing_property = node.GetPropertyByName( name) # type: propgrid.PGProperty if existing_property is None: if type(value) is dict: n = propgrid.PropertyCategory(label=key, name=name) node.AppendChild(n) self._update_node(n, value) self._props.Collapse(n) else: n = propgrid.StringProperty(label=key, name=name, value=str(value)) n.SetHelpString(key + ': ' + repr(value)) node.AppendChild(n) self._props.SetPropertyReadOnly(n) else: if type(value) is dict: self._update_node(existing_property, value) else: existing_property.SetValue(str(value)) existing_property.SetHelpString(key + ': ' + repr(value))
def _create_plot_properties(self): pg = self.property_grid_1 # pg.AddPage("Page 1 - Plot Settings") # if pages are needed, use PropertyGridManger instead dir_path = os.path.dirname(os.path.realpath(__file__)) pg.Append(wxpg.PropertyCategory("1 - Basic Properties")) pg.Append(wxpg.StringProperty(label="Title", value="Title")) pg.Append(wxpg.StringProperty(label="X Label", value="X Label")) pg.Append(wxpg.StringProperty(label="Y Label", value="Y Label")) pg.Append(wxpg.BoolProperty(label="Grid", value=True)) pg.SetPropertyAttribute(id="Grid", attrName="UseCheckbox", value=True) pg.Append(wxpg.PropertyCategory("2 - Data")) # https://discuss.wxpython.org/t/wxpython-pheonix-4-0-2-question-regarding-multichoiceproperty-and-setting-the-selection-of-the-choices/30044 # https://discuss.wxpython.org/t/how-to-set-propertygrid-values/30152/4 pg.Append( wxpg.EnumProperty( label="Scale", labels=['Linear', 'SemilogX', 'SemilogY', 'LogLog'])) pg.Append( wxpg.EnumProperty(label="X Data", name="X Data", labels=['NaN'], values=[0])) pg.Append( wxpg.MultiChoiceProperty(label="Y Data", name='Y Data', choices=['NaN'], value=['NaN'])) pg.Append( wxpg.EnumProperty(label="Data Labels", name="Data Labels", labels=['NaN'], values=[0])) pg.Append(wxpg.PropertyCategory("3 - Optional Static Plot Overlay")) pg.Append(wxpg.FileProperty(label="Overlay Plot", value=rf"{dir_path}")) pg.Append(wxpg.EnumProperty(label="X Axis Variable", labels=[''])) pg.Append(wxpg.EnumProperty(label="Y Axis Variable", labels=[''])) pg.Append(wxpg.PropertyCategory("4 - Advanced Properties")) pg.Append(wxpg.ArrayStringProperty(label="xLim", value=['0', '100'])) pg.Append(wxpg.ArrayStringProperty(label="yLim", value=['0', '100'])) pg.Append(wxpg.DateProperty(label="Date", value=wx.DateTime.Now())) pg.Append(wxpg.ColourProperty(label="Line Colour", value='#1f77b4')) pg.Append(wxpg.FontProperty(label="Font", value=self.GetFont())) pg.Grid.FitColumns()
def _reset_watch(self): """Resets or initializes the internal GUI representation of the MetaWatch to default values. Called on startup during initialization.""" self.m_LEDNotice.Hide() self.m_vibrateNotice.Hide() self.m_watchMode.Selection = 0 self.m_watchMode.Enabled = False self.m_manualModeSet.Value = False self.clock_offset = relativedelta(0) self.parser.watch_reset() # There is no seperate internal data structure for the watch state, # the GUI elements *are* the internal representation. This function # essentially resets them to a known state. self.m_pg.ClearPage(0) self.m_pg.Append(wxpg.PropertyCategory("NVAL Store")) # All NVAL values are listed in the protocol_constants module. The # property grid is built by parsing that list and applying default # values (NVAL properties which have no default value are ignored, # they are marked 'reserved' in the protocol documentation). for value in nval.get_nval_list(): args, kwargs = ([], {}) if value.displaytype[0] and value.default: dest_type, value_type = value.displaytype kwargs = dict(value = value_type(value.default)) elif isinstance(value.valuetype, list): dest_type = wxpg.EnumProperty args = (value.valuetype, range(len(value.valuetype)), value.default) elif isinstance(value.valuetype, dict): dest_type = wxpg.EnumProperty args = (value.valuetype.values(), value.valuetype.keys(), value.default) else: continue self.m_pg.Append(dest_type(value.name, str("nval_%04X" % value.identifier), *args, **kwargs)) self.m_pg.Append(wxpg.PropertyCategory("Real Time Clock")) self.m_pg.Append(wxpg.DateProperty("Date")) self.m_pg.Append(wxpg.StringProperty("Time")) self.m_pg.SetPropertyAttribute("Date", wxpg.PG_DATE_PICKER_STYLE, wx.DP_DROPDOWN|wx.DP_SHOWCENTURY) # Call the timer function once for immediate clock update. self.OnClock() self.logger.info("Initialized watch to default state")
def initialize_fixed_properties(self, pg): pg.Append(wxpg.PropertyCategory(_("1 - Range specification"))) pg.Append(wxpg.StringProperty(self.SLIDE_RANGE)) pg.Append(wxpg.StringProperty(self.REPEAT_RANGE)) pg.Append(wxpg.PropertyCategory(_("2 - Text to find and replace"))) pg.Append(wxpg.StringProperty(self.FIND_TEXT)) pg.Append(wxpg.LongStringProperty(self.REPLACE_TEXT)) pg.Append(wxpg.LongStringProperty(self.PREPROCESS_SCRIPT)) pg.Append(wxpg.PropertyCategory(_("3 - Archive processing"))) pg.Append(wxpg.BoolProperty(self.ARCHIVE_LYRIC_FILES)) pg.Append(wxpg.StringProperty(self.OPTION_SPLIT_LINE_AT_EVERY)) pg.Append(wxpg.PropertyCategory(_("4 - Word wrap archive text"))) pg.Append(wxpg.BoolProperty(self.ENABLE_WORDWRAP)) pg.Append(wxpg.FontProperty(self.WORDWRAP_FONT)) pg.Append(wxpg.IntProperty(self.PAGE_WITDH))
def populatepropgrid(self, pg): #Geometry Properties pg.Append(wxpg.PropertyCategory("Geometry")) normalID = pg.Append( wxpg.StringProperty("Position", value="<composed>")) pg.AppendIn(normalID, wxpg.FloatProperty("X", value=self.x)) pg.AppendIn(normalID, wxpg.FloatProperty("Y", value=self.y)) pg.AppendIn(normalID, wxpg.FloatProperty("Z", value=self.z))
def initialize_fixed_properties(self, pg): pg.Append( wxpg.EnumProperty(self.FILE_TYPE, labels=self.FILE_TYPE_LIST, value=2)) pg.Append(wxpg.PropertyCategory(_("1 - Slide settings"))) pg.Append(wxpg.StringProperty(self.SLIDE_REPEAT_RANGE)) pg.Append(wxpg.StringProperty(self.SLIDE_SEPARATOR_SLIDES)) pg.Append(wxpg.PropertyCategory(_("2 - Lyric settings"))) pg.Append(wxpg.StringProperty(self.LYRIC_REPEAT_RANGE)) pg.Append(wxpg.StringProperty(self.LYRIC_SEPARATOR_SLIDES)) pg.Append(wxpg.StringProperty(self.LYRIC_PATTERN)) pg.Append(wxpg.BoolProperty(self.ARCHIVE_LYRIC_FILES)) pg.Append(wxpg.PropertyCategory( _("3 - List of lyric files to insert")))
def populatepropgrid(self, pg): #Geometry Properties pg.Append(wxpg.PropertyCategory("Geometry")) minID = pg.Append(wxpg.StringProperty("Minimum", value="<composed>")) pg.AppendIn(minID, wxpg.FloatProperty("X", value=self.min[0])) pg.AppendIn(minID, wxpg.FloatProperty("Y", value=self.min[1])) pg.AppendIn(minID, wxpg.FloatProperty("Z", value=self.min[2])) maxID = pg.Append(wxpg.StringProperty("Maximum", value="<composed>")) pg.AppendIn(maxID, wxpg.FloatProperty("X", value=self.max[0])) pg.AppendIn(maxID, wxpg.FloatProperty("Y", value=self.max[1])) pg.AppendIn(maxID, wxpg.FloatProperty("Z", value=self.max[2])) #Material Properties pg.Append(wxpg.PropertyCategory("Material")) pg.Append(wxpg.BoolProperty("Cast Shadows", value=self.cast)) pg.SetPropertyAttribute("Cast Shadows", "UseCheckbox", True)
def _init_file_props(self): self.propgrid.Append(wxpg.PropertyCategory("File properties", "file")) props = ( wxpg.FileProperty("Location", "file.location", ""), wxpg.StringProperty("Last modified", "file.modified", ""), wxpg.StringProperty("Last accessed", "file.accessed", ""), # os.path.getctime just returns the modification time on Unix #wxpg.StringProperty("Created", "file.created", ""), wxpg.StringProperty("Size", "file.size", ""), ) for prop in props: self.propgrid.Append(prop) prop.Enable(False) self.propgrid.SetPropertyAttribute("file.size", "Units", "KiB") self.refresh_file_properties()
def Go(self): self.grid.Freeze() for key in Server.panelClassDefault: val=self.node.GetPanelClasses(key) property=wxpg.StringProperty(key, key, val) # bmp=self.GetBitmap(key) # if bmp: # self.grid.SetPropertyImage(property, bmp) crashes?!? self.grid.Append(property) self.grid.Thaw() self.IdGeneratorStyle = self.node.GetIdGeneratorStyle() self.sambaUnixIdPoolDN = self.node.GetSambaUnixIdPoolDN()
def initialize_fixed_properties(self, pg): pg.Append(wxpg.PropertyCategory(_("Datetime"))) pg.Append(wxpg.StringProperty(self.DATETIME_NAME)) date_prop = self.create_datetime_property(self.DATETIME_VALUE) pg.Append(date_prop) pg.Append( wxpg.PropertyCategory( _("Variable names and values to be used for find and replace")) )
def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(900, 600), style=wx.TAB_TRAVERSAL, name=wx.EmptyString): wx.Panel.__init__(self, parent, id=id, pos=pos, size=size, style=style, name=name) plc_layout = wx.BoxSizer(wx.VERTICAL) self.plc_split = wx.SplitterWindow(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D) self.plc_split.Bind(wx.EVT_IDLE, self.plc_splitOnIdle) self.plc_preview = PlaceViewer(self.plc_split, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.plc_data = wx.Panel(self.plc_split, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) plc_data_layout = wx.BoxSizer(wx.VERTICAL) self.plc_items = wx.TreeCtrl(self.plc_data, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT) plc_data_layout.Add(self.plc_items, 1, wx.ALL | wx.EXPAND, 5) self.plc_item_data = pg.PropertyGrid(self.plc_data, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE) self.m_propertyGridItem1 = self.plc_item_data.Append( pg.StringProperty(u"Name", u"Name")) plc_data_layout.Add(self.plc_item_data, 1, wx.ALL | wx.EXPAND, 5) self.plc_data.SetSizer(plc_data_layout) self.plc_data.Layout() plc_data_layout.Fit(self.plc_data) self.plc_split.SplitVertically(self.plc_preview, self.plc_data, 0) plc_layout.Add(self.plc_split, 1, wx.EXPAND, 5) self.SetSizer(plc_layout) self.Layout() # Connect Events self.plc_items.Bind(wx.EVT_TREE_SEL_CHANGED, self.plc_items_selchanged)
def __init__(self, label, name=wxpg.PG_LABEL, value={ "mne": "mne1", "eeg": "eeg2" }): wxpg.PGProperty.__init__(self, label, name) self._key_list = [*value] for k in self._key_list: self.AddPrivateChild(wxpg.StringProperty(k, value=value.get(k))) self.m_value = value
def add_string_property(self, name, key, value="", status=None, enabled=True, *args, **kwargs): """ Add string property. :param name: label :param key: item key :param value: :param status: status bar string :param enabled: boolean value :param args: :param kwargs: :return: """ if isinstance(value, list): item = propgrid.StringProperty(name, key) else: item = propgrid.StringProperty(name, key, value=value) self.Append(item) if isinstance(value, list): # Loop through the values and update. for index, cell in enumerate(value): if index == 0: item.SetValue(cell) else: self.set_text(key, index+1, cell) if status: self.SetPropertyHelpString(key, status) if enabled: self.EnableProperty(key) else: self.DisableProperty(key) return item
def __init__( self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 500,395 ), style = wx.TAB_TRAVERSAL, name = wx.EmptyString ): wx.Panel.__init__ ( self, parent, id = id, pos = pos, size = size, style = style, name = name ) bSizer1 = wx.BoxSizer( wx.VERTICAL ) self.m_propertyGridManager1 = pg.PropertyGridManager(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DESCRIPTION|wx.propgrid.PG_SPLITTER_AUTO_CENTER|wx.propgrid.PG_TOOLBAR|wx.propgrid.PG_TOOLTIPS|wx.TAB_TRAVERSAL) self.m_propertyGridManager1.SetExtraStyle( wx.propgrid.PG_EX_AUTO_UNSPECIFIED_VALUES|wx.propgrid.PG_EX_MODE_BUTTONS|wx.propgrid.PG_EX_NO_FLAT_TOOLBAR|wx.propgrid.PG_EX_NO_TOOLBAR_DIVIDER ) self.m_propertyGridPage1 = self.m_propertyGridManager1.AddPage( u"Page", wx.ArtProvider.GetBitmap( wx.ART_REPORT_VIEW, wx.ART_BUTTON ) ); self.Item1 = self.m_propertyGridPage1.Append( pg.PropertyCategory( u"Directory of Work", u"Directory of Work" ) ) self.Item2 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Database and Sql files", u"Database and Sql files" ) ) self.Item3 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Utility and Plugin", u"Utility and Plugin" ) ) self.Item4 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Server and Local Network", u"Server and Local Network" ) ) self.m_propertyGridPage1.SetPropertyHelpString( Item4, u"Directory of Local Network that Database and Main File here and other client get Data from it" ) self.Item5 = self.m_propertyGridPage1.Append( pg.DirProperty( u"Other and Temp", u"Other and Temp" ) ) self.Item6 = self.m_propertyGridPage1.Append( pg.PropertyCategory( u"General parameter", u"General parameter" ) ) self.Item7 = self.m_propertyGridPage1.Append( pg.DateProperty( u"Date of Today ", u"Date of Today " ) ) self.Item8 = self.m_propertyGridPage1.Append( pg.EnumProperty( u"Language", u"Language" ) ) self.Item9 = self.m_propertyGridPage1.Append( pg.BoolProperty( u"Show Clock", u"Show Clock" ) ) self.Item10 = self.m_propertyGridPage1.Append( pg.FontProperty( u"Font", u"Font" ) ) self.Item11 = self.m_propertyGridPage1.Append( pg.FlagsProperty( u"Size", u"Size" ) ) self.Item12 = self.m_propertyGridPage1.Append( pg.StringProperty( u"position", u"position" ) ) self.m_propertyGridPage2 = self.m_propertyGridManager1.AddPage( u"Page", wx.ArtProvider.GetBitmap( wx.ART_LIST_VIEW, wx.ART_TOOLBAR ) ); self.Item13 = self.m_propertyGridPage2.Append( pg.PropertyCategory( u"Other Status", u"Other Status" ) ) self.Item14 = self.m_propertyGridPage2.Append( pg.StringProperty( u"Toolbar", u"Toolbar" ) ) self.Item15 = self.m_propertyGridPage2.Append( pg.StringProperty( u"Pan Input", u"Pan Input" ) ) self.Item16 = self.m_propertyGridPage2.Append( pg.StringProperty( u"Pan Status", u"Pan Status" ) ) self.Item17 = self.m_propertyGridPage2.Append( pg.ImageFileProperty( u"Background", u"Background" ) ) self.Item18 = self.m_propertyGridPage2.Append( pg.CursorProperty( u"Cursor", u"Cursor" ) ) self.Item19 = self.m_propertyGridPage2.Append( pg.LongStringProperty( u"Help", u"Help" ) ) bSizer1.Add( self.m_propertyGridManager1, 1, wx.ALL|wx.EXPAND, 5 ) self.SetSizer( bSizer1 ) self.Layout()