don't send dummy scroll events from wxNotebook when the page is changed using the built-in spin control
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -120,6 +120,8 @@ public:
|
|||||||
// base class virtuals
|
// base class virtuals
|
||||||
// -------------------
|
// -------------------
|
||||||
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
|
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
|
||||||
|
virtual bool MSWOnScroll(int orientation, WXWORD nSBCode,
|
||||||
|
WXWORD pos, WXHWND control);
|
||||||
virtual void SetConstraintSizes(bool recurse = TRUE);
|
virtual void SetConstraintSizes(bool recurse = TRUE);
|
||||||
virtual bool DoPhase(int nPhase);
|
virtual bool DoPhase(int nPhase);
|
||||||
|
|
||||||
@@ -127,6 +129,9 @@ protected:
|
|||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
|
// translate wxWin styles to the Windows ones
|
||||||
|
virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
|
||||||
|
|
||||||
// remove one page from the notebook, without deleting
|
// remove one page from the notebook, without deleting
|
||||||
virtual wxNotebookPage *DoRemovePage(int nPage);
|
virtual wxNotebookPage *DoRemovePage(int nPage);
|
||||||
|
|
||||||
|
@@ -141,45 +141,47 @@ bool wxNotebook::Create(wxWindow *parent,
|
|||||||
long style,
|
long style,
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
// base init
|
// base init
|
||||||
if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
|
if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
parent->AddChild(this);
|
// notebook, so explicitly specify 0 as last parameter
|
||||||
|
if ( !MSWCreateControl(WC_TABCONTROL, _T(""), pos, size,
|
||||||
|
style | wxTAB_TRAVERSAL) )
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
// style
|
SetBackgroundColour(wxColour(::GetSysColor(COLOR_BTNFACE)));
|
||||||
m_windowStyle = style | wxTAB_TRAVERSAL;
|
|
||||||
|
|
||||||
long tabStyle = WS_TABSTOP | TCS_TABS;
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_windowStyle & wxBORDER )
|
WXDWORD wxNotebook::MSWGetStyle(long style, WXDWORD *exstyle) const
|
||||||
tabStyle |= WS_BORDER;
|
{
|
||||||
if ( m_windowStyle & wxCLIP_SIBLINGS )
|
WXDWORD tabStyle = wxControl::MSWGetStyle(style, exstyle);
|
||||||
tabStyle |= WS_CLIPSIBLINGS;
|
|
||||||
if (m_windowStyle & wxCLIP_CHILDREN)
|
|
||||||
tabStyle |= WS_CLIPCHILDREN;
|
|
||||||
|
|
||||||
if ( m_windowStyle & wxTC_MULTILINE )
|
tabStyle |= WS_TABSTOP | TCS_TABS;
|
||||||
tabStyle |= TCS_MULTILINE;
|
|
||||||
if (m_windowStyle & wxNB_FIXEDWIDTH)
|
|
||||||
tabStyle |= TCS_FIXEDWIDTH ;
|
|
||||||
if (m_windowStyle & wxNB_BOTTOM)
|
|
||||||
tabStyle |= TCS_RIGHT;
|
|
||||||
if (m_windowStyle & wxNB_LEFT)
|
|
||||||
tabStyle |= TCS_VERTICAL;
|
|
||||||
if (m_windowStyle & wxNB_RIGHT)
|
|
||||||
tabStyle |= TCS_VERTICAL|TCS_RIGHT;
|
|
||||||
|
|
||||||
// note that we don't want to have the default WS_EX_CLIENTEDGE style for the
|
if ( style & wxTC_MULTILINE )
|
||||||
// notebook, so explicitly specify 0 as last parameter
|
tabStyle |= TCS_MULTILINE;
|
||||||
if ( !MSWCreateControl(WC_TABCONTROL, tabStyle, pos, size, _T(""), 0) )
|
if ( style & wxNB_FIXEDWIDTH )
|
||||||
{
|
tabStyle |= TCS_FIXEDWIDTH;
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
SetBackgroundColour(wxColour(::GetSysColor(COLOR_BTNFACE)));
|
if ( style & wxNB_BOTTOM )
|
||||||
|
tabStyle |= TCS_RIGHT;
|
||||||
|
else if ( style & wxNB_LEFT )
|
||||||
|
tabStyle |= TCS_VERTICAL;
|
||||||
|
else if ( style & wxNB_RIGHT )
|
||||||
|
tabStyle |= TCS_VERTICAL | TCS_RIGHT;
|
||||||
|
|
||||||
return TRUE;
|
// ex style
|
||||||
|
if ( exstyle )
|
||||||
|
{
|
||||||
|
// note that we never want to have the default WS_EX_CLIENTEDGE style
|
||||||
|
// as it looks too ugly for the notebooks
|
||||||
|
*exstyle = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tabStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -579,6 +581,21 @@ bool wxNotebook::DoPhase(int WXUNUSED(nPhase))
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxNotebook Windows message handlers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool wxNotebook::MSWOnScroll(int orientation, WXWORD nSBCode,
|
||||||
|
WXWORD pos, WXHWND control)
|
||||||
|
{
|
||||||
|
// don't generate EVT_SCROLLWIN events for the WM_SCROLLs coming from the
|
||||||
|
// up-down control
|
||||||
|
if ( control )
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return wxNotebookBase::MSWOnScroll(orientation, nSBCode, pos, control);
|
||||||
|
}
|
||||||
|
|
||||||
bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result)
|
bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result)
|
||||||
{
|
{
|
||||||
wxNotebookEvent event(wxEVT_NULL, m_windowId);
|
wxNotebookEvent event(wxEVT_NULL, m_windowId);
|
||||||
|
Reference in New Issue
Block a user