Mon, 17 May 2004 04:39:14 +0000
[gaim-migrate @ 9735]
(00:36:18) SimGuy: LSchiere: this is a patch to the wintrans plugin that
does the following:
(00:36:26) SimGuy: 1) Switches gaim_debug(FOO, ...) to gaim_debug_foo(...)
(00:36:26) SimGuy: 2) Fixes a very old bug:
(00:36:26) SimGuy: #781234 Transparency fails when dragging convo tab out
of trans win
(00:36:28) SimGuy: 3) Makes the preference changes take effect immediately,
rather than only on new conversation windows, including enabling/disabling
conversation window transparency and sliders.
committer: Luke Schierer <lschiere@pidgin.im>
| 3729 | 1 | /* |
| 6435 | 2 | * gaim - Transparency plugin |
| 3729 | 3 | * |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
4 | * copyright (c) 1998-2002, rob flynn <rob@marko.net> |
| 6435 | 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
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
22 | #include <gdk/gdkwin32.h> |
|
5912
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
23 | #include "internal.h" |
|
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
24 | |
|
6494
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
25 | #include "core.h" |
|
5912
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
26 | #include "prefs.h" |
|
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
27 | #include "debug.h" |
|
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
28 | |
|
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
29 | #include "gtkconv.h" |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
30 | #include "gtkplugin.h" |
|
5248
f4f944f4dbe0
[gaim-migrate @ 5620]
Mark Doliner <markdoliner@pidgin.im>
parents:
5224
diff
changeset
|
31 | #include "gtkblist.h" |
|
5912
32619a71edd2
[gaim-migrate @ 6344]
Herman Bloggs <herman@bluedigits.com>
parents:
5854
diff
changeset
|
32 | #include "gtkutils.h" |
|
6494
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
33 | #include "signals.h" |
| 3729 | 34 | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
35 | /* |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
36 | * MACROS & DEFINES |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
37 | */ |
| 5854 | 38 | #define WINTRANS_PLUGIN_ID "gtk-win-trans" |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
39 | #define WINTRANS_VERSION 1 |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
40 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
41 | /* These defines aren't found in mingw's winuser.h */ |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
42 | #ifndef LWA_ALPHA |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
43 | #define LWA_ALPHA 0x00000002 |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
44 | #endif |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
45 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
46 | #ifndef WS_EX_LAYERED |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
47 | #define WS_EX_LAYERED 0x00080000 |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
48 | #endif |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
49 | |
|
4726
6b4828c46d91
[gaim-migrate @ 5039]
Herman Bloggs <herman@bluedigits.com>
parents:
4606
diff
changeset
|
50 | #define blist (gaim_get_blist()?(GAIM_GTK_BLIST(gaim_get_blist())?((GAIM_GTK_BLIST(gaim_get_blist()))->window):NULL):NULL) |
|
6b4828c46d91
[gaim-migrate @ 5039]
Herman Bloggs <herman@bluedigits.com>
parents:
4606
diff
changeset
|
51 | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
52 | /* |
|
4569
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
53 | * DATA STRUCTS |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
54 | */ |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
55 | typedef struct { |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
56 | GtkWidget *win; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
57 | GtkWidget *slider; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
58 | } slider_win; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
59 | |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
60 | |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
61 | /* |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
62 | * GLOBALS |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
63 | */ |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
64 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
65 | /* |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
66 | * LOCALS |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
67 | */ |
| 5854 | 68 | static const char *OPT_WINTRANS_IM_ENABLED="/plugins/gtk/win32/wintrans/im_enabled"; |
| 69 | static const char *OPT_WINTRANS_IM_ALPHA ="/plugins/gtk/win32/wintrans/im_alpha"; | |
| 70 | static const char *OPT_WINTRANS_IM_SLIDER ="/plugins/gtk/win32/wintrans/im_slider"; | |
| 71 | static const char *OPT_WINTRANS_BL_ENABLED="/plugins/gtk/win32/wintrans/bl_enabled"; | |
| 72 | static const char *OPT_WINTRANS_BL_ALPHA ="/plugins/gtk/win32/wintrans/bl_alpha"; | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
73 | static int imalpha = 255; |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
74 | static int blalpha = 255; |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
75 | GList *window_list = NULL; |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
76 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
77 | /* |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
78 | * PROTOS |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
79 | */ |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
80 | BOOL (*MySetLayeredWindowAttributes)(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags)=NULL; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
81 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
82 | /* |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
83 | * CODE |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
84 | */ |
| 5854 | 85 | static GtkWidget *wgaim_button(const char *text, const char *pref, GtkWidget *page) { |
| 86 | GtkWidget *button; | |
|
5749
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
87 | button = gtk_check_button_new_with_mnemonic(text); |
| 5854 | 88 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), gaim_prefs_get_bool(pref)); |
| 89 | gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); | |
|
5749
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
90 | gtk_widget_show(button); |
| 5854 | 91 | return button; |
|
5749
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
92 | } |
|
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
93 | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
94 | /* Set window transparency level */ |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
95 | void set_wintrans(GtkWidget *window, int trans) { |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
96 | if(MySetLayeredWindowAttributes) { |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
97 | HWND hWnd = GDK_WINDOW_HWND(window->window); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
98 | SetWindowLong(hWnd,GWL_EXSTYLE,GetWindowLong(hWnd,GWL_EXSTYLE) | WS_EX_LAYERED); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
99 | MySetLayeredWindowAttributes(hWnd,0,trans,LWA_ALPHA); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
100 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
101 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
102 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
103 | void set_wintrans_off(GtkWidget *window) { |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
104 | if(MySetLayeredWindowAttributes) { |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
105 | HWND hWnd = GDK_WINDOW_HWND(window->window); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
106 | SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) & ~WS_EX_LAYERED); |
| 8961 | 107 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
108 | /* Ask the window and its children to repaint */ |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
109 | RedrawWindow(hWnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
110 | } |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
111 | } |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
112 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
113 | static void change_alpha(GtkWidget *w, gpointer data) { |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
114 | set_wintrans(GTK_WIDGET(data), gtk_range_get_value(GTK_RANGE(w))); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
115 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
116 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
117 | int has_transparency() { |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
118 | return MySetLayeredWindowAttributes ? TRUE : FALSE; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
119 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
120 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
121 | GtkWidget *wintrans_slider(GtkWidget *win) { |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
122 | GtkWidget *hbox; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
123 | GtkWidget *label, *slider; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
124 | GtkWidget *frame; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
125 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
126 | frame = gtk_frame_new(NULL); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
127 | gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
128 | gtk_widget_show(frame); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
129 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
130 | hbox = gtk_hbox_new(FALSE, 5); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
131 | gtk_container_add(GTK_CONTAINER(frame), hbox); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
132 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
133 | label = gtk_label_new(_("Opacity:")); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
134 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
135 | gtk_widget_show(hbox); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
136 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
137 | slider = gtk_hscale_new_with_range(50,255,1); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
138 | gtk_range_set_value(GTK_RANGE(slider), imalpha); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
139 | gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
140 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
141 | /* On slider val change, update window's transparency level */ |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
142 | gtk_signal_connect(GTK_OBJECT(slider), "value-changed", GTK_SIGNAL_FUNC(change_alpha), win); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
143 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
144 | gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
145 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
146 | /* Set the initial transparency level */ |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
147 | set_wintrans(win, imalpha); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
148 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
149 | gtk_widget_show_all(hbox); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
150 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
151 | return frame; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
152 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
153 | |
|
4569
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
154 | static slider_win* find_slidwin( GtkWidget *win ) { |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
155 | GList *tmp = window_list; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
156 | |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
157 | while(tmp) { |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
158 | if( ((slider_win*)(tmp->data))->win == win) |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
159 | return (slider_win*)tmp->data; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
160 | tmp = tmp->next; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
161 | } |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
162 | return NULL; |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
163 | } |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
164 | |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
165 | gboolean win_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) { |
|
4569
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
166 | slider_win *slidwin=NULL; |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
167 | /* Remove window from the window list */ |
| 8961 | 168 | gaim_debug_info(WINTRANS_PLUGIN_ID, "Conv window destoyed.. removing from list\n"); |
|
4569
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
169 | |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
170 | if((slidwin=find_slidwin(widget))) { |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
171 | window_list = g_list_remove(window_list, (gpointer)slidwin); |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
172 | g_free(slidwin); |
|
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
173 | } |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
174 | return FALSE; |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
175 | } |
| 3729 | 176 | |
| 8961 | 177 | static void set_trans_option(GtkWidget *w, const char *pref) { |
| 178 | gaim_prefs_set_bool(pref, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))); | |
| 179 | if(pref == OPT_WINTRANS_BL_ENABLED) { | |
| 180 | if(blist) { | |
| 181 | if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) | |
| 182 | set_wintrans(blist, blalpha); | |
| 183 | else | |
| 184 | set_wintrans_off(blist); | |
| 185 | } | |
| 186 | } | |
| 187 | } | |
| 188 | ||
| 189 | static void add_slider(GtkWidget *win) { | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
190 | GList *wl, *wl1; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
191 | GtkWidget *vbox=NULL; |
| 8961 | 192 | |
| 193 | /* Look up this window to see if it already has a slider */ | |
| 194 | if(!find_slidwin(win)) { | |
| 195 | GtkWidget *slider_box=NULL; | |
| 196 | slider_win *slidwin=NULL; | |
| 197 | ||
| 198 | /* Get top vbox */ | |
| 199 | for ( wl1 = wl = gtk_container_get_children(GTK_CONTAINER(win)); | |
| 200 | wl != NULL; | |
| 201 | wl = wl->next ) { | |
| 202 | if ( GTK_IS_VBOX(GTK_OBJECT(wl->data)) ) | |
| 203 | vbox = GTK_WIDGET(wl->data); | |
| 204 | else { | |
| 205 | gaim_debug_error(WINTRANS_PLUGIN_ID, "no vbox found\n"); | |
| 206 | return; | |
| 207 | } | |
| 208 | } | |
| 209 | g_list_free(wl1); | |
| 210 | ||
| 211 | slider_box = wintrans_slider(win); | |
| 212 | gtk_box_pack_start(GTK_BOX(vbox), | |
| 213 | slider_box, | |
| 214 | FALSE, FALSE, 0); | |
| 215 | /* Add window to list, to track that it has a slider */ | |
| 216 | slidwin = g_new0( slider_win, 1 ); | |
| 217 | slidwin->win = win; | |
| 218 | slidwin->slider = slider_box; | |
| 219 | window_list = g_list_append(window_list, (gpointer)slidwin); | |
| 220 | /* Set callback to remove window from the list, if the window is destroyed */ | |
| 221 | g_signal_connect(GTK_OBJECT(win), "destroy_event", G_CALLBACK(win_destroy_cb), NULL); | |
| 222 | } | |
| 223 | } | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
224 | |
| 8961 | 225 | static void remove_sliders() { |
| 226 | if(window_list) { | |
| 227 | GList *tmp=window_list; | |
| 228 | while(tmp) { | |
| 229 | slider_win *slidwin = (slider_win*)tmp->data; | |
| 230 | gtk_widget_destroy(slidwin->slider); | |
| 231 | g_free(slidwin); | |
| 232 | tmp=tmp->next; | |
| 233 | } | |
| 234 | g_list_free(window_list); | |
| 235 | window_list = NULL; | |
| 236 | } | |
| 237 | } | |
| 238 | ||
| 239 | static void remove_convs_wintrans() { | |
| 240 | GList *conv; | |
| 241 | ||
| 242 | for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
| 243 | set_wintrans_off(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window); | |
| 244 | } | |
|
5749
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
245 | |
| 8961 | 246 | static void update_convs_wintrans(GtkWidget *w, const char *pref) { |
| 247 | GList *conv; | |
| 248 | ||
| 249 | if (w != NULL) | |
| 250 | set_trans_option(w, pref); | |
| 251 | ||
| 252 | if(gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) { | |
| 253 | for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
| 254 | set_wintrans(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window, gaim_prefs_get_int(OPT_WINTRANS_IM_ALPHA)); | |
| 255 | } | |
| 256 | else | |
| 257 | remove_convs_wintrans(); | |
| 258 | ||
| 259 | if(gaim_prefs_get_bool(OPT_WINTRANS_IM_SLIDER) | |
| 260 | && gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) { | |
| 261 | for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
| 262 | add_slider(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window); | |
| 263 | } | |
| 264 | else | |
| 265 | remove_sliders(); | |
| 266 | } | |
| 267 | ||
| 268 | static void set_window_trans(GaimConvWindow *oldwin, GaimConvWindow *newwin) { | |
| 269 | GtkWidget *win = GAIM_GTK_WINDOW(newwin)->window; | |
| 3729 | 270 | |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
271 | /* check prefs to see if we want trans */ |
| 6435 | 272 | if (gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED) && gaim_prefs_get_bool(OPT_WINTRANS_IM_SLIDER)) { |
| 8961 | 273 | add_slider(win); |
| 274 | } | |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
275 | |
| 5854 | 276 | if(gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED) && |
| 277 | !gaim_prefs_get_bool(OPT_WINTRANS_IM_SLIDER)) { | |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
278 | set_wintrans(win, imalpha); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
279 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
280 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
281 | |
| 8961 | 282 | static void gaim_new_conversation(GaimConversation *c) { |
| 283 | GaimConvWindow *win = gaim_conversation_get_window(c); | |
| 284 | set_window_trans(NULL, win); | |
| 285 | } | |
| 286 | ||
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
287 | static void blist_created() { |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
288 | if(blist) { |
| 5854 | 289 | if(gaim_prefs_get_bool(OPT_WINTRANS_BL_ENABLED)) |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
290 | set_wintrans(blist, blalpha); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
291 | else |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
292 | set_wintrans_off(blist); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
293 | } |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
294 | } |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
295 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
296 | static void alpha_change(GtkWidget *w, gpointer data) { |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
297 | int *alpha = (int*)data; |
| 8961 | 298 | GList *conv; |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
299 | *alpha = gtk_range_get_value(GTK_RANGE(w)); |
| 8961 | 300 | |
| 301 | for(conv = gaim_get_conversations(); conv != NULL; conv = conv->next) | |
| 302 | set_wintrans(GAIM_GTK_WINDOW(gaim_conversation_get_window(conv->data))->window, *alpha); | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
303 | } |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
304 | |
| 5854 | 305 | static void alpha_pref_set_int(GtkWidget *w, GdkEventFocus *e, const char *pref) { |
| 306 | int alpha = 0; | |
| 307 | if (pref == OPT_WINTRANS_IM_ALPHA) | |
| 308 | alpha = imalpha; | |
| 309 | else if (pref == OPT_WINTRANS_BL_ALPHA) | |
| 310 | alpha = blalpha; | |
| 311 | ||
| 312 | gaim_prefs_set_int(pref, alpha); | |
| 313 | } | |
| 314 | ||
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
315 | static void bl_alpha_change(GtkWidget *w, gpointer data) { |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
316 | alpha_change(w, data); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
317 | if(blist) |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
318 | change_alpha(w, blist); |
| 3729 | 319 | } |
| 320 | ||
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
321 | /* |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
322 | * EXPORTED FUNCTIONS |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
323 | */ |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
324 | G_MODULE_EXPORT gboolean plugin_load(GaimPlugin *plugin) { |
| 5854 | 325 | imalpha = gaim_prefs_get_int(OPT_WINTRANS_IM_ALPHA); |
| 326 | blalpha = gaim_prefs_get_int(OPT_WINTRANS_BL_ALPHA); | |
| 327 | ||
|
6494
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
328 | gaim_signal_connect((void*)gaim_conversations_get_handle(), |
|
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
329 | "conversation-created", |
|
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
330 | plugin, |
|
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
331 | GAIM_CALLBACK(gaim_new_conversation), |
|
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
332 | NULL); |
|
21e66a116e2a
[gaim-migrate @ 7009]
Herman Bloggs <herman@bluedigits.com>
parents:
6435
diff
changeset
|
333 | gaim_signal_connect((void*)gaim_connections_get_handle(), "signed-on", plugin, GAIM_CALLBACK(blist_created), NULL); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
334 | MySetLayeredWindowAttributes = (void*)wgaim_find_and_loadproc("user32.dll", "SetLayeredWindowAttributes" ); |
| 5854 | 335 | |
| 8961 | 336 | gaim_signal_connect((void*)gaim_gtk_conversations_get_handle(), "conversation-drag-ended", plugin, GAIM_CALLBACK(set_window_trans), NULL); |
| 337 | ||
| 338 | update_convs_wintrans(NULL, NULL); | |
| 339 | ||
| 5854 | 340 | if(blist) { |
| 341 | blist_created(); | |
| 342 | } | |
| 3729 | 343 | |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
344 | return TRUE; |
| 3729 | 345 | } |
| 346 | ||
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
347 | G_MODULE_EXPORT gboolean plugin_unload(GaimPlugin *plugin) { |
| 8961 | 348 | gaim_debug_info(WINTRANS_PLUGIN_ID, "Removing win2ktrans.dll plugin\n"); |
|
4569
b11fb8770f10
[gaim-migrate @ 4850]
Herman Bloggs <herman@bluedigits.com>
parents:
4492
diff
changeset
|
349 | |
| 8961 | 350 | remove_convs_wintrans(); |
| 351 | ||
| 4492 | 352 | if(blist) { |
| 353 | set_wintrans_off(blist); | |
| 354 | } | |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
355 | return TRUE; |
| 3729 | 356 | } |
| 357 | ||
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
358 | G_MODULE_EXPORT GtkWidget *get_config_frame(GaimPlugin *plugin) { |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
359 | GtkWidget *ret; |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
360 | GtkWidget *imtransbox, *bltransbox; |
| 3729 | 361 | GtkWidget *hbox; |
| 362 | GtkWidget *label, *slider; | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
363 | GtkWidget *button; |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
364 | GtkWidget *trans_box; |
| 3729 | 365 | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
366 | ret = gtk_vbox_new(FALSE, 18); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
367 | gtk_container_set_border_width (GTK_CONTAINER (ret), 12); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
368 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
369 | /* IM Convo trans options */ |
|
5749
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
370 | imtransbox = gaim_gtk_make_frame (ret, _("IM Conversation Windows")); |
| 5854 | 371 | button = wgaim_button(_("_IM window transparency"), OPT_WINTRANS_IM_ENABLED, imtransbox); |
| 8961 | 372 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(update_convs_wintrans), (void *)OPT_WINTRANS_IM_ENABLED); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
373 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
374 | trans_box = gtk_vbox_new(FALSE, 18); |
| 5854 | 375 | if (!gaim_prefs_get_bool(OPT_WINTRANS_IM_ENABLED)) |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
376 | gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
377 | gtk_widget_show(trans_box); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
378 | |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
379 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gaim_gtk_toggle_sensitive), trans_box); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
380 | |
| 5854 | 381 | button = wgaim_button(_("_Show slider bar in IM window"), OPT_WINTRANS_IM_SLIDER, trans_box); |
| 8961 | 382 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(update_convs_wintrans), (void *)OPT_WINTRANS_IM_SLIDER); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
383 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
384 | gtk_box_pack_start(GTK_BOX(imtransbox), trans_box, FALSE, FALSE, 5); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
385 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
386 | /* IM transparency slider */ |
| 3729 | 387 | hbox = gtk_hbox_new(FALSE, 5); |
| 388 | ||
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
389 | label = gtk_label_new(_("Opacity:")); |
| 3729 | 390 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
| 391 | ||
| 392 | slider = gtk_hscale_new_with_range(50,255,1); | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
393 | gtk_range_set_value(GTK_RANGE(slider), imalpha); |
| 3729 | 394 | gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
395 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
396 | gtk_signal_connect(GTK_OBJECT(slider), "value-changed", GTK_SIGNAL_FUNC(alpha_change), (void*)&imalpha); |
| 5854 | 397 | gtk_signal_connect(GTK_OBJECT(slider), "focus-out-event", GTK_SIGNAL_FUNC(alpha_pref_set_int), (void *)OPT_WINTRANS_IM_ALPHA); |
| 3729 | 398 | |
| 399 | gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); | |
| 400 | ||
| 401 | gtk_widget_show_all(hbox); | |
| 402 | ||
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
403 | gtk_box_pack_start(GTK_BOX(trans_box), hbox, FALSE, FALSE, 5); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
404 | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
405 | /* Buddy List trans options */ |
|
5749
538a4a7b41ad
[gaim-migrate @ 6174]
Herman Bloggs <herman@bluedigits.com>
parents:
5248
diff
changeset
|
406 | bltransbox = gaim_gtk_make_frame (ret, _("Buddy List Window")); |
| 5854 | 407 | button = wgaim_button(_("_Buddy List window transparency"), OPT_WINTRANS_BL_ENABLED, bltransbox); |
| 408 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_trans_option), (void *)OPT_WINTRANS_BL_ENABLED); | |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
409 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
410 | trans_box = gtk_vbox_new(FALSE, 18); |
| 5854 | 411 | if (!gaim_prefs_get_bool(OPT_WINTRANS_BL_ENABLED)) |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
412 | gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
413 | gtk_widget_show(trans_box); |
|
4400
f008dd1aac64
[gaim-migrate @ 4669]
Herman Bloggs <herman@bluedigits.com>
parents:
4105
diff
changeset
|
414 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gaim_gtk_toggle_sensitive), trans_box); |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
415 | gtk_box_pack_start(GTK_BOX(bltransbox), trans_box, FALSE, FALSE, 5); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
416 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
417 | /* IM transparency slider */ |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
418 | hbox = gtk_hbox_new(FALSE, 5); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
419 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
420 | label = gtk_label_new(_("Opacity:")); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
421 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
422 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
423 | slider = gtk_hscale_new_with_range(50,255,1); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
424 | gtk_range_set_value(GTK_RANGE(slider), blalpha); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
425 | gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
426 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
427 | gtk_signal_connect(GTK_OBJECT(slider), "value-changed", GTK_SIGNAL_FUNC(bl_alpha_change), (void*)&blalpha); |
| 5854 | 428 | gtk_signal_connect(GTK_OBJECT(slider), "focus-out-event", GTK_SIGNAL_FUNC(alpha_pref_set_int), (void *)OPT_WINTRANS_BL_ALPHA); |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
429 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
430 | gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
431 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
432 | gtk_widget_show_all(hbox); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
433 | |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
434 | gtk_box_pack_start(GTK_BOX(trans_box), hbox, FALSE, FALSE, 5); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
435 | |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
436 | /* If this version of Windows dosn't support Transparency, grey out options */ |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
437 | if(!has_transparency()) { |
| 8961 | 438 | gaim_debug_warning(WINTRANS_PLUGIN_ID, "This version of windows dosn't support transparency\n"); |
|
4105
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
439 | gtk_widget_set_sensitive(GTK_WIDGET(imtransbox), FALSE); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
440 | gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE); |
|
75d1a2e861fe
[gaim-migrate @ 4320]
Herman Bloggs <herman@bluedigits.com>
parents:
4096
diff
changeset
|
441 | gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); |
|
4096
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
442 | } |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
443 | |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
444 | gtk_widget_show_all(ret); |
|
20ed0841fe22
[gaim-migrate @ 4311]
Herman Bloggs <herman@bluedigits.com>
parents:
3831
diff
changeset
|
445 | return ret; |
| 3729 | 446 | } |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
447 | |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
448 | static GaimGtkPluginUiInfo ui_info = |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
449 | { |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
450 | get_config_frame |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
451 | }; |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
452 | |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
453 | static GaimPluginInfo info = |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
454 | { |
|
8749
fb487e9e101a
[gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents:
6494
diff
changeset
|
455 | GAIM_PLUGIN_API_VERSION, /**< api_version */ |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
456 | GAIM_PLUGIN_STANDARD, /**< type */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
457 | GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
458 | 0, /**< flags */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
459 | NULL, /**< dependencies */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
460 | GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
461 | |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
462 | WINTRANS_PLUGIN_ID, /**< id */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
463 | N_("Transparency"), /**< name */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
464 | VERSION, /**< version */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
465 | /** summary */ |
| 8779 | 466 | N_("Variable Transparency for the buddy list and conversations."), |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
467 | /** description */ |
| 8779 | 468 | N_("This plugin enables variable alpha transparency on conversation windows and the buddy list.\n\n" |
| 469 | "* Note: This plugin requires Win2000 or WinXP."), | |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
470 | "Herman Bloggs <hermanator12002@yahoo.com>", /**< author */ |
|
6408
06b363db745c
[gaim-migrate @ 6914]
Herman Bloggs <herman@bluedigits.com>
parents:
6063
diff
changeset
|
471 | GAIM_WEBSITE, /**< homepage */ |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
472 | |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
473 | plugin_load, /**< load */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
474 | plugin_unload, /**< unload */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
475 | NULL, /**< destroy */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
476 | |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
477 | &ui_info, /**< ui_info */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
478 | NULL /**< extra_info */ |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
479 | }; |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
480 | |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
481 | static void |
| 5854 | 482 | init_plugin(GaimPlugin *plugin) |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
483 | { |
| 5854 | 484 | gaim_prefs_add_none("/plugins/gtk/win32"); |
| 485 | gaim_prefs_add_none("/plugins/gtk/win32/wintrans"); | |
| 486 | gaim_prefs_add_bool("/plugins/gtk/win32/wintrans/im_enabled", FALSE); | |
| 487 | gaim_prefs_add_int("/plugins/gtk/win32/wintrans/im_alpha", 255); | |
| 488 | gaim_prefs_add_bool("/plugins/gtk/win32/wintrans/im_slider", FALSE); | |
| 489 | gaim_prefs_add_bool("/plugins/gtk/win32/wintrans/bl_enabled", FALSE); | |
| 490 | gaim_prefs_add_int("/plugins/gtk/win32/wintrans/bl_alpha", 255); | |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
491 | } |
|
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
4726
diff
changeset
|
492 | |
| 6063 | 493 | GAIM_INIT_PLUGIN(wintrans, init_plugin, info) |