Mercurial > pidgin
annotate plugins/win32/transparency/win2ktrans.c @ 10087:9fdbfe832fac
[gaim-migrate @ 11098]
gaim_prefs_connect_callback() now takes a handle that can be used to disconnect
the callbacks later on. The callback id's remain, so people can still use those
if they want, although I'm not sure if there's any need for them any more.
I also switched the order for initializing the prefs subsystem and statically
compiled protocol plugins so that prpl prefs can work for statically compiled
prpls.
committer: Tailor Script <tailor@pidgin.im>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Tue, 12 Oct 2004 00:49:19 +0000 |
parents | a9fb4493ae22 |
children | 67db2cbc0294 |
rev | line source |
---|---|
3729 | 1 /* |
6435
53a613fed06d
[gaim-migrate @ 6943]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6408
diff
changeset
|
2 * gaim - Transparency plugin |
3729 | 3 * |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
4 * copyright (c) 1998-2002, rob flynn <rob@marko.net> |
6435
53a613fed06d
[gaim-migrate @ 6943]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6408
diff
changeset
|
5 * copyright (c) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com> |
3729 | 6 * |
7 * this program is free software; you can redistribute it and/or modify | |
8 * it under the terms of the gnu general public license as published by | |
9 * the free software foundation; either version 2 of the license, or | |
10 * (at your option) any later version. | |
11 * | |
12 * this program is distributed in the hope that it will be useful, | |
13 * but without any warranty; without even the implied warranty of | |
14 * merchantability or fitness for a particular purpose. see the | |
15 * gnu general public license for more details. | |
16 * | |
17 * you should have received a copy of the gnu general public license | |
18 * along with this program; if not, write to the free software | |
19 * foundation, inc., 59 temple place, suite 330, boston, ma 02111-1307 usa | |
20 * | |
21 */ | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
22 #include <gdk/gdkwin32.h> |
5912
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
23 #include "internal.h" |
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
24 |
6494
4f93f10ddc75
[gaim-migrate @ 7009]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6435
diff
changeset
|
25 #include "core.h" |
5912
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
26 #include "prefs.h" |
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
27 #include "debug.h" |
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
28 |
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
29 #include "gtkconv.h" |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
30 #include "gtkplugin.h" |
5248 | 31 #include "gtkblist.h" |
5912
b3c412884a22
[gaim-migrate @ 6344]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5854
diff
changeset
|
32 #include "gtkutils.h" |
6494
4f93f10ddc75
[gaim-migrate @ 7009]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6435
diff
changeset
|
33 #include "signals.h" |
9954 | 34 #include "version.h" |
3729 | 35 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
36 /* |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
37 * MACROS & DEFINES |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
38 */ |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
39 #define WINTRANS_PLUGIN_ID "gtk-win-trans" |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
40 #define WINTRANS_VERSION 1 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
41 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
42 /* These defines aren't found in mingw's winuser.h */ |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
43 #ifndef LWA_ALPHA |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
44 #define LWA_ALPHA 0x00000002 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
45 #endif |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
46 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
47 #ifndef WS_EX_LAYERED |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
48 #define WS_EX_LAYERED 0x00080000 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
49 #endif |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
50 |
4726
0b1c01fd68f1
[gaim-migrate @ 5039]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4606
diff
changeset
|
51 #define blist (gaim_get_blist()?(GAIM_GTK_BLIST(gaim_get_blist())?((GAIM_GTK_BLIST(gaim_get_blist()))->window):NULL):NULL) |
0b1c01fd68f1
[gaim-migrate @ 5039]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4606
diff
changeset
|
52 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
53 /* |
4569
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
54 * DATA STRUCTS |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
55 */ |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
56 typedef struct { |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
57 GtkWidget *win; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
58 GtkWidget *slider; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
59 } slider_win; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
60 |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
61 |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
62 /* |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
63 * GLOBALS |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
64 */ |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
65 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
66 /* |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
67 * LOCALS |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
68 */ |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
69 static const char *OPT_WINTRANS_IM_ENABLED="/plugins/gtk/win32/wintrans/im_enabled"; |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
70 static const char *OPT_WINTRANS_IM_ALPHA ="/plugins/gtk/win32/wintrans/im_alpha"; |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
71 static const char *OPT_WINTRANS_IM_SLIDER ="/plugins/gtk/win32/wintrans/im_slider"; |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
72 static const char *OPT_WINTRANS_BL_ENABLED="/plugins/gtk/win32/wintrans/bl_enabled"; |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
73 static const char *OPT_WINTRANS_BL_ALPHA ="/plugins/gtk/win32/wintrans/bl_alpha"; |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
74 static int imalpha = 255; |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
75 static int blalpha = 255; |
9840 | 76 static GList *window_list = NULL; |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
77 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
78 /* |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
79 * PROTOS |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
80 */ |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
81 BOOL (*MySetLayeredWindowAttributes)(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags)=NULL; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
82 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
83 /* |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
84 * CODE |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
85 */ |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
86 static GtkWidget *wgaim_button(const char *text, const char *pref, GtkWidget *page) { |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
87 GtkWidget *button; |
5749
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
88 button = gtk_check_button_new_with_mnemonic(text); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
89 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), gaim_prefs_get_bool(pref)); |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
90 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); |
5749
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
91 gtk_widget_show(button); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
92 return button; |
5749
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
93 } |
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
94 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
95 /* Set window transparency level */ |
9840 | 96 static void set_wintrans(GtkWidget *window, int trans) { |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
97 if(MySetLayeredWindowAttributes) { |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
98 HWND hWnd = GDK_WINDOW_HWND(window->window); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
99 SetWindowLong(hWnd,GWL_EXSTYLE,GetWindowLong(hWnd,GWL_EXSTYLE) | WS_EX_LAYERED); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
100 MySetLayeredWindowAttributes(hWnd,0,trans,LWA_ALPHA); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
101 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
102 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
103 |
9840 | 104 static void set_wintrans_off(GtkWidget *window) { |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
105 if(MySetLayeredWindowAttributes) { |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
106 HWND hWnd = GDK_WINDOW_HWND(window->window); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
107 SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) & ~WS_EX_LAYERED); |
8961 | 108 |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
109 /* Ask the window and its children to repaint */ |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
110 RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
111 } |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
112 } |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
113 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
114 static void change_alpha(GtkWidget *w, gpointer data) { |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
115 set_wintrans(GTK_WIDGET(data), gtk_range_get_value(GTK_RANGE(w))); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
116 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
117 |
9840 | 118 static int has_transparency() { |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
119 return MySetLayeredWindowAttributes ? TRUE : FALSE; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
120 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
121 |
9840 | 122 static GtkWidget *wintrans_slider(GtkWidget *win) { |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
123 GtkWidget *hbox; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
124 GtkWidget *label, *slider; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
125 GtkWidget *frame; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
126 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
127 frame = gtk_frame_new(NULL); |
9915 | 128 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
129 gtk_widget_show(frame); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
130 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
131 hbox = gtk_hbox_new(FALSE, 5); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
132 gtk_container_add(GTK_CONTAINER(frame), hbox); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
133 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
134 label = gtk_label_new(_("Opacity:")); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
135 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
136 gtk_widget_show(hbox); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
137 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
138 slider = gtk_hscale_new_with_range(50,255,1); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
139 gtk_range_set_value(GTK_RANGE(slider), imalpha); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
140 gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
141 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
142 /* On slider val change, update window's transparency level */ |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
143 gtk_signal_connect(GTK_OBJECT(slider), "value-changed", GTK_SIGNAL_FUNC(change_alpha), win); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
144 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
145 gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
146 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
147 /* Set the initial transparency level */ |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
148 set_wintrans(win, imalpha); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
149 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
150 gtk_widget_show_all(hbox); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
151 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
152 return frame; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
153 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
154 |
4569
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
155 static slider_win* find_slidwin( GtkWidget *win ) { |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
156 GList *tmp = window_list; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
157 |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
158 while(tmp) { |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
159 if( ((slider_win*)(tmp->data))->win == win) |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
160 return (slider_win*)tmp->data; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
161 tmp = tmp->next; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
162 } |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
163 return NULL; |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
164 } |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
165 |
9840 | 166 static gboolean win_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) { |
4569
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
167 slider_win *slidwin=NULL; |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
168 /* Remove window from the window list */ |
8961 | 169 gaim_debug_info(WINTRANS_PLUGIN_ID, "Conv window destoyed.. removing from list\n"); |
4569
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
170 |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
171 if((slidwin=find_slidwin(widget))) { |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
172 window_list = g_list_remove(window_list, (gpointer)slidwin); |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
173 g_free(slidwin); |
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
174 } |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
175 return FALSE; |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
176 } |
3729 | 177 |
8961 | 178 static void set_trans_option(GtkWidget *w, const char *pref) { |
179 gaim_prefs_set_bool(pref, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))); | |
180 if(pref == OPT_WINTRANS_BL_ENABLED) { | |
181 if(blist) { | |
182 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) | |
183 set_wintrans(blist, blalpha); | |
184 else | |
185 set_wintrans_off(blist); | |
186 } | |
187 } | |
188 } | |
189 | |
190 static void add_slider(GtkWidget *win) { | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
191 GList *wl, *wl1; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
192 GtkWidget *vbox=NULL; |
8961 | 193 |
194 /* Look up this window to see if it already has a slider */ | |
195 if(!find_slidwin(win)) { | |
196 GtkWidget *slider_box=NULL; | |
197 slider_win *slidwin=NULL; | |
9915 | 198 GtkRequisition slidereq; |
199 gint width, height; | |
8961 | 200 |
201 /* Get top vbox */ | |
202 for ( wl1 = wl = gtk_container_get_children(GTK_CONTAINER(win)); | |
203 wl != NULL; | |
204 wl = wl->next ) { | |
205 if ( GTK_IS_VBOX(GTK_OBJECT(wl->data)) ) | |
206 vbox = GTK_WIDGET(wl->data); | |
207 else { | |
208 gaim_debug_error(WINTRANS_PLUGIN_ID, "no vbox found\n"); | |
209 return; | |
210 } | |
211 } | |
212 g_list_free(wl1); | |
213 | |
214 slider_box = wintrans_slider(win); | |
9915 | 215 /* Figure out how tall the slider wants to be */ |
216 gtk_widget_size_request(slider_box, &slidereq); | |
217 gtk_window_get_size(GTK_WINDOW(win), &width, &height); | |
8961 | 218 gtk_box_pack_start(GTK_BOX(vbox), |
219 slider_box, | |
220 FALSE, FALSE, 0); | |
9915 | 221 /* Make window taller so we don't slowly collapse its message area */ |
222 gtk_window_resize(GTK_WINDOW(win), width, (height + slidereq.height)); | |
8961 | 223 /* Add window to list, to track that it has a slider */ |
224 slidwin = g_new0( slider_win, 1 ); | |
225 slidwin->win = win; | |
226 slidwin->slider = slider_box; | |
227 window_list = g_list_append(window_list, (gpointer)slidwin); | |
228 /* Set callback to remove window from the list, if the window is destroyed */ | |
229 g_signal_connect(GTK_OBJECT(win), "destroy_event", G_CALLBACK(win_destroy_cb), NULL); | |
230 } | |
231 } | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
232 |
8961 | 233 static void remove_sliders() { |
234 if(window_list) { | |
235 GList *tmp=window_list; | |
236 while(tmp) { | |
237 slider_win *slidwin = (slider_win*)tmp->data; | |
9915 | 238 if (slidwin != NULL && GTK_IS_WINDOW(slidwin->win)) { |
239 GtkRequisition slidereq; | |
240 gint width, height; | |
241 /* Figure out how tall the slider was */ | |
242 gtk_widget_size_request(slidwin->slider, &slidereq); | |
243 gtk_window_get_size(GTK_WINDOW(slidwin->win), &width, &height); | |
244 | |
9840 | 245 gtk_widget_destroy(slidwin->slider); |
9915 | 246 |
247 gtk_window_resize(GTK_WINDOW(slidwin->win), width, (height - slidereq.height)); | |
248 } | |
8961 | 249 g_free(slidwin); |
250 tmp=tmp->next; | |
251 } | |
252 g_list_free(window_list); | |
253 window_list = NULL; | |
254 } | |
255 } | |
256 | |
257 static void remove_convs_wintrans() { | |
258 GList *conv; | |
259 | |
260 for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
261 set_wintrans_off(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window); | |
262 } | |
5749
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
263 |
8961 | 264 static void update_convs_wintrans(GtkWidget *w, const char *pref) { |
265 GList *conv; | |
266 | |
267 if (w != NULL) | |
268 set_trans_option(w, pref); | |
269 | |
270 if(gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) { | |
271 for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
272 set_wintrans(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window, gaim_prefs_get_int(OPT_WINTRANS_IM_ALPHA)); | |
273 } | |
274 else | |
275 remove_convs_wintrans(); | |
276 | |
277 if(gaim_prefs_get_bool(OPT_WINTRANS_IM_SLIDER) | |
278 && gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) { | |
279 for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
280 add_slider(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window); | |
281 } | |
282 else | |
283 remove_sliders(); | |
284 } | |
285 | |
286 static void set_window_trans(GaimConvWindow *oldwin, GaimConvWindow *newwin) { | |
287 GtkWidget *win = GAIM_GTK_WINDOW(newwin)->window; | |
3729 | 288 |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
289 /* check prefs to see if we want trans */ |
6435
53a613fed06d
[gaim-migrate @ 6943]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6408
diff
changeset
|
290 if (gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED) && gaim_prefs_get_bool(OPT_WINTRANS_IM_SLIDER)) { |
8961 | 291 add_slider(win); |
292 } | |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
293 |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
294 if(gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED) && |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
295 !gaim_prefs_get_bool(OPT_WINTRANS_IM_SLIDER)) { |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
296 set_wintrans(win, imalpha); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
297 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
298 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
299 |
8961 | 300 static void gaim_new_conversation(GaimConversation *c) { |
301 GaimConvWindow *win = gaim_conversation_get_window(c); | |
302 set_window_trans(NULL, win); | |
303 } | |
304 | |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
305 static void blist_created() { |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
306 if(blist) { |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
307 if(gaim_prefs_get_bool(OPT_WINTRANS_BL_ENABLED)) |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
308 set_wintrans(blist, blalpha); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
309 else |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
310 set_wintrans_off(blist); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
311 } |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
312 } |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
313 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
314 static void alpha_change(GtkWidget *w, gpointer data) { |
8961 | 315 GList *conv; |
9840 | 316 imalpha = gtk_range_get_value(GTK_RANGE(w)); |
8961 | 317 |
318 for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
9840 | 319 set_wintrans(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window, imalpha); |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
320 } |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
321 |
9840 | 322 static void alpha_pref_set_int(GtkWidget *w, GdkEventFocus *e, const char *pref) |
323 { | |
324 if (pref == OPT_WINTRANS_IM_ALPHA) | |
325 gaim_prefs_set_int(pref, imalpha); | |
326 else if (pref == OPT_WINTRANS_BL_ALPHA) | |
327 gaim_prefs_set_int(pref, blalpha); | |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
328 } |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
329 |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
330 static void bl_alpha_change(GtkWidget *w, gpointer data) { |
9840 | 331 blalpha = gtk_range_get_value(GTK_RANGE(w)); |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
332 if(blist) |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
333 change_alpha(w, blist); |
3729 | 334 } |
335 | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
336 /* |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
337 * EXPORTED FUNCTIONS |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
338 */ |
9840 | 339 gboolean plugin_load(GaimPlugin *plugin) { |
340 imalpha = gaim_prefs_get_int(OPT_WINTRANS_IM_ALPHA); | |
341 blalpha = gaim_prefs_get_int(OPT_WINTRANS_BL_ALPHA); | |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
342 |
9840 | 343 gaim_signal_connect((void*)gaim_conversations_get_handle(), |
344 "conversation-created", | |
345 plugin, | |
346 GAIM_CALLBACK(gaim_new_conversation), | |
347 NULL); | |
6494
4f93f10ddc75
[gaim-migrate @ 7009]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6435
diff
changeset
|
348 gaim_signal_connect((void*)gaim_connections_get_handle(), "signed-on", plugin, GAIM_CALLBACK(blist_created), NULL); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
349 MySetLayeredWindowAttributes = (void*)wgaim_find_and_loadproc("user32.dll", "SetLayeredWindowAttributes" ); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
350 |
8961 | 351 gaim_signal_connect((void*)gaim_gtk_conversations_get_handle(), "conversation-drag-ended", plugin, GAIM_CALLBACK(set_window_trans), NULL); |
352 | |
353 update_convs_wintrans(NULL, NULL); | |
354 | |
9840 | 355 if(blist) |
356 blist_created(); | |
3729 | 357 |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
358 return TRUE; |
3729 | 359 } |
360 | |
9840 | 361 gboolean plugin_unload(GaimPlugin *plugin) { |
8961 | 362 gaim_debug_info(WINTRANS_PLUGIN_ID, "Removing win2ktrans.dll plugin\n"); |
4569
7f2de19d052d
[gaim-migrate @ 4850]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4492
diff
changeset
|
363 |
8961 | 364 remove_convs_wintrans(); |
9840 | 365 remove_sliders(); |
8961 | 366 |
9840 | 367 if(blist) |
4492
d629e7989a8a
[gaim-migrate @ 4767]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4400
diff
changeset
|
368 set_wintrans_off(blist); |
9840 | 369 |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
370 return TRUE; |
3729 | 371 } |
372 | |
9840 | 373 GtkWidget *get_config_frame(GaimPlugin *plugin) { |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
374 GtkWidget *ret; |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
375 GtkWidget *imtransbox, *bltransbox; |
3729 | 376 GtkWidget *hbox; |
377 GtkWidget *label, *slider; | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
378 GtkWidget *button; |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
379 GtkWidget *trans_box; |
3729 | 380 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
381 ret = gtk_vbox_new(FALSE, 18); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
382 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
383 |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
384 /* IM Convo trans options */ |
5749
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
385 imtransbox = gaim_gtk_make_frame (ret, _("IM Conversation Windows")); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
386 button = wgaim_button(_("_IM window transparency"), OPT_WINTRANS_IM_ENABLED, imtransbox); |
8961 | 387 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(update_convs_wintrans), (void *)OPT_WINTRANS_IM_ENABLED); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
388 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
389 trans_box = gtk_vbox_new(FALSE, 18); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
390 if (!gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
391 gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
392 gtk_widget_show(trans_box); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
393 |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
394 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gaim_gtk_toggle_sensitive), trans_box); |
9840 | 395 |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
396 button = wgaim_button(_("_Show slider bar in IM window"), OPT_WINTRANS_IM_SLIDER, trans_box); |
8961 | 397 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(update_convs_wintrans), (void *)OPT_WINTRANS_IM_SLIDER); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
398 |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
399 gtk_box_pack_start(GTK_BOX(imtransbox), trans_box, FALSE, FALSE, 5); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
400 |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
401 /* IM transparency slider */ |
3729 | 402 hbox = gtk_hbox_new(FALSE, 5); |
403 | |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
404 label = gtk_label_new(_("Opacity:")); |
3729 | 405 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
406 | |
407 slider = gtk_hscale_new_with_range(50,255,1); | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
408 gtk_range_set_value(GTK_RANGE(slider), imalpha); |
3729 | 409 gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); |
9840 | 410 |
411 gtk_signal_connect(GTK_OBJECT(slider), "value-changed", GTK_SIGNAL_FUNC(alpha_change), NULL); | |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
412 gtk_signal_connect(GTK_OBJECT(slider), "focus-out-event", GTK_SIGNAL_FUNC(alpha_pref_set_int), (void *)OPT_WINTRANS_IM_ALPHA); |
3729 | 413 |
414 gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); | |
415 | |
416 gtk_widget_show_all(hbox); | |
417 | |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
418 gtk_box_pack_start(GTK_BOX(trans_box), hbox, FALSE, FALSE, 5); |
9840 | 419 |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
420 /* Buddy List trans options */ |
5749
6d6ae91c5de7
[gaim-migrate @ 6174]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5248
diff
changeset
|
421 bltransbox = gaim_gtk_make_frame (ret, _("Buddy List Window")); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
422 button = wgaim_button(_("_Buddy List window transparency"), OPT_WINTRANS_BL_ENABLED, bltransbox); |
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
423 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_trans_option), (void *)OPT_WINTRANS_BL_ENABLED); |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
424 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
425 trans_box = gtk_vbox_new(FALSE, 18); |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
426 if (!gaim_prefs_get_bool(OPT_WINTRANS_BL_ENABLED)) |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
427 gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
428 gtk_widget_show(trans_box); |
4400
6c38239ff612
[gaim-migrate @ 4669]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4105
diff
changeset
|
429 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gaim_gtk_toggle_sensitive), trans_box); |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
430 gtk_box_pack_start(GTK_BOX(bltransbox), trans_box, FALSE, FALSE, 5); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
431 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
432 /* IM transparency slider */ |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
433 hbox = gtk_hbox_new(FALSE, 5); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
434 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
435 label = gtk_label_new(_("Opacity:")); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
436 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
437 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
438 slider = gtk_hscale_new_with_range(50,255,1); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
439 gtk_range_set_value(GTK_RANGE(slider), blalpha); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
440 gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); |
9840 | 441 |
442 gtk_signal_connect(GTK_OBJECT(slider), "value-changed", GTK_SIGNAL_FUNC(bl_alpha_change), NULL); | |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
443 gtk_signal_connect(GTK_OBJECT(slider), "focus-out-event", GTK_SIGNAL_FUNC(alpha_pref_set_int), (void *)OPT_WINTRANS_BL_ALPHA); |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
444 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
445 gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
446 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
447 gtk_widget_show_all(hbox); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
448 |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
449 gtk_box_pack_start(GTK_BOX(trans_box), hbox, FALSE, FALSE, 5); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
450 |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
451 /* If this version of Windows dosn't support Transparency, grey out options */ |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
452 if(!has_transparency()) { |
8961 | 453 gaim_debug_warning(WINTRANS_PLUGIN_ID, "This version of windows dosn't support transparency\n"); |
4105
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
454 gtk_widget_set_sensitive(GTK_WIDGET(imtransbox), FALSE); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
455 gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE); |
e92d7712b8ba
[gaim-migrate @ 4320]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4096
diff
changeset
|
456 gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); |
4096
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
457 } |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
458 |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
459 gtk_widget_show_all(ret); |
72d973958607
[gaim-migrate @ 4311]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3831
diff
changeset
|
460 return ret; |
3729 | 461 } |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
462 |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
463 static GaimGtkPluginUiInfo ui_info = |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
464 { |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
465 get_config_frame |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
466 }; |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
467 |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
468 static GaimPluginInfo info = |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
469 { |
9954 | 470 GAIM_PLUGIN_MAGIC, |
471 GAIM_MAJOR_VERSION, | |
472 GAIM_MINOR_VERSION, | |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
473 GAIM_PLUGIN_STANDARD, /**< type */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
474 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
475 0, /**< flags */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
476 NULL, /**< dependencies */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
477 GAIM_PRIORITY_DEFAULT, /**< priority */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
478 |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
479 WINTRANS_PLUGIN_ID, /**< id */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
480 N_("Transparency"), /**< name */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
481 VERSION, /**< version */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
482 /** summary */ |
8779
4b0b96196cfb
[gaim-migrate @ 9541]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
8749
diff
changeset
|
483 N_("Variable Transparency for the buddy list and conversations."), |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
484 /** description */ |
8779
4b0b96196cfb
[gaim-migrate @ 9541]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
8749
diff
changeset
|
485 N_("This plugin enables variable alpha transparency on conversation windows and the buddy list.\n\n" |
4b0b96196cfb
[gaim-migrate @ 9541]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
8749
diff
changeset
|
486 "* Note: This plugin requires Win2000 or WinXP."), |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
487 "Herman Bloggs <hermanator12002@yahoo.com>", /**< author */ |
6408
90fc2199c156
[gaim-migrate @ 6914]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
6063
diff
changeset
|
488 GAIM_WEBSITE, /**< homepage */ |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
489 |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
490 plugin_load, /**< load */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
491 plugin_unload, /**< unload */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
492 NULL, /**< destroy */ |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
493 |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
494 &ui_info, /**< ui_info */ |
8993 | 495 NULL, /**< extra_info */ |
496 NULL, | |
497 NULL | |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
498 }; |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
499 |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
500 static void |
5854
14891982dbee
[gaim-migrate @ 6285]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
5749
diff
changeset
|
501 init_plugin(GaimPlugin *plugin) |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
502 { |
9840 | 503 gaim_prefs_add_none("/plugins/gtk/win32"); |
504 gaim_prefs_add_none("/plugins/gtk/win32/wintrans"); | |
505 gaim_prefs_add_bool("/plugins/gtk/win32/wintrans/im_enabled", FALSE); | |
506 gaim_prefs_add_int("/plugins/gtk/win32/wintrans/im_alpha", 255); | |
507 gaim_prefs_add_bool("/plugins/gtk/win32/wintrans/im_slider", FALSE); | |
508 gaim_prefs_add_bool("/plugins/gtk/win32/wintrans/bl_enabled", FALSE); | |
509 gaim_prefs_add_int("/plugins/gtk/win32/wintrans/bl_alpha", 255); | |
5224
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
510 } |
5160333a80df
[gaim-migrate @ 5594]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4726
diff
changeset
|
511 |
6063 | 512 GAIM_INIT_PLUGIN(wintrans, init_plugin, info) |