gtk2/gdk/win32/gdkmonitor-win32.h

95 lines
2.9 KiB
C
Raw Normal View History

2016-04-20 07:36:00 +00:00
/*
* Copyright © 2016 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GDK_WIN32_MONITOR_PRIVATE_H__
#define __GDK_WIN32_MONITOR_PRIVATE_H__
#include <windows.h>
#include <glib.h>
#include <gio/gio.h>
#include "gdkmonitorprivate.h"
#include "gdkwin32monitor.h"
/*
* The number is the degrees the display is rotated clockwise
* from its natural position.
* I.e. most displays will have 0. A normal display
* that is rotated by 90 degrees will
* have 90. The same display rotated counter-clockwise
* will have 270. The same display
* rotated by 180 degrees (i.e. upside-down)
* will have 180.
* Accordingly, 0 mode
* fontsmoothing is used as-is - i.e. it is assumed that
* subpixel structure is horizontal (ClearType does not support
* vertical subpixels; if the display has naturally vertical
* subpixel structure, ClearType should be disabled altogether).
* In 90 subpixel structure has
* its verticality flipped (rgb -> vrgb; bgr -> vbgr).
* In 180 subpixel structure is
* horizontally flipped (rgb -> bgr; bgr -> rgb).
* In 270 subpixel structure is
* flipped both horizontally and vertically
* (rgb -> vbgr; bgr -> vrgb).
*/
typedef enum _GdkWin32MonitorRotation {
GDK_WIN32_MONITOR_ROTATION_UNKNOWN = 0,
GDK_WIN32_MONITOR_ROTATION_0 = 1,
GDK_WIN32_MONITOR_ROTATION_90 = 2,
GDK_WIN32_MONITOR_ROTATION_180 = 3,
GDK_WIN32_MONITOR_ROTATION_270 = 4,
} GdkWin32MonitorRotation;
2016-04-20 07:36:00 +00:00
struct _GdkWin32Monitor
{
GdkMonitor parent;
/* work area */
GdkRectangle work_rect;
/* Device instance path (used to match GdkWin32Monitor to monitor device) */
gchar *instance_path;
/* Indicates display rotation and its normal proportions.
* Used to determine pixel structure for subpixel smoothing.
*/
GdkWin32MonitorRotation orientation;
2016-04-20 07:36:00 +00:00
/* TRUE if monitor is made up by us
* (this happens when system has logical monitors, but no physical ones).
*/
guint madeup : 1;
/* TRUE if we should notify GDK about this monitor being added */
guint add : 1;
/* TRUE if we should notify GDK about this monitor being removed */
guint remove : 1;
};
struct _GdkWin32MonitorClass {
GdkMonitorClass parent_class;
};
int _gdk_win32_monitor_compare (GdkWin32Monitor *a, GdkWin32Monitor *b);
const gchar *_gdk_win32_monitor_get_pixel_structure (GdkMonitor *monitor);
2016-04-20 07:36:00 +00:00
#endif