Mon, 12 Nov 2007 17:13:44 +0000
Add maximize flags for windows.
|
17586
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
1 | /** |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
2 | * GNT - The GLib Ncurses Toolkit |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
3 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
4 | * GNT is the legal property of its developers, whose names are too numerous |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
6 | * source distribution. |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
7 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
8 | * This library is free software; you can redistribute it and/or modify |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
11 | * (at your option) any later version. |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
12 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
16 | * GNU General Public License for more details. |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
17 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18132
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
17586
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
21 | */ |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
22 | |
|
15099
935612584ff2
[gaim-migrate @ 17820]
Mark Doliner <markdoliner@pidgin.im>
parents:
15070
diff
changeset
|
23 | #include "gntstyle.h" |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
24 | #include "gntwindow.h" |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
25 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | #include <string.h> |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
28 | struct _GntWindowPriv |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
29 | { |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
30 | GHashTable *accels; /* key => menuitem-id */ |
|
21540
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
31 | GntWindowFlags flags; |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
32 | }; |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
33 | |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | enum |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
35 | { |
|
16779
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
36 | SIG_WORKSPACE_HIDE, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
37 | SIG_WORKSPACE_SHOW, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
38 | SIGS, |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | }; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
40 | |
|
16779
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
41 | static guint signals[SIGS] = { 0 }; |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
42 | |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
43 | static GntBoxClass *parent_class = NULL; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
44 | |
|
14678
97f57691faab
[gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14675
diff
changeset
|
45 | static void (*org_destroy)(GntWidget *widget); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | static gboolean |
|
15040
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
48 | show_menu(GntBindable *bind, GList *null) |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
49 | { |
|
15040
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
50 | GntWindow *win = GNT_WINDOW(bind); |
|
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
51 | if (win->menu) { |
|
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
52 | gnt_screen_menu_show(win->menu); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
53 | return TRUE; |
|
15040
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
54 | } |
|
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
55 | return FALSE; |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
56 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
57 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | static void |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
59 | gnt_window_destroy(GntWidget *widget) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
60 | { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
61 | GntWindow *window = GNT_WINDOW(widget); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
62 | if (window->menu) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
63 | gnt_widget_destroy(GNT_WIDGET(window->menu)); |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
64 | if (window->priv) { |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
65 | g_hash_table_destroy(window->priv->accels); |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
66 | g_free(window->priv); |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
67 | } |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
68 | org_destroy(widget); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
69 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
70 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
71 | static void |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
72 | gnt_window_class_init(GntWindowClass *klass) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
73 | { |
|
15040
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
74 | GntBindableClass *bindable = GNT_BINDABLE_CLASS(klass); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
75 | GntWidgetClass *wid_class = GNT_WIDGET_CLASS(klass); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
76 | parent_class = GNT_BOX_CLASS(klass); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
77 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
78 | org_destroy = wid_class->destroy; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
79 | wid_class->destroy = gnt_window_destroy; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
80 | |
|
16779
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
81 | signals[SIG_WORKSPACE_HIDE] = |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
82 | g_signal_new("workspace-hidden", |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
83 | G_TYPE_FROM_CLASS(klass), |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
84 | G_SIGNAL_RUN_LAST, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
85 | 0, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
86 | NULL, NULL, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
87 | g_cclosure_marshal_VOID__VOID, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
88 | G_TYPE_NONE, 0); |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
89 | |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
90 | signals[SIG_WORKSPACE_SHOW] = |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
91 | g_signal_new("workspace-shown", |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
92 | G_TYPE_FROM_CLASS(klass), |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
93 | G_SIGNAL_RUN_LAST, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
94 | 0, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
95 | NULL, NULL, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
96 | g_cclosure_marshal_VOID__VOID, |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
97 | G_TYPE_NONE, 0); |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
98 | |
|
15040
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
99 | gnt_bindable_class_register_action(bindable, "show-menu", show_menu, |
|
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
100 | GNT_KEY_CTRL_O, NULL); |
|
15070
9f16d253a3c3
[gaim-migrate @ 17789]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15040
diff
changeset
|
101 | gnt_bindable_register_binding(bindable, "show-menu", GNT_KEY_F10, NULL); |
|
15040
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
102 | gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), bindable); |
|
433e06134a7b
[gaim-migrate @ 17757]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14791
diff
changeset
|
103 | |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
104 | GNTDEBUG; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
105 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
106 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
107 | static void |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
108 | gnt_window_init(GTypeInstance *instance, gpointer class) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
109 | { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
110 | GntWidget *widget = GNT_WIDGET(instance); |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
111 | GntWindow *win = GNT_WINDOW(widget); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
112 | GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_NO_BORDER | GNT_WIDGET_NO_SHADOW); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
113 | GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_CAN_TAKE_FOCUS); |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
114 | win->priv = g_new0(GntWindowPriv, 1); |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
115 | win->priv->accels = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
116 | GNTDEBUG; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
117 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
118 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
119 | /****************************************************************************** |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
120 | * GntWindow API |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
121 | *****************************************************************************/ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
122 | GType |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
123 | gnt_window_get_gtype(void) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
124 | { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
125 | static GType type = 0; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
126 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
127 | if(type == 0) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
128 | { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
129 | static const GTypeInfo info = { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
130 | sizeof(GntWindowClass), |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
131 | NULL, /* base_init */ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
132 | NULL, /* base_finalize */ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
133 | (GClassInitFunc)gnt_window_class_init, |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
134 | NULL, /* class_finalize */ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
135 | NULL, /* class_data */ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
136 | sizeof(GntWindow), |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
137 | 0, /* n_preallocs */ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
138 | gnt_window_init, /* instance_init */ |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15099
diff
changeset
|
139 | NULL /* value_table */ |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
140 | }; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
141 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
142 | type = g_type_register_static(GNT_TYPE_BOX, |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
143 | "GntWindow", |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
144 | &info, 0); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
145 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
146 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
147 | return type; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
148 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
149 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
150 | GntWidget *gnt_window_new() |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
151 | { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
152 | GntWidget *widget = g_object_new(GNT_TYPE_WINDOW, NULL); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
153 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
154 | return widget; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
155 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
156 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
157 | GntWidget *gnt_window_box_new(gboolean homo, gboolean vert) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
158 | { |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
159 | GntWidget *wid = gnt_window_new(); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
160 | GntBox *box = GNT_BOX(wid); |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
161 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
162 | box->homogeneous = homo; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
163 | box->vertical = vert; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
164 | box->alignment = vert ? GNT_ALIGN_LEFT : GNT_ALIGN_MID; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
165 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
166 | return wid; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
167 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
168 | |
|
16779
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
169 | void |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
170 | gnt_window_workspace_hiding(GntWindow *window) |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
171 | { |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
172 | if (window->menu) |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
173 | gnt_widget_hide(GNT_WIDGET(window->menu)); |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
174 | g_signal_emit(window, signals[SIG_WORKSPACE_HIDE], 0); |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
175 | } |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
176 | |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
177 | void |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
178 | gnt_window_workspace_showing(GntWindow *window) |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
179 | { |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
180 | g_signal_emit(window, signals[SIG_WORKSPACE_SHOW], 0); |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
181 | } |
|
006f50afb7a6
Let windows know when the workspace they are in is being hidden/shown
Richard Nelson <wabz@pidgin.im>
parents:
15886
diff
changeset
|
182 | |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
183 | void gnt_window_set_menu(GntWindow *window, GntMenu *menu) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
184 | { |
|
14678
97f57691faab
[gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14675
diff
changeset
|
185 | /* If a menu already existed, then destroy that first. */ |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
186 | const char *name = gnt_widget_get_name(GNT_WIDGET(window)); |
|
14678
97f57691faab
[gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14675
diff
changeset
|
187 | if (window->menu) |
|
97f57691faab
[gaim-migrate @ 17344]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14675
diff
changeset
|
188 | gnt_widget_destroy(GNT_WIDGET(window->menu)); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
189 | window->menu = menu; |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
190 | if (name && window->priv) { |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
191 | if (!gnt_style_read_menu_accels(name, window->priv->accels)) { |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
192 | g_hash_table_destroy(window->priv->accels); |
|
21540
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
193 | window->priv->accels = NULL; |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
194 | } |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
195 | } |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
196 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
197 | |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
198 | const char * gnt_window_get_accel_item(GntWindow *window, const char *key) |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
199 | { |
|
21540
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
200 | if (window->priv->accels) |
|
20821
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
201 | return g_hash_table_lookup(window->priv->accels, key); |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
202 | return NULL; |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
203 | } |
|
51bd63176b50
Allow binding key-shortcuts to menuitems.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
204 | |
|
21540
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
205 | void gnt_window_set_maximize(GntWindow *window, GntWindowFlags maximize) |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
206 | { |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
207 | if (maximize & GNT_WINDOW_MAXIMIZE_X) |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
208 | window->priv->flags |= GNT_WINDOW_MAXIMIZE_X; |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
209 | else |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
210 | window->priv->flags &= ~GNT_WINDOW_MAXIMIZE_X; |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
211 | |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
212 | if (maximize & GNT_WINDOW_MAXIMIZE_Y) |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
213 | window->priv->flags |= GNT_WINDOW_MAXIMIZE_Y; |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
214 | else |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
215 | window->priv->flags &= ~GNT_WINDOW_MAXIMIZE_Y; |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
216 | } |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
217 | |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
218 | GntWindowFlags gnt_window_get_maximize(GntWindow *window) |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
219 | { |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
220 | return (window->priv->flags & (GNT_WINDOW_MAXIMIZE_X | GNT_WINDOW_MAXIMIZE_Y)); |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
221 | } |
|
2a3ffe144ae1
Add maximize flags for windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20821
diff
changeset
|
222 |