added wxDisplay::GetClientArea() (currently implemented for single display and MSW implementations only)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -94,6 +94,7 @@ All (GUI):
|
||||
- UpdateUI handler can now show/hide the window too (Ronald Weiss)
|
||||
- More than one filter allowed in in wxDocTemplate filter.
|
||||
- Added wxListBox::HitTest()
|
||||
- Added wxDisplay::GetClientArea()
|
||||
|
||||
wxMSW:
|
||||
|
||||
|
@@ -57,6 +57,20 @@ function that changed the video mode to the system
|
||||
default by using the system's 'scrn' resource.
|
||||
|
||||
|
||||
\membersection{wxDisplay::GetClientArea}\label{wxdisplaygetclientarea}
|
||||
|
||||
\constfunc{wxRect }{GetClientArea}{\void}
|
||||
|
||||
Returns the client area of the display. The client area is the part of the
|
||||
display available for the normal (non full screen) windows, usually it is the
|
||||
same as \helpref{GetGeometry}{wxdisplaygetgeometry} but it could be less if
|
||||
there is a taskbar (or equivalent) on this display.
|
||||
|
||||
\wxheading{See also:}
|
||||
|
||||
\helpref{wxClientDisplayRect}{wxclientdisplayrect}
|
||||
|
||||
|
||||
\membersection{wxDisplay::GetCount}\label{wxdisplaygetcount}
|
||||
|
||||
\func{static size\_t}{GetCount}{\void}
|
||||
@@ -112,6 +126,10 @@ Returns \texttt{wxNOT\_FOUND} if the window is not on any connected display.
|
||||
Returns the bounding rectangle of the display whose index was passed to the
|
||||
constructor.
|
||||
|
||||
\wxheading{See also:}
|
||||
|
||||
\helpref{GetClientArea}{wxdisplaygetclientarea}, \helpref{wxDisplaySize}{wxdisplaysize}
|
||||
|
||||
|
||||
\membersection{wxDisplay::GetModes}\label{wxdisplaygetmodes}
|
||||
|
||||
|
@@ -68,9 +68,12 @@ public:
|
||||
// return true if the object was initialized successfully
|
||||
bool IsOk() const { return m_impl != NULL; }
|
||||
|
||||
// get the display size
|
||||
// get the full display size
|
||||
wxRect GetGeometry() const;
|
||||
|
||||
// get the client area of the display, i.e. without taskbars and such
|
||||
wxRect GetClientArea() const;
|
||||
|
||||
// name may be empty
|
||||
wxString GetName() const;
|
||||
|
||||
|
@@ -52,6 +52,9 @@ public:
|
||||
// return the full area of this display
|
||||
virtual wxRect GetGeometry() const = 0;
|
||||
|
||||
// return the area of the display available for normal windows
|
||||
virtual wxRect GetClientArea() const { return GetGeometry(); }
|
||||
|
||||
// return the name (may be empty)
|
||||
virtual wxString GetName() const = 0;
|
||||
|
||||
|
@@ -260,6 +260,15 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
|
||||
r.width, r.height)
|
||||
));
|
||||
|
||||
const wxRect rc(display.GetClientArea());
|
||||
sizer->Add(new wxStaticText(page, wxID_ANY, _T("Client area: ")));
|
||||
sizer->Add(new wxStaticText
|
||||
(
|
||||
page,
|
||||
wxID_ANY,
|
||||
wxString::Format(_T("(%d, %d)-(%d, %d)"),
|
||||
rc.x, rc.y, rc.width, rc.height)
|
||||
));
|
||||
|
||||
sizer->Add(new wxStaticText(page, wxID_ANY, _T("Name: ")));
|
||||
sizer->Add(new wxStaticText(page, wxID_ANY, display.GetName()));
|
||||
|
@@ -68,6 +68,8 @@ public:
|
||||
return r;
|
||||
}
|
||||
|
||||
virtual wxRect GetClientArea() const { return wxGetClientDisplayRect(); }
|
||||
|
||||
virtual wxString GetName() const { return wxString(); }
|
||||
|
||||
#if wxUSE_DISPLAY
|
||||
@@ -162,6 +164,13 @@ wxRect wxDisplay::GetGeometry() const
|
||||
return m_impl->GetGeometry();
|
||||
}
|
||||
|
||||
wxRect wxDisplay::GetClientArea() const
|
||||
{
|
||||
wxCHECK_MSG( IsOk(), wxRect(), _T("invalid wxDisplay object") );
|
||||
|
||||
return m_impl->GetClientArea();
|
||||
}
|
||||
|
||||
wxString wxDisplay::GetName() const
|
||||
{
|
||||
wxCHECK_MSG( IsOk(), wxString(), _T("invalid wxDisplay object") );
|
||||
|
@@ -142,6 +142,9 @@ struct wxDisplayInfo
|
||||
// the entire area of this monitor in virtual screen coordinates
|
||||
wxRect m_rect;
|
||||
|
||||
// the work or client area, i.e. the area available for the normal windows
|
||||
wxRect m_rectClient;
|
||||
|
||||
// the display device name for this monitor, empty initially and retrieved
|
||||
// on demand by DoGetName()
|
||||
wxString m_devName;
|
||||
@@ -167,6 +170,7 @@ public:
|
||||
}
|
||||
|
||||
virtual wxRect GetGeometry() const;
|
||||
virtual wxRect GetClientArea() const;
|
||||
virtual wxString GetName() const;
|
||||
virtual bool IsPrimary() const;
|
||||
|
||||
@@ -415,6 +419,7 @@ void wxDisplayInfo::Initialize()
|
||||
}
|
||||
|
||||
wxCopyRECTToRect(monInfo.rcMonitor, m_rect);
|
||||
wxCopyRECTToRect(monInfo.rcWork, m_rectClient);
|
||||
m_devName = monInfo.szDevice;
|
||||
m_flags = monInfo.dwFlags;
|
||||
}
|
||||
@@ -432,6 +437,14 @@ wxRect wxDisplayImplWin32Base::GetGeometry() const
|
||||
return m_info.m_rect;
|
||||
}
|
||||
|
||||
wxRect wxDisplayImplWin32Base::GetClientArea() const
|
||||
{
|
||||
if ( m_info.m_rectClient.IsEmpty() )
|
||||
m_info.Initialize();
|
||||
|
||||
return m_info.m_rectClient;
|
||||
}
|
||||
|
||||
wxString wxDisplayImplWin32Base::GetName() const
|
||||
{
|
||||
if ( m_info.m_devName.IsEmpty() )
|
||||
|
Reference in New Issue
Block a user