diff options
author | Albert Astals Cid <aacid@kde.org> | 2020-07-03 23:51:42 +0200 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2020-07-03 23:51:42 +0200 |
commit | 814fbda28cc8a37fed3134c2db8da28f86fb5ee0 (patch) | |
tree | 77872b408199925ebba6a68b0dccaa0d29274c3f /test/gtk-test.cc | |
parent | 0d48722746b9702e219df58ad14cee6184a62bef (diff) |
Run clang-format
find . \( -name "*.cpp" -or -name "*.h" -or -name "*.c" -or -name "*.cc" \) -exec clang-format -i {} \;
If you reached this file doing a git blame, please see README.contributors (instructions added 2 commits in the future to this one)
Diffstat (limited to 'test/gtk-test.cc')
-rw-r--r-- | test/gtk-test.cc | 506 |
1 files changed, 234 insertions, 272 deletions
diff --git a/test/gtk-test.cc b/test/gtk-test.cc index ead53477..fcefd8b1 100644 --- a/test/gtk-test.cc +++ b/test/gtk-test.cc @@ -21,70 +21,62 @@ static int requested_page = 0; static gboolean cairo_output = FALSE; static gboolean splash_output = FALSE; static const char **file_arguments = nullptr; -static const GOptionEntry options[] = { - { "cairo", 'c', 0, G_OPTION_ARG_NONE, &cairo_output, "Cairo Output Device", nullptr}, - { "splash", 's', 0, G_OPTION_ARG_NONE, &splash_output, "Splash Output Device", nullptr}, - { "page", 'p', 0, G_OPTION_ARG_INT, &requested_page, "Page number", "PAGE" }, - { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &file_arguments, nullptr, "PDF-FILES…" }, - { } -}; +static const GOptionEntry options[] = { { "cairo", 'c', 0, G_OPTION_ARG_NONE, &cairo_output, "Cairo Output Device", nullptr }, + { "splash", 's', 0, G_OPTION_ARG_NONE, &splash_output, "Splash Output Device", nullptr }, + { "page", 'p', 0, G_OPTION_ARG_INT, &requested_page, "Page number", "PAGE" }, + { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &file_arguments, nullptr, "PDF-FILES…" }, + {} }; static GList *view_list = nullptr; //------------------------------------------------------------------------ -#define xOutMaxRGBCube 6 // max size of RGB color cube +#define xOutMaxRGBCube 6 // max size of RGB color cube //------------------------------------------------------------------------ // GDKSplashOutputDev //------------------------------------------------------------------------ -class GDKSplashOutputDev: public SplashOutputDev { +class GDKSplashOutputDev : public SplashOutputDev +{ public: + GDKSplashOutputDev(GdkScreen *screen, void (*redrawCbkA)(void *data), void *redrawCbkDataA, SplashColor sc); - GDKSplashOutputDev(GdkScreen *screen, - void (*redrawCbkA)(void *data), - void *redrawCbkDataA, SplashColor sc); - - ~GDKSplashOutputDev() override; + ~GDKSplashOutputDev() override; - //----- initialization and control + //----- initialization and control - // End a page. - void endPage() override; + // End a page. + void endPage() override; - // Dump page contents to display. - void dump() override; + // Dump page contents to display. + void dump() override; - //----- update text state - void updateFont(GfxState *state) override; + //----- update text state + void updateFont(GfxState *state) override; - //----- special access + //----- special access - // Clear out the document (used when displaying an empty window). - void clear(); + // Clear out the document (used when displaying an empty window). + void clear(); - // Copy the rectangle (srcX, srcY, width, height) to (destX, destY) - // in destDC. - void redraw(int srcX, int srcY, - cairo_t *cr, - int destX, int destY, - int width, int height); + // Copy the rectangle (srcX, srcY, width, height) to (destX, destY) + // in destDC. + void redraw(int srcX, int srcY, cairo_t *cr, int destX, int destY, int width, int height); private: - - int incrementalUpdate; - void (*redrawCbk)(void *data); - void *redrawCbkData; + int incrementalUpdate; + void (*redrawCbk)(void *data); + void *redrawCbkData; }; typedef struct { - PopplerDocument *doc; - GtkWidget *drawing_area; - GtkWidget *spin_button; - cairo_surface_t *surface; - GDKSplashOutputDev *out; + PopplerDocument *doc; + GtkWidget *drawing_area; + GtkWidget *spin_button; + cairo_surface_t *surface; + GDKSplashOutputDev *out; } View; //------------------------------------------------------------------------ @@ -97,307 +89,277 @@ typedef struct // GDKSplashOutputDev //------------------------------------------------------------------------ -GDKSplashOutputDev::GDKSplashOutputDev(GdkScreen *screen, - void (*redrawCbkA)(void *data), - void *redrawCbkDataA, SplashColor sc): - SplashOutputDev(splashModeRGB8, 4, false, sc), - incrementalUpdate (1) +GDKSplashOutputDev::GDKSplashOutputDev(GdkScreen *screen, void (*redrawCbkA)(void *data), void *redrawCbkDataA, SplashColor sc) : SplashOutputDev(splashModeRGB8, 4, false, sc), incrementalUpdate(1) { - redrawCbk = redrawCbkA; - redrawCbkData = redrawCbkDataA; + redrawCbk = redrawCbkA; + redrawCbkData = redrawCbkDataA; } -GDKSplashOutputDev::~GDKSplashOutputDev() { -} +GDKSplashOutputDev::~GDKSplashOutputDev() { } -void GDKSplashOutputDev::clear() { - startDoc(nullptr); - startPage(0, nullptr, nullptr); +void GDKSplashOutputDev::clear() +{ + startDoc(nullptr); + startPage(0, nullptr, nullptr); } -void GDKSplashOutputDev::endPage() { - SplashOutputDev::endPage(); - if (!incrementalUpdate) { - (*redrawCbk)(redrawCbkData); - } +void GDKSplashOutputDev::endPage() +{ + SplashOutputDev::endPage(); + if (!incrementalUpdate) { + (*redrawCbk)(redrawCbkData); + } } -void GDKSplashOutputDev::dump() { - if (incrementalUpdate && redrawCbk) { - (*redrawCbk)(redrawCbkData); - } +void GDKSplashOutputDev::dump() +{ + if (incrementalUpdate && redrawCbk) { + (*redrawCbk)(redrawCbkData); + } } -void GDKSplashOutputDev::updateFont(GfxState *state) { - SplashOutputDev::updateFont(state); +void GDKSplashOutputDev::updateFont(GfxState *state) +{ + SplashOutputDev::updateFont(state); } -void GDKSplashOutputDev::redraw(int srcX, int srcY, - cairo_t *cr, - int destX, int destY, - int width, int height) { - GdkPixbuf *pixbuf; - int gdk_rowstride; +void GDKSplashOutputDev::redraw(int srcX, int srcY, cairo_t *cr, int destX, int destY, int width, int height) +{ + GdkPixbuf *pixbuf; + int gdk_rowstride; - gdk_rowstride = getBitmap()->getRowSize(); - pixbuf = gdk_pixbuf_new_from_data (getBitmap()->getDataPtr() + srcY * gdk_rowstride + srcX * 3, - GDK_COLORSPACE_RGB, FALSE, 8, - width, height, gdk_rowstride, - nullptr, nullptr); + gdk_rowstride = getBitmap()->getRowSize(); + pixbuf = gdk_pixbuf_new_from_data(getBitmap()->getDataPtr() + srcY * gdk_rowstride + srcX * 3, GDK_COLORSPACE_RGB, FALSE, 8, width, height, gdk_rowstride, nullptr, nullptr); - gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0); - cairo_paint (cr); + gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0); + cairo_paint(cr); - g_object_unref (pixbuf); + g_object_unref(pixbuf); } -static gboolean -drawing_area_draw (GtkWidget *drawing_area, - cairo_t *cr, - View *view) +static gboolean drawing_area_draw(GtkWidget *drawing_area, cairo_t *cr, View *view) { - GdkRectangle document; - GdkRectangle clip; - GdkRectangle draw; - - document.x = 0; - document.y = 0; - if (cairo_output) { - document.width = cairo_image_surface_get_width (view->surface); - document.height = cairo_image_surface_get_height (view->surface); - } else { - document.width = view->out->getBitmapWidth(); - document.height = view->out->getBitmapHeight(); - } - - if (!gdk_cairo_get_clip_rectangle (cr, &clip)) - return FALSE; - - if (!gdk_rectangle_intersect (&document, &clip, &draw)) - return FALSE; - - if (cairo_output) { - cairo_set_source_surface (cr, view->surface, 0, 0); - cairo_paint (cr); - } else { - view->out->redraw (draw.x, draw.y, - cr, - draw.x, draw.y, - draw.width, draw.height); - } - - return TRUE; + GdkRectangle document; + GdkRectangle clip; + GdkRectangle draw; + + document.x = 0; + document.y = 0; + if (cairo_output) { + document.width = cairo_image_surface_get_width(view->surface); + document.height = cairo_image_surface_get_height(view->surface); + } else { + document.width = view->out->getBitmapWidth(); + document.height = view->out->getBitmapHeight(); + } + + if (!gdk_cairo_get_clip_rectangle(cr, &clip)) + return FALSE; + + if (!gdk_rectangle_intersect(&document, &clip, &draw)) + return FALSE; + + if (cairo_output) { + cairo_set_source_surface(cr, view->surface, 0, 0); + cairo_paint(cr); + } else { + view->out->redraw(draw.x, draw.y, cr, draw.x, draw.y, draw.width, draw.height); + } + + return TRUE; } -static void -view_set_page (View *view, int page) +static void view_set_page(View *view, int page) { - int w, h; - - if (cairo_output) { - cairo_t *cr; - double width, height; - PopplerPage *poppler_page; - - poppler_page = poppler_document_get_page (view->doc, page); - poppler_page_get_size (poppler_page, &width, &height); - w = (int) ceil(width); - h = (int) ceil(height); - - if (view->surface) - cairo_surface_destroy (view->surface); - view->surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h); - - cr = cairo_create (view->surface); - poppler_page_render (poppler_page, cr); - - cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER); - cairo_set_source_rgb (cr, 1., 1., 1.); - cairo_paint (cr); - - cairo_destroy (cr); - g_object_unref (poppler_page); - } else { - view->doc->doc->displayPage (view->out, page + 1, 72, 72, 0, false, true, true); - w = view->out->getBitmapWidth(); - h = view->out->getBitmapHeight(); - } - - gtk_widget_set_size_request (view->drawing_area, w, h); - gtk_widget_queue_draw (view->drawing_area); - gtk_spin_button_set_value (GTK_SPIN_BUTTON (view->spin_button), page); + int w, h; + + if (cairo_output) { + cairo_t *cr; + double width, height; + PopplerPage *poppler_page; + + poppler_page = poppler_document_get_page(view->doc, page); + poppler_page_get_size(poppler_page, &width, &height); + w = (int)ceil(width); + h = (int)ceil(height); + + if (view->surface) + cairo_surface_destroy(view->surface); + view->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h); + + cr = cairo_create(view->surface); + poppler_page_render(poppler_page, cr); + + cairo_set_operator(cr, CAIRO_OPERATOR_DEST_OVER); + cairo_set_source_rgb(cr, 1., 1., 1.); + cairo_paint(cr); + + cairo_destroy(cr); + g_object_unref(poppler_page); + } else { + view->doc->doc->displayPage(view->out, page + 1, 72, 72, 0, false, true, true); + w = view->out->getBitmapWidth(); + h = view->out->getBitmapHeight(); + } + + gtk_widget_set_size_request(view->drawing_area, w, h); + gtk_widget_queue_draw(view->drawing_area); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(view->spin_button), page); } -static void -redraw_callback (void *data) +static void redraw_callback(void *data) { - View *view = (View*) data; + View *view = (View *)data; - gtk_widget_queue_draw (view->drawing_area); + gtk_widget_queue_draw(view->drawing_area); } -static void -view_free (View *view) +static void view_free(View *view) { - if (G_UNLIKELY (!view)) - return; + if (G_UNLIKELY(!view)) + return; - g_object_unref (view->doc); - delete view->out; - cairo_surface_destroy (view->surface); - g_slice_free (View, view); + g_object_unref(view->doc); + delete view->out; + cairo_surface_destroy(view->surface); + g_slice_free(View, view); } -static void -destroy_window_callback (GtkWindow *window, View *view) +static void destroy_window_callback(GtkWindow *window, View *view) { - view_list = g_list_remove (view_list, view); - view_free (view); + view_list = g_list_remove(view_list, view); + view_free(view); - if (!view_list) - gtk_main_quit (); + if (!view_list) + gtk_main_quit(); } -static void -page_changed_callback (GtkSpinButton *button, View *view) +static void page_changed_callback(GtkSpinButton *button, View *view) { - int page; + int page; - page = gtk_spin_button_get_value_as_int (button); - view_set_page (view, page); + page = gtk_spin_button_get_value_as_int(button); + view_set_page(view, page); } -static View * -view_new (PopplerDocument *doc) +static View *view_new(PopplerDocument *doc) { - View *view; - GtkWidget *window; - GtkWidget *sw; - GtkWidget *vbox, *hbox; - guint n_pages; - PopplerPage *page; - - view = g_slice_new0 (View); - - view->doc = doc; - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - g_signal_connect (window, "destroy", - G_CALLBACK (destroy_window_callback), - view); - - page = poppler_document_get_page (doc, 0); - if (page) { - double width, height; - - poppler_page_get_size (page, &width, &height); - gtk_window_set_default_size (GTK_WINDOW (window), (gint)width, (gint)height); - g_object_unref (page); - } - - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); - - view->drawing_area = gtk_drawing_area_new (); - sw = gtk_scrolled_window_new (nullptr, nullptr); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); + View *view; + GtkWidget *window; + GtkWidget *sw; + GtkWidget *vbox, *hbox; + guint n_pages; + PopplerPage *page; + + view = g_slice_new0(View); + + view->doc = doc; + + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + g_signal_connect(window, "destroy", G_CALLBACK(destroy_window_callback), view); + + page = poppler_document_get_page(doc, 0); + if (page) { + double width, height; + + poppler_page_get_size(page, &width, &height); + gtk_window_set_default_size(GTK_WINDOW(window), (gint)width, (gint)height); + g_object_unref(page); + } + + vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); + + view->drawing_area = gtk_drawing_area_new(); + sw = gtk_scrolled_window_new(nullptr, nullptr); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); #if GTK_CHECK_VERSION(3, 7, 8) - gtk_container_add(GTK_CONTAINER(sw), view->drawing_area); + gtk_container_add(GTK_CONTAINER(sw), view->drawing_area); #else - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), - view->drawing_area); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), view->drawing_area); #endif - gtk_widget_show (view->drawing_area); + gtk_widget_show(view->drawing_area); - gtk_box_pack_end (GTK_BOX (vbox), sw, TRUE, TRUE, 0); - gtk_widget_show (sw); + gtk_box_pack_end(GTK_BOX(vbox), sw, TRUE, TRUE, 0); + gtk_widget_show(sw); - hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); + hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); - n_pages = poppler_document_get_n_pages (doc); - view->spin_button = gtk_spin_button_new_with_range (0, n_pages - 1, 1); - g_signal_connect (view->spin_button, "value-changed", - G_CALLBACK (page_changed_callback), view); + n_pages = poppler_document_get_n_pages(doc); + view->spin_button = gtk_spin_button_new_with_range(0, n_pages - 1, 1); + g_signal_connect(view->spin_button, "value-changed", G_CALLBACK(page_changed_callback), view); - gtk_box_pack_end (GTK_BOX (hbox), view->spin_button, FALSE, TRUE, 0); - gtk_widget_show (view->spin_button); + gtk_box_pack_end(GTK_BOX(hbox), view->spin_button, FALSE, TRUE, 0); + gtk_widget_show(view->spin_button); - gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); - gtk_widget_show (hbox); + gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, TRUE, 0); + gtk_widget_show(hbox); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_widget_show (vbox); + gtk_container_add(GTK_CONTAINER(window), vbox); + gtk_widget_show(vbox); - gtk_widget_show (window); + gtk_widget_show(window); + if (!cairo_output) { + SplashColor sc = { 255, 255, 255 }; - if (!cairo_output) { - SplashColor sc = { 255, 255, 255}; - - view->out = new GDKSplashOutputDev (gtk_widget_get_screen (window), - redraw_callback, (void*) view, sc); - view->out->startDoc(view->doc->doc); - } + view->out = new GDKSplashOutputDev(gtk_widget_get_screen(window), redraw_callback, (void *)view, sc); + view->out->startDoc(view->doc->doc); + } - g_signal_connect (view->drawing_area, - "draw", - G_CALLBACK (drawing_area_draw), - view); + g_signal_connect(view->drawing_area, "draw", G_CALLBACK(drawing_area_draw), view); - return view; + return view; } -int -main (int argc, char *argv []) +int main(int argc, char *argv[]) { - GOptionContext *ctx; + GOptionContext *ctx; - if (argc == 1) { - char *basename = g_path_get_basename (argv[0]); + if (argc == 1) { + char *basename = g_path_get_basename(argv[0]); - g_printerr ("usage: %s PDF-FILES…\n", basename); - g_free (basename); + g_printerr("usage: %s PDF-FILES…\n", basename); + g_free(basename); - return -1; - } + return -1; + } - ctx = g_option_context_new (nullptr); - g_option_context_add_main_entries (ctx, options, "main"); - g_option_context_parse (ctx, &argc, &argv, nullptr); - g_option_context_free (ctx); + ctx = g_option_context_new(nullptr); + g_option_context_add_main_entries(ctx, options, "main"); + g_option_context_parse(ctx, &argc, &argv, nullptr); + g_option_context_free(ctx); - gtk_init (&argc, &argv); + gtk_init(&argc, &argv); - globalParams = std::make_unique<GlobalParams>(); + globalParams = std::make_unique<GlobalParams>(); - for (int i = 0; file_arguments[i]; i++) { - View *view; - GFile *file; - PopplerDocument *doc; - GError *error = nullptr; + for (int i = 0; file_arguments[i]; i++) { + View *view; + GFile *file; + PopplerDocument *doc; + GError *error = nullptr; - file = g_file_new_for_commandline_arg (file_arguments[i]); - doc = poppler_document_new_from_gfile (file, nullptr, nullptr, &error); - if (!doc) { - gchar *uri; + file = g_file_new_for_commandline_arg(file_arguments[i]); + doc = poppler_document_new_from_gfile(file, nullptr, nullptr, &error); + if (!doc) { + gchar *uri; - uri = g_file_get_uri (file); - g_printerr ("Error opening document %s: %s\n", uri, error->message); - g_error_free (error); - g_free (uri); - g_object_unref (file); + uri = g_file_get_uri(file); + g_printerr("Error opening document %s: %s\n", uri, error->message); + g_error_free(error); + g_free(uri); + g_object_unref(file); - continue; - } - g_object_unref (file); + continue; + } + g_object_unref(file); - view = view_new (doc); - view_list = g_list_prepend (view_list, view); - view_set_page (view, CLAMP (requested_page, 0, poppler_document_get_n_pages (doc) - 1)); - } + view = view_new(doc); + view_list = g_list_prepend(view_list, view); + view_set_page(view, CLAMP(requested_page, 0, poppler_document_get_n_pages(doc) - 1)); + } - gtk_main (); + gtk_main(); - return 0; + return 0; } |