aboutsummaryrefslogtreecommitdiff
path: root/src/slide_window.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2015-08-17 21:44:08 +0200
committerThomas White <taw@bitwiz.org.uk>2015-08-17 21:44:08 +0200
commit8d8eccb93da07559c675f053d5dce3781423b253 (patch)
tree64ede67247367cf36281d4b023b7160e04197e7e /src/slide_window.c
parent91eb4f02e4a539bc8b9fb3b475b6644717846d2b (diff)
Dispatch table for slideshow controller
Diffstat (limited to 'src/slide_window.c')
-rw-r--r--src/slide_window.c78
1 files changed, 55 insertions, 23 deletions
diff --git a/src/slide_window.c b/src/slide_window.c
index 8db26bc..d2aa95c 100644
--- a/src/slide_window.c
+++ b/src/slide_window.c
@@ -253,13 +253,6 @@ static void add_slide_sig(GSimpleAction *action, GVariant *parameter, gpointer v
}
-static void start_slideshow_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
-{
- SlideWindow *sw = vp;
- sw->show = try_start_slideshow(sw, sw->p);
-}
-
-
static gint export_pdf_response_sig(GtkWidget *d, gint response,
SlideWindow *sw)
{
@@ -305,12 +298,6 @@ static void exportpdf_sig(GSimpleAction *action, GVariant *parameter,
}
-void slidewindow_slideshow_ended(SlideWindow *sw)
-{
- sw->show = NULL;
-}
-
-
void slidewindow_notes_closed(SlideWindow *sw)
{
sw->notes = NULL;
@@ -335,13 +322,13 @@ void change_edit_slide(SlideWindow *sw, struct slide *np)
}
-void change_slide_first(SlideWindow *sw)
+static void change_slide_first(SlideWindow *sw)
{
change_edit_slide(sw, sw->p->slides[0]);
}
-void change_slide_backwards(SlideWindow *sw)
+static void change_slide_backwards(SlideWindow *sw)
{
int cur_slide_number;
@@ -352,7 +339,7 @@ void change_slide_backwards(SlideWindow *sw)
}
-void change_slide_forwards(SlideWindow *sw)
+static void change_slide_forwards(SlideWindow *sw)
{
int cur_slide_number;
@@ -363,7 +350,7 @@ void change_slide_forwards(SlideWindow *sw)
}
-void change_slide_last(SlideWindow *sw)
+static void change_slide_last(SlideWindow *sw)
{
change_edit_slide(sw, sw->p->slides[sw->p->num_slides-1]);
}
@@ -434,12 +421,6 @@ void slidewindow_redraw(SlideWindow *sw)
}
-struct slide *slidewindow_get_slide(SlideWindow *sw)
-{
- return sw->cur_slide;
-}
-
-
void update_titlebar(struct presentation *p)
{
get_titlebar_string(p);
@@ -465,6 +446,57 @@ static gboolean close_sig(GtkWidget *w, SlideWindow *sw)
}
+static void ss_end_show(SlideShow *ss, void *vp)
+{
+ SlideWindow *sw = vp;
+ sw->show = NULL;
+}
+
+
+static void ss_next_slide(SlideShow *ss, void *vp)
+{
+ SlideWindow *sw = vp;
+ change_slide_forwards(sw);
+}
+
+
+static void ss_prev_slide(SlideShow *ss, void *vp)
+{
+ SlideWindow *sw = vp;
+ change_slide_backwards(sw);
+}
+
+
+static void ss_changed_link(SlideShow *ss, void *vp)
+{
+ SlideWindow *sw = vp;
+ slidewindow_redraw(sw);
+}
+
+
+static struct slide *ss_cur_slide(SlideShow *ss, void *vp)
+{
+ SlideWindow *sw = vp;
+ return sw->cur_slide;
+}
+
+
+static void start_slideshow_sig(GSimpleAction *action, GVariant *parameter,
+ gpointer vp)
+{
+ SlideWindow *sw = vp;
+ struct sscontrolfuncs ssc;
+
+ ssc.next_slide = ss_next_slide;
+ ssc.prev_slide = ss_prev_slide;
+ ssc.current_slide = ss_cur_slide;
+ ssc.changed_link = ss_changed_link;
+ ssc.end_show = ss_end_show;
+
+ sw->show = try_start_slideshow(sw->p, ssc, sw);
+}
+
+
static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event,
SlideWindow *sw)
{