Sun, 18 Mar 2007 22:56:57 +0000
merge of 'd275b025481cd57c1b78be7300d12292eb33e171'
and '98b7f9bf8e2866a4663427b562f28e5934505e3b'
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
1 | #define _GNU_SOURCE |
|
14800
9fb18f4b8d1a
[gaim-migrate @ 17494]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14799
diff
changeset
|
2 | #if defined(__APPLE__) |
|
9fb18f4b8d1a
[gaim-migrate @ 17494]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14799
diff
changeset
|
3 | #define _XOPEN_SOURCE_EXTENDED |
|
9fb18f4b8d1a
[gaim-migrate @ 17494]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14799
diff
changeset
|
4 | #endif |
|
14487
12503b6b5268
[gaim-migrate @ 17133]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14483
diff
changeset
|
5 | |
|
14483
82b73e12ce27
[gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14477
diff
changeset
|
6 | #include "config.h" |
|
82b73e12ce27
[gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14477
diff
changeset
|
7 | |
|
14397
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
8 | #include <gmodule.h> |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
9 | |
|
15863
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15862
diff
changeset
|
10 | #include <sys/types.h> |
|
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15862
diff
changeset
|
11 | #include <sys/wait.h> |
|
7411e672a88b
Re-order includes to fix this compile error:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15862
diff
changeset
|
12 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
13 | #include "gnt.h" |
|
13950
bd8d39b3a9e2
[gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13947
diff
changeset
|
14 | #include "gntbox.h" |
|
14066
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
15 | #include "gntcolors.h" |
|
15814
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
16 | #include "gntclipboard.h" |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
17 | #include "gntkeys.h" |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
18 | #include "gntmenu.h" |
|
14066
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
19 | #include "gntstyle.h" |
|
13978
70d7030b7f26
[gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13973
diff
changeset
|
20 | #include "gnttree.h" |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
21 | #include "gntutils.h" |
|
14397
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
22 | #include "gntwm.h" |
|
13950
bd8d39b3a9e2
[gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13947
diff
changeset
|
23 | |
|
14493
c47f415b7e56
[gaim-migrate @ 17145]
Mark Doliner <markdoliner@pidgin.im>
parents:
14490
diff
changeset
|
24 | #include <panel.h> |
|
c47f415b7e56
[gaim-migrate @ 17145]
Mark Doliner <markdoliner@pidgin.im>
parents:
14490
diff
changeset
|
25 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | #include <stdio.h> |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | #include <stdlib.h> |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
28 | #include <locale.h> |
|
13950
bd8d39b3a9e2
[gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13947
diff
changeset
|
29 | #include <unistd.h> |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
30 | #include <signal.h> |
|
13950
bd8d39b3a9e2
[gaim-migrate @ 16369]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13947
diff
changeset
|
31 | #include <string.h> |
| 14282 | 32 | #include <ctype.h> |
|
14443
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
33 | #include <errno.h> |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
34 | |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
35 | /** |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
36 | * Notes: Interesting functions to look at: |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
37 | * scr_dump, scr_init, scr_restore: for workspaces |
|
14193
fcfd3eea2160
[gaim-migrate @ 16773]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14187
diff
changeset
|
38 | * |
|
fcfd3eea2160
[gaim-migrate @ 16773]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14187
diff
changeset
|
39 | * Need to wattrset for colors to use with PDCurses. |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
40 | */ |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
41 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
42 | static GIOChannel *channel = NULL; |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
43 | |
|
13989
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
44 | static gboolean ascii_only; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
45 | static gboolean mouse_enabled; |
|
13989
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
46 | |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15863
diff
changeset
|
47 | static void setup_io(void); |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
48 | |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
49 | static gboolean refresh_screen(); |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
50 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
51 | GntWM *wm; |
|
15814
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
52 | static GntClipboard *clipboard; |
|
14307
bfdf8ddf6dda
[gaim-migrate @ 16927]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14282
diff
changeset
|
53 | |
|
15842
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
54 | #define HOLDING_ESCAPE (escape_stuff.timer != 0) |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
55 | |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
56 | static struct { |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
57 | int timer; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
58 | } escape_stuff; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
59 | |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
60 | static gboolean |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
61 | escape_timeout(gpointer data) |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
62 | { |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
63 | gnt_wm_process_input(wm, "\033"); |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
64 | escape_stuff.timer = 0; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
65 | return FALSE; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
66 | } |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
67 | |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
68 | /** |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
69 | * Mouse support: |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
70 | * - bring a window on top if you click on its taskbar |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
71 | * - click on the top-bar of the active window and drag+drop to move a window |
|
14387
c52a8625eab3
[gaim-migrate @ 17020]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14379
diff
changeset
|
72 | * - click on a window to bring it to focus |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
73 | * - allow scrolling in tree/textview on wheel-scroll event |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
74 | * - click to activate button or select a row in tree |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
75 | * wishlist: |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
76 | * - have a little [X] on the windows, and clicking it will close that window. |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
77 | */ |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
78 | static gboolean |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
79 | detect_mouse_action(const char *buffer) |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
80 | { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
81 | int x, y; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
82 | static enum { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
83 | MOUSE_NONE, |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
84 | MOUSE_LEFT, |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
85 | MOUSE_RIGHT, |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
86 | MOUSE_MIDDLE |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
87 | } button = MOUSE_NONE; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
88 | static GntWidget *remember = NULL; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
89 | static int offset = 0; |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
90 | GntMouseEvent event; |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
91 | GntWidget *widget = NULL; |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
92 | PANEL *p = NULL; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
93 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
94 | if (!wm->ordered || buffer[0] != 27) |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
95 | return FALSE; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
96 | |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
97 | buffer++; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
98 | if (strlen(buffer) < 5) |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
99 | return FALSE; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
100 | |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
101 | x = buffer[3]; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
102 | y = buffer[4]; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
103 | if (x < 0) x += 256; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
104 | if (y < 0) y += 256; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
105 | x -= 33; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
106 | y -= 33; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
107 | |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
108 | while ((p = panel_below(p)) != NULL) { |
|
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
109 | const GntNode *node = panel_userptr(p); |
|
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
110 | GntWidget *wid; |
|
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
111 | if (!node) |
|
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
112 | continue; |
|
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
113 | wid = node->me; |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
114 | if (x >= wid->priv.x && x < wid->priv.x + wid->priv.width) { |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
115 | if (y >= wid->priv.y && y < wid->priv.y + wid->priv.height) { |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
116 | widget = wid; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
117 | break; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
118 | } |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
119 | } |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
120 | } |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
121 | |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
122 | if (strncmp(buffer, "[M ", 3) == 0) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
123 | /* left button down */ |
|
14379
d1bd558266b7
[gaim-migrate @ 17010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14376
diff
changeset
|
124 | /* Bring the window you clicked on to front */ |
|
d1bd558266b7
[gaim-migrate @ 17010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14376
diff
changeset
|
125 | /* If you click on the topbar, then you can drag to move the window */ |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
126 | event = GNT_LEFT_MOUSE_DOWN; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
127 | } else if (strncmp(buffer, "[M\"", 3) == 0) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
128 | /* right button down */ |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
129 | event = GNT_RIGHT_MOUSE_DOWN; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
130 | } else if (strncmp(buffer, "[M!", 3) == 0) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
131 | /* middle button down */ |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
132 | event = GNT_MIDDLE_MOUSE_DOWN; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
133 | } else if (strncmp(buffer, "[M`", 3) == 0) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
134 | /* wheel up*/ |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
135 | event = GNT_MOUSE_SCROLL_UP; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
136 | } else if (strncmp(buffer, "[Ma", 3) == 0) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
137 | /* wheel down */ |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
138 | event = GNT_MOUSE_SCROLL_DOWN; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
139 | } else if (strncmp(buffer, "[M#", 3) == 0) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
140 | /* button up */ |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
141 | event = GNT_MOUSE_UP; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
142 | } else |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
143 | return FALSE; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
144 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
145 | if (gnt_wm_process_click(wm, event, x, y, widget)) |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
146 | return TRUE; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
147 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
148 | if (event == GNT_LEFT_MOUSE_DOWN && widget && widget != wm->_list.window && |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
149 | !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_TRANSIENT)) { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
150 | if (widget != wm->ordered->data) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
151 | gnt_wm_raise_window(wm, widget); |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
152 | } |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
153 | if (y == widget->priv.y) { |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
154 | offset = x - widget->priv.x; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
155 | remember = widget; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
156 | button = MOUSE_LEFT; |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
157 | } |
|
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
158 | } else if (event == GNT_MOUSE_UP) { |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
159 | if (button == MOUSE_NONE && y == getmaxy(stdscr) - 1) { |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
160 | /* Clicked on the taskbar */ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
161 | int n = g_list_length(wm->list); |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
162 | if (n) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
163 | int width = getmaxx(stdscr) / n; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
164 | gnt_bindable_perform_action_named(GNT_BINDABLE(wm), "switch-window-n", x/width, NULL); |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
165 | } |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
166 | } else if (button == MOUSE_LEFT && remember) { |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
167 | x -= offset; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
168 | if (x < 0) x = 0; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
169 | if (y < 0) y = 0; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
170 | gnt_screen_move_widget(remember, x, y); |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
171 | } |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
172 | button = MOUSE_NONE; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
173 | remember = NULL; |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
174 | offset = 0; |
|
14424
8874ec350ebb
[gaim-migrate @ 17068]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14405
diff
changeset
|
175 | } |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
176 | |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
177 | gnt_widget_clicked(widget, event, x, y); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
178 | return TRUE; |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
179 | } |
|
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
180 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
181 | static gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
182 | io_invoke_error(GIOChannel *source, GIOCondition cond, gpointer data) |
|
14539
7d5528c864a1
[gaim-migrate @ 17195]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14493
diff
changeset
|
183 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
184 | int id = GPOINTER_TO_INT(data); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
185 | g_source_remove(id); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
186 | g_io_channel_unref(source); |
|
14487
12503b6b5268
[gaim-migrate @ 17133]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14483
diff
changeset
|
187 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
188 | channel = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
189 | setup_io(); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
190 | return TRUE; |
|
14477
7252d4888bf2
[gaim-migrate @ 17123]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14467
diff
changeset
|
191 | } |
|
7252d4888bf2
[gaim-migrate @ 17123]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14467
diff
changeset
|
192 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
193 | static gboolean |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
194 | io_invoke(GIOChannel *source, GIOCondition cond, gpointer null) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
195 | { |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
196 | char keys[256]; |
|
15842
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
197 | int rd = read(STDIN_FILENO, keys + HOLDING_ESCAPE, sizeof(keys) - 1 - HOLDING_ESCAPE); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
198 | char *k; |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
199 | if (rd < 0) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
200 | { |
|
14943
ffd493362a87
[gaim-migrate @ 17650]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
201 | int ch = getch(); /* This should return ERR, but let's see what it really returns */ |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
202 | endwin(); |
|
14742
57b62b1b4646
[gaim-migrate @ 17432]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14689
diff
changeset
|
203 | printf("ERROR: %s\n", strerror(errno)); |
|
14943
ffd493362a87
[gaim-migrate @ 17650]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
204 | printf("File descriptor is: %d\n\nGIOChannel is: %p\ngetch() = %d\n", STDIN_FILENO, source, ch); |
|
ffd493362a87
[gaim-migrate @ 17650]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
205 | raise(SIGABRT); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
206 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
207 | else if (rd == 0) |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
208 | { |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
209 | endwin(); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
210 | printf("EOF\n"); |
|
14943
ffd493362a87
[gaim-migrate @ 17650]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
211 | raise(SIGABRT); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
212 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | |
|
15842
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
214 | rd += HOLDING_ESCAPE; |
|
14405
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
215 | keys[rd] = 0; |
|
4398121ce889
[gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14397
diff
changeset
|
216 | if (mouse_enabled && detect_mouse_action(keys)) |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
217 | return TRUE; |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
218 | |
|
15842
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
219 | if (HOLDING_ESCAPE) |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
220 | keys[0] = '\033'; |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
221 | k = keys; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
222 | while (rd) { |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
223 | char back; |
|
15842
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
224 | int p; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
225 | |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
226 | if (k[0] == '\033' && rd == 1) { |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
227 | if (escape_stuff.timer) { |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
228 | gnt_wm_process_input(wm, "\033\033"); |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
229 | g_source_remove(escape_stuff.timer); |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
230 | escape_stuff.timer = 0; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
231 | break; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
232 | } |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
233 | escape_stuff.timer = g_timeout_add(250, escape_timeout, NULL); |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
234 | break; |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
235 | } |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
236 | |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
237 | gnt_keys_refine(k); |
|
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
238 | p = MAX(1, gnt_keys_find_combination(k)); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
239 | back = k[p]; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
240 | k[p] = '\0'; |
|
15840
442102aa7b24
Some changes to the last change. People should really test this thing out.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15839
diff
changeset
|
241 | gnt_wm_process_input(wm, k); /* XXX: */ |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
242 | k[p] = back; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
243 | rd -= p; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
244 | k += p; |
|
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15814
diff
changeset
|
245 | } |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
246 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
247 | return TRUE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
248 | } |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
249 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
250 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
251 | setup_io() |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
252 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
253 | int result; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
254 | channel = g_io_channel_unix_new(STDIN_FILENO); |
|
15842
0b00e18a33f2
Do some funky stuff with the escape key.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15841
diff
changeset
|
255 | g_io_channel_set_close_on_unref(channel, TRUE); |
|
13958
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
256 | |
|
15485
07050dfe816e
More closely imitate the input handling of irssi. Hopefully this will fix the excessive CPU usage bug Alver keeps getting.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15038
diff
changeset
|
257 | #if 0 |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
258 | g_io_channel_set_encoding(channel, NULL, NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
259 | g_io_channel_set_buffered(channel, FALSE); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
260 | g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL ); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
261 | #endif |
|
13978
70d7030b7f26
[gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13973
diff
changeset
|
262 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
263 | result = g_io_add_watch_full(channel, G_PRIORITY_HIGH, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
264 | (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
265 | io_invoke, NULL, NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
266 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
267 | g_io_add_watch_full(channel, G_PRIORITY_HIGH, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
268 | (G_IO_NVAL), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
269 | io_invoke_error, GINT_TO_POINTER(result), NULL); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
270 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
271 | g_io_channel_unref(channel); /* Apparently this caused crashes for some people. |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
272 | But irssi does this, so I am going to assume the |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
273 | crashes were caused by some other stuff. */ |
|
13992
a6bbcc09c4eb
[gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13989
diff
changeset
|
274 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
275 | g_printerr("gntmain: setting up IO\n"); |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
276 | } |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
277 | |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
278 | static gboolean |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
279 | refresh_screen() |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
280 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
281 | gnt_bindable_perform_action_named(GNT_BINDABLE(wm), "refresh-screen", NULL); |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
282 | return FALSE; |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
283 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
284 | |
|
14443
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
285 | /* Xerox */ |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
286 | static void |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
287 | clean_pid(void) |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
288 | { |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
289 | int status; |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
290 | pid_t pid; |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
291 | |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
292 | do { |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
293 | pid = waitpid(-1, &status, WNOHANG); |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
294 | } while (pid != 0 && pid != (pid_t)-1); |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
295 | |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
296 | if ((pid == (pid_t) - 1) && (errno != ECHILD)) { |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
297 | char errmsg[BUFSIZ]; |
|
14487
12503b6b5268
[gaim-migrate @ 17133]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14483
diff
changeset
|
298 | g_snprintf(errmsg, BUFSIZ, "Warning: waitpid() returned %d", pid); |
|
14443
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
299 | perror(errmsg); |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
300 | } |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
301 | } |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
302 | |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
303 | static void |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
304 | sighandler(int sig) |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
305 | { |
|
14443
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
306 | switch (sig) { |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
307 | #ifdef SIGWINCH |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
308 | case SIGWINCH: |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
309 | werase(stdscr); |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
310 | wrefresh(stdscr); |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
311 | g_idle_add(refresh_screen, NULL); |
|
14443
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
312 | signal(SIGWINCH, sighandler); |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
313 | break; |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
314 | #endif |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
315 | case SIGCHLD: |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
316 | clean_pid(); |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
317 | signal(SIGCHLD, sighandler); |
|
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
318 | break; |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
319 | } |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
320 | } |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
321 | |
|
14397
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
322 | static void |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
323 | init_wm() |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
324 | { |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
325 | const char *name = gnt_style_get(GNT_STYLE_WM); |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
326 | gpointer handle; |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
327 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
328 | if (name && *name) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
329 | handle = g_module_open(name, G_MODULE_BIND_LAZY); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
330 | if (handle) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
331 | gboolean (*init)(GntWM **); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
332 | if (g_module_symbol(handle, "gntwm_init", (gpointer)&init)) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
333 | init(&wm); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
334 | } |
|
14397
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
335 | } |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
336 | } |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
337 | if (wm == NULL) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
338 | wm = g_object_new(GNT_TYPE_WM, NULL); |
|
14397
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
339 | } |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
340 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
341 | void gnt_init() |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
342 | { |
|
14066
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
343 | char *filename; |
|
14264
f8399abdcb46
[gaim-migrate @ 16875]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
344 | const char *locale; |
|
f8399abdcb46
[gaim-migrate @ 16875]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
345 | |
|
14045
12b8c2bfd3fb
[gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14026
diff
changeset
|
346 | if (channel) |
|
12b8c2bfd3fb
[gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14026
diff
changeset
|
347 | return; |
|
12b8c2bfd3fb
[gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14026
diff
changeset
|
348 | |
|
15485
07050dfe816e
More closely imitate the input handling of irssi. Hopefully this will fix the excessive CPU usage bug Alver keeps getting.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15038
diff
changeset
|
349 | locale = setlocale(LC_ALL, ""); |
|
14264
f8399abdcb46
[gaim-migrate @ 16875]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14201
diff
changeset
|
350 | |
|
15485
07050dfe816e
More closely imitate the input handling of irssi. Hopefully this will fix the excessive CPU usage bug Alver keeps getting.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15038
diff
changeset
|
351 | setup_io(); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
352 | |
|
13989
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
353 | if (locale && (strstr(locale, "UTF") || strstr(locale, "utf"))) |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
354 | ascii_only = FALSE; |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
355 | else |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
356 | ascii_only = TRUE; |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
357 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
358 | initscr(); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
359 | typeahead(-1); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
360 | noecho(); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
361 | curs_set(0); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
362 | |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15842
diff
changeset
|
363 | gnt_init_keys(); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14066
diff
changeset
|
364 | gnt_init_styles(); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
365 | |
|
14066
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
366 | filename = g_build_filename(g_get_home_dir(), ".gntrc", NULL); |
|
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
367 | gnt_style_read_configure_file(filename); |
|
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
368 | g_free(filename); |
|
3a97522e09ee
[gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14045
diff
changeset
|
369 | |
|
14361
4d6014205744
[gaim-migrate @ 16989]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14354
diff
changeset
|
370 | gnt_init_colors(); |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
371 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
372 | wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL)); |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
373 | refresh(); |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
374 | |
|
14379
d1bd558266b7
[gaim-migrate @ 17010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14376
diff
changeset
|
375 | #ifdef ALL_MOUSE_EVENTS |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
376 | if ((mouse_enabled = gnt_style_get_bool(GNT_STYLE_MOUSE, FALSE))) |
|
14379
d1bd558266b7
[gaim-migrate @ 17010]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14376
diff
changeset
|
377 | mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, NULL); |
|
14376
43b7dc7d2a52
[gaim-migrate @ 17007]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14372
diff
changeset
|
378 | #endif |
|
14372
61f53bc11687
[gaim-migrate @ 17000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14361
diff
changeset
|
379 | |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
380 | wbkgdset(stdscr, '\0' | COLOR_PAIR(GNT_COLOR_NORMAL)); |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
381 | werase(stdscr); |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
382 | wrefresh(stdscr); |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
383 | |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
384 | #ifdef SIGWINCH |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
385 | signal(SIGWINCH, sighandler); |
|
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
386 | #endif |
|
14443
b7b18eddd910
[gaim-migrate @ 17087]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14424
diff
changeset
|
387 | signal(SIGCHLD, sighandler); |
| 14799 | 388 | signal(SIGPIPE, SIG_IGN); |
|
14335
43dec8ee3096
[gaim-migrate @ 16958]
Mark Schneider <queueram@gmail.com>
parents:
14318
diff
changeset
|
389 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
390 | g_type_init(); |
|
14397
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
391 | |
|
e53755c4dcab
[gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14387
diff
changeset
|
392 | init_wm(); |
|
15814
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
393 | |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
394 | clipboard = g_object_new(GNT_TYPE_CLIPBOARD, NULL); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
395 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
396 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
397 | void gnt_main() |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
398 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
399 | wm->loop = g_main_loop_new(NULL, FALSE); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
400 | g_main_loop_run(wm->loop); |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
401 | } |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
402 | |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
403 | /********************************* |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
404 | * Stuff for 'window management' * |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
405 | *********************************/ |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
406 | |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
407 | void gnt_screen_occupy(GntWidget *widget) |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
408 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
409 | gnt_wm_new_window(wm, widget); |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
410 | } |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
411 | |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
412 | void gnt_screen_release(GntWidget *widget) |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
413 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
414 | gnt_wm_window_close(wm, widget); |
|
13931
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
415 | } |
|
a0a91e17f899
[gaim-migrate @ 16335]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13922
diff
changeset
|
416 | |
|
13940
26ed45b11483
[gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
417 | void gnt_screen_update(GntWidget *widget) |
|
26ed45b11483
[gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
418 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
419 | gnt_wm_update_window(wm, widget); |
|
13940
26ed45b11483
[gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
420 | } |
|
26ed45b11483
[gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13931
diff
changeset
|
421 | |
|
13958
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
422 | gboolean gnt_widget_has_focus(GntWidget *widget) |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
423 | { |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
424 | GntWidget *w; |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
425 | if (!widget) |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
426 | return FALSE; |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
427 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
428 | if (GNT_IS_MENU(widget)) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
429 | return TRUE; |
|
13958
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
430 | |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
431 | w = widget; |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
432 | |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
433 | while (widget->parent) |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
434 | widget = widget->parent; |
|
13992
a6bbcc09c4eb
[gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13989
diff
changeset
|
435 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
436 | if (widget == wm->_list.window) |
|
13992
a6bbcc09c4eb
[gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13989
diff
changeset
|
437 | return TRUE; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
438 | if (wm->ordered && wm->ordered->data == widget) { |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
439 | if (GNT_IS_BOX(widget) && |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
440 | (GNT_BOX(widget)->active == w || widget == w)) |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
441 | return TRUE; |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
442 | } |
|
13958
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
443 | return FALSE; |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
444 | } |
|
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13955
diff
changeset
|
445 | |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
446 | void gnt_widget_set_urgent(GntWidget *widget) |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
447 | { |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
448 | while (widget->parent) |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
449 | widget = widget->parent; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
450 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
451 | if (wm->ordered && wm->ordered->data == widget) |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
452 | return; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
453 | |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
454 | GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_URGENT); |
|
14452
a21351048a3a
[gaim-migrate @ 17096]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14450
diff
changeset
|
455 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
456 | gnt_wm_update_window(wm, widget); |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
457 | } |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
458 | |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
459 | void gnt_quit() |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
460 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
461 | g_hash_table_destroy(wm->nodes); /* XXX: */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
462 | update_panels(); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
463 | doupdate(); |
|
14026
ad91ce0effe2
[gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14019
diff
changeset
|
464 | gnt_uninit_colors(); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14066
diff
changeset
|
465 | gnt_uninit_styles(); |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
466 | endwin(); |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
467 | } |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
468 | |
|
13989
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
469 | gboolean gnt_ascii_only() |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
470 | { |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
471 | return ascii_only; |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
472 | } |
|
9a647311c9ac
[gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13981
diff
changeset
|
473 | |
|
14005
198d1658b390
[gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13996
diff
changeset
|
474 | void gnt_screen_resize_widget(GntWidget *widget, int width, int height) |
|
198d1658b390
[gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13996
diff
changeset
|
475 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
476 | gnt_wm_resize_window(wm, widget, width, height); |
|
14005
198d1658b390
[gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13996
diff
changeset
|
477 | } |
|
198d1658b390
[gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13996
diff
changeset
|
478 | |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14193
diff
changeset
|
479 | void gnt_screen_move_widget(GntWidget *widget, int x, int y) |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14193
diff
changeset
|
480 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
481 | gnt_wm_move_window(wm, widget, x, y); |
|
14201
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14193
diff
changeset
|
482 | } |
|
d54dc208efe2
[gaim-migrate @ 16781]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14193
diff
changeset
|
483 | |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14449
diff
changeset
|
484 | void gnt_screen_rename_widget(GntWidget *widget, const char *text) |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14449
diff
changeset
|
485 | { |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14449
diff
changeset
|
486 | gnt_box_set_title(GNT_BOX(widget), text); |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14449
diff
changeset
|
487 | gnt_widget_draw(widget); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
488 | gnt_wm_update_window(wm, widget); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14449
diff
changeset
|
489 | } |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14449
diff
changeset
|
490 | |
|
14467
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
491 | void gnt_register_action(const char *label, void (*callback)()) |
|
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
492 | { |
|
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
493 | GntAction *action = g_new0(GntAction, 1); |
|
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
494 | action->label = g_strdup(label); |
|
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
495 | action->callback = callback; |
|
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
496 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
497 | wm->acts = g_list_append(wm->acts, action); |
|
14467
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
498 | } |
|
359d9aad0f01
[gaim-migrate @ 17113]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14452
diff
changeset
|
499 | |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
500 | static void |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
501 | reset_menu(GntWidget *widget, gpointer null) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
502 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
503 | wm->menu = NULL; |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
504 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
505 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
506 | gboolean gnt_screen_menu_show(gpointer newmenu) |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
507 | { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
508 | if (wm->menu) { |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
509 | /* For now, if a menu is being displayed, then another menu |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
510 | * can NOT take over. */ |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
511 | return FALSE; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
512 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
513 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
514 | wm->menu = newmenu; |
|
14968
2b1ed06a4773
[gaim-migrate @ 17678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14962
diff
changeset
|
515 | GNT_WIDGET_UNSET_FLAGS(GNT_WIDGET(wm->menu), GNT_WIDGET_INVISIBLE); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
516 | gnt_widget_draw(GNT_WIDGET(wm->menu)); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
517 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14943
diff
changeset
|
518 | g_signal_connect(G_OBJECT(wm->menu), "hide", G_CALLBACK(reset_menu), NULL); |
|
14675
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
519 | |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
520 | return TRUE; |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
521 | } |
|
be8af28d1980
[gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14606
diff
changeset
|
522 | |
|
15814
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
523 | void gnt_set_clipboard_string(gchar *string) |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
524 | { |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
525 | gnt_clipboard_set_string(clipboard, string); |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
526 | } |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
527 | |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
528 | GntClipboard *gnt_get_clipboard() |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
529 | { |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
530 | return clipboard; |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
531 | } |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
532 | gchar *gnt_get_clipboard_string() |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
533 | { |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
534 | return gnt_clipboard_get_string(clipboard); |
|
2db42c6a13fa
Add a gntclipboard. You can select text in a textview with the mouse, and paste it in an entry with ctrl-v (or rebind GntEntry's clipboard-paste).
Richard Nelson <wabz@pidgin.im>
parents:
15485
diff
changeset
|
535 | } |