]> git.saurik.com Git - wxWidgets.git/commitdiff
Dialog Editor bug fixes, several other small ones
authorJulian Smart <julian@anthemion.co.uk>
Tue, 3 Nov 1998 15:43:57 +0000 (15:43 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Tue, 3 Nov 1998 15:43:57 +0000 (15:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/msw/todo.txt
src/common/resource.cpp
src/common/valtext.cpp
src/generic/gridg.cpp
src/msw/listctrl.cpp
src/msw/window.cpp
user/wxLayout/README
utils/dialoged/src/reseditr.cpp
utils/dialoged/src/reswrite.cpp
utils/dialoged/src/winprop.cpp

index 20fcd05992ebafc2a4f5aaa8ce1d445ef4291a55..e3510dfc97468b8c9721da228c122c5871033ab8 100644 (file)
@@ -86,6 +86,9 @@ Add centring, right justify styles to wxStaticText.
 Synchronize drawing functions on all platforms, using Chris's
 code to test them.
 
 Synchronize drawing functions on all platforms, using Chris's
 code to test them.
 
+Extend wxSystemSettings to get symbols for current nationality,
+e.g. ',' instead of '.' for decimal points.
+
 LOW PRIORITY
 ------------
 
 LOW PRIORITY
 ------------
 
index ecc8121d7dc9d740bebd8b73c0da857a78f8c001..0c2cc28936aeaef2eab1496943b9fd6eec4dd220 100644 (file)
@@ -960,26 +960,31 @@ wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr)
       }
       controlItem->SetStringValues(stringList);
      count ++;
       }
       controlItem->SetStringValues(stringList);
      count ++;
-
+// This is now obsolete: it's in the window style.
       // Check for wxSINGLE/wxMULTIPLE
       wxExpr *mult = (wxExpr *) NULL;
       // Check for wxSINGLE/wxMULTIPLE
       wxExpr *mult = (wxExpr *) NULL;
+/*
       controlItem->SetValue1(wxLB_SINGLE);
       controlItem->SetValue1(wxLB_SINGLE);
+*/
       if ((mult = expr->Nth(count)) && ((mult->Type() == PrologString)||(mult->Type() == PrologWord)))
       {
       if ((mult = expr->Nth(count)) && ((mult->Type() == PrologString)||(mult->Type() == PrologWord)))
       {
+/*
         wxString m(mult->StringValue());
         wxString m(mult->StringValue());
-        if (m == "wxMULTIPLE")
+        if (m == "wxLB_MULTIPLE")
           controlItem->SetValue1(wxLB_MULTIPLE);
           controlItem->SetValue1(wxLB_MULTIPLE);
-        else if (m == "wxEXTENDED")
+        else if (m == "wxLB_EXTENDED")
           controlItem->SetValue1(wxLB_EXTENDED);
           controlItem->SetValue1(wxLB_EXTENDED);
+*/
+       // Ignore the value
        count ++;
        count ++;
-        if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
-       {
-          // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count)));
+      }
+      if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
+      {
+         // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count)));
          count ++;
          count ++;
-          if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
-            controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
-       }
-     }
+         if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
+           controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
+      }
    }
   }
   else if (controlType == "wxChoice")
    }
   }
   else if (controlType == "wxChoice")
index 3973230d8047c81ef51f344df4da633810e32d37..a14a082387d8bdad1765258a547f9f1a8aab9474 100644 (file)
@@ -42,6 +42,8 @@ BEGIN_EVENT_TABLE(wxTextValidator, wxValidator)
 END_EVENT_TABLE()
 #endif
 
 END_EVENT_TABLE()
 #endif
 
+static bool wxIsNumeric(const wxString& val);
+
 wxTextValidator::wxTextValidator(long style, wxString *val)
 {
        m_validatorStyle = style ;
 wxTextValidator::wxTextValidator(long style, wxString *val)
 {
        m_validatorStyle = style ;
@@ -169,7 +171,8 @@ bool wxTextValidator::Validate(wxWindow *parent)
                        wxMessageBox(buf,_("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent);
                        return FALSE;
        }
                        wxMessageBox(buf,_("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent);
                        return FALSE;
        }
-       if ( (m_validatorStyle & wxFILTER_NUMERIC) && !val.IsNumber())
+       if ( (m_validatorStyle & wxFILTER_NUMERIC) && !wxIsNumeric(val))
+
        {
                        char buf[512];
                        sprintf(buf, _("%s should be numeric."), (const char *)val);
        {
                        char buf[512];
                        sprintf(buf, _("%s should be numeric."), (const char *)val);
@@ -291,4 +294,14 @@ void wxTextValidator::OnChar(wxKeyEvent& event)
        textCtrl->wxTextCtrl::OnChar(event);
 }
 
        textCtrl->wxTextCtrl::OnChar(event);
 }
 
+static bool wxIsNumeric(const wxString& val)
+{
+       int i;
+       for ( i = 0; i < (int)val.Length(); i++)
+       {
+               if ((!isdigit(val[i])) && (val[i] != '.'))
+                       return FALSE;
+       }
+       return TRUE;
+}
 
 
index d12a8a9e1bb4aedfebdee691f42a33fcd7a93c2e..4b639f1e51ef29cbed4cddcd4eee7d6bdbcbdda1 100644 (file)
@@ -927,7 +927,7 @@ void wxGenericGrid::AdjustScrollbars(void)
   int noHorizSteps = 0;
   int noVertSteps = 0;
   
   int noHorizSteps = 0;
   int noVertSteps = 0;
   
-  if (m_totalGridWidth <= cw)
+  if (m_totalGridWidth + vertScrollBarWidth <= cw)
     noHorizSteps = 0;
   else
   {
     noHorizSteps = 0;
   else
   {
@@ -954,7 +954,7 @@ void wxGenericGrid::AdjustScrollbars(void)
     
     noHorizSteps += nx;
   }
     
     noHorizSteps += nx;
   }
-  if (m_totalGridHeight <= ch)
+  if (m_totalGridHeight + horizScrollBarHeight <= ch)
     noVertSteps = 0;
   else
   {
     noVertSteps = 0;
   else
   {
@@ -981,7 +981,7 @@ void wxGenericGrid::AdjustScrollbars(void)
     noVertSteps += ny;
   }
   
     noVertSteps += ny;
   }
   
-  if (m_totalGridWidth <= cw)
+  if (m_totalGridWidth + vertScrollBarWidth <= cw)
   {
        if ( m_hScrollBar )
        m_hScrollBar->Show(FALSE);
   {
        if ( m_hScrollBar )
        m_hScrollBar->Show(FALSE);
@@ -993,7 +993,7 @@ void wxGenericGrid::AdjustScrollbars(void)
        m_hScrollBar->Show(TRUE);
   }
 
        m_hScrollBar->Show(TRUE);
   }
 
-  if (m_totalGridHeight <= ch)
+  if (m_totalGridHeight + horizScrollBarHeight <= ch)
   {
        if ( m_vScrollBar )
        m_vScrollBar->Show(FALSE);
   {
        if ( m_vScrollBar )
        m_vScrollBar->Show(FALSE);
index 6a0e5dec10851cf425fae54f9de52fa3e69fcf0f..5b3229a3b4bfd47a7ab4af8474d5e60565d9d0ab 100644 (file)
@@ -463,7 +463,11 @@ wxTextCtrl* wxListCtrl::GetEditControl(void) const
 bool wxListCtrl::GetItem(wxListItem& info) const
 {
   LV_ITEM lvItem;
 bool wxListCtrl::GetItem(wxListItem& info) const
 {
   LV_ITEM lvItem;
+#ifdef __MINGW32__
+  memset(&lvItem, 0, sizeof(lvItem));
+#else
   ZeroMemory(&lvItem, sizeof(lvItem)); // must set all fields to 0
   ZeroMemory(&lvItem, sizeof(lvItem)); // must set all fields to 0
+#endif
 
   lvItem.iItem = info.m_itemId;
 
 
   lvItem.iItem = info.m_itemId;
 
index 6ed701daed3aa3b446e27759c221954ff546ba7d..2031e5cc8438e7de67fbb262bc6990dcb6565c2b 100644 (file)
@@ -433,6 +433,12 @@ bool wxWindow::Create(wxWindow *parent, wxWindowID id,
     int width = size.x;
     int height = size.y;
 
     int width = size.x;
     int height = size.y;
 
+    // To be consistent with wxGTK
+    if (width == -1)
+        width = 20;
+    if (height == -1)
+        height = 20;
+
     wxSystemSettings settings;
 
     m_backgroundColour = settings.GetSystemColour(wxSYS_COLOUR_WINDOW) ; ;
     wxSystemSettings settings;
 
     m_backgroundColour = settings.GetSystemColour(wxSYS_COLOUR_WINDOW) ; ;
index 5539268bc7dac5936ee0489c21b5a84c9756f4ad..a60e58f6060c6c9fe592887456c2c6b8781f4592 100644 (file)
Binary files a/user/wxLayout/README and b/user/wxLayout/README differ
index fd82bb74aa89c4d6197d0fc82373eb88e727e6da..c41b680fdb85c85643e63f8d7952bc3bba79224e 100644 (file)
@@ -1020,7 +1020,7 @@ bool wxResourceManager::CreatePanelItem(wxItemResource *panelResource, wxPanel *
 
   if ((panelResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0)
   {
 
   if ((panelResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0)
   {
-    wxPoint pt = panel->ConvertPixelsToDialog(pt);
+    wxPoint pt = panel->ConvertPixelsToDialog(wxPoint(x, y));
     res->SetSize(pt.x, pt.y, -1, -1);
   }
   else res->SetSize(x, y, -1, -1);
     res->SetSize(pt.x, pt.y, -1, -1);
   }
   else res->SetSize(x, y, -1, -1);
@@ -1159,6 +1159,16 @@ bool wxResourceManager::CreatePanelItem(wxItemResource *panelResource, wxPanel *
   if (!newItem)
     return FALSE;
 
   if (!newItem)
     return FALSE;
 
+  int actualW, actualH;
+  newItem->GetSize(&actualW, &actualH);
+  wxSize actualSize(actualW, actualH);
+
+  if ((panelResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0)
+  {
+    actualSize = panel->ConvertPixelsToDialog(actualSize);
+  }
+  res->SetSize(res->GetX(), res->GetY(), actualSize.x, actualSize.y);
+
   wxString newIdName;
   int id = GenerateWindowId(prefix, newIdName);
   res->SetId(id);
   wxString newIdName;
   int id = GenerateWindowId(prefix, newIdName);
   res->SetId(id);
@@ -1759,7 +1769,7 @@ wxWindow *wxResourceManager::RecreateWindowFromResource(wxWindow *win, wxWindowP
   wxWindow *parent = win->GetParent();
   wxItemResource* parentResource = NULL;
   if (parent)
   wxWindow *parent = win->GetParent();
   wxItemResource* parentResource = NULL;
   if (parent)
-    FindResourceForWindow(parent);
+    parentResource = FindResourceForWindow(parent);
   
   if (win->IsKindOf(CLASSINFO(wxPanel)))
   {
   
   if (win->IsKindOf(CLASSINFO(wxPanel)))
   {
index 41766cacd1205913322f7c107034f7ba47d7e028..ef58aaefe6889277200e6bd63df20195a178f0a7 100644 (file)
@@ -310,7 +310,9 @@ bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource* it
           node = node->Next();
         }
       }
           node = node->Next();
         }
       }
-      stream << "], ";
+      stream << "]";
+/* Styles are now in the window style, not in a separate arg
+      stream << ", ";
       switch (item->GetValue1())
       {
         case wxLB_MULTIPLE:
       switch (item->GetValue1())
       {
         case wxLB_MULTIPLE:
@@ -330,6 +332,8 @@ bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource* it
           break;
         }
       }
           break;
         }
       }
+ */
+
       if (item->GetFont().Ok())
       {
         stream << ",\\\n      ";
       if (item->GetFont().Ok())
       {
         stream << ",\\\n      ";
index 20d6bfbb7fa374b05b15084618dccf4504deec00..6b485e5a6979ab185bfd7a0410c6251c33100227 100644 (file)
@@ -1086,22 +1086,16 @@ wxProperty *wxListBoxPropertyInfo::GetProperty(wxString& name)
     wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox);
     if (!resource)
       return NULL;
     wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox);
     if (!resource)
       return NULL;
+
+    char *mult = "wxLB_SINGLE";
       
       
-    char *mult = "wxSINGLE";
-      
-    switch (resource->GetValue1())
-    {
-      case wxLB_MULTIPLE:
+    if ((listBox->GetWindowStyleFlag() & wxLB_MULTIPLE) != 0)
         mult = "wxLB_MULTIPLE";
         mult = "wxLB_MULTIPLE";
-        break;
-      case wxLB_EXTENDED:
+    else if ((listBox->GetWindowStyleFlag() & wxLB_EXTENDED) != 0)
         mult = "wxLB_EXTENDED";
         mult = "wxLB_EXTENDED";
-        break;
-      default:
-      case wxLB_SINGLE:
+    else
         mult = "wxLB_SINGLE";
         mult = "wxLB_SINGLE";
-        break;
-    }
+
     return new wxProperty("multiple", mult, "string",
        new wxStringListValidator(new wxStringList("wxLB_SINGLE", "wxLB_MULTIPLE", "wxLB_EXTENDED",
           NULL)));
     return new wxProperty("multiple", mult, "string",
        new wxStringListValidator(new wxStringList("wxLB_SINGLE", "wxLB_MULTIPLE", "wxLB_EXTENDED",
           NULL)));
@@ -1128,17 +1122,21 @@ bool wxListBoxPropertyInfo::SetProperty(wxString& name, wxProperty *property)
   }
   else if (name == "multiple")
   {
   }
   else if (name == "multiple")
   {
-    int mult = wxLB_SINGLE;
+    SetWindowStyle(m_propertyWindow, wxLB_SINGLE, FALSE);
+    SetWindowStyle(m_propertyWindow, wxLB_MULTIPLE, FALSE);
+    SetWindowStyle(m_propertyWindow, wxLB_EXTENDED, FALSE);
+
     wxString str(property->GetValue().StringValue());
     if (str == "wxLB_MULTIPLE")
     wxString str(property->GetValue().StringValue());
     if (str == "wxLB_MULTIPLE")
-      mult = wxLB_MULTIPLE;
+      SetWindowStyle(m_propertyWindow, wxLB_MULTIPLE, TRUE);
     else if (str == "wxLB_EXTENDED")
     else if (str == "wxLB_EXTENDED")
-      mult = wxLB_EXTENDED;
+      SetWindowStyle(m_propertyWindow, wxLB_EXTENDED, TRUE);
     else
     else
-      mult = wxLB_SINGLE;
+      SetWindowStyle(m_propertyWindow, wxLB_SINGLE, TRUE);
+
     wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox);
     if (resource)
     wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox);
     if (resource)
-      resource->SetValue1(mult);
+      resource->SetStyle(m_propertyWindow->GetWindowStyleFlag());
     wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(listBox, this);
     return TRUE;
   }
     wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(listBox, this);
     return TRUE;
   }