1/*
2 * gdkmonitorprivate.h
3 *
4 * Copyright 2016 Red Hat, Inc.
5 *
6 * Matthias Clasen <mclasen@redhat.com>
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 */
21
22#ifndef __GDK_MONITOR_PRIVATE_H__
23#define __GDK_MONITOR_PRIVATE_H__
24
25#include "gdkmonitor.h"
26
27G_BEGIN_DECLS
28
29#define GDK_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_MONITOR, GdkMonitorClass))
30#define GDK_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_MONITOR))
31#define GDK_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_MONITOR, GdkMonitorClass))
32
33struct _GdkMonitor {
34 GObject parent;
35
36 GdkDisplay *display;
37 char *manufacturer;
38 char *model;
39 GdkRectangle geometry;
40 int width_mm;
41 int height_mm;
42 int scale_factor;
43 int refresh_rate;
44 GdkSubpixelLayout subpixel_layout;
45};
46
47struct _GdkMonitorClass {
48 GObjectClass parent_class;
49
50 void (* get_workarea) (GdkMonitor *monitor,
51 GdkRectangle *geometry);
52};
53
54GdkMonitor * gdk_monitor_new (GdkDisplay *display);
55
56void gdk_monitor_set_manufacturer (GdkMonitor *monitor,
57 const char *manufacturer);
58void gdk_monitor_set_model (GdkMonitor *monitor,
59 const char *model);
60void gdk_monitor_set_position (GdkMonitor *monitor,
61 int x,
62 int y);
63void gdk_monitor_set_size (GdkMonitor *monitor,
64 int width,
65 int height);
66void gdk_monitor_set_physical_size (GdkMonitor *monitor,
67 int width_mm,
68 int height_mm);
69void gdk_monitor_set_scale_factor (GdkMonitor *monitor,
70 int scale);
71void gdk_monitor_set_refresh_rate (GdkMonitor *monitor,
72 int refresh_rate);
73void gdk_monitor_set_subpixel_layout (GdkMonitor *monitor,
74 GdkSubpixelLayout subpixel);
75void gdk_monitor_invalidate (GdkMonitor *monitor);
76
77G_END_DECLS
78
79#endif /* __GDK_MONITOR_PRIVATE_H__ */
80