Changeset 3386 for trunk/jons-gtk2-gui
- Timestamp:
- 03/20/03 01:47:13 (6 years ago)
- Files:
-
- 1 modified
-
trunk/jons-gtk2-gui/src/away_window.cpp (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/jons-gtk2-gui/src/away_window.cpp
r3324 r3386 23 23 #include "licq_icqd.h" 24 24 #include "licq_gtk.h" 25 #include "utilities.h" 25 26 26 27 GSList *uaw_list; … … 43 44 }; 44 45 45 void set_away_msg(GtkWidget *widget, struct away_dialog *away_d) 46 { 47 GtkTextIter s, e; 48 GtkTextBuffer *tb = gtk_text_view_get_buffer(GTK_TEXT_VIEW(away_d->text)); 49 gtk_text_buffer_get_start_iter(tb, &s); 50 gtk_text_buffer_get_end_iter(tb, &e); 51 gchar *txt = gtk_text_buffer_get_text(tb, &s, &e, FALSE); 46 void 47 set_away_msg(GtkWidget *widget, struct away_dialog *away_d) 48 { 52 49 ICQOwner *owner = gUserManager.FetchOwner(LOCK_W); 53 owner->SetAutoResponse(t xt);50 owner->SetAutoResponse(textview_get_chars(away_d->text).c_str()); 54 51 gUserManager.DropOwner(); 55 g_free(txt);56 52 57 53 window_close(NULL, away_d->window); 58 54 } 59 55 60 void away_msg_window(gushort status) 56 void 57 away_msg_window(gushort status) 61 58 { 62 59 … … 66 63 away_d = g_new0(struct away_dialog, 1); 67 64 else { 68 gtk_wi dget_show(away_d->window);65 gtk_window_present(GTK_WINDOW(away_d->window)); 69 66 return; 70 67 } … … 91 88 92 89 /* The boxes */ 93 GtkWidget *h_box = gtk_hbox_new(TRUE, 5);94 90 GtkWidget *v_box = gtk_vbox_new(FALSE, 5); 95 91 96 92 /* Pack the text box into the v_box */ 97 gtk_box_pack_start(GTK_BOX(v_box), away_d->text, TRUE, TRUE, 0); 93 GtkWidget *frame = gtk_frame_new(NULL); 94 gtk_container_add(GTK_CONTAINER(frame), away_d->text); 95 gtk_box_pack_start(GTK_BOX(v_box), frame, TRUE, TRUE, 0); 98 96 99 97 /* Make the buttons now */ … … 102 100 103 101 /* Pack the buttons */ 104 gtk_box_pack_start(GTK_BOX(h_box), ok, TRUE, TRUE, 5); 105 gtk_box_pack_start(GTK_BOX(h_box), cancel, TRUE, TRUE, 5); 102 GtkWidget *h_box = hbutton_box_new(); 103 gtk_container_add(GTK_CONTAINER(h_box), ok); 104 gtk_container_add(GTK_CONTAINER(h_box), cancel); 106 105 gtk_box_pack_start(GTK_BOX(v_box), h_box, FALSE, FALSE, 0); 107 106 … … 116 115 /* Get the window ready to be shown, show it, and set is_shown */ 117 116 gtk_container_add(GTK_CONTAINER(away_d->window), v_box); 117 gtk_container_set_border_width(GTK_CONTAINER(away_d->window), 10); 118 gtk_window_set_focus(GTK_WINDOW(away_d->window), away_d->text); 118 119 gtk_widget_show_all(away_d->window); 119 gtk_window_set_focus(GTK_WINDOW(away_d->window), away_d->text);120 gtk_window_set_modal(GTK_WINDOW(away_d->window), TRUE);121 120 } 122 121 … … 136 135 } 137 136 138 struct user_away_window *uaw_find(unsigned long uin) 137 struct user_away_window * 138 uaw_find(unsigned long uin) 139 139 { 140 140 struct user_away_window *uaw; … … 152 152 } 153 153 154 struct user_away_window *uaw_new(ICQUser *u) 154 struct user_away_window * 155 uaw_new(ICQUser *u) 155 156 { 156 157 /* Does it exist already? */ … … 172 173 } 173 174 174 void list_read_message(GtkWidget *widget, ICQUser *user) 175 void 176 list_read_message(GtkWidget *widget, ICQUser *user) 175 177 { 176 178 struct user_away_window *uaw = uaw_find(user->Uin()); 177 179 178 180 // we're in the process of retrieving the message (or it's displayed already) 179 if (uaw != NULL) 181 if (uaw != NULL) { 182 gtk_window_present(GTK_WINDOW(uaw->window)); 180 183 return; 184 } 181 185 182 186 uaw = uaw_new(user); … … 196 200 197 201 /* Make the boxes */ 198 GtkWidget *h_box = gtk_hbox_new(FALSE, 5);199 202 GtkWidget *v_box = gtk_vbox_new(FALSE, 5); 200 203 … … 202 205 GtkWidget *scroll = gtk_scrolled_window_new(0, 0); 203 206 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), 204 GTK_POLICY_NEVER,205 GTK_POLICY_AUTOMATIC);207 GTK_POLICY_NEVER, 208 GTK_POLICY_AUTOMATIC); 206 209 207 210 /* The text box */ … … 212 215 213 216 /* Add the text box to the scrolling window */ 217 GtkWidget *frame = gtk_frame_new(NULL); 214 218 gtk_container_add(GTK_CONTAINER(scroll), uaw->text_box); 219 gtk_container_add(GTK_CONTAINER(frame), scroll); 215 220 216 221 /* Pack the scrolled window into the v_box */ … … 220 225 uaw->show_again = gtk_check_button_new_with_label("Show Again"); 221 226 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(uaw->show_again), 222 user->ShowAwayMsg());227 user->ShowAwayMsg()); 223 228 224 229 /* The close button */ … … 228 233 229 234 /* Pack everything */ 230 gtk_box_pack_start(GTK_BOX(h_box), uaw->show_again, TRUE, TRUE, 10); 231 gtk_box_pack_start(GTK_BOX(h_box), close, TRUE, TRUE, 10); 235 GtkWidget *h_box = hbutton_box_new(); 236 gtk_container_add(GTK_CONTAINER(h_box), uaw->show_again); 237 gtk_container_add(GTK_CONTAINER(h_box), close); 232 238 gtk_box_pack_start(GTK_BOX(v_box), h_box, FALSE, FALSE, 5); 233 239 … … 235 241 uaw->progress = gtk_statusbar_new(); 236 242 strcpy(uaw->buffer, "Checking Response ... "); 237 guint id = gtk_statusbar_get_context_id(GTK_STATUSBAR(uaw->progress), 238 "prog"); 239 gtk_statusbar_pop(GTK_STATUSBAR(uaw->progress), id); 240 gtk_statusbar_push(GTK_STATUSBAR(uaw->progress), id, uaw->buffer); 243 status_change(uaw->progress, "sta", uaw->buffer); 241 244 242 245 /* Pack the progress bar */ 243 246 gtk_box_pack_start(GTK_BOX(v_box), uaw->progress, FALSE, FALSE, 5); 244 247 248 gtk_container_set_border_width(GTK_CONTAINER(uaw->window), 10); 245 249 gtk_container_add(GTK_CONTAINER(uaw->window), v_box); 246 250 gtk_widget_show_all(uaw->window); … … 257 261 } 258 262 259 void finish_away(ICQEvent *event) 263 void 264 finish_away(ICQEvent *event) 260 265 { 261 266 struct user_away_window *uaw = uaw_find(event->Uin());
