gcal-nav-bar: removed #GcalNavBar:move signal

Use back/forward buttons :clicked signal
This commit is contained in:
Erick Pérez Castellanos
2014-12-04 17:10:21 -05:00
parent 72a4981965
commit 0177641993
4 changed files with 39 additions and 57 deletions
+18 -39
View File
@@ -39,15 +39,6 @@ enum
PROP_RIGHT_HEADER
};
/* Signal IDs */
enum
{
MOVE,
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL];
static void gcal_nav_bar_set_property (GObject *object,
guint property_id,
const GValue *value,
@@ -58,9 +49,6 @@ static void gcal_nav_bar_get_property (GObject *object
GValue *value,
GParamSpec *pspec);
static void gcal_nav_bar_btn_clicked (GtkButton *button,
gpointer user_data);
G_DEFINE_TYPE(GcalNavBar, gcal_nav_bar, GTK_TYPE_GRID)
static void
@@ -93,17 +81,6 @@ gcal_nav_bar_class_init (GcalNavBarClass *klass)
G_PARAM_CONSTRUCT |
G_PARAM_READWRITE));
signals[MOVE] = g_signal_new ("move",
GCAL_TYPE_NAV_BAR,
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GcalNavBarClass,
move),
NULL, NULL,
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE,
1,
G_TYPE_BOOLEAN);
widget_class = GTK_WIDGET_CLASS (klass);
/* Setup the template GtkBuilder xml for this class */
@@ -115,9 +92,6 @@ gcal_nav_bar_class_init (GcalNavBarClass *klass)
gtk_widget_class_bind_child (widget_class, GcalNavBarPrivate, left_label);
gtk_widget_class_bind_child (widget_class, GcalNavBarPrivate, right_label);
/* Bind callbacks */
gtk_widget_class_bind_callback (widget_class, gcal_nav_bar_btn_clicked);
g_type_class_add_private ((gpointer)klass, sizeof (GcalNavBarPrivate));
}
@@ -182,19 +156,6 @@ gcal_nav_bar_get_property (GObject *object,
}
}
static void
gcal_nav_bar_btn_clicked (GtkButton *button,
gpointer user_data)
{
GcalNavBarPrivate *priv;
priv = GCAL_NAV_BAR (user_data)->priv;
if ((GtkWidget*) button == priv->back_button)
g_signal_emit (GCAL_NAV_BAR (user_data), signals[MOVE], 0, FALSE);
else
g_signal_emit (GCAL_NAV_BAR (user_data), signals[MOVE], 0, TRUE);
}
/* Public API */
/**
* gcal_nav_bar_new:
@@ -208,3 +169,21 @@ gcal_nav_bar_new (void)
{
return g_object_new (GCAL_TYPE_NAV_BAR, NULL);
}
GtkWidget*
gcal_nav_bar_get_prev_button (GcalNavBar *nav_bar)
{
GcalNavBarPrivate *priv;
priv = nav_bar->priv;
return priv->back_button;
}
GtkWidget*
gcal_nav_bar_get_next_button (GcalNavBar *nav_bar)
{
GcalNavBarPrivate *priv;
priv = nav_bar->priv;
return priv->forward_button;
}
+4 -3
View File
@@ -46,15 +46,16 @@ struct _GcalNavBar
struct _GcalNavBarClass
{
GtkGridClass parent_class;
/* signals */
void (*move) (GcalNavBar *nav_bar, gboolean forward);
};
GType gcal_nav_bar_get_type (void);
GtkWidget* gcal_nav_bar_new (void);
GtkWidget* gcal_nav_bar_get_prev_button (GcalNavBar *nav_bar);
GtkWidget* gcal_nav_bar_get_next_button (GcalNavBar *nav_bar);
G_END_DECLS
#endif /* __GCAL_NAV_BAR_H__ */
+17 -13
View File
@@ -112,8 +112,7 @@ static void gcal_window_search_toggled (GObject *o
static void gcal_window_search_changed (GtkEditable *editable,
gpointer user_data);
static void gcal_window_view_updated (GcalNavBar *nav_bar,
gboolean forward,
static void gcal_window_view_updated (GtkButton *buttton,
gpointer user_data);
static void gcal_window_set_active_view (GcalWindow *window,
@@ -342,8 +341,11 @@ gcal_window_constructed (GObject *object)
G_CALLBACK (gcal_window_search_toggled), object);
g_signal_connect (priv->search_entry, "changed",
G_CALLBACK (gcal_window_search_changed), object);
g_signal_connect (priv->nav_bar, "move",
G_CALLBACK (gcal_window_view_updated), object);
g_signal_connect (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)),
"clicked", G_CALLBACK (gcal_window_view_updated), object);
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),
"clicked", G_CALLBACK (gcal_window_view_updated), object);
gtk_container_add (GTK_CONTAINER (object), priv->main_box);
gtk_widget_show_all (priv->main_box);
@@ -532,19 +534,21 @@ gcal_window_search_changed (GtkEditable *editable,
}
static void
gcal_window_view_updated (GcalNavBar *nav_bar,
gboolean forward,
gcal_window_view_updated (GtkButton *button,
gpointer user_data)
{
/* FIXME: reenable views updating */
/* GcalWindowPrivate *priv; */
/* icaltimetype *first_day; */
/* icaltimetype *last_day; */
GcalWindowPrivate *priv;
priv = GCAL_WINDOW (user_data)->priv;
if (! forward)
g_debug ("Moved back");
if (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)) ==
(GtkWidget*) button)
{
g_debug ("Moved back");
}
else
g_debug ("Moved forward");
{
g_debug ("Moved forward");
}
/* FIXME: reenable views updating */
/* priv = GCAL_WINDOW (user_data)->priv; */
-2
View File
@@ -23,7 +23,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="gcal_nav_bar_btn_clicked" object="GcalNavBar" after="yes" swapped="no" />
<style>
<class name="nav-button"/>
</style>
@@ -46,7 +45,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="gcal_nav_bar_btn_clicked" object="GcalNavBar" after="yes" swapped="no" />
<style>
<class name="nav-button"/>
</style>