1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/display_impl.h
3 // Purpose: wxDisplayImpl class declaration
4 // Author: Vadim Zeitlin
7 // Copyright: (c) 2002-2006 Vadim Zeitlin <vadim@wxwindows.org>
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_DISPLAY_IMPL_H_BASE_
12 #define _WX_DISPLAY_IMPL_H_BASE_
14 #include "wx/gdicmn.h" // for wxRect
16 // ----------------------------------------------------------------------------
17 // wxDisplayFactory: allows to create wxDisplay objects
18 // ----------------------------------------------------------------------------
20 class WXDLLIMPEXP_CORE wxDisplayFactory
23 wxDisplayFactory() { }
24 virtual ~wxDisplayFactory() { }
26 // create a new display object
28 // it can return a NULL pointer if the display creation failed
29 virtual wxDisplayImpl
*CreateDisplay(unsigned n
) = 0;
31 // get the total number of displays
32 virtual unsigned GetCount() = 0;
34 // return the display for the given point or wxNOT_FOUND
35 virtual int GetFromPoint(const wxPoint
& pt
) = 0;
37 // return the display for the given window or wxNOT_FOUND
39 // the window pointer must not be NULL (i.e. caller should check it)
40 virtual int GetFromWindow(const wxWindow
*window
);
43 // ----------------------------------------------------------------------------
44 // wxDisplayImpl: base class for all wxDisplay implementations
45 // ----------------------------------------------------------------------------
47 class WXDLLIMPEXP_CORE wxDisplayImpl
50 // virtual dtor for this base class
51 virtual ~wxDisplayImpl() { }
54 // return the full area of this display
55 virtual wxRect
GetGeometry() const = 0;
57 // return the area of the display available for normal windows
58 virtual wxRect
GetClientArea() const { return GetGeometry(); }
60 // return the name (may be empty)
61 virtual wxString
GetName() const = 0;
63 // return the index of this display
64 unsigned GetIndex() const { return m_index
; }
66 // return true if this is the primary monitor (usually one with index 0)
67 virtual bool IsPrimary() const { return GetIndex() == 0; }
71 // implements wxDisplay::GetModes()
72 virtual wxArrayVideoModes
GetModes(const wxVideoMode
& mode
) const = 0;
74 // get current video mode
75 virtual wxVideoMode
GetCurrentMode() const = 0;
77 // change current mode, return true if succeeded, false otherwise
78 virtual bool ChangeMode(const wxVideoMode
& mode
) = 0;
79 #endif // wxUSE_DISPLAY
82 // create the object providing access to the display with the given index
83 wxDisplayImpl(unsigned n
) : m_index(n
) { }
86 // the index of this display (0 is always the primary one)
87 const unsigned m_index
;
90 friend class wxDisplayFactory
;
92 wxDECLARE_NO_COPY_CLASS(wxDisplayImpl
);
95 // ----------------------------------------------------------------------------
96 // wxDisplayFactorySingle
97 // ----------------------------------------------------------------------------
99 // this is a stub implementation using single/main display only, it is
100 // available even if wxUSE_DISPLAY == 0
101 class WXDLLIMPEXP_CORE wxDisplayFactorySingle
: public wxDisplayFactory
104 virtual wxDisplayImpl
*CreateDisplay(unsigned n
);
105 virtual unsigned GetCount() { return 1; }
106 virtual int GetFromPoint(const wxPoint
& pt
);
109 #endif // _WX_DISPLAY_IMPL_H_BASE_