]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/dialoged/src/winprop.cpp
more files to ignore in cvs commands (setup.h, lex_yy.c, y_tab.c)
[wxWidgets.git] / utils / dialoged / src / winprop.cpp
index 00b91eee7aa930aeadabde445aacc307d247b403..4f3a64b6f5752348cfe0ad5c15cd59ae8d8028e4 100644 (file)
@@ -179,6 +179,13 @@ bool wxPropertyInfo::Edit(wxWindow *WXUNUSED(parent), const wxString& title)
   view->ShowView(propSheet, propWin->GetPropertyPanel());
 
   propWin->Show(TRUE);
+
+  // Otherwise doesn't show itself
+#ifdef __WXMOTIF__
+  wxNoOptimize noOptimize;
+  propWin->SetSize(-1, -1, width, height);
+#endif
+
   return TRUE;
 }
 
@@ -389,9 +396,11 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
   }
   else if (name == "x")
   {
+    wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow);
     int x, y;
     m_propertyWindow->GetPosition(&x, &y);
     int newX = (int)property->GetValue().IntegerValue();
+    int pixelX = newX;
 
     // We need to convert to pixels if this is not a dialog or panel, but
     // the parent resource specifies dialog units.
@@ -401,7 +410,7 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxPoint pt = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxPoint(newX, y));
-            newX = pt.x;
+            pixelX = pt.x;
         }
     }
     else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel)))
@@ -410,19 +419,24 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxPoint pt = m_propertyWindow->ConvertDialogToPixels(wxPoint(newX, y));
-            newX = pt.x;
+            pixelX = pt.x;
         }
     }
 
-    if (x != newX)
-      m_propertyWindow->Move(newX, y);
+    if (x != pixelX)
+    {
+      m_propertyWindow->Move(pixelX, y);
+      resource->SetSize(newX, resource->GetY(), resource->GetWidth(), resource->GetHeight());
+    }
     return TRUE;
   }
   else if (name == "y")
   {
+    wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow);
     int x, y;
     m_propertyWindow->GetPosition(&x, &y);
     int newY = (int)property->GetValue().IntegerValue();
+    int pixelY = newY;
 
     // We need to convert to pixels if this is not a dialog or panel, but
     // the parent resource specifies dialog units.
@@ -432,7 +446,7 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxPoint pt = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxPoint(x, newY));
-            newY = pt.y;
+            pixelY = pt.y;
         }
     }
     else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel)))
@@ -441,19 +455,24 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxPoint pt = m_propertyWindow->ConvertDialogToPixels(wxPoint(x, newY));
-            newY = pt.y;
+            pixelY = pt.y;
         }
     }
 
-    if (y != newY)
-      m_propertyWindow->Move(x, newY);
+    if (y != pixelY)
+    {
+      m_propertyWindow->Move(x, pixelY);
+      resource->SetSize(resource->GetX(), newY, resource->GetWidth(), resource->GetHeight());
+    }
     return TRUE;
   }
   else if (name == "width")
   {
+    wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow);
     int width, height;
     m_propertyWindow->GetSize(&width, &height);
     int newWidth = (int)property->GetValue().IntegerValue();
+    int pixelWidth = newWidth;
 
     // We need to convert to pixels if this is not a dialog or panel, but
     // the parent resource specifies dialog units.
@@ -463,7 +482,7 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxSize sz = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxSize(newWidth, height));
-            newWidth = sz.x;
+            pixelWidth = sz.x;
         }
     }
     else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel)))
@@ -472,21 +491,24 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxSize sz = m_propertyWindow->ConvertDialogToPixels(wxSize(newWidth, height));
-            newWidth = sz.x;
+            pixelWidth = sz.x;
         }
     }
 
-    if (width != newWidth)
+    if (width != pixelWidth)
     {
-      m_propertyWindow->SetSize(newWidth, height);
+      m_propertyWindow->SetSize(pixelWidth, height);
+      resource->SetSize(resource->GetX(), resource->GetY(), newWidth, resource->GetHeight());
     }
     return TRUE;
   }
   else if (name == "height")
   {
+    wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow);
     int width, height;
     m_propertyWindow->GetSize(&width, &height);
     int newHeight = (int)property->GetValue().IntegerValue();
+    int pixelHeight = newHeight;
 
     // We need to convert to pixels if this is not a dialog or panel, but
     // the parent resource specifies dialog units.
@@ -496,7 +518,7 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxSize sz = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxSize(width, newHeight));
-            newHeight = sz.y;
+            pixelHeight = sz.y;
         }
     }
     else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel)))
@@ -505,13 +527,14 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
         if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS)
         {
             wxSize sz = m_propertyWindow->ConvertDialogToPixels(wxSize(width, newHeight));
-            newHeight = sz.y;
+            pixelHeight = sz.y;
         }
     }
 
-    if (height != newHeight)
+    if (height != pixelHeight)
     {
-      m_propertyWindow->SetSize(width, newHeight);
+      m_propertyWindow->SetSize(width, pixelHeight);
+      resource->SetSize(resource->GetX(), resource->GetY(), resource->GetWidth(), newHeight);
     }
     return TRUE;
   }
@@ -741,7 +764,7 @@ bool wxItemPropertyInfo::SetProperty(wxString& name, wxProperty *property)
   {
     wxFont *newFont = SetFontProperty(name, property, font);
     if (newFont)
-      itemWindow->SetLabelFont(* newFont);
+      itemWindow->SetFont(* newFont);
     return TRUE;
   }
   else if (name == "label")
@@ -771,6 +794,7 @@ bool wxItemPropertyInfo::InstantiateResource(wxItemResource *resource)
   wxControl *item = (wxControl *)m_propertyWindow;
   wxString str(item->GetLabel());
   resource->SetTitle(str);
+
   if (item->GetFont().Ok())
     resource->SetFont(* wxTheFontList->FindOrCreateFont(item->GetFont().GetPointSize(),
                item->GetFont().GetFamily(), item->GetFont().GetStyle(), item->GetFont().GetWeight(),
@@ -1738,8 +1762,8 @@ bool wxGaugePropertyInfo::InstantiateResource(wxItemResource *resource)
 wxProperty *wxScrollBarPropertyInfo::GetProperty(wxString& name)
 {
   wxScrollBar *scrollBar = (wxScrollBar *)m_propertyWindow;
-  if (name == "value")
-    return new wxProperty("value", (long)scrollBar->GetValue(), "integer");
+  if (name == "thumbPosition")
+    return new wxProperty("value", (long)scrollBar->GetThumbPosition(), "integer");
   else if (name == "orientation")
   {
     char *pos = NULL;
@@ -1754,24 +1778,20 @@ wxProperty *wxScrollBarPropertyInfo::GetProperty(wxString& name)
   }
   else if (name == "pageSize")
   {
-    int viewStart, pageLength, objectLength, viewLength;
-    scrollBar->GetValues(&viewStart, &viewLength, &objectLength, &pageLength);
+    int pageLength = scrollBar->GetPageSize();
     
     return new wxProperty("pageSize", (long)pageLength, "integer");
   }
-  else if (name == "viewLength")
+  else if (name == "thumbSize")
   {
-    int viewStart, pageLength, objectLength, viewLength;
-    scrollBar->GetValues(&viewStart, &viewLength, &objectLength, &pageLength);
+    int thumbSize = scrollBar->GetThumbSize();
     
-    return new wxProperty("viewLength", (long)viewLength, "integer");
+    return new wxProperty("thumbSize", (long)thumbSize, "integer");
   }
-  else if (name == "objectLength")
+  else if (name == "range")
   {
-    int viewStart, pageLength, objectLength, viewLength;
-    scrollBar->GetValues(&viewStart, &viewLength, &objectLength, &pageLength);
-    
-    return new wxProperty("objectLength", (long)objectLength, "integer");
+    int range = scrollBar->GetRange();
+    return new wxProperty("range", (long)range, "integer");
   }
   else
     return wxItemPropertyInfo::GetProperty(name);
@@ -1780,9 +1800,9 @@ wxProperty *wxScrollBarPropertyInfo::GetProperty(wxString& name)
 bool wxScrollBarPropertyInfo::SetProperty(wxString& name, wxProperty *property)
 {
   wxScrollBar *scrollBar = (wxScrollBar *)m_propertyWindow;
-  if (name == "value")
+  if (name == "thumbPosition")
   {
-    scrollBar->SetValue((int)property->GetValue().IntegerValue());
+    scrollBar->SetThumbPosition((int)property->GetValue().IntegerValue());
     return TRUE;
   }
   else if (name == "orientation")
@@ -1809,27 +1829,40 @@ bool wxScrollBarPropertyInfo::SetProperty(wxString& name, wxProperty *property)
     scrollBar->SetWindowStyleFlag(windowStyle);
     
     // If the window style has changed, we swap the width and height parameters.
-    int w, h;
-    scrollBar->GetSize(&w, &h);
-    
+//    int w, h;
+//    scrollBar->GetSize(&w, &h);
+    wxItemResource     *item = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(scrollBar);
+       if ( item ) {
+               item->SetSize(item->GetX(), item->GetY(), item->GetHeight(), item->GetWidth());
+               item->SetStyle(windowStyle);
+       } /* IF */
+
     scrollBar = (wxScrollBar *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(scrollBar, this);
-    scrollBar->SetSize(-1, -1, h, w);
-    
+
     return TRUE;
   }
   else if (name == "pageSize")
   {
-    scrollBar->SetPageSize((int)property->GetValue().IntegerValue());
+    int pos = scrollBar->GetThumbPosition();
+    int range = scrollBar->GetRange();
+    int thumbSize = scrollBar->GetThumbSize();
+    scrollBar->SetScrollbar(pos, thumbSize, range, (int)property->GetValue().IntegerValue());
     return TRUE;
   }
-  else if (name == "viewLength")
+  else if (name == "thumbSize")
   {
-    scrollBar->SetViewLength((int)property->GetValue().IntegerValue());
+    int pos = scrollBar->GetThumbPosition();
+    int range = scrollBar->GetRange();
+    int pageSize = scrollBar->GetPageSize();
+    scrollBar->SetScrollbar(pos, (int)property->GetValue().IntegerValue(), range, pageSize);
     return TRUE;
   }
-  else if (name == "objectLength")
+  else if (name == "range")
   {
-    scrollBar->SetObjectLength((int)property->GetValue().IntegerValue());
+    int pos = scrollBar->GetThumbPosition();
+    int thumbSize = scrollBar->GetThumbSize();
+    int pageSize = scrollBar->GetPageSize();
+    scrollBar->SetScrollbar(pos, thumbSize, (int)property->GetValue().IntegerValue(), pageSize);
     return TRUE;
   }
   else
@@ -1840,10 +1873,10 @@ void wxScrollBarPropertyInfo::GetPropertyNames(wxStringList& names)
 {
   wxItemPropertyInfo::GetPropertyNames(names);
   names.Add("orientation");
-  names.Add("value");
+  names.Add("thumbPosition");
+  names.Add("thumbSize");
   names.Add("pageSize");
-  names.Add("viewLength");
-  names.Add("objectLength");
+  names.Add("range");
 
   // Remove some properties we don't inherit
   names.Delete("fontPoints");
@@ -1857,14 +1890,15 @@ bool wxScrollBarPropertyInfo::InstantiateResource(wxItemResource *resource)
 {
   wxScrollBar *sbar = (wxScrollBar *)m_propertyWindow;
 
-  resource->SetValue1(sbar->GetValue());
-
-  int viewStart, pageLength, objectLength, viewLength;
-  sbar->GetValues(&viewStart, &viewLength, &objectLength, &pageLength);
+  int thumbPosition = sbar->GetThumbPosition();
+  int thumbSize = sbar->GetThumbSize();
+  int pageSize = sbar->GetPageSize();
+  int range = sbar->GetRange();
   
-  resource->SetValue2(pageLength);
-  resource->SetValue3(objectLength);
-  resource->SetValue5(viewLength);
+  resource->SetValue1(thumbPosition);
+  resource->SetValue2(thumbSize);
+  resource->SetValue3(range);
+  resource->SetValue5(pageSize);
 
   return wxItemPropertyInfo::InstantiateResource(resource);
 }