Changeset 61
- Timestamp:
- 12/01/07 09:58:50
- Files:
-
- trunk/src/tmut-menu-view.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/tmut-menu-view.c
r59 r61 416 416 } 417 417 418 void tmut_menu_view_on_new_msg_activated (GObject *sender, TMutMenuView *self) 418 static void 419 tmut_menu_view_on_onli_activated (GtkMenuItem *menuitem, TMutMenuView *self) 420 { 421 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 422 TnyDevice *device = tny_account_store_get_device (priv->account_store); 423 424 if (!tny_device_is_online (device)) { 425 GtkWidget *label = gtk_bin_get_child (GTK_BIN (menuitem)); 426 tny_device_force_online (device); 427 gtk_label_set (GTK_LABEL (label), _("Force offline")); 428 } else { 429 GtkWidget *label = gtk_bin_get_child (GTK_BIN (menuitem)); 430 tny_device_force_offline (device); 431 gtk_label_set (GTK_LABEL (label), _("Force online")); 432 } 433 434 g_object_unref (device); 435 return; 436 } 437 438 void 439 tmut_menu_view_on_new_msg_activated (GObject *sender, TMutMenuView *self) 419 440 { 420 441 TMutMsgCreator *view = tmut_msg_creator_new (); … … 443 464 } 444 465 466 typedef struct { 467 TnyDevice *device; 468 GtkMenuItem *menuitem; 469 } CheckOnlineStateInfo; 470 471 static gboolean 472 check_online_state_idle (gpointer user_data) 473 { 474 CheckOnlineStateInfo *info = (CheckOnlineStateInfo *) user_data; 475 476 if (!tny_device_is_online (info->device)) { 477 GtkWidget *label = gtk_bin_get_child (GTK_BIN (info->menuitem)); 478 gtk_label_set (GTK_LABEL (label), _("Force online")); 479 } else { 480 GtkWidget *label = gtk_bin_get_child (GTK_BIN (info->menuitem)); 481 gtk_label_set (GTK_LABEL (label), _("Force offline")); 482 } 483 484 return FALSE; 485 } 486 487 static void 488 check_online_state_destroy (gpointer user_data) 489 { 490 CheckOnlineStateInfo *info = (CheckOnlineStateInfo *) user_data; 491 g_object_unref (info->device); 492 g_object_unref (info->menuitem); 493 g_slice_free (CheckOnlineStateInfo, info); 494 return; 495 } 496 445 497 static void 446 498 tmut_menu_view_create_menu_default (TMutMenuView *self) 447 499 { 500 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 501 CheckOnlineStateInfo *info = g_slice_new0 (CheckOnlineStateInfo); 448 502 GtkMenu *menu; 449 503 GtkWidget *fcreate_menuitem, *fmove_menuitem, *fdel_menuitem, 450 *nmsg_menuitem, *fcopy_menuitem, *frename_menuitem; 504 *nmsg_menuitem, *fcopy_menuitem, *frename_menuitem, 505 *onli_menuitem; 451 506 GtkButton *menu_button; 452 507 508 info->device = tny_account_store_get_device (priv->account_store); 453 509 menu_button = GTK_BUTTON (gtk_button_new_with_label (_("Actions"))); 454 510 menu = GTK_MENU (gtk_menu_new ()); … … 459 515 fdel_menuitem = gtk_menu_item_new_with_label (_("Delete a folder")); 460 516 nmsg_menuitem = gtk_menu_item_new_with_label (_("New message")); 517 518 if (!tny_device_is_online (info->device)) 519 onli_menuitem = gtk_menu_item_new_with_label (_("Force offline")); 520 else 521 onli_menuitem = gtk_menu_item_new_with_label (_("Force online")); 522 523 info->menuitem = g_object_ref (onli_menuitem); 524 525 g_idle_add_full (5000, check_online_state_idle, 526 info, check_online_state_destroy); 527 528 gtk_widget_show (onli_menuitem); 461 529 gtk_widget_show (nmsg_menuitem); 462 530 gtk_widget_show (fcreate_menuitem); … … 467 535 gtk_widget_show (GTK_WIDGET (menu)); 468 536 gtk_widget_show (GTK_WIDGET (menu_button)); 537 538 gtk_menu_prepend (menu, onli_menuitem); 469 539 gtk_menu_prepend (menu, nmsg_menuitem); 470 540 gtk_menu_prepend (menu, fcreate_menuitem); … … 478 548 g_signal_connect (G_OBJECT (menu_button), "clicked", 479 549 G_CALLBACK (popup_the_actions_menu), menu); 550 g_signal_connect (G_OBJECT (onli_menuitem), "activate", 551 G_CALLBACK (tmut_menu_view_on_onli_activated), self); 480 552 g_signal_connect (G_OBJECT (nmsg_menuitem), "activate", 481 553 G_CALLBACK (tmut_menu_view_on_new_msg_activated), self); … … 555 627 g_object_unref (priv->account_store); 556 628 priv->account_store = TNY_ACCOUNT_STORE (g_object_ref (account_store)); 629 630 TMUT_MENU_VIEW_GET_CLASS (self)->create_menu_func (TMUT_MENU_VIEW (self)); 557 631 558 632 return; … … 649 723 G_CALLBACK (on_folder_changed), self); 650 724 651 TMUT_MENU_VIEW_GET_CLASS (self)->create_menu_func (self);652 653 725 return; 654 726 }
