Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 : #ifndef _VCL_GTKSYS_HXX_
10 : #define _VCL_GTKSYS_HXX_
11 :
12 : #include "generic/gensys.h"
13 : #include <gtk/gtk.h>
14 : #include <unx/saltype.h>
15 : #include <deque>
16 :
17 : class GtkSalSystem : public SalGenericSystem
18 : {
19 : typedef std::deque<std::pair<GdkScreen*, int> > ScreenMonitors_t;
20 :
21 : GdkDisplay *mpDisplay;
22 : // Number of monitors for every active screen.
23 : ScreenMonitors_t maScreenMonitors;
24 : public:
25 : GtkSalSystem();
26 : virtual ~GtkSalSystem();
27 : static GtkSalSystem *GetSingleton();
28 :
29 : virtual bool IsUnifiedDisplay();
30 : virtual unsigned int GetDisplayScreenCount();
31 : virtual unsigned int GetDisplayBuiltInScreen();
32 : virtual OUString GetDisplayScreenName (unsigned int nScreen);
33 : virtual Rectangle GetDisplayScreenPosSizePixel (unsigned int nScreen);
34 : virtual Rectangle GetDisplayScreenWorkAreaPosSizePixel (unsigned int nScreen);
35 : virtual int ShowNativeDialog (const OUString& rTitle,
36 : const OUString& rMessage,
37 : const std::list< OUString >& rButtons,
38 : int nDefButton);
39 0 : SalX11Screen GetDisplayDefaultXScreen()
40 0 : { return getXScreenFromDisplayScreen( GetDisplayBuiltInScreen() ); }
41 : int GetDisplayXScreenCount();
42 : SalX11Screen getXScreenFromDisplayScreen(unsigned int nDisplayScreen);
43 : void countScreenMonitors();
44 : // We have a 'screen' number that is combined from screen-idx + monitor-idx
45 : int getScreenIdxFromPtr (GdkScreen *pScreen);
46 : int getScreenMonitorIdx (GdkScreen *pScreen, int nX, int nY);
47 : GdkScreen *getScreenMonitorFromIdx (int nIdx, gint &nMonitor);
48 : };
49 :
50 : #endif // _VCL_GTKSYS_HXX_
51 :
52 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|