Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
24449
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
1 | /* |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
2 | * GNT - The GLib Ncurses Toolkit |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
3 | * |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
4 | * GNT is the legal property of its developers, whose names are too numerous |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
6 | * source distribution. |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
7 | * |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
8 | * This library is free software; you can redistribute it and/or modify |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
11 | * (at your option) any later version. |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
12 | * |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
16 | * GNU General Public License for more details. |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
17 | * |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
21 | */ |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
22 | |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | /** |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
24 | * 1. Buddylist is aligned on the left. |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
25 | * 2. The rest of the screen is split into MxN grid for conversation windows. |
|
23153
97303ac5a7bc
Correct the comments, and some position-calculation when the buddylist is not showing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18602
diff
changeset
|
26 | * - M = split-h in ~/.gntrc:[irssi] |
|
97303ac5a7bc
Correct the comments, and some position-calculation when the buddylist is not showing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18602
diff
changeset
|
27 | * - N = split-v in ~/.gntrc:[irssi] |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
28 | * - Press alt-shift-k/j/l/h to move the selected window to the frame |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
29 | * above/below/left/right of the current frame. |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
30 | * 3. All the other windows are always centered. |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | */ |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
32 | #include <stdlib.h> |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
33 | #include <string.h> |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | #include <sys/types.h> |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
35 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
36 | #include "gnt.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
37 | #include "gntbox.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
38 | #include "gntmenu.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | #include "gntstyle.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
40 | #include "gntwm.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
41 | #include "gntwindow.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
42 | #include "gntlabel.h" |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
43 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
44 | #define TYPE_IRSSI (irssi_get_gtype()) |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
45 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | typedef struct _Irssi |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
48 | GntWM inherit; |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
49 | int vert; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
50 | int horiz; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
51 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
52 | /* This is changed whenever the buddylist is opened/closed or resized. */ |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
53 | int buddylistwidth; |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
54 | } Irssi; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
55 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
56 | typedef struct _IrssiClass |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
57 | { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | GntWMClass inherit; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
59 | } IrssiClass; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
60 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
61 | GType irssi_get_gtype(void); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
62 | void gntwm_init(GntWM **wm); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
63 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
64 | static void (*org_new_window)(GntWM *wm, GntWidget *win); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
65 | |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
66 | static void |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
67 | get_xywh_for_frame(Irssi *irssi, int hor, int vert, int *x, int *y, int *w, int *h) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
68 | { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
69 | int width, height, rx, ry; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
70 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
71 | width = (getmaxx(stdscr) - irssi->buddylistwidth) / irssi->horiz; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
72 | height = (getmaxy(stdscr) - 1) / irssi->vert; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
73 | |
|
25352
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
74 | if (width) { |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
75 | rx = irssi->buddylistwidth; |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
76 | } else { |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
77 | rx = 0; |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
78 | width = getmaxx(stdscr) / irssi->horiz; |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
79 | } |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
80 | if (hor) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
81 | rx += hor * width; |
|
23153
97303ac5a7bc
Correct the comments, and some position-calculation when the buddylist is not showing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18602
diff
changeset
|
82 | if (rx) |
|
97303ac5a7bc
Correct the comments, and some position-calculation when the buddylist is not showing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18602
diff
changeset
|
83 | rx++; |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
84 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
85 | ry = 0; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
86 | if (vert) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
87 | ry += vert * height + 1; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
88 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
89 | if (x) *x = rx; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
90 | if (y) *y = ry; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
91 | if (w) { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
92 | *w = (hor == irssi->horiz - 1) ? (getmaxx(stdscr) - rx) : (width - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
93 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
94 | if (h) { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
95 | *h = (vert == irssi->vert - 1) ? (getmaxy(stdscr) - 1 - ry) : (height - !!vert); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
96 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
97 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
98 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
99 | static void |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
100 | draw_line_separators(Irssi *irssi) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
101 | { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
102 | int x, y; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
103 | int width, height; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
104 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
105 | wclear(stdscr); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
106 | /* Draw the separator for the buddylist */ |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
107 | if (irssi->buddylistwidth) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
108 | mvwvline(stdscr, 0, irssi->buddylistwidth, |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
109 | ACS_VLINE | COLOR_PAIR(GNT_COLOR_NORMAL), getmaxy(stdscr) - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
110 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
111 | /* Now the separators for the conversation windows */ |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
112 | width = (getmaxx(stdscr) - irssi->buddylistwidth) / irssi->horiz; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
113 | height = (getmaxy(stdscr) - 1) / irssi->vert; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
114 | for (x = 1; x < irssi->horiz; x++) { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
115 | mvwvline(stdscr, 0, irssi->buddylistwidth + x * width, |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
116 | ACS_VLINE | COLOR_PAIR(GNT_COLOR_NORMAL), getmaxy(stdscr) - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
117 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
118 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
119 | for (y = 1; y < irssi->vert; y++) { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
120 | mvwhline(stdscr, y * height, irssi->buddylistwidth + 1, ACS_HLINE | COLOR_PAIR(GNT_COLOR_NORMAL), |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
121 | getmaxx(stdscr) - irssi->buddylistwidth); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
122 | for (x = 1; x < irssi->horiz; x++) { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
123 | mvwaddch(stdscr, y * height, x * width + irssi->buddylistwidth, ACS_PLUS | COLOR_PAIR(GNT_COLOR_NORMAL)); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
124 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
125 | if (irssi->buddylistwidth) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
126 | mvwaddch(stdscr, y * height, irssi->buddylistwidth, ACS_LTEE | COLOR_PAIR(GNT_COLOR_NORMAL)); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
127 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
128 | } |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
129 | |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
130 | static gboolean |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
131 | is_budddylist(GntWidget *win) |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
132 | { |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
133 | const char *name = gnt_widget_get_name(win); |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
134 | if (name && strcmp(name, "buddylist") == 0) |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
135 | return TRUE; |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
136 | return FALSE; |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
137 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
138 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
139 | static void |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
140 | remove_border_set_position_size(GntWM *wm, GntWidget *win, int x, int y, int w, int h) |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
141 | { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
142 | gnt_box_set_toplevel(GNT_BOX(win), FALSE); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
143 | GNT_WIDGET_SET_FLAGS(win, GNT_WIDGET_CAN_TAKE_FOCUS); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
144 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
145 | gnt_widget_set_position(win, x, y); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
146 | mvwin(win->window, y, x); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
147 | gnt_widget_set_size(win, (w < 0) ? -1 : w + 2, h + 2); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
148 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
149 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
150 | static void |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
151 | irssi_new_window(GntWM *wm, GntWidget *win) |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
152 | { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
153 | const char *name; |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
154 | int x, y, w, h; |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
155 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
156 | name = gnt_widget_get_name(win); |
|
18560
de4b84e1e01d
Update the irssi WM to do substring-search instead of string comparison.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
157 | if (!name || !strstr(name, "conversation-window")) { |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
158 | if (!GNT_IS_MENU(win) && !GNT_WIDGET_IS_FLAG_SET(win, GNT_WIDGET_TRANSIENT)) { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
159 | if ((!name || strcmp(name, "buddylist"))) { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
160 | gnt_widget_get_size(win, &w, &h); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
161 | x = (getmaxx(stdscr) - w) / 2; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
162 | y = (getmaxy(stdscr) - h) / 2; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
163 | gnt_widget_set_position(win, x, y); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
164 | mvwin(win->window, y, x); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
165 | } else { |
|
24449
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
166 | gnt_window_set_maximize(GNT_WINDOW(win), GNT_WINDOW_MAXIMIZE_Y); |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
167 | remove_border_set_position_size(wm, win, 0, 0, -1, getmaxy(stdscr) - 1); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
168 | gnt_widget_get_size(win, &((Irssi*)wm)->buddylistwidth, NULL); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
169 | draw_line_separators((Irssi*)wm); |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
170 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
171 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
172 | org_new_window(wm, win); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
173 | return; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
174 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
175 | |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
176 | /* The window we have here is a conversation window. */ |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
177 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
178 | /* XXX: There should be some way to remember which frame a conversation window |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
179 | * was in the last time. Perhaps save them in some ~/.gntpositionirssi or some |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
180 | * such. */ |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
181 | get_xywh_for_frame((Irssi*)wm, 0, 0, &x, &y, &w, &h); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
182 | remove_border_set_position_size(wm, win, x, y, w, h); |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
183 | org_new_window(wm, win); |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
184 | } |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
185 | |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
186 | static void |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
187 | irssi_window_resized(GntWM *wm, GntNode *node) |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
188 | { |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
189 | if (!is_budddylist(node->me)) |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
190 | return; |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
191 | |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
192 | gnt_widget_get_size(node->me, &((Irssi*)wm)->buddylistwidth, NULL); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
193 | draw_line_separators((Irssi*)wm); |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
194 | } |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
195 | |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
196 | static gboolean |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
197 | irssi_close_window(GntWM *wm, GntWidget *win) |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
198 | { |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
199 | if (is_budddylist(win)) |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
200 | ((Irssi*)wm)->buddylistwidth = 0; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
201 | return FALSE; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
202 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
203 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
204 | static gboolean |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
205 | update_conv_window_title(GntNode *node) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
206 | { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
207 | char title[256]; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
208 | snprintf(title, sizeof(title), "%d: %s", |
| 18184 | 209 | GPOINTER_TO_INT(g_object_get_data(G_OBJECT(node->me), "irssi-index")) + 1, |
| 210 | GNT_BOX(node->me)->title); | |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
211 | wbkgdset(node->window, '\0' | COLOR_PAIR(gnt_widget_has_focus(node->me) ? GNT_COLOR_TITLE : GNT_COLOR_TITLE_D)); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
212 | mvwaddstr(node->window, 0, 0, title); |
|
18602
93ca53286fa1
Update the irssi WM to not touch the screen when something else is using it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18560
diff
changeset
|
213 | if (!gnt_is_refugee()) { |
|
93ca53286fa1
Update the irssi WM to not touch the screen when something else is using it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18560
diff
changeset
|
214 | update_panels(); |
|
93ca53286fa1
Update the irssi WM to not touch the screen when something else is using it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18560
diff
changeset
|
215 | doupdate(); |
|
93ca53286fa1
Update the irssi WM to not touch the screen when something else is using it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18560
diff
changeset
|
216 | } |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
217 | return FALSE; |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
218 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
219 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | static void |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
221 | irssi_update_window(GntWM *wm, GntNode *node) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
222 | { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
223 | GntWidget *win = node->me; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
224 | const char *name = gnt_widget_get_name(win); |
|
18560
de4b84e1e01d
Update the irssi WM to do substring-search instead of string comparison.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18420
diff
changeset
|
225 | if (!name || !GNT_IS_BOX(win) || !strstr(name, "conversation-window")) |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
226 | return; |
|
18136
2c934db7aedd
Make the irssi wm work.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18107
diff
changeset
|
227 | g_object_set_data(G_OBJECT(win), "irssi-index", GINT_TO_POINTER(g_list_index(wm->cws->list, win))); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
228 | g_timeout_add(0, (GSourceFunc)update_conv_window_title, node); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
229 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
230 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
231 | static void |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
232 | find_window_position(Irssi *irssi, GntWidget *win, int *h, int *v) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
233 | { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
234 | int x, y; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
235 | int width, height; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
236 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
237 | gnt_widget_get_position(win, &x, &y); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
238 | width = (getmaxx(stdscr) - irssi->buddylistwidth) / irssi->horiz; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
239 | height = (getmaxy(stdscr) - 1) / irssi->vert; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
240 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
241 | if (h) |
|
25352
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
242 | *h = width ? (x - irssi->buddylistwidth) / width : x / (getmaxx(stdscr) / irssi->horiz); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
243 | if (v) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
244 | *v = y / height; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
245 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
246 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
247 | static gboolean |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
248 | move_direction(GntBindable *bindable, GList *list) |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
249 | { |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
250 | GntWM *wm = GNT_WM(bindable); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
251 | Irssi *irssi = (Irssi*)wm; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
252 | int vert, hor; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
253 | int x, y, w, h; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
254 | GntWidget *win; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
255 | |
|
18136
2c934db7aedd
Make the irssi wm work.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18107
diff
changeset
|
256 | if (wm->cws->ordered == NULL || is_budddylist(win = GNT_WIDGET(wm->cws->ordered->data))) |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
257 | return FALSE; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
258 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
259 | find_window_position(irssi, win, &hor, &vert); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
260 | |
| 18184 | 261 | switch (GPOINTER_TO_INT(list->data)) { |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
262 | case 'k': |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
263 | vert = MAX(0, vert - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
264 | break; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
265 | case 'j': |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
266 | vert = MIN(vert + 1, irssi->vert - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
267 | break; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
268 | case 'l': |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
269 | hor = MIN(hor + 1, irssi->horiz - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
270 | break; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
271 | case 'h': |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
272 | hor = MAX(0, hor - 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
273 | break; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
274 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
275 | get_xywh_for_frame(irssi, hor, vert, &x, &y, &w, &h); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
276 | gnt_wm_move_window(wm, win, x, y); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
277 | gnt_wm_resize_window(wm, win, w, h); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
278 | return TRUE; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
279 | } |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
280 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
281 | static void |
|
24449
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
282 | refresh_window(GntWidget *widget, GntNode *node, Irssi *irssi) |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
283 | { |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
284 | int vert, hor; |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
285 | int x, y, w, h; |
|
25352
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
286 | const char *name; |
|
24449
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
287 | |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
288 | if (!GNT_IS_WINDOW(widget)) |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
289 | return; |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
290 | |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
291 | if (is_budddylist(widget)) { |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
292 | return; |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
293 | } |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
294 | |
|
25352
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
295 | name = gnt_widget_get_name(widget); |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
296 | if (name && strstr(name, "conversation-window")) { |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
297 | find_window_position(irssi, widget, &hor, &vert); |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
298 | get_xywh_for_frame(irssi, hor, vert, &x, &y, &w, &h); |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
299 | gnt_wm_move_window(GNT_WM(irssi), widget, x, y); |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
300 | gnt_wm_resize_window(GNT_WM(irssi), widget, w, h); |
|
f28ea1231b93
Don't crash on screen refresh if buddylist is maximized. Fixes #8003.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24449
diff
changeset
|
301 | } |
|
24449
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
302 | } |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
303 | |
|
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
304 | static void |
|
18420
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
305 | irssi_terminal_refresh(GntWM *wm) |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
306 | { |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
307 | draw_line_separators((Irssi*)wm); |
|
24449
596d0523c041
Fix a bug in the irssi plugin where the windows wouldn't expand when the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23153
diff
changeset
|
308 | g_hash_table_foreach(wm->nodes, (GHFunc)refresh_window, wm); |
|
18420
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
309 | } |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
310 | |
|
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
311 | static void |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
312 | irssi_class_init(IrssiClass *klass) |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
313 | { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
314 | GntWMClass *pclass = GNT_WM_CLASS(klass); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
315 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
316 | org_new_window = pclass->new_window; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
317 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
318 | pclass->new_window = irssi_new_window; |
|
17866
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
319 | pclass->window_resized = irssi_window_resized; |
|
788f26df0842
Draw a separator line between the buddylist and the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17864
diff
changeset
|
320 | pclass->close_window = irssi_close_window; |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
321 | pclass->window_update = irssi_update_window; |
|
18420
fd3ec9457e27
Add a callback that gets triggered by SIGWINCH.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18370
diff
changeset
|
322 | pclass->terminal_refresh = irssi_terminal_refresh; |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
323 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
324 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "move-up", move_direction, |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
325 | "\033" "K", GINT_TO_POINTER('k'), NULL); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
326 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "move-down", move_direction, |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
327 | "\033" "J", GINT_TO_POINTER('j'), NULL); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
328 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "move-right", move_direction, |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
329 | "\033" "L", GINT_TO_POINTER('l'), NULL); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
330 | gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "move-left", move_direction, |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
331 | "\033" "H", GINT_TO_POINTER('h'), NULL); |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
332 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
333 | gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
334 | GNTDEBUG; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
335 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
336 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
337 | void gntwm_init(GntWM **wm) |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
338 | { |
|
18370
1f3c329fe2b2
Plug a memory leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18361
diff
changeset
|
339 | char *style = NULL; |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
340 | Irssi *irssi; |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
341 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
342 | irssi = g_object_new(TYPE_IRSSI, NULL); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
343 | *wm = GNT_WM(irssi); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
344 | |
|
18361
740fec710f0a
This is a more flexible way of getting random settings from .gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18184
diff
changeset
|
345 | style = gnt_style_get_from_name("irssi", "split-v"); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
346 | irssi->vert = style ? atoi(style) : 1; |
|
18370
1f3c329fe2b2
Plug a memory leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18361
diff
changeset
|
347 | g_free(style); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
348 | |
|
18361
740fec710f0a
This is a more flexible way of getting random settings from .gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18184
diff
changeset
|
349 | style = gnt_style_get_from_name("irssi", "split-h"); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
350 | irssi->horiz = style ? atoi(style) : 1; |
|
18370
1f3c329fe2b2
Plug a memory leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18361
diff
changeset
|
351 | g_free(style); |
|
18107
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
352 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
353 | irssi->vert = MAX(irssi->vert, 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
354 | irssi->horiz = MAX(irssi->horiz, 1); |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
355 | |
|
080301575c86
Update the irssi WM to allow tiling the conversation windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17866
diff
changeset
|
356 | irssi->buddylistwidth = 0; |
|
17864
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
357 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
358 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
359 | GType irssi_get_gtype(void) |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
360 | { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
361 | static GType type = 0; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
362 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
363 | if(type == 0) { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
364 | static const GTypeInfo info = { |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
365 | sizeof(IrssiClass), |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
366 | NULL, /* base_init */ |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
367 | NULL, /* base_finalize */ |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
368 | (GClassInitFunc)irssi_class_init, |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
369 | NULL, |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
370 | NULL, /* class_data */ |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
371 | sizeof(Irssi), |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
372 | 0, /* n_preallocs */ |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
373 | NULL, /* instance_init */ |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
374 | NULL |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
375 | }; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
376 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
377 | type = g_type_register_static(GNT_TYPE_WM, |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
378 | "GntIrssi", |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
379 | &info, 0); |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
380 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
381 | |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
382 | return type; |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
383 | } |
|
06b4c3fce998
Add a new WM, irssi. Put the wm's in $(libdir)/gnt instead of in /finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
384 |