]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/configtool/src/configitem.cpp
fixed previous revision: call wxControl's, not wxButton's DoGetBestSize
[wxWidgets.git] / utils / configtool / src / configitem.cpp
index 1add25620a06bebad0cab7b043ebc235ef39fa36..fdf4ceac4f2841e661d45f0f33c018acf813c35d 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        configitem.cpp
-// Purpose:     wxWindows Configuration Tool config item class
+// Purpose:     wxWidgets Configuration Tool config item class
 // Author:      Julian Smart
 // Modified by:
 // Created:     2003-06-03
@@ -9,19 +9,18 @@
 // Licence:
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "configitem.h"
 #endif
 
-// Includes other headers for precompiled compilation
-#include "wx/wx.h"
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
 #include "wx/tokenzr.h"
-
 #include "configitem.h"
 #include "configtree.h"
 #include "configtooldoc.h"
@@ -33,21 +32,21 @@ IMPLEMENT_CLASS(ctConfigItem, wxObject)
 
 ctConfigItem::ctConfigItem()
 {
-    m_modified = FALSE;
+    m_modified = false;
     m_type = ctTypeBoolCheck;
     m_treeItemId = wxTreeItemId();
-    m_enabled = TRUE;
+    m_enabled = true;
     m_parent = NULL;
-    m_active = TRUE;
+    m_active = true;
 }
 
 ctConfigItem::ctConfigItem(ctConfigItem* parent, ctConfigType type, const wxString& name)
 {
-    m_modified = FALSE;
+    m_modified = false;
     m_type = type;
     m_treeItemId = wxTreeItemId();
-    m_enabled = FALSE;
-    m_active = TRUE;
+    m_enabled = false;
+    m_active = true;
     SetName(name);
     m_parent = parent;
     if (parent)
@@ -82,7 +81,7 @@ bool ctConfigItem::CanEditProperty(const wxString& propName) const
     if (prop)
         return !prop->GetReadOnly();
     else
-        return FALSE;
+        return false;
 }
 
 /// Assignment operator.
@@ -105,10 +104,10 @@ void ctConfigItem::SetName(const wxString& name )
 /// Clear children
 void ctConfigItem::Clear()
 {
-    wxNode* node = m_children.GetFirst();
+    wxObjectList::compatibility_iterator node = m_children.GetFirst();
     while (node)
     {
-        wxNode* next = node->GetNext();
+        wxObjectList::compatibility_iterator next = node->GetNext();
         ctConfigItem* child = (ctConfigItem*) node->GetData();
 
         // This should delete 'node' too, assuming
@@ -165,7 +164,7 @@ void ctConfigItem::InitProperties()
         m_properties.AddProperty(prop);
     }
     prop->SetDescription(_("<B>Name</B><P> The name of the configuration setting."));
-    prop->SetReadOnly(TRUE);
+    prop->SetReadOnly(true);
 
     m_properties.AddProperty(
         new ctProperty(
@@ -176,7 +175,7 @@ void ctConfigItem::InitProperties()
     m_properties.AddProperty(
         new ctProperty(
         wxT("<B>Default-state</B><P> The default state."),
-        wxVariant((bool) TRUE, wxT("default-state")),
+        wxVariant(true, wxT("default-state")),
         wxT("bool")));
 
     if (GetType() == ctTypeString)
@@ -184,7 +183,7 @@ void ctConfigItem::InitProperties()
         m_properties.AddProperty(
             new ctProperty(
             wxT("<B>Default-value</B><P> The default value."),
-            wxVariant((bool) TRUE, wxT("default-value")),
+            wxVariant(true, wxT("default-value")),
             wxT("")));
     }
     else if (GetType() == ctTypeInteger)
@@ -246,7 +245,7 @@ void ctConfigItem::InitProperties()
 
     m_properties.AddProperty(
         new ctProperty(
-        wxT("<B>Help-topic</B><P> The help topic in the wxWindows manual for this component or setting."),
+        wxT("<B>Help-topic</B><P> The help topic in the wxWidgets manual for this component or setting."),
         wxVariant(wxT(""), wxT("help-topic")),
         wxT("multiline")));
 
@@ -265,7 +264,7 @@ void ctConfigItem::ApplyProperty(ctProperty* prop, const wxVariant& WXUNUSED(old
 {
     ctConfigToolDoc* doc = GetDocument();
     bool oldModified = doc->IsModified();
-    doc->Modify(TRUE);
+    doc->Modify(true);
 
     wxString name = prop->GetName();
     if (name == wxT("requires") ||
@@ -336,7 +335,7 @@ ctConfigItem* ctConfigItem::FindItem(const wxString& name)
     if (GetName() == name)
         return this;
 
-    for ( wxNode* node = GetChildren().GetFirst(); node; node = node->GetNext() )
+    for ( wxObjectList::compatibility_iterator node = GetChildren().GetFirst(); node; node = node->GetNext() )
     {
         ctConfigItem* child = (ctConfigItem*) node->GetData();
         ctConfigItem* found = child->FindItem(name);
@@ -351,7 +350,7 @@ ctConfigItem* ctConfigItem::FindNextSibling()
 {
     if (!GetParent())
         return NULL;
-    wxNode* node = GetParent()->GetChildren().Member(this);
+    wxObjectList::compatibility_iterator node = GetParent()->GetChildren().Member(this);
     if (node && node->GetNext())
     {
         return (ctConfigItem*) node->GetNext()->GetData();
@@ -364,7 +363,7 @@ ctConfigItem* ctConfigItem::FindPreviousSibling()
 {
     if (!GetParent())
         return NULL;
-    wxNode* node = GetParent()->GetChildren().Member(this);
+    wxObjectList::compatibility_iterator node = GetParent()->GetChildren().Member(this);
     if (node && node->GetPrevious())
     {
         return (ctConfigItem*) node->GetPrevious()->GetData();
@@ -390,7 +389,7 @@ ctConfigItem* ctConfigItem::DeepClone()
 {
     ctConfigItem* newItem = Clone();
 
-    for ( wxNode* node = GetChildren().GetFirst(); node; node = node->GetNext() )
+    for ( wxObjectList::compatibility_iterator node = GetChildren().GetFirst(); node; node = node->GetNext() )
     {
         ctConfigItem* child = (ctConfigItem*) node->GetData();
         ctConfigItem* newChild = child->DeepClone();
@@ -426,7 +425,7 @@ void ctConfigItem::DetachFromTree()
     data->SetConfigItem(NULL);
     m_treeItemId = wxTreeItemId();
 
-    for ( wxNode* node = GetChildren().GetFirst(); node; node = node->GetNext() )
+    for ( wxObjectList::compatibility_iterator node = GetChildren().GetFirst(); node; node = node->GetNext() )
     {
         ctConfigItem* child = (ctConfigItem*) node->GetData();
         child->DetachFromTree();
@@ -439,12 +438,14 @@ void ctConfigItem::Attach(ctConfigItem* parent, ctConfigItem* insertBefore)
     if (parent)
     {
         SetParent(parent);
-        wxNode* node = NULL;
         if (insertBefore)
-            node = parent->GetChildren().Member(insertBefore);
-
-        if (node)
-            parent->GetChildren().Insert(node, this);
+        {
+            wxObjectList::compatibility_iterator node = parent->GetChildren().Member(insertBefore);
+            if (node)
+                parent->GetChildren().Insert(node, this);
+            else
+                parent->GetChildren().Append(this);
+        }
         else
             parent->GetChildren().Append(this);
     }
@@ -469,18 +470,18 @@ bool ctConfigItem::IsInActiveContext()
 {
     wxString context = GetPropertyString(wxT("context"));
     if (context.IsEmpty())
-        return TRUE;
+        return true;
 
     wxList contextItems;
     StringToItems(GetDocument()->GetTopItem(), context, contextItems);
 
-    for ( wxNode* node = contextItems.GetFirst(); node; node = node->GetNext() )
+    for ( wxObjectList::compatibility_iterator node = contextItems.GetFirst(); node; node = node->GetNext() )
     {
         ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
         if (otherItem->IsEnabled())
-            return TRUE;
+            return true;
     }
-    return FALSE;
+    return false;
 }
 
 /// Evaluate the requires properties:
@@ -497,12 +498,12 @@ void ctConfigItem::EvaluateDependencies()
     wxString enabledIfNot = GetPropertyString(wxT("enabled-if-not"));
     wxString indeterminateIf = GetPropertyString(wxT("indeterminate-if"));
 
-    bool active = TRUE;
+    bool active = true;
     bool enabled = IsEnabled();
     bool oldEnabled = enabled;
     bool oldActive = IsActive();
-    bool explicitlyEnabled = FALSE;
-    bool explicitlyDisabled = FALSE;
+    bool explicitlyEnabled = false;
+    bool explicitlyDisabled = false;
     bool inActiveContext = IsInActiveContext();
 
     // Add the parent to the list of dependencies, if the
@@ -516,7 +517,7 @@ void ctConfigItem::EvaluateDependencies()
     wxList tempItems;
     StringToItems(GetDocument()->GetTopItem(), requires, tempItems);
 
-    wxNode* node;
+    wxObjectList::compatibility_iterator node;
     for ( node = tempItems.GetFirst(); node; node = node->GetNext() )
     {
         // Only consider the dependency if both items are in
@@ -543,9 +544,9 @@ void ctConfigItem::EvaluateDependencies()
         if (items.GetCount() > 0 && enabledCount == 0)
         {
             // None of the items were enabled
-            enabled = FALSE;
-            active = FALSE;
-            explicitlyDisabled = TRUE;
+            enabled = false;
+            active = false;
+            explicitlyDisabled = true;
         }
     }
     
@@ -556,7 +557,7 @@ void ctConfigItem::EvaluateDependencies()
         int disabledCount = 0;
         int inContextCount = 0;
 
-        for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
+        for ( wxObjectList::compatibility_iterator node = items.GetFirst(); node; node = node->GetNext() )
         {
             ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
             
@@ -575,9 +576,9 @@ void ctConfigItem::EvaluateDependencies()
         // Enable if there were no related items that were enabled
         if (inContextCount > 0 && (disabledCount == inContextCount) && !explicitlyDisabled)
         {
-            explicitlyEnabled = TRUE;
-            enabled = TRUE;
-            active = FALSE;
+            explicitlyEnabled = true;
+            enabled = true;
+            active = false;
         }
     }
 
@@ -588,7 +589,7 @@ void ctConfigItem::EvaluateDependencies()
         int enabledCount = 0;
         int inContextCount = 0;
 
-        for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
+        for ( wxObjectList::compatibility_iterator node = items.GetFirst(); node; node = node->GetNext() )
         {
             ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
             wxString otherName = otherItem->GetName();
@@ -608,9 +609,9 @@ void ctConfigItem::EvaluateDependencies()
         // Enable if there were no related items that were disabled
         if (inContextCount > 0 && (enabledCount > 0) && !explicitlyDisabled)
         {
-            explicitlyEnabled = TRUE;
-            enabled = TRUE;
-            active = FALSE;
+            explicitlyEnabled = true;
+            enabled = true;
+            active = false;
         }
     }
 
@@ -622,7 +623,7 @@ void ctConfigItem::EvaluateDependencies()
         // int disabledCount = 0;
         int inContextCount = 0;
 
-        for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
+        for ( wxObjectList::compatibility_iterator node = items.GetFirst(); node; node = node->GetNext() )
         {
             ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
             
@@ -644,9 +645,9 @@ void ctConfigItem::EvaluateDependencies()
         if (inContextCount > 0 && (enabledCount > 0) && !explicitlyEnabled)
 //        if (inContextCount > 0 && (disabledCount > 0) && !explicitlyEnabled)
         {
-            enabled = FALSE;
-            active = FALSE;
-            explicitlyDisabled = TRUE;
+            enabled = false;
+            active = false;
+            explicitlyDisabled = true;
         }
     }
 
@@ -659,7 +660,7 @@ void ctConfigItem::EvaluateDependencies()
         int enabledCount = 0;
         int inContextCount = 0;
 
-        for ( wxNode* node = items.GetFirst(); node; node = node->GetNext() )
+        for ( wxObjectList::compatibility_iterator node = items.GetFirst(); node; node = node->GetNext() )
         {
             ctConfigItem* otherItem = (ctConfigItem*) node->GetData();
             
@@ -674,22 +675,22 @@ void ctConfigItem::EvaluateDependencies()
         }
         if (inContextCount > 0 && enabledCount > 0)
         {
-            active = TRUE;
-            explicitlyEnabled = FALSE;
-            explicitlyDisabled = FALSE;
+            active = true;
+            explicitlyEnabled = false;
+            explicitlyDisabled = false;
         }
     }
 
     // Finally check a sort of dependency: whether our
     // context is active. If not, make this inactive.
     if (!IsInActiveContext())
-        active = FALSE;
+        active = false;
     else
     {        
         // If we didn't explicitly enable or disable it,
         // then we should make it active.
         if (!explicitlyEnabled && !explicitlyDisabled)
-            active = TRUE;
+            active = true;
     }
 
     SetActive(active);
@@ -765,7 +766,7 @@ void ctConfigItem::PropagateChange(wxList& considered)
         // TODO: what about string, integer? Can they have
         // dependencies?
         
-        for ( wxNode* node = GetDependents().GetFirst(); node; node = node->GetNext() )
+        for ( wxObjectList::compatibility_iterator node = GetDependents().GetFirst(); node; node = node->GetNext() )
         {
             ctConfigItem* child = (ctConfigItem*) node->GetData();
 
@@ -793,12 +794,12 @@ void ctConfigItem::PropagateRadioButton(wxList& considered)
         wxList list;
         StringToItems(GetDocument()->GetTopItem(), mutuallyExclusive, list);
 
-        for ( wxNode* node = list.GetFirst(); node; node = node->GetNext() )
+        for ( wxObjectList::compatibility_iterator node = list.GetFirst(); node; node = node->GetNext() )
         {
             ctConfigItem* child = (ctConfigItem*) node->GetData();
             if (child->IsEnabled() && child != this)
             {
-                child->Enable(FALSE);
+                child->Enable(false);
                 child->Sync();
 
                 if (!considered.Member(child))