don't use dialog size gripper under CE (should close #10765)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-05-02 17:06:39 +00:00
parent 16d2c3ea74
commit 40636dcbfe
2 changed files with 27 additions and 4 deletions

View File

@ -14,6 +14,15 @@
#include "wx/panel.h"
// this option is always enabled (there doesn't seem to be any good reason to
// disable it) for desktop Windows versions but Windows CE dialogs are usually
// not resizeable and never show resize gripper anyhow so don't use it there
#ifdef __WXWINCE__
#define wxUSE_DIALOG_SIZEGRIP 0
#else
#define wxUSE_DIALOG_SIZEGRIP 1
#endif
extern WXDLLIMPEXP_DATA_CORE(const char) wxDialogNameStr[];
class WXDLLIMPEXP_FWD_CORE wxDialogModalData;
@ -108,6 +117,8 @@ protected:
// common part of all ctors
void Init();
private:
#if wxUSE_DIALOG_SIZEGRIP
// these functions deal with the gripper window shown in the corner of
// resizeable dialogs
void CreateGripper();
@ -115,11 +126,14 @@ protected:
void ShowGripper(bool show);
void ResizeGripper();
private:
// this function is used to adjust Z-order of new children relative to the
// gripper if we have one
void OnWindowCreate(wxWindowCreateEvent& event);
// gripper window for a resizable dialog, NULL if we're not resizable
WXHWND m_hGripper;
#endif // wxUSE_DIALOG_SIZEGRIP
#if wxUSE_TOOLBAR && defined(__POCKETPC__)
wxToolBar* m_dialogToolBar;
#endif
@ -127,9 +141,6 @@ private:
// this pointer is non-NULL only while the modal event loop is running
wxDialogModalData *m_modalData;
// gripper window for a resizable dialog, NULL if we're not resizable
WXHWND m_hGripper;
DECLARE_DYNAMIC_CLASS(wxDialog)
wxDECLARE_NO_COPY_CLASS(wxDialog);
};

View File

@ -150,7 +150,9 @@ void wxDialog::Init()
#if wxUSE_TOOLBAR && defined(__POCKETPC__)
m_dialogToolBar = NULL;
#endif
#if wxUSE_DIALOG_SIZEGRIP
m_hGripper = 0;
#endif // wxUSE_DIALOG_SIZEGRIP
}
bool wxDialog::Create(wxWindow *parent,
@ -179,6 +181,7 @@ bool wxDialog::Create(wxWindow *parent,
CreateToolBar();
#endif
#if wxUSE_DIALOG_SIZEGRIP
if ( HasFlag(wxRESIZE_BORDER) )
{
CreateGripper();
@ -186,6 +189,7 @@ bool wxDialog::Create(wxWindow *parent,
Connect(wxEVT_CREATE,
wxWindowCreateEventHandler(wxDialog::OnWindowCreate));
}
#endif // wxUSE_DIALOG_SIZEGRIP
return true;
}
@ -195,7 +199,9 @@ wxDialog::~wxDialog()
// this will also reenable all the other windows for a modal dialog
Show(false);
#if wxUSE_DIALOG_SIZEGRIP
DestroyGripper();
#endif // wxUSE_DIALOG_SIZEGRIP
}
// ----------------------------------------------------------------------------
@ -306,6 +312,8 @@ void wxDialog::EndModal(int retCode)
// wxDialog gripper handling
// ----------------------------------------------------------------------------
#if wxUSE_DIALOG_SIZEGRIP
void wxDialog::SetWindowStyleFlag(long style)
{
wxDialogBase::SetWindowStyleFlag(style);
@ -394,6 +402,8 @@ void wxDialog::OnWindowCreate(wxWindowCreateEvent& event)
event.Skip();
}
#endif // wxUSE_DIALOG_SIZEGRIP
// ----------------------------------------------------------------------------
// wxWin event handlers
// ----------------------------------------------------------------------------
@ -475,6 +485,7 @@ WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lPar
break;
case WM_SIZE:
#if wxUSE_DIALOG_SIZEGRIP
if ( m_hGripper )
{
switch ( wParam )
@ -487,6 +498,7 @@ WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lPar
ShowGripper(true);
}
}
#endif // wxUSE_DIALOG_SIZEGRIP
// the Windows dialogs unfortunately are not meant to be resizeable
// at all and their standard class doesn't include CS_[VH]REDRAW