1 /* 2 * live-window: An actor showing the content of a window which will 3 * be updated if changed and visible on active workspace. 4 * It also provides controls to manipulate it. 5 * 6 * Copyright 2012-2020 Stephan Haller <nomad@froevel.de> 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program 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 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 21 * MA 02110-1301, USA. 22 * 23 * 24 */ 25 26 #ifndef __LIBXFDASHBOARD_LIVE_WINDOW__ 27 #define __LIBXFDASHBOARD_LIVE_WINDOW__ 28 29 #if !defined(__LIBXFDASHBOARD_H_INSIDE__) && !defined(LIBXFDASHBOARD_COMPILATION) 30 #error "Only <libxfdashboard/libxfdashboard.h> can be included directly." 31 #endif 32 33 #include <clutter/clutter.h> 34 35 #include <libxfdashboard/live-window-simple.h> 36 #include <libxfdashboard/window-tracker.h> 37 38 G_BEGIN_DECLS 39 40 #define XFDASHBOARD_TYPE_LIVE_WINDOW (xfdashboard_live_window_get_type()) 41 #define XFDASHBOARD_LIVE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), XFDASHBOARD_TYPE_LIVE_WINDOW, XfdashboardLiveWindow)) 42 #define XFDASHBOARD_IS_LIVE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), XFDASHBOARD_TYPE_LIVE_WINDOW)) 43 #define XFDASHBOARD_LIVE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), XFDASHBOARD_TYPE_LIVE_WINDOW, XfdashboardLiveWindowClass)) 44 #define XFDASHBOARD_IS_LIVE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), XFDASHBOARD_TYPE_LIVE_WINDOW)) 45 #define XFDASHBOARD_LIVE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), XFDASHBOARD_TYPE_LIVE_WINDOW, XfdashboardLiveWindowClass)) 46 47 typedef struct _XfdashboardLiveWindow XfdashboardLiveWindow; 48 typedef struct _XfdashboardLiveWindowClass XfdashboardLiveWindowClass; 49 typedef struct _XfdashboardLiveWindowPrivate XfdashboardLiveWindowPrivate; 50 51 struct _XfdashboardLiveWindow 52 { 53 /*< private >*/ 54 /* Parent instance */ 55 XfdashboardLiveWindowSimple parent_instance; 56 57 /* Private structure */ 58 XfdashboardLiveWindowPrivate *priv; 59 }; 60 61 struct _XfdashboardLiveWindowClass 62 { 63 /*< private >*/ 64 /* Parent class */ 65 XfdashboardLiveWindowSimpleClass parent_class; 66 67 /*< public >*/ 68 /* Virtual functions */ 69 void (*clicked)(XfdashboardLiveWindow *self); 70 void (*close)(XfdashboardLiveWindow *self); 71 }; 72 73 /* Public API */ 74 GType xfdashboard_live_window_get_type(void) G_GNUC_CONST; 75 76 ClutterActor* xfdashboard_live_window_new(void); 77 ClutterActor* xfdashboard_live_window_new_for_window(XfdashboardWindowTrackerWindow *inWindow); 78 79 gfloat xfdashboard_live_window_get_title_actor_padding(XfdashboardLiveWindow *self); 80 void xfdashboard_live_window_set_title_actor_padding(XfdashboardLiveWindow *self, gfloat inPadding); 81 82 gfloat xfdashboard_live_window_get_close_button_padding(XfdashboardLiveWindow *self); 83 void xfdashboard_live_window_set_close_button_padding(XfdashboardLiveWindow *self, gfloat inPadding); 84 85 gboolean xfdashboard_live_window_get_show_subwindows(XfdashboardLiveWindow *self); 86 void xfdashboard_live_window_set_show_subwindows(XfdashboardLiveWindow *self, gboolean inShowSubwindows); 87 88 gboolean xfdashboard_live_window_get_allow_subwindows(XfdashboardLiveWindow *self); 89 void xfdashboard_live_window_set_allow_subwindows(XfdashboardLiveWindow *self, gboolean inAllowSubwindows); 90 91 G_END_DECLS 92 93 #endif /* __LIBXFDASHBOARD_LIVE_WINDOW__ */ 94