pidgin/plugins/win32/transparency/win2ktrans.c

Tue, 11 Feb 2014 23:47:33 +0530

author
Ankit Vani <a@nevitus.org>
date
Tue, 11 Feb 2014 23:47:33 +0530
branch
soc.2013.gobjectification.plugins
changeset 37109
94d1a2589d5a
parent 36965
93fdec05493e
parent 35526
ed1be305c985
child 37123
9c245220151d
permissions
-rw-r--r--

Merged default branch

14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
1 /*
19867
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
2 * Pidgin - Transparency plugin
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
3 *
19867
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
4 * Copyright (C) 1998-2002, Rob Flynn <rob@marko.net>
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
5 * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com>
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
6 * Copyright (C) 2005, Daniel Atallah <daniel_atallah@yahoo.com>
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
7 *
19867
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
8 * This program is free software; you can redistribute it and/or
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
9 * modify it under the terms of the GNU General Public License as
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
10 * published by the Free Software Foundation; either version 2 of the
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
11 * License, or (at your option) any later version.
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
12 *
19867
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
13 * This program is distributed in the hope that it will be useful, but
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
16 * General Public License for more details.
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
17 *
19867
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
18 * You should have received a copy of the GNU General Public License
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
19 * along with this program; if not, write to the Free Software
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
57797f0c8384 I missed this file when I updated the FSF address in the source previously.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
21 * 02111-1301, USA.
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
22 *
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
23 */
33941
80fcf7f86e4a win32: globally define _WIN32_WINNT macro, tune config, move gtkconv themes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 29740
diff changeset
24
80fcf7f86e4a win32: globally define _WIN32_WINNT macro, tune config, move gtkconv themes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 29740
diff changeset
25 #include "config.h"
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
26 #include <gdk/gdkwin32.h>
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
27 #include "internal.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
28
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
29 #include "core.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
30 #include "prefs.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
31 #include "debug.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
32
35526
ed1be305c985 Fix gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35111
diff changeset
33 #include "gtk3compat.h"
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
34 #include "gtkconv.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
35 #include "gtkplugin.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
36 #include "gtkprefs.h"
34708
dd67596485ca Undo renames of UI blist headers back to gntblist.h and gtkblist.h
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
37 #include "gtkblist.h"
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
38 #include "gtkutils.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
39 #include "signals.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
40 #include "version.h"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
41
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
42 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
43 * MACROS & DEFINES
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
44 */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
45 #define WINTRANS_PLUGIN_ID "gtk-win-trans"
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
46
34726
af52ff6660c0 Replaced purple_get_blist() with purple_blist_get_buddy_list()
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
47 #define blist (purple_blist_get_buddy_list() \
af52ff6660c0 Replaced purple_get_blist() with purple_blist_get_buddy_list()
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
48 ? (PIDGIN_BLIST(purple_blist_get_buddy_list()) \
af52ff6660c0 Replaced purple_get_blist() with purple_blist_get_buddy_list()
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
49 ? ((PIDGIN_BLIST(purple_blist_get_buddy_list()))->window) \
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
50 : NULL) \
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
51 : NULL)
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
52
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
53 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
54 * DATA STRUCTS
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
55 */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
56 typedef struct {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
57 GtkWidget *win;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
58 GtkWidget *slider;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
59 } slider_win;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
60
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
61 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
62 * LOCALS
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
63 */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
64 static const char *OPT_WINTRANS_IM_ENABLED= "/plugins/gtk/win32/wintrans/im_enabled";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
65 static const char *OPT_WINTRANS_IM_ALPHA = "/plugins/gtk/win32/wintrans/im_alpha";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
66 static const char *OPT_WINTRANS_IM_SLIDER = "/plugins/gtk/win32/wintrans/im_slider";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
67 static const char *OPT_WINTRANS_IM_ONFOCUS= "/plugins/gtk/win32/wintrans/im_solid_onfocus";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
68 static const char *OPT_WINTRANS_IM_ONTOP = "/plugins/gtk/win32/wintrans/im_always_on_top";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
69 static const char *OPT_WINTRANS_BL_ENABLED= "/plugins/gtk/win32/wintrans/bl_enabled";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
70 static const char *OPT_WINTRANS_BL_ALPHA = "/plugins/gtk/win32/wintrans/bl_alpha";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
71 static const char *OPT_WINTRANS_BL_ONFOCUS= "/plugins/gtk/win32/wintrans/bl_solid_onfocus";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
72 static const char *OPT_WINTRANS_BL_ONTOP = "/plugins/gtk/win32/wintrans/bl_always_on_top";
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
73 static GSList *window_list = NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
74
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
75 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
76 * CODE
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
77 */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
78
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
79 /* Set window transparency level */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
80 static void set_wintrans(GtkWidget *window, int alpha, gboolean enabled,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
81 gboolean always_on_top) {
29740
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
82
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
83 HWND hWnd = GDK_WINDOW_HWND(window->window);
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
84 LONG style = GetWindowLong(hWnd, GWL_EXSTYLE);
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
85 if (enabled) {
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
86 style |= WS_EX_LAYERED;
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
87 } else {
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
88 style &= ~WS_EX_LAYERED;
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
89 }
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
90 SetWindowLong(hWnd, GWL_EXSTYLE, style);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
91
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
92
29740
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
93 if (enabled) {
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
94 SetWindowPos(hWnd,
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
95 always_on_top ? HWND_TOPMOST : HWND_NOTOPMOST,
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
96 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
97 SetLayeredWindowAttributes(hWnd, 0, alpha, LWA_ALPHA);
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
98 } else {
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
99 /* Ask the window and its children to repaint */
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
100 SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0,
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
101 SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
102
29740
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
103 RedrawWindow(hWnd, NULL, NULL,
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
104 RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
105 }
29740
d3333cd60e45 Avoid looking up functions by name that will be present on all supported Windows versions.
Daniel Atallah <datallah@pidgin.im>
parents: 26821
diff changeset
106
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
107 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
108
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
109 /* When a conv window is focused, if we're only transparent when unfocused,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
110 * deal with transparency */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
111 static gboolean focus_conv_win_cb(GtkWidget *w, GdkEventFocus *e, gpointer d) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
112 if (purple_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
113 && purple_prefs_get_bool(OPT_WINTRANS_IM_ONFOCUS)) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
114 GtkWidget *window = (GtkWidget *) d;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
115 if (e->in) { /* Focused */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
116 set_wintrans(window, 0, FALSE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
117 purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
118 } else {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
119 set_wintrans(window,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
120 purple_prefs_get_int(OPT_WINTRANS_IM_ALPHA),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
121 TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
122 purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
123 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
124 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
125 return FALSE;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
126 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
127
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
128 /* When buddy list window is focused,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
129 * if we're only transparent when unfocused, deal with transparency */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
130 static gboolean focus_blist_win_cb(GtkWidget *w, GdkEventFocus *e, gpointer d) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
131 if (purple_prefs_get_bool(OPT_WINTRANS_BL_ENABLED)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
132 && purple_prefs_get_bool(OPT_WINTRANS_BL_ONFOCUS)) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
133 GtkWidget *window = (GtkWidget *) d;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
134 if (e->in) { /* Focused */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
135 set_wintrans(window, 0, FALSE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
136 purple_prefs_get_bool(OPT_WINTRANS_BL_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
137 } else {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
138 set_wintrans(window,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
139 purple_prefs_get_int(OPT_WINTRANS_BL_ALPHA),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
140 TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
141 purple_prefs_get_bool(OPT_WINTRANS_BL_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
142 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
143 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
144 return FALSE;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
145 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
146
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
147 static void change_alpha(GtkWidget *w, gpointer data) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
148 int alpha = gtk_range_get_value(GTK_RANGE(w));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
149 purple_prefs_set_int(OPT_WINTRANS_IM_ALPHA, alpha);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
150
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
151 /* If we're in no-transparency on focus mode,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
152 * don't take effect immediately */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
153 if (!purple_prefs_get_bool(OPT_WINTRANS_IM_ONFOCUS))
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
154 set_wintrans(GTK_WIDGET(data), alpha, TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
155 purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
156 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
157
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
158
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
159 static GtkWidget *wintrans_slider(GtkWidget *win) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
160 GtkWidget *hbox;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
161 GtkWidget *label, *slider;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
162 GtkWidget *frame;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
163
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
164 int imalpha = purple_prefs_get_int(OPT_WINTRANS_IM_ALPHA);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
165
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
166 frame = gtk_frame_new(NULL);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
167 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
168 gtk_widget_show(frame);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
169
35526
ed1be305c985 Fix gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35111
diff changeset
170 hbox = gtk_hbox_new(GTK_ORIENTATION_HORIZONTAL, 5);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
171 gtk_container_add(GTK_CONTAINER(frame), hbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
172
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
173 label = gtk_label_new(_("Opacity:"));
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
174 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
175 gtk_widget_show(hbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
176
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
177 slider = gtk_hscale_new_with_range(50, 255, 1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
178 gtk_range_set_value(GTK_RANGE(slider), imalpha);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
179 gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
180
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
181 /* On slider val change, update window's transparency level */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
182 g_signal_connect(GTK_OBJECT(slider), "value-changed",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
183 G_CALLBACK(change_alpha), win);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
184
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
185 gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
186
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
187 /* Set the initial transparency level */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
188 set_wintrans(win, imalpha, TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
189 purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
190
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
191 gtk_widget_show_all(hbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
192
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
193 return frame;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
194 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
195
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
196 static slider_win* find_slidwin(GtkWidget *win) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
197 GSList *tmp = window_list;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
198
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
199 while (tmp) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
200 if (((slider_win*) (tmp->data))->win == win)
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
201 return (slider_win*) tmp->data;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
202 tmp = tmp->next;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
203 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
204 return NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
205 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
206
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
207 /* Clean up transparency stuff for the conv window */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
208 static void cleanup_conv_window(PidginWindow *win) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
209 GtkWidget *window = win->window;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
210 slider_win *slidwin = NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
211
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
212 /* Remove window from the window list */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
213 purple_debug_info(WINTRANS_PLUGIN_ID,
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
214 "Conv window destroyed... removing from list\n");
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
215
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
216 if ((slidwin = find_slidwin(window))) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
217 window_list = g_slist_remove(window_list, slidwin);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
218 g_free(slidwin);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
219 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
220
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
221 /* Remove the focus cbs */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
222 g_signal_handlers_disconnect_by_func(G_OBJECT(window),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
223 G_CALLBACK(focus_conv_win_cb), window);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
224 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
225
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
226 static void
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
227 conversation_delete_cb(PurpleConversation *conv) {
15563
9eea2b8c2846 pidginconv to pidgin_conv
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
228 PidginWindow *win = pidgin_conv_get_window(PIDGIN_CONVERSATION(conv));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
229 /* If it is the last conversation in the window, cleanup */
20213
3edb61aa5767 applied changes from 1bdf4754abed6b49eec400ecf415a9d557bc9834
Luke Schierer <lschiere@pidgin.im>
parents: 19867
diff changeset
230 if (win != NULL && pidgin_conv_window_get_gtkconv_count(win) == 1)
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
231 cleanup_conv_window(win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
232 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
233
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
234 static void set_blist_trans(GtkWidget *w, const char *pref) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
235 gboolean enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
236 purple_prefs_set_bool(pref, enabled);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
237 if (blist) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
238 set_wintrans(blist, purple_prefs_get_int(OPT_WINTRANS_BL_ALPHA),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
239 purple_prefs_get_bool(OPT_WINTRANS_BL_ENABLED),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
240 purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
241 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
242 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
243
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
244 static void add_slider(GtkWidget *win) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
245 GList *wl, *wl1;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
246 GtkWidget *vbox = NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
247
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
248 /* Look up this window to see if it already has a slider */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
249 if (!find_slidwin(win)) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
250 GtkWidget *slider_box = NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
251 slider_win *slidwin = NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
252 GtkRequisition slidereq;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
253 gint width, height;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
254
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
255 /* Get top vbox */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
256 for (wl1 = wl = gtk_container_get_children(
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
257 GTK_CONTAINER(win));
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
258 wl != NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
259 wl = wl->next) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
260 if (GTK_IS_VBOX(GTK_OBJECT(wl->data)))
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
261 vbox = GTK_WIDGET(wl->data);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
262 else {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
263 purple_debug_error(WINTRANS_PLUGIN_ID,
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
264 "no vbox found\n");
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
265 return;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
266 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
267 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
268 g_list_free(wl1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
269
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
270 slider_box = wintrans_slider(win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
271 /* Figure out how tall the slider wants to be */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
272 gtk_widget_size_request(slider_box, &slidereq);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
273 gtk_window_get_size(GTK_WINDOW(win), &width, &height);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
274 gtk_box_pack_start(GTK_BOX(vbox),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
275 slider_box, FALSE, FALSE, 0);
19338
95a98a5859a0 Don't have the conv. window grow by the width of the transparency slider every time you open a new window. I figured this was more important than not shrinking the backlog pane when someone turns on the slider (it isn't like anyone turns it on and off all the time anyway). Fixes #2470.
Daniel Atallah <datallah@pidgin.im>
parents: 18669
diff changeset
276 #if 0 /*Now that we save window sizes, don't resize it or else it causes windows to grow*/
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
277 /* Make window taller so we don't slowly collapse its message area */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
278 gtk_window_resize(GTK_WINDOW(win), width,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
279 (height + slidereq.height));
19338
95a98a5859a0 Don't have the conv. window grow by the width of the transparency slider every time you open a new window. I figured this was more important than not shrinking the backlog pane when someone turns on the slider (it isn't like anyone turns it on and off all the time anyway). Fixes #2470.
Daniel Atallah <datallah@pidgin.im>
parents: 18669
diff changeset
280 #endif
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
281 /* Add window to list, to track that it has a slider */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
282 slidwin = g_new0(slider_win, 1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
283 slidwin->win = win;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
284 slidwin->slider = slider_box;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
285 window_list = g_slist_append(window_list, slidwin);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
286 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
287 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
288
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
289 static void remove_sliders() {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
290 if (window_list) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
291 GSList *tmp = window_list;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
292 while (tmp) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
293 slider_win *slidwin = (slider_win*) tmp->data;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
294 if (slidwin != NULL &&
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
295 GTK_IS_WINDOW(slidwin->win)) {
19338
95a98a5859a0 Don't have the conv. window grow by the width of the transparency slider every time you open a new window. I figured this was more important than not shrinking the backlog pane when someone turns on the slider (it isn't like anyone turns it on and off all the time anyway). Fixes #2470.
Daniel Atallah <datallah@pidgin.im>
parents: 18669
diff changeset
296 #if 0
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
297 GtkRequisition slidereq;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
298 gint width, height;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
299 /* Figure out how tall the slider was */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
300 gtk_widget_size_request(
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
301 slidwin->slider, &slidereq);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
302 gtk_window_get_size(
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
303 GTK_WINDOW(slidwin->win),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
304 &width, &height);
19338
95a98a5859a0 Don't have the conv. window grow by the width of the transparency slider every time you open a new window. I figured this was more important than not shrinking the backlog pane when someone turns on the slider (it isn't like anyone turns it on and off all the time anyway). Fixes #2470.
Daniel Atallah <datallah@pidgin.im>
parents: 18669
diff changeset
305 #endif
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
306 gtk_widget_destroy(slidwin->slider);
19338
95a98a5859a0 Don't have the conv. window grow by the width of the transparency slider every time you open a new window. I figured this was more important than not shrinking the backlog pane when someone turns on the slider (it isn't like anyone turns it on and off all the time anyway). Fixes #2470.
Daniel Atallah <datallah@pidgin.im>
parents: 18669
diff changeset
307 #if 0
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
308 gtk_window_resize(
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
309 GTK_WINDOW(slidwin->win),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
310 width, (height - slidereq.height));
19338
95a98a5859a0 Don't have the conv. window grow by the width of the transparency slider every time you open a new window. I figured this was more important than not shrinking the backlog pane when someone turns on the slider (it isn't like anyone turns it on and off all the time anyway). Fixes #2470.
Daniel Atallah <datallah@pidgin.im>
parents: 18669
diff changeset
311 #endif
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
312 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
313 g_free(slidwin);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
314 tmp = tmp->next;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
315 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
316 g_slist_free(window_list);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
317 window_list = NULL;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
318 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
319 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
320
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
321 /* Remove all transparency related aspects from conversation windows */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
322 static void remove_convs_wintrans(gboolean remove_signal) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
323 GList *wins;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
324
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
325 for (wins = pidgin_conv_windows_get_list(); wins; wins = wins->next) {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
326 PidginWindow *win = wins->data;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
327 GtkWidget *window = win->window;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
328
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
329 if (purple_prefs_get_bool(OPT_WINTRANS_IM_ENABLED))
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
330 set_wintrans(window, 0, FALSE, FALSE);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
331
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
332 /* Remove the focus cbs */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
333 if (remove_signal)
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
334 g_signal_handlers_disconnect_by_func(G_OBJECT(window),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
335 G_CALLBACK(focus_conv_win_cb), window);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
336 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
337
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
338 remove_sliders();
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
339 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
340
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
341 static void set_conv_window_trans(PidginWindow *oldwin, PidginWindow *newwin) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
342 GtkWidget *win = newwin->window;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
343
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
344 /* check prefs to see if we want trans */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
345 if (purple_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
346 set_wintrans(win, purple_prefs_get_int(OPT_WINTRANS_IM_ALPHA),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
347 TRUE, purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
348
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
349 if (purple_prefs_get_bool(OPT_WINTRANS_IM_SLIDER)) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
350 add_slider(win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
351 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
352 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
353
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
354 /* If we're moving from one window to another,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
355 * add the focus listeners to the new window if not already there */
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
356 if (oldwin != NULL && oldwin != newwin) {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
357 if (pidgin_conv_window_get_gtkconv_count(newwin) == 0) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
358 g_signal_connect(G_OBJECT(win), "focus_in_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
359 G_CALLBACK(focus_conv_win_cb), win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
360 g_signal_connect(G_OBJECT(win), "focus_out_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
361 G_CALLBACK(focus_conv_win_cb), win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
362 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
363
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
364 /* If we've moved the last conversation, cleanup the window */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
365 if (pidgin_conv_window_get_gtkconv_count(oldwin) == 1)
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
366 cleanup_conv_window(oldwin);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
367 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
368 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
369
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
370 static void update_convs_wintrans(GtkWidget *toggle_btn, const char *pref) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
371 purple_prefs_set_bool(pref, gtk_toggle_button_get_active(
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
372 GTK_TOGGLE_BUTTON(toggle_btn)));
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
373
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
374 if (purple_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
375 GList *wins;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
376
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
377 for (wins = pidgin_conv_windows_get_list(); wins; wins = wins->next) {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
378 PidginWindow *win = wins->data;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
379 set_conv_window_trans(NULL, win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
380 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
381
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
382 if (!purple_prefs_get_bool(OPT_WINTRANS_IM_SLIDER))
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
383 remove_sliders();
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
384 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
385 else
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
386 remove_convs_wintrans(FALSE);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
387 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
388
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
389 static void
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 33941
diff changeset
390 conv_updated_cb(PurpleConversation *conv, PurpleConversationUpdateType type) {
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
391 PidginConversation *pconv = PIDGIN_CONVERSATION(conv);
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
392 PidginWindow *win = pidgin_conv_get_window(pconv);
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
393
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 33941
diff changeset
394 if (type == PURPLE_CONVERSATION_UPDATE_UNSEEN && !pidgin_conv_is_hidden(pconv)
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
395 && pconv->unseen_state == PIDGIN_UNSEEN_NONE
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
396 && pidgin_conv_window_get_gtkconv_count(win) == 1) {
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
397 GtkWidget *window = win->window;
19533
5995a2472d9b Don't apply transparency when the window has focus (this was caused by the fix for initially hidden windows not having the transparency on focus stuff working correctly). Fixes #2384.
Daniel Atallah <datallah@pidgin.im>
parents: 19338
diff changeset
398 gboolean has_focus;
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
399
19533
5995a2472d9b Don't apply transparency when the window has focus (this was caused by the fix for initially hidden windows not having the transparency on focus stuff working correctly). Fixes #2384.
Daniel Atallah <datallah@pidgin.im>
parents: 19338
diff changeset
400 g_object_get(G_OBJECT(window), "has-toplevel-focus", &has_focus, NULL);
5995a2472d9b Don't apply transparency when the window has focus (this was caused by the fix for initially hidden windows not having the transparency on focus stuff working correctly). Fixes #2384.
Daniel Atallah <datallah@pidgin.im>
parents: 19338
diff changeset
401
19661
0c99d79b617e Don't mess up the initial transparency when not using the "remove transparency on focus" pref.\n
Daniel Atallah <datallah@pidgin.im>
parents: 19533
diff changeset
402 if (!has_focus || !purple_prefs_get_bool(OPT_WINTRANS_IM_ONFOCUS))
19533
5995a2472d9b Don't apply transparency when the window has focus (this was caused by the fix for initially hidden windows not having the transparency on focus stuff working correctly). Fixes #2384.
Daniel Atallah <datallah@pidgin.im>
parents: 19338
diff changeset
403 set_conv_window_trans(NULL, win);
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
404
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
405 if (g_signal_handler_find(G_OBJECT(window), G_SIGNAL_MATCH_FUNC,
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
406 0, 0, NULL, G_CALLBACK(focus_conv_win_cb), NULL) == 0) {
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
407 g_signal_connect(G_OBJECT(window), "focus_in_event",
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
408 G_CALLBACK(focus_conv_win_cb), window);
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
409 g_signal_connect(G_OBJECT(window), "focus_out_event",
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
410 G_CALLBACK(focus_conv_win_cb), window);
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
411 }
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
412 }
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
413 }
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
414
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
415 static void
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
416 new_conversation_cb(PurpleConversation *conv) {
15563
9eea2b8c2846 pidginconv to pidgin_conv
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
417 PidginWindow *win = pidgin_conv_get_window(PIDGIN_CONVERSATION(conv));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
418
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
419 /* If it is the first conversation in the window,
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
420 * add the sliders, and set transparency */
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
421 if (!pidgin_conv_is_hidden(PIDGIN_CONVERSATION(conv)) && pidgin_conv_window_get_gtkconv_count(win) == 1) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
422 GtkWidget *window = win->window;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
423
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
424 set_conv_window_trans(NULL, win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
425
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
426 g_signal_connect(G_OBJECT(window), "focus_in_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
427 G_CALLBACK(focus_conv_win_cb), window);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
428 g_signal_connect(G_OBJECT(window), "focus_out_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
429 G_CALLBACK(focus_conv_win_cb), window);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
430 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
431 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
432
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
433 static void
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
434 blist_created_cb(PurpleBuddyList *purple_blist, gpointer data) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
435 if (blist) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
436 if (purple_prefs_get_bool(OPT_WINTRANS_BL_ENABLED)) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
437 set_wintrans(blist,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
438 purple_prefs_get_int(OPT_WINTRANS_BL_ALPHA),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
439 TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
440 purple_prefs_get_bool(OPT_WINTRANS_BL_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
441 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
442
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
443 g_signal_connect(G_OBJECT(blist), "focus_in_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
444 G_CALLBACK(focus_blist_win_cb), blist);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
445 g_signal_connect(G_OBJECT(blist), "focus_out_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
446 G_CALLBACK(focus_blist_win_cb), blist);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
447 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
448 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
449
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
450 static void alpha_change(GtkWidget *w, gpointer data) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
451 GList *wins;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
452 int imalpha = gtk_range_get_value(GTK_RANGE(w));
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
453
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
454 for (wins = pidgin_conv_windows_get_list(); wins; wins = wins->next) {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
455 PidginWindow *win = wins->data;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
456 set_wintrans(win->window, imalpha, TRUE,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
457 purple_prefs_get_bool(OPT_WINTRANS_IM_ONTOP));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
458 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
459 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
460
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
461 static void alpha_pref_set_int (GtkWidget *w, GdkEventFocus *e, const char *pref)
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
462 {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
463 int alpha = gtk_range_get_value(GTK_RANGE(w));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
464 purple_prefs_set_int(pref, alpha);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
465 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
466
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
467 static void bl_alpha_change(GtkWidget *w, gpointer data) {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
468 if (blist)
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
469 change_alpha(w, blist);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
470 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
471
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
472 static void update_existing_convs() {
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
473 GList *wins;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
474
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
475 for (wins = pidgin_conv_windows_get_list(); wins; wins = wins->next) {
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
476 PidginWindow *win = wins->data;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
477 GtkWidget *window = win->window;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
478
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
479 set_conv_window_trans(NULL, win);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
480
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
481 g_signal_connect(G_OBJECT(window), "focus_in_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
482 G_CALLBACK(focus_conv_win_cb), window);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
483 g_signal_connect(G_OBJECT(window), "focus_out_event",
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
484 G_CALLBACK(focus_conv_win_cb), window);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
485 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
486 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
487
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
488 /*
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
489 * EXPORTED FUNCTIONS
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
490 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
491 static GtkWidget *get_config_frame(PurplePlugin *plugin) {
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
492 GtkWidget *ret;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
493 GtkWidget *imtransbox, *bltransbox;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
494 GtkWidget *hbox;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
495 GtkWidget *label, *slider;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
496 GtkWidget *button;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
497 GtkWidget *trans_box;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
498
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
499 ret = gtk_vbox_new(FALSE, 18);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
500 gtk_container_set_border_width(GTK_CONTAINER (ret), 12);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
501
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
502 /* IM Convo trans options */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
503 imtransbox = pidgin_make_frame(ret, _("IM Conversation Windows"));
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
504 button = pidgin_prefs_checkbox(_("_IM window transparency"),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
505 OPT_WINTRANS_IM_ENABLED, imtransbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
506 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
507 G_CALLBACK(update_convs_wintrans),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
508 (gpointer) OPT_WINTRANS_IM_ENABLED);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
509
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
510 trans_box = gtk_vbox_new(FALSE, 18);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
511 if (!purple_prefs_get_bool(OPT_WINTRANS_IM_ENABLED))
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
512 gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
513 gtk_widget_show(trans_box);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
514
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
515 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
516 G_CALLBACK(pidgin_toggle_sensitive), trans_box);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
517
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
518 button = pidgin_prefs_checkbox(_("_Show slider bar in IM window"),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
519 OPT_WINTRANS_IM_SLIDER, trans_box);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
520 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
521 G_CALLBACK(update_convs_wintrans),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
522 (gpointer) OPT_WINTRANS_IM_SLIDER);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
523
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
524 button = pidgin_prefs_checkbox(
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
525 _("Remove IM window transparency on focus"),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
526 OPT_WINTRANS_IM_ONFOCUS, trans_box);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
527
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
528 button = pidgin_prefs_checkbox(_("Always on top"), OPT_WINTRANS_IM_ONTOP,
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
529 trans_box);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
530 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
531 G_CALLBACK(update_convs_wintrans),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
532 (gpointer) OPT_WINTRANS_IM_ONTOP);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
533
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
534 gtk_box_pack_start(GTK_BOX(imtransbox), trans_box, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
535
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
536 /* IM transparency slider */
35526
ed1be305c985 Fix gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35111
diff changeset
537 hbox = gtk_hbox_new(GTK_ORIENTATION_HORIZONTAL, 5);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
538
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
539 label = gtk_label_new(_("Opacity:"));
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
540 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
541
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
542 slider = gtk_hscale_new_with_range(50, 255, 1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
543 gtk_range_set_value(GTK_RANGE(slider),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
544 purple_prefs_get_int(OPT_WINTRANS_IM_ALPHA));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
545 gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
546
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
547 g_signal_connect(GTK_OBJECT(slider), "value-changed",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
548 G_CALLBACK(alpha_change), NULL);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
549 g_signal_connect(GTK_OBJECT(slider), "focus-out-event",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
550 G_CALLBACK(alpha_pref_set_int),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
551 (gpointer) OPT_WINTRANS_IM_ALPHA);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
552
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
553 gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
554
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
555 gtk_widget_show_all(hbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
556
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
557 gtk_box_pack_start(GTK_BOX(trans_box), hbox, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
558
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
559 /* Buddy List trans options */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
560 bltransbox = pidgin_make_frame (ret, _("Buddy List Window"));
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
561 button = pidgin_prefs_checkbox(_("_Buddy List window transparency"),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
562 OPT_WINTRANS_BL_ENABLED, bltransbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
563 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
564 G_CALLBACK(set_blist_trans),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
565 (gpointer) OPT_WINTRANS_BL_ENABLED);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
566
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
567 trans_box = gtk_vbox_new(FALSE, 18);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
568 if (!purple_prefs_get_bool(OPT_WINTRANS_BL_ENABLED))
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
569 gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
570 gtk_widget_show(trans_box);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
571 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
572 G_CALLBACK(pidgin_toggle_sensitive), trans_box);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
573 button = pidgin_prefs_checkbox(
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
574 _("Remove Buddy List window transparency on focus"),
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
575 OPT_WINTRANS_BL_ONFOCUS, trans_box);
18669
872d7d81d212 Fix transparency not being applied when showing a hidden conversation.
Daniel Atallah <datallah@pidgin.im>
parents: 16751
diff changeset
576 button = pidgin_prefs_checkbox(_("Always on top"), OPT_WINTRANS_BL_ONTOP,
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
577 trans_box);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
578 g_signal_connect(GTK_OBJECT(button), "clicked",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
579 G_CALLBACK(set_blist_trans),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
580 (gpointer) OPT_WINTRANS_BL_ONTOP);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
581 gtk_box_pack_start(GTK_BOX(bltransbox), trans_box, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
582
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
583 /* IM transparency slider */
35526
ed1be305c985 Fix gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35111
diff changeset
584 hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
585
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
586 label = gtk_label_new(_("Opacity:"));
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
587 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
588
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
589 slider = gtk_hscale_new_with_range(50, 255, 1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
590 gtk_range_set_value(GTK_RANGE(slider),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
591 purple_prefs_get_int(OPT_WINTRANS_BL_ALPHA));
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
592
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
593 gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
594
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
595 g_signal_connect(GTK_OBJECT(slider), "value-changed",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
596 G_CALLBACK(bl_alpha_change), NULL);
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
597 g_signal_connect(GTK_OBJECT(slider), "focus-out-event",
26821
ad2ea323d0f2 Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 20288
diff changeset
598 G_CALLBACK(alpha_pref_set_int),
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
599 (gpointer) OPT_WINTRANS_BL_ALPHA);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
600
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
601 gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
602
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
603 gtk_widget_show_all(hbox);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
604
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
605 gtk_box_pack_start(GTK_BOX(trans_box), hbox, FALSE, FALSE, 5);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
606
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
607 gtk_widget_show_all(ret);
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
608 return ret;
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
609 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
610
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
611 static PidginPluginInfo *
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
612 plugin_query(GError **error)
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
613 {
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
614 const gchar * const authors[] = {
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
615 "Herman Bloggs <hermanator12002@yahoo.com>",
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
616 NULL
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
617 };
16751
8e552dc2ef9f 20:06 < SimGuy> grim: add padding to the two win32 plugins while you're at it :P
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
618
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
619 return pidgin_plugin_info_new(
36935
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
620 "id", WINTRANS_PLUGIN_ID,
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
621 "name", N_("Transparency"),
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
622 "version", DISPLAY_VERSION,
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
623 "category", N_("User interface"),
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
624 "summary", N_("Variable Transparency for the buddy "
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
625 "list and conversations."),
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
626 "description", N_("This plugin enables variable alpha "
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
627 "transparency on conversation windows "
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
628 "and the buddy list.\n\n"
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
629 "* Note: This plugin requires Win2000 or "
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
630 "greater."),
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
631 "authors", authors,
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
632 "website", PURPLE_WEBSITE,
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
633 "abi-version", PURPLE_ABI_VERSION,
5384600e613c Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
634 "gtk-config-frame-cb", get_config_frame,
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
635 NULL
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
636 );
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
637 }
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
638
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
639 static gboolean plugin_load(PurplePlugin *plugin, GError **error) {
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
640
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
641 purple_prefs_add_none("/plugins/gtk/win32");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
642 purple_prefs_add_none("/plugins/gtk/win32/wintrans");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
643 purple_prefs_add_bool(OPT_WINTRANS_IM_ENABLED, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
644 purple_prefs_add_int(OPT_WINTRANS_IM_ALPHA, 255);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
645 purple_prefs_add_bool(OPT_WINTRANS_IM_SLIDER, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
646 purple_prefs_add_bool(OPT_WINTRANS_IM_ONFOCUS, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
647 purple_prefs_add_bool(OPT_WINTRANS_IM_ONTOP, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
648 purple_prefs_add_bool(OPT_WINTRANS_BL_ENABLED, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
649 purple_prefs_add_int(OPT_WINTRANS_BL_ALPHA, 255);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
650 purple_prefs_add_bool(OPT_WINTRANS_BL_ONFOCUS, FALSE);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15563
diff changeset
651 purple_prefs_add_bool(OPT_WINTRANS_BL_ONTOP, FALSE);
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
652
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
653 purple_signal_connect(purple_conversations_get_handle(),
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
654 "conversation-created", plugin,
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
655 PURPLE_CALLBACK(new_conversation_cb), NULL);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
656
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
657 /* Set callback to remove window from the list, if the window is destroyed */
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
658 purple_signal_connect(purple_conversations_get_handle(),
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
659 "deleting-conversation", plugin,
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
660 PURPLE_CALLBACK(conversation_delete_cb), NULL);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
661
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
662 purple_signal_connect(pidgin_conversations_get_handle(),
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
663 "conversation-dragging", plugin,
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
664 PURPLE_CALLBACK(set_conv_window_trans), NULL);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
665
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
666 purple_signal_connect(purple_conversations_get_handle(),
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
667 "conversation-updated", plugin,
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
668 PURPLE_CALLBACK(conv_updated_cb), NULL);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
669
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
670 update_existing_convs();
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
671
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
672 if (blist)
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
673 blist_created_cb(NULL, NULL);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
674 else
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
675 purple_signal_connect(pidgin_blist_get_handle(),
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
676 "gtkblist-created", plugin,
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
677 PURPLE_CALLBACK(blist_created_cb), NULL);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
678
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
679
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
680 return TRUE;
14286
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
681 }
9ff15ceacd34 [gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
diff changeset
682
36771
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
683 static gboolean plugin_unload(PurplePlugin *plugin, GError **error) {
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
684 purple_debug_info(WINTRANS_PLUGIN_ID, "Unloading win2ktrans plugin\n");
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
685
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
686 remove_convs_wintrans(TRUE);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
687
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
688 if (blist) {
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
689 if (purple_prefs_get_bool(OPT_WINTRANS_BL_ENABLED))
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
690 set_wintrans(blist, 0, FALSE, FALSE);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
691
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
692 /* Remove the focus cbs */
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
693 g_signal_handlers_disconnect_by_func(G_OBJECT(blist),
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
694 G_CALLBACK(focus_blist_win_cb), blist);
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
695 }
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
696
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
697 return TRUE;
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
698 }
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
699
38865e7d8465 Added new API entry points for win32 pidgin plugins (not tested)
Ankit Vani <a@nevitus.org>
parents: 34726
diff changeset
700 PURPLE_PLUGIN_INIT(wintrans, plugin_query, plugin_load, plugin_unload);

mercurial