static void task_shell_content_view_created (ECalBaseShellContent *cal_base_shell_content) { ETaskShellContent *task_shell_content; EShellView *shell_view; GalViewInstance *view_instance; GSettings *settings; task_shell_content = E_TASK_SHELL_CONTENT (cal_base_shell_content); shell_view = e_shell_content_get_shell_view (E_SHELL_CONTENT (task_shell_content)); /* Bind GObject properties to settings keys. */ settings = e_util_ref_settings ("org.gnome.evolution.calendar"); g_settings_bind ( settings, "task-hpane-position", task_shell_content->priv->paned, "hposition", G_SETTINGS_BIND_DEFAULT); g_settings_bind ( settings, "task-vpane-position", task_shell_content->priv->paned, "vposition", G_SETTINGS_BIND_DEFAULT); g_object_unref (settings); /* Finally load the view instance */ view_instance = e_shell_view_get_view_instance (shell_view); gal_view_instance_load (view_instance); /* Show everything known by default */ e_cal_model_set_time_range (e_cal_base_shell_content_get_model (cal_base_shell_content), 0, 0); }
static void memo_shell_content_constructed (GObject *object) { EMemoShellContentPrivate *priv; EShell *shell; EShellView *shell_view; EShellContent *shell_content; EShellTaskbar *shell_taskbar; EShellWindow *shell_window; ESourceRegistry *registry; GalViewInstance *view_instance; GtkTargetList *target_list; GtkTargetEntry *targets; GtkWidget *container; GtkWidget *widget; gint n_targets; priv = E_MEMO_SHELL_CONTENT_GET_PRIVATE (object); /* Chain up to parent's constructed() method. */ G_OBJECT_CLASS (e_memo_shell_content_parent_class)->constructed (object); shell_content = E_SHELL_CONTENT (object); shell_view = e_shell_content_get_shell_view (shell_content); shell_taskbar = e_shell_view_get_shell_taskbar (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); priv->memo_model = e_cal_model_memos_new (registry); /* Build content widgets. */ container = GTK_WIDGET (object); widget = e_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (container), widget); priv->paned = g_object_ref (widget); gtk_widget_show (widget); g_object_bind_property ( object, "orientation", widget, "orientation", G_BINDING_SYNC_CREATE); container = priv->paned; widget = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN); gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, FALSE); gtk_widget_show (widget); container = widget; widget = e_memo_table_new (shell_view, priv->memo_model); gtk_container_add (GTK_CONTAINER (container), widget); priv->memo_table = g_object_ref (widget); gtk_widget_show (widget); container = priv->paned; widget = e_cal_component_preview_new (); gtk_widget_show (widget); g_signal_connect_swapped ( widget, "status-message", G_CALLBACK (e_shell_taskbar_set_message), shell_taskbar); widget = e_preview_pane_new (E_WEB_VIEW (widget)); gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, FALSE); priv->preview_pane = g_object_ref (widget); gtk_widget_show (widget); g_object_bind_property ( object, "preview-visible", widget, "visible", G_BINDING_SYNC_CREATE); target_list = gtk_target_list_new (NULL, 0); e_target_list_add_calendar_targets (target_list, 0); targets = gtk_target_table_new_from_list (target_list, &n_targets); e_table_drag_source_set ( E_TABLE (priv->memo_table), GDK_BUTTON1_MASK, targets, n_targets, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_ASK); gtk_target_table_free (targets, n_targets); gtk_target_list_unref (target_list); g_signal_connect_swapped ( priv->memo_table, "table-drag-data-get", G_CALLBACK (memo_shell_content_table_drag_data_get_cb), object); g_signal_connect_swapped ( priv->memo_table, "table-drag-data-delete", G_CALLBACK (memo_shell_content_table_drag_data_delete_cb), object); g_signal_connect_swapped ( priv->memo_table, "cursor-change", G_CALLBACK (memo_shell_content_cursor_change_cb), object); g_signal_connect_swapped ( priv->memo_table, "selection-change", G_CALLBACK (memo_shell_content_selection_change_cb), object); e_signal_connect_notify ( priv->memo_table, "notify::is-editing", G_CALLBACK (memo_shell_content_is_editing_changed_cb), shell_view); g_signal_connect_swapped ( priv->memo_model, "model-row-changed", G_CALLBACK (memo_shell_content_model_row_changed_cb), object); /* Load the view instance. */ view_instance = e_shell_view_new_view_instance (shell_view, NULL); g_signal_connect_swapped ( view_instance, "display-view", G_CALLBACK (memo_shell_content_display_view_cb), object); e_shell_view_set_view_instance (shell_view, view_instance); gal_view_instance_load (view_instance); g_object_unref (view_instance); /* Restore pane positions from the last session once * the shell view is fully initialized and visible. */ g_signal_connect ( shell_window, "shell-view-created::memos", G_CALLBACK (memo_shell_content_restore_state_cb), shell_content); }