]> git.saurik.com Git - wxWidgets.git/commitdiff
wxTLW::IsAlwaysMaximized() introduction.
authorWłodzimierz Skiba <abx@abx.art.pl>
Thu, 27 Apr 2006 17:18:46 +0000 (17:18 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Thu, 27 Apr 2006 17:18:46 +0000 (17:18 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/tlw.tex
include/wx/toplevel.h
src/common/toplvcmn.cpp
src/msw/toplevel.cpp

index dfdf848b7af93d3c77128b6f429663359f1612d7..770b9e34cd12473b5906d654243b04c436e0fc03 100644 (file)
@@ -86,6 +86,14 @@ Returns \true if this window is currently active, i.e. if the user is currently
 working with it.
 
 
+\membersection{wxTopLevelWindow::IsAlwaysMaximized}\label{wxtoplevelwindowisalwaysmaximized}
+
+\constfunc{virtual bool}{IsAlwaysMaximized}{\void}
+
+Returns \true if this window is expected to be always maximized, either due to platform policy
+or due to local policy regarding particular class.
+
+
 \membersection{wxTopLevelWindow::Iconize}\label{wxtoplevelwindowiconize}
 
 \func{void}{Iconize}{\param{bool}{ iconize}}
index 8824066fe878918c1de2c68aed2e3551e9d60e3f..69c5a76ac1a7379faaf822732aa33171ec299d44 100644 (file)
@@ -137,6 +137,10 @@ public:
     // return true if the frame is maximized
     virtual bool IsMaximized() const = 0;
 
+    // return true if the frame is always maximized
+    // due to native guidelines or current policy
+    virtual bool IsAlwaysMaximized() const;
+
     // return true if the frame is iconized
     virtual bool IsIconized() const = 0;
 
index 8441f436ebd1a678027af927f82473ba5362d42e..c9eed594e93e3219e352747484ba9685d9ff5931 100644 (file)
@@ -185,6 +185,11 @@ wxSize wxTopLevelWindowBase::GetDefaultSize()
 
 void wxTopLevelWindowBase::DoCentre(int dir)
 {
+    // on some platforms centering top level windows is impossible
+    // because they are always maximized by guidelines or limitations
+    if(IsAlwaysMaximized())
+        return;
+
     // we need the display rect anyhow so store it first
     int nDisplay = wxDisplay::GetFromWindow(this);
     wxDisplay dpy(nDisplay == wxNOT_FOUND ? 0 : nDisplay);
@@ -286,6 +291,14 @@ void wxTopLevelWindowBase::DoClientToScreen(int *x, int *y) const
     wxWindow::DoClientToScreen(x, y);
 }
 
+bool wxTopLevelWindowBase::IsAlwaysMaximized() const
+{
+#if defined(__SMARTPHONE__) || defined(__POCKETPC__)
+    return true;
+#else
+    return false;
+#endif
+}
 
 // ----------------------------------------------------------------------------
 // event handlers
index 82b65ed06be632bb9c528d7e27bbf1d92c90a85d..d7e96492431579ed3fc98e37a8810cc99f883fc8 100644 (file)
@@ -724,11 +724,11 @@ void wxTopLevelWindowMSW::Maximize(bool maximize)
 
 bool wxTopLevelWindowMSW::IsMaximized() const
 {
-#if defined(__SMARTPHONE__) || defined(__POCKETPC__)
-    return true;
-#else
-    return m_maximizeOnShow || ::IsZoomed(GetHwnd()) != 0;
+    return IsAlwaysMaximized() ||
+#if !defined(__SMARTPHONE__) && !defined(__POCKETPC__)
+           (::IsZoomed(GetHwnd()) != 0) ||
 #endif
+           m_maximizeOnShow;
 }
 
 void wxTopLevelWindowMSW::Iconize(bool iconize)