Dialog Editor bug fixes, several other small ones
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
64d315544f
commit
386af6a2fa
@ -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
|
||||
------------
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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) ; ;
|
||||
|
Binary file not shown.
@ -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)))
|
||||
{
|
||||
|
@ -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 ";
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user