console/libgnt/gntmain.c

Wed, 19 Jul 2006 07:12:59 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Wed, 19 Jul 2006 07:12:59 +0000
changeset 14026
ad91ce0effe2
parent 14019
933130e2e0a9
child 14045
12b8c2bfd3fb
permissions
-rw-r--r--

[gaim-migrate @ 16520]
Add multi-column support for GntTree. Use it for email-notifications.
Restore colors before exiting.

13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
1 #include <panel.h>
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
2
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
3 #include "gnt.h"
13950
bd8d39b3a9e2 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
4 #include "gntbox.h"
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
5 #include "gntkeys.h"
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
6 #include "gntcolors.h"
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
7 #include "gnttree.h"
13950
bd8d39b3a9e2 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
8
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
9 #include <stdio.h>
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
10 #include <stdlib.h>
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
11 #include <locale.h>
13950
bd8d39b3a9e2 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
12 #include <unistd.h>
bd8d39b3a9e2 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
13 #include <string.h>
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
14
13973
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
15 static int lock_focus_list;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
16 static GList *focus_list;
13973
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
17
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
18 static int X_MIN;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
19 static int X_MAX;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
20 static int Y_MIN;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
21 static int Y_MAX;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
22
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
23 static gboolean ascii_only;
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
24
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
25 static GMainLoop *loop;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
26 static struct
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
27 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
28 GntWidget *window;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
29 GntWidget *tree;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
30 } window_list;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
31
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
32 typedef struct
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
33 {
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
34 GntWidget *me;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
35
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
36 PANEL *panel;
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
37 } GntNode;
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
38
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
39 typedef enum
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
40 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
41 GNT_KP_MODE_NORMAL,
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
42 GNT_KP_MODE_RESIZE,
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
43 GNT_KP_MODE_MOVE,
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
44 GNT_KP_MODE_MENU,
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
45 GNT_KP_MODE_WINDOW_LIST
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
46 } GntKeyPressMode;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
47
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
48 static GHashTable *nodes;
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
49
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
50 static void free_node(gpointer data);
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
51 static void draw_taskbar();
13981
0a90ffff2784 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13979
diff changeset
52 static void bring_on_top(GntWidget *widget);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
53
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
54 void gnt_screen_take_focus(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
55 {
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
56 GntWidget *w = NULL;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
57
13973
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
58 if (lock_focus_list)
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
59 return;
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
60
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
61 if (focus_list)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
62 w = focus_list->data;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
63
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
64 /* XXX: ew */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
65 focus_list = g_list_first(focus_list);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
66 focus_list = g_list_append(focus_list, widget);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
67 focus_list = g_list_find(focus_list, widget);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
68
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
69 gnt_widget_set_focus(widget, TRUE);
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
70 if (w)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
71 gnt_widget_set_focus(w, FALSE);
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
72 draw_taskbar();
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
73 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
74
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
75 void gnt_screen_remove_widget(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
76 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
77 int pos = g_list_index(g_list_first(focus_list), widget);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
78 GList *next;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
79
13973
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
80 if (lock_focus_list)
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
81 return;
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
82
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
83 if (pos == -1)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
84 return;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
85
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
86 focus_list = g_list_first(focus_list);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
87 focus_list = g_list_remove(focus_list, widget);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
88 next = g_list_nth(focus_list, pos - 1);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
89 if (next)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
90 focus_list = next;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
91
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
92 if (focus_list)
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
93 {
13981
0a90ffff2784 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13979
diff changeset
94 bring_on_top(focus_list->data);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
95 }
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
96 draw_taskbar();
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
97 }
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
98
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
99 static void
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
100 bring_on_top(GntWidget *widget)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
101 {
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
102 GntNode *node = g_hash_table_lookup(nodes, widget);
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
103
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
104 g_return_if_fail(focus_list->data == widget);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
105
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
106 if (!node)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
107 return;
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
108
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
109 gnt_widget_set_focus(focus_list->data, TRUE);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
110 gnt_widget_draw(focus_list->data);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
111
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
112 top_panel(node->panel);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
113
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
114 if (window_list.window)
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
115 {
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
116 GntNode *nd = g_hash_table_lookup(nodes, window_list.window);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
117 top_panel(nd->panel);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
118 }
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
119 update_panels();
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
120 doupdate();
13996
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
121 draw_taskbar();
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
122 }
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
123
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
124 static void
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
125 update_window_in_list(GntWidget *wid)
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
126 {
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
127 GntTextFormatFlags flag = 0;
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
128
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
129 if (window_list.window == NULL)
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
130 return;
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
131
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
132 if (wid == focus_list->data)
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
133 flag |= GNT_TEXT_FLAG_DIM;
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
134 else if (GNT_WIDGET_IS_FLAG_SET(wid, GNT_WIDGET_URGENT))
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
135 flag |= GNT_TEXT_FLAG_BOLD;
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
136
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
137 gnt_tree_set_row_flags(GNT_TREE(window_list.tree), wid, flag);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
138 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
139
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
140 static void
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
141 draw_taskbar()
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
142 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
143 static WINDOW *taskbar = NULL;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
144 GList *iter;
13981
0a90ffff2784 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13979
diff changeset
145 int n, width = 0;
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
146 int i;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
147
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
148 if (taskbar == NULL)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
149 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
150 taskbar = newwin(1, getmaxx(stdscr), getmaxy(stdscr) - 1, 0);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
151 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
152
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
153 wbkgdset(taskbar, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL));
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
154 werase(taskbar);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
155
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
156 n = g_list_length(g_list_first(focus_list));
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
157 if (n)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
158 width = getmaxx(stdscr) / n;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
159
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
160 for (i = 0, iter = g_list_first(focus_list); iter; iter = iter->next, i++)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
161 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
162 GntWidget *w = iter->data;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
163 int color;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
164
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
165 if (w == focus_list->data)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
166 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
167 /* This is the current window in focus */
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
168 color = GNT_COLOR_TITLE;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
169 GNT_WIDGET_UNSET_FLAGS(w, GNT_WIDGET_URGENT);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
170 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
171 else if (GNT_WIDGET_IS_FLAG_SET(w, GNT_WIDGET_URGENT))
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
172 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
173 /* This is a window with the URGENT hint set */
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
174 color = GNT_COLOR_TITLE_D;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
175 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
176 else
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
177 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
178 color = GNT_COLOR_NORMAL;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
179 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
180 wbkgdset(taskbar, '\0' | COLOR_PAIR(color));
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
181 mvwhline(taskbar, 0, width * i, ' ' | COLOR_PAIR(color), width);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
182 mvwprintw(taskbar, 0, width * i, "%s", GNT_BOX(w)->title);
13996
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
183
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
184 update_window_in_list(w);
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
185 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
186
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
187 wrefresh(taskbar);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
188 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
189
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
190 static void
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
191 switch_window(int direction)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
192 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
193 GntWidget *w = NULL;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
194 if (focus_list)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
195 w = focus_list->data;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
196
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
197 if (direction == 1)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
198 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
199 if (focus_list && focus_list->next)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
200 focus_list = focus_list->next;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
201 else
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
202 focus_list = g_list_first(focus_list);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
203 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
204 else if (direction == -1)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
205 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
206 if (focus_list && focus_list->prev)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
207 focus_list = focus_list->prev;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
208 else
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
209 focus_list = g_list_last(focus_list);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
210 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
211
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
212 if (focus_list)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
213 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
214 bring_on_top(focus_list->data);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
215 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
216
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
217 if (w && (!focus_list || w != focus_list->data))
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
218 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
219 gnt_widget_set_focus(w, FALSE);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
220 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
221 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
222
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
223 static void
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
224 window_list_activate(GntTree *tree, gpointer null)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
225 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
226 GntWidget *widget = gnt_tree_get_selection_data(GNT_TREE(tree));
13981
0a90ffff2784 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13979
diff changeset
227 GntWidget *old = NULL;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
228
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
229 if (focus_list)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
230 old = focus_list->data;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
231
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
232 focus_list = g_list_find(g_list_first(focus_list), widget);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
233 bring_on_top(widget);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
234
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
235 if (old && (!focus_list || old != focus_list->data))
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
236 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
237 gnt_widget_set_focus(old, FALSE);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
238 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
239 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
240
13981
0a90ffff2784 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13979
diff changeset
241 static void
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
242 show_window_list()
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
243 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
244 GntWidget *tree, *win;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
245 GList *iter;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
246
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
247 if (window_list.window)
13981
0a90ffff2784 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13979
diff changeset
248 return;
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
249
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
250 win = window_list.window = gnt_box_new(FALSE, FALSE);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
251 gnt_box_set_toplevel(GNT_BOX(win), TRUE);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
252 gnt_box_set_title(GNT_BOX(win), "Window List");
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
253 gnt_box_set_pad(GNT_BOX(win), 0);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
254
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
255 tree = window_list.tree = gnt_tree_new();
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
256
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
257 for (iter = g_list_first(focus_list); iter; iter = iter->next)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
258 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
259 GntBox *box = GNT_BOX(iter->data);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
260
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
261 gnt_tree_add_row_after(GNT_TREE(tree), box,
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
262 gnt_tree_create_row(GNT_TREE(tree), box->title), NULL, NULL);
13996
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
263 update_window_in_list(GNT_WIDGET(box));
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
264 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
265
14014
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
266 gnt_tree_set_selected(GNT_TREE(tree), focus_list->data);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
267 gnt_box_add_widget(GNT_BOX(win), tree);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
268
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
269 gnt_tree_set_col_width(GNT_TREE(tree), 0, getmaxx(stdscr) / 3);
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
270 gnt_widget_set_size(tree, 0, getmaxy(stdscr) / 2);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
271 gnt_widget_set_position(win, getmaxx(stdscr) / 3, getmaxy(stdscr) / 4);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
272
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
273 lock_focus_list = 1;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
274 gnt_widget_show(win);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
275 lock_focus_list = 0;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
276
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
277 g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(window_list_activate), NULL);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
278 }
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
279
14019
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
280 static void
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
281 shift_window(GntWidget *widget, int dir)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
282 {
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
283 GList *all = g_list_first(focus_list);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
284 GList *list = g_list_find(all, widget);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
285 int length, pos;
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
286 if (!list)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
287 return;
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
288
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
289 length = g_list_length(all);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
290 pos = g_list_position(all, list);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
291
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
292 pos += dir;
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
293 if (dir > 0)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
294 pos++;
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
295
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
296 if (pos < 0)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
297 pos = length;
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
298 else if (pos > length)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
299 pos = 0;
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
300
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
301 all = g_list_insert(all, widget, pos);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
302 all = g_list_delete_link(all, list);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
303 if (focus_list == list)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
304 focus_list = g_list_find(all, widget);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
305 draw_taskbar();
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
306 }
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
307
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
308 static gboolean
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
309 io_invoke(GIOChannel *source, GIOCondition cond, gpointer null)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
310 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
311 char buffer[256];
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
312 gboolean ret = FALSE;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
313 static GntKeyPressMode mode = GNT_KP_MODE_NORMAL;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
314
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
315 int rd = read(0, buffer, sizeof(buffer) - 1);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
316 if (rd < 0)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
317 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
318 endwin();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
319 printf("ERROR!\n");
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
320 exit(1);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
321 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
322 else if (rd == 0)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
323 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
324 endwin();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
325 printf("EOF\n");
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
326 exit(1);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
327 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
328
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
329 buffer[rd] = 0;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
330
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
331 if (mode == GNT_KP_MODE_NORMAL)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
332 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
333 if (focus_list)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
334 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
335 ret = gnt_widget_key_pressed(focus_list->data, buffer);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
336 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
337
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
338 if (!ret)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
339 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
340 if (buffer[0] == 27)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
341 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
342 /* Some special key has been pressed */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
343 if (strcmp(buffer+1, GNT_KEY_POPUP) == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
344 {}
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
345 else if (strcmp(buffer + 1, "c") == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
346 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
347 /* Alt + c was pressed. I am going to use it to close a window. */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
348 if (focus_list)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
349 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
350 gnt_widget_destroy(focus_list->data);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
351 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
352 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
353 else if (strcmp(buffer + 1, "q") == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
354 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
355 /* I am going to use Alt + q to quit. */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
356 g_main_loop_quit(loop);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
357 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
358 else if (strcmp(buffer + 1, "n") == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
359 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
360 /* Alt + n to go to the next window */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
361 switch_window(1);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
362 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
363 else if (strcmp(buffer + 1, "p") == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
364 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
365 /* Alt + p to go to the previous window */
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
366 switch_window(-1);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
367 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
368 else if (strcmp(buffer + 1, "m") == 0 && focus_list)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
369 {
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
370 /* Move a window */
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
371 mode = GNT_KP_MODE_MOVE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
372 }
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
373 else if (strcmp(buffer + 1, "w") == 0 && focus_list)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
374 {
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
375 /* Window list */
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
376 mode = GNT_KP_MODE_WINDOW_LIST;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
377 show_window_list();
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
378 }
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
379 else if (strcmp(buffer + 1, "r") == 0 && focus_list)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
380 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
381 /* Resize window */
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
382 mode = GNT_KP_MODE_RESIZE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
383 }
14019
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
384 else if (strcmp(buffer + 1, ",") == 0 && focus_list)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
385 {
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
386 /* Re-order the list of windows */
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
387 shift_window(focus_list->data, -1);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
388 }
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
389 else if (strcmp(buffer + 1, ".") == 0 && focus_list)
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
390 {
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
391 shift_window(focus_list->data, 1);
933130e2e0a9 [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
392 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
393 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
394 }
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
395 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
396 else if (mode == GNT_KP_MODE_MOVE && focus_list)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
397 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
398 if (buffer[0] == 27)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
399 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
400 gboolean changed = FALSE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
401 int x, y, w, h;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
402 GntWidget *widget = GNT_WIDGET(focus_list->data);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
403
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
404 gnt_widget_get_position(widget, &x, &y);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
405 gnt_widget_get_size(widget, &w, &h);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
406
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
407 if (strcmp(buffer + 1, GNT_KEY_LEFT) == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
408 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
409 if (x > X_MIN)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
410 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
411 x--;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
412 changed = TRUE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
413 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
414 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
415 else if (strcmp(buffer + 1, GNT_KEY_RIGHT) == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
416 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
417 if (x + w < X_MAX)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
418 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
419 x++;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
420 changed = TRUE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
421 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
422 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
423 else if (strcmp(buffer + 1, GNT_KEY_UP) == 0)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
424 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
425 if (y > Y_MIN)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
426 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
427 y--;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
428 changed = TRUE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
429 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
430 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
431 else if (strcmp(buffer + 1, GNT_KEY_DOWN) == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
432 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
433 if (y + h < Y_MAX)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
434 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
435 y++;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
436 changed = TRUE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
437 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
438 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
439 else if (buffer[1] == 0)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
440 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
441 mode = GNT_KP_MODE_NORMAL;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
442 changed = TRUE;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
443 gnt_widget_draw(widget);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
444 }
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
445
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
446 if (changed)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
447 {
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
448 GntNode *node = g_hash_table_lookup(nodes, widget);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
449 gnt_widget_set_position(widget, x, y);
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
450 move_panel(node->panel, y, x);
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
451 update_panels();
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
452 doupdate();
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
453 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
454 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
455 else if (*buffer == '\r')
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
456 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
457 mode = GNT_KP_MODE_NORMAL;
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
458 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
459 }
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
460 else if (mode == GNT_KP_MODE_WINDOW_LIST && window_list.window)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
461 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
462 gnt_widget_key_pressed(window_list.window, buffer);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
463
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
464 if (buffer[0] == '\r' || (buffer[0] == 27 && buffer[1] == 0))
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
465 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
466 mode = GNT_KP_MODE_NORMAL;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
467 lock_focus_list = 1;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
468 gnt_widget_destroy(window_list.window);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
469 window_list.window = NULL;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
470 window_list.tree = NULL;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
471 lock_focus_list = 0;
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
472 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
473 }
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
474 else if (mode == GNT_KP_MODE_RESIZE)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
475 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
476 if (buffer[0] == '\r' || (buffer[0] == 27 && buffer[1] == 0))
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
477 mode = GNT_KP_MODE_NORMAL;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
478 else if (buffer[0] == 27)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
479 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
480 GntWidget *widget = focus_list->data;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
481 gboolean changed = FALSE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
482 int width, height;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
483
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
484 gnt_widget_get_size(widget, &width, &height);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
485
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
486 if (strcmp(buffer + 1, GNT_KEY_DOWN) == 0)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
487 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
488 if (widget->priv.y + height < Y_MAX)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
489 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
490 height++;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
491 changed = TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
492 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
493 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
494 else if (strcmp(buffer + 1, GNT_KEY_UP) == 0)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
495 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
496 height--;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
497 changed = TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
498 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
499 else if (strcmp(buffer + 1, GNT_KEY_LEFT) == 0)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
500 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
501 width--;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
502 changed = TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
503 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
504 else if (strcmp(buffer + 1, GNT_KEY_RIGHT) == 0)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
505 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
506 if (widget->priv.x + width < X_MAX)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
507 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
508 width++;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
509 changed = TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
510 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
511 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
512
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
513 if (changed)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
514 {
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
515 gnt_screen_resize_widget(widget, width, height);
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
516 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
517 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
518 }
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
519
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
520 refresh();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
521
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
522 return TRUE;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
523 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
524
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
525 void gnt_init()
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
526 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
527 GIOChannel *channel = g_io_channel_unix_new(0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
528
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
529 g_io_channel_set_encoding(channel, NULL, NULL);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
530 g_io_channel_set_buffered(channel, FALSE);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
531 g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL );
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
532
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
533 int result = g_io_add_watch(channel,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
534 (G_IO_IN | G_IO_HUP | G_IO_ERR),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
535 io_invoke, NULL);
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
536 const char *locale = setlocale(LC_ALL, "");
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
537
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
538 if (locale && (strstr(locale, "UTF") || strstr(locale, "utf")))
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
539 ascii_only = FALSE;
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
540 else
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
541 ascii_only = TRUE;
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
542
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
543 initscr();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
544 gnt_init_colors();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
545
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
546 X_MIN = 0;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
547 Y_MIN = 0;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
548 X_MAX = getmaxx(stdscr);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
549 Y_MAX = getmaxy(stdscr) - 1;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
550
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
551 nodes = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, free_node);
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
552
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
553 wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL));
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
554 noecho();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
555 refresh();
13979
7d0a9a3932a2 [gaim-migrate @ 16419]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
556 #if MAYBE_SOMEDAY
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
557 mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, NULL);
13979
7d0a9a3932a2 [gaim-migrate @ 16419]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
558 #endif
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
559 wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL));
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
560 werase(stdscr);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
561 wrefresh(stdscr);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
562
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
563 g_type_init();
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
564 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
565
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
566 void gnt_main()
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
567 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
568 loop = g_main_loop_new(NULL, FALSE);
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
569 g_main_loop_run(loop);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
570 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
571
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
572 /*********************************
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
573 * Stuff for 'window management' *
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
574 *********************************/
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
575
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
576 static void
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
577 free_node(gpointer data)
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
578 {
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
579 GntNode *node = data;
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
580 hide_panel(node->panel);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
581 del_panel(node->panel);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
582 g_free(node);
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
583 }
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
584
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
585 void gnt_screen_occupy(GntWidget *widget)
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
586 {
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
587 GntNode *node;
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
588
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
589 while (widget->parent)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
590 widget = widget->parent;
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
591
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
592 if (g_hash_table_lookup(nodes, widget))
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
593 return; /* XXX: perhaps _update instead? */
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
594
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
595 node = g_new0(GntNode, 1);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
596 node->me = widget;
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
597
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
598 g_hash_table_replace(nodes, widget, node);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
599
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
600 if (window_list.window)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
601 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
602 if ((GNT_IS_BOX(widget) && GNT_BOX(widget)->title) && window_list.window != widget
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
603 && GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_CAN_TAKE_FOCUS))
13996
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
604 {
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
605 gnt_tree_add_row_after(GNT_TREE(window_list.tree), widget,
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
606 gnt_tree_create_row(GNT_TREE(window_list.tree), GNT_BOX(widget)->title),
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
607 NULL, NULL);
13996
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
608 update_window_in_list(widget);
fa46d71780ff [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
609 }
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
610 }
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
611
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
612 update_panels();
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
613 doupdate();
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
614 }
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
615
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
616 void gnt_screen_release(GntWidget *widget)
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
617 {
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
618 GntNode *node;
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
619
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
620 gnt_screen_remove_widget(widget);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
621 node = g_hash_table_lookup(nodes, widget);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
622
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13940
diff changeset
623 if (node == NULL) /* Yay! Nothing to do. */
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
624 return;
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
625
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
626 g_hash_table_remove(nodes, widget);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
627
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
628 if (window_list.window)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
629 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
630 gnt_tree_remove(GNT_TREE(window_list.tree), widget);
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
631 }
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
632
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
633 update_panels();
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
634 doupdate();
13931
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
635 }
a0a91e17f899 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13922
diff changeset
636
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
637 void gnt_screen_update(GntWidget *widget)
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
638 {
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
639 GntNode *node;
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
640
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
641 while (widget->parent)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
642 widget = widget->parent;
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
643
13950
bd8d39b3a9e2 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13947
diff changeset
644 gnt_box_sync_children(GNT_BOX(widget));
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
645 node = g_hash_table_lookup(nodes, widget);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
646 if (node && !node->panel)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
647 node->panel = new_panel(node->me->window);
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
648
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
649 if (window_list.window)
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
650 {
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
651 GntNode *nd = g_hash_table_lookup(nodes, window_list.window);
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
652 top_panel(nd->panel);
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
653 }
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
654
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
655 update_panels();
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
656 doupdate();
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
657 }
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
658
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
659 gboolean gnt_widget_has_focus(GntWidget *widget)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
660 {
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
661 GntWidget *w;
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
662 if (!widget)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
663 return FALSE;
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
664
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
665 w = widget;
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
666
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
667 while (widget->parent)
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
668 widget = widget->parent;
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
669
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
670 if (widget == window_list.window)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
671 return TRUE;
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
672
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
673 if (focus_list && focus_list->data == widget)
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
674 {
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
675 if (GNT_IS_BOX(widget) &&
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
676 (GNT_BOX(widget)->active == w || widget == w))
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
677 return TRUE;
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
678 }
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
679
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
680 return FALSE;
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
681 }
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13955
diff changeset
682
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
683 void gnt_widget_set_urgent(GntWidget *widget)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
684 {
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
685 while (widget->parent)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
686 widget = widget->parent;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
687
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
688 if (focus_list && focus_list->data == widget)
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
689 return;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
690
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
691 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_URGENT);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
692 draw_taskbar();
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
693 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
694
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
695 void gnt_quit()
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
696 {
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14019
diff changeset
697 gnt_uninit_colors();
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
698 endwin();
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
699 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
700
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
701 gboolean gnt_ascii_only()
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
702 {
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
703 return ascii_only;
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
704 }
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13981
diff changeset
705
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
706 void gnt_screen_resize_widget(GntWidget *widget, int width, int height)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
707 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
708 if (widget->parent == NULL)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
709 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
710 GntNode *node = g_hash_table_lookup(nodes, widget);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
711 if (!node)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
712 return;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
713
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
714 hide_panel(node->panel);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
715 gnt_widget_set_size(widget, width, height);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
716 gnt_widget_draw(widget);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
717 replace_panel(node->panel, widget->window);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
718 show_panel(node->panel);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
719 update_panels();
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
720 doupdate();
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
721 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
722 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13996
diff changeset
723

mercurial