[recipes] cooking page: Manage sensivitiy of buttons
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] cooking page: Manage sensivitiy of buttons
- Date: Wed, 8 Feb 2017 14:08:16 +0000 (UTC)
commit 283a822109dd2b0bd1986045512094f5cddc83d1
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Feb 7 23:19:30 2017 -0500
cooking page: Manage sensivitiy of buttons
We should make buttons insensitive when they don't do anything.
src/gr-cooking-page.c | 21 +++++++++++++++++++++
src/gr-cooking-page.ui | 4 ++--
2 files changed, 23 insertions(+), 2 deletions(-)
---
diff --git a/src/gr-cooking-page.c b/src/gr-cooking-page.c
index afcf82e..bc46517 100644
--- a/src/gr-cooking-page.c
+++ b/src/gr-cooking-page.c
@@ -41,6 +41,8 @@ struct _GrCookingPage
GtkWidget *prev_revealer;
GtkWidget *close_revealer;
GtkWidget *cooking_view;
+ GtkWidget *prev_step_button;
+ GtkWidget *next_step_button;
GrRecipe *recipe;
@@ -127,6 +129,19 @@ set_cooking_overlay_count (int count)
}
static void
+update_steppers (GrCookingPage *page)
+{
+ int step;
+ int n_steps;
+
+ step = gr_cooking_view_get_step (GR_COOKING_VIEW (page->cooking_view));
+ n_steps = gr_cooking_view_get_n_steps (GR_COOKING_VIEW (page->cooking_view));
+
+ gtk_widget_set_sensitive (page->prev_step_button, step - 1 >= 0);
+ gtk_widget_set_sensitive (page->next_step_button, step + 1 <= n_steps - 1);
+}
+
+static void
set_cooking (GrCookingPage *page,
gboolean cooking)
{
@@ -154,6 +169,7 @@ set_cooking (GrCookingPage *page,
}
gr_cooking_view_set_step (GR_COOKING_VIEW (page->cooking_view), 0);
+ update_steppers (page);
gr_window_set_fullscreen (GR_WINDOW (window), TRUE);
}
@@ -164,6 +180,7 @@ set_cooking (GrCookingPage *page,
}
gr_window_show_recipe (GR_WINDOW (window), page->recipe);
+ update_steppers (page);
gr_window_set_fullscreen (GR_WINDOW (window), FALSE);
}
@@ -182,6 +199,7 @@ prev_step (GrCookingPage *page)
step = gr_cooking_view_get_step (GR_COOKING_VIEW (page->cooking_view));
gr_cooking_view_set_step (GR_COOKING_VIEW (page->cooking_view), step - 1);
+ update_steppers (page);
}
static void
@@ -191,6 +209,7 @@ next_step (GrCookingPage *page)
step = gr_cooking_view_get_step (GR_COOKING_VIEW (page->cooking_view));
gr_cooking_view_set_step (GR_COOKING_VIEW (page->cooking_view), step + 1);
+ update_steppers (page);
}
@@ -371,6 +390,8 @@ gr_cooking_page_class_init (GrCookingPageClass *klass)
gtk_widget_class_bind_template_child (widget_class, GrCookingPage, next_revealer);
gtk_widget_class_bind_template_child (widget_class, GrCookingPage, close_revealer);
gtk_widget_class_bind_template_child (widget_class, GrCookingPage, event_box);
+ gtk_widget_class_bind_template_child (widget_class, GrCookingPage, prev_step_button);
+ gtk_widget_class_bind_template_child (widget_class, GrCookingPage, next_step_button);
gtk_widget_class_bind_template_callback (widget_class, prev_step);
gtk_widget_class_bind_template_callback (widget_class, next_step);
diff --git a/src/gr-cooking-page.ui b/src/gr-cooking-page.ui
index 12ba9d9..371c0eb 100644
--- a/src/gr-cooking-page.ui
+++ b/src/gr-cooking-page.ui
@@ -17,7 +17,7 @@
<class name="osd"/>
</style>
<child>
- <object class="GtkButton">
+ <object class="GtkButton" id="prev_step_button">
<property name="visible">1</property>
<signal name="clicked" handler="prev_step" swapped="yes"/>
<style>
@@ -67,7 +67,7 @@
<property name="valign">center</property>
<property name="transition-type">crossfade</property>
<child>
- <object class="GtkButton">
+ <object class="GtkButton" id="next_step_button">
<property name="visible">1</property>
<signal name="clicked" handler="next_step" swapped="yes"/>
<style>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]