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,
63 self->on_moved_to_rect(final_rect->x, final_rect->y, final_rect->width,
81 FlWindowMonitor*
self = FL_WINDOW_MONITOR(
object);
85 g_signal_handlers_disconnect_by_data(
self->window,
self);
86 g_clear_object(&
self->window);
88 G_OBJECT_CLASS(fl_window_monitor_parent_class)->dispose(
object);
99 void (*on_configure)(
void),
100 void (*on_state_changed)(
void),
101 void (*on_is_active_notify)(
void),
102 void (*on_title_notify)(
void),
103 void (*on_moved_to_rect)(
int,
int,
int,
int),
104 void (*on_close)(
void),
105 void (*on_destroy)(
void)) {
106 FlWindowMonitor*
self =
107 FL_WINDOW_MONITOR(g_object_new(fl_window_monitor_get_type(),
nullptr));
109 self->window = GTK_WINDOW(g_object_ref(
window));
111 self->on_configure = on_configure;
112 self->on_state_changed = on_state_changed;
113 self->on_is_active_notify = on_is_active_notify;
114 self->on_title_notify = on_title_notify;
115 self->on_moved_to_rect = on_moved_to_rect;
116 self->on_close = on_close;
117 self->on_destroy = on_destroy;
118 g_signal_connect_swapped(
window,
"configure-event",
120 g_signal_connect_swapped(
window,
"window-state-event",
122 g_signal_connect_swapped(
window,
"notify::is-active",
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)