window: replace New Event with Today button
As Lapo rightfully explain, providing a button there for creating a new event is way to prominently and might divert users of the intended click on a cell behavior to create an event. New event will be also accessible from the hamburger icon on the left of the header-bar and Ctrl-N key shortcut. Also as Lapo suggestion Today button fall better on the header bar than between the navigation buttons.
This commit is contained in:
+1
-23
@@ -37,28 +37,6 @@
|
|||||||
<property name="position">0</property>
|
<property name="position">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="today_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="focus_on_click">False</property>
|
|
||||||
<style>
|
|
||||||
<class name="nav-button"/>
|
|
||||||
</style>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="today_label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="label" translatable="yes">Today</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="forward_button">
|
<object class="GtkButton" id="forward_button">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -78,7 +56,7 @@
|
|||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="position">2</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
GtkWidget *back_button;
|
GtkWidget *back_button;
|
||||||
GtkWidget *today_button;
|
|
||||||
GtkWidget *forward_button;
|
GtkWidget *forward_button;
|
||||||
|
|
||||||
GtkWidget *left_label;
|
GtkWidget *left_label;
|
||||||
@@ -89,7 +88,6 @@ gcal_nav_bar_class_init (GcalNavBarClass *klass)
|
|||||||
|
|
||||||
/* Bind internals widgets */
|
/* Bind internals widgets */
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, back_button);
|
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, back_button);
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, today_button);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, forward_button);
|
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, forward_button);
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, left_label);
|
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, left_label);
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, right_label);
|
gtk_widget_class_bind_template_child_private (widget_class, GcalNavBar, right_label);
|
||||||
@@ -176,15 +174,6 @@ gcal_nav_bar_get_prev_button (GcalNavBar *nav_bar)
|
|||||||
return priv->back_button;
|
return priv->back_button;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget*
|
|
||||||
gcal_nav_bar_get_today_button (GcalNavBar *nav_bar)
|
|
||||||
{
|
|
||||||
GcalNavBarPrivate *priv;
|
|
||||||
|
|
||||||
priv = gcal_nav_bar_get_instance_private (nav_bar);
|
|
||||||
return priv->today_button;
|
|
||||||
}
|
|
||||||
|
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
gcal_nav_bar_get_next_button (GcalNavBar *nav_bar)
|
gcal_nav_bar_get_next_button (GcalNavBar *nav_bar)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,8 +50,6 @@ GtkWidget* gcal_nav_bar_new (void);
|
|||||||
|
|
||||||
GtkWidget* gcal_nav_bar_get_prev_button (GcalNavBar *nav_bar);
|
GtkWidget* gcal_nav_bar_get_prev_button (GcalNavBar *nav_bar);
|
||||||
|
|
||||||
GtkWidget* gcal_nav_bar_get_today_button (GcalNavBar *nav_bar);
|
|
||||||
|
|
||||||
GtkWidget* gcal_nav_bar_get_next_button (GcalNavBar *nav_bar);
|
GtkWidget* gcal_nav_bar_get_next_button (GcalNavBar *nav_bar);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
+10
-13
@@ -66,7 +66,7 @@ typedef struct
|
|||||||
GtkWidget *popover; /* short-lived */
|
GtkWidget *popover; /* short-lived */
|
||||||
|
|
||||||
/* header_bar widets */
|
/* header_bar widets */
|
||||||
GtkWidget *new_button;
|
GtkWidget *today_button;
|
||||||
GtkWidget *search_entry;
|
GtkWidget *search_entry;
|
||||||
GtkWidget *views_switcher;
|
GtkWidget *views_switcher;
|
||||||
|
|
||||||
@@ -251,7 +251,7 @@ date_updated (GtkButton *button,
|
|||||||
|
|
||||||
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
||||||
|
|
||||||
move_today = gcal_nav_bar_get_today_button (GCAL_NAV_BAR (priv->nav_bar)) == (GtkWidget*) button;
|
move_today = priv->today_button == (GtkWidget*) button;
|
||||||
move_back = gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)) == (GtkWidget*) button;
|
move_back = gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)) == (GtkWidget*) button;
|
||||||
|
|
||||||
if (move_today)
|
if (move_today)
|
||||||
@@ -887,11 +887,8 @@ gcal_window_constructed (GObject *object)
|
|||||||
priv->header_bar = gtk_header_bar_new ();
|
priv->header_bar = gtk_header_bar_new ();
|
||||||
|
|
||||||
/* header_bar: new */
|
/* header_bar: new */
|
||||||
priv->new_button = gtk_button_new_with_label (_("New Event"));
|
priv->today_button = gtk_button_new_with_label (_("Today"));
|
||||||
gtk_style_context_add_class (
|
gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->header_bar), priv->today_button);
|
||||||
gtk_widget_get_style_context (priv->new_button),
|
|
||||||
"suggested-action");
|
|
||||||
gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->header_bar), priv->new_button);
|
|
||||||
|
|
||||||
priv->views_switcher = gtk_stack_switcher_new ();
|
priv->views_switcher = gtk_stack_switcher_new ();
|
||||||
g_object_ref_sink (priv->views_switcher);
|
g_object_ref_sink (priv->views_switcher);
|
||||||
@@ -1011,8 +1008,6 @@ gcal_window_constructed (GObject *object)
|
|||||||
g_signal_connect (object, "key-press-event",
|
g_signal_connect (object, "key-press-event",
|
||||||
G_CALLBACK (key_pressed), object);
|
G_CALLBACK (key_pressed), object);
|
||||||
|
|
||||||
g_signal_connect_swapped (priv->new_button, "clicked",
|
|
||||||
G_CALLBACK (gcal_window_new_event), object);
|
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
{
|
{
|
||||||
if (priv->views[i] != NULL)
|
if (priv->views[i] != NULL)
|
||||||
@@ -1031,10 +1026,12 @@ gcal_window_constructed (GObject *object)
|
|||||||
|
|
||||||
g_signal_connect (priv->views_stack, "notify::visible-child",
|
g_signal_connect (priv->views_stack, "notify::visible-child",
|
||||||
G_CALLBACK (view_changed), object);
|
G_CALLBACK (view_changed), object);
|
||||||
|
|
||||||
|
g_signal_connect (priv->today_button, "clicked",
|
||||||
|
G_CALLBACK (date_updated), object);
|
||||||
|
|
||||||
g_signal_connect (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)),
|
g_signal_connect (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)),
|
||||||
"clicked", G_CALLBACK (date_updated), object);
|
"clicked", G_CALLBACK (date_updated), object);
|
||||||
g_signal_connect (gcal_nav_bar_get_today_button (GCAL_NAV_BAR (priv->nav_bar)),
|
|
||||||
"clicked", G_CALLBACK (date_updated), object);
|
|
||||||
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),
|
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),
|
||||||
"clicked", G_CALLBACK (date_updated), object);
|
"clicked", G_CALLBACK (date_updated), object);
|
||||||
}
|
}
|
||||||
@@ -1177,7 +1174,7 @@ gcal_window_search_toggled (GObject *object,
|
|||||||
g_debug ("Entering search mode");
|
g_debug ("Entering search mode");
|
||||||
|
|
||||||
/* update headder_bar widget */
|
/* update headder_bar widget */
|
||||||
gtk_widget_hide (priv->new_button);
|
gtk_widget_hide (priv->today_button);
|
||||||
gtk_header_bar_set_custom_title (GTK_HEADER_BAR (priv->header_bar),
|
gtk_header_bar_set_custom_title (GTK_HEADER_BAR (priv->header_bar),
|
||||||
NULL);
|
NULL);
|
||||||
/* _prepare_for_search */
|
/* _prepare_for_search */
|
||||||
@@ -1186,7 +1183,7 @@ gcal_window_search_toggled (GObject *object,
|
|||||||
{
|
{
|
||||||
g_debug ("Leaving search mode");
|
g_debug ("Leaving search mode");
|
||||||
/* update header_bar */
|
/* update header_bar */
|
||||||
gtk_widget_show (priv->new_button);
|
gtk_widget_show (priv->today_button);
|
||||||
gtk_header_bar_set_custom_title (GTK_HEADER_BAR (priv->header_bar),
|
gtk_header_bar_set_custom_title (GTK_HEADER_BAR (priv->header_bar),
|
||||||
priv->views_switcher);
|
priv->views_switcher);
|
||||||
/* return to last active_view */
|
/* return to last active_view */
|
||||||
|
|||||||
Reference in New Issue
Block a user