--- a/wms/irssi.c Fri Apr 05 23:40:03 2019 +0000
+++ b/wms/irssi.c Sat Apr 06 04:12:08 2019 -0400
@@ -43,30 +43,27 @@
-#define TYPE_IRSSI (irssi_get_type())
+#define GNT_TYPE_IRSSI_WM gnt_irssi_wm_get_type() +G_DECLARE_FINAL_TYPE(GntIrssiWM, gnt_irssi_wm, GNT, IRSSI_WM, GntWM)
/* This is changed whenever the buddylist is opened/closed or resized. */
-typedef struct _IrssiClass
-GType irssi_get_type(void);
+G_DEFINE_TYPE(GntIrssiWM, gnt_irssi_wm, GNT_TYPE_WM) void gntwm_init(GntWM **wm);
static void (*org_new_window)(GntWM *wm, GntWidget *win);
-get_xywh_for_frame(Irssi *irssi, int hor, int vert, int *x, int *y, int *w, int *h)
+get_xywh_for_frame(GntIrssiWM *irssi, int hor, int vert, int *x, int *y, int *w, int width, height, rx, ry;
@@ -99,7 +96,7 @@
-draw_line_separators(Irssi *irssi)
+draw_line_separators(GntIrssiWM *irssi) @@ -153,12 +150,14 @@
irssi_new_window(GntWM *wm, GntWidget *win)
+ GntIrssiWM *irssi = NULL; g_return_if_fail(win != NULL);
g_return_if_fail(wm != NULL);
+ irssi = GNT_IRSSI_WM(wm); name = gnt_widget_get_name(win);
if (!name || !strstr(name, "conversation-window")) {
if (!GNT_IS_MENU(win) && !GNT_WIDGET_IS_FLAG_SET(win, GNT_WIDGET_TRANSIENT)) {
@@ -171,8 +170,9 @@
gnt_window_set_maximize(GNT_WINDOW(win), GNT_WINDOW_MAXIMIZE_Y);
remove_border_set_position_size(wm, win, 0, 0, -1, getmaxy(stdscr) - 1);
- gnt_widget_get_size(win, &((Irssi*)wm)->buddylistwidth, NULL);
- draw_line_separators((Irssi*)wm);
+ gnt_widget_get_size(win, &irssi->buddylistwidth, + draw_line_separators(irssi); @@ -184,7 +184,7 @@
/* XXX: There should be some way to remember which frame a conversation window
* was in the last time. Perhaps save them in some ~/.gntpositionirssi or some
- get_xywh_for_frame((Irssi*)wm, 0, 0, &x, &y, &w, &h);
+ get_xywh_for_frame(irssi, 0, 0, &x, &y, &w, &h); remove_border_set_position_size(wm, win, x, y, w, h);
@@ -192,18 +192,22 @@
irssi_window_resized(GntWM *wm, GntNode *node)
+ GntIrssiWM *irssi = NULL; if (!is_budddylist(node->me))
- gnt_widget_get_size(node->me, &((Irssi*)wm)->buddylistwidth, NULL);
- draw_line_separators((Irssi*)wm);
+ irssi = GNT_IRSSI_WM(wm); + gnt_widget_get_size(node->me, &irssi->buddylistwidth, NULL); + draw_line_separators(irssi); irssi_close_window(GntWM *wm, GntWidget *win)
- if (is_budddylist(win))
- ((Irssi*)wm)->buddylistwidth = 0;
+ if (is_budddylist(win)) { + GntIrssiWM *irssi = GNT_IRSSI_WM(wm); + irssi->buddylistwidth = 0; @@ -239,7 +243,7 @@
-find_window_position(Irssi *irssi, GntWidget *win, int *h, int *v)
+find_window_position(GntIrssiWM *irssi, GntWidget *win, int *h, int *v) @@ -258,7 +262,7 @@
move_direction(GntBindable *bindable, GList *list)
GntWM *wm = GNT_WM(bindable);
- Irssi *irssi = (Irssi*)wm;
+ GntIrssiWM *irssi = GNT_IRSSI_WM(wm); @@ -289,7 +293,8 @@
-refresh_window(GntWidget *widget, G_GNUC_UNUSED GntNode *node, Irssi *irssi)
+refresh_window(GntWidget *widget, G_GNUC_UNUSED GntNode *node, @@ -319,12 +324,13 @@
irssi_terminal_refresh(GntWM *wm)
- draw_line_separators((Irssi*)wm);
+ GntIrssiWM *irssi = GNT_IRSSI_WM(wm); + draw_line_separators(irssi); g_hash_table_foreach(wm->nodes, (GHFunc)refresh_window, wm);
-irssi_class_init(IrssiClass *klass)
+gnt_irssi_wm_class_init(GntIrssiWMClass *klass) GntWMClass *pclass = GNT_WM_CLASS(klass);
@@ -349,12 +355,17 @@
+gnt_irssi_wm_init(G_GNUC_UNUSED GntIrssiWM *self) void gntwm_init(GntWM **wm)
- irssi = g_object_new(TYPE_IRSSI, NULL);
+ irssi = g_object_new(GNT_TYPE_IRSSI_WM, NULL); style = gnt_style_get_from_name("irssi", "split-v");
@@ -370,30 +381,3 @@
irssi->buddylistwidth = 0;
-GType irssi_get_type(void)
- static const GTypeInfo info = {
- NULL, /* base_finalize */
- (GClassInitFunc)irssi_class_init,
- NULL, /* instance_init */
- type = g_type_register_static(GNT_TYPE_WM,
--- a/wms/s.c Fri Apr 05 23:40:03 2019 +0000
+++ b/wms/s.c Sat Apr 06 04:12:08 2019 -0400
@@ -33,23 +33,15 @@
-#define TYPE_S (s_get_type())
+#define GNT_TYPE_S_WM gnt_s_wm_get_type() +G_DECLARE_FINAL_TYPE(GntSWM, gnt_s_wm, GNT, S_WM, GntWM)
+G_DEFINE_TYPE(GntSWM, gnt_s_wm, GNT_TYPE_WM) void gntwm_init(GntWM **wm);
static void (*org_new_window)(GntWM *wm, GntWidget *win);
@@ -197,7 +189,7 @@
-s_class_init(SClass *klass)
+gnt_s_wm_class_init(GntSWMClass *klass) GntWMClass *pclass = GNT_WM_CLASS(klass);
@@ -215,34 +207,13 @@
-void gntwm_init(GntWM **wm)
+gnt_s_wm_init(G_GNUC_UNUSED GntSWM *self) - *wm = g_object_new(TYPE_S, NULL);
- static const GTypeInfo info = {
- NULL, /* base_finalize */
- (GClassInitFunc)s_class_init,
- NULL, /* instance_init */
- type = g_type_register_static(GNT_TYPE_WM,
+ *wm = g_object_new(GNT_TYPE_S_WM, NULL);