1. more proper fix for wxChoice/wxComboBox height problems than in 2,2 branch
2. wxIsspace() fix merged from the 2.2 branch git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -70,6 +70,7 @@ public:
|
|||||||
WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual void DoMoveWindow(int x, int y, int width, int height);
|
||||||
virtual void DoSetItemClientData( int n, void* clientData );
|
virtual void DoSetItemClientData( int n, void* clientData );
|
||||||
virtual void* DoGetItemClientData( int n ) const;
|
virtual void* DoGetItemClientData( int n ) const;
|
||||||
virtual void DoSetItemClientObject( int n, wxClientData* clientData );
|
virtual void DoSetItemClientObject( int n, wxClientData* clientData );
|
||||||
|
@@ -86,7 +86,6 @@ public:
|
|||||||
WXHWND GetEditHWND() const;
|
WXHWND GetEditHWND() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void DoMoveWindow(int x, int y, int width, int height);
|
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -637,6 +637,13 @@ WXDLLEXPORT int wxSystem(const wxChar *psz);
|
|||||||
WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm);
|
WXDLLEXPORT size_t wxStrftime(wxChar *s, size_t max, const wxChar *fmt, const struct tm *tm);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// under VC++ 6.0 isspace() returns 1 for 8 bit chars which completely breaks
|
||||||
|
// the file parsing - this may be true for 5.0 as well, update #ifdef then
|
||||||
|
#if defined(__VISUALC__) && (__VISUALC__ >= 1200) && !wxUSE_UNICODE
|
||||||
|
#undef wxIsspace
|
||||||
|
#define wxIsspace(c) ((((unsigned)c) < 128) && isspace(c))
|
||||||
|
#endif // VC++
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// common macros which are always defined
|
// common macros which are always defined
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#include "wx/msw/private.h"
|
#include "wx/msw/private.h"
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// implementation
|
||||||
@@ -254,6 +254,24 @@ wxClientData* wxChoice::DoGetItemClientObject( int n ) const
|
|||||||
// wxMSW specific helpers
|
// wxMSW specific helpers
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxChoice::DoMoveWindow(int x, int y, int width, int height)
|
||||||
|
{
|
||||||
|
// here is why this is necessary: if the width is negative, the combobox
|
||||||
|
// window proc makes the window of the size width*height instead of
|
||||||
|
// interpreting height in the usual manner (meaning the height of the drop
|
||||||
|
// down list - usually the height specified in the call to MoveWindow()
|
||||||
|
// will not change the height of combo box per se)
|
||||||
|
//
|
||||||
|
// this behaviour is not documented anywhere, but this is just how it is
|
||||||
|
// here (NT 4.4) and, anyhow, the check shouldn't hurt - however without
|
||||||
|
// the check, constraints/sizers using combos may break the height
|
||||||
|
// constraint will have not at all the same value as expected
|
||||||
|
if ( width < 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
wxControl::DoMoveWindow(x, y, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
void wxChoice::DoSetSize(int x, int y,
|
void wxChoice::DoSetSize(int x, int y,
|
||||||
int width, int WXUNUSED(height),
|
int width, int WXUNUSED(height),
|
||||||
int sizeFlags)
|
int sizeFlags)
|
||||||
|
@@ -487,36 +487,6 @@ void wxComboBox::SetSelection(long from, long to)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::DoMoveWindow(int x, int y, int width, int height)
|
|
||||||
{
|
|
||||||
// here is why this is necessary: if the width is negative, the combobox
|
|
||||||
// window proc makes the window of the size width*height instead of
|
|
||||||
// interpreting height in the usual manner (meaning the height of the drop
|
|
||||||
// down list - usually the height specified in the call to MoveWindow()
|
|
||||||
// will not change the height of combo box per se)
|
|
||||||
//
|
|
||||||
// this behaviour is not documented anywhere, but this is just how it is
|
|
||||||
// here (NT 4.4) and, anyhow, the check shouldn't hurt - however without
|
|
||||||
// the check, constraints/sizers using combos may break the height
|
|
||||||
// constraint will have not at all the same value as expected
|
|
||||||
if ( width < 0 )
|
|
||||||
return;
|
|
||||||
|
|
||||||
int cx, cy;
|
|
||||||
wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
|
|
||||||
|
|
||||||
// what should the height of the drop down list be? we choose 10 items by
|
|
||||||
// default and also 10 items max (if we always use n, the list will never
|
|
||||||
// have vertical scrollbar)
|
|
||||||
int n = GetCount();
|
|
||||||
if ( !n || (n > 10) )
|
|
||||||
n = 10;
|
|
||||||
|
|
||||||
height = (n + 1)* EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
|
|
||||||
|
|
||||||
wxControl::DoMoveWindow(x, y, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxSize wxComboBox::DoGetBestSize() const
|
wxSize wxComboBox::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
// the choice calculates the horz size correctly, but not the vertical
|
// the choice calculates the horz size correctly, but not the vertical
|
||||||
|
Reference in New Issue
Block a user