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" #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[]; extern WXDLLIMPEXP_DATA_CORE(const char) wxDialogNameStr[];
class WXDLLIMPEXP_FWD_CORE wxDialogModalData; class WXDLLIMPEXP_FWD_CORE wxDialogModalData;
@@ -108,6 +117,8 @@ protected:
// common part of all ctors // common part of all ctors
void Init(); void Init();
private:
#if wxUSE_DIALOG_SIZEGRIP
// these functions deal with the gripper window shown in the corner of // these functions deal with the gripper window shown in the corner of
// resizeable dialogs // resizeable dialogs
void CreateGripper(); void CreateGripper();
@@ -115,11 +126,14 @@ protected:
void ShowGripper(bool show); void ShowGripper(bool show);
void ResizeGripper(); void ResizeGripper();
private:
// this function is used to adjust Z-order of new children relative to the // this function is used to adjust Z-order of new children relative to the
// gripper if we have one // gripper if we have one
void OnWindowCreate(wxWindowCreateEvent& event); 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__) #if wxUSE_TOOLBAR && defined(__POCKETPC__)
wxToolBar* m_dialogToolBar; wxToolBar* m_dialogToolBar;
#endif #endif
@@ -127,9 +141,6 @@ private:
// this pointer is non-NULL only while the modal event loop is running // this pointer is non-NULL only while the modal event loop is running
wxDialogModalData *m_modalData; wxDialogModalData *m_modalData;
// gripper window for a resizable dialog, NULL if we're not resizable
WXHWND m_hGripper;
DECLARE_DYNAMIC_CLASS(wxDialog) DECLARE_DYNAMIC_CLASS(wxDialog)
wxDECLARE_NO_COPY_CLASS(wxDialog); wxDECLARE_NO_COPY_CLASS(wxDialog);
}; };

View File

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