ecere/ide/FormDesigner/Toolbox: Display SavingDataBox instead of DataBox in toolbox...
authorJerome St-Louis <jerome@ecere.com>
Tue, 23 Aug 2011 17:06:54 +0000 (13:06 -0400)
committerJerome St-Louis <jerome@ecere.com>
Tue, 23 Aug 2011 17:06:54 +0000 (13:06 -0400)
ecere/src/com/instance.ec
ecere/src/gui/FormDesigner.ec
ecere/src/gui/controls/DataBox.ec

index ded5cc3..4fc4d0f 100644 (file)
@@ -2029,6 +2029,8 @@ static void FixDerivativesBase(Class base, Class mod)
             _class.startMemberID += mod.base.memberID;
          }
       }
+      // Moved this before to ensure CPValues have their data ready
+      FixDerivativesBase(_class, mod);
       {
          Class c;
          for(c = mod.base; c; c = c.base)
@@ -2040,8 +2042,6 @@ static void FixDerivativesBase(Class base, Class mod)
             }
          }
       }
-
-      FixDerivativesBase(_class, mod);
    }
    
    {
index 5c485c7..9d15c9e 100644 (file)
@@ -100,7 +100,8 @@ class FormDesigner : ClassDesignerBase
    void ::ListClasses(DesignerBase designer, Class _class)
    {
       OldLink link;
-      designer.AddToolBoxClass(_class);
+      if(eClass_GetProperty(_class, "icon"))
+         designer.AddToolBoxClass(_class);
       /*
       for(link = _class.derivatives.first; link; link = link.next)
          designer.AddToolBoxClass(link.data);
@@ -113,10 +114,18 @@ class FormDesigner : ClassDesignerBase
       Class commonControlClass = eSystem_FindClass(_class.module, "CommonControl");
       for(link = commonControlClass.derivatives.first; link; link = link.next)
       {
-         ListClasses(designer, link.data);
+         ListSubClasses(designer, link.data);
       }
    }
 
+   void ::ListSubClasses(DesignerBase designer, Class c)
+   {
+      OldLink link;
+      ListClasses(designer, c);
+      for(link = c.derivatives.first; link; link = link.next)
+         ListSubClasses(designer, link.data);
+   }
+
    void ::PrepareTestObject(DesignerBase designer, Window test)
    {
       test.parent = designer;
index dd0c751..0f9bba0 100644 (file)
@@ -17,8 +17,6 @@ private:
 
 public class DataBox : CommonControl
 {
-   class_property(icon) = "<:ecere>controls/dataBox.png";
-
 public:
    Class type;
    void * data;
@@ -158,6 +156,7 @@ private:
 
 public class SavingDataBox : DataBox
 {
+   class_property(icon) = "<:ecere>controls/dataBox.png";
    borderStyle = deep;
    bool OnActivate(bool active, Window previous, bool * goOnWithActivation, bool direct)
    {