29G_DEFINE_TYPE(FlWindowMonitor, fl_window_monitor, G_TYPE_OBJECT)
32 GdkEventConfigure* event) {
40 GdkEventWindowState* event) {
42 self->on_state_changed();
49 self->on_is_active_notify();
54 self->on_title_notify();
58 GdkRectangle* flipped_rect,
59 GdkRectangle* final_rect,
65 if (final_rect ==
nullptr) {
70 self->on_moved_to_rect(final_rect->x, final_rect->y, final_rect->width,
88 FlWindowMonitor*
self = FL_WINDOW_MONITOR(
object);
90 g_clear_object(&
self->window);
92 G_OBJECT_CLASS(fl_window_monitor_parent_class)->dispose(
object);
103 void (*on_configure)(
void),
104 void (*on_state_changed)(
void),
105 void (*on_is_active_notify)(
void),
106 void (*on_title_notify)(
void),
107 void (*on_moved_to_rect)(
int,
int,
int,
int),
108 void (*on_close)(
void),
109 void (*on_destroy)(
void)) {
110 FlWindowMonitor*
self =
111 FL_WINDOW_MONITOR(g_object_new(fl_window_monitor_get_type(),
nullptr));
113 self->window = GTK_WINDOW(g_object_ref(
window));
115 self->on_configure = on_configure;
116 self->on_state_changed = on_state_changed;
117 self->on_is_active_notify = on_is_active_notify;
118 self->on_title_notify = on_title_notify;
119 self->on_moved_to_rect = on_moved_to_rect;
120 self->on_close = on_close;
121 self->on_destroy = on_destroy;
122 g_signal_connect_object(
window,
"configure-event",
125 g_signal_connect_object(
window,
"window-state-event",
128 g_signal_connect_object(
window,
"notify::is-active",
132 self, G_CONNECT_SWAPPED);
137 self, G_CONNECT_SWAPPED);
G_DEFINE_TYPE(FlBasicMessageChannelResponseHandle, fl_basic_message_channel_response_handle, G_TYPE_OBJECT) static void fl_basic_message_channel_response_handle_dispose(GObject *object)
static void destroy_cb(FlWindowMonitor *self)
static void is_active_notify_cb(FlWindowMonitor *self)
static void fl_window_monitor_dispose(GObject *object)
static void fl_window_monitor_class_init(FlWindowMonitorClass *klass)
static void title_notify_cb(FlWindowMonitor *self)
static void moved_to_rect_cb(FlWindowMonitor *self, GdkRectangle *flipped_rect, GdkRectangle *final_rect, gboolean flipped_x, gboolean flipped_y)
static gboolean configure_event_cb(FlWindowMonitor *self, GdkEventConfigure *event)
static gboolean window_state_event_cb(FlWindowMonitor *self, GdkEventWindowState *event)
G_MODULE_EXPORT FlWindowMonitor * fl_window_monitor_new(GtkWindow *window, void(*on_configure)(void), void(*on_state_changed)(void), void(*on_is_active_notify)(void), void(*on_title_notify)(void), void(*on_moved_to_rect)(int, int, int, int), void(*on_close)(void), void(*on_destroy)(void))
static void fl_window_monitor_init(FlWindowMonitor *self)
static gboolean delete_event_cb(FlWindowMonitor *self, GdkEvent *event)
GdkWindow * gtk_widget_get_window(GtkWidget *widget)
void(* on_title_notify)(void)
void(* on_state_changed)(void)
void(* on_is_active_notify)(void)
void(* on_configure)(void)
void(* on_moved_to_rect)(int, int, int, int)