From 773a257421504d6dc11c04a3fb90d0374a4dd5f1 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Tue, 12 Feb 2019 14:55:43 +0100 Subject: [PATCH] Reformat according to the CMP (whitespace only) Preparing for some minor mods... --- test/cairo_test.cxx | 190 ++++++++++++++++++++++---------------------- 1 file changed, 93 insertions(+), 97 deletions(-) diff --git a/test/cairo_test.cxx b/test/cairo_test.cxx index ca6edfeb9..21a812be9 100644 --- a/test/cairo_test.cxx +++ b/test/cairo_test.cxx @@ -32,109 +32,105 @@ // put your drawing stuff here float drawargs[7] = {90, 90, 100, 100, 0, 360, 0}; -const char* name[7] = {"X", "Y", "W", "H", "start", "end", "rotate"}; - - -static void centered_text(cairo_t* cr, double x0,double y0,double w0,double h0, const char * my_text) { - cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_OBLIQUE,CAIRO_FONT_WEIGHT_BOLD); - cairo_set_source_rgba (cr, 0.9, 0.9, 0.4, 0.6); - cairo_text_extents_t extents; - cairo_text_extents (cr, my_text, &extents); - double x = (extents.width/2 + extents.x_bearing); - double y = (extents.height/2 + extents.y_bearing); - cairo_move_to (cr, x0+w0/2-x, y0+h0/2 - y); - cairo_text_path(cr,my_text); - cairo_fill_preserve (cr); - cairo_set_source_rgba (cr, 0, 0, 0,1); - cairo_set_line_width (cr, 0.004); - cairo_stroke (cr); - cairo_set_line_width (cr, DEF_WIDTH); - +const char *name[7] = {"X", "Y", "W", "H", "start", "end", "rotate"}; +static void centered_text(cairo_t *cr, double x0, double y0, double w0, double h0, const char *my_text) { + cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_OBLIQUE, CAIRO_FONT_WEIGHT_BOLD); + cairo_set_source_rgba(cr, 0.9, 0.9, 0.4, 0.6); + cairo_text_extents_t extents; + cairo_text_extents(cr, my_text, &extents); + double x = (extents.width / 2 + extents.x_bearing); + double y = (extents.height / 2 + extents.y_bearing); + cairo_move_to(cr, x0 + w0 / 2 - x, y0 + h0 / 2 - y); + cairo_text_path(cr, my_text); + cairo_fill_preserve(cr); + cairo_set_source_rgba(cr, 0, 0, 0, 1); + cairo_set_line_width(cr, 0.004); + cairo_stroke(cr); + cairo_set_line_width(cr, DEF_WIDTH); } -static void round_button(cairo_t* cr, double x0, double y0, - double rect_width, double rect_height, double radius, - double r, double g, double b) { - - double x1,y1; - - - x1=x0+rect_width; - y1=y0+rect_height; - if (!rect_width || !rect_height) - return; - if (rect_width/2w(), h = window->h(); - - cairo_set_line_width (cr, DEF_WIDTH); - cairo_scale (cr, w,h); - - round_button(cr,0.1,0.05,0.8,0.2,0.4,0,0,1); - round_button(cr,0.1,0.35,0.8,0.2,0.4,1,0,0); - round_button(cr,0.1,0.65,0.8,0.2,0.4,0,1,0); + x1 = x0 + rect_width; + y1 = y0 + rect_height; + if (!rect_width || !rect_height) return; + if (rect_width / 2 < radius) { + if (rect_height / 2 < radius) { + cairo_move_to(cr, x0, (y0 + y1) / 2); + cairo_curve_to(cr, x0, y0, x0, y0, (x0 + x1) / 2, y0); + cairo_curve_to(cr, x1, y0, x1, y0, x1, (y0 + y1) / 2); + cairo_curve_to(cr, x1, y1, x1, y1, (x1 + x0) / 2, y1); + cairo_curve_to(cr, x0, y1, x0, y1, x0, (y0 + y1) / 2); + } else { + cairo_move_to(cr, x0, y0 + radius); + cairo_curve_to(cr, x0, y0, x0, y0, (x0 + x1) / 2, y0); + cairo_curve_to(cr, x1, y0, x1, y0, x1, y0 + radius); + cairo_line_to(cr, x1, y1 - radius); + cairo_curve_to(cr, x1, y1, x1, y1, (x1 + x0) / 2, y1); + cairo_curve_to(cr, x0, y1, x0, y1, x0, y1 - radius); + } + } else { + if (rect_height / 2 < radius) { + cairo_move_to(cr, x0, (y0 + y1) / 2); + cairo_curve_to(cr, x0, y0, x0, y0, x0 + radius, y0); + cairo_line_to(cr, x1 - radius, y0); + cairo_curve_to(cr, x1, y0, x1, y0, x1, (y0 + y1) / 2); + cairo_curve_to(cr, x1, y1, x1, y1, x1 - radius, y1); + cairo_line_to(cr, x0 + radius, y1); + cairo_curve_to(cr, x0, y1, x0, y1, x0, (y0 + y1) / 2); + } else { + cairo_move_to(cr, x0, y0 + radius); + cairo_curve_to(cr, x0, y0, x0, y0, x0 + radius, y0); + cairo_line_to(cr, x1 - radius, y0); + cairo_curve_to(cr, x1, y0, x1, y0, x1, y0 + radius); + cairo_line_to(cr, x1, y1 - radius); + cairo_curve_to(cr, x1, y1, x1, y1, x1 - radius, y1); + cairo_line_to(cr, x0 + radius, y1); + cairo_curve_to(cr, x0, y1, x0, y1, x0, y1 - radius); + } + } + cairo_close_path(cr); + + cairo_pattern_t *pat = + // cairo_pattern_create_linear (0.0, 0.0, 0.0, 1.0); + cairo_pattern_create_radial(0.25, 0.24, 0.11, 0.24, 0.14, 0.35); + cairo_pattern_set_extend(pat, CAIRO_EXTEND_REFLECT); + + cairo_pattern_add_color_stop_rgba(pat, 1.0, r, g, b, 1); + cairo_pattern_add_color_stop_rgba(pat, 0.0, 1, 1, 1, 1); + cairo_set_source(cr, pat); + cairo_fill_preserve(cr); + cairo_pattern_destroy(pat); + + // cairo_set_source_rgb (cr, 0.5, 0.5, 1); cairo_fill_preserve (cr); + cairo_set_source_rgba(cr, 0, 0, 0.5, 0.3); + cairo_stroke(cr); + + cairo_set_font_size(cr, 0.08); + centered_text(cr, x0, y0, rect_width, rect_height, "FLTK loves Cairo!"); } -int main(int argc, char** argv) { +// The cairo rendering cb called during Fl_Cairo_Window::draw() : +static void my_cairo_draw_cb(Fl_Cairo_Window *window, cairo_t *cr) { + + int w = window->w(), h = window->h(); + + cairo_set_line_width(cr, DEF_WIDTH); + cairo_scale(cr, w, h); + + round_button(cr, 0.1, 0.05, 0.8, 0.2, 0.4, 0, 0, 1); + round_button(cr, 0.1, 0.35, 0.8, 0.2, 0.4, 1, 0, 0); + round_button(cr, 0.1, 0.65, 0.8, 0.2, 0.4, 0, 1, 0); + return; +} + +int main(int argc, char **argv) { #ifdef AUTOLINK Fl::cairo_autolink_context(true); #endif @@ -143,14 +139,14 @@ int main(int argc, char** argv) { window.resizable(&window); window.color(FL_WHITE); window.set_draw_cb(my_cairo_draw_cb); - window.show(argc,argv); + window.show(argc, argv); return Fl::run(); } #else #include -int main(int argc, char** argv) { +int main(int argc, char **argv) { fl_message("please configure fltk with CAIRO enabled (--enable-cairo or --enable-cairoext)"); return 0; }