1 /* 2 * window-tracker-monitor: A monitor object tracked by window tracker. 3 * It provides information about position and 4 * size of monitor within screen and also a flag 5 * if this monitor is the primary one. 6 * 7 * Copyright 2012-2016 Stephan Haller <nomad@froevel.de> 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 22 * MA 02110-1301, USA. 23 * 24 * 25 */ 26 27 #ifndef __LIBXFDASHBOARD_WINDOW_TRACKER_MONITOR__ 28 #define __LIBXFDASHBOARD_WINDOW_TRACKER_MONITOR__ 29 30 #if !defined(__LIBXFDASHBOARD_H_INSIDE__) && !defined(LIBXFDASHBOARD_COMPILATION) 31 #error "Only <libxfdashboard/libxfdashboard.h> can be included directly." 32 #endif 33 34 #include <glib-object.h> 35 36 G_BEGIN_DECLS 37 38 #define XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR (xfdashboard_window_tracker_monitor_get_type()) 39 #define XFDASHBOARD_WINDOW_TRACKER_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR, XfdashboardWindowTrackerMonitor)) 40 #define XFDASHBOARD_IS_WINDOW_TRACKER_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR)) 41 #define XFDASHBOARD_WINDOW_TRACKER_MONITOR_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR, XfdashboardWindowTrackerMonitorInterface)) 42 43 typedef struct _XfdashboardWindowTrackerMonitor XfdashboardWindowTrackerMonitor; 44 typedef struct _XfdashboardWindowTrackerMonitorInterface XfdashboardWindowTrackerMonitorInterface; 45 46 struct _XfdashboardWindowTrackerMonitorInterface 47 { 48 /*< private >*/ 49 /* Parent class */ 50 GTypeInterface parent_interface; 51 52 /*< public >*/ 53 /* Virtual functions */ 54 gboolean (*is_equal)(XfdashboardWindowTrackerMonitor *inLeft, XfdashboardWindowTrackerMonitor *inRight); 55 56 gboolean (*is_primary)(XfdashboardWindowTrackerMonitor *self); 57 gint (*get_number)(XfdashboardWindowTrackerMonitor *self); 58 59 void (*get_geometry)(XfdashboardWindowTrackerMonitor *self, gint *outX, gint *outY, gint *outWidth, gint *outHeight); 60 61 /* Signals */ 62 void (*primary_changed)(XfdashboardWindowTrackerMonitor *self); 63 void (*geometry_changed)(XfdashboardWindowTrackerMonitor *self); 64 }; 65 66 /* Public API */ 67 GType xfdashboard_window_tracker_monitor_get_type(void) G_GNUC_CONST; 68 69 gboolean xfdashboard_window_tracker_monitor_is_equal(XfdashboardWindowTrackerMonitor *inLeft, 70 XfdashboardWindowTrackerMonitor *inRight); 71 72 gint xfdashboard_window_tracker_monitor_get_number(XfdashboardWindowTrackerMonitor *self); 73 74 gboolean xfdashboard_window_tracker_monitor_is_primary(XfdashboardWindowTrackerMonitor *self); 75 76 void xfdashboard_window_tracker_monitor_get_geometry(XfdashboardWindowTrackerMonitor *self, 77 gint *outX, 78 gint *outY, 79 gint *outWidth, 80 gint *outHeight); 81 gboolean xfdashboard_window_tracker_monitor_contains(XfdashboardWindowTrackerMonitor *self, 82 gint inX, 83 gint inY); 84 85 G_END_DECLS 86 87 #endif /* __LIBXFDASHBOARD_WINDOW_TRACKER_MONITOR__ */ 88