]> 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.
 
+Extend wxSystemSettings to get symbols for current nationality,
+e.g. ',' instead of '.' for decimal points.
+
 LOW PRIORITY
 ------------
 
index ecc8121d7dc9d740bebd8b73c0da857a78f8c001..0c2cc28936aeaef2eab1496943b9fd6eec4dd220 100644 (file)
@@ -960,26 +960,31 @@ wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr)
       }
       controlItem->SetStringValues(stringList);
      count ++;
-
+// This is now obsolete: it's in the window style.
       // Check for wxSINGLE/wxMULTIPLE
       wxExpr *mult = (wxExpr *) NULL;
+/*
       controlItem->SetValue1(wxLB_SINGLE);
+*/
       if ((mult = expr->Nth(count)) && ((mult->Type() == PrologString)||(mult->Type() == PrologWord)))
       {
+/*
         wxString m(mult->StringValue());
-        if (m == "wxMULTIPLE")
+        if (m == "wxLB_MULTIPLE")
           controlItem->SetValue1(wxLB_MULTIPLE);
-        else if (m == "wxEXTENDED")
+        else if (m == "wxLB_EXTENDED")
           controlItem->SetValue1(wxLB_EXTENDED);
+*/
+       // Ignore the value
        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 ++;
-          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")
index 3973230d8047c81ef51f344df4da633810e32d37..a14a082387d8bdad1765258a547f9f1a8aab9474 100644 (file)
@@ -42,6 +42,8 @@ BEGIN_EVENT_TABLE(wxTextValidator, wxValidator)
 END_EVENT_TABLE()
 #endif
 
+static bool wxIsNumeric(const wxString& val);
+
 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;
        }
-       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);
@@ -291,4 +294,14 @@ void wxTextValidator::OnChar(wxKeyEvent& 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;
   
-  if (m_totalGridWidth <= cw)
+  if (m_totalGridWidth + vertScrollBarWidth <= cw)
     noHorizSteps = 0;
   else
   {
@@ -954,7 +954,7 @@ void wxGenericGrid::AdjustScrollbars(void)
     
     noHorizSteps += nx;
   }
-  if (m_totalGridHeight <= ch)
+  if (m_totalGridHeight + horizScrollBarHeight <= ch)
     noVertSteps = 0;
   else
   {
@@ -981,7 +981,7 @@ void wxGenericGrid::AdjustScrollbars(void)
     noVertSteps += ny;
   }
   
-  if (m_totalGridWidth <= cw)
+  if (m_totalGridWidth + vertScrollBarWidth <= cw)
   {
        if ( m_hScrollBar )
        m_hScrollBar->Show(FALSE);
@@ -993,7 +993,7 @@ void wxGenericGrid::AdjustScrollbars(void)
        m_hScrollBar->Show(TRUE);
   }
 
-  if (m_totalGridHeight <= ch)
+  if (m_totalGridHeight + horizScrollBarHeight <= ch)
   {
        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;
+#ifdef __MINGW32__
+  memset(&lvItem, 0, sizeof(lvItem));
+#else
   ZeroMemory(&lvItem, sizeof(lvItem)); // must set all fields to 0
+#endif
 
   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;
 
+    // To be consistent with wxGTK
+    if (width == -1)
+        width = 20;
+    if (height == -1)
+        height = 20;
+
     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)
   {
-    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);
@@ -1159,6 +1159,16 @@ bool wxResourceManager::CreatePanelItem(wxItemResource *panelResource, wxPanel *
   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);
@@ -1759,7 +1769,7 @@ wxWindow *wxResourceManager::RecreateWindowFromResource(wxWindow *win, wxWindowP
   wxWindow *parent = win->GetParent();
   wxItemResource* parentResource = NULL;
   if (parent)
-    FindResourceForWindow(parent);
+    parentResource = FindResourceForWindow(parent);
   
   if (win->IsKindOf(CLASSINFO(wxPanel)))
   {
index 41766cacd1205913322f7c107034f7ba47d7e028..ef58aaefe6889277200e6bd63df20195a178f0a7 100644 (file)
@@ -310,7 +310,9 @@ bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource* it
           node = node->Next();
         }
       }
-      stream << "], ";
+      stream << "]";
+/* Styles are now in the window style, not in a separate arg
+      stream << ", ";
       switch (item->GetValue1())
       {
         case wxLB_MULTIPLE:
@@ -330,6 +332,8 @@ bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource* it
           break;
         }
       }
+ */
+
       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;
+
+    char *mult = "wxLB_SINGLE";
       
-    char *mult = "wxSINGLE";
-      
-    switch (resource->GetValue1())
-    {
-      case wxLB_MULTIPLE:
+    if ((listBox->GetWindowStyleFlag() & wxLB_MULTIPLE) != 0)
         mult = "wxLB_MULTIPLE";
-        break;
-      case wxLB_EXTENDED:
+    else if ((listBox->GetWindowStyleFlag() & wxLB_EXTENDED) != 0)
         mult = "wxLB_EXTENDED";
-        break;
-      default:
-      case wxLB_SINGLE:
+    else
         mult = "wxLB_SINGLE";
-        break;
-    }
+
     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")
   {
-    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")
-      mult = wxLB_MULTIPLE;
+      SetWindowStyle(m_propertyWindow, wxLB_MULTIPLE, TRUE);
     else if (str == "wxLB_EXTENDED")
-      mult = wxLB_EXTENDED;
+      SetWindowStyle(m_propertyWindow, wxLB_EXTENDED, TRUE);
     else
-      mult = wxLB_SINGLE;
+      SetWindowStyle(m_propertyWindow, wxLB_SINGLE, TRUE);
+
     wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox);
     if (resource)
-      resource->SetValue1(mult);
+      resource->SetStyle(m_propertyWindow->GetWindowStyleFlag());
     wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(listBox, this);
     return TRUE;
   }