From 49a7927ecf31ace696e9e5770e8d6543c356db7a Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 28 Jul 2016 19:15:34 +0100 Subject: Finish removing GTK+ 2 fallbacks (bzr r15023.2.8) --- src/inkview.cpp | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'src/inkview.cpp') diff --git a/src/inkview.cpp b/src/inkview.cpp index db4b1aeb0..f6dfe34fe 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -346,13 +346,7 @@ static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss) gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(ss->window)); g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, ss); g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL); - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); -#else - GtkWidget *t = gtk_hbutton_box_new(); -#endif - + auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_container_add(GTK_CONTAINER(ctrlwin), t); #if GTK_CHECK_VERSION(3,10,0) @@ -431,19 +425,11 @@ static void sp_svgview_waiting_cursor(struct SPSlideShow *ss) GdkDisplay *display = gdk_display_get_default(); GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), waiting); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); -#else - gdk_cursor_unref(waiting); -#endif if (ctrlwin) { GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); -#else - gdk_cursor_unref(waiting); -#endif } while(gtk_events_pending()) { gtk_main_iteration(); -- cgit v1.2.3 From 79114d4f5ed18fc7bc79fff42bbc02d24042b484 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 13 Aug 2016 16:59:04 +0100 Subject: inkview: C++ify (bzr r15056) --- src/inkview.cpp | 273 ++++++++++++++++++++++++-------------------------------- 1 file changed, 115 insertions(+), 158 deletions(-) (limited to 'src/inkview.cpp') diff --git a/src/inkview.cpp b/src/inkview.cpp index c90d0b85e..fe656ca5b 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -34,6 +34,8 @@ #include #include +#include +#include #include // #include @@ -66,28 +68,38 @@ extern char *optarg; extern int optind, opterr; -struct SPSlideShow { - char **slides; - int size; - int length; +class SPSlideShow { +public: + std::vector slides; int current; SPDocument *doc; GtkWidget *view; GtkWidget *window; bool fullscreen; int timer; -}; -static GtkWidget *sp_svgview_control_show (struct SPSlideShow *ss); -static void sp_svgview_show_next (struct SPSlideShow *ss); -static void sp_svgview_show_prev (struct SPSlideShow *ss); -static void sp_svgview_goto_first (struct SPSlideShow *ss); -static void sp_svgview_goto_last (struct SPSlideShow *ss); + SPSlideShow() + : + slides(), + current(0), + doc(NULL), + view(NULL), + fullscreen(false) + {} + + GtkWidget *control_show(); + void show_next(); + void show_prev(); + void goto_first(); + void goto_last(); + +protected: + void waiting_cursor(); + void normal_cursor(); + void set_document(SPDocument *doc, + int current); +}; -static int sp_svgview_show_next_cb (GtkWidget *widget, void *data); -static int sp_svgview_show_prev_cb (GtkWidget *widget, void *data); -static int sp_svgview_goto_first_cb (GtkWidget *widget, void *data); -static int sp_svgview_goto_last_cb (GtkWidget *widget, void *data); #ifdef WITH_INKJAR static bool is_jar(char const *filename); #endif @@ -114,11 +126,11 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/, switch (event->keyval) { case GDK_KEY_Up: case GDK_KEY_Home: - sp_svgview_goto_first(ss); + ss->goto_first(); break; case GDK_KEY_Down: case GDK_KEY_End: - sp_svgview_goto_last(ss); + ss->goto_last(); break; case GDK_KEY_F11: if (ss->fullscreen) { @@ -130,19 +142,19 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/, } break; case GDK_KEY_Return: - sp_svgview_control_show (ss); + ss->control_show(); break; case GDK_KEY_KP_Page_Down: case GDK_KEY_Page_Down: case GDK_KEY_Right: case GDK_KEY_space: - sp_svgview_show_next (ss); + ss->show_next(); break; case GDK_KEY_KP_Page_Up: case GDK_KEY_Page_Up: case GDK_KEY_Left: case GDK_KEY_BackSpace: - sp_svgview_show_prev (ss); + ss->show_prev(); break; case GDK_KEY_Escape: case GDK_KEY_q: @@ -167,9 +179,8 @@ int main (int argc, const char **argv) Gtk::Main main_instance (&argc, const_cast(&argv)); - struct SPSlideShow ss; - int num_parsed_options = 0; + SPSlideShow ss; // the list of arguments is in the net line for (int i = 1; i < argc; i++) { @@ -215,15 +226,6 @@ int main (int argc, const char **argv) setlocale (LC_NUMERIC, "C"); - ss.size = 32; - ss.length = 0; - ss.current = 0; - ss.slides = g_new (char *, ss.size); - ss.current = 0; - ss.doc = NULL; - ss.view = NULL; - ss.fullscreen = false; - Inkscape::Application::create(argv[0], true); //Inkscape::Application &inkscape = Inkscape::Application::instance(); @@ -254,21 +256,13 @@ int main (int argc, const char **argv) } } } else if (gba->len > 0) { - //::write(1, gba->data, gba->len); - /* Append to list */ - if (ss.length >= ss.size) { - /* Expand */ - ss.size <<= 1; - ss.slides = g_renew (char *, ss.slides, ss.size); - } - ss.doc = SPDocument::createNewDocFromMem ((const gchar *)gba->data, gba->len, TRUE); gchar *last_filename = jar_file_reader.get_last_filename(); if (ss.doc) { - ss.slides[ss.length++] = strdup (last_filename); - (ss.doc)->setUri (last_filename); + ss.slides.push_back(strdup(last_filename)); + (ss.doc)->setUri(last_filename); } g_byte_array_free(gba, TRUE); g_free(last_filename); @@ -279,16 +273,10 @@ int main (int argc, const char **argv) } else { #endif /* WITH_INKJAR */ /* Append to list */ - if (ss.length >= ss.size) { - /* Expand */ - ss.size <<= 1; - ss.slides = g_renew (char *, ss.slides, ss.size); - } - - ss.slides[ss.length++] = strdup (argv[i]); + ss.slides.push_back(strdup (argv[i])); if (!ss.doc) { - ss.doc = SPDocument::createNewDoc (ss.slides[ss.current], TRUE, false); + ss.doc = SPDocument::createNewDoc((ss.slides[ss.current]).c_str(), TRUE, false); if (!ss.doc) { ++ss.current; } @@ -335,56 +323,48 @@ static int sp_svgview_ctrlwin_delete (GtkWidget */*widget*/, return FALSE; } -static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss) +/** + * @brief Show the control buttons (next, previous etc) for the application + */ +GtkWidget* SPSlideShow::control_show() { if (!ctrlwin) { ctrlwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable(GTK_WINDOW(ctrlwin), FALSE); - gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(ss->window)); - g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, ss); + gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(window)); + g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, this); g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL); auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_container_add(GTK_CONTAINER(ctrlwin), t); -#if GTK_CHECK_VERSION(3,10,0) - GtkWidget *b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-first"), GTK_ICON_SIZE_BUTTON); -#else - GtkWidget *b = gtk_button_new(); - GtkWidget *img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-first"), GTK_ICON_SIZE_BUTTON); - gtk_button_set_image(GTK_BUTTON(b), img); -#endif - gtk_container_add(GTK_CONTAINER(t), b); - - g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_goto_first_cb, ss); -#if GTK_CHECK_VERSION(3,10,0) - b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-previous"), GTK_ICON_SIZE_BUTTON); -#else - b = gtk_button_new(); - img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-previous"), GTK_ICON_SIZE_BUTTON); - gtk_button_set_image(GTK_BUTTON(b), img); -#endif - gtk_container_add(GTK_CONTAINER(t), b); - - g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_show_prev_cb, ss); -#if GTK_CHECK_VERSION(3,10,0) - b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-next"), GTK_ICON_SIZE_BUTTON); -#else - b = gtk_button_new(); - img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-next"), GTK_ICON_SIZE_BUTTON); - gtk_button_set_image(GTK_BUTTON(b), img); -#endif - gtk_container_add(GTK_CONTAINER(t), b); - - g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_show_next_cb, ss); -#if GTK_CHECK_VERSION(3,10,0) - b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-last"), GTK_ICON_SIZE_BUTTON); -#else - b = gtk_button_new(); - img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-last"), GTK_ICON_SIZE_BUTTON); - gtk_button_set_image(GTK_BUTTON(b), img); -#endif - gtk_container_add(GTK_CONTAINER(t), b); - g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_goto_last_cb, ss); + auto btn_go_first = Gtk::manage(new Gtk::Button()); + auto img_go_first = Gtk::manage(new Gtk::Image()); + img_go_first->set_from_icon_name(INKSCAPE_ICON("go-first"), Gtk::ICON_SIZE_BUTTON); + btn_go_first->set_image(*img_go_first); + gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_first->gobj())); + btn_go_first->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::goto_first)); + + auto btn_go_prev = Gtk::manage(new Gtk::Button()); + auto img_go_prev = Gtk::manage(new Gtk::Image()); + img_go_prev->set_from_icon_name(INKSCAPE_ICON("go-previous"), Gtk::ICON_SIZE_BUTTON); + btn_go_prev->set_image(*img_go_prev); + gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_prev->gobj())); + btn_go_prev->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::show_prev)); + + auto btn_go_next = Gtk::manage(new Gtk::Button()); + auto img_go_next = Gtk::manage(new Gtk::Image()); + img_go_next->set_from_icon_name(INKSCAPE_ICON("go-next"), Gtk::ICON_SIZE_BUTTON); + btn_go_next->set_image(*img_go_next); + gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_next->gobj())); + btn_go_next->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::show_next)); + + auto btn_go_last = Gtk::manage(new Gtk::Button()); + auto img_go_last = Gtk::manage(new Gtk::Image()); + img_go_last->set_from_icon_name(INKSCAPE_ICON("go-last"), Gtk::ICON_SIZE_BUTTON); + btn_go_last->set_image(*img_go_last); + gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_last->gobj())); + btn_go_last->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::goto_last)); + gtk_widget_show_all(ctrlwin); } else { gtk_window_present(GTK_WINDOW(ctrlwin)); @@ -393,35 +373,11 @@ static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss) return NULL; } -static int sp_svgview_show_next_cb (GtkWidget */*widget*/, void *data) -{ - sp_svgview_show_next(static_cast(data)); - return FALSE; -} - -static int sp_svgview_show_prev_cb (GtkWidget */*widget*/, void *data) -{ - sp_svgview_show_prev(static_cast(data)); - return FALSE; -} - -static int sp_svgview_goto_first_cb (GtkWidget */*widget*/, void *data) -{ - sp_svgview_goto_first(static_cast(data)); - return FALSE; -} - -static int sp_svgview_goto_last_cb (GtkWidget */*widget*/, void *data) -{ - sp_svgview_goto_last(static_cast(data)); - return FALSE; -} - -static void sp_svgview_waiting_cursor(struct SPSlideShow *ss) +void SPSlideShow::waiting_cursor() { GdkDisplay *display = gdk_display_get_default(); GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); - gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), waiting); + gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), waiting); g_object_unref(waiting); if (ctrlwin) { GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); @@ -433,90 +389,91 @@ static void sp_svgview_waiting_cursor(struct SPSlideShow *ss) } } -static void sp_svgview_normal_cursor(struct SPSlideShow *ss) +void SPSlideShow::normal_cursor() { - gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), NULL); + gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), NULL); if (ctrlwin) { gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), NULL); } } -static void sp_svgview_set_document(struct SPSlideShow *ss, - SPDocument *doc, - int current) +void SPSlideShow::set_document(SPDocument *doc, + int current) { - if (doc && doc != ss->doc) { + if (doc && doc != this->doc) { doc->ensureUpToDate(); - reinterpret_cast(SP_VIEW_WIDGET_VIEW (ss->view))->setDocument (doc); - ss->doc = doc; - ss->current = current; + reinterpret_cast(SP_VIEW_WIDGET_VIEW (view))->setDocument (doc); + this->doc = doc; + this->current = current; } } -static void sp_svgview_show_next (struct SPSlideShow *ss) +/** + * @brief Show the next file in the slideshow + */ +void SPSlideShow::show_next() { - sp_svgview_waiting_cursor(ss); + waiting_cursor(); SPDocument *doc = NULL; - int current = ss->current; - while (!doc && (current < ss->length - 1)) { - doc = SPDocument::createNewDoc (ss->slides[++current], TRUE, false); + while (!doc && (current < slides.size() - 1)) { + doc = SPDocument::createNewDoc ((slides[++current]).c_str(), TRUE, false); } - sp_svgview_set_document(ss, doc, current); - - sp_svgview_normal_cursor(ss); + set_document(doc, current); + normal_cursor(); } -static void sp_svgview_show_prev (struct SPSlideShow *ss) +/** + * @brief Show the previous file in the slideshow + */ +void SPSlideShow::show_prev() { - sp_svgview_waiting_cursor(ss); + waiting_cursor(); SPDocument *doc = NULL; - int current = ss->current; while (!doc && (current > 0)) { - doc = SPDocument::createNewDoc (ss->slides[--current], TRUE, false); + doc = SPDocument::createNewDoc ((slides[--current]).c_str(), TRUE, false); } - sp_svgview_set_document(ss, doc, current); - - sp_svgview_normal_cursor(ss); + set_document(doc, current); + normal_cursor(); } -static void sp_svgview_goto_first (struct SPSlideShow *ss) +/** + * @brief Switch to first slide in slideshow + */ +void SPSlideShow::goto_first() { - sp_svgview_waiting_cursor(ss); + waiting_cursor(); SPDocument *doc = NULL; int current = 0; - while ( !doc && (current < ss->length - 1)) { - if (current == ss->current) { - break; - } - doc = SPDocument::createNewDoc (ss->slides[current++], TRUE, false); + while ( !doc && (current < slides.size() - 1)) { + doc = SPDocument::createNewDoc((slides[current++]).c_str(), TRUE, false); } - sp_svgview_set_document(ss, doc, current - 1); + set_document(doc, current - 1); - sp_svgview_normal_cursor(ss); + normal_cursor(); } -static void sp_svgview_goto_last (struct SPSlideShow *ss) +/** + * @brief Switch to last slide in slideshow + */ +void SPSlideShow::goto_last() { - sp_svgview_waiting_cursor(ss); + waiting_cursor(); SPDocument *doc = NULL; - int current = ss->length - 1; + int current = slides.size() - 1; while (!doc && (current >= 0)) { - if (current == ss->current) { - break; - } - doc = SPDocument::createNewDoc (ss->slides[current--], TRUE, false); + doc = SPDocument::createNewDoc((slides[current--]).c_str(), TRUE, false); } - sp_svgview_set_document(ss, doc, current + 1); + set_document(doc, current + 1); - sp_svgview_normal_cursor(ss); + normal_cursor(); } #ifdef WITH_INKJAR -- cgit v1.2.3 From 75c4b2b43058668f2c94b27db858763d0b1f308c Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sun, 14 Aug 2016 13:16:27 +0100 Subject: inkview: Convert to ApplicationWindow (bzr r15057) --- src/inkview.cpp | 94 +++++++++++++++++++++++++++------------------------------ 1 file changed, 45 insertions(+), 49 deletions(-) (limited to 'src/inkview.cpp') diff --git a/src/inkview.cpp b/src/inkview.cpp index fe656ca5b..b9447a94f 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -68,15 +69,19 @@ extern char *optarg; extern int optind, opterr; -class SPSlideShow { +/** + * The main application window for the slideshow + */ +class SPSlideShow : public Gtk::ApplicationWindow { public: - std::vector slides; - int current; - SPDocument *doc; - GtkWidget *view; - GtkWidget *window; - bool fullscreen; - int timer; + std::vector slides; ///< List of filenames for each slide + int current; ///< Index of the currently displayed slide + SPDocument *doc; ///< The currently displayed slide + GtkWidget *view; + int timer; + + /// Current state of application (full-screen or windowed) + bool is_fullscreen; SPSlideShow() : @@ -84,20 +89,20 @@ public: current(0), doc(NULL), view(NULL), - fullscreen(false) + is_fullscreen(false) {} - GtkWidget *control_show(); - void show_next(); - void show_prev(); - void goto_first(); - void goto_last(); + void control_show(); + void show_next(); + void show_prev(); + void goto_first(); + void goto_last(); protected: - void waiting_cursor(); - void normal_cursor(); - void set_document(SPDocument *doc, - int current); + void waiting_cursor(); + void normal_cursor(); + void set_document(SPDocument *doc, + int current); }; #ifdef WITH_INKJAR @@ -133,12 +138,12 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/, ss->goto_last(); break; case GDK_KEY_F11: - if (ss->fullscreen) { - gtk_window_unfullscreen (GTK_WINDOW(ss->window)); - ss->fullscreen = false; + if (ss->is_fullscreen) { + ss->unfullscreen(); + ss->is_fullscreen = false; } else { - gtk_window_fullscreen (GTK_WINDOW(ss->window)); - ss->fullscreen = true; + ss->fullscreen(); + ss->is_fullscreen = true; } break; case GDK_KEY_Return: @@ -164,7 +169,8 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/, default: break; } - gtk_window_set_title(GTK_WINDOW(ss->window), ss->doc->getName()); + + ss->set_title(ss->doc->getName()); return TRUE; } @@ -202,7 +208,6 @@ int main (int argc, const char **argv) } } - GtkWidget *w; int i; bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); @@ -214,8 +219,6 @@ int main (int argc, const char **argv) Inkscape::GC::init(); Inkscape::Preferences::get(); // ensure preferences are initialized - gtk_init (&argc, (char ***) &argv); - #ifdef lalaWITH_MODULES g_warning ("Have to autoinit modules (lauris)"); sp_modulesys_init(); @@ -291,24 +294,21 @@ int main (int argc, const char **argv) return 1; /* none of the slides loadable */ } - w = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title( GTK_WINDOW(w), ss.doc->getName() ); - gtk_window_set_default_size (GTK_WINDOW (w), - MIN ((int)(ss.doc)->getWidth().value("px"), (int)gdk_screen_width() - 64), - MIN ((int)(ss.doc)->getHeight().value("px"), (int)gdk_screen_height() - 64)); - ss.window = w; + ss.set_title(ss.doc->getName() ); + ss.set_default_size(MIN ((int)(ss.doc)->getWidth().value("px"), (int)gdk_screen_width() - 64), + MIN ((int)(ss.doc)->getHeight().value("px"), (int)gdk_screen_height() - 64)); - g_signal_connect (G_OBJECT (w), "delete_event", (GCallback) sp_svgview_main_delete, &ss); - g_signal_connect (G_OBJECT (w), "key_press_event", (GCallback) sp_svgview_main_key_press, &ss); + g_signal_connect (G_OBJECT (ss.gobj()), "delete_event", (GCallback) sp_svgview_main_delete, &ss); + g_signal_connect (G_OBJECT (ss.gobj()), "key_press_event", (GCallback) sp_svgview_main_key_press, &ss); (ss.doc)->ensureUpToDate(); ss.view = sp_svg_view_widget_new (ss.doc); (ss.doc)->doUnref (); SP_SVG_VIEW_WIDGET(ss.view)->setResize( false, ss.doc->getWidth().value("px"), ss.doc->getHeight().value("px") ); gtk_widget_show (ss.view); - gtk_container_add (GTK_CONTAINER (w), ss.view); + ss.add(*Glib::wrap(ss.view)); - gtk_widget_show (w); + ss.show(); gtk_main (); @@ -326,12 +326,12 @@ static int sp_svgview_ctrlwin_delete (GtkWidget */*widget*/, /** * @brief Show the control buttons (next, previous etc) for the application */ -GtkWidget* SPSlideShow::control_show() +void SPSlideShow::control_show() { if (!ctrlwin) { ctrlwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable(GTK_WINDOW(ctrlwin), FALSE); - gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(window)); + gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(this->gobj())); g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, this); g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL); auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); @@ -369,20 +369,16 @@ GtkWidget* SPSlideShow::control_show() } else { gtk_window_present(GTK_WINDOW(ctrlwin)); } - - return NULL; } void SPSlideShow::waiting_cursor() { - GdkDisplay *display = gdk_display_get_default(); - GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); - gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), waiting); - g_object_unref(waiting); + auto display = Gdk::Display::get_default(); + auto waiting = Gdk::Cursor::create(display, Gdk::WATCH); + get_window()->set_cursor(waiting); + if (ctrlwin) { - GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); - gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting); - g_object_unref(waiting); + gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting->gobj()); } while(gtk_events_pending()) { gtk_main_iteration(); @@ -391,7 +387,7 @@ void SPSlideShow::waiting_cursor() void SPSlideShow::normal_cursor() { - gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), NULL); + get_window()->set_cursor(); if (ctrlwin) { gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), NULL); } -- cgit v1.2.3