annotate console/libgnt/gntmain.c @ 14042:143474e2b1cb

[gaim-migrate @ 16648] Do not give focus to new windows. Instead, set the urgent-hint for them. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 05 Aug 2006 17:04:47 +0000
parents d63f59ee6c98
children 2d1b41e3cf0d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
1 #include <panel.h>
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
2
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
3 #include "gnt.h"
13888
9d66969a2e32 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13885
diff changeset
4 #include "gntbox.h"
14004
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
5 #include "gntcolors.h"
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
6 #include "gntkeys.h"
14004
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
7 #include "gntstyle.h"
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
8 #include "gnttree.h"
13888
9d66969a2e32 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13885
diff changeset
9
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
10 #include <stdio.h>
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
11 #include <stdlib.h>
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
12 #include <locale.h>
13888
9d66969a2e32 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13885
diff changeset
13 #include <unistd.h>
9d66969a2e32 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13885
diff changeset
14 #include <string.h>
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
15
13911
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
16 static int lock_focus_list;
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
17 static GList *focus_list;
13911
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
18
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
19 static int X_MIN;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
20 static int X_MAX;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
21 static int Y_MIN;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
22 static int Y_MAX;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
23
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
24 static gboolean ascii_only;
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
25
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
26 static GMainLoop *loop;
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
27 static struct
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
28 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
29 GntWidget *window;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
30 GntWidget *tree;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
31 } window_list;
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
32
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
33 typedef struct
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
34 {
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
35 GntWidget *me;
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
36
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
37 PANEL *panel;
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
38 } GntNode;
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
39
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
40 typedef enum
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
41 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
42 GNT_KP_MODE_NORMAL,
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
43 GNT_KP_MODE_RESIZE,
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
44 GNT_KP_MODE_MOVE,
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
45 GNT_KP_MODE_MENU,
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
46 GNT_KP_MODE_WINDOW_LIST
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
47 } GntKeyPressMode;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
48
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
49 static GHashTable *nodes;
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
50
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
51 static void free_node(gpointer data);
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
52 static void draw_taskbar();
13919
0febf380b473 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13917
diff changeset
53 static void bring_on_top(GntWidget *widget);
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
54
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
55 void gnt_screen_take_focus(GntWidget *widget)
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
56 {
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
57 GntWidget *w = NULL;
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
58
13911
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
59 if (lock_focus_list)
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
60 return;
14004
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
61 if (g_list_find(g_list_first(focus_list), widget))
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
62 return;
13911
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
63
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
64 if (focus_list)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
65 w = focus_list->data;
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
66
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
67 /* XXX: ew */
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
68 focus_list = g_list_first(focus_list);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
69 focus_list = g_list_append(focus_list, widget);
14042
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
70 focus_list = g_list_find(focus_list, w ? w : widget);
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
71
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
72 gnt_widget_set_focus(widget, TRUE);
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
73 if (w)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
74 gnt_widget_set_focus(w, FALSE);
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
75 draw_taskbar();
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
76 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
77
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
78 void gnt_screen_remove_widget(GntWidget *widget)
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
79 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
80 int pos = g_list_index(g_list_first(focus_list), widget);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
81 GList *next;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
82
13911
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
83 if (lock_focus_list)
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
84 return;
b210409cdc56 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13907
diff changeset
85
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
86 if (pos == -1)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
87 return;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
88
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
89 focus_list = g_list_first(focus_list);
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
90 focus_list = g_list_remove(focus_list, widget);
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
91 next = g_list_nth(focus_list, pos - 1);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
92 if (next)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
93 focus_list = next;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
94
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
95 if (focus_list)
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
96 {
13919
0febf380b473 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13917
diff changeset
97 bring_on_top(focus_list->data);
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
98 }
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
99 draw_taskbar();
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
100 }
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
101
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
102 static void
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
103 bring_on_top(GntWidget *widget)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
104 {
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
105 GntNode *node = g_hash_table_lookup(nodes, widget);
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
106
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
107 g_return_if_fail(focus_list->data == widget);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
108
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
109 if (!node)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
110 return;
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
111
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
112 gnt_widget_set_focus(focus_list->data, TRUE);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
113 gnt_widget_draw(focus_list->data);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
114
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
115 top_panel(node->panel);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
116
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
117 if (window_list.window)
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
118 {
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
119 GntNode *nd = g_hash_table_lookup(nodes, window_list.window);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
120 top_panel(nd->panel);
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
121 }
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
122 update_panels();
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
123 doupdate();
13934
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
124 draw_taskbar();
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
125 }
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
126
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
127 static void
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
128 update_window_in_list(GntWidget *wid)
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
129 {
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
130 GntTextFormatFlags flag = 0;
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
131
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
132 if (window_list.window == NULL)
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
133 return;
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
134
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
135 if (wid == focus_list->data)
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
136 flag |= GNT_TEXT_FLAG_DIM;
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
137 else if (GNT_WIDGET_IS_FLAG_SET(wid, GNT_WIDGET_URGENT))
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
138 flag |= GNT_TEXT_FLAG_BOLD;
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
139
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
140 gnt_tree_set_row_flags(GNT_TREE(window_list.tree), wid, flag);
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
141 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
142
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
143 static void
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
144 draw_taskbar()
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
145 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
146 static WINDOW *taskbar = NULL;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
147 GList *iter;
13919
0febf380b473 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13917
diff changeset
148 int n, width = 0;
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
149 int i;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
150
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
151 if (taskbar == NULL)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
152 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
153 taskbar = newwin(1, getmaxx(stdscr), getmaxy(stdscr) - 1, 0);
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
154 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
155
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
156 wbkgdset(taskbar, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL));
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
157 werase(taskbar);
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
158
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
159 n = g_list_length(g_list_first(focus_list));
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
160 if (n)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
161 width = getmaxx(stdscr) / n;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
162
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
163 for (i = 0, iter = g_list_first(focus_list); iter; iter = iter->next, i++)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
164 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
165 GntWidget *w = iter->data;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
166 int color;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
167
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
168 if (w == focus_list->data)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
169 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
170 /* This is the current window in focus */
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
171 color = GNT_COLOR_TITLE;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
172 GNT_WIDGET_UNSET_FLAGS(w, GNT_WIDGET_URGENT);
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
173 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
174 else if (GNT_WIDGET_IS_FLAG_SET(w, GNT_WIDGET_URGENT))
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
175 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
176 /* This is a window with the URGENT hint set */
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
177 color = GNT_COLOR_TITLE_D;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
178 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
179 else
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
180 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
181 color = GNT_COLOR_NORMAL;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
182 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
183 wbkgdset(taskbar, '\0' | COLOR_PAIR(color));
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
184 mvwhline(taskbar, 0, width * i, ' ' | COLOR_PAIR(color), width);
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
185 mvwprintw(taskbar, 0, width * i, "%s", GNT_BOX(w)->title);
13934
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
186
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
187 update_window_in_list(w);
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
188 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
189
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
190 wrefresh(taskbar);
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
191 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
192
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
193 static void
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
194 switch_window(int direction)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
195 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
196 GntWidget *w = NULL;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
197 if (focus_list)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
198 w = focus_list->data;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
199
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
200 if (direction == 1)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
201 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
202 if (focus_list && focus_list->next)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
203 focus_list = focus_list->next;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
204 else
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
205 focus_list = g_list_first(focus_list);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
206 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
207 else if (direction == -1)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
208 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
209 if (focus_list && focus_list->prev)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
210 focus_list = focus_list->prev;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
211 else
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
212 focus_list = g_list_last(focus_list);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
213 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
214
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
215 if (focus_list)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
216 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
217 bring_on_top(focus_list->data);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
218 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
219
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
220 if (w && (!focus_list || w != focus_list->data))
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
221 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
222 gnt_widget_set_focus(w, FALSE);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
223 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
224 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
225
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
226 static void
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
227 window_list_activate(GntTree *tree, gpointer null)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
228 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
229 GntWidget *widget = gnt_tree_get_selection_data(GNT_TREE(tree));
13919
0febf380b473 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13917
diff changeset
230 GntWidget *old = NULL;
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
231
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
232 if (focus_list)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
233 old = focus_list->data;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
234
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
235 focus_list = g_list_find(g_list_first(focus_list), widget);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
236 bring_on_top(widget);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
237
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
238 if (old && (!focus_list || old != focus_list->data))
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
239 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
240 gnt_widget_set_focus(old, FALSE);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
241 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
242 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
243
13919
0febf380b473 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13917
diff changeset
244 static void
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
245 show_window_list()
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
246 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
247 GntWidget *tree, *win;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
248 GList *iter;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
249
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
250 if (window_list.window)
13919
0febf380b473 [gaim-migrate @ 16430]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13917
diff changeset
251 return;
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
252
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
253 win = window_list.window = gnt_box_new(FALSE, FALSE);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
254 gnt_box_set_toplevel(GNT_BOX(win), TRUE);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
255 gnt_box_set_title(GNT_BOX(win), "Window List");
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
256 gnt_box_set_pad(GNT_BOX(win), 0);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
257
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
258 tree = window_list.tree = gnt_tree_new();
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
259
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
260 for (iter = g_list_first(focus_list); iter; iter = iter->next)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
261 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
262 GntBox *box = GNT_BOX(iter->data);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
263
13964
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
264 gnt_tree_add_row_after(GNT_TREE(tree), box,
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
265 gnt_tree_create_row(GNT_TREE(tree), box->title), NULL, NULL);
13934
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
266 update_window_in_list(GNT_WIDGET(box));
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
267 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
268
13952
841a5ffbfee4 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13943
diff changeset
269 gnt_tree_set_selected(GNT_TREE(tree), focus_list->data);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
270 gnt_box_add_widget(GNT_BOX(win), tree);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
271
13964
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
272 gnt_tree_set_col_width(GNT_TREE(tree), 0, getmaxx(stdscr) / 3);
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
273 gnt_widget_set_size(tree, 0, getmaxy(stdscr) / 2);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
274 gnt_widget_set_position(win, getmaxx(stdscr) / 3, getmaxy(stdscr) / 4);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
275
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
276 lock_focus_list = 1;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
277 gnt_widget_show(win);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
278 lock_focus_list = 0;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
279
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
280 g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(window_list_activate), NULL);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
281 }
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
282
13957
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
283 static void
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
284 shift_window(GntWidget *widget, int dir)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
285 {
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
286 GList *all = g_list_first(focus_list);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
287 GList *list = g_list_find(all, widget);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
288 int length, pos;
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
289 if (!list)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
290 return;
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
291
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
292 length = g_list_length(all);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
293 pos = g_list_position(all, list);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
294
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
295 pos += dir;
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
296 if (dir > 0)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
297 pos++;
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
298
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
299 if (pos < 0)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
300 pos = length;
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
301 else if (pos > length)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
302 pos = 0;
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
303
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
304 all = g_list_insert(all, widget, pos);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
305 all = g_list_delete_link(all, list);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
306 if (focus_list == list)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
307 focus_list = g_list_find(all, widget);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
308 draw_taskbar();
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
309 }
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
310
14029
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
311 static void
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
312 dump_screen()
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
313 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
314 int x, y;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
315 chtype old = 0, now = 0;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
316 FILE *file = fopen("dump.html", "w");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
317
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
318 fprintf(file, "<pre>");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
319 for (y = 0; y < getmaxy(stdscr); y++)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
320 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
321 for (x = 0; x < getmaxx(stdscr); x++)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
322 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
323 char ch;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
324 now = mvwinch(newscr, y, x);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
325 ch = now & A_CHARTEXT;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
326 now ^= ch;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
327
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
328 #define CHECK(attr, start, end) \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
329 do \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
330 { \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
331 if (now & attr) \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
332 { \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
333 if (!(old & attr)) \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
334 fprintf(file, start); \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
335 } \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
336 else if (old & attr) \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
337 { \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
338 fprintf(file, end); \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
339 } \
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
340 } while (0)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
341
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
342 CHECK(A_BOLD, "<b>", "</b>");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
343 CHECK(A_UNDERLINE, "<u>", "</u>");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
344 CHECK(A_BLINK, "<blink>", "</blink>");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
345
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
346 if ((now & A_COLOR) != (old & A_COLOR))
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
347 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
348 int ret;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
349 short fgp, bgp, r, g, b;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
350 struct
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
351 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
352 int r, g, b;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
353 } fg, bg;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
354
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
355 ret = pair_content(PAIR_NUMBER(now & A_COLOR), &fgp, &bgp);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
356 ret = color_content(fgp, &r, &g, &b);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
357 fg.r = r; fg.b = b; fg.g = g;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
358 ret = color_content(bgp, &r, &g, &b);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
359 bg.r = r; bg.b = b; bg.g = g;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
360 #define ADJUST(x) (x = x * 255 / 1000)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
361 ADJUST(fg.r);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
362 ADJUST(fg.g);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
363 ADJUST(fg.b);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
364 ADJUST(bg.r);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
365 ADJUST(bg.b);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
366 ADJUST(bg.g);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
367
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
368 if (x) fprintf(file, "</span>");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
369 fprintf(file, "<span style=\"background:#%02x%02x%02x;color:#%02x%02x%02x\">",
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
370 bg.r, bg.g, bg.b, fg.r, fg.g, fg.b);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
371 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
372 if (now & A_ALTCHARSET)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
373 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
374 switch (ch)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
375 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
376 case 'q':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
377 ch = '-'; break;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
378 case 't':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
379 case 'u':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
380 case 'x':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
381 ch = '|'; break;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
382 case 'v':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
383 case 'w':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
384 case 'l':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
385 case 'm':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
386 case 'k':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
387 case 'j':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
388 case 'n':
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
389 ch = '+'; break;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
390 default:
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
391 ch = ' '; break;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
392 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
393 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
394 fprintf(file, "%c", ch);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
395 old = now;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
396 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
397 fprintf(file, "</span>\n");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
398 old = 0;
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
399 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
400 fprintf(file, "</pre>");
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
401 fclose(file);
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
402 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
403
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
404 static gboolean
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
405 io_invoke(GIOChannel *source, GIOCondition cond, gpointer null)
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
406 {
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
407 char buffer[256];
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
408 gboolean ret = FALSE;
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
409 static GntKeyPressMode mode = GNT_KP_MODE_NORMAL;
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
410
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
411 int rd = read(0, buffer, sizeof(buffer) - 1);
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
412 if (rd < 0)
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
413 {
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
414 endwin();
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
415 printf("ERROR!\n");
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
416 exit(1);
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
417 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
418 else if (rd == 0)
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
419 {
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
420 endwin();
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
421 printf("EOF\n");
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
422 exit(1);
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
423 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
424
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
425 buffer[rd] = 0;
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
426
14029
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
427 if (buffer[0] == 27 && buffer[1] == 'd' && buffer[2] == 0)
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
428 {
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
429 /* This dumps the screen contents in an html file */
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
430 dump_screen();
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
431 }
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
432
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
433 if (mode == GNT_KP_MODE_NORMAL)
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
434 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
435 if (focus_list)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
436 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
437 ret = gnt_widget_key_pressed(focus_list->data, buffer);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
438 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
439
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
440 if (!ret)
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
441 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
442 if (buffer[0] == 27)
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
443 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
444 /* Some special key has been pressed */
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
445 if (strcmp(buffer+1, GNT_KEY_POPUP) == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
446 {}
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
447 else if (strcmp(buffer + 1, "c") == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
448 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
449 /* Alt + c was pressed. I am going to use it to close a window. */
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
450 if (focus_list)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
451 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
452 gnt_widget_destroy(focus_list->data);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
453 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
454 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
455 else if (strcmp(buffer + 1, "q") == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
456 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
457 /* I am going to use Alt + q to quit. */
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
458 g_main_loop_quit(loop);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
459 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
460 else if (strcmp(buffer + 1, "n") == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
461 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
462 /* Alt + n to go to the next window */
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
463 switch_window(1);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
464 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
465 else if (strcmp(buffer + 1, "p") == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
466 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
467 /* Alt + p to go to the previous window */
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
468 switch_window(-1);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
469 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
470 else if (strcmp(buffer + 1, "m") == 0 && focus_list)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
471 {
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
472 /* Move a window */
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
473 mode = GNT_KP_MODE_MOVE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
474 }
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
475 else if (strcmp(buffer + 1, "w") == 0 && focus_list)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
476 {
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
477 /* Window list */
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
478 mode = GNT_KP_MODE_WINDOW_LIST;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
479 show_window_list();
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
480 }
13930
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
481 else if (strcmp(buffer + 1, "r") == 0 && focus_list)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
482 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
483 /* Resize window */
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
484 mode = GNT_KP_MODE_RESIZE;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
485 }
13957
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
486 else if (strcmp(buffer + 1, ",") == 0 && focus_list)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
487 {
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
488 /* Re-order the list of windows */
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
489 shift_window(focus_list->data, -1);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
490 }
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
491 else if (strcmp(buffer + 1, ".") == 0 && focus_list)
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
492 {
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
493 shift_window(focus_list->data, 1);
421259b9e06d [gaim-migrate @ 16508]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13952
diff changeset
494 }
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
495 }
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
496 }
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
497 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
498 else if (mode == GNT_KP_MODE_MOVE && focus_list)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
499 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
500 if (buffer[0] == 27)
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
501 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
502 gboolean changed = FALSE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
503 int x, y, w, h;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
504 GntWidget *widget = GNT_WIDGET(focus_list->data);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
505
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
506 gnt_widget_get_position(widget, &x, &y);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
507 gnt_widget_get_size(widget, &w, &h);
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
508
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
509 if (strcmp(buffer + 1, GNT_KEY_LEFT) == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
510 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
511 if (x > X_MIN)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
512 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
513 x--;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
514 changed = TRUE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
515 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
516 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
517 else if (strcmp(buffer + 1, GNT_KEY_RIGHT) == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
518 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
519 if (x + w < X_MAX)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
520 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
521 x++;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
522 changed = TRUE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
523 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
524 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
525 else if (strcmp(buffer + 1, GNT_KEY_UP) == 0)
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
526 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
527 if (y > Y_MIN)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
528 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
529 y--;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
530 changed = TRUE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
531 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
532 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
533 else if (strcmp(buffer + 1, GNT_KEY_DOWN) == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
534 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
535 if (y + h < Y_MAX)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
536 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
537 y++;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
538 changed = TRUE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
539 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
540 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
541 else if (buffer[1] == 0)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
542 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
543 mode = GNT_KP_MODE_NORMAL;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
544 changed = TRUE;
13943
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
545 gnt_widget_draw(widget);
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
546 }
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
547
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
548 if (changed)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
549 {
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
550 GntNode *node = g_hash_table_lookup(nodes, widget);
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
551 gnt_widget_set_position(widget, x, y);
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
552 move_panel(node->panel, y, x);
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
553 update_panels();
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
554 doupdate();
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
555 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
556 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
557 else if (*buffer == '\r')
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
558 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
559 mode = GNT_KP_MODE_NORMAL;
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
560 }
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
561 }
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
562 else if (mode == GNT_KP_MODE_WINDOW_LIST && window_list.window)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
563 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
564 gnt_widget_key_pressed(window_list.window, buffer);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
565
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
566 if (buffer[0] == '\r' || (buffer[0] == 27 && buffer[1] == 0))
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
567 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
568 mode = GNT_KP_MODE_NORMAL;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
569 lock_focus_list = 1;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
570 gnt_widget_destroy(window_list.window);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
571 window_list.window = NULL;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
572 window_list.tree = NULL;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
573 lock_focus_list = 0;
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
574 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
575 }
13930
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
576 else if (mode == GNT_KP_MODE_RESIZE)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
577 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
578 if (buffer[0] == '\r' || (buffer[0] == 27 && buffer[1] == 0))
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
579 mode = GNT_KP_MODE_NORMAL;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
580 else if (buffer[0] == 27)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
581 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
582 GntWidget *widget = focus_list->data;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
583 gboolean changed = FALSE;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
584 int width, height;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
585
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
586 gnt_widget_get_size(widget, &width, &height);
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
587
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
588 if (strcmp(buffer + 1, GNT_KEY_DOWN) == 0)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
589 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
590 if (widget->priv.y + height < Y_MAX)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
591 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
592 height++;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
593 changed = TRUE;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
594 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
595 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
596 else if (strcmp(buffer + 1, GNT_KEY_UP) == 0)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
597 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
598 height--;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
599 changed = TRUE;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
600 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
601 else if (strcmp(buffer + 1, GNT_KEY_LEFT) == 0)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
602 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
603 width--;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
604 changed = TRUE;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
605 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
606 else if (strcmp(buffer + 1, GNT_KEY_RIGHT) == 0)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
607 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
608 if (widget->priv.x + width < X_MAX)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
609 {
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
610 width++;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
611 changed = TRUE;
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
612 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
613 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
614
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
615 if (changed)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
616 {
13943
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
617 gnt_screen_resize_widget(widget, width, height);
13930
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
618 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
619 }
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
620 }
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
621
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
622 refresh();
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
623
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
624 return TRUE;
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
625 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
626
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
627 void gnt_init()
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
628 {
13983
b7a99d54a5a9 [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13964
diff changeset
629 static GIOChannel *channel = NULL;
14004
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
630 char *filename;
13983
b7a99d54a5a9 [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13964
diff changeset
631
b7a99d54a5a9 [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13964
diff changeset
632 if (channel)
b7a99d54a5a9 [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13964
diff changeset
633 return;
b7a99d54a5a9 [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13964
diff changeset
634
b7a99d54a5a9 [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13964
diff changeset
635 channel = g_io_channel_unix_new(0);
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
636
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
637 g_io_channel_set_encoding(channel, NULL, NULL);
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
638 g_io_channel_set_buffered(channel, FALSE);
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
639 g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL );
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
640
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
641 int result = g_io_add_watch(channel,
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
642 (G_IO_IN | G_IO_HUP | G_IO_ERR),
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
643 io_invoke, NULL);
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
644 const char *locale = setlocale(LC_ALL, "");
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
645
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
646 if (locale && (strstr(locale, "UTF") || strstr(locale, "utf")))
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
647 ascii_only = FALSE;
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
648 else
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
649 ascii_only = TRUE;
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
650
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
651 initscr();
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
652 gnt_init_colors();
14010
7573bd40a190 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14004
diff changeset
653 gnt_init_styles();
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
654
14004
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
655 filename = g_build_filename(g_get_home_dir(), ".gntrc", NULL);
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
656 gnt_style_read_configure_file(filename);
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
657 g_free(filename);
06f75fb84a78 [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13983
diff changeset
658
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
659 X_MIN = 0;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
660 Y_MIN = 0;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
661 X_MAX = getmaxx(stdscr);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
662 Y_MAX = getmaxy(stdscr) - 1;
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
663
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
664 nodes = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, free_node);
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
665
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
666 wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL));
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
667 noecho();
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
668 refresh();
14029
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
669 #if 0
d63f59ee6c98 [gaim-migrate @ 16631]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14010
diff changeset
670 mousemask(NCURSES_BUTTON_PRESSED | NCURSES_BUTTON_RELEASED | REPORT_MOUSE_POSITION, NULL);
13917
3111c8105199 [gaim-migrate @ 16419]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13916
diff changeset
671 #endif
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
672 wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL));
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
673 werase(stdscr);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
674 wrefresh(stdscr);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
675
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
676 g_type_init();
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
677 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
678
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
679 void gnt_main()
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
680 {
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
681 loop = g_main_loop_new(NULL, FALSE);
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
682 g_main_loop_run(loop);
13850
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
683 }
0e1e59770cb0 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
684
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
685 /*********************************
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
686 * Stuff for 'window management' *
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
687 *********************************/
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
688
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
689 static void
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
690 free_node(gpointer data)
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
691 {
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
692 GntNode *node = data;
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
693 hide_panel(node->panel);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
694 del_panel(node->panel);
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
695 g_free(node);
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
696 }
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
697
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
698 void gnt_screen_occupy(GntWidget *widget)
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
699 {
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
700 GntNode *node;
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
701
13930
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
702 while (widget->parent)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
703 widget = widget->parent;
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
704
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
705 if (g_hash_table_lookup(nodes, widget))
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
706 return; /* XXX: perhaps _update instead? */
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
707
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
708 node = g_new0(GntNode, 1);
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
709 node->me = widget;
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
710
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
711 g_hash_table_replace(nodes, widget, node);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
712
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
713 if (window_list.window)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
714 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
715 if ((GNT_IS_BOX(widget) && GNT_BOX(widget)->title) && window_list.window != widget
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
716 && GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_CAN_TAKE_FOCUS))
13934
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
717 {
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
718 gnt_tree_add_row_after(GNT_TREE(window_list.tree), widget,
13964
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
719 gnt_tree_create_row(GNT_TREE(window_list.tree), GNT_BOX(widget)->title),
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
720 NULL, NULL);
13934
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
721 update_window_in_list(widget);
ef0d515b9f97 [gaim-migrate @ 16462]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13930
diff changeset
722 }
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
723 }
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
724
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
725 update_panels();
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
726 doupdate();
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
727 }
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
728
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
729 void gnt_screen_release(GntWidget *widget)
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
730 {
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
731 GntNode *node;
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
732
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
733 gnt_screen_remove_widget(widget);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
734 node = g_hash_table_lookup(nodes, widget);
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
735
13885
582aaa4e287e [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13878
diff changeset
736 if (node == NULL) /* Yay! Nothing to do. */
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
737 return;
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
738
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
739 g_hash_table_remove(nodes, widget);
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
740
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
741 if (window_list.window)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
742 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
743 gnt_tree_remove(GNT_TREE(window_list.tree), widget);
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
744 }
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
745
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
746 update_panels();
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
747 doupdate();
13869
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
748 }
5642f4658b59 [gaim-migrate @ 16335]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13860
diff changeset
749
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
750 void gnt_screen_update(GntWidget *widget)
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
751 {
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
752 GntNode *node;
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
753
13930
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
754 while (widget->parent)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
755 widget = widget->parent;
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
756
13888
9d66969a2e32 [gaim-migrate @ 16369]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13885
diff changeset
757 gnt_box_sync_children(GNT_BOX(widget));
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
758 node = g_hash_table_lookup(nodes, widget);
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
759 if (node && !node->panel)
14042
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
760 {
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
761 node->panel = new_panel(node->me->window);
14042
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
762 if (!GNT_WIDGET_IS_FLAG_SET(node->me, GNT_WIDGET_TRANSIENT))
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
763 {
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
764 bottom_panel(node->panel); /* New windows should not grab focus */
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
765 gnt_widget_set_urgent(node->me);
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
766 }
143474e2b1cb [gaim-migrate @ 16648]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14029
diff changeset
767 }
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
768
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
769 if (window_list.window)
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
770 {
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
771 GntNode *nd = g_hash_table_lookup(nodes, window_list.window);
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
772 top_panel(nd->panel);
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
773 }
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
774
13916
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
775 update_panels();
fdf2dbed6faa [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13911
diff changeset
776 doupdate();
13878
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
777 }
0d0ab1e39d0a [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13869
diff changeset
778
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
779 gboolean gnt_widget_has_focus(GntWidget *widget)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
780 {
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
781 GntWidget *w;
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
782 if (!widget)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
783 return FALSE;
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
784
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
785 w = widget;
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
786
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
787 while (widget->parent)
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
788 widget = widget->parent;
13930
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
789
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
790 if (widget == window_list.window)
3dbcbc5e57e1 [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13927
diff changeset
791 return TRUE;
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
792
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
793 if (focus_list && focus_list->data == widget)
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
794 {
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
795 if (GNT_IS_BOX(widget) &&
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
796 (GNT_BOX(widget)->active == w || widget == w))
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
797 return TRUE;
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
798 }
13896
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
799
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
800 return FALSE;
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
801 }
a621329e8c85 [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13893
diff changeset
802
13897
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
803 void gnt_widget_set_urgent(GntWidget *widget)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
804 {
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
805 while (widget->parent)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
806 widget = widget->parent;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
807
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
808 if (focus_list && focus_list->data == widget)
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
809 return;
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
810
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
811 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_URGENT);
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
812 draw_taskbar();
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
813 }
eaaf73de9188 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13896
diff changeset
814
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
815 void gnt_quit()
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
816 {
13964
0a0d2a1fd2bc [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13957
diff changeset
817 gnt_uninit_colors();
14010
7573bd40a190 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14004
diff changeset
818 gnt_uninit_styles();
13907
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
819 endwin();
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
820 }
cc60d0861337 [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13897
diff changeset
821
13927
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
822 gboolean gnt_ascii_only()
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
823 {
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
824 return ascii_only;
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
825 }
9309d27d780c [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13919
diff changeset
826
13943
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
827 void gnt_screen_resize_widget(GntWidget *widget, int width, int height)
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
828 {
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
829 if (widget->parent == NULL)
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
830 {
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
831 GntNode *node = g_hash_table_lookup(nodes, widget);
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
832 if (!node)
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
833 return;
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
834
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
835 hide_panel(node->panel);
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
836 gnt_widget_set_size(widget, width, height);
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
837 gnt_widget_draw(widget);
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
838 replace_panel(node->panel, widget->window);
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
839 show_panel(node->panel);
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
840 update_panels();
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
841 doupdate();
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
842 }
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
843 }
25be562aaca8 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 13934
diff changeset
844