Mon, 18 Sep 2000 19:13:27 +0000
[gaim-migrate @ 938]
Yo
| 1 | 1 | /************************************************************** |
| 2 | ** | |
| 3 | ** GaimGnomeAppletMgr | |
| 4 | ** Author - Quinticent (John Palmieri: johnp@martianrock.com) | |
| 5 | ** | |
| 6 | ** Purpose - Takes over the task of managing the GNOME applet | |
| 7 | ** code and provides a centralized codebase for | |
| 8 | ** GNOME integration for Gaim. | |
| 9 | ** | |
| 10 | ** | |
| 11 | ** gaim | |
| 12 | ** | |
| 13 | ** Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 14 | ** | |
| 15 | ** This program is free software; you can redistribute it and/or modify | |
| 16 | ** it under the terms of the GNU General Public License as published by | |
| 17 | ** the Free Software Foundation; either version 2 of the License, or | |
| 18 | ** (at your option) any later version. | |
| 19 | ** | |
| 20 | ** This program is distributed in the hope that it will be useful, | |
| 21 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 22 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 23 | ** GNU General Public License for more details. | |
| 24 | ** | |
| 25 | ** You should have received a copy of the GNU General Public License | |
| 26 | ** along with this program; if not, write to the Free Software | |
| 27 | ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 28 | */ | |
| 29 | ||
|
349
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
342
diff
changeset
|
30 | #ifdef HAVE_CONFIG_H |
|
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
342
diff
changeset
|
31 | #include "../config.h" |
|
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
342
diff
changeset
|
32 | #endif |
| 1 | 33 | #ifdef USE_APPLET |
| 34 | #include <string.h> | |
| 35 | #include <gdk_imlib.h> | |
| 36 | #include "gaim.h" | |
| 37 | #include "gnome_applet_mgr.h" | |
| 38 | ||
| 39 | enum gaim_user_states MRI_user_status; | |
| 40 | ||
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
41 | gboolean applet_buddy_show = FALSE; |
| 1 | 42 | GtkWidget *applet_popup = NULL; |
| 43 | ||
|
776
445adc75c091
[gaim-migrate @ 786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
746
diff
changeset
|
44 | /* |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
45 | gchar GAIM_GNOME_OFFLINE_ICON[255] = GAIM_GNOME_PENGUIN_OFFLINE; |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
46 | gchar GAIM_GNOME_CONNECT_ICON[255] = GAIM_GNOME_PENGUIN_CONNECT; |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
47 | gchar GAIM_GNOME_ONLINE_ICON[255] = GAIM_GNOME_PENGUIN_ONLINE; |
|
776
445adc75c091
[gaim-migrate @ 786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
746
diff
changeset
|
48 | */ |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
49 | |
| 1 | 50 | GtkWidget *applet; |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
51 | GtkWidget *appletframe; |
| 1 | 52 | GtkWidget *status_label; |
| 53 | ||
| 54 | GtkWidget *icon; | |
| 55 | GdkPixmap *icon_offline_pm=NULL; | |
| 56 | GdkPixmap *icon_offline_bm=NULL; | |
| 57 | ||
| 58 | GdkPixmap *icon_online_pm=NULL; | |
| 59 | GdkPixmap *icon_online_bm=NULL; | |
| 60 | ||
| 61 | GdkPixmap *icon_connect_pm=NULL; | |
| 62 | GdkPixmap *icon_connect_bm=NULL; | |
| 63 | ||
| 64 | GdkPixmap *icon_msg_pending_pm=NULL; | |
| 65 | GdkPixmap *icon_msg_pending_bm=NULL; | |
| 66 | ||
| 67 | GdkPixmap *icon_away_pm=NULL; | |
| 68 | GdkPixmap *icon_away_bm=NULL; | |
| 69 | ||
|
340
d2d7e1b4e088
[gaim-migrate @ 350]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
70 | static GtkAllocation get_applet_pos(gboolean); |
| 374 | 71 | gint sizehint=48; |
| 72 | ||
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
73 | static gboolean load_applet_icon(const char *name, int height, int width, |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
74 | GdkPixmap **pm, GdkBitmap **bm) |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
75 | { |
| 1 | 76 | gboolean result = TRUE; |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
77 | char *path; |
| 1 | 78 | GdkImlibImage *im; |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
79 | |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
80 | path = gnome_pixmap_file(name); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
81 | |
| 1 | 82 | im=gdk_imlib_load_image( path ); |
| 83 | ||
| 84 | if ((*pm)!=NULL) | |
| 85 | gdk_imlib_free_pixmap((*pm)); | |
| 86 | ||
| 87 | if( im!= NULL ){ | |
| 88 | gdk_imlib_render(im,width,height); | |
| 89 | ||
| 90 | (*pm) = gdk_imlib_move_image(im); | |
| 91 | (*bm) = gdk_imlib_move_mask(im); | |
| 92 | ||
| 93 | } else { | |
| 94 | result = FALSE; | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
95 | sprintf(debug_buff,_("file not found: %s\n"),path); |
| 1 | 96 | debug_print(debug_buff); |
| 97 | } | |
| 98 | ||
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
99 | free(path); |
| 1 | 100 | return result; |
| 101 | } | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
102 | |
| 374 | 103 | #ifdef HAVE_PANEL_PIXEL_SIZE |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
104 | static void applet_change_pixel_size(GtkWidget *w, int size, gpointer data) |
| 374 | 105 | { |
| 106 | sizehint = size; | |
| 107 | update_pixmaps(); | |
| 108 | } | |
| 109 | #endif | |
| 1 | 110 | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
111 | static gboolean update_applet(gboolean force_update){ |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
112 | static enum gaim_user_states old_user_status = offline; |
| 1 | 113 | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
114 | if( MRI_user_status != old_user_status || force_update) { |
| 1 | 115 | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
116 | switch( MRI_user_status ){ |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
117 | case offline: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
118 | gtk_pixmap_set( GTK_PIXMAP(icon), |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
119 | icon_offline_pm, |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
120 | icon_offline_bm ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
121 | gtk_label_set( GTK_LABEL(status_label), _MSG_OFFLINE_ ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
122 | applet_set_tooltips(_("Offilne. Click to bring up login box.")); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
123 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
124 | case signing_on: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
125 | gtk_pixmap_set( GTK_PIXMAP(icon), |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
126 | icon_connect_pm, |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
127 | icon_connect_bm ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
128 | gtk_label_set( GTK_LABEL(status_label), _MSG_CONNECT_ ); |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
129 | applet_set_tooltips(_("Attempting to sign on....")); |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
130 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
131 | case online: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
132 | gtk_pixmap_set( GTK_PIXMAP(icon), |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
133 | icon_online_pm, |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
134 | icon_online_bm ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
135 | gtk_label_set( GTK_LABEL(status_label), _MSG_ONLINE_ ); |
|
399
b0631a5f7a75
[gaim-migrate @ 409]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
374
diff
changeset
|
136 | update_num_groups(); |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
137 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
138 | case away: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
139 | gtk_pixmap_set( GTK_PIXMAP(icon), |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
140 | icon_online_pm, |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
141 | icon_online_bm ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
142 | gtk_label_set( GTK_LABEL(status_label), _("Away") ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
143 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
144 | } |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
145 | old_user_status = MRI_user_status; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
146 | } |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
147 | return TRUE; |
| 1 | 148 | } |
| 149 | ||
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
150 | void update_pixmaps() { |
|
776
445adc75c091
[gaim-migrate @ 786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
746
diff
changeset
|
151 | /* |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
152 | if (display_options & OPT_DISP_DEVIL_PIXMAPS) { |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
153 | sprintf(GAIM_GNOME_OFFLINE_ICON, "%s", GAIM_GNOME_DEVIL_OFFLINE); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
154 | sprintf(GAIM_GNOME_CONNECT_ICON, "%s", GAIM_GNOME_DEVIL_CONNECT); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
155 | sprintf(GAIM_GNOME_ONLINE_ICON, "%s", GAIM_GNOME_DEVIL_ONLINE); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
156 | } else { |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
157 | sprintf(GAIM_GNOME_OFFLINE_ICON, "%s", GAIM_GNOME_PENGUIN_OFFLINE); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
158 | sprintf(GAIM_GNOME_CONNECT_ICON, "%s", GAIM_GNOME_PENGUIN_CONNECT); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
159 | sprintf(GAIM_GNOME_ONLINE_ICON, "%s", GAIM_GNOME_PENGUIN_ONLINE); |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
160 | } |
|
776
445adc75c091
[gaim-migrate @ 786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
746
diff
changeset
|
161 | */ |
| 374 | 162 | load_applet_icon( GAIM_GNOME_OFFLINE_ICON, (sizehint-16), (sizehint-12), |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
163 | &icon_offline_pm, &icon_offline_bm ); |
| 374 | 164 | load_applet_icon( GAIM_GNOME_CONNECT_ICON, (sizehint-16), (sizehint-12), |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
165 | &icon_connect_pm, &icon_connect_bm ); |
| 374 | 166 | load_applet_icon( GAIM_GNOME_ONLINE_ICON, (sizehint-16), (sizehint-12), |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
167 | &icon_online_pm, &icon_online_bm ); |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
168 | update_applet(TRUE); |
| 374 | 169 | gtk_widget_set_usize(appletframe, sizehint, sizehint); |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
170 | } |
|
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
171 | |
| 1 | 172 | |
|
340
d2d7e1b4e088
[gaim-migrate @ 350]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
173 | extern GtkWidget *mainwindow; |
| 1 | 174 | void applet_show_login(AppletWidget *widget, gpointer data) { |
| 175 | show_login(); | |
|
340
d2d7e1b4e088
[gaim-migrate @ 350]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
176 | if (general_options & OPT_GEN_NEAR_APPLET) { |
|
d2d7e1b4e088
[gaim-migrate @ 350]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
177 | GtkAllocation a = get_applet_pos(FALSE); |
|
d2d7e1b4e088
[gaim-migrate @ 350]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
178 | gtk_widget_set_uposition(mainwindow, a.x, a.y); |
|
d2d7e1b4e088
[gaim-migrate @ 350]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
179 | } |
| 1 | 180 | } |
| 181 | ||
|
342
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
182 | void applet_do_signon(AppletWidget *widget, gpointer data) { |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
183 | applet_show_login(NULL, 0); |
|
342
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
184 | if (general_options & OPT_GEN_REMEMBER_PASS) |
|
411
4e2ed8c4c0f8
[gaim-migrate @ 421]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
399
diff
changeset
|
185 | dologin(0, 0); |
|
342
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
186 | } |
|
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
187 | |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
188 | void insert_applet_away() { |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
189 | GList *awy = away_messages; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
190 | struct away_message *a; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
191 | char *awayname; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
192 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
193 | applet_widget_register_callback_dir(APPLET_WIDGET(applet), |
|
46
13f9a59097db
[gaim-migrate @ 55]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
23
diff
changeset
|
194 | "away/", |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
195 | _("Away")); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
196 | applet_widget_register_callback(APPLET_WIDGET(applet), |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
197 | "away/new", |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
198 | _("New Away Message"), |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
199 | (AppletCallbackFunc)create_away_mess, |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
200 | NULL); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
201 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
202 | while(awy) { |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
203 | a = (struct away_message *)awy->data; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
204 | |
| 79 | 205 | awayname = g_malloc(sizeof *awayname * (6 + strlen(a->name))); |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
206 | awayname[0] = '\0'; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
207 | strcat(awayname, "away/"); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
208 | strcat(awayname, a->name); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
209 | applet_widget_register_callback(APPLET_WIDGET(applet), |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
210 | awayname, |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
211 | a->name, |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
212 | (AppletCallbackFunc)do_away_message, |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
213 | a); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
214 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
215 | awy = awy->next; |
|
23
4c107a5f28af
[gaim-migrate @ 32]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
20
diff
changeset
|
216 | free(awayname); |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
217 | } |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
218 | } |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
219 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
220 | void remove_applet_away() { |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
221 | GList *awy = away_messages; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
222 | struct away_message *a; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
223 | char *awayname; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
224 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
225 | applet_widget_unregister_callback(APPLET_WIDGET(applet), "away/new"); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
226 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
227 | while (awy) { |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
228 | a = (struct away_message *)awy->data; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
229 | |
| 79 | 230 | awayname = g_malloc(sizeof *awayname * (6 + strlen(a->name))); |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
231 | awayname[0] = '\0'; |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
232 | strcat(awayname, "away/"); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
233 | strcat(awayname, a->name); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
234 | applet_widget_unregister_callback(APPLET_WIDGET(applet), awayname); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
235 | |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
236 | awy = awy->next; |
|
23
4c107a5f28af
[gaim-migrate @ 32]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
20
diff
changeset
|
237 | free(awayname); |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
238 | } |
|
46
13f9a59097db
[gaim-migrate @ 55]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
23
diff
changeset
|
239 | applet_widget_unregister_callback_dir(APPLET_WIDGET(applet), "away/"); |
|
18
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
240 | applet_widget_unregister_callback(APPLET_WIDGET(applet), "away"); |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
241 | } |
|
602b40b60252
[gaim-migrate @ 27]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
16
diff
changeset
|
242 | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
243 | static void applet_show_about(AppletWidget *widget, gpointer data) { |
| 1 | 244 | |
| 245 | const gchar *authors[] = {"Mark Spencer <markster@marko.net>", | |
| 246 | "Jim Duchek <jimduchek@ou.edu>", | |
| 247 | "Rob Flynn <rflynn@blueridge.net>", | |
|
82
33bc54b6c16a
[gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
248 | "Eric Warmenhoven <warmenhoven@yahoo.com>", |
|
178
88fbad3afffa
[gaim-migrate @ 188]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
107
diff
changeset
|
249 | "Syd Logan", |
| 1 | 250 | NULL}; |
| 251 | ||
| 252 | GtkWidget *about=gnome_about_new(_("GAIM"), | |
| 253 | _(VERSION), | |
| 254 | _(""), | |
| 255 | authors, | |
| 256 | "", | |
| 257 | NULL); | |
| 258 | gtk_widget_show(about); | |
| 259 | } | |
| 260 | ||
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
261 | static GtkAllocation get_applet_pos(gboolean for_blist) { |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
262 | gint x,y,pad; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
263 | GtkRequisition buddy_req, applet_req; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
264 | GtkAllocation result; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
265 | GNOME_Panel_OrientType orient = applet_widget_get_panel_orient( APPLET_WIDGET(applet) ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
266 | pad = 5; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
267 | |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
268 | gdk_window_get_position(gtk_widget_get_parent_window(appletframe), &x, &y); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
269 | if (for_blist) { |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
270 | if (general_options & OPT_GEN_SAVED_WINDOWS) { |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
271 | buddy_req.width = blist_pos.width; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
272 | buddy_req.height = blist_pos.height; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
273 | } else { |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
274 | buddy_req = blist->requisition; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
275 | } |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
276 | } else { |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
277 | buddy_req = mainwindow->requisition; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
278 | } |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
279 | applet_req = appletframe->requisition; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
280 | |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
281 | /* FIXME : we need to be smarter here */ |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
282 | switch( orient ){ |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
283 | case ORIENT_UP: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
284 | result.x=x; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
285 | result.y=y-(buddy_req.height+pad); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
286 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
287 | case ORIENT_DOWN: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
288 | result.x=x; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
289 | result.y=y+applet_req.height+pad; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
290 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
291 | case ORIENT_LEFT: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
292 | result.x=x-(buddy_req.width + pad ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
293 | result.y=y; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
294 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
295 | case ORIENT_RIGHT: |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
296 | result.x=x+applet_req.width+pad; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
297 | result.y=y; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
298 | break; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
299 | } |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
300 | return result; |
| 1 | 301 | } |
| 302 | ||
| 303 | void createOnlinePopup(){ | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
304 | GtkAllocation al; |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
305 | if (blist) gtk_widget_show(blist); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
306 | al = get_applet_pos(TRUE); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
307 | if (general_options & OPT_GEN_NEAR_APPLET) |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
308 | gtk_widget_set_uposition ( blist, al.x, al.y ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
309 | else if (general_options & OPT_GEN_SAVED_WINDOWS) |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
310 | gtk_widget_set_uposition(blist, blist_pos.x - blist_pos.xoff, blist_pos.y - blist_pos.yoff); |
| 1 | 311 | } |
| 312 | ||
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
313 | void AppletClicked( GtkWidget *sender, GdkEventButton *ev, gpointer data ){ |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
314 | if (!ev || ev->button != 1 || ev->type != GDK_BUTTON_PRESS) |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
315 | return; |
| 1 | 316 | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
317 | if(applet_buddy_show) { |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
318 | applet_buddy_show = FALSE; |
| 1 | 319 | switch( MRI_user_status ){ |
| 320 | case offline: | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
321 | gtk_widget_hide(mainwindow); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
322 | break; |
| 1 | 323 | case online: |
| 324 | case away: | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
325 | applet_destroy_buddy(0, 0, 0); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
326 | break; |
| 1 | 327 | } |
| 328 | } else { | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
329 | applet_buddy_show = TRUE; |
| 1 | 330 | switch( MRI_user_status ){ |
| 331 | case offline: | |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
332 | applet_show_login( APPLET_WIDGET(applet), NULL ); |
|
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
333 | break; |
| 1 | 334 | case online: |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
335 | case away: |
| 1 | 336 | createOnlinePopup(); |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
337 | break; |
| 1 | 338 | } |
| 339 | } | |
| 340 | } | |
| 341 | ||
| 342 | ||
| 343 | /*************************************************************** | |
| 344 | ** | |
| 345 | ** Initialize GNOME stuff | |
| 346 | ** | |
| 347 | ****************************************************************/ | |
| 348 | ||
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
349 | gint init_applet_mgr(int argc, char *argv[]) { |
| 1 | 350 | GtkWidget *vbox; |
| 351 | ||
| 352 | GtkStyle *label_style; | |
| 353 | GdkFont *label_font = NULL; | |
| 354 | ||
| 355 | applet_widget_init("GAIM",VERSION,argc,argv,NULL,0,NULL); | |
| 356 | ||
| 357 | /*init imlib for graphics*/ | |
| 358 | gdk_imlib_init(); | |
| 359 | gtk_widget_push_visual(gdk_imlib_get_visual()); | |
| 360 | gtk_widget_push_colormap(gdk_imlib_get_colormap()); | |
|
342
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
361 | |
| 1 | 362 | applet=applet_widget_new("gaim_applet"); |
| 363 | if(!applet) g_error(_("Can't create GAIM applet!")); | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
364 | gtk_widget_set_events(applet, gtk_widget_get_events(applet) | |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
365 | GDK_BUTTON_PRESS_MASK); |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
366 | |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
367 | appletframe = gtk_frame_new(NULL); |
| 374 | 368 | #ifdef HAVE_PANEL_PIXEL_SIZE |
| 369 | gtk_widget_set_usize(appletframe, 5, 5); | |
| 370 | #else | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
371 | gtk_widget_set_usize(appletframe, 48, 48); |
| 374 | 372 | #endif |
| 1 | 373 | |
| 374 | /*load offline icon*/ | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
375 | load_applet_icon( GAIM_GNOME_OFFLINE_ICON, 32, 32, |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
376 | &icon_offline_pm, &icon_offline_bm ); |
| 1 | 377 | |
| 378 | /*load connecting icon*/ | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
379 | load_applet_icon( GAIM_GNOME_CONNECT_ICON, 32, 32, |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
380 | &icon_connect_pm, &icon_connect_bm ); |
| 1 | 381 | |
| 382 | /*load online icon*/ | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
383 | load_applet_icon( GAIM_GNOME_ONLINE_ICON, 32, 32, |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
384 | &icon_online_pm, &icon_online_bm ); |
| 1 | 385 | |
| 386 | /*icon_away and icon_msg_pennding need to be implemented*/ | |
| 387 | ||
| 388 | icon=gtk_pixmap_new(icon_offline_pm,icon_offline_bm); | |
| 389 | ||
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
390 | update_applet(FALSE); |
| 1 | 391 | |
| 392 | vbox = gtk_vbox_new(FALSE,0); | |
| 393 | ||
| 394 | gtk_box_pack_start(GTK_BOX(vbox), icon, FALSE, TRUE, 0); | |
| 395 | ||
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
396 | status_label = gtk_label_new(_("Offline")); |
| 1 | 397 | /*set this label's font*/ |
| 398 | label_style = gtk_widget_get_style( status_label ); | |
| 399 | ||
| 400 | label_font = gdk_font_load( _MSG_FONT_ ); | |
| 401 | ||
| 402 | ||
| 403 | if( label_font != NULL ){ | |
| 404 | label_style->font = label_font; | |
| 405 | gtk_widget_set_style( status_label, label_style ); | |
| 406 | } else { | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
407 | sprintf(debug_buff, _("Font does not exist") ); |
| 1 | 408 | debug_print(debug_buff); |
| 409 | } | |
| 410 | ||
| 411 | gtk_box_pack_start(GTK_BOX(vbox), status_label, FALSE, TRUE, 0); | |
| 412 | ||
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
413 | gtk_container_add( GTK_CONTAINER(appletframe), vbox ); |
|
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
414 | applet_widget_add(APPLET_WIDGET(applet), appletframe); |
| 1 | 415 | |
| 416 | gtk_widget_show( status_label ); | |
| 417 | gtk_widget_show( vbox ); | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
418 | gtk_widget_show( appletframe ); |
| 1 | 419 | |
| 420 | applet_widget_register_stock_callback(APPLET_WIDGET(applet), | |
| 421 | "about", | |
| 422 | GNOME_STOCK_MENU_ABOUT, | |
| 423 | _("About..."), | |
| 424 | applet_show_about, | |
| 425 | NULL); | |
| 426 | ||
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
246
diff
changeset
|
427 | gtk_signal_connect( GTK_OBJECT(applet), "button_press_event", GTK_SIGNAL_FUNC( AppletClicked), NULL); |
| 1 | 428 | |
|
425
bc3f0933ce54
[gaim-migrate @ 435]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
429 | gtk_signal_connect( GTK_OBJECT(applet), "destroy", GTK_SIGNAL_FUNC( do_quit), NULL); |
|
bc3f0933ce54
[gaim-migrate @ 435]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
411
diff
changeset
|
430 | |
| 374 | 431 | #ifdef HAVE_PANEL_PIXEL_SIZE |
| 432 | gtk_signal_connect(GTK_OBJECT(applet), "change_pixel_size", | |
| 433 | GTK_SIGNAL_FUNC(applet_change_pixel_size), NULL); | |
| 434 | #endif | |
| 435 | ||
| 1 | 436 | gtk_widget_show(icon); |
| 437 | gtk_widget_show(applet); | |
| 438 | return 0; | |
| 439 | } | |
| 440 | ||
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
441 | void set_user_state( enum gaim_user_states state ){ |
| 1 | 442 | MRI_user_status = state; |
|
746
16a29fe20b65
[gaim-migrate @ 756]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
425
diff
changeset
|
443 | update_applet(FALSE); |
| 1 | 444 | } |
| 445 | ||
|
342
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
446 | void applet_set_tooltips(char *msg) { |
|
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
447 | applet_widget_set_tooltip(APPLET_WIDGET(applet), msg); |
|
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
448 | } |
|
17059c400667
[gaim-migrate @ 352]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
340
diff
changeset
|
449 | |
| 1 | 450 | #endif /*USE_APPLET*/ |