static void action_task_list_copy_cb (GtkAction *action, ETaskShellView *task_shell_view) { ETaskShellSidebar *task_shell_sidebar; EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; ESourceSelector *selector; ESource *source; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); registry = e_shell_get_registry (shell); task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); copy_source_dialog ( GTK_WINDOW (shell_window), registry, source, E_CAL_CLIENT_SOURCE_TYPE_TASKS); g_object_unref (source); }
static gboolean shell_searchbar_entry_key_press_cb (EShellSearchbar *searchbar, GdkEventKey *key_event, GtkWindow *entry) { EShellView *shell_view; EShellWindow *shell_window; GtkAction *action; guint mask; mask = gtk_accelerator_get_default_mod_mask (); if ((key_event->state & mask) != GDK_MOD1_MASK) return FALSE; if (key_event->keyval != GDK_KEY_Down) return FALSE; shell_view = e_shell_searchbar_get_shell_view (searchbar); shell_window = e_shell_view_get_shell_window (shell_view); action = E_SHELL_WINDOW_ACTION_SEARCH_OPTIONS (shell_window); gtk_action_activate (action); return TRUE; }
static void action_contact_new_list_cb (GtkAction *action, EBookShellView *book_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; EBookShellContent *book_shell_content; EAddressbookView *view; EAddressbookModel *model; EContact *contact; EABEditor *editor; EBookClient *book; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); book_shell_content = book_shell_view->priv->book_shell_content; view = e_book_shell_content_get_current_view (book_shell_content); g_return_if_fail (view != NULL); model = e_addressbook_view_get_model (view); book = e_addressbook_model_get_client (model); g_return_if_fail (book != NULL); contact = e_contact_new (); editor = e_contact_list_editor_new (shell, book, contact, TRUE, TRUE); eab_editor_show (editor); g_object_unref (contact); }
static void action_task_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ETaskShellContent *task_shell_content; ETaskTable *task_table; EClient *client = NULL; GSList *list; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); task_shell_content = task_shell_view->priv->task_shell_content; task_table = e_task_shell_content_get_task_table (task_shell_content); list = e_task_table_get_selected (task_table); if (list) { ECalModelComponent *comp_data; comp_data = list->data; client = g_object_ref (comp_data->client); g_slist_free (list); } e_cal_ops_new_component_editor (shell_window, E_CAL_CLIENT_SOURCE_TYPE_TASKS, client ? e_source_get_uid (e_client_get_source (client)) : NULL, FALSE); g_clear_object (&client); }
static GtkActionGroup * mail_shell_content_get_action_group (EMailReader *reader, EMailReaderActionGroup group) { EShellView *shell_view; EShellWindow *shell_window; EShellContent *shell_content; const gchar *group_name; shell_content = E_SHELL_CONTENT (reader); shell_view = e_shell_content_get_shell_view (shell_content); shell_window = e_shell_view_get_shell_window (shell_view); switch (group) { case E_MAIL_READER_ACTION_GROUP_STANDARD: group_name = "mail"; break; case E_MAIL_READER_ACTION_GROUP_SEARCH_FOLDERS: group_name = "search-folders"; break; default: g_return_val_if_reached (NULL); } return e_shell_window_get_action_group (shell_window, group_name); }
static void action_calendar_taskpad_open_url_cb (GtkAction *action, ECalShellView *cal_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ECalShellContent *cal_shell_content; ECalModelComponent *comp_data; ETaskTable *task_table; icalproperty *prop; const gchar *uri; GSList *list; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); cal_shell_content = cal_shell_view->priv->cal_shell_content; task_table = e_cal_shell_content_get_task_table (cal_shell_content); list = e_task_table_get_selected (task_table); g_return_if_fail (list != NULL); comp_data = list->data; /* XXX We only open the URI of the first selected task. */ prop = icalcomponent_get_first_property ( comp_data->icalcomp, ICAL_URL_PROPERTY); g_return_if_fail (prop != NULL); uri = icalproperty_get_url (prop); e_show_uri (GTK_WINDOW (shell_window), uri); }
static void action_calendar_taskpad_new_cb (GtkAction *action, ECalShellView *cal_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ECalShellContent *cal_shell_content; ECalModelComponent *comp_data; ETaskTable *task_table; GSList *list; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); cal_shell_content = cal_shell_view->priv->cal_shell_content; task_table = e_cal_shell_content_get_task_table (cal_shell_content); list = e_task_table_get_selected (task_table); g_return_if_fail (list != NULL); comp_data = list->data; g_slist_free (list); e_cal_ops_new_component_editor (shell_window, E_CAL_CLIENT_SOURCE_TYPE_TASKS, e_source_get_uid (e_client_get_source (E_CLIENT (comp_data->client))), FALSE); }
static void action_address_book_new_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; GtkWidget *config; GtkWidget *dialog; const gchar *icon_name; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); registry = book_shell_view->priv->registry; config = e_book_source_config_new (registry, NULL); dialog = e_source_config_dialog_new (E_SOURCE_CONFIG (config)); gtk_window_set_transient_for ( GTK_WINDOW (dialog), GTK_WINDOW (shell_window)); icon_name = gtk_action_get_icon_name (action); gtk_window_set_icon_name (GTK_WINDOW (dialog), icon_name); gtk_window_set_title (GTK_WINDOW (dialog), _("New Address Book")); gtk_widget_show (dialog); }
static void setup_source_actions (EShellView *shell_view, GtkActionEntry *entries) { EShellWindow *shell_window; const gchar *group; g_return_if_fail (shell_view != NULL); g_return_if_fail (entries != NULL); if (strstr (entries->name, "calendar")) group = "calendar"; else if (strstr (entries->name, "tasks")) group = "tasks"; else group = "contacts"; shell_window = e_shell_view_get_shell_window (shell_view); e_action_group_add_actions_localized ( e_shell_window_get_action_group (shell_window, group), GETTEXT_PACKAGE, entries, NUM_ENTRIES, shell_view); g_signal_connect (shell_view, "update-actions", G_CALLBACK (update_source_entries_cb), entries); }
void e_cal_shell_view_taskpad_actions_init (ECalShellView *cal_shell_view) { EShellView *shell_view; EShellWindow *shell_window; GtkActionGroup *action_group; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); /* Calendar Actions */ action_group = ACTION_GROUP (CALENDAR); gtk_action_group_add_actions ( action_group, calendar_taskpad_entries, G_N_ELEMENTS (calendar_taskpad_entries), cal_shell_view); /* Lockdown Printing Actions */ action_group = ACTION_GROUP (LOCKDOWN_PRINTING); gtk_action_group_add_actions ( action_group, lockdown_printing_entries, G_N_ELEMENTS (lockdown_printing_entries), cal_shell_view); /* Lockdown Save-to-Disk Actions */ action_group = ACTION_GROUP (LOCKDOWN_SAVE_TO_DISK); gtk_action_group_add_actions ( action_group, lockdown_save_to_disk_entries, G_N_ELEMENTS (lockdown_save_to_disk_entries), cal_shell_view); }
static void action_address_book_delete_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; EBookShellBackend *book_shell_backend; EBookShellSidebar *book_shell_sidebar; ESource *source; ESourceSelector *selector; ESourceGroup *source_group; ESourceList *source_list; EBookClient *book; gint response; GError *error = NULL; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); book_shell_backend = book_shell_view->priv->book_shell_backend; source_list = e_book_shell_backend_get_source_list (book_shell_backend); book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); source = e_source_selector_get_primary_selection (selector); g_return_if_fail (source != NULL); response = e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "addressbook:ask-delete-addressbook", e_source_peek_name (source), NULL); if (response != GTK_RESPONSE_YES) return; book = e_book_client_new (source, &error); if (error != NULL) { g_warning ("Error removing addressbook: %s", error->message); g_error_free (error); return; } if (!e_client_remove_sync (E_CLIENT (book), NULL, NULL)) { e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "addressbook:remove-addressbook", NULL); g_object_unref (book); return; } if (e_source_selector_source_is_selected (selector, source)) e_source_selector_unselect_source (selector, source); source_group = e_source_peek_group (source); e_source_group_remove_source (source_group, source); e_source_list_sync (source_list, NULL); g_object_unref (book); }
static void action_task_list_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; ECalClientSourceType source_type; GtkWidget *config; GtkWidget *dialog; const gchar *icon_name; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); registry = e_shell_get_registry (shell); source_type = E_CAL_CLIENT_SOURCE_TYPE_TASKS; config = e_cal_source_config_new (registry, NULL, source_type); dialog = e_source_config_dialog_new (E_SOURCE_CONFIG (config)); gtk_window_set_transient_for ( GTK_WINDOW (dialog), GTK_WINDOW (shell_window)); icon_name = gtk_action_get_icon_name (action); gtk_window_set_icon_name (GTK_WINDOW (dialog), icon_name); gtk_window_set_title (GTK_WINDOW (dialog), _("New Task List")); gtk_widget_show (dialog); }
void e_cal_shell_view_memopad_actions_update (ECalShellView *cal_shell_view) { ECalShellContent *cal_shell_content; EShellWindow *shell_window; EShellView *shell_view; EMemoTable *memo_table; GtkAction *action; GSList *list, *iter; gboolean editable = TRUE; gboolean has_url = FALSE; gboolean sensitive; gint n_selected; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); cal_shell_content = cal_shell_view->priv->cal_shell_content; memo_table = e_cal_shell_content_get_memo_table (cal_shell_content); n_selected = e_table_selected_count (E_TABLE (memo_table)); list = e_memo_table_get_selected (memo_table); for (iter = list; iter != NULL; iter = iter->next) { ECalModelComponent *comp_data = iter->data; icalproperty *prop; gboolean read_only; read_only = e_client_is_readonly (E_CLIENT (comp_data->client)); editable &= !read_only; prop = icalcomponent_get_first_property ( comp_data->icalcomp, ICAL_URL_PROPERTY); has_url |= (prop != NULL); } g_slist_free (list); action = ACTION (CALENDAR_MEMOPAD_FORWARD); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_OPEN); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_OPEN_URL); sensitive = (n_selected == 1) && has_url; gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_PRINT); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_SAVE_AS); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); }
static void e_mapi_config_ui_extension_shell_view_toggled_cb (EShellView *shell_view, EMapiConfigUIExtension *ui_ext) { EShellViewClass *shell_view_class; EShellWindow *shell_window; GtkUIManager *ui_manager; gpointer key = NULL, value = NULL; const gchar *ui_def; gboolean is_active, need_update; g_return_if_fail (E_IS_SHELL_VIEW (shell_view)); g_return_if_fail (ui_ext != NULL); shell_view_class = E_SHELL_VIEW_GET_CLASS (shell_view); g_return_if_fail (shell_view_class != NULL); shell_window = e_shell_view_get_shell_window (shell_view); ui_manager = e_shell_window_get_ui_manager (shell_window); need_update = ui_ext->current_ui_id != 0; if (ui_ext->current_ui_id) { gtk_ui_manager_remove_ui (ui_manager, ui_ext->current_ui_id); ui_ext->current_ui_id = 0; } is_active = e_shell_view_is_active (shell_view); if (!is_active) { if (need_update) gtk_ui_manager_ensure_update (ui_manager); return; } if (!g_hash_table_lookup_extended (ui_ext->ui_definitions, shell_view_class->ui_manager_id, &key, &value)) { gchar *ui_definition = NULL; e_mapi_config_utils_init_ui (shell_view, shell_view_class->ui_manager_id, &ui_definition); g_hash_table_insert (ui_ext->ui_definitions, g_strdup (shell_view_class->ui_manager_id), ui_definition); } ui_def = g_hash_table_lookup (ui_ext->ui_definitions, shell_view_class->ui_manager_id); if (ui_def) { GError *error = NULL; ui_ext->current_ui_id = gtk_ui_manager_add_ui_from_string (ui_manager, ui_def, -1, &error); need_update = TRUE; if (error) { g_warning ("%s: Failed to add ui definition: %s", G_STRFUNC, error->message); g_error_free (error); } } if (need_update) gtk_ui_manager_ensure_update (ui_manager); }
void e_task_shell_view_open_task (ETaskShellView *task_shell_view, ECalModelComponent *comp_data) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; icalcomponent *clone; icalproperty *prop; const gchar *uid; g_return_if_fail (E_IS_TASK_SHELL_VIEW (task_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); registry = e_shell_get_registry (shell); uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); if (editor != NULL) goto exit; comp = e_cal_component_new (); clone = icalcomponent_new_clone (comp_data->icalcomp); e_cal_component_set_icalcomponent (comp, clone); prop = icalcomponent_get_first_property ( comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY); if (prop != NULL) flags |= COMP_EDITOR_IS_ASSIGNED; if (itip_organizer_is_user (registry, comp, comp_data->client)) flags |= COMP_EDITOR_USER_ORG; if (!e_cal_component_has_attendees (comp)) flags |= COMP_EDITOR_USER_ORG; editor = task_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_unref (comp); if (flags & COMP_EDITOR_IS_ASSIGNED) task_editor_show_assignment (TASK_EDITOR (editor)); exit: gtk_window_present (GTK_WINDOW (editor)); }
static void action_address_book_new_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); addressbook_config_create_new_source (GTK_WIDGET (shell_window)); }
static void update_mmp_entries_cb (EShellView *shell_view, gpointer user_data) { EShellWindow *shell_window; GtkActionGroup *action_group; gboolean visible; gchar *full_name = NULL, *uri = NULL; guint n_selected = 0; g_return_if_fail (E_IS_SHELL_VIEW (shell_view)); shell_window = e_shell_view_get_shell_window (shell_view); action_group = e_shell_window_get_action_group (shell_window, "mail"); visible = is_in_gw_account (shell_view, NULL, &full_name); if (visible) { EShellContent *shell_content; EMailReader *reader; GPtrArray *uids; shell_content = e_shell_view_get_shell_content (shell_view); reader = E_MAIL_READER (shell_content); uids = e_mail_reader_get_selected_uids (reader); if (uids) n_selected = uids->len; em_utils_uids_free (uids); visible = n_selected > 0; } visible_actions (action_group, visible, mmp_entries, G_N_ELEMENTS (mmp_entries)); if (visible) { GtkAction *action; gboolean is_sent_items_folder = full_name && g_ascii_strncasecmp (full_name, "Sent Items", 10) == 0; action = gtk_action_group_get_action (action_group, "gw-track-message-status"); g_return_if_fail (action != NULL); gtk_action_set_visible (action, is_sent_items_folder && n_selected == 1); action = gtk_action_group_get_action (action_group, "gw-retract-mail"); g_return_if_fail (action != NULL); gtk_action_set_visible (action, is_sent_items_folder && n_selected == 1); } g_free (full_name); g_free (uri); }
gboolean e_plugin_ui_init(GtkUIManager *ui_manager, EShellView *shell_view) { EShellWindow *shell_window; GtkActionGroup *action_group; shell_window = e_shell_view_get_shell_window (shell_view); action_group = e_shell_window_get_action_group (shell_window, "calendar"); gtk_action_group_add_actions ( action_group, menuItems, G_N_ELEMENTS (menuItems), shell_view); return TRUE; }
static void action_task_purge_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShellView *shell_view; EShellWindow *shell_window; GtkWidget *content_area; GtkWidget *dialog; GtkWidget *widget; gboolean active; gint response; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); if (!e_task_shell_view_get_confirm_purge (task_shell_view)) goto purge; /* XXX This needs reworked. The dialog looks like ass. */ dialog = gtk_message_dialog_new ( GTK_WINDOW (shell_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, "%s", _("This operation will permanently erase all tasks " "marked as completed. If you continue, you will not be able " "to recover these tasks.\n\nReally erase these tasks?")); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_NO); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); widget = gtk_check_button_new_with_label (_("Do not ask me again")); gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 6); gtk_widget_show (widget); response = gtk_dialog_run (GTK_DIALOG (dialog)); active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); gtk_widget_destroy (dialog); if (response != GTK_RESPONSE_YES) return; if (active) e_task_shell_view_set_confirm_purge (task_shell_view, FALSE); purge: e_task_shell_view_delete_completed (task_shell_view); }
gboolean eex_ui_mail_init (GtkUIManager *ui_manager, EShellView *shell_view) { EShellWindow *shell_window; shell_window = e_shell_view_get_shell_window (shell_view); e_action_group_add_actions_localized ( e_shell_window_get_action_group (shell_window, "mail"), GETTEXT_PACKAGE, mail_entries, G_N_ELEMENTS (mail_entries), shell_view); g_signal_connect (shell_view, "update-actions", G_CALLBACK (update_mail_entries_cb), NULL); return TRUE; }
static void update_source_entries_cb (EShellView *shell_view, GtkActionEntry *entries) { GtkActionGroup *action_group; EShellWindow *shell_window; GtkAction *action; const gchar *group; gchar *uri = NULL; gboolean is_eex_source, is_eex_avail; gint i; g_return_if_fail (E_IS_SHELL_VIEW (shell_view)); g_return_if_fail (entries != NULL); if (strstr (entries->name, "calendar")) group = "calendar"; else if (strstr (entries->name, "tasks")) group = "tasks"; else group = "contacts"; is_eex_source = is_eex_source_selected (shell_view, &uri); is_eex_avail = is_eex_source || is_eex_source_available (shell_view); shell_window = e_shell_view_get_shell_window (shell_view); action_group = e_shell_window_get_action_group (shell_window, group); /* index 0 ... Permissions * index 1 ... Subscribe to * index 2 ... Unsubscribe */ for (i = 0; i < NUM_ENTRIES; i++) { gboolean visible = is_eex_avail; action = gtk_action_group_get_action (action_group, entries[i].name); g_return_if_fail (action != NULL); if (visible && i == 2) { /* it's an unsubscribe, check if this is public and show/hide based on that */ visible = uri && is_subscribed_folder (uri); } gtk_action_set_visible (action, visible); gtk_action_set_sensitive (action, i == 1 || (visible && is_eex_source)); } g_free (uri); }
static void action_task_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ETaskShellContent *task_shell_content; ETaskTable *task_table; ECalClient *client; ECalComponent *comp; CompEditor *editor; GSList *list; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); task_shell_content = task_shell_view->priv->task_shell_content; task_table = e_task_shell_content_get_task_table (task_shell_content); list = e_task_table_get_selected (task_table); if (list == NULL) { ECalModel *model; model = e_task_table_get_model (task_table); client = e_cal_model_ref_default_client (model); } else { ECalModelComponent *comp_data; comp_data = list->data; client = g_object_ref (comp_data->client); g_slist_free (list); } g_return_if_fail (client != NULL); editor = task_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_task_new_with_defaults (client); comp_editor_edit_comp (editor, comp); gtk_window_present (GTK_WINDOW (editor)); g_object_unref (comp); g_object_unref (client); }
static void action_address_book_properties_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; EBookShellSidebar *book_shell_sidebar; ESource *source; ESourceSelector *selector; EditorUidClosure *closure; GHashTable *uid_to_editor; const gchar *uid; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); source = e_source_selector_get_primary_selection (selector); g_return_if_fail (source != NULL); uid = e_source_peek_uid (source); uid_to_editor = book_shell_view->priv->uid_to_editor; closure = g_hash_table_lookup (uid_to_editor, uid); if (closure == NULL) { GtkWidget *editor; editor = addressbook_config_edit_source ( GTK_WIDGET (shell_window), source); closure = g_new (EditorUidClosure, 1); closure->editor = editor; closure->uid = g_strdup (uid); closure->view = book_shell_view; g_hash_table_insert (uid_to_editor, closure->uid, closure); g_object_weak_ref ( G_OBJECT (closure->editor), (GWeakNotify) e_book_shell_view_editor_weak_notify, closure); } gtk_window_present (GTK_WINDOW (closure->editor)); }
static void shell_searchbar_entry_changed_cb (EShellSearchbar *searchbar) { EShellView *shell_view; EShellWindow *shell_window; GtkAction *action; const gchar *search_text; gboolean sensitive; shell_view = e_shell_searchbar_get_shell_view (searchbar); shell_window = e_shell_view_get_shell_window (shell_view); search_text = e_shell_searchbar_get_search_text (searchbar); sensitive = (search_text != NULL && *search_text != '\0'); action = E_SHELL_WINDOW_ACTION_SEARCH_QUICK (shell_window); gtk_action_set_sensitive (action, sensitive); }
gboolean gw_ui_calendar_event_popup (GtkUIManager *ui_manager, EShellView *shell_view) { EShellWindow *shell_window; GtkActionGroup *action_group; shell_window = e_shell_view_get_shell_window (shell_view); action_group = e_shell_window_get_action_group (shell_window, "calendar"); e_action_group_add_actions_localized ( action_group, GETTEXT_PACKAGE, cal_entries, G_N_ELEMENTS (cal_entries), shell_view); g_signal_connect (shell_view, "update-actions", G_CALLBACK (update_cal_entries_cb), NULL); return TRUE; }
static void book_shell_content_send_message_cb (EBookShellContent *book_shell_content, EDestination *destination, EABContactDisplay *display) { EShell *shell; EShellContent *shell_content; EShellWindow *shell_window; EShellView *shell_view; GSList node = { destination, NULL }; shell_content = E_SHELL_CONTENT (book_shell_content); shell_view = e_shell_content_get_shell_view (shell_content); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); eab_send_as_to (shell, &node); }
static gboolean mail_shell_view_key_press_event_cb (EMailShellView *mail_shell_view, GdkEventKey *event) { EShellView *shell_view; EShellWindow *shell_window; EShellContent *shell_content; EMailView *mail_view; EMailReader *reader; EMailDisplay *mail_display; GtkAction *action; shell_view = E_SHELL_VIEW (mail_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); if ((event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) != 0) return FALSE; shell_content = e_shell_view_get_shell_content (shell_view); mail_view = e_mail_shell_content_get_mail_view (E_MAIL_SHELL_CONTENT (shell_content)); reader = E_MAIL_READER (mail_view); mail_display = e_mail_reader_get_mail_display (reader); switch (event->keyval) { case GDK_KEY_space: action = ACTION (MAIL_SMART_FORWARD); break; case GDK_KEY_BackSpace: action = ACTION (MAIL_SMART_BACKWARD); break; default: return FALSE; } if (e_web_view_get_need_input (E_WEB_VIEW (mail_display)) && gtk_widget_has_focus (GTK_WIDGET (mail_display))) return FALSE; gtk_action_activate (action); return TRUE; }
static void shell_searchbar_entry_activate_cb (EShellSearchbar *searchbar) { EShellView *shell_view; EShellWindow *shell_window; GtkAction *action; const gchar *search_text; shell_view = e_shell_searchbar_get_shell_view (searchbar); shell_window = e_shell_view_get_shell_window (shell_view); search_text = e_shell_searchbar_get_search_text (searchbar); if (search_text != NULL && *search_text != '\0') action = E_SHELL_WINDOW_ACTION_SEARCH_QUICK (shell_window); else action = E_SHELL_WINDOW_ACTION_SEARCH_CLEAR (shell_window); gtk_action_activate (action); }
static void shell_searchbar_update_search_widgets (EShellSearchbar *searchbar) { EShellView *shell_view; EShellWindow *shell_window; GtkAction *action; GtkWidget *widget; const gchar *search_text; gboolean sensitive; /* EShellView subclasses are responsible for actually * executing the search. This is all cosmetic stuff. */ widget = searchbar->priv->search_entry; shell_view = e_shell_searchbar_get_shell_view (searchbar); shell_window = e_shell_view_get_shell_window (shell_view); search_text = e_shell_searchbar_get_search_text (searchbar); sensitive = (search_text != NULL && *search_text != '\0') || (e_shell_view_get_search_rule (shell_view) != NULL); if (sensitive) { GtkStyle *style; const GdkColor *color; style = gtk_widget_get_style (widget); color = &style->mid[GTK_STATE_SELECTED]; gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, color); gtk_widget_modify_text (widget, GTK_STATE_NORMAL, NULL); } else { /* Text color will be updated when we move the focus. */ gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, NULL); } action = E_SHELL_WINDOW_ACTION_SEARCH_CLEAR (shell_window); gtk_action_set_sensitive (action, sensitive); action = E_SHELL_WINDOW_ACTION_SEARCH_SAVE (shell_window); gtk_action_set_sensitive (action, sensitive); }
static void shell_searchbar_entry_icon_release_cb (EShellSearchbar *searchbar, GtkEntryIconPosition icon_pos, GdkEvent *event) { EShellView *shell_view; EShellWindow *shell_window; GtkAction *action; /* Clear the search when the icon is pressed and released. */ if (icon_pos != GTK_ENTRY_ICON_SECONDARY) return; shell_view = e_shell_searchbar_get_shell_view (searchbar); shell_window = e_shell_view_get_shell_window (shell_view); action = E_SHELL_WINDOW_ACTION_SEARCH_CLEAR (shell_window); gtk_action_activate (action); }