X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d44f866a666b0705603a72dd489a60dd58d42164..0544bc0aab888b4e064de10e451a4fa94ba0f33a:/src/common/resource.cpp?ds=sidebyside diff --git a/src/common/resource.cpp b/src/common/resource.cpp index 2a8430f6b5..95c3840d98 100644 --- a/src/common/resource.cpp +++ b/src/common/resource.cpp @@ -39,23 +39,21 @@ #include "wx/button.h" #include "wx/bmpbuttn.h" #include "wx/radiobox.h" -#include "wx/radiobut.h" #include "wx/listbox.h" #include "wx/choice.h" #include "wx/checkbox.h" #include "wx/settings.h" #include "wx/slider.h" +#include "wx/icon.h" #include "wx/statbox.h" #include "wx/statbmp.h" -#if wxUSE_GAUGE #include "wx/gauge.h" -#endif #include "wx/textctrl.h" #include "wx/msgdlg.h" #include "wx/intl.h" #endif -#if wxUSE_RADIOBUTTON +#if wxUSE_RADIOBTN #include "wx/radiobut.h" #endif @@ -372,7 +370,7 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c ((wxGauge *)control)->SetValue((int)childResource->GetValue1()); } #endif -#if wxUSE_RADIOBUTTON +#if wxUSE_RADIOBTN else if (itemType == wxString(_T("wxRadioButton"))) { control = new wxRadioButton(parent, id, childResource->GetTitle(), // (int)childResource->GetValue1(), @@ -651,6 +649,9 @@ wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, } dialogItem->SetStyle(windowStyle); dialogItem->SetValue1(isModal); + if (windowStyle & wxDIALOG_MODAL) // Uses style in wxWin 2 + dialogItem->SetValue1(TRUE); + dialogItem->SetName(name); dialogItem->SetTitle(title); dialogItem->SetSize(x, y, width, height); @@ -826,7 +827,7 @@ wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr) wxString str(expr->Nth(count)->StringValue()); count ++; - if (str != "") + if (str != _T("")) { controlItem->SetValue4(str); controlItem->SetType(_T("wxBitmapButton")); @@ -858,7 +859,7 @@ wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr) controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); } } -#if wxUSE_RADIOBUTTON +#if wxUSE_RADIOBTN else if (controlType == _T("wxRadioButton")) { // Check for default value @@ -1478,46 +1479,59 @@ bool wxReallocateResourceBuffer() static bool wxEatWhiteSpace(FILE *fd) { - int ch = getc(fd); - if ((ch != ' ') && (ch != '/') && (ch != ' ') && (ch != 10) && (ch != 13) && (ch != 9)) - { - ungetc(ch, fd); - return TRUE; - } + int ch = 0; - // Eat whitespace - while (ch == ' ' || ch == 10 || ch == 13 || ch == 9) - ch = getc(fd); - // Check for comment - if (ch == '/') - { - ch = getc(fd); - if (ch == '*') - { - bool finished = FALSE; - while (!finished) + while ((ch = getc(fd)) != EOF) { - ch = getc(fd); - if (ch == EOF) - return FALSE; - if (ch == '*') - { - int newCh = getc(fd); - if (newCh == '/') - finished = TRUE; - else - { - ungetc(newCh, fd); - } - } + switch (ch) + { + case ' ': + case 0x0a: + case 0x0d: + case 0x09: + break; + case '/': + { + int prev_ch = ch; + ch = getc(fd); + if (ch == EOF) + { + ungetc(prev_ch, fd); + return TRUE; + } + + if (ch == '*') + { + // Eat C comment + prev_ch = 0; + while ((ch = getc(fd)) != EOF) + { + if (ch == '/' && prev_ch == '*') + break; + prev_ch = ch; + } + } + else if (ch == '/') + { + // Eat C++ comment + static char buffer[255]; + fgets(buffer, 255, fd); + } + else + { + ungetc(prev_ch, fd); + ungetc(ch, fd); + return TRUE; + } + } + break; + default: + ungetc(ch, fd); + return TRUE; + + } } - } - else // False alarm - return FALSE; - } - else - ungetc(ch, fd); - return wxEatWhiteSpace(fd); + return FALSE; } bool wxGetResourceToken(FILE *fd) @@ -1604,9 +1618,9 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour if (strcmp(wxResourceBuffer, "#define") == 0) { wxGetResourceToken(fd); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *name = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); wxGetResourceToken(fd); - wxChar *value = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *value = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); if (wxIsalpha(value[0])) { int val = (int)wxAtol(value); @@ -1627,7 +1641,7 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour else if (strcmp(wxResourceBuffer, "#include") == 0) { wxGetResourceToken(fd); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *name = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); wxChar *actualName = name; if (name[0] == _T('"')) actualName = name + 1; @@ -1645,7 +1659,7 @@ bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResour { wxChar buf[300]; wxStrcpy(buf, _("Found ")); - wxStrncat(buf, wxConv_libc.cMB2WX(wxResourceBuffer), 30); + wxStrncat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), 30); wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource.")); wxLogWarning(buf); return FALSE; @@ -1880,6 +1894,9 @@ static wxResourceBitListStruct wxResourceBitListTable[] = { _T("wxTB_VERTICAL"), wxTB_VERTICAL}, { _T("wxTB_FLAT"), wxTB_FLAT}, + /* wxDialog */ + { _T("wxDIALOG_MODAL"), wxDIALOG_MODAL }, + /* Generic */ { _T("wxVSCROLL"), wxVSCROLL }, { _T("wxHSCROLL"), wxHSCROLL }, @@ -2057,7 +2074,7 @@ wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table wxItemResource *item = table->FindResource(resource); if (item) { - if ((item->GetType() == "") || (item->GetType() != "wxBitmap")) + if ((item->GetType() == _T("")) || (item->GetType() != _T("wxBitmap"))) { wxLogWarning(_("%s not a bitmap resource specification."), (const wxChar*) resource); return wxNullBitmap; @@ -2505,9 +2522,9 @@ bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table) if (strcmp(wxResourceBuffer, "#define") == 0) { wxGetResourceToken(fd); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *name = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); wxGetResourceToken(fd); - wxChar *value = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *value = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); if (wxIsdigit(value[0])) { int val = (int)wxAtol(value); @@ -2545,49 +2562,53 @@ static int ungetc_string() bool wxEatWhiteSpaceString(char *s) { - int ch = getc_string(s); - if (ch == EOF) - return TRUE; - - if ((ch != ' ') && (ch != '/') && (ch != ' ') && (ch != 10) && (ch != 13) && (ch != 9)) - { - ungetc_string(); - return TRUE; - } + int ch = 0; - // Eat whitespace - while (ch == ' ' || ch == 10 || ch == 13 || ch == 9) - ch = getc_string(s); - // Check for comment - if (ch == '/') - { - ch = getc_string(s); - if (ch == '*') - { - bool finished = FALSE; - while (!finished) + while ((ch = getc_string(s)) != EOF) { - ch = getc_string(s); - if (ch == EOF) - return FALSE; - if (ch == '*') - { - int newCh = getc_string(s); - if (newCh == '/') - finished = TRUE; - else - { + switch (ch) + { + case ' ': + case 0x0a: + case 0x0d: + case 0x09: + break; + case '/': + { + int prev_ch = ch; + ch = getc_string(s); + if (ch == EOF) + { + ungetc_string(); + return TRUE; + } + + if (ch == '*') + { + // Eat C comment + prev_ch = 0; + while ((ch = getc_string(s)) != EOF) + { + if (ch == '/' && prev_ch == '*') + break; + prev_ch = ch; + } + } + else + { + ungetc_string(); + ungetc_string(); + return TRUE; + } + } + break; + default: ungetc_string(); - } - } + return TRUE; + + } } - } - else // False alarm - return FALSE; - } - else if (ch != EOF) - ungetc_string(); - return wxEatWhiteSpaceString(s); + return FALSE; } bool wxGetResourceTokenString(char *s) @@ -2674,9 +2695,9 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR if (strcmp(wxResourceBuffer, "#define") == 0) { wxGetResourceTokenString(s); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *name = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); wxGetResourceTokenString(s); - wxChar *value = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); + wxChar *value = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer)); if (wxIsalpha(value[0])) { int val = (int)wxAtol(value); @@ -2719,7 +2740,7 @@ bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxR { wxChar buf[300]; wxStrcpy(buf, _("Found ")); - wxStrncat(buf, wxConv_libc.cMB2WX(wxResourceBuffer), 30); + wxStrncat(buf, wxConvCurrent->cMB2WX(wxResourceBuffer), 30); wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource.")); wxLogWarning(buf); return FALSE; @@ -2829,7 +2850,7 @@ bool wxResourceParseString(char *s, wxResourceTable *table) * resource loading facility */ -bool wxWindow::LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table) +bool wxWindowBase::LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table) { if (!table) table = wxDefaultResourceTable; @@ -2868,7 +2889,7 @@ bool wxWindow::LoadFromResource(wxWindow *parent, const wxString& resourceName, } else { - if (!this->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name)) + if (!((wxWindow *)this)->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name)) return FALSE; } @@ -2915,7 +2936,7 @@ bool wxWindow::LoadFromResource(wxWindow *parent, const wxString& resourceName, return TRUE; } -wxControl *wxWindow::CreateItem(const wxItemResource *resource, const wxItemResource* parentResource, const wxResourceTable *table) +wxControl *wxWindowBase::CreateItem(const wxItemResource *resource, const wxItemResource* parentResource, const wxResourceTable *table) { if (!table) table = wxDefaultResourceTable;