[gnome-calendar] Added initial changes to GcalWindow
- From: Erick Pérez Castellanos <erickpc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] Added initial changes to GcalWindow
- Date: Thu, 4 Dec 2014 22:18:16 +0000 (UTC)
commit d8e902ee0a6ed14f6ef5d8243392bc3d68556259
Author: Erick Pérez Castellanos <erick red gmail com>
Date: Wed May 22 13:39:12 2013 -0400
Added initial changes to GcalWindow
Replaced GcalToolbar for GdHeaderBar
Commented out code for ensure building
src/Makefile.am | 2 +
src/gcal-window.c | 289 +++++++++++++++++++++--------------------------------
2 files changed, 114 insertions(+), 177 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 2b14da0..1f2fc7f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,6 +3,7 @@ AM_CPPFLAGS = \
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
-DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\" \
-DUI_DATA_DIR=\""$(pkgdatadir)/style"\" \
+ -I$(top_srcdir)/libgd \
$(MAINTAINER_COMPILER_FLAGS) \
-Wall \
-g -O0 \
@@ -66,6 +67,7 @@ gnome_calendar_LDFLAGS = \
gnome_calendar_LDADD = \
-lm \
+ $(top_builddir)/libgd/libgd.la \
$(CALENDAR_LIBS)
ENUM_TYPES = \
diff --git a/src/gcal-window.c b/src/gcal-window.c
index c43c3fd..8bce504 100644
--- a/src/gcal-window.c
+++ b/src/gcal-window.c
@@ -30,9 +30,10 @@
#include "gcal-event-widget.h"
#include "gcal-edit-dialog.h"
#include "gcal-enum-types.h"
-#include "gtk-notification.h"
#include "gcal-event-overlay.h"
+#include <libgd/gd.h>
+
#include <glib/gi18n.h>
#include <clutter/clutter.h>
#include <clutter-gtk/clutter-gtk.h>
@@ -41,17 +42,15 @@
struct _GcalWindowPrivate
{
- ClutterActor *toolbar_actor;
- ClutterActor *searchbar_actor;
-
ClutterActor *contents_actor;
- ClutterActor *notebook_actor;
+ ClutterActor *box_actor;
ClutterActor *sources_actor;
ClutterActor *notification_actor;
ClutterActor *new_event_actor;
- GtkWidget *notebook;
+ GtkWidget *header_bar;
+ GtkWidget *views_stack;
GtkWidget *sources_view;
GtkWidget *views [5];
GtkWidget *edit_dialog;
@@ -89,10 +88,6 @@ static void gcal_window_get_property (GObject *o
GValue *value,
GParamSpec *pspec);
-static void gcal_window_stage_notify_cb (ClutterActor *actor,
- GParamSpec *pspec,
- gpointer user_data);
-
static GcalManager* gcal_window_get_manager (GcalWindow *window);
static void gcal_window_set_active_view (GcalWindow *window,
@@ -147,7 +142,7 @@ static void gcal_window_event_created (GcalManager *m
static void gcal_window_event_activated (GcalEventWidget *event_widget,
gpointer user_data);
-static void gcal_window_remove_event (GtkNotification *notification,
+static void gcal_window_remove_event (GdNotification *notification,
gpointer user_data);
static void gcal_window_undo_remove_event (GtkButton *button,
@@ -246,6 +241,10 @@ gcal_window_constructed (GObject *object)
ClutterActor *stage;
GtkWidget *holder;
+ /* FIXME: demo code */
+ GtkWidget *prev_button;
+ GtkWidget *search_button;
+
GtkStyleContext *context;
if (G_OBJECT_CLASS (gcal_window_parent_class)->constructed != NULL)
@@ -263,95 +262,57 @@ gcal_window_constructed (GObject *object)
gtk_container_add (GTK_CONTAINER (object), embed);
stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (embed));
- /* toolbar_actor */
- priv->toolbar_actor = gcal_toolbar_new ();
- clutter_actor_add_child (stage, priv->toolbar_actor);
- clutter_actor_set_position (priv->toolbar_actor, 0, 0);
- clutter_actor_add_constraint_with_name (
- priv->toolbar_actor,
- "width-bind",
- clutter_bind_constraint_new (stage,
- CLUTTER_BIND_WIDTH,
- 0.0));
-
- /* searchbar_actor */
- priv->searchbar_actor = gcal_searchbar_new ();
- clutter_actor_add_child (stage, priv->searchbar_actor);
- clutter_actor_set_x (priv->searchbar_actor, 0);
- clutter_actor_add_constraint_with_name (
- priv->searchbar_actor,
- "width-bind",
- clutter_bind_constraint_new (stage,
- CLUTTER_BIND_WIDTH,
- 0.0));
- clutter_actor_add_constraint_with_name (
- priv->searchbar_actor,
- "height-bind",
- clutter_bind_constraint_new (priv->toolbar_actor,
- CLUTTER_BIND_HEIGHT,
- 0.0));
- clutter_actor_add_constraint_with_name (
- priv->searchbar_actor,
- "bottom-snap",
- clutter_snap_constraint_new (priv->toolbar_actor,
- CLUTTER_SNAP_EDGE_BOTTOM,
- CLUTTER_SNAP_EDGE_TOP,
- 0.0));
/* contents_actor */
priv->contents_actor = clutter_actor_new ();
- clutter_actor_set_layout_manager (
- priv->contents_actor,
- clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER,
- CLUTTER_BIN_ALIGNMENT_CENTER));
- clutter_actor_set_x (priv->contents_actor, 0);
clutter_actor_add_constraint_with_name (
priv->contents_actor,
- "width-bind",
+ "size-bind",
clutter_bind_constraint_new (stage,
- CLUTTER_BIND_WIDTH,
- 0.0));
- clutter_actor_add_constraint_with_name (
- priv->contents_actor,
- "y-bind",
- clutter_bind_constraint_new (
- stage,
- CLUTTER_BIND_Y,
- 0.0));
- clutter_actor_add_constraint_with_name (
- priv->contents_actor,
- "bottom-snap",
- clutter_snap_constraint_new (stage,
- CLUTTER_SNAP_EDGE_BOTTOM,
- CLUTTER_SNAP_EDGE_BOTTOM,
+ CLUTTER_BIND_SIZE,
0.0));
clutter_actor_add_child (stage, priv->contents_actor);
+ /* Gtk+ contents */
+ holder = gtk_grid_new ();
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (holder),
+ GTK_ORIENTATION_VERTICAL);
+
+ /* header_bar */
+ priv->header_bar = gd_header_bar_new ();
+ prev_button = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (prev_button),
+ "go-previous-symbolic");
+ gd_header_bar_pack_start (GD_HEADER_BAR (priv->header_bar), prev_button);
+ gd_header_bar_set_title (GD_HEADER_BAR (priv->header_bar), "Calendar");
+ search_button = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (search_button),
+ "edit-find-symbolic");
+ gd_header_bar_pack_end (GD_HEADER_BAR (priv->header_bar), search_button);
+
+ gtk_widget_set_hexpand (priv->header_bar, TRUE);
+ gtk_container_add (GTK_CONTAINER (holder), priv->header_bar);
/* notebook widget for holding views */
- holder = gtk_frame_new (NULL);
+ priv->views_stack = gd_stack_new ();
- priv->notebook = gtk_notebook_new ();
- gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
- gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->notebook), FALSE);
+ gtk_widget_set_vexpand (priv->views_stack, TRUE);
+ gtk_widget_set_hexpand (priv->views_stack, TRUE);
+ gtk_container_add (GTK_CONTAINER (holder), priv->views_stack);
+ gtk_widget_show_all (holder);
- gtk_widget_show (priv->notebook);
-
- gtk_container_add (GTK_CONTAINER (holder), priv->notebook);
- gtk_widget_show (holder);
-
- priv->notebook_actor = gtk_clutter_actor_new_with_contents (holder);
- g_object_set (priv->notebook_actor,
- "x-expand", TRUE,
- "y-expand", TRUE,
- "x-align", CLUTTER_ACTOR_ALIGN_FILL,
- "y-align", CLUTTER_ACTOR_ALIGN_FILL,
- NULL);
- clutter_actor_add_child (priv->contents_actor, priv->notebook_actor);
+ priv->box_actor = gtk_clutter_actor_new_with_contents (holder);
+ clutter_actor_add_constraint_with_name (
+ priv->box_actor,
+ "size-bind",
+ clutter_bind_constraint_new (stage,
+ CLUTTER_BIND_SIZE,
+ 0.0));
+ clutter_actor_add_child (priv->contents_actor, priv->box_actor);
context =
gtk_widget_get_style_context (
gtk_clutter_actor_get_widget (
- GTK_CLUTTER_ACTOR (priv->notebook_actor)));
+ GTK_CLUTTER_ACTOR (priv->box_actor)));
gtk_style_context_add_class (context, "contents");
/* sources view */
@@ -398,7 +359,7 @@ gcal_window_constructed (GObject *object)
gtk_style_context_add_class (context, "overlay");
clutter_actor_hide (priv->notification_actor);
- /* event-overlay */
+ /* new event-overlay */
priv->new_event_actor = gcal_event_overlay_new ();
g_object_set (priv->new_event_actor,
"opacity", 0,
@@ -416,37 +377,34 @@ gcal_window_constructed (GObject *object)
clutter_actor_hide (priv->new_event_actor);
/* signals connection/handling */
- g_signal_connect (stage,
- "notify::allocation",
- G_CALLBACK (gcal_window_stage_notify_cb),
- object);
-
- g_signal_connect (priv->toolbar_actor,
- "view-changed",
- G_CALLBACK (gcal_window_view_changed),
- object);
- g_signal_connect (priv->toolbar_actor,
- "sources-shown",
- G_CALLBACK (gcal_window_sources_shown),
- object);
- g_signal_connect (priv->toolbar_actor,
- "add-event",
- G_CALLBACK (gcal_window_add_event),
- object);
- g_signal_connect (priv->toolbar_actor,
- "search-events",
- G_CALLBACK (gcal_window_bring_searchbar),
- object);
-
- g_signal_connect (priv->searchbar_actor,
- "done",
- G_CALLBACK (gcal_window_hide_searchbar),
- object);
- g_signal_connect (priv->toolbar_actor,
- "back",
- G_CALLBACK (gcal_window_back_last_view),
- object);
+ /* FIXME */
+ /* g_signal_connect (priv->toolbar_actor, */
+ /* "view-changed", */
+ /* G_CALLBACK (gcal_window_view_changed), */
+ /* object); */
+ /* g_signal_connect (priv->toolbar_actor, */
+ /* "sources-shown", */
+ /* G_CALLBACK (gcal_window_sources_shown), */
+ /* object); */
+ /* g_signal_connect (priv->toolbar_actor, */
+ /* "add-event", */
+ /* G_CALLBACK (gcal_window_add_event), */
+ /* object); */
+ /* g_signal_connect (priv->toolbar_actor, */
+ /* "search-events", */
+ /* G_CALLBACK (gcal_window_bring_searchbar), */
+ /* object); */
+
+ /* g_signal_connect (priv->searchbar_actor, */
+ /* "done", */
+ /* G_CALLBACK (gcal_window_hide_searchbar), */
+ /* object); */
+
+ /* g_signal_connect (priv->toolbar_actor, */
+ /* "back", */
+ /* G_CALLBACK (gcal_window_back_last_view), */
+ /* object); */
g_signal_connect (priv->new_event_actor,
"cancelled",
@@ -490,8 +448,11 @@ gcal_window_set_property (GObject *object,
switch (property_id)
{
case PROP_ACTIVE_VIEW:
- gcal_toolbar_set_active_view (GCAL_TOOLBAR (priv->toolbar_actor),
- g_value_get_enum (value));
+ /* FIXME */
+ /* gcal_toolbar_set_active_view (GCAL_TOOLBAR (priv->toolbar_actor), */
+ /* g_value_get_enum (value)); */
+ gcal_window_set_active_view (GCAL_WINDOW (object),
+ g_value_get_enum (value));
return;
case PROP_ACTIVE_DATE:
priv->active_date = g_value_dup_boxed (value);
@@ -524,24 +485,6 @@ gcal_window_get_property (GObject *object,
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
-static void
-gcal_window_stage_notify_cb (ClutterActor *actor,
- GParamSpec *pspec,
- gpointer user_data)
-{
- GcalWindowPrivate *priv;
- ClutterConstraint *constraint;
-
- priv = GCAL_WINDOW (user_data)->priv;
-
- /* Updating constraints */
- constraint = clutter_actor_get_constraint (priv->contents_actor,
- "y-bind");
- clutter_bind_constraint_set_offset (
- CLUTTER_BIND_CONSTRAINT (constraint),
- clutter_actor_get_height (priv->toolbar_actor));
-}
-
static GcalManager*
gcal_window_get_manager (GcalWindow *window)
{
@@ -556,7 +499,6 @@ gcal_window_set_active_view (GcalWindow *window,
GcalWindowViewType view_type)
{
GcalWindowPrivate *priv;
- gint activated_page;
gboolean update_range;
icaltimetype *first_day;
@@ -565,12 +507,10 @@ gcal_window_set_active_view (GcalWindow *window,
g_return_if_fail (GCAL_IS_WINDOW (window));
priv = window->priv;
- if ((activated_page = gtk_notebook_page_num (GTK_NOTEBOOK (priv->notebook),
- priv->views[view_type]))
- != -1)
+ if (priv->views[view_type] != NULL)
{
- gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook),
- activated_page);
+ gd_stack_set_visible_child (GD_STACK (priv->views_stack),
+ priv->views[view_type]);
priv->active_view = view_type;
}
else
@@ -609,11 +549,10 @@ gcal_window_set_active_view (GcalWindow *window,
priv->active_view = view_type;
gtk_widget_show (priv->views[priv->active_view]);
- gtk_notebook_set_current_page (
- GTK_NOTEBOOK (priv->notebook),
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- priv->views[priv->active_view],
- NULL));
+ gtk_container_add (GTK_CONTAINER (priv->views_stack),
+ priv->views[view_type]);
+ gd_stack_set_visible_child (GD_STACK (priv->views_stack),
+ priv->views[view_type]);
}
g_object_notify (G_OBJECT (window), "active-view");
@@ -781,30 +720,32 @@ static void
gcal_window_bring_searchbar (GcalToolbar *toolbar_actor,
gpointer user_data)
{
- GcalWindowPrivate *priv;
+ /* GcalWindowPrivate *priv; */
- priv = GCAL_WINDOW (user_data)->priv;
+ /* priv = GCAL_WINDOW (user_data)->priv; */
- clutter_actor_save_easing_state (priv->toolbar_actor);
- clutter_actor_set_y (priv->toolbar_actor,
- clutter_actor_get_height (priv->toolbar_actor));
- clutter_actor_set_easing_duration (priv->toolbar_actor, 500);
- clutter_actor_restore_easing_state (priv->toolbar_actor);
+ /* FIXME */
+ /* clutter_actor_save_easing_state (priv->toolbar_actor); */
+ /* clutter_actor_set_y (priv->toolbar_actor, */
+ /* clutter_actor_get_height (priv->toolbar_actor)); */
+ /* clutter_actor_set_easing_duration (priv->toolbar_actor, 500); */
+ /* clutter_actor_restore_easing_state (priv->toolbar_actor); */
}
static void
gcal_window_hide_searchbar (GtkWidget *button,
gpointer user_data)
{
- GcalWindowPrivate *priv;
+ /* GcalWindowPrivate *priv; */
- priv = GCAL_WINDOW (user_data)->priv;
+ /* priv = GCAL_WINDOW (user_data)->priv; */
- clutter_actor_save_easing_state (priv->toolbar_actor);
- clutter_actor_set_y (priv->toolbar_actor,
- 0);
- clutter_actor_set_easing_duration (priv->toolbar_actor, 500);
- clutter_actor_restore_easing_state (priv->toolbar_actor);
+ /* FIXME */
+ /* clutter_actor_save_easing_state (priv->toolbar_actor); */
+ /* clutter_actor_set_y (priv->toolbar_actor, */
+ /* 0); */
+ /* clutter_actor_set_easing_duration (priv->toolbar_actor, 500); */
+ /* clutter_actor_restore_easing_state (priv->toolbar_actor); */
/*clutter_actor_save_easing_state (priv->searchbar_actor);*/
/*clutter_actor_set_y (priv->searchbar_actor, 0);*/
/*clutter_actor_set_easing_duration (priv->searchbar_actor, 500);*/
@@ -820,19 +761,13 @@ gcal_window_back_last_view (GtkWidget *widget,
gpointer user_data)
{
GcalWindowPrivate *priv;
- gint activated_page;
priv = GCAL_WINDOW (user_data)->priv;
- gcal_toolbar_set_mode (GCAL_TOOLBAR (priv->toolbar_actor),
- GCAL_TOOLBAR_OVERVIEW);
-
- if ((activated_page = gtk_notebook_page_num (GTK_NOTEBOOK (priv->notebook),
- priv->views[priv->active_view]))
- != -1)
+ if (priv->views[priv->active_view] != NULL)
{
- gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook),
- activated_page);
+ gd_stack_set_visible_child (GD_STACK (priv->views_stack),
+ priv->views[priv->active_view]);
}
else
{
@@ -843,9 +778,9 @@ gcal_window_back_last_view (GtkWidget *widget,
static void
gcal_window_sources_row_activated (GtkTreeView *tree_view,
- GtkTreePath *path,
- GtkTreeViewColumn *column,
- gpointer user_data)
+ GtkTreePath *path,
+ GtkTreeViewColumn *column,
+ gpointer user_data)
{
GcalWindowPrivate *priv;
GtkTreeIter iter;
@@ -1056,7 +991,7 @@ gcal_window_event_activated (GcalEventWidget *event_widget,
}
static void
-gcal_window_remove_event (GtkNotification *notification,
+gcal_window_remove_event (GdNotification *notification,
gpointer user_data)
{
GcalWindowPrivate *priv;
@@ -1371,7 +1306,7 @@ gcal_window_edit_dialog_responded (GtkDialog *dialog,
break;
case GCAL_RESPONSE_DELETE_EVENT:
/* delete the event */
- noty = gtk_notification_new ();
+ noty = gd_notification_new ();
grid = gtk_grid_new ();
gtk_grid_set_column_spacing (GTK_GRID (grid), 12);
gtk_container_add (GTK_CONTAINER (grid),
@@ -1486,8 +1421,8 @@ gcal_window_new_with_view (GcalApplication *app,
G_CALLBACK (gcal_window_event_created),
win);
- gcal_toolbar_set_active_view (GCAL_TOOLBAR (win->priv->toolbar_actor),
- view_type);
+ /* gcal_toolbar_set_active_view (GCAL_TOOLBAR (win->priv->toolbar_actor), */
+ /* view_type); */
return GTK_WIDGET (win);
}
@@ -1519,5 +1454,5 @@ gcal_window_hide_notification (GcalWindow *window)
noty = gtk_clutter_actor_get_contents (
GTK_CLUTTER_ACTOR (priv->notification_actor));
- gtk_notification_dismiss (GTK_NOTIFICATION (noty));
+ gd_notification_dismiss (GD_NOTIFICATION (noty));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]