]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/deprecated/resource.cpp
repaired setting foreground colours for the standard controls
[wxWidgets.git] / contrib / src / deprecated / resource.cpp
index f1c718063a8527f9b486bd63fe8cb85bd225af7b..4c7f8a67c3b4045bb3cc4d7526167051a463e2d5 100644 (file)
 #include "wx/combobox.h"
 #endif
 
-#include "wx/validate.h"
+#include "wx/splitter.h"
+#include "wx/toolbar.h"
 
+#include "wx/validate.h"
 #include "wx/log.h"
+#include "wx/module.h"
 
 #include <ctype.h>
 #include <math.h>
 #include "wx/deprecated/resource.h"
 #include "wx/deprecated/wxexpr.h"
 
+#if !WXWIN_COMPATIBILITY_2_4
+static inline wxChar* copystring(const wxChar* s)
+    { return wxStrcpy(new wxChar[wxStrlen(s) + 1], s); }
+#endif
+
 // Forward (private) declarations
 bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db);
-wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel = FALSE);
+wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel = false);
 wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr);
 wxItemResource *wxResourceInterpretMenu(wxResourceTable& table, wxExpr *expr);
 wxItemResource *wxResourceInterpretMenuBar(wxResourceTable& table, wxExpr *expr);
@@ -111,7 +119,8 @@ int wxResourceStringPtr = 0;
 
 void wxInitializeResourceSystem()
 {
-    wxDefaultResourceTable = new wxResourceTable;
+    if (!wxDefaultResourceTable)
+        wxDefaultResourceTable = new wxResourceTable;
 }
 
 void wxCleanUpResourceSystem()
@@ -121,12 +130,21 @@ void wxCleanUpResourceSystem()
         delete[] wxResourceBuffer;
 }
 
-#if 0
-void wxLogWarning(char *msg)
+// Module to ensure the resource system data gets initialized
+// and cleaned up.
+
+class wxResourceModule: public wxModule
 {
-    wxMessageBox(msg, _("Warning"), wxOK);
-}
-#endif
+public:
+    wxResourceModule() : wxModule() {}
+    virtual bool OnInit() { wxInitializeResourceSystem(); return true; }
+    virtual void OnExit() { wxCleanUpResourceSystem();  }
+
+    DECLARE_DYNAMIC_CLASS(wxResourceModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxResourceModule, wxModule)
+
 
 IMPLEMENT_DYNAMIC_CLASS(wxItemResource, wxObject)
 IMPLEMENT_DYNAMIC_CLASS(wxResourceTable, wxHashTable)
@@ -146,13 +164,13 @@ wxItemResource::wxItemResource()
 
 wxItemResource::~wxItemResource()
 {
-    wxNode *node = m_children.First();
+    wxNode *node = m_children.GetFirst();
     while (node)
     {
-        wxItemResource *item = (wxItemResource *)node->Data();
+        wxItemResource *item = (wxItemResource *)node->GetData();
         delete item;
         delete node;
-        node = m_children.First();
+        node = m_children.GetFirst();
     }
 }
 
@@ -197,11 +215,10 @@ bool wxResourceTable::DeleteResource(const wxString& name)
         // See if any resource has this as its child; if so, delete from
         // parent's child list.
         BeginFind();
-        wxNode *node = (wxNode *) NULL;
-        node = Next();
+        wxHashTable::Node *node = Next();
         while (node != NULL)
         {
-            wxItemResource *parent = (wxItemResource *)node->Data();
+            wxItemResource *parent = (wxItemResource *)node->GetData();
             if (parent->GetChildren().Member(item))
             {
                 parent->GetChildren().DeleteObject(item);
@@ -211,10 +228,10 @@ bool wxResourceTable::DeleteResource(const wxString& name)
         }
 
         delete item;
-        return TRUE;
+        return true;
     }
     else
-        return FALSE;
+        return false;
 }
 
 bool wxResourceTable::ParseResourceFile( wxInputStream *is )
@@ -222,7 +239,7 @@ bool wxResourceTable::ParseResourceFile( wxInputStream *is )
     wxExprDatabase db;
     int len = is->GetSize() ;
 
-    bool eof = FALSE;
+    bool eof = false;
     while ( is->TellI() + 10 < len) // it's a hack because the streams dont support EOF
     {
         wxResourceReadOneResource(is, db, &eof, this) ;
@@ -236,8 +253,8 @@ bool wxResourceTable::ParseResourceFile(const wxString& filename)
 
     FILE *fd = wxFopen(filename, wxT("r"));
     if (!fd)
-        return FALSE;
-    bool eof = FALSE;
+        return false;
+    bool eof = false;
     while (wxResourceReadOneResource(fd, db, &eof, this) && !eof)
     {
         // Loop
@@ -252,7 +269,7 @@ bool wxResourceTable::ParseResourceData(const wxString& data)
     if (!db.ReadFromString(data))
     {
         wxLogWarning(_("Ill-formed resource file syntax."));
-        return FALSE;
+        return false;
     }
 
     return wxResourceInterpretResources(*this, db);
@@ -269,7 +286,7 @@ bool wxResourceTable::RegisterResourceBitmapData(const wxString& name, char bits
     item->SetValue2((long)width);
     item->SetValue3((long)height);
     AddResource(item);
-    return TRUE;
+    return true;
 }
 
 bool wxResourceTable::RegisterResourceBitmapData(const wxString& name, char **data)
@@ -281,22 +298,22 @@ bool wxResourceTable::RegisterResourceBitmapData(const wxString& name, char **da
     item->SetName(name);
     item->SetValue1((long)data);
     AddResource(item);
-    return TRUE;
+    return true;
 }
 
 bool wxResourceTable::SaveResource(const wxString& WXUNUSED(filename))
 {
-    return FALSE;
+    return false;
 }
 
 void wxResourceTable::ClearTable()
 {
     BeginFind();
-    wxNode *node = Next();
+    wxHashTable::Node *node = Next();
     while (node)
     {
-        wxNode *next = Next();
-        wxItemResource *item = (wxItemResource *)node->Data();
+        wxHashTable::Node *next = Next();
+        wxItemResource *item = (wxItemResource *)node->GetData();
         delete item;
         delete node;
         node = next;
@@ -426,7 +443,7 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
             ((wxScrollBar *)control)->SetViewLength((int)(long)childResource->GetValue5());
         */
         ((wxScrollBar *)control)->SetScrollbar((int)childResource->GetValue1(),(int)childResource->GetValue2(),
-            (int)childResource->GetValue3(),(int)(long)childResource->GetValue5(),FALSE);
+            (int)childResource->GetValue3(),(int)(long)childResource->GetValue5(),false);
 
     }
 #endif
@@ -446,17 +463,17 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
         wxStringList& stringList = childResource->GetStringValues();
         wxString *strings = (wxString *) NULL;
         int noStrings = 0;
-        if (stringList.Number() > 0)
+        if (stringList.GetCount() > 0)
         {
-            noStrings = stringList.Number();
+            noStrings = stringList.GetCount();
             strings = new wxString[noStrings];
-            wxNode *node = stringList.First();
+            wxStringListNode *node = stringList.GetFirst();
             int i = 0;
             while (node)
             {
-                strings[i] = (wxChar *)node->Data();
+                strings[i] = (wxChar *)node->GetData();
                 i ++;
-                node = node->Next();
+                node = node->GetNext();
             }
         }
         control = new wxListBox(parent, id, pos, size,
@@ -470,17 +487,17 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
         wxStringList& stringList = childResource->GetStringValues();
         wxString *strings = (wxString *) NULL;
         int noStrings = 0;
-        if (stringList.Number() > 0)
+        if (stringList.GetCount() > 0)
         {
-            noStrings = stringList.Number();
+            noStrings = stringList.GetCount();
             strings = new wxString[noStrings];
-            wxNode *node = stringList.First();
+            wxStringListNode *node = stringList.GetFirst();
             int i = 0;
             while (node)
             {
-                strings[i] = (wxChar *)node->Data();
+                strings[i] = (wxChar *)node->GetData();
                 i ++;
-                node = node->Next();
+                node = node->GetNext();
             }
         }
         control = new wxChoice(parent, id, pos, size,
@@ -495,17 +512,17 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
         wxStringList& stringList = childResource->GetStringValues();
         wxString *strings = (wxString *) NULL;
         int noStrings = 0;
-        if (stringList.Number() > 0)
+        if (stringList.GetCount() > 0)
         {
-            noStrings = stringList.Number();
+            noStrings = stringList.GetCount();
             strings = new wxString[noStrings];
-            wxNode *node = stringList.First();
+            wxStringListNode *node = stringList.GetFirst();
             int i = 0;
             while (node)
             {
-                strings[i] = (wxChar *)node->Data();
+                strings[i] = (wxChar *)node->GetData();
                 i ++;
-                node = node->Next();
+                node = node->GetNext();
             }
         }
         control = new wxComboBox(parent, id, childResource->GetValue4(), pos, size,
@@ -520,17 +537,17 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
         wxStringList& stringList = childResource->GetStringValues();
         wxString *strings = (wxString *) NULL;
         int noStrings = 0;
-        if (stringList.Number() > 0)
+        if (stringList.GetCount() > 0)
         {
-            noStrings = stringList.Number();
+            noStrings = stringList.GetCount();
             strings = new wxString[noStrings];
-            wxNode *node = stringList.First();
+            wxStringListNode *node = stringList.GetFirst();
             int i = 0;
             while (node)
             {
-                strings[i] = (wxChar *)node->Data();
+                strings[i] = (wxChar *)node->GetData();
                 i ++;
-                node = node->Next();
+                node = node->GetNext();
             }
         }
         control = new wxRadioBox(parent, (wxWindowID) id, wxString(childResource->GetTitle()), pos, size,
@@ -555,7 +572,7 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
             // Force the layout algorithm since the size changes the layout
             if (control->IsKindOf(CLASSINFO(wxRadioBox)))
             {
-                control->SetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT);
+                control->SetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT);
             }
 #endif
         }
@@ -569,17 +586,17 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
 
 bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db)
 {
-    wxNode *node = db.First();
+    wxNode *node = db.GetFirst();
     while (node)
     {
-        wxExpr *clause = (wxExpr *)node->Data();
+        wxExpr *clause = (wxExpr *)node->GetData();
         wxString functor(clause->Functor());
 
         wxItemResource *item = (wxItemResource *) NULL;
         if (functor == wxT("dialog"))
             item = wxResourceInterpretDialog(table, clause);
         else if (functor == wxT("panel"))
-            item = wxResourceInterpretDialog(table, clause, TRUE);
+            item = wxResourceInterpretDialog(table, clause, true);
         else if (functor == wxT("menubar"))
             item = wxResourceInterpretMenuBar(table, clause);
         else if (functor == wxT("menu"))
@@ -598,9 +615,9 @@ bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db)
                 table.DeleteResource(item->GetName());
             table.AddResource(item);
         }
-        node = node->Next();
+        node = node->GetNext();
     }
-    return TRUE;
+    return true;
 }
 
 static const wxChar *g_ValidControlClasses[] =
@@ -632,9 +649,9 @@ static bool wxIsValidControlClass(const wxString& c)
     for ( size_t i = 0; i < WXSIZEOF(g_ValidControlClasses); i++ )
     {
         if ( c == g_ValidControlClasses[i] )
-            return TRUE;
+            return true;
     }
-    return FALSE;
+    return false;
 }
 
 wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel)
@@ -655,7 +672,7 @@ wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr,
     if (isPanel)
         windowStyle = 0;
 
-    int x = 0; int y = 0; int width = -1; int height = -1;
+    int x = 0; int y = 0; int width = wxDefaultCoord; int height = wxDefaultCoord;
     int isModal = 0;
     wxExpr *labelFontExpr = (wxExpr *) NULL;
     wxExpr *buttonFontExpr = (wxExpr *) NULL;
@@ -695,17 +712,23 @@ wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr,
     }
     dialogItem->SetStyle(windowStyle);
     dialogItem->SetValue1(isModal);
-    if (windowStyle & wxDIALOG_MODAL) // Uses style in wxWin 2
-        dialogItem->SetValue1(TRUE);
+#ifdef __VMS
+#pragma message disable CODCAUUNR
+#endif
+   if (windowStyle & wxDIALOG_MODAL) // Uses style in wxWin 2
+        dialogItem->SetValue1(true);
+#ifdef __VMS
+#pragma message enable CODCAUUNR
+#endif
 
     dialogItem->SetName(name);
     dialogItem->SetTitle(title);
     dialogItem->SetSize(x, y, width, height);
 
     // Check for wxWin 1.68-style specifications
-    if (style.Find(wxT("VERTICAL_LABEL")) != -1)
+    if (style.Find(wxT("VERTICAL_LABEL")) != wxNOT_FOUND)
         dialogItem->SetResourceStyle(dialogItem->GetResourceStyle() | wxRESOURCE_VERTICAL_LABEL);
-    else if (style.Find(wxT("HORIZONTAL_LABEL")) != -1)
+    else if (style.Find(wxT("HORIZONTAL_LABEL")) != wxNOT_FOUND)
         dialogItem->SetResourceStyle(dialogItem->GetResourceStyle() | wxRESOURCE_HORIZONTAL_LABEL);
 
     if (backColourHex != wxT(""))
@@ -785,7 +808,7 @@ wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr)
     wxString name;
     int id = 0;
     long windowStyle = 0;
-    int x = 0; int y = 0; int width = -1; int height = -1;
+    int x = 0; int y = 0; int width = wxDefaultCoord; int height = wxDefaultCoord;
     int count = 0;
 
     wxExpr *expr1 = expr->Nth(0);
@@ -870,9 +893,9 @@ wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr)
     controlItem->SetId(id);
 
     // Check for wxWin 1.68-style specifications
-    if (style.Find(wxT("VERTICAL_LABEL")) != -1)
+    if (style.Find(wxT("VERTICAL_LABEL")) != wxNOT_FOUND)
         controlItem->SetResourceStyle(controlItem->GetResourceStyle() | wxRESOURCE_VERTICAL_LABEL);
-    else if (style.Find(wxT("HORIZONTAL_LABEL")) != -1)
+    else if (style.Find(wxT("HORIZONTAL_LABEL")) != wxNOT_FOUND)
         controlItem->SetResourceStyle(controlItem->GetResourceStyle() | wxRESOURCE_HORIZONTAL_LABEL);
 
     if (controlType == wxT("wxButton"))
@@ -1499,9 +1522,6 @@ wxFont wxResourceInterpretFontSpec(wxExpr *expr)
                                             (underline != 0), faceName);
 }
 
-// Separate file for the remainder of this, for BC++/Win16
-
-#if !((defined(__BORLANDC__) || defined(__SC__)) && defined(__WIN16__))
 /*
 * (Re)allocate buffer for reading in from resource file
 */
@@ -1512,7 +1532,7 @@ bool wxReallocateResourceBuffer()
     {
         wxResourceBufferSize = 1000;
         wxResourceBuffer = new char[wxResourceBufferSize];
-        return TRUE;
+        return true;
     }
     if (wxResourceBuffer)
     {
@@ -1523,12 +1543,12 @@ bool wxReallocateResourceBuffer()
         wxResourceBuffer = tmp;
         wxResourceBufferSize = newSize;
     }
-    return TRUE;
+    return true;
 }
 
 static bool wxEatWhiteSpace(FILE *fd)
 {
-    int ch = 0;
+    int ch;
 
     while ((ch = getc(fd)) != EOF)
     {
@@ -1546,7 +1566,7 @@ static bool wxEatWhiteSpace(FILE *fd)
                 if (ch == EOF)
                 {
                     ungetc(prev_ch, fd);
-                    return TRUE;
+                    return true;
                 }
 
                 if (ch == '*')
@@ -1570,17 +1590,17 @@ static bool wxEatWhiteSpace(FILE *fd)
                 {
                     ungetc(prev_ch, fd);
                     ungetc(ch, fd);
-                    return TRUE;
+                    return true;
                 }
             }
             break;
         default:
             ungetc(ch, fd);
-            return TRUE;
+            return true;
 
         }
     }
-    return FALSE;
+    return false;
 }
 static bool wxEatWhiteSpace(wxInputStream *is)
 {
@@ -1588,7 +1608,7 @@ static bool wxEatWhiteSpace(wxInputStream *is)
     if ((ch != ' ') && (ch != '/') && (ch != ' ') && (ch != 10) && (ch != 13) && (ch != 9))
     {
         is->Ungetch(ch);
-        return TRUE;
+        return true;
     }
 
     // Eat whitespace
@@ -1600,17 +1620,17 @@ static bool wxEatWhiteSpace(wxInputStream *is)
         ch = is->GetC();
         if (ch == '*')
         {
-            bool finished = FALSE;
+            bool finished = false;
             while (!finished)
             {
                 ch = is->GetC();
                 if (ch == EOF)
-                    return FALSE;
+                    return false;
                 if (ch == '*')
                 {
                     int newCh = is->GetC();
                     if (newCh == '/')
-                        finished = TRUE;
+                        finished = true;
                     else
                     {
                         is->Ungetch(ch);
@@ -1619,7 +1639,7 @@ static bool wxEatWhiteSpace(wxInputStream *is)
             }
         }
         else // False alarm
-            return FALSE;
+            return false;
     }
     else
         is->Ungetch(ch);
@@ -1645,7 +1665,7 @@ bool wxGetResourceToken(FILE *fd)
             if (ch == EOF)
             {
                 wxResourceBuffer[wxResourceBufferCount] = 0;
-                return FALSE;
+                return false;
             }
             // Escaped characters
             else if (ch == '\\')
@@ -1684,9 +1704,9 @@ bool wxGetResourceToken(FILE *fd)
         }
         wxResourceBuffer[wxResourceBufferCount] = 0;
         if (ch == EOF)
-            return FALSE;
+            return false;
     }
-    return TRUE;
+    return true;
 }
 
 bool wxGetResourceToken(wxInputStream *is)
@@ -1708,7 +1728,7 @@ bool wxGetResourceToken(wxInputStream *is)
             if (ch == EOF)
             {
                 wxResourceBuffer[wxResourceBufferCount] = 0;
-                return FALSE;
+                return false;
             }
             // Escaped characters
             else if (ch == '\\')
@@ -1749,9 +1769,9 @@ bool wxGetResourceToken(wxInputStream *is)
         }
         wxResourceBuffer[wxResourceBufferCount] = 0;
         if (ch == EOF)
-            return FALSE;
+            return false;
     }
-    return TRUE;
+    return true;
 }
 
 /*
@@ -1768,8 +1788,8 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour
     // static or #define
     if (!wxGetResourceToken(fd))
     {
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "#define") == 0)
@@ -1788,12 +1808,12 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour
             wxLogWarning(_("#define %s must be an integer."), name);
             delete[] name;
             delete[] value;
-            return FALSE;
+            return false;
         }
         delete[] name;
         delete[] value;
 
-        return TRUE;
+        return true;
     }
     else if (strcmp(wxResourceBuffer, "#include") == 0)
     {
@@ -1810,7 +1830,7 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour
             wxLogWarning(_("Could not find resource include file %s."), actualName);
         }
         delete[] name;
-        return TRUE;
+        return true;
     }
     else if (strcmp(wxResourceBuffer, "static") != 0)
     {
@@ -1819,35 +1839,35 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour
         wxStrncat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), 30);
         wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
         wxLogWarning(buf);
-        return FALSE;
+        return false;
     }
 
     // char
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "char") != 0)
     {
         wxLogWarning(_("Expected 'char' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
 
     // *name
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (wxResourceBuffer[0] != '*')
     {
         wxLogWarning(_("Expected '*' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
     wxChar nameBuf[100];
     wxMB2WX(nameBuf, wxResourceBuffer+1, 99);
@@ -1857,37 +1877,37 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "=") != 0)
     {
         wxLogWarning(_("Expected '=' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
 
     // String
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
     else
     {
         if (!db.ReadPrologFromString(wxResourceBuffer))
         {
             wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf);
-            return FALSE;
+            return false;
         }
     }
     // Semicolon
     if (!wxGetResourceToken(fd))
     {
-        *eof = TRUE;
+        *eof = true;
     }
-    return TRUE;
+    return true;
 }
 
 bool wxResourceReadOneResource(wxInputStream *fd, wxExprDatabase& db, bool *eof, wxResourceTable *table)
@@ -1898,8 +1918,8 @@ bool wxResourceReadOneResource(wxInputStream *fd, wxExprDatabase& db, bool *eof,
     // static or #define
     if (!wxGetResourceToken(fd))
     {
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "#define") == 0)
@@ -1918,12 +1938,12 @@ bool wxResourceReadOneResource(wxInputStream *fd, wxExprDatabase& db, bool *eof,
             wxLogWarning(_("#define %s must be an integer."), name);
             delete[] name;
             delete[] value;
-            return FALSE;
+            return false;
         }
         delete[] name;
         delete[] value;
 
-        return TRUE;
+        return true;
     }
     else if (strcmp(wxResourceBuffer, "#include") == 0)
     {
@@ -1940,7 +1960,7 @@ bool wxResourceReadOneResource(wxInputStream *fd, wxExprDatabase& db, bool *eof,
             wxLogWarning(_("Could not find resource include file %s."), actualName);
         }
         delete[] name;
-        return TRUE;
+        return true;
     }
     else if (strcmp(wxResourceBuffer, "static") != 0)
     {
@@ -1949,35 +1969,35 @@ bool wxResourceReadOneResource(wxInputStream *fd, wxExprDatabase& db, bool *eof,
         wxStrncat(buf, wxConvLibc.cMB2WX(wxResourceBuffer), 30);
         wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
         wxLogWarning(buf);
-        return FALSE;
+        return false;
     }
 
     // char
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "char") != 0)
     {
         wxLogWarning(_("Expected 'char' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
 
     // *name
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (wxResourceBuffer[0] != '*')
     {
         wxLogWarning(_("Expected '*' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
     char nameBuf[100];
     strncpy(nameBuf, wxResourceBuffer+1, 99);
@@ -1986,37 +2006,37 @@ bool wxResourceReadOneResource(wxInputStream *fd, wxExprDatabase& db, bool *eof,
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "=") != 0)
     {
         wxLogWarning(_("Expected '=' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
 
     // String
     if (!wxGetResourceToken(fd))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
     else
     {
         if (!db.ReadPrologFromString(wxResourceBuffer))
         {
             wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf);
-            return FALSE;
+            return false;
         }
     }
     // Semicolon
     if (!wxGetResourceToken(fd))
     {
-        *eof = TRUE;
+        *eof = true;
     }
-    return TRUE;
+    return true;
 }
 
 /*
@@ -2333,13 +2353,13 @@ long wxParseWindowStyle(const wxString& bitListString)
     word = wxResourceParseWord(WXSTRINGCAST bitListString, &i);
     while (word != NULL)
     {
-        bool found = FALSE;
+        bool found = false;
         int j;
         for (j = 0; j < wxResourceBitListCount; j++)
             if (wxStrcmp(wxResourceBitListTable[j].word, word) == 0)
             {
                 bitList |= wxResourceBitListTable[j].bits;
-                found = TRUE;
+                found = true;
                 break;
             }
             if (!found)
@@ -2353,7 +2373,7 @@ long wxParseWindowStyle(const wxString& bitListString)
 }
 
 /*
-* Load a bitmap from a wxWindows resource, choosing an optimum
+* Load a bitmap from a wxWidgets resource, choosing an optimum
 * depth and appropriate type.
 */
 
@@ -2376,10 +2396,10 @@ wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table
         wxItemResource *optResource = (wxItemResource *) NULL;
 
         // Try to find optimum bitmap for this platform/colour depth
-        wxNode *node = item->GetChildren().First();
+        wxNode *node = item->GetChildren().GetFirst();
         while (node)
         {
-            wxItemResource *child = (wxItemResource *)node->Data();
+            wxItemResource *child = (wxItemResource *)node->GetData();
             int platform = (int)child->GetValue2();
             int noColours = (int)child->GetValue3();
             /*
@@ -2450,7 +2470,7 @@ wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table
             default:
                 break;
             }
-            node = node->Next();
+            node = node->GetNext();
         }
         // If no matching resource, fail.
         if (!optResource)
@@ -2507,7 +2527,7 @@ wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table
 }
 
 /*
-* Load an icon from a wxWindows resource, choosing an optimum
+* Load an icon from a wxWidgets resource, choosing an optimum
 * depth and appropriate type.
 */
 
@@ -2530,10 +2550,10 @@ wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table)
         wxItemResource *optResource = (wxItemResource *) NULL;
 
         // Try to find optimum icon for this platform/colour depth
-        wxNode *node = item->GetChildren().First();
+        wxNode *node = item->GetChildren().GetFirst();
         while (node)
         {
-            wxItemResource *child = (wxItemResource *)node->Data();
+            wxItemResource *child = (wxItemResource *)node->GetData();
             int platform = (int)child->GetValue2();
             int noColours = (int)child->GetValue3();
             /*
@@ -2604,7 +2624,7 @@ wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table)
             default:
                 break;
             }
-            node = node->Next();
+            node = node->GetNext();
         }
         // If no matching resource, fail.
         if (!optResource)
@@ -2632,7 +2652,7 @@ wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table)
             }
         case wxBITMAP_TYPE_XPM_DATA:
             {
-                // *** XPM ICON NOT YET IMPLEMENTED IN WXWINDOWS ***
+                // *** XPM ICON NOT YET IMPLEMENTED IN wxWidgets ***
                 /*
                 wxItemResource *item = table->FindResource(name);
                 if (!item)
@@ -2653,7 +2673,7 @@ wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table)
                 wxLogWarning(_("Icon resource specification %s not found."), (const wxChar*) resource);
                 break;
 #else
-                return wxIcon(name, bitmapType);
+                return wxIcon(name, (wxBitmapType) bitmapType);
 #endif
             }
         }
@@ -2671,13 +2691,13 @@ wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table)
 wxMenu *wxResourceCreateMenu(wxItemResource *item)
 {
     wxMenu *menu = new wxMenu;
-    wxNode *node = item->GetChildren().First();
+    wxNode *node = item->GetChildren().GetFirst();
     while (node)
     {
-        wxItemResource *child = (wxItemResource *)node->Data();
+        wxItemResource *child = (wxItemResource *)node->GetData();
         if ((child->GetType() != wxT("")) && (child->GetType() == wxT("wxMenuSeparator")))
             menu->AppendSeparator();
-        else if (child->GetChildren().Number() > 0)
+        else if (child->GetChildren().GetCount() > 0)
         {
             wxMenu *subMenu = wxResourceCreateMenu(child);
             if (subMenu)
@@ -2687,7 +2707,7 @@ wxMenu *wxResourceCreateMenu(wxItemResource *item)
         {
             menu->Append((int)child->GetValue1(), child->GetTitle(), child->GetValue4(), (child->GetValue2() != 0));
         }
-        node = node->Next();
+        node = node->GetNext();
     }
     return menu;
 }
@@ -2702,14 +2722,14 @@ wxMenuBar *wxResourceCreateMenuBar(const wxString& resource, wxResourceTable *ta
     {
         if (!menuBar)
             menuBar = new wxMenuBar;
-        wxNode *node = menuResource->GetChildren().First();
+        wxNode *node = menuResource->GetChildren().GetFirst();
         while (node)
         {
-            wxItemResource *child = (wxItemResource *)node->Data();
+            wxItemResource *child = (wxItemResource *)node->GetData();
             wxMenu *menu = wxResourceCreateMenu(child);
             if (menu)
                 menuBar->Append(menu, child->GetTitle());
-            node = node->Next();
+            node = node->GetNext();
         }
         return menuBar;
     }
@@ -2791,7 +2811,7 @@ bool wxResourceAddIdentifier(const wxString& name, int value, wxResourceTable *t
         table = wxDefaultResourceTable;
 
     table->identifiers.Put(name, (wxObject *)(long)value);
-    return TRUE;
+    return true;
 }
 
 int wxResourceGetIdentifier(const wxString& name, wxResourceTable *table)
@@ -2814,7 +2834,7 @@ bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table)
     FILE *fd = wxFopen(f, wxT("r"));
     if (!fd)
     {
-        return FALSE;
+        return false;
     }
     while (wxGetResourceToken(fd))
     {
@@ -2834,7 +2854,7 @@ bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table)
         }
     }
     fclose(fd);
-    return TRUE;
+    return true;
 }
 
 /*
@@ -2861,7 +2881,7 @@ static int ungetc_string()
 
 bool wxEatWhiteSpaceString(char *s)
 {
-    int ch = 0;
+    int ch;
 
     while ((ch = getc_string(s)) != EOF)
     {
@@ -2874,18 +2894,17 @@ bool wxEatWhiteSpaceString(char *s)
             break;
         case '/':
             {
-                int prev_ch = ch;
                 ch = getc_string(s);
                 if (ch == EOF)
                 {
                     ungetc_string();
-                    return TRUE;
+                    return true;
                 }
 
                 if (ch == '*')
                 {
                     // Eat C comment
-                    prev_ch = 0;
+                    int prev_ch = 0;
                     while ((ch = getc_string(s)) != EOF)
                     {
                         if (ch == '/' && prev_ch == '*')
@@ -2897,17 +2916,17 @@ bool wxEatWhiteSpaceString(char *s)
                 {
                     ungetc_string();
                     ungetc_string();
-                    return TRUE;
+                    return true;
                 }
             }
             break;
         default:
             ungetc_string();
-            return TRUE;
+            return true;
 
         }
     }
-    return FALSE;
+    return false;
 }
 
 bool wxGetResourceTokenString(char *s)
@@ -2929,7 +2948,7 @@ bool wxGetResourceTokenString(char *s)
             if (ch == EOF)
             {
                 wxResourceBuffer[wxResourceBufferCount] = 0;
-                return FALSE;
+                return false;
             }
             // Escaped characters
             else if (ch == '\\')
@@ -2968,9 +2987,9 @@ bool wxGetResourceTokenString(char *s)
         }
         wxResourceBuffer[wxResourceBufferCount] = 0;
         if (ch == EOF)
-            return FALSE;
+            return false;
     }
-    return TRUE;
+    return true;
 }
 
 /*
@@ -2987,8 +3006,8 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR
     // static or #define
     if (!wxGetResourceTokenString(s))
     {
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "#define") == 0)
@@ -3007,12 +3026,12 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR
             wxLogWarning(_("#define %s must be an integer."), name);
             delete[] name;
             delete[] value;
-            return FALSE;
+            return false;
         }
         delete[] name;
         delete[] value;
 
-        return TRUE;
+        return true;
     }
     /*
     else if (strcmp(wxResourceBuffer, "#include") == 0)
@@ -3032,7 +3051,7 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR
     wxLogWarning(buf);
     }
     delete[] name;
-    return TRUE;
+    return true;
     }
     */
     else if (strcmp(wxResourceBuffer, "static") != 0)
@@ -3042,35 +3061,35 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR
         wxStrncat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), 30);
         wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource."));
         wxLogWarning(buf);
-        return FALSE;
+        return false;
     }
 
     // char
     if (!wxGetResourceTokenString(s))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "char") != 0)
     {
         wxLogWarning(_("Expected 'char' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
 
     // *name
     if (!wxGetResourceTokenString(s))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (wxResourceBuffer[0] != '*')
     {
         wxLogWarning(_("Expected '*' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
     wxChar nameBuf[100];
     wxMB2WX(nameBuf, wxResourceBuffer+1, 99);
@@ -3080,40 +3099,40 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR
     if (!wxGetResourceTokenString(s))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
 
     if (strcmp(wxResourceBuffer, "=") != 0)
     {
         wxLogWarning(_("Expected '=' whilst parsing resource."));
-        return FALSE;
+        return false;
     }
 
     // String
     if (!wxGetResourceTokenString(s))
     {
         wxLogWarning(_("Unexpected end of file whilst parsing resource."));
-        *eof = TRUE;
-        return FALSE;
+        *eof = true;
+        return false;
     }
     else
     {
         if (!db.ReadPrologFromString(wxResourceBuffer))
         {
             wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf);
-            return FALSE;
+            return false;
         }
     }
     // Semicolon
     if (!wxGetResourceTokenString(s))
     {
-        *eof = TRUE;
+        *eof = true;
     }
-    return TRUE;
+    return true;
 }
 
-bool wxResourceParseString(const wxString& s, wxResourceTable *table)
+bool wxResourceParseString(const wxString& s, wxResourceTable *WXUNUSED(table))
 {
 #if wxUSE_UNICODE
     return wxResourceParseString( (char*)s.mb_str().data() );
@@ -3128,7 +3147,7 @@ bool wxResourceParseString(char *s, wxResourceTable *table)
         table = wxDefaultResourceTable;
 
     if (!s)
-        return FALSE;
+        return false;
 
     // Turn backslashes into spaces
     if (s)
@@ -3146,7 +3165,7 @@ bool wxResourceParseString(char *s, wxResourceTable *table)
     wxExprDatabase db;
     wxResourceStringPtr = 0;
 
-    bool eof = FALSE;
+    bool eof = false;
     while (wxResourceReadOneResourceString(s, db, &eof, table) && !eof)
     {
         // Loop
@@ -3158,7 +3177,7 @@ bool wxResourceParseString(char *s, wxResourceTable *table)
 * resource loading facility
 */
 
-bool wxWindowBase::LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table)
+bool wxLoadFromResource(wxWindow* thisWindow, wxWindow *parent, const wxString& resourceName, const wxResourceTable *table)
 {
     if (!table)
         table = wxDefaultResourceTable;
@@ -3167,7 +3186,7 @@ bool wxWindowBase::LoadFromResource(wxWindow *parent, const wxString& resourceNa
     //  if (!resource || (resource->GetType() != wxTYPE_DIALOG_BOX))
     if (!resource || (resource->GetType() == wxT("")) ||
         ! ((resource->GetType() == wxT("wxDialog")) || (resource->GetType() == wxT("wxPanel"))))
-        return FALSE;
+        return false;
 
     wxString title(resource->GetTitle());
     long theWindowStyle = resource->GetStyle();
@@ -3179,29 +3198,29 @@ bool wxWindowBase::LoadFromResource(wxWindow *parent, const wxString& resourceNa
     wxString name = resource->GetName();
 
     // this is used for loading wxWizard pages from WXR
-    if ( parent != this )
+    if ( parent != thisWindow )
     {
-        if (IsKindOf(CLASSINFO(wxDialog)))
+        if (thisWindow->IsKindOf(CLASSINFO(wxDialog)))
         {
-            wxDialog *dialogBox = (wxDialog *)this;
+            wxDialog *dialogBox = (wxDialog *)thisWindow;
             long modalStyle = isModal ? wxDIALOG_MODAL : 0;
-            if (!dialogBox->Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), theWindowStyle|modalStyle, name))
-                return FALSE;
+            if (!dialogBox->Create(parent, wxID_ANY, title, wxPoint(x, y), wxSize(width, height), theWindowStyle|modalStyle, name))
+                return false;
 
             // Only reset the client size if we know we're not going to do it again below.
             if ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) == 0)
                 dialogBox->SetClientSize(width, height);
         }
-        else if (IsKindOf(CLASSINFO(wxPanel)))
+        else if (thisWindow->IsKindOf(CLASSINFO(wxPanel)))
         {
-            wxPanel* panel = (wxPanel *)this;
-            if (!panel->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle | wxTAB_TRAVERSAL, name))
-                return FALSE;
+            wxPanel* panel = (wxPanel *)thisWindow;
+            if (!panel->Create(parent, wxID_ANY, wxPoint(x, y), wxSize(width, height), theWindowStyle | wxTAB_TRAVERSAL, name))
+                return false;
         }
         else
         {
-            if (!((wxWindow *)this)->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name))
-                return FALSE;
+            if (!((wxWindow *)thisWindow)->Create(parent, wxID_ANY, wxPoint(x, y), wxSize(width, height), theWindowStyle, name))
+                return false;
         }
     }
 
@@ -3213,53 +3232,51 @@ bool wxWindowBase::LoadFromResource(wxWindow *parent, const wxString& resourceNa
     else
     {
         if (resource->GetFont().Ok())
-            SetFont(resource->GetFont());
+            thisWindow->SetFont(resource->GetFont());
         if (resource->GetBackgroundColour().Ok())
-            SetBackgroundColour(resource->GetBackgroundColour());
+            thisWindow->SetBackgroundColour(resource->GetBackgroundColour());
     }
 
     // Should have some kind of font at this point
-    if (!GetFont().Ok())
-        SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
-    if (!GetBackgroundColour().Ok())
-        SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
+    if (!thisWindow->GetFont().Ok())
+        thisWindow->SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+    if (!thisWindow->GetBackgroundColour().Ok())
+        thisWindow->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
 
     // Only when we've created the window and set the font can we set the correct size,
     // if based on dialog units.
     if ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0)
     {
-        wxSize sz = ConvertDialogToPixels(wxSize(width, height));
-        SetClientSize(sz.x, sz.y);
+        wxSize sz = thisWindow->ConvertDialogToPixels(wxSize(width, height));
+        thisWindow->SetClientSize(sz.x, sz.y);
 
-        wxPoint pt = ConvertDialogToPixels(wxPoint(x, y));
-        Move(pt.x, pt.y);
+        wxPoint pt = thisWindow->ConvertDialogToPixels(wxPoint(x, y));
+        thisWindow->Move(pt.x, pt.y);
     }
 
     // Now create children
-    wxNode *node = resource->GetChildren().First();
+    wxNode *node = resource->GetChildren().GetFirst();
     while (node)
     {
-        wxItemResource *childResource = (wxItemResource *)node->Data();
+        wxItemResource *childResource = (wxItemResource *)node->GetData();
 
-        (void) CreateItem(childResource, resource, table);
+        (void) wxCreateItem(thisWindow, childResource, resource, table);
 
-        node = node->Next();
+        node = node->GetNext();
     }
-    return TRUE;
+    return true;
 }
 
-wxControl *wxWindowBase::CreateItem(const wxItemResource *resource, const wxItemResource* parentResource, const wxResourceTable *table)
+wxControl *wxCreateItem(wxWindow* thisWindow, const wxItemResource *resource, const wxItemResource* parentResource, const wxResourceTable *table)
 {
     if (!table)
         table = wxDefaultResourceTable;
-    return table->CreateItem((wxWindow *)this, resource, parentResource);
+    return table->CreateItem(thisWindow, resource, parentResource);
 }
 
 #ifdef __VISUALC__
 #pragma warning(default:4706)   // assignment within conditional expression
 #endif // VC++
 
-#endif
-// BC++/Win16
-
 #endif // wxUSE_WX_RESOURCES
+