+bool wxResourceSymbolTable::IdExists(int id)
+{
+ m_hashTable.BeginFind();
+
+ wxNode* node = m_hashTable.Next();
+ while (node)
+ {
+ if ( (((int) node->Data()) == id) )
+ return TRUE;
+
+ node = m_hashTable.Next();
+ }
+ return FALSE;
+}
+
+int wxResourceSymbolTable::FindHighestId()
+{
+ int highest = 0;
+
+ m_hashTable.BeginFind();
+
+ wxNode* node = m_hashTable.Next();
+ while (node)
+ {
+ int id = ((int) node->Data());
+ if (id > highest)
+ highest = id;
+
+ node = m_hashTable.Next();
+ }
+
+ // Make sure we don't clash with future standard wxWindows ids
+ if (highest <= wxID_HIGHEST)
+ highest = wxID_HIGHEST + 1;
+ return highest;
+}
+
+/*
+* A table of the standard identifiers
+*/
+
+struct wxStandardSymbolStruct
+{
+ char* m_name;
+ int m_id;
+};
+
+static wxStandardSymbolStruct sg_StandardSymbols[] =
+{
+ { "wxID_OK", wxID_OK },
+ { "wxID_CANCEL", wxID_CANCEL },
+ { "wxID_APPLY", wxID_APPLY },
+ { "wxID_HELP", wxID_HELP },
+ { "wxID_STATIC", wxID_STATIC },
+ { "wxID_YES", wxID_YES },
+ { "wxID_NO", wxID_NO },
+
+ { "wxID_OPEN", wxID_OPEN },
+ { "wxID_CLOSE", wxID_CLOSE },
+ { "wxID_NEW", wxID_NEW },
+ { "wxID_SAVE", wxID_SAVE },
+ { "wxID_SAVEAS", wxID_SAVEAS },
+ { "wxID_REVERT", wxID_REVERT },
+ { "wxID_EXIT", wxID_EXIT },
+ { "wxID_UNDO", wxID_UNDO },
+ { "wxID_REDO", wxID_REDO },
+ { "wxID_PRINT", wxID_PRINT },
+ { "wxID_PRINT_SETUP", wxID_PRINT_SETUP },
+ { "wxID_PREVIEW", wxID_PREVIEW },
+ { "wxID_ABOUT", wxID_ABOUT },
+ { "wxID_HELP_CONTENTS", wxID_HELP_CONTENTS },
+ { "wxID_HELP_COMMANDS", wxID_HELP_COMMANDS },
+ { "wxID_HELP_PROCEDURES", wxID_HELP_PROCEDURES },
+ { "wxID_HELP_CONTEXT", wxID_HELP_CONTEXT },
+
+ { "wxID_CUT", wxID_CUT },
+ { "wxID_COPY", wxID_COPY },
+ { "wxID_PASTE", wxID_PASTE },
+ { "wxID_CLEAR", wxID_CLEAR },
+ { "wxID_FIND", wxID_FIND },
+ { "wxID_DUPLICATE", wxID_DUPLICATE },
+
+ { "wxID_FILE1", wxID_FILE1 },
+ { "wxID_FILE2", wxID_FILE2 },
+ { "wxID_FILE3", wxID_FILE3 },
+ { "wxID_FILE4", wxID_FILE4 },
+ { "wxID_FILE5", wxID_FILE5 },
+ { "wxID_FILE6", wxID_FILE6 },
+ { "wxID_FILE7", wxID_FILE7 },
+ { "wxID_FILE8", wxID_FILE8 },
+ { "wxID_FILE9", wxID_FILE9 }
+
+};
+
+static int sg_StandardSymbolSize = (sizeof(sg_StandardSymbols)/sizeof(wxStandardSymbolStruct));
+
+void wxResourceSymbolTable::AddStandardSymbols()
+{
+ int i;
+ for (i = 0; i < sg_StandardSymbolSize; i++)
+ {
+ AddSymbol(sg_StandardSymbols[i].m_name, sg_StandardSymbols[i].m_id);
+ }
+}
+
+bool wxResourceSymbolTable::IsStandardSymbol(const wxString& symbol) const
+{
+ int i;
+ for (i = 0; i < sg_StandardSymbolSize; i++)
+ {
+ if (symbol == sg_StandardSymbols[i].m_name)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool wxResourceSymbolTable::FillComboBox(wxComboBox* comboBox)
+{
+ m_hashTable.BeginFind();
+
+ wxNode* node = m_hashTable.Next();
+ while (node)
+ {
+ const char* str = node->GetKeyString();
+
+ comboBox->Append(str);
+ node = m_hashTable.Next();
+ }
+ return TRUE;
+}
+