|
|
| Line 9: |
Line 9: |
| Men fixed position er stadig lidt besværlig at arbejde med da man manuelt skal indtaste x og y værdierne i property editoren. | | Men fixed position er stadig lidt besværlig at arbejde med da man manuelt skal indtaste x og y værdierne i property editoren. |
| (kan man ikke lave en IntPropertyEditor der bruger en wxSpinCtrl?) | | (kan man ikke lave en IntPropertyEditor der bruger en wxSpinCtrl?) |
|
| |
| =Custom properties=
| |
| <code>
| |
| Index: output/xml/custom.xml
| |
| ===================================================================
| |
| --- output/xml/custom.xml (revision 0)
| |
| +++ output/xml/custom.xml (revision 0)
| |
| @@ -0,0 +1,13 @@
| |
| +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
| |
| +<package name="custom" desc="Custom objects, expand this file to match your own needs">
| |
| + <objectinfo class="Descriptive" type="custom">
| |
| + <property name="description" type="text"/>
| |
| + <property name="designer" type="text"/>
| |
| + <property name="approval" type="text"/>
| |
| + </objectinfo>
| |
| +
| |
| + <objectinfo class="Workflow" type="custom">
| |
| + <property name="Design spec." type="text"/>
| |
| + <property name="Spec. section" type="text"/>
| |
| + </objectinfo>
| |
| +</package>
| |
| Index: output/xml/objtypes.xml
| |
| ===================================================================
| |
| --- output/xml/objtypes.xml (revision 1207)
| |
| +++ output/xml/objtypes.xml (working copy)
| |
| @@ -45,6 +45,8 @@
| |
| </objtype>
| |
|
| |
| <objtype name="interface" />
| |
| +
| |
| + <objtype name="custom" />
| |
|
| |
| <objtype name="form">
| |
| <childtype name="sizer" nmax="1" />
| |
| Index: src/model/database.cpp
| |
| ===================================================================
| |
| --- src/model/database.cpp (revision 1207)
| |
| +++ src/model/database.cpp (working copy)
| |
| @@ -534,6 +534,8 @@
| |
| LoadPackage( m_xmlPath + wxT("default.xml"), m_iconPath );
| |
| LoadCodeGen( m_xmlPath + wxT("default.cppcode") );
| |
|
| |
| + LoadPackage( m_xmlPath + wxT("custom.xml"), m_iconPath );
| |
| +
| |
| // Map to temporarily hold plugins.
| |
| // Used to both set page order and to prevent two plugins with the same name.
| |
| typedef std::map< wxString, PObjectPackage > PackageMap;
| |
| @@ -741,6 +743,10 @@
| |
| }
| |
| }
| |
|
| |
| + // Append Custom properties
| |
| + if (HasCustomProperties(typeName))
| |
| + AppendCustomProperties(class_info);
| |
| +
| |
| elem_obj = elem_obj->NextSiblingElement( OBJINFO_TAG, false );
| |
| }
| |
| }
| |
| @@ -750,6 +756,24 @@
| |
| }
| |
| }
| |
|
| |
| +
| |
| +void ObjectDatabase::AppendCustomProperties(PObjectInfo class_info)
| |
| +{
| |
| + for (std::map< wxString, PObjectInfo >::iterator it = m_objs.begin(); it != m_objs.end(); it++)
| |
| + {
| |
| + if ( (*it).second->GetObjectTypeName() == wxT("custom"))
| |
| + {
| |
| + class_info->AddBaseClass( (*it).second );
| |
| + }
| |
| + }
| |
| +}
| |
| +
| |
| +bool ObjectDatabase::HasCustomProperties(wxString type)
| |
| +{
| |
| + return (HasCppProperties(type) ||
| |
| + type == wxT("form"));
| |
| +}
| |
| +
| |
| bool ObjectDatabase::HasCppProperties(wxString type)
| |
| {
| |
| return (type == wxT("notebook") ||
| |
| Index: src/model/database.h
| |
| ===================================================================
| |
| --- src/model/database.h (revision 1207)
| |
| +++ src/model/database.h (working copy)
| |
| @@ -186,6 +186,9 @@
| |
|
| |
| void SetDefaultLayoutProperties(PObjectBase obj);
| |
|
| |
| + bool HasCustomProperties(wxString type);
| |
| + void AppendCustomProperties(PObjectInfo class_info);
| |
| +
| |
| public:
| |
| ObjectDatabase();
| |
| ~ObjectDatabase();
| |
| Index: src/rad/inspector/objinspect2.cpp
| |
| ===================================================================
| |
| --- src/rad/inspector/objinspect2.cpp (revision 1207)
| |
| +++ src/rad/inspector/objinspect2.cpp (working copy)
| |
| @@ -994,6 +994,8 @@
| |
| m_pg->SetPropertyColour(id,wxColour(255,255,205)); // yellow
| |
| else if (name == wxT("sizeritem") || name == wxT("gbsizeritem") || name == wxT("sizeritembase") )
| |
| m_pg->SetPropertyColour(id,wxColour(220,255,255)); // cyan
| |
| + else if (obj_info->GetObjectTypeName() == wxT("custom"))
| |
| + m_pg->SetPropertyColour(id,wxColour(0xEE,0x82,0xEE)); //violet
| |
| }
| |
|
| |
| ExpandMap::iterator it = m_isExpanded.find( propName );
| |
|
| |
|
| |
| </code>
| |
Noter omkring wxFormbuilder, for at få den til at opføre sig som vi har behov for i MSI / PC Tool gruppen
ToDo
Tilføj "custom" property type - som bliver tilføjet alle objecter.
Fixed position
For at få editoren til at kunne arbejde med faste xy Koordinator skal man åbne objtypes.xml ogt tilføje linien <childtype name="widget"/> i form sektionen.
Men fixed position er stadig lidt besværlig at arbejde med da man manuelt skal indtaste x og y værdierne i property editoren.
(kan man ikke lave en IntPropertyEditor der bruger en wxSpinCtrl?)