aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2015-02-06 20:13:56 +0100
committerThomas White <taw@bitwiz.org.uk>2015-02-06 20:13:56 +0100
commit95c2c65355a95e1c43fa2647392a24cc6d092fc1 (patch)
treeff322152c692625907e4cc8fdbdd6c6e41544e39
parent6fc77b5fadb23a4df86a3fee283f9b24446d0a26 (diff)
Remove deprecated stuff
-rw-r--r--Makefile.am4
-rw-r--r--src/colloquium.c4
-rw-r--r--src/narrative_window.c33
-rw-r--r--src/slide_sorter.c566
-rw-r--r--src/slide_sorter.h36
-rw-r--r--src/slide_window.c52
6 files changed, 55 insertions, 640 deletions
diff --git a/Makefile.am b/Makefile.am
index 8583b99..c1bc0ed 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,7 +15,7 @@ src_colloquium_SOURCES = src/colloquium.c src/render.c \
src/frame.c src/sc_parse.c \
src/slideshow.c src/wrap.c src/sc_interp.c \
src/imagestore.c src/notes.c src/pr_clock.c \
- src/inhibit_screensaver.c src/slide_sorter.c \
+ src/inhibit_screensaver.c \
src/shape.c src/sc_editor.c src/narrative_window.c \
src/slide_window.c
@@ -24,7 +24,7 @@ INCLUDES = -Iharfatum/src
EXTRA_DIST += src/presentation.h src/render.h src/wrap.h \
src/slideshow.h src/sc_parse.h src/sc_interp.h \
src/imagestore.h src/notes.h src/pr_clock.h \
- src/inhibit_screensaver.h src/slide_sorter.h src/shape.h \
+ src/inhibit_screensaver.h src/shape.h \
src/sc_editor.h src/slide_window.h src/narrative_window.c
src/default_stylesheet.o: src/default_stylesheet.sty
diff --git a/src/colloquium.c b/src/colloquium.c
index 015a466..80909c1 100644
--- a/src/colloquium.c
+++ b/src/colloquium.c
@@ -234,10 +234,6 @@ static void colloquium_startup(GApplication *app)
" </section>"
" <section>"
" <item>"
- " <attribute name='label'>Slide sorter...</attribute>"
- " <attribute name='action'>win.slidesorter</attribute>"
- " </item>"
- " <item>"
" <attribute name='label'>Edit stylesheet...</attribute>"
" <attribute name='action'>win.stylesheet</attribute>"
" </item>"
diff --git a/src/narrative_window.c b/src/narrative_window.c
index 8f9e9cd..554dd68 100644
--- a/src/narrative_window.c
+++ b/src/narrative_window.c
@@ -246,6 +246,7 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
GtkToolItem *button;
SCBlock *stylesheets[3];
SCCallbackList *cbl;
+ GtkWidget *image;
if ( p->narrative_window != NULL ) {
fprintf(stderr, "Narrative window is already open!\n");
@@ -283,7 +284,9 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(toolbar), FALSE, FALSE, 0);
/* Fullscreen */
- button = gtk_tool_button_new(gtk_image_new_from_icon_name("view-fullscreen", GTK_ICON_SIZE_LARGE_TOOLBAR), "Start slideshow");
+ image = gtk_image_new_from_icon_name("view-fullscreen",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ button = gtk_tool_button_new(image, "Start slideshow");
gtk_actionable_set_action_name(GTK_ACTIONABLE(button),
"win.startslideshow");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
@@ -292,7 +295,9 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
/* Add slide */
- button = gtk_tool_button_new_from_stock(GTK_STOCK_ADD);
+ image = gtk_image_new_from_icon_name("add",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ button = gtk_tool_button_new(image, "Add slide");
gtk_actionable_set_action_name(GTK_ACTIONABLE(button),
"win.slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
@@ -300,20 +305,31 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
button = gtk_separator_tool_item_new();
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
- /* Change slide */
- nw->bfirst = gtk_tool_button_new_from_stock(GTK_STOCK_GOTO_FIRST);
+ /* Change slide. FIXME: LTR vs RTL */
+ image = gtk_image_new_from_icon_name("gtk-goto-first-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ nw->bfirst = gtk_tool_button_new(image, "First slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->bfirst));
gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->bfirst),
"win.first");
- nw->bprev = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
+
+ image = gtk_image_new_from_icon_name("gtk-go-forward-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ nw->bprev = gtk_tool_button_new(image, "Previous slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->bprev));
gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->bprev),
"win.prev");
- nw->bnext = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
+
+ image = gtk_image_new_from_icon_name("gtk-go-back-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ nw->bnext = gtk_tool_button_new(image, "Next slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->bnext));
gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->bnext),
"win.next");
- nw->blast = gtk_tool_button_new_from_stock(GTK_STOCK_GOTO_LAST);
+
+ image = gtk_image_new_from_icon_name("gtk-goto-last-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ nw->blast = gtk_tool_button_new(image, "Last slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(nw->blast));
gtk_actionable_set_action_name(GTK_ACTIONABLE(nw->blast),
"win.last");
@@ -323,8 +339,7 @@ NarrativeWindow *narrative_window_new(struct presentation *p, GApplication *app)
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_ALWAYS);
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll),
- GTK_WIDGET(nw->sceditor));
+ gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(nw->sceditor));
sc_editor_set_size(nw->sceditor, 640, 12000);
sc_editor_set_logical_size(nw->sceditor, 640.0, 12000);
diff --git a/src/slide_sorter.c b/src/slide_sorter.c
deleted file mode 100644
index 50cea68..0000000
--- a/src/slide_sorter.c
+++ /dev/null
@@ -1,566 +0,0 @@
-/*
- * slide_sorter.c
- *
- * Copyright © 2013-2014 Thomas White <taw@bitwiz.org.uk>
- *
- * This file is part of Colloquium.
- *
- * Colloquium is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <gtk/gtk.h>
-
-#include "presentation.h"
-#include "render.h"
-#include "slide_window.h"
-#include "slideshow.h"
-
-
-struct slide_sorter
-{
- GtkWidget *window;
- GtkWidget *da;
-
- int width; /* Number of slides across */
- int height; /* Number of slides vertically */
- struct presentation *p;
-
- int tw;
- int th;
- int bw;
-
- int dragging_cur_edit_slide;
- int dragging_cur_proj_slide;
-
- int selection;
- struct slide *selected_slide;
-
- int drop_here;
- int dragging;
- int dragging_in;
- int drag_preview_pending;
- int have_drag_data;
- int drag_highlight;
-};
-
-
-static gint close_slidesorter_sig(GtkWidget *w, struct presentation *p)
-{
- p->slide_sorter = NULL;
- return FALSE;
-}
-
-
-static void redraw_slidesorter(struct slide_sorter *n)
-{
- gint w, h;
- w = gtk_widget_get_allocated_width(GTK_WIDGET(n->da));
- h = gtk_widget_get_allocated_height(GTK_WIDGET(n->da));
- gtk_widget_queue_draw_area(n->da, 0, 0, w, h);
-}
-
-
-static gboolean draw_sig(GtkWidget *da, cairo_t *cr, struct slide_sorter *n)
-{
- int width, height;
- int i;
-
- width = gtk_widget_get_allocated_width(GTK_WIDGET(da));
- height = gtk_widget_get_allocated_height(GTK_WIDGET(da));
-
- /* Overall background */
- cairo_rectangle(cr, 0.0, 0.0, width, height);
- cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
- cairo_fill(cr);
-
- cairo_translate(cr, n->bw, n->bw); /* Border */
-
- for ( i=0; i<n->p->num_slides; i++ ) {
-
- int x = i % n->width;
- int y = i / n->width;
- //struct slide *s = n->p->slides[i];
-
- cairo_save(cr);
-
- cairo_translate(cr, x*(n->tw+2*n->bw), y*(n->th+2*n->bw));
-
- if ( i == n->selection ) {
-
- cairo_save(cr);
- cairo_rectangle(cr, 0.0, 0.0, n->tw+2*n->bw,
- n->th+2*n->bw);
- cairo_set_source_rgb(cr, 0.0, 0.0, 0.4);
- cairo_fill(cr);
- cairo_restore(cr);
-
- }
-
- cairo_translate(cr, n->bw, n->bw); /* Border */
- cairo_rectangle(cr, 0.0, 0.0, n->tw, n->th);
- cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
- cairo_fill_preserve(cr);
- /* FIXME */
- //cairo_set_source_surface(cr, s->rendered_thumb,
- // 0.0, 0.0);
- cairo_fill(cr);
-
- cairo_rectangle(cr, 0.5, 0.5, n->tw, n->th);
- cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
- cairo_set_line_width(cr, 1.0);
- cairo_stroke(cr);
-
- if ( n->dragging_in && (i == n->drop_here) ) {
- cairo_rectangle(cr, -1.5*n->bw, 0.0, n->bw, n->th);
- cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
- cairo_fill(cr);
- }
-
- cairo_restore(cr);
-
- }
-
- return FALSE;
-}
-
-
-static void size_sig(GtkWidget *widget, GdkRectangle *size,
- struct slide_sorter *n)
-{
- int w, h;
-
- w = gtk_widget_get_allocated_width(n->da);
- n->width = (w-2*n->bw) / (n->tw+2*n->bw);
- if ( n->width < 1 ) n->width = 1;
-
- n->height = n->p->num_slides / n->width;
-
- if ( n->p->num_slides % n->width != 0 ) n->height++;
-
- h = n->height * (n->th+2*n->bw) + 2*n->bw;
-
- gtk_widget_set_size_request(n->da, n->tw+2*n->bw, h);
-}
-
-
-static gboolean button_press_sig(GtkWidget *da, GdkEventButton *event,
- struct slide_sorter *n)
-{
- int x, y;
-
- x = (event->x - n->bw) / (n->tw + 2*n->bw);
- y = (event->y - n->bw) / (n->th + 2*n->bw);
-
- if ( (x < n->width) && (y < n->height) ) {
-
- n->selection = y*n->width + x;
-
- if ( n->selection >= n->p->num_slides ) {
- n->selection = n->p->num_slides - 1;
- }
-
- n->selected_slide = n->p->slides[n->selection];
-
- redraw_slidesorter(n);
- }
-
- return FALSE;
-}
-
-
-static gboolean motion_sig(GtkWidget *da, GdkEventMotion *event,
- struct slide_sorter *n)
-{
- if ( !n->dragging ) {
-
- GtkTargetList *list;
- GtkTargetEntry targets[1];
-
- targets[0].target = "application/vnd.colloquium-slide";
- targets[0].flags = 0;
- targets[0].info = 1;
-
- /* If we are dragging the current editor or projector slide,
- * we'd better remember to update when we're finished. */
-#if 0 /* FIXME! */
- if ( n->p->cur_edit_slide == n->selected_slide ) {
- n->dragging_cur_edit_slide = 1;
- } else {
- n->dragging_cur_edit_slide = 0;
- }
-
- if ( slideshow_slide(n->p->slideshow) == n->selected_slide ) {
- n->dragging_cur_proj_slide = 1;
- } else {
- n->dragging_cur_proj_slide = 0;
- }
-#endif
- list = gtk_target_list_new(targets, 1);
- gtk_drag_begin(da, list, GDK_ACTION_COPY | GDK_ACTION_MOVE,
- 1, (GdkEvent *)event);
- gtk_target_list_unref(list);
-
- n->dragging = 1;
- n->dragging_in = 0;
-
- }
-
- gdk_event_request_motions(event);
-
- return FALSE;
-}
-
-
-static gboolean button_release_sig(GtkWidget *da, GdkEventButton *event,
- struct slide_sorter *n)
-{
- return FALSE;
-}
-
-
-static gboolean dnd_motion(GtkWidget *widget, GdkDragContext *drag_context,
- gint xc, gint yc, guint time, struct slide_sorter *n)
-{
- GdkAtom target;
-
- /* If we haven't already requested the data, do so now */
- if ( !n->drag_preview_pending && !n->have_drag_data ) {
-
- target = gtk_drag_dest_find_target(widget, drag_context, NULL);
-
- if ( target != GDK_NONE ) {
-
- n->drag_preview_pending = 1;
- /* Note: the dnd_get and dnd_receive signals occur
- * before this call returns */
- gtk_drag_get_data(widget, drag_context, target, time);
-
- } else {
-
- n->drag_preview_pending = 0;
- gdk_drag_status(drag_context, 0, time);
-
- }
-
- }
-
- if ( n->have_drag_data ) {
-
- int x, y;
- int sw, sh;
-
- gdk_drag_status(drag_context, GDK_ACTION_MOVE, time);
- /* Draw drag box */
- n->have_drag_data = 1;
-
- sw = n->tw + 2*n->bw;
- sh = n->th + 2*n->bw;
-
- x = (xc - n->bw + sw/2) / sw;
- y = (yc - n->bw) / sh;;
-
- if ( x >= n->width ) x = n->width-1;
- if ( y >= n->height ) y = n->height-1;
-
- n->drop_here = y*n->width + x;
- if ( n->drop_here > n->p->num_slides ) {
- n->drop_here = n->p->num_slides;
- }
-
- n->dragging = 1; /* Because this might be the first signal */
- n->dragging_in = 1;
- n->dragging_cur_edit_slide = 0;
- n->dragging_cur_proj_slide = 0;
-
- redraw_slidesorter(n);
-
- }
-
- return TRUE;
-}
-
-
-
-static gboolean dnd_drop(GtkWidget *widget, GdkDragContext *drag_context,
- gint x, gint y, guint time, struct slide_sorter *n)
-{
- GdkAtom target;
-
- target = gtk_drag_dest_find_target(widget, drag_context, NULL);
-
- if ( target == GDK_NONE ) {
- gtk_drag_finish(drag_context, FALSE, FALSE, time);
- } else {
- gtk_drag_get_data(widget, drag_context, target, time);
- }
-
- return TRUE;
-}
-
-
-/* Normally, we don't need to explicitly render proj because the editor always
- * gets there first. When re-arranging slides, this might not happen */
-static void fixup_proj(struct presentation *p, struct slide *s)
-{
-// slideshow_rerender(p->slideshow); FIXME
-}
-
-
-static void dnd_receive(GtkWidget *widget, GdkDragContext *drag_context,
- gint x, gint y, GtkSelectionData *seldata,
- guint info, guint time, struct slide_sorter *n)
-{
- if ( n->drag_preview_pending ) {
-
- /* In theory: do something with the data to generate a
- * proper preview. */
-
- n->have_drag_data = 1;
- n->drag_preview_pending = 0;
- gdk_drag_status(drag_context, GDK_ACTION_MOVE, time);
-
- } else {
-
- //const char *sc;
- struct slide *s = NULL;
-
- //sc = (const char *)gtk_selection_data_get_data(seldata);
-
- n->dragging = 0;
- gtk_drag_finish(drag_context, TRUE, TRUE, time);
-
- printf("Inserting at %i\n", n->drop_here);
-
- s = add_slide(n->p, n->drop_here);
-
- if ( s != NULL ) {
-
- /* FIXME: Do something */
- //int sn = slide_number(n->p, s);
-
- //s->rendered_thumb = render_slide(s, n->tw,
- // n->p->slide_width,
- // n->p->slide_height,
- // n->p->is,
- // ISZ_THUMBNAIL, sn);
-
- /* FIXME: Transfer the notes as well */
-
- change_edit_slide(n->p->slidewindow, s);
-
- if ( n->dragging_cur_proj_slide ) {
- fixup_proj(n->p, s);
- // FIXME change_proj_slide(n->p->slideshow, s);
- }
-
- redraw_slidesorter(n);
-
- } else {
-
- fprintf(stderr, "Failed to add slide\n");
-
- }
-
-
- }
-
-}
-
-
-static void dnd_get(GtkWidget *widget, GdkDragContext *drag_context,
- GtkSelectionData *seldata, guint info, guint time,
- struct slide_sorter *n)
-{
- GdkAtom target;
-
- target = gtk_drag_dest_find_target(widget, drag_context, NULL);
-
- if ( target != GDK_NONE ) {
-
- char *sc;
- /* FIXME: packed sc */
- //sc = packed_sc(n->p->slides[n->selection]->top, n->p->ss);
- sc = NULL;
- gtk_selection_data_set(seldata, target, 8, (guchar *)sc,
- strlen(sc));
-
- }
-}
-
-
-static void dnd_leave(GtkWidget *widget, GdkDragContext *drag_context,
- guint time, struct slide_sorter *n)
-{
- n->have_drag_data = 0;
- n->dragging_in = 0;
-}
-
-
-static void dnd_end(GtkWidget *widget, GdkDragContext *drag_context,
- struct slide_sorter *n)
-{
- n->dragging = 0;
- n->dragging_in = 0;
- n->have_drag_data = 0;
- n->drag_preview_pending = 0;
-}
-
-
-static void dnd_delete(GtkWidget *widget, GdkDragContext *drag_context,
- struct slide_sorter *n)
-{
- //int same;
- int sn;
-
- sn = slide_number(n->p, n->selected_slide);
-
- //same = (gdk_drag_context_get_source_window(drag_context)
- // == gdk_drag_context_get_dest_window(drag_context));
-
- if ( sn < n->drop_here ) n->drop_here--;
-
-#if 0 /* FIXME ! */
- if ( n->p->cur_edit_slide == n->selected_slide ) {
-
- if ( same ) {
-
- /* Do nothing - will switch in dnd_receive() */
-
- } else {
-
- /* Switch to previous slide */
- int ct;
-
- if ( sn == 0 ) {
- ct = 1;
- } else {
- ct = sn - 1;
- }
-
- change_edit_slide(n->p->slidewindow, n->p->slides[ct]);
-
- }
-
- }
-
- if ( slideshow_slide(n->p->slideshow) == n->selected_slide ) {
-
- if ( same ) {
-
- /* Do nothing - will switch in dnd_receive() */
-
- } else {
-
- /* Switch to previous slide */
- int ct;
-
- if ( sn == 0 ) {
- ct = 1;
- } else {
- ct = sn - 1;
- }
-
- change_proj_slide(n->p->slideshow, n->p->slides[ct]);
-
- }
-
- }
-#endif
- delete_slide(n->p, n->selected_slide);
-}
-
-
-void open_slidesorter(struct presentation *p)
-{
- struct slide_sorter *n;
- GtkWidget *sw;
- GtkTargetEntry targets[1];
-
- if ( p->slide_sorter != NULL ) return; /* Already open */
-
- n = malloc(sizeof(struct slide_sorter));
- if ( n == NULL ) return;
- p->slide_sorter = n;
-
- n->p = p;
- n->width = 6;
- n->bw = 5;
- n->selection = 0;
- n->tw = 320;
- n->th = (p->slide_height/p->slide_width) * n->tw;
- n->drag_preview_pending = 0;
- n->have_drag_data = 0;
- n->dragging = 0;
- n->dragging_in = 0;
-
- n->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(n->window), 500, 500);
-
- n->da = gtk_drawing_area_new();
-
- sw = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
- GTK_POLICY_NEVER,
- GTK_POLICY_ALWAYS);
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), n->da);
- gtk_container_add(GTK_CONTAINER(n->window), sw);
-
- gtk_window_set_title(GTK_WINDOW(n->window), "Slide sorter");
-
- g_signal_connect(G_OBJECT(n->da), "draw", G_CALLBACK(draw_sig), n);
- g_signal_connect(G_OBJECT(n->window),
- "size-allocate", G_CALLBACK(size_sig), n);
- g_signal_connect(G_OBJECT(n->window), "destroy",
- G_CALLBACK(close_slidesorter_sig), p);
-
- g_signal_connect(G_OBJECT(n->da), "button-press-event",
- G_CALLBACK(button_press_sig), n);
- g_signal_connect(G_OBJECT(n->da), "motion-notify-event",
- G_CALLBACK(motion_sig), n);
- g_signal_connect(G_OBJECT(n->da), "button-release-event",
- G_CALLBACK(button_release_sig), n);
-
- /* Drag and drop */
- targets[0].target = "application/vnd.colloquium-slide";
- targets[0].flags = 0;
- targets[0].info = 1;
- gtk_drag_dest_set(n->da, 0, targets, 1,
- GDK_ACTION_MOVE | GDK_ACTION_COPY);
- g_signal_connect(n->da, "drag-data-received",
- G_CALLBACK(dnd_receive), n);
- g_signal_connect(n->da, "drag-data-delete", G_CALLBACK(dnd_delete), n);
- g_signal_connect(n->da, "drag-data-get", G_CALLBACK(dnd_get), n);
- g_signal_connect(n->da, "drag-motion", G_CALLBACK(dnd_motion), n);
- g_signal_connect(n->da, "drag-drop", G_CALLBACK(dnd_drop), n);
- g_signal_connect(n->da, "drag-leave", G_CALLBACK(dnd_leave), n);
- g_signal_connect(n->da, "drag-end", G_CALLBACK(dnd_end), n);
-
- gtk_widget_set_can_focus(GTK_WIDGET(n->da), TRUE);
- gtk_widget_add_events(GTK_WIDGET(n->da),
- GDK_POINTER_MOTION_HINT_MASK
- | GDK_BUTTON1_MOTION_MASK
- | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
- | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
-
- gtk_widget_show_all(n->window);
-}
diff --git a/src/slide_sorter.h b/src/slide_sorter.h
deleted file mode 100644
index 5225903..0000000
--- a/src/slide_sorter.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * slide_sorter.h
- *
- * Copyright © 2013 Thomas White <taw@bitwiz.org.uk>
- *
- * This file is part of Colloquium.
- *
- * Colloquium is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef SLIDE_SORTER_H
-#define SLIDE_SORTER_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-struct slide_sorter;
-
-extern void open_slidesorter(struct presentation *p);
-
-
-#endif /* SLIDE_SORTER_H */
diff --git a/src/slide_window.c b/src/slide_window.c
index 2f5ee98..bfa924d 100644
--- a/src/slide_window.c
+++ b/src/slide_window.c
@@ -1,7 +1,7 @@
/*
* slide_window.c
*
- * Copyright © 2013-2014 Thomas White <taw@bitwiz.org.uk>
+ * Copyright © 2013-2015 Thomas White <taw@bitwiz.org.uk>
*
* This file is part of Colloquium.
*
@@ -41,7 +41,6 @@
#include "wrap.h"
#include "notes.h"
#include "pr_clock.h"
-#include "slide_sorter.h"
#include "sc_parse.h"
#include "sc_interp.h"
#include "sc_editor.h"
@@ -204,8 +203,8 @@ static void saveas_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
d = gtk_file_chooser_dialog_new("Save Presentation",
GTK_WINDOW(sw->window),
GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Save", GTK_RESPONSE_ACCEPT,
NULL);
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(d),
TRUE);
@@ -229,13 +228,6 @@ static void save_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
}
-static void open_slidesorter_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
-{
- SlideWindow *sw = vp;
- open_slidesorter(sw->p);
-}
-
-
static void delete_frame_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
{
#if 0
@@ -308,8 +300,8 @@ static void exportpdf_sig(GSimpleAction *action, GVariant *parameter,
d = gtk_file_chooser_dialog_new("Export PDF",
GTK_WINDOW(sw->window),
GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ "_Cancel", GTK_RESPONSE_CANCEL,
+ "_Export", GTK_RESPONSE_ACCEPT,
NULL);
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(d),
TRUE);
@@ -510,7 +502,6 @@ GActionEntry sw_entries[] = {
{ "save", save_sig, NULL, NULL, NULL },
{ "saveas", saveas_sig, NULL, NULL, NULL },
{ "exportpdf", exportpdf_sig, NULL, NULL, NULL },
- { "sorter", open_slidesorter_sig, NULL, NULL, NULL },
{ "deleteframe", delete_frame_sig, NULL, NULL, NULL },
{ "slide", add_slide_sig, NULL, NULL, NULL },
{ "startslideshow", start_slideshow_sig, NULL, NULL, NULL },
@@ -532,6 +523,7 @@ SlideWindow *slide_window_open(struct presentation *p, GApplication *app)
GtkToolItem *button;
SlideWindow *sw;
SCBlock *stylesheets[2];
+ GtkWidget *image;
if ( p->slidewindow != NULL ) {
fprintf(stderr, "Slide window is already open!\n");
@@ -562,7 +554,9 @@ SlideWindow *slide_window_open(struct presentation *p, GApplication *app)
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(toolbar), FALSE, FALSE, 0);
/* Fullscreen */
- button = gtk_tool_button_new_from_stock(GTK_STOCK_FULLSCREEN);
+ image = gtk_image_new_from_icon_name("view-fullscreen",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ button = gtk_tool_button_new(image, "Start slideshow");
gtk_actionable_set_action_name(GTK_ACTIONABLE(button),
"win.startslideshow");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
@@ -571,7 +565,9 @@ SlideWindow *slide_window_open(struct presentation *p, GApplication *app)
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
/* Add slide */
- button = gtk_tool_button_new_from_stock(GTK_STOCK_ADD);
+ image = gtk_image_new_from_icon_name("add",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ button = gtk_tool_button_new(image, "Add slide");
gtk_actionable_set_action_name(GTK_ACTIONABLE(button),
"win.slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
@@ -579,20 +575,31 @@ SlideWindow *slide_window_open(struct presentation *p, GApplication *app)
button = gtk_separator_tool_item_new();
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(button));
- /* Change slide */
- sw->bfirst = gtk_tool_button_new_from_stock(GTK_STOCK_GOTO_FIRST);
+ /* Change slide. FIXME: LTR vs RTL */
+ image = gtk_image_new_from_icon_name("gtk-goto-first-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ sw->bfirst = gtk_tool_button_new(image, "First slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(sw->bfirst));
gtk_actionable_set_action_name(GTK_ACTIONABLE(sw->bfirst),
"win.first");
- sw->bprev = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
+
+ image = gtk_image_new_from_icon_name("gtk-go-forward-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ sw->bprev = gtk_tool_button_new(image, "Previous slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(sw->bprev));
gtk_actionable_set_action_name(GTK_ACTIONABLE(sw->bprev),
"win.prev");
- sw->bnext = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
+
+ image = gtk_image_new_from_icon_name("gtk-go-back-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ sw->bnext = gtk_tool_button_new(image, "Next slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(sw->bnext));
gtk_actionable_set_action_name(GTK_ACTIONABLE(sw->bnext),
"win.next");
- sw->blast = gtk_tool_button_new_from_stock(GTK_STOCK_GOTO_LAST);
+
+ image = gtk_image_new_from_icon_name("gtk-goto-last-ltr",
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ sw->blast = gtk_tool_button_new(image, "Last slide");
gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(sw->blast));
gtk_actionable_set_action_name(GTK_ACTIONABLE(sw->blast),
"win.last");
@@ -605,8 +612,7 @@ SlideWindow *slide_window_open(struct presentation *p, GApplication *app)
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll),
- GTK_WIDGET(sw->sceditor));
+ gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(sw->sceditor));
gtk_window_set_focus(GTK_WINDOW(window), GTK_WIDGET(sw->sceditor));
/* Size of SCEditor surface in pixels */