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;
}
}
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.
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)))
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.
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)))
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.
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)))
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.
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)))
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;
}
{
wxFont *newFont = SetFontProperty(name, property, font);
if (newFont)
- itemWindow->SetLabelFont(* newFont);
+ itemWindow->SetFont(* newFont);
return TRUE;
}
else if (name == "label")
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(),
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;
}
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);
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")
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
{
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");
{
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);
}