59#define M_PI 3.141592654
62#define PREAMBLE(scaling, line_scaling, x_offset, y_offset) { \
64 cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); \
65 const float s = ((w < h) ? w : h) * scaling; \
66 cairo_translate(cr, x + (w / 2.0) - (s / 2.0), y + (h / 2.0) - (s / 2.0)); \
67 cairo_scale(cr, s, s); \
68 cairo_translate(cr, x_offset, y_offset); \
69 cairo_matrix_t matrix; \
70 cairo_get_matrix(cr, &matrix); \
71 cairo_set_line_width(cr, 1. / hypot(matrix.xx, matrix.yy)); }
73#define FINISH { cairo_identity_matrix(cr); \
78 const double degrees =
M_PI / 180.0;
80 cairo_new_sub_path (cr);
81 cairo_arc (cr, 0.9, 0.1, 0.1, -90 * degrees, 0 * degrees);
82 cairo_arc (cr, 0.9, 0.9, 0.1, 0 * degrees, 90 * degrees);
83 cairo_arc (cr, 0.1, 0.9, 0.1, 90 * degrees, 180 * degrees);
84 cairo_arc (cr, 0.1, 0.1, 0.1, 180 * degrees, 270 * degrees);
85 cairo_close_path (cr);
105 const double axis_len = sqrt(0.39 * 0.39 + 0.75 * 0.75);
106 const double axis_x = 0.39 / axis_len;
107 const double axis_y = 0.75 / axis_len;
109 const double curve_ctrl_axis_offset = -0.2;
110 const double curve_ctrl_0_x = 0.39 + axis_x * curve_ctrl_axis_offset;
111 const double curve_ctrl_0_y = 0.75 + axis_y * curve_ctrl_axis_offset;
115 const double base_axis_offset = 0.33 * axis_x + 0.49 * axis_y;
116 const double tail_axis_offset = 0.3;
117 const double base_center_x = axis_x * (base_axis_offset + tail_axis_offset);
118 const double base_center_y = axis_y * (base_axis_offset + tail_axis_offset);
119 const double tail_length = 0.47;
120 const double tail_half_width = 0.09;
121 const double tail_dir_x = axis_x;
122 const double tail_dir_y = axis_y;
123 const double tail_half_length = tail_length * 0.5;
124 const double tail_start_x = base_center_x - tail_dir_x * tail_half_length;
125 const double tail_start_y = base_center_y - tail_dir_y * tail_half_length;
126 const double tail_perp_x = -tail_dir_y * tail_half_width;
127 const double tail_perp_y = tail_dir_x * tail_half_width;
128 const double tail_end_x = base_center_x + tail_dir_x * tail_half_length;
129 const double tail_end_y = base_center_y + tail_dir_y * tail_half_length;
132 cairo_translate(cr, tip_x, tip_y);
136 cairo_move_to(cr, 0.0, 0.0);
137 cairo_line_to(cr, 0.78, 0.60);
138 cairo_curve_to(cr, curve_ctrl_0_x, curve_ctrl_0_y, curve_ctrl_0_x, curve_ctrl_0_y,
140 cairo_line_to(cr, 0.0, 1.0);
141 cairo_close_path(cr);
145 cairo_move_to(cr, tail_start_x + tail_perp_x, tail_start_y + tail_perp_y);
146 cairo_line_to(cr, tail_end_x + tail_perp_x, tail_end_y + tail_perp_y);
147 cairo_line_to(cr, tail_end_x - tail_perp_x, tail_end_y - tail_perp_y);
148 cairo_line_to(cr, tail_start_x - tail_perp_x, tail_start_y - tail_perp_y);
149 cairo_close_path(cr);
169 const float base_line_width = cairo_get_line_width(cr);
170 cairo_set_line_width(cr, base_line_width * line_width_scale);
172 cairo_move_to(cr,
x, y -
size);
173 cairo_line_to(cr,
x, y +
size);
174 cairo_move_to(cr,
x -
size, y);
175 cairo_line_to(cr,
x +
size, y);
178 cairo_set_line_width(cr, base_line_width);
192 cairo_translate(cr,
x, y);
193 cairo_scale(cr, w, h);
194 cairo_rectangle(cr, 0.1, 0.1, 0.8, 0.8);
196 cairo_set_source_rgba(cr, 0, 0, 0, 0.6);
206 cairo_move_to(cr, 0.1, 0.1);
207 cairo_line_to(cr, 0.9, 0.1);
208 cairo_move_to(cr, 0.1, 0.5);
209 cairo_line_to(cr, 0.9, 0.5);
210 cairo_move_to(cr, 0.1, 0.9);
211 cairo_line_to(cr, 0.9, 0.9);
220 cairo_matrix_t hflip_matrix;
221 cairo_matrix_init(&hflip_matrix, -1, 0, 0, 1, 1, 0);
223 double C = cosf(-(
M_PI / 2.0f)),
S = sinf(-(
M_PI / 2.0f));
226 cairo_matrix_t rotation_matrix;
227 cairo_matrix_init(&rotation_matrix,
C,
S, -
S,
C, 0.5 -
C * 0.5 +
S * 0.5, 0.5 -
S * 0.5 -
C * 0.5);
231 cairo_transform(cr, &rotation_matrix);
233 cairo_transform(cr, &hflip_matrix);
235 cairo_move_to(cr, 0.05, 0.5);
236 cairo_line_to(cr, 0.05, 0.1);
237 cairo_line_to(cr, 0.45, 0.5);
238 cairo_line_to(cr, 0.05, 0.9);
239 cairo_line_to(cr, 0.05, 0.5);
257 cairo_stroke_preserve(cr);
258 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
268 cairo_matrix_t hflip_matrix;
269 cairo_matrix_init(&hflip_matrix, -1, 0, 0, 1, 1, 0);
271 double C = cosf(-(
M_PI / 2.0)),
S = sinf(-(
M_PI / 2.0));
274 cairo_matrix_t rotation_matrix;
275 cairo_matrix_init(&rotation_matrix,
277 0.5 -
C * 0.5 +
S * 0.5,
278 0.5 -
S * 0.5 -
C * 0.5);
281 cairo_transform(cr, &rotation_matrix);
283 cairo_transform(cr, &hflip_matrix);
285 cairo_move_to(cr, 0.25, 0.1);
286 cairo_line_to(cr, 0.75, 0.5);
287 cairo_line_to(cr, 0.25, 0.9);
298 cairo_matrix_t hflip_matrix;
299 cairo_matrix_init(&hflip_matrix, -1, 0, 0, 1, 1, 0);
301 double C = cosf(-(
M_PI / 2.0f)),
S = sinf(-(
M_PI / 2.0f));
304 cairo_matrix_t rotation_matrix;
305 cairo_matrix_init(&rotation_matrix,
C,
S, -
S,
C, 0.5 -
C * 0.5 +
S * 0.5, 0.5 -
S * 0.5 -
C * 0.5);
309 cairo_transform(cr, &rotation_matrix);
311 cairo_transform(cr, &hflip_matrix);
313 cairo_move_to(cr, 0.2, 0.1);
314 cairo_line_to(cr, 0.9, 0.5);
315 cairo_line_to(cr, 0.2, 0.9);
325 cairo_move_to(cr, 0.1, 0.5);
326 cairo_line_to(cr, 0.9, 0.5);
330 cairo_matrix_t hflip_matrix;
331 cairo_matrix_init(&hflip_matrix, -1, 0, 0, 1, 1, 0);
335 cairo_transform(cr, &hflip_matrix);
337 cairo_move_to(cr, 0.4, 0.1);
338 cairo_line_to(cr, 0.0, 0.5);
339 cairo_line_to(cr, 0.4, 0.9);
349 cairo_move_to(cr, 0.1, 0.05);
350 cairo_line_to(cr, 0.1, 0.95);
351 cairo_move_to(cr, 0.0, 0.80);
352 cairo_line_to(cr, 0.1, 0.95);
353 cairo_line_to(cr, 0.2, 0.80);
358 cairo_move_to(cr, 0.35, 0.05);
359 cairo_line_to(cr, 0.45, 0.05);
360 cairo_move_to(cr, 0.35, 0.35);
361 cairo_line_to(cr, 0.65, 0.35);
362 cairo_move_to(cr, 0.35, 0.65);
363 cairo_line_to(cr, 0.85, 0.65);
364 cairo_move_to(cr, 0.35, 0.95);
365 cairo_line_to(cr, 1.00, 0.95);
369 cairo_move_to(cr, 0.35, 0.05);
370 cairo_line_to(cr, 1.00, 0.05);
371 cairo_move_to(cr, 0.35, 0.35);
372 cairo_line_to(cr, 0.85, 0.35);
373 cairo_move_to(cr, 0.35, 0.65);
374 cairo_line_to(cr, 0.65, 0.65);
375 cairo_move_to(cr, 0.35, 0.95);
376 cairo_line_to(cr, 0.45, 0.95);
387 double C = cosf(-1.570796327f),
S = sinf(-1.570796327f);
388 cairo_matrix_t rotation_matrix;
389 cairo_matrix_init(&rotation_matrix,
C,
S, -
S,
C, 0.5 -
C * 0.5 +
S * 0.5, 0.5 -
S * 0.5 -
C * 0.5);
392 cairo_transform(cr, &rotation_matrix);
394 cairo_move_to(cr, 0.05, 0.4);
395 cairo_line_to(cr, 0.05, 0);
396 cairo_line_to(cr, 0.95, 0.4);
397 cairo_line_to(cr, 0.05, 0.4);
398 cairo_fill_preserve(cr);
401 cairo_move_to(cr, 0.05, 0.6);
402 cairo_line_to(cr, 0.05, 1.0);
403 cairo_line_to(cr, 0.95, 0.6);
404 cairo_line_to(cr, 0.05, 0.6);
414 cairo_arc(cr, 0.5, 0.5, 0.46, 0, 6.2832);
415 cairo_move_to(cr, 0.5, 0.32);
416 cairo_line_to(cr, 0.5, 0.68);
426 cairo_move_to(cr, 0.275, 0.1);
427 cairo_line_to(cr, 0.1, 0.1);
428 cairo_line_to(cr, 0.1, 0.9);
429 cairo_line_to(cr, 0.9, 0.9);
430 cairo_line_to(cr, 0.9, 0.175);
431 cairo_line_to(cr, 0.825, 0.1);
432 cairo_line_to(cr, 0.825, 0.5);
433 cairo_line_to(cr, 0.275, 0.5);
434 cairo_line_to(cr, 0.275, 0.1);
437 cairo_rectangle(cr, 0.5, 0.025, 0.17, 0.275);
448 cairo_arc(cr, 0.5, 0.5, 0.46, (-50 * 3.145 / 180), (230 * 3.145 / 180));
449 cairo_move_to(cr, 0.5, 0.0);
450 cairo_line_to(cr, 0.5, 0.5);
461 const double bar_w = prelight ? 0.76 : 0.16;
462 const double bar_x = 0.5 - bar_w * 0.5;
463 const double bar_y = 0.08;
464 const double bar_h = 0.84;
465 const double radius = bar_w * 0.5;
467 cairo_new_sub_path(cr);
468 cairo_arc(cr, bar_x + bar_w - radius, bar_y + radius, radius, -
M_PI / 2.0, 0.0);
469 cairo_arc(cr, bar_x + bar_w - radius, bar_y + bar_h - radius, radius, 0.0,
M_PI / 2.0);
470 cairo_arc(cr, bar_x + radius, bar_y + bar_h - radius, radius,
M_PI / 2.0,
M_PI);
471 cairo_arc(cr, bar_x + radius, bar_y + radius, radius,
M_PI, 3.0 *
M_PI / 2.0);
472 cairo_close_path(cr);
482 const double dot_radius = 0.09;
484 cairo_arc(cr, 0.5, 0.5, dot_radius, 0.0, 2.0 *
M_PI);
494 cairo_arc(cr, 0.5, 0.5, 0.46, (-50 * 3.145 / 180), (230 * 3.145 / 180));
495 cairo_move_to(cr, 0.5, 0.0);
496 cairo_line_to(cr, 0.5, 0.5);
506 cairo_arc(cr, 0.5, 0.5, 0.50, 0, 2 *
M_PI);
509 cairo_arc(cr, 0.5, 0.5, 0.30, 0, 2 *
M_PI);
519 cairo_arc(cr, 0.5, 0.5, 0.50, 0, 2 *
M_PI);
529 cairo_move_to(cr, 0.1, 0.1);
530 cairo_line_to(cr, 0.9, 0.9);
531 cairo_move_to(cr, 0.1, 0.9);
532 cairo_line_to(cr, 0.9, 0.1);
547 cairo_arc(cr, 0.5, 0.5, 0.45, 0, 2 *
M_PI);
549 cairo_set_source_rgba(cr, 0.2, 0.2, 0.2, 1.0);
553 cairo_move_to(cr, 0.5, 0.25);
554 cairo_line_to(cr, 0.5, 0.75);
555 cairo_move_to(cr, 0.25, 0.5);
556 cairo_line_to(cr, 0.75, 0.5);
561 cairo_move_to(cr, 0.25, 0.5);
562 cairo_line_to(cr, 0.75, 0.5);
566 cairo_identity_matrix(cr);
578 cairo_set_source_rgba(cr, 0.2, 0.2, 0.2, 1.0);
579 cairo_move_to(cr, 0.5, 0.25);
580 cairo_line_to(cr, 0.5, 0.75);
581 cairo_move_to(cr, 0.25, 0.5);
582 cairo_line_to(cr, 0.75, 0.5);
592 cairo_move_to(cr, 0.4, 0.1);
593 cairo_line_to(cr, 0.4, 0.9);
594 cairo_line_to(cr, 0.2, 0.7);
595 cairo_move_to(cr, 0.6, 0.9);
596 cairo_line_to(cr, 0.6, 0.1);
597 cairo_line_to(cr, 0.8, 0.3);
607 cairo_move_to(cr, 0.5, 0.1);
608 cairo_line_to(cr, 0.5, 0.9);
609 cairo_move_to(cr, 0.1, 0.5);
610 cairo_line_to(cr, 0.9, 0.5);
620 cairo_move_to(cr, 0.1, 0.5);
621 cairo_line_to(cr, 0.9, 0.5);
631 cairo_move_to(cr, 0.3, 0.3);
632 cairo_line_to(cr, 0.7, 0.7);
633 cairo_move_to(cr, 0.7, 0.3);
634 cairo_line_to(cr, 0.3, 0.7);
644 cairo_move_to(cr, 0.05, 0.05);
645 cairo_line_to(cr, 0.125, 0.05);
646 cairo_move_to(cr, 0.25, 0.35);
647 cairo_line_to(cr, 0.325, 0.35);
648 cairo_move_to(cr, 0.45, 0.65);
649 cairo_line_to(cr, 0.525, 0.65);
650 cairo_move_to(cr, 0.25, 0.95);
651 cairo_line_to(cr, 0.325, 0.95);
654 cairo_move_to(cr, 0.35, 0.05);
655 cairo_line_to(cr, 0.95, 0.05);
656 cairo_move_to(cr, 0.55, 0.35);
657 cairo_line_to(cr, 0.95, 0.35);
658 cairo_move_to(cr, 0.75, 0.65);
659 cairo_line_to(cr, 0.95, 0.65);
660 cairo_move_to(cr, 0.55, 0.95);
661 cairo_line_to(cr, 0.95, 0.95);
671 cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);
672 cairo_arc(cr, 0.5, 0.5, 0.46, 0, 2.0 *
M_PI);
674 cairo_arc(cr, 0.5, 0.5, 0.46, 3.0 *
M_PI / 2.0,
M_PI / 2.0);
685 const cairo_operator_t prev_operator = cairo_get_operator(cr);
686 cairo_push_group(cr);
687 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
690 cairo_move_to(cr, 1., 0.4);
691 cairo_curve_to(cr, 0.9, -0.1, 0.4, 0.1, 0., 0.5);
694 cairo_arc(cr, 0.35, 0.20, 0.1, 0, 2 *
M_PI);
699 cairo_pop_group_to_source(cr);
700 cairo_set_operator(cr, prev_operator);
711 const cairo_operator_t prev_operator = cairo_get_operator(cr);
712 cairo_push_group(cr);
713 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
715 cairo_arc(cr, 0.5, 0.5, 0.5, 0, 2.0 *
M_PI);
719 cairo_arc(cr, 0.5, 0.5, 0.075, 0, 2 *
M_PI);
723 cairo_arc(cr, 1., 0.5, 0.075, 0, 2 *
M_PI);
726 cairo_pop_group_to_source(cr);
727 cairo_set_operator(cr, prev_operator);
747 const cairo_operator_t prev_operator = cairo_get_operator(cr);
748 cairo_push_group(cr);
749 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
751 const double scale_x = 0.95 / sqrt(2.0);
752 const double scale_y = 0.95;
754 const double radius = sqrt(0.5 / (scale_x * scale_x + scale_y * scale_y));
757 cairo_translate(cr, 0.5, 0.5);
758 cairo_rotate(cr, M_PI_4);
759 cairo_scale(cr, scale_x, scale_y);
760 cairo_arc(cr, 0.0, 0.0, radius, 0.0, 2.0 *
M_PI);
765 cairo_arc(cr, 0.5, 0.5, 0.075, 0, 2 *
M_PI);
769 const double c = M_SQRT1_2;
771 const double major_x = 0.5 + scale_y * radius * c;
772 const double major_y = 0.5 - scale_y * radius * c;
773 cairo_arc(cr, major_x, major_y, 0.075, 0, 2 *
M_PI);
776 const double minor_x = 0.5 + scale_x * radius * c;
777 const double minor_y = 0.5 + scale_x * radius * c;
778 cairo_arc(cr, minor_x, minor_y, 0.075, 0, 2 *
M_PI);
781 cairo_pop_group_to_source(cr);
782 cairo_set_operator(cr, prev_operator);
794 cairo_pattern_t *src = cairo_get_source(cr);
795 double r = 0.7,
g = 0.7, b = 0.7, a = 1.0;
796 if(cairo_pattern_get_rgba(src, &
r, &
g, &b, &a) != CAIRO_STATUS_SUCCESS)
803 cairo_pattern_t *pat = cairo_pattern_create_linear(0.0, 1.0, 1.0, 0.0);
804 cairo_pattern_add_color_stop_rgba(pat, 0.33,
r,
g, b, 0.3);
805 cairo_pattern_add_color_stop_rgba(pat, 0.66,
r,
g, b, 0.);
806 cairo_rectangle(cr, 0.0, 0.0, 1, 1);
807 cairo_set_source(cr, pat);
809 cairo_pattern_destroy(pat);
813 const double line_width = cairo_get_line_width(cr);
814 const double thick_width = line_width * 2.;
815 const double triangle_size = 0.4;
816 const double triangle_width = 0.66 * triangle_size;
817 const double triangle_height = triangle_size;
820 const double angle = -M_PI_4;
821 const double half_width = triangle_width * 0.5;
822 const double tip_x = cos(angle);
823 const double tip_y = sin(angle);
824 const double base_x = -tip_y;
825 const double base_y = tip_x;
828 const double center_x = 0.5 - triangle_height * tip_x / 3.0;
829 const double center_y = 0.5 - triangle_height * tip_y / 3.0;
831 cairo_move_to(cr, center_x - half_width * base_x, center_y - half_width * base_y);
832 cairo_line_to(cr, center_x + half_width * base_x, center_y + half_width * base_y);
833 cairo_line_to(cr, center_x + triangle_height * tip_x, center_y + triangle_height * tip_y);
834 cairo_close_path(cr);
840 cairo_rectangle(cr, 0.0, 0.0, 1, 1);
843 double pattern[2] = {0.1f, 0.2f};
844 cairo_set_dash(cr, pattern, 2, 0);
846 cairo_move_to(cr, 0.5, 0.);
847 cairo_line_to(cr, 1., 0.5);
849 cairo_move_to(cr, 0., 0.5);
850 cairo_line_to(cr, 0.5, 1.);
852 cairo_set_line_width(cr, thick_width);
863 const cairo_operator_t prev_operator = cairo_get_operator(cr);
864 cairo_push_group(cr);
865 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
867 const double nodes[5][2] =
876 const int points_type[5] = {1, 0, 1, 1, 1};
878 cairo_move_to(cr, nodes[0][0], nodes[0][1]);
879 cairo_line_to(cr, nodes[1][0], nodes[1][1]);
880 cairo_line_to(cr, nodes[2][0], nodes[2][1]);
881 cairo_curve_to(cr, 0.95, 0.60, 0.75, 0.90, nodes[3][0], nodes[3][1]);
882 cairo_curve_to(cr, 0.60, 0.7, 0.5, 0.75, nodes[4][0], nodes[4][1]);
883 cairo_curve_to(cr, 0.05, 0.70, 0.05, 0.80, nodes[0][0], nodes[0][1]);
886 for (
int i = 0;
i < 5;
i++)
888 const float radius = 0.075;
891 const float length = radius * 0.7071f;
892 cairo_rectangle(cr, nodes[
i][0] - length, nodes[
i][1] - length, 2 * length, 2 * length);
895 cairo_arc(cr, nodes[
i][0], nodes[
i][1], radius, 0, 2 *
M_PI);
896 cairo_fill_preserve(cr);
900 cairo_pop_group_to_source(cr);
901 cairo_set_operator(cr, prev_operator);
911 cairo_rectangle(cr, 0.1, 0.1, 0.9, 0.9);
912 cairo_stroke_preserve(cr);
913 cairo_pattern_t *pat = NULL;
914 pat = cairo_pattern_create_linear(0.1, 0.5, 0.9, 0.5);
915 cairo_pattern_add_color_stop_rgba(pat, 0.1, 0.6, 0.6, 0.6, 0.9);
916 cairo_pattern_add_color_stop_rgba(pat, 1.0, 0.2, 0.2, 0.2, 0.9);
917 cairo_rectangle(cr, 0.1, 0.1, 0.8, 0.8);
918 cairo_set_source(cr, pat);
920 cairo_pattern_destroy(pat);
929 cairo_arc(cr, 0.5, 0.5, 0.4, 0, 2.0 *
M_PI);
931 cairo_arc(cr, 0.5, 0.5, 0.4, 3.0 *
M_PI / 2.0,
M_PI / 2.0);
934 cairo_move_to(cr, -0.05, 1.0);
935 cairo_arc_negative(cr, 0.25, 0.85, 0.15, 0.5 *
M_PI, 1.12 *
M_PI);
936 cairo_arc(cr, -0.236, 0.72, 0.35, 0.08 *
M_PI, 0.26 *
M_PI);
937 cairo_close_path(cr);
940 cairo_set_line_width(cr, 0.01);
941 cairo_arc(cr, 0.98, 0.0, 0.055, 1.2 *
M_PI, 0.2 *
M_PI);
942 cairo_arc(cr, 0.48, 0.72, 0.09, 0.2 *
M_PI, 1.2 *
M_PI);
943 cairo_close_path(cr);
954 const cairo_operator_t prev_operator = cairo_get_operator(cr);
955 cairo_push_group(cr);
956 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
960 const double nodes[3][2] = {{0.1, 0.90},
964 cairo_move_to(cr, nodes[0][0], nodes[0][1]);
965 cairo_curve_to(cr, 0.00, 0.75, 0.1, 0.18, nodes[1][0], nodes[1][1]);
966 cairo_curve_to(cr, 0.82, 0.7, 0.8, 0.2, nodes[2][0], nodes[2][1]);
969 for(
int i = 0;
i < 3;
i++)
971 cairo_arc(cr, nodes[
i][0], nodes[
i][1], 0.075, 0, 2 *
M_PI);
972 cairo_fill_preserve(cr);
979 cairo_pop_group_to_source(cr);
980 cairo_set_operator(cr, prev_operator);
990 cairo_arc(cr, 0.5, 0.5, 0.5, -
M_PI,
M_PI);
1001 cairo_move_to(cr, 1.0, 1.0);
1002 cairo_line_to(cr, 0.9, 0.7);
1003 cairo_line_to(cr, 0.2, 0.0);
1004 cairo_line_to(cr, 0.0, 0.2);
1005 cairo_line_to(cr, 0.7, 0.9);
1006 cairo_line_to(cr, 1.0, 1.0);
1010 cairo_move_to(cr, 0.8, 0.8);
1011 cairo_line_to(cr, 0.15, 0.15);
1015 cairo_move_to(cr, 0.9, 0.7);
1016 cairo_line_to(cr, 0.7, 0.9);
1020 cairo_move_to(cr, 1.05, 1.05);
1021 cairo_line_to(cr, 0.95, 0.95);
1029void _gradient_arc(cairo_t *cr,
double lw,
int nb_steps,
double x_center,
double y_center,
double radius,
1030 double angle_from,
double angle_to,
double color_from,
double color_to,
double alpha)
1032 cairo_set_line_width(cr,
lw);
1034 double *portions = malloc(
sizeof(
double) * (1 + nb_steps));
1037 angle_from = angle_from +
M_PI;
1038 angle_to = angle_to +
M_PI;
1039 double step = (angle_to - angle_from) / nb_steps;
1040 for(
int i = 0;
i < nb_steps;
i++) portions[
i] = angle_from +
i * step;
1041 portions[nb_steps] = angle_to;
1043 for(
int i = 0;
i < nb_steps;
i++)
1045 double color = color_from +
i * (color_to - color_from) / nb_steps;
1046 cairo_set_source_rgba(cr, color, color, color, alpha);
1047 cairo_arc(cr, x_center, y_center, radius, portions[
i], portions[
i + 1]);
1057 cairo_pattern_t *
p = cairo_get_source (cr);
1060 cairo_pattern_get_rgba (
p, &
r, &
g, &b, &a);
1063 _gradient_arc(cr, 0.125, 16, 0.5, 0.5, 0.5, -
M_PI / 3.0,
M_PI +
M_PI / 3.0, start,
r, a);
1066 cairo_move_to(cr, 1, 0.2);
1067 cairo_line_to(cr, 1.2, 0.2);
1068 cairo_line_to(cr, 1.1, 0.0);
1071 cairo_move_to(cr, 1.1, 0.6);
1072 cairo_line_to(cr, 1.325, 0.55);
1073 cairo_line_to(cr, 1.275, 0.75);
1084 cairo_pattern_t *
p = cairo_get_source (cr);
1087 cairo_pattern_get_rgba (
p, &
r, &
g, &b, &a);
1091 _gradient_arc(cr, 0.125, 16, 0.75, 0.6, 0.4, -
M_PI / 3.0,
M_PI +
M_PI / 3.0, start,
r, a);
1094 cairo_move_to(cr, 1.2, 0.35);
1095 cairo_line_to(cr, 1.35, 0.35);
1096 cairo_line_to(cr, 1.275, 0.15);
1099 cairo_move_to(cr, 1.25, 0.7);
1100 cairo_line_to(cr, 1.4, 0.6);
1101 cairo_line_to(cr, 1.4, 0.8);
1105 cairo_scale(cr, 0.8, 0.8);
1106 cairo_translate(cr, 0.05, -0.05);
1109 cairo_move_to(cr, 1.0, 1.0);
1110 cairo_line_to(cr, 0.9, 0.7);
1111 cairo_line_to(cr, 0.2, 0.0);
1112 cairo_line_to(cr, 0.0, 0.2);
1113 cairo_line_to(cr, 0.7, 0.9);
1114 cairo_line_to(cr, 1.0, 1.0);
1118 cairo_move_to(cr, 0.8, 0.8);
1119 cairo_line_to(cr, 0.25, 0.25);
1123 cairo_move_to(cr, 0.9, 0.7);
1124 cairo_line_to(cr, 0.7, 0.9);
1128 cairo_move_to(cr, 1.05, 1.05);
1129 cairo_line_to(cr, 0.95, 0.95);
1139 cairo_arc(cr, 0.5, 0.5, 0.5, 0, 2 *
M_PI);
1143 for(
int i = 0;
i < 4;
i++)
1144 for(
int j = 0; j < 4; j++)
1147 cairo_rectangle(cr,
i / 4.0, j / 4.0, 1.0 / 4.0, 1.0 / 4.0);
1158 cairo_arc(cr, 0.3, 0.3, 0.3, 0, 6.2832);
1160 cairo_move_to(cr, 0.0, 1.0);
1161 cairo_curve_to(cr, 0.0, 0.5, 1.0, 0.6, 1.0, 0.0);
1171 cairo_arc(cr, 0.5, 0.5, 0.46, 0, 2.0 *
M_PI);
1173 cairo_arc(cr, 0.5, 0.5, 0.46, 3.0 *
M_PI / 2.0,
M_PI / 2.0);
1185 const float r = fminf(w / 3.6, h / 2.0) * 0.95;
1186 const float padding_left = (w -
r * 3.6) / 2.0;
1187 cairo_arc(cr, padding_left +
r, h / 2.0,
r, 0, 2.0 *
M_PI);
1188 cairo_arc(cr, padding_left +
r * 2.6, h / 2.0,
r, 0, 2.0 *
M_PI);
1198 const float r = fminf(w / 3.6, h / 2.0) * 0.95;
1199 const float padding_left = (w -
r * 3.6) / 2.0;
1203 cairo_set_line_width(cr, cairo_get_line_width(cr) * 0.5);
1204 cairo_arc(cr, padding_left +
r, h / 2.0,
r, 0, 2.0 *
M_PI);
1206 cairo_arc(cr, padding_left +
r * 2.6, h / 2.0,
r, 0, 2.0 *
M_PI);
1211 cairo_push_group(cr);
1212 cairo_arc(cr, padding_left +
r * 1.3, h / 2.0,
r * 0.85, 0, 2.0 *
M_PI);
1214 cairo_set_operator(cr, CAIRO_OPERATOR_IN);
1215 cairo_arc(cr, padding_left +
r * 2.3, h / 2.0,
r * 0.85, 0, 2.0 *
M_PI);
1217 cairo_pop_group_to_source(cr);
1227 const float r = fminf(w / 3.6, h / 2.0) * 0.95;
1228 const float padding_left = (w -
r * 3.6) / 2.0;
1231 cairo_arc(cr, padding_left +
r, h / 2.0,
r, 0, 2.0 *
M_PI);
1235 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
1236 cairo_arc(cr, padding_left +
r * 2.6, h / 2.0,
r, 0, 2.0 *
M_PI);
1240 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
1241 cairo_set_line_width(cr, cairo_get_line_width(cr) * 0.5);
1242 cairo_arc(cr, padding_left +
r * 2.6, h / 2.0,
r, 0, 2.0 *
M_PI);
1252 const float r = fminf(w / 3.6, h / 2.0) * 0.95;
1253 const float padding_left = (w -
r * 3.6) / 2.0;
1257 cairo_set_line_width(cr, cairo_get_line_width(cr) * 0.5);
1258 cairo_arc(cr, padding_left +
r, h / 2.0,
r, 0, 2.0 *
M_PI);
1260 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
1261 cairo_arc(cr, padding_left +
r * 2.3, h / 2.0,
r * 0.85, 0, 2.0 *
M_PI);
1266 cairo_push_group(cr);
1267 cairo_arc(cr, padding_left +
r * 2.6, h / 2.0,
r, 0, 2.0 *
M_PI);
1269 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
1270 cairo_arc(cr, padding_left +
r * 1.3, h / 2.0,
r * 0.85, 0, 2.0 *
M_PI);
1272 cairo_pop_group_to_source(cr);
1279 cairo_arc(cr, 0.5, 0.5, 0.35, 0, 2.0 *
M_PI);
1280 cairo_move_to(cr, 0.5, 0.15);
1281 cairo_line_to(cr, 0.5, 0.5);
1297 const double offset = 0.17;
1299 cairo_arc(cr, 0.5, 0.5 + 0.3, 0.6, (1.0 + offset) *
M_PI, (2.0 - offset) *
M_PI);
1301 cairo_arc(cr, 0.5, 0.5 - 0.3, 0.6, offset *
M_PI, (1.0 - offset) *
M_PI);
1302 cairo_close_path(cr);
1303 cairo_clip_preserve(cr);
1306 const double iris_y = 0.45;
1307 cairo_arc(cr, 0.5, iris_y, 0.30, 0, 2 *
M_PI);
1308 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
1310 cairo_arc(cr, 0.5, iris_y, 0.10, 0, 2 *
M_PI);
1317 cairo_move_to(cr, 0.1, 0.9);
1318 cairo_line_to(cr, 0.9, 0.1);
1329 cairo_arc(cr, 0.5, 0.5, 0.5, (-80 * 3.145 / 180), (150 * 3.145 / 180));
1330 cairo_line_to(cr, 0.5, 0.5);
1343 cairo_move_to(cr, 0.35, 0.15);
1344 cairo_line_to(cr, 0.35, 0.85);
1347 cairo_move_to(cr, 0.65, 0.15);
1348 cairo_line_to(cr, 0.65, 0.85);
1351 cairo_move_to(cr, 0.15, 0.35);
1352 cairo_line_to(cr, 0.85, 0.35);
1355 cairo_move_to(cr, 0.15, 0.65);
1356 cairo_line_to(cr, 0.85, 0.65);
1367 cairo_arc(cr, 0.5, 0.5, 0.2, 0, 2. *
M_PI);
1368 cairo_move_to(cr, 0.3, 0.5);
1369 cairo_line_to(cr, 0.7, 0.5);
1373 const double center = 0.5;
1374 const double width = 1.;
1376 const double offset_h =
height / 2.;
1377 const double offset_w =
width / 2.;
1379 const double tick_length = 0.2;
1380 const double radius = 0.1;
1382 const double left = center - offset_w;
1383 const double right = center + offset_w;
1384 const double top = center - offset_h;
1385 const double bottom = center + offset_h;
1387 const double degrees =
M_PI / 180.0;
1390 cairo_move_to(cr, left,
top + tick_length);
1391 cairo_arc (cr, left + radius,
top + radius, radius, 180 * degrees, 270 * degrees);
1392 cairo_line_to(cr, left + tick_length,
top);
1396 cairo_move_to(cr, left + tick_length, bottom);
1397 cairo_arc (cr, left + radius, bottom - radius, radius, 90 * degrees, 180 * degrees);
1398 cairo_line_to(cr, left, bottom - tick_length);
1402 cairo_move_to(cr, right, bottom - tick_length);
1403 cairo_arc (cr, right - radius, bottom - radius, radius, 0 * degrees, 90 * degrees);
1404 cairo_line_to(cr, right - tick_length, bottom);
1408 cairo_move_to(cr, right - tick_length,
top);
1409 cairo_arc (cr, right - radius,
top + radius, radius, -90 * degrees, 0 * degrees);
1410 cairo_line_to(cr, right,
top + tick_length);
1421 cairo_arc(cr, 0.5, 0.5, 0.2, 0, 2. *
M_PI);
1423 cairo_arc(cr, 0.5, 0.5, 0.1,
M_PI,
M_PI+M_PI_2);
1428 cairo_move_to(cr, 0, 0.25);
1429 cairo_line_to(cr, 0, 0.85);
1430 cairo_line_to(cr, 0.95, 0.85);
1431 cairo_line_to(cr, 0.95, 0.25);
1432 cairo_line_to(cr, 0.75, 0.25);
1433 cairo_line_to(cr, 0.65, 0.15);
1434 cairo_line_to(cr, 0.35, 0.15);
1435 cairo_line_to(cr, 0.25, 0.25);
1436 cairo_close_path(cr);
1446 cairo_move_to(cr, 0.0, 1.0);
1447 cairo_curve_to(cr, 0.3, 1.0, 0.3, 0.0, 0.5, 0.0);
1448 cairo_curve_to(cr, 0.7, 0.0, 0.7, 1.0, 1.0, 1.0);
1458 cairo_pattern_t *p_src = cairo_get_source(cr);
1460 cairo_pattern_get_rgba(p_src, &
r, &
g, &b, &a);
1462 cairo_pattern_t *pat;
1463 pat = cairo_pattern_create_linear(0.0, 0.0, 0.0, 1.0);
1465 cairo_pattern_add_color_stop_rgba(pat, 0.0,
r,
g, b, a * 0.0);
1466 cairo_pattern_add_color_stop_rgba(pat, 0.1,
r,
g, b, a * 0.1);
1467 cairo_pattern_add_color_stop_rgba(pat, 0.5,
r,
g, b, a * 1.0);
1468 cairo_pattern_add_color_stop_rgba(pat, 0.6,
r,
g, b, a * 1.0);
1469 cairo_pattern_add_color_stop_rgba(pat, 1.0,
r,
g, b, a * 0.2);
1471 cairo_rectangle(cr, 0.0, 0.0, 0.3, 0.9);
1472 cairo_set_source(cr, pat);
1476 cairo_scale(cr, 1.0, -1.0);
1477 cairo_translate(cr, 0.0, -1.0);
1478 cairo_rectangle(cr, 0.25, 0.0, 0.5, 1.0);
1479 cairo_set_source(cr, pat);
1483 cairo_rectangle(cr, 0.7, 0.0, 0.3, 0.9);
1484 cairo_set_source(cr, pat);
1487 cairo_pattern_destroy(pat);
1496 cairo_move_to(cr, 0.0, 0.3);
1497 cairo_curve_to(cr, 0.1, 0.0, 0.7, 0.3, 1.0, 0.7);
1498 cairo_curve_to(cr, 0.9, 0.8, 0.1, 0.8, 0.0, 0.3);
1508 cairo_move_to(cr, 0.0, 1.0);
1509 cairo_line_to(cr, 1.0, 0.0);
1519 cairo_move_to(cr, 0.0, 1.0);
1520 cairo_curve_to(cr, 0.0, 0.33, 0.66, 0.0, 1.0, 0.0);
1530 cairo_pattern_t *p_src = cairo_get_source(cr);
1532 cairo_pattern_get_rgba(p_src, &
r, &
g, &b, &a);
1534 cairo_pattern_t *pat;
1535 pat = cairo_pattern_create_linear(0.0, 0.0, 0.0, 1.0);
1537 cairo_pattern_add_color_stop_rgba(pat, 0.0,
r,
g * 0.7, b * 0.9, a * 0.2);
1538 cairo_pattern_add_color_stop_rgba(pat, 0.4,
r * 0.9,
g, b * 0.9, a * 0.8);
1539 cairo_pattern_add_color_stop_rgba(pat, 0.7,
r,
g * 0.9, b, a * 1.0);
1540 cairo_pattern_add_color_stop_rgba(pat, 1.0,
r * 0.7,
g * 0.5, b, a * 0.2);
1542 cairo_rectangle(cr, 0.0, 0.15, 1.0, 0.7);
1543 cairo_set_source(cr, pat);
1546 cairo_pattern_destroy(pat);
1555 cairo_pattern_t *pat;
1557 pat = cairo_pattern_create_linear(0.0, 0.0, 0.0, 1.0);
1558 cairo_pattern_add_color_stop_rgba(pat, 0.0, 0.8, 0.3, 0.3, 0.2);
1559 cairo_pattern_add_color_stop_rgba(pat, 0.4, 0.8, 0.3, 0.3, 0.7);
1560 cairo_pattern_add_color_stop_rgba(pat, 1.0, 0.8, 0.3, 0.3, 0.3);
1561 cairo_rectangle(cr, 0.0, 0.1, 1.0/3.0, 0.7);
1562 cairo_set_source(cr, pat);
1564 cairo_pattern_destroy(pat);
1566 pat = cairo_pattern_create_linear(0.0, 0.0, 0.0, 1.0);
1567 cairo_pattern_add_color_stop_rgba(pat, 0.0, 0.4, 0.8, 0.4, 0.1);
1568 cairo_pattern_add_color_stop_rgba(pat, 0.6, 0.4, 0.8, 0.4, 0.8);
1569 cairo_pattern_add_color_stop_rgba(pat, 1.0, 0.4, 0.8, 0.4, 0.4);
1570 cairo_rectangle(cr, 1.0/3.0, 0.2, 1.0/3.0, 0.7);
1571 cairo_set_source(cr, pat);
1573 cairo_pattern_destroy(pat);
1575 pat = cairo_pattern_create_linear(0.0, 0.0, 0.0, 1.0);
1576 cairo_pattern_add_color_stop_rgba(pat, 0.0, 0.4, 0.4, 0.8, 0.4);
1577 cairo_pattern_add_color_stop_rgba(pat, 0.5, 0.4, 0.4, 0.8, 0.9);
1578 cairo_pattern_add_color_stop_rgba(pat, 1.0, 0.4, 0.4, 0.8, 0.5);
1579 cairo_rectangle(cr, 2.0/3.0, 0.1, 1.0/3.0, 0.7);
1580 cairo_set_source(cr, pat);
1582 cairo_pattern_destroy(pat);
1592 cairo_move_to(cr, 0.0, 0.0);
1593 cairo_line_to(cr, 0.0, 1.0);
1594 cairo_line_to(cr, 0.7, 1.0);
1597 cairo_move_to(cr, 0.5, 0.0);
1598 cairo_curve_to(cr, 0.5, 0.4, 1.0, 0.4, 1.0, 0.0);
1601 cairo_move_to(cr, 0.5, 0.5);
1602 cairo_line_to(cr, 0.75, 0.8);
1603 cairo_line_to(cr, 1.0, 0.5);
1614 cairo_move_to(cr, 0.4, 0.0);
1615 cairo_curve_to(cr, 0.45, 1.0, 0.1, 1.0, 0.0, 0.8);
1618 cairo_move_to(cr, 0.6, 0.5);
1619 cairo_line_to(cr, 1.0, 0.5);
1620 cairo_line_to(cr, 0.6, 1.0);
1621 cairo_line_to(cr, 1.0, 1.0);
1631 cairo_set_source_rgba(cr, 1.0, 0.0, 0.0, 0.8);
1632 cairo_arc(cr, 0.5, 0.5, 0.5, -0.83333 *
M_PI, -0.16667 *
M_PI);
1633 cairo_line_to(cr, 0.5, 0.5);
1634 cairo_close_path(cr);
1638 cairo_set_source_rgba(cr, 1.0, 1.0, 0.0, 0.8);
1639 cairo_arc(cr, 0.5, 0.5, 0.5, 0.5 *
M_PI, -0.83333 *
M_PI);
1640 cairo_line_to(cr, 0.5, 0.5);
1641 cairo_close_path(cr);
1645 cairo_set_source_rgba(cr, 0.0, 0.0, 1.0, 0.8);
1646 cairo_arc(cr, 0.5, 0.5, 0.5, -0.16667 *
M_PI, 0.5 *
M_PI);
1647 cairo_line_to(cr, 0.5, 0.5);
1648 cairo_close_path(cr);
1662 cairo_scale(cr, 0.7, 0.7);
1663 cairo_translate(cr, 0.15, 0.15);
1666 cairo_move_to(cr, 0.0, 1.0);
1667 cairo_curve_to(cr, 0.0, 0.0 + bend, (1.0 - sw), 1.0 - bend, (1.0 - sw), 0.0);
1671 cairo_move_to(cr, 1.0, 0.0);
1672 cairo_curve_to(cr, 1.0, 1.0 - bend, sw, 0.0 + bend, sw, 1.0);
1676 cairo_move_to(cr, 0, 1.0);
1677 cairo_line_to(cr, sw, 1.0);
1679 cairo_move_to(cr, 1 - sw, 0.0);
1680 cairo_line_to(cr, 1.0, 0.0);
1683 cairo_move_to(cr, 1 - sw, 0.5);
1684 cairo_line_to(cr, sw, 0.5);
1694 const double degrees =
M_PI / 180.0;
1696 cairo_new_sub_path (cr);
1697 cairo_arc (cr, 0.85, 0.35, 0.1, -90 * degrees, 0 * degrees);
1698 cairo_arc (cr, 0.8, 0.75, 0.1, 0 * degrees, 90 * degrees);
1699 cairo_arc (cr, 0.2, 0.75, 0.1, 90 * degrees, 180 * degrees);
1700 cairo_arc (cr, 0.15, 0.35, 0.1, 180 * degrees, 270 * degrees);
1701 cairo_close_path (cr);
1704 cairo_move_to(cr, 0.1, 0.3);
1705 cairo_arc (cr, 0.2, 0.15, 0.1, 180 * degrees, 270 * degrees);
1706 cairo_arc (cr, 0.45, 0.15, 0.1, -90 * degrees, 0 * degrees);
1707 cairo_curve_to(cr, 0.6, 0.15, 0.75, 0.25, 0.9, 0.25);
1719 cairo_translate(cr, 1, 0);
1720 cairo_scale(cr, -1, 1);
1723 cairo_move_to(cr, 0.65, 0.1);
1724 cairo_line_to(cr, 0.5, 0.2);
1725 cairo_line_to(cr, 0.65, 0.3);
1728 cairo_arc(cr, 0.5, 0.5, 0.35, (-80 * 3.145 / 180), (220 * 3.145 / 180));
1738 if((
flags & 3) == 1)
1740 cairo_move_to(cr, 0.1, 0.9);
1741 cairo_line_to(cr, 0.3, 0.1);
1742 cairo_line_to(cr, 0.7, 0.1);
1743 cairo_line_to(cr, 0.9, 0.9);
1744 cairo_line_to(cr, 0.1, 0.9);
1747 else if((
flags & 3) == 2)
1749 cairo_move_to(cr, 0.1, 0.9);
1750 cairo_line_to(cr, 0.9, 0.7);
1751 cairo_line_to(cr, 0.9, 0.3);
1752 cairo_line_to(cr, 0.1, 0.1);
1753 cairo_line_to(cr, 0.1, 0.9);
1756 else if((
flags & 3) == 3)
1758 cairo_move_to(cr, 0.1, 0.9);
1759 cairo_line_to(cr, 0.9, 0.7);
1760 cairo_line_to(cr, 0.8, 0.2);
1761 cairo_line_to(cr, 0.3, 0.1);
1762 cairo_line_to(cr, 0.1, 0.9);
1773 cairo_move_to(cr, 0.1, 0.1);
1774 cairo_line_to(cr, 0.0, 0.9);
1776 cairo_move_to(cr, 0.366, 0.1);
1777 cairo_line_to(cr, 0.33, 0.9);
1779 cairo_move_to(cr, 0.633, 0.1);
1780 cairo_line_to(cr, 0.66, 0.9);
1782 cairo_move_to(cr, 0.9, 0.1);
1783 cairo_line_to(cr, 1.0, 0.9);
1793 cairo_move_to(cr, 0.1, 0.1);
1794 cairo_line_to(cr, 0.1, 0.9);
1795 cairo_line_to(cr, 0.9, 0.9);
1796 cairo_line_to(cr, 0.9, 0.1);
1797 cairo_line_to(cr, 0.1, 0.1);
1800 cairo_arc(cr, 0.1, 0.1, 0.1, 0.0, 2 *
M_PI);
1802 cairo_arc(cr, 0.1, 0.9, 0.1, 0.0, 2 *
M_PI);
1804 cairo_arc(cr, 0.9, 0.9, 0.1, 0.0, 2 *
M_PI);
1806 cairo_arc(cr, 0.9, 0.1, 0.1, 0.0, 2 *
M_PI);
1816 cairo_move_to(cr, 0.85, 0.15);
1817 cairo_line_to(cr, 0.15, 0.85);
1818 cairo_move_to(cr, 0.15, 0.15);
1819 cairo_line_to(cr, 0.85, 0.85);
1831 cairo_translate(cr, 0, 1);
1832 cairo_scale(cr, 1, -1);
1835 cairo_move_to(cr, 0.65, 0.0);
1836 cairo_line_to(cr, 0.5, 0.05);
1837 cairo_line_to(cr, 0.6, 0.25);
1840 cairo_arc(cr, 0.5, 0.5, 0.45, (-80 * 3.145 / 180), (220 * 3.145 / 180));
1848 PREAMBLE(0.5 * 1.1, 1, 0.5 + 0.06, 0.5 -0.10)
1850 cairo_arc(cr, 0.250, 0.45, 0.5, 0.0, 2.0 *
M_PI);
1852 cairo_arc(cr, -0.58, 0.65, 0.30, 0.0, 2.0 *
M_PI);
1854 cairo_arc(cr, -0.38, -0.27, 0.4, 0.0, 2.0 *
M_PI);
1860 cairo_move_to(cr, 0.475, -0.93);
1861 cairo_line_to(cr, 0.15, -0.20);
1862 cairo_line_to(cr, 0.85, -0.20);
1873 cairo_push_group(cr);
1878 cairo_arc(cr, 0.5, 0.5,
r, 0.0, 2.0 *
M_PI);
1888 cairo_set_line_width(cr, 0.1);
1889 cairo_set_source_rgb(cr, 0.9, 0.9, 0.9);
1890 cairo_move_to(cr, 0.15, 0.85);
1891 cairo_line_to(cr, 0.85, 0.15);
1895 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
1896 cairo_set_line_width(cr, 0.05);
1897 cairo_move_to(cr, 0.1, 0.78);
1898 cairo_line_to(cr, 0.78, 0.15);
1899 cairo_move_to(cr, 0.20, 0.9);
1900 cairo_line_to(cr, 0.92, 0.15);
1901 cairo_set_source_rgba(cr, 0, 1.0, 0, 1.0);
1906 cairo_pop_group_to_source(cr);
1916 const double r = 0.5;
1922 cairo_set_source_rgba(cr, rgba.red, rgba.green, rgba.blue, .7);
1926 cairo_set_source_rgba(cr, 0.75, 0.75, 0.75, 1.0);
1932 cairo_set_line_width(cr, 1.2 * cairo_get_line_width(cr));
1937 cairo_arc(cr, 0.5, 0.5,
r, 0.0, 2.0 *
M_PI);
1942 cairo_arc(cr, 0.5, 0.5,
r, 0.0, 2.0 *
M_PI);
1954 cairo_arc(cr, 0.5, 0.5, 0.5, 0.0, 2.0 *
M_PI);
1955 cairo_move_to(cr, 0.7, 0.3);
1956 cairo_line_to(cr, 0.3, 0.7);
1957 cairo_move_to(cr, 0.3, 0.3);
1958 cairo_line_to(cr, 0.7, 0.7);
1963 cairo_set_source_rgb(cr, 1.0, 0, 0);
1979 cairo_set_source_rgba(cr, 0.2, 0.2, 0.2, 0.8);
1980 cairo_move_to(cr, 0.7, 0.3);
1981 cairo_line_to(cr, 0.3, 0.7);
1982 cairo_move_to(cr, 0.3, 0.3);
1983 cairo_line_to(cr, 0.7, 0.7);
1999 GdkRGBA *bgc = (GdkRGBA *)data;
2001 if(cairo_pattern_get_rgba(cairo_get_source(cr), &
r, &
g, &b, &a) == CAIRO_STATUS_SUCCESS)
2003 cairo_set_source_rgba(cr, bgc->red, bgc->green, bgc->blue, bgc->alpha);
2004 cairo_fill_preserve(cr);
2005 cairo_set_source_rgba(cr,
r,
g, b, a);
2018 cairo_push_group(cr);
2026 GdkRGBA *bgc = (GdkRGBA *)data;
2028 if(cairo_pattern_get_rgba(cairo_get_source(cr), &
r, &
g, &b, &a) == CAIRO_STATUS_SUCCESS)
2030 cairo_set_source_rgba(cr, bgc->red, bgc->green, bgc->blue, bgc->alpha);
2031 cairo_fill_preserve(cr);
2032 cairo_set_source_rgba(cr,
r,
g, b, a);
2037 cairo_move_to(cr, 0.05, 0.95);
2038 cairo_line_to(cr, 0.85, 0.0);
2042 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
2043 cairo_set_line_width(cr, cairo_get_line_width(cr) * 0.7);
2044 cairo_move_to(cr, 0.0, 0.88);
2045 cairo_line_to(cr, 0.78, 0.0);
2046 cairo_move_to(cr, 0.10, 1.0);
2047 cairo_line_to(cr, 0.92, 0.0);
2048 cairo_set_source_rgba(cr, 0, 1.0, 0, 1.0);
2051 cairo_pop_group_to_source(cr);
2060 cairo_arc(cr, 0.5, 0.5, 0.25, 0, 2 *
M_PI);
2078 cairo_push_group(cr);
2081 cairo_arc(cr, 0, 0,
r, 0, 2.0f *
M_PI);
2090 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
2091 cairo_set_source_rgb(cr, 0.45, 0.45, 0.45);
2094 const float dx =
r * cosf(
M_PI / 8.0f), dy =
r * sinf(
M_PI / 8.0f);
2095 cairo_move_to(cr, - dx, - dy);
2096 cairo_curve_to(cr, 0, -2.0 * dy, 0, 2.0 * dy, dx, dy);
2097 cairo_move_to(cr, -.2 * dx, .8 * dy);
2098 cairo_line_to(cr, -.8 * dx, .8 * dy);
2099 cairo_move_to(cr, .2 * dx, -.8 * dy);
2100 cairo_line_to(cr, .8 * dx, -.8 * dy);
2101 cairo_move_to(cr, .5 * dx, -.8 * dy - .3 * dx);
2102 cairo_line_to(cr, .5 * dx, -.8 * dy + .3 * dx);
2105 cairo_pop_group_to_source(cr);
2115 cairo_push_group(cr);
2118 cairo_arc(cr, 0, 0,
r, 0, 2.0f *
M_PI);
2127 cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
2128 cairo_set_source_rgb(cr, 0.45, 0.45, 0.45);
2131 cairo_move_to(cr, -1, 0);
2132 cairo_line_to(cr, 1, -0);
2135 cairo_pop_group_to_source(cr);
2146 cairo_rectangle(cr, 0.05, 0.4, 0.2, 0.2);
2147 cairo_move_to(cr, 0.25, 0.6);
2148 cairo_line_to(cr, 0.45, 0.77);
2149 cairo_line_to(cr, 0.45, 0.23);
2150 cairo_line_to(cr, 0.25, 0.4);
2152 cairo_new_sub_path(cr);
2153 cairo_arc(cr, 0.2, 0.5, 0.45, -(35.0 / 180.0) *
M_PI, (35.0 / 180.0) *
M_PI);
2154 cairo_new_sub_path(cr);
2155 cairo_arc(cr, 0.2, 0.5, 0.6, -(35.0 / 180.0) *
M_PI, (35.0 / 180.0) *
M_PI);
2156 cairo_new_sub_path(cr);
2157 cairo_arc(cr, 0.2, 0.5, 0.75, -(35.0 / 180.0) *
M_PI, (35.0 / 180.0) *
M_PI);
2168 const float r = 0.18;
2172 cairo_arc(cr,
r,
r,
r, 0, 2.0f *
M_PI);
2179 cairo_arc(cr, 1.0 -
r,
r,
r, 0, 2.0f *
M_PI);
2186 cairo_arc(cr, 0.5, 0.5,
r, 0, 2.0f *
M_PI);
2193 cairo_arc(cr,
r, 1.0 -
r,
r, 0, 2.0f *
M_PI);
2200 cairo_arc(cr, 1.0 -
r, 1.0 -
r,
r, 0, 2.0f *
M_PI);
2213 const cairo_operator_t prev_operator = cairo_get_operator(cr);
2214 cairo_push_group(cr);
2215 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
2223 cairo_translate(cr, 0.5, 0.5);
2224 cairo_rotate(cr,
M_PI * 0.2973);
2225 cairo_scale(cr, 1.04, 1.04);
2226 cairo_translate(cr, -0.5, -0.5);
2227 cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);
2230 const float top_width = 0.25f;
2231 const float top_height = 0.15f;
2232 const float bottom_width = top_width * 1.5f;
2233 const float bottom_height = 0.13f;
2235 const float x1 = 0.5f - top_width * 0.5f;
2236 const float y1 = 0.0f;
2238 cairo_rectangle(cr, x1, y1, top_width, top_height);
2239 cairo_arc(cr, 0.5f, 0.0, top_width * 0.5, -
M_PI, 0);
2242 const float x3 = 0.5f - bottom_width * 0.5f;
2243 const float y3 = top_height;
2244 const float x4 = 0.5f + bottom_width * 0.5f;
2245 const float y4 = top_height + bottom_height;
2246 const float radius = 0.035f;
2248 cairo_move_to(cr, x3 + radius, y3);
2249 cairo_line_to(cr, x4 - radius, y3);
2250 cairo_arc(cr, x4 - radius, y3 + radius, radius, -
M_PI / 2, 0);
2251 cairo_line_to(cr, x4, y4);
2252 cairo_line_to(cr, x3, y4);
2253 cairo_line_to(cr, x3, y3 + radius);
2254 cairo_arc(cr, x3 + radius, y3 + radius, radius,
M_PI, 3 *
M_PI / 2);
2255 cairo_close_path(cr);
2259 const float tube_width = 0.2f - 0.07f;
2260 const float x5 = 0.5f - tube_width * 0.5f;
2261 const float x6 = 0.5f + tube_width * 0.5f;
2264 const float center_y = 0.6f;
2265 const float offset_y = 0.088f;
2266 const float stem_start_y = y4 + 0.05f;
2268 const float tip_radius = 0.0125f;
2269 const float tip_base = 0.85f;
2270 const float tip_shoulder = 0.95f;
2271 const float tip_y = 1.0f - tip_radius;
2272 const float tip_x_left = 0.5f - tip_radius;
2273 const float tip_x_right = 0.5f + tip_radius;
2275 cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE);
2276 cairo_set_line_width(cr, 0.03);
2279 cairo_move_to(cr, x5, stem_start_y);
2280 cairo_line_to(cr, x5, center_y + offset_y);
2281 cairo_move_to(cr, x6, stem_start_y);
2282 cairo_line_to(cr, x6, center_y - offset_y);
2286 cairo_move_to(cr, x5, center_y + offset_y);
2287 cairo_line_to(cr, x5, tip_base);
2288 cairo_line_to(cr, tip_x_left, tip_shoulder);
2289 cairo_line_to(cr, tip_x_left, tip_y);
2290 cairo_line_to(cr, tip_x_right, tip_y);
2291 cairo_line_to(cr, tip_x_right, tip_shoulder);
2292 cairo_line_to(cr, x6, tip_base);
2293 cairo_line_to(cr, x6, center_y - offset_y);
2294 cairo_close_path(cr);
2295 cairo_stroke_preserve(cr);
2298 cairo_arc(cr, 0.5f, 1.0f - tip_radius, tip_radius, 0,
M_PI);
2301 cairo_pop_group_to_source(cr);
2302 cairo_set_operator(cr, prev_operator);
2315 cairo_move_to(cr, 0., 1. - 0.0);
2316 cairo_line_to(cr, 0.08, 1. - 0.15);
2317 cairo_line_to(cr, 0.16, 1. - 0.0);
2318 cairo_arc(cr, 0.08, 1. - 0.15 + 0.1926, 0.090666667, -0.49, 3.63);
2322 cairo_move_to(cr, 0.18, 0.00);
2323 cairo_line_to(cr, 0.18, 0.36);
2325 cairo_move_to(cr, 0.00, 0.18);
2326 cairo_line_to(cr, 0.36, 0.18);
2330 cairo_set_line_width(cr, 0.15);
2331 cairo_move_to(cr, 0.48, 1. - 0.831);
2332 cairo_line_to(cr, 0.739, 1. - 0.482);
2335 cairo_move_to(cr, 0.124, 1. - 0.297);
2336 cairo_line_to(cr, 0.823, 1. - 0.814);
2340 cairo_set_line_width(cr, 0.35);
2341 cairo_move_to(cr, 0.823, 1. - 0.814);
2342 cairo_line_to(cr, 0.648, 1. - 0.685);
2353 cairo_arc(cr, 0.5, 0.5, 0.35, -
M_PI,
M_PI);
2356 cairo_rectangle(cr, 0.0, 0.0, 1.0, 1.0);
2357 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
2368 cairo_rotate(cr,
M_PI / 12.);
2370 const float big_r = 1.f;
2371 const float tin_r = 0.8f;
2373 for(
int i = 0;
i < 12;
i++)
2375 const float radius = (
i % 2 == 0) ? big_r : tin_r;
2376 cairo_arc(cr, 0.0, 0.0, radius,
i *
M_PI / 6., (
i + 1) *
M_PI / 6.);
2378 cairo_close_path(cr);
2381 cairo_arc(cr, 0.0, 0.0, 0.3, 0, 2. *
M_PI);
2401 cairo_arc(cr, 0.0, -0.5, 0.4, -
M_PI, 0.25 *
M_PI);
2402 cairo_arc_negative(cr, 0.7, 0.4, 0.7, -0.75 *
M_PI, -
M_PI);
2404 cairo_arc(cr, 0.0, 0.85, 0.05, 0.0, 2.0 *
M_PI);
2414 cairo_move_to(cr, 0.30, 0.15);
2415 cairo_line_to(cr, 0.95, 0.15);
2416 cairo_line_to(cr, 0.95, 0.65);
2417 cairo_move_to(cr, 0.20, 0.25);
2418 cairo_line_to(cr, 0.85, 0.25);
2419 cairo_line_to(cr, 0.85, 0.75);
2423 cairo_rectangle(cr, 0.05, 0.35, 0.7, 0.5);
2428 cairo_rectangle(cr, 0.05, 0.35, 0.7, 0.5);
2442 cairo_move_to(cr, 0.9, 0.1);
2443 cairo_line_to(cr, 0.1, 0.1);
2444 cairo_line_to(cr, 0.1, 0.9);
2448 cairo_move_to(cr, 0.1, 0.1);
2449 cairo_line_to(cr, 0.9, 0.1);
2453 cairo_move_to(cr, 0.1, 0.1);
2454 cairo_line_to(cr, 0.9, 0.1);
2455 cairo_line_to(cr, 0.9, 0.9);
2459 cairo_move_to(cr, 0.1, 0.1);
2460 cairo_line_to(cr, 0.1, 0.9);
2464 cairo_move_to(cr, 0.1, 0.5);
2465 cairo_line_to(cr, 0.9, 0.5);
2466 cairo_move_to(cr, 0.5, 0.1);
2467 cairo_line_to(cr, 0.5, 0.9);
2471 cairo_move_to(cr, 0.9, 0.1);
2472 cairo_line_to(cr, 0.9, 0.9);
2476 cairo_move_to(cr, 0.9, 0.9);
2477 cairo_line_to(cr, 0.1, 0.9);
2478 cairo_line_to(cr, 0.1, 0.1);
2482 cairo_move_to(cr, 0.1, 0.9);
2483 cairo_line_to(cr, 0.9, 0.9);
2487 cairo_move_to(cr, 0.1, 0.9);
2488 cairo_line_to(cr, 0.9, 0.9);
2489 cairo_line_to(cr, 0.9, 0.1);
2502 cairo_move_to(cr, 0.1, 1.);
2503 cairo_line_to(cr, 0.5, 0.);
2504 cairo_line_to(cr, 0.9, 1.);
2506 cairo_move_to(cr, 0.25, 0.6);
2507 cairo_line_to(cr, 0.75, 0.6);
2518 cairo_move_to(cr, 0.1, 0.3);
2519 cairo_curve_to(cr, 0.1, 1.1, 0.9, 1.1, 0.9, 0.3);
2529 cairo_move_to(cr, 0.1, 0.9);
2530 cairo_curve_to(cr, 0.1, 0.1, 0.9, 0.1, 0.9, 0.9);
2540 cairo_move_to(cr, 0.1, 0.1);
2541 cairo_line_to(cr, 0.9, 0.9);
2551 cairo_move_to(cr, 0.1, 0.3);
2552 cairo_line_to(cr, 0.5, 0.7);
2553 cairo_line_to(cr, 0.9, 0.3);
2563 cairo_rectangle(cr, 0.05, 0.05, 0.45, 0.45);
2565 cairo_set_line_width(cr, 0.025);
2566 cairo_rectangle(cr, 0.55, 0.05, 0.45, 0.45);
2568 cairo_set_line_width(cr, 0.05);
2569 cairo_rectangle(cr, 0.05, 0.55, 0.45, 0.45);
2571 cairo_set_line_width(cr, 0.1);
2572 cairo_rectangle(cr, 0.55, 0.55, 0.45, 0.45);
2583 cairo_rectangle(cr, 0.25, 0.5, .5, .45);
2587 cairo_translate(cr, .5, .5);
2588 cairo_scale(cr, .2, .4);
2589 cairo_arc(cr, 0, 0, 1,
M_PI, 0);
2599 cairo_move_to(cr, 0.20, 0.45);
2600 cairo_line_to(cr, 0.45, 0.90);
2601 cairo_line_to(cr, 0.90, 0.20);
2612 cairo_move_to(cr, 1.0, 0);
2613 cairo_line_to(cr, 0, 1.0);
2614 cairo_line_to(cr, 1.0, 1.0);
2629 const float icon_scale = 1.0 / 1.16;
2630 const float line_width = 0.1 * icon_scale;
2631 const float glass_radius = 0.4 * icon_scale;
2632 const float glass_y = glass_radius;
2633 const float screw_y = glass_y + 0.46 * icon_scale;
2634 const float nib_radius = 2.0 * line_width;
2635 const float nib_y = 1.0 - nib_radius;
2638 cairo_arc_negative(cr, 0.5, glass_y, glass_radius, 1.,
M_PI - 1.);
2639 cairo_close_path(cr);
2643 cairo_stroke_preserve(cr);
2649 cairo_arc(cr, 0.5, glass_y, 0.5 * glass_radius, -
M_PI / 3., -
M_PI / 6.);
2654 cairo_move_to(cr, 0.5 - 1.7 * line_width, screw_y);
2655 cairo_line_to(cr, 0.5 + 1.7 * line_width, screw_y);
2659 cairo_arc(cr, 0.5, nib_y, nib_radius, 0,
M_PI);
2675 cairo_set_source_rgba(cr, 0.3, 0.3, 0.3, alpha);
2676 cairo_rectangle(cr, 0, 0, 0.5, 0.5);
2679 cairo_set_source_rgba(cr, 0.6, 0.6, 0.6, alpha);
2680 cairo_rectangle(cr, 0.5, 0, 0.5, 0.5);
2683 cairo_set_source_rgba(cr, 0.6, 0.6, 0.6, alpha);
2684 cairo_rectangle(cr, 0, 0.5, 0.5, 0.5);
2687 cairo_set_source_rgba(cr, 0.1, 0.1, 0.1, alpha);
2688 cairo_rectangle(cr, 0.5, 0.5, 0.5, 0.5);
2705 cairo_move_to(cr, 0.0, 1 - 0.067);
2706 cairo_line_to(cr, 0.5, 1 - 0.933);
2707 cairo_line_to(cr, 1.0, 1 - 0.067);
2708 cairo_close_path(cr);
2712 cairo_new_sub_path(cr);
2713 cairo_move_to(cr, 0.42, 1 - 0.11);
2714 cairo_line_to(cr, 0.42, 1 - 0.25);
2715 cairo_line_to(cr, 0.58, 1 - 0.25);
2716 cairo_line_to(cr, 0.58, 1 - 0.11);
2717 cairo_close_path(cr);
2720 cairo_new_sub_path(cr);
2721 cairo_move_to(cr, 0.447, 1 - 0.29);
2722 cairo_line_to(cr, 0.415, 1 - 0.552);
2723 cairo_line_to(cr, 0.415, 1 - 0.683);
2724 cairo_line_to(cr, 0.585, 1 - 0.683);
2725 cairo_line_to(cr, 0.585, 1 - 0.552);
2726 cairo_line_to(cr, 0.552, 1 - 0.29);
2727 cairo_close_path(cr);
2729 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
2740 const float icon_scale = 1.0 / 1.08;
2741 cairo_translate(cr, 0.5 - 0.5 * icon_scale, 0.08 * icon_scale);
2742 cairo_scale(cr, icon_scale, icon_scale);
2745 cairo_move_to(cr, 0.30, 1 - 0.0);
2746 cairo_curve_to(cr, 0.14, 1 - 0.09, 0.03, 1 - 0.88, 0.18, 1 - 1);
2747 cairo_curve_to(cr, 0.32, 1 - 1.08, 0.69, 1 - 0.63, 0.97, 1 - 0.32);
2748 cairo_close_path(cr);
2751 cairo_new_sub_path(cr);
2752 cairo_move_to(cr, 0.28, 1 - 0.07);
2753 cairo_line_to(cr, 0.37, 1 - 0.75);
2754 cairo_line_to(cr, 0.82, 1 - 0.42);
2755 cairo_close_path(cr);
2757 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
2767 const double inset = 0.5 * cairo_get_line_width(cr);
2768 const double icon_min = inset;
2769 const double icon_max = 1.0 - inset;
2770 const double icon_size = icon_max - icon_min;
2771 const double screen_bottom = icon_min + 0.75 * icon_size;
2773 cairo_rectangle(cr, icon_min, icon_min, icon_size, 0.75 * icon_size);
2774 cairo_move_to(cr, 0.5, screen_bottom);
2775 cairo_line_to(cr, 0.5, icon_max);
2776 cairo_move_to(cr, icon_min + 0.3 * icon_size, icon_max);
2777 cairo_line_to(cr, icon_min + 0.7 * icon_size, icon_max);
2787 cairo_move_to(cr, 0.0, 0.3);
2788 cairo_line_to(cr, 1.0, 0.3);
2789 cairo_line_to(cr, 1.0, 0.7);
2790 cairo_line_to(cr, 0.0, 0.7);
2791 cairo_line_to(cr, 0.0, 0.3);
2801 cairo_move_to(cr, 0.3, 0.0);
2802 cairo_line_to(cr, 0.7, 0.0);
2803 cairo_line_to(cr, 0.7, 1.0);
2804 cairo_line_to(cr, 0.3, 1.0);
2805 cairo_line_to(cr, 0.3, 0.0);
2815 cairo_move_to(cr, 0.0, 0.3);
2816 cairo_line_to(cr, 0.7, 0.0);
2817 cairo_line_to(cr, 0.5, 0.5);
2818 cairo_line_to(cr, 1.0, 0.6);
2819 cairo_line_to(cr, 0.6, 1.0);
2820 cairo_line_to(cr, 0.3, 0.8);
2821 cairo_line_to(cr, 0.0, 0.3);
2834 cairo_move_to(cr, 0.9, 1.0 - 0.1);
2835 cairo_line_to(cr, 0.65, 1.0 - 0.35);
2839 cairo_arc(cr, 0.35, 1.0 - 0.65, 0.3, -
M_PI,
M_PI);
2849 cairo_rectangle(cr, 0.35, 0.35, 0.6, 0.6);
2851 cairo_rectangle(cr, 0.05, 0.05, 0.9, 0.9);
2852 cairo_rectangle(cr, 0.85, 0.25, -0.65, 0.65);
2854 cairo_rectangle(cr, 0.05, 0.05, 0.6, 0.6);
2855 cairo_stroke_preserve(cr);
2865 cairo_arc(cr, 0.5, 0.5, 0.40, (-50 * 3.145 / 180), (230 * 3.145 / 180));
2866 cairo_move_to(cr, 0.5, 0.05);
2867 cairo_line_to(cr, 0.5, 0.40);
2877 const float r1 = 0.2;
2878 const float r2 = 0.4;
2879 const float d = 2.0 *
M_PI * 0.1f;
2880 const float dx[10] = { sinf(0.0), sinf(
d), sinf(2 *
d), sinf(3 *
d), sinf(4 *
d),
2881 sinf(5 *
d), sinf(6 *
d), sinf(7 *
d), sinf(8 *
d), sinf(9 *
d) };
2882 const float dy[10] = { cosf(0.0), cosf(
d), cosf(2 *
d), cosf(3 *
d), cosf(4 *
d),
2883 cosf(5 *
d), cosf(6 *
d), cosf(7 *
d), cosf(8 *
d), cosf(9 *
d) };
2884 cairo_move_to(cr, 0.5 + r1 * dx[0], 0.5 - r1 * dy[0]);
2885 for(
int k = 1;
k < 10;
k++)
2887 cairo_line_to(cr, 0.5 + r2 * dx[
k], 0.5 - r2 * dy[
k]);
2889 cairo_line_to(cr, 0.5 + r1 * dx[
k], 0.5 - r1 * dy[
k]);
2890 cairo_close_path(cr);
2902 cairo_pattern_get_rgba(cairo_get_source(cr), &
r, &
g, &b, &a);
2903 double na = a * 0.7;
2905 double sw = cairo_get_line_width(cr);
2908 cairo_set_source_rgba(cr,
r,
g, b, na);
2909 cairo_set_line_width(cr, sw * 1.2);
2910 cairo_move_to(cr, 0.1, 0.2);
2911 cairo_line_to(cr, 0.9, 0.2);
2913 cairo_move_to(cr, 0.1, 0.55);
2914 cairo_line_to(cr, 0.9, 0.55);
2916 cairo_move_to(cr, 0.1, 0.9);
2917 cairo_line_to(cr, 0.9, 0.9);
2921 cairo_set_source_rgba(cr,
r,
g, b, a);
2922 cairo_set_line_width(cr, sw);
2923 cairo_move_to(cr, 0.1, 0.2);
2924 cairo_line_to(cr, 0.6, 0.2);
2926 cairo_move_to(cr, 0.9, 0.55);
2927 cairo_line_to(cr, 0.3, 0.55);
2929 cairo_move_to(cr, 0.1, 0.9);
2930 cairo_line_to(cr, 0.4, 0.9);
2934 cairo_move_to(cr, 0.70, 0.0);
2935 cairo_line_to(cr, 0.81, 0.30);
2936 cairo_line_to(cr, 0.59, 0.30);
2937 cairo_close_path(cr);
2939 cairo_move_to(cr, 0.2, 0.35);
2940 cairo_line_to(cr, 0.31, 0.65);
2941 cairo_line_to(cr, 0.09, 0.65);
2942 cairo_close_path(cr);
2944 cairo_move_to(cr, 0.55, 0.70);
2945 cairo_line_to(cr, 0.66, 1.0);
2946 cairo_line_to(cr, 0.44, 1.0);
2947 cairo_close_path(cr);
2958 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
2969 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
2973 cairo_pattern_t *pat = NULL;
2974 pat = cairo_pattern_create_linear(0, 0, 1, 0);
2975 cairo_pattern_add_color_stop_rgba(pat, 0, 1, 1, 1, 1);
2976 cairo_pattern_add_color_stop_rgba(pat, 1, 1, 1, 1, 0);
2977 cairo_set_source(cr, pat);
2978 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
2980 cairo_pattern_destroy(pat);
2990 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
2995 cairo_pattern_t *pat = NULL;
2996 pat = cairo_pattern_create_linear(0, 0, 1, 0);
2997 cairo_pattern_add_color_stop_rgba(pat, 0.0, 1, 0, 0, a);
2998 cairo_pattern_add_color_stop_rgba(pat, 0.1, 1, 0, 0, a);
2999 cairo_pattern_add_color_stop_rgba(pat, 0.5, 0, 1, 0, a);
3000 cairo_pattern_add_color_stop_rgba(pat, 0.9, 0, 0, 1, a);
3001 cairo_pattern_add_color_stop_rgba(pat, 1.0, 0, 0, 1, a);
3002 cairo_set_source(cr, pat);
3003 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
3005 cairo_pattern_destroy(pat);
3015 cairo_arc(cr, 0.42, 0.5, 0.40, 0,
M_PI);
3017 cairo_arc(cr, 0.58, 0.5, 0.40,
M_PI, 0);
3028 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
3033 cairo_move_to(cr, 0.378, 0.502);
3034 cairo_line_to(cr, 0.522, 0.549);
3035 cairo_line_to(cr, 0.564, 0.693);
3036 cairo_line_to(cr, 0.653, 0.569);
3037 cairo_line_to(cr, 0.802, 0.573);
3038 cairo_line_to(cr, 0.712, 0.449);
3039 cairo_line_to(cr, 0.762, 0.308);
3040 cairo_line_to(cr, 0.618, 0.356);
3041 cairo_line_to(cr, 0.500, 0.264);
3042 cairo_line_to(cr, 0.500, 0.417);
3043 cairo_close_path(cr);
3045 cairo_move_to(cr, 0.269, 0.717);
3046 cairo_line_to(cr, 0.322, 0.735);
3047 cairo_line_to(cr, 0.337, 0.787);
3048 cairo_line_to(cr, 0.370, 0.742);
3049 cairo_line_to(cr, 0.424, 0.743);
3050 cairo_line_to(cr, 0.391, 0.698);
3051 cairo_line_to(cr, 0.409, 0.646);
3052 cairo_line_to(cr, 0.357, 0.664);
3053 cairo_line_to(cr, 0.314, 0.630);
3054 cairo_line_to(cr, 0.314, 0.686);
3056 cairo_move_to(cr, 0.217, 0.366);
3057 cairo_line_to(cr, 0.271, 0.384);
3058 cairo_line_to(cr, 0.286, 0.437);
3059 cairo_line_to(cr, 0.319, 0.391);
3060 cairo_line_to(cr, 0.374, 0.393);
3061 cairo_line_to(cr, 0.341, 0.347);
3062 cairo_line_to(cr, 0.360, 0.295);
3063 cairo_line_to(cr, 0.306, 0.312);
3064 cairo_line_to(cr, 0.263, 0.279);
3065 cairo_line_to(cr, 0.263, 0.335);
3067 cairo_close_path(cr);
3079 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
3080 cairo_stroke_preserve(cr);
3085 cairo_pattern_t *pat = NULL;
3086 pat = cairo_pattern_create_linear(0, 0, 1, 0);
3087 cairo_pattern_add_color_stop_rgba(pat, 0.00, 1, 0, 0, a);
3088 cairo_pattern_add_color_stop_rgba(pat, 0.10, 1, 0, 0, a);
3089 cairo_pattern_add_color_stop_rgba(pat, 0.40, 1, 1, 0, a);
3090 cairo_pattern_add_color_stop_rgba(pat, 0.50, 0, 1, 0, a);
3091 cairo_pattern_add_color_stop_rgba(pat, 0.60, 0, 1, 1, a);
3092 cairo_pattern_add_color_stop_rgba(pat, 0.90, 0, 0, 1, a);
3093 cairo_pattern_add_color_stop_rgba(pat, 1.00, 0, 0, 1, a);
3094 cairo_set_source(cr, pat);
3095 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
3097 cairo_pattern_destroy(pat);
3099 pat = cairo_pattern_create_linear(0, 0, 0, 1);
3100 cairo_pattern_add_color_stop_rgba(pat, 0.0, 1, 1, 1, a);
3101 cairo_pattern_add_color_stop_rgba(pat, 0.5, 0.5, 0.5, 0.5, a);
3102 cairo_pattern_add_color_stop_rgba(pat, 1.0, 0, 0, 0, a);
3103 cairo_set_source(cr, pat);
3104 cairo_arc(cr, 0.5, 0.5, 0.40, -
M_PI,
M_PI);
3106 cairo_set_operator(cr, CAIRO_OPERATOR_ADD);
3107 cairo_fill_preserve(cr);
3108 cairo_set_operator(cr, CAIRO_OPERATOR_MULTIPLY);
3111 cairo_pattern_destroy(pat);
3121 cairo_arc(cr, 0.5, 0.5, 0.4, -
M_PI,
M_PI);
3125 cairo_arc(cr, 0.05, 0.5, 0.55, -0.6107259643892086, 0.6107259643892086);
3126 cairo_arc(cr, 0.95, 0.5, 0.55, 2.5308666892005847, 3.7523186179790016);
3130 cairo_move_to(cr, 0.3, 0.3);
3131 cairo_line_to(cr, 0.5, 0.3);
3132 cairo_line_to(cr, 0.8, 0.5);
3135 cairo_move_to(cr, 0.25, 0.5);
3136 cairo_line_to(cr, 0.80, 0.5);
3139 cairo_move_to(cr, 0.3, 0.7);
3140 cairo_line_to(cr, 0.5, 0.7);
3141 cairo_line_to(cr, 0.80, 0.5);
3151 cairo_move_to(cr, 0.2, 0.0);
3152 cairo_line_to(cr, 0.0, 1.0);
3153 cairo_line_to(cr, 0.7, 0.0);
3154 cairo_close_path(cr);
3164 cairo_arc(cr, 0.65, 0.35, 0.35, 0, 2 *
M_PI);
3167 cairo_arc(cr, 0.35, 0.65, 0.35, 0, 2 *
M_PI);
3177 cairo_set_line_width(cr, 0.01);
3178 cairo_move_to(cr, 0.35, 0.1);
3179 cairo_rel_line_to(cr, 0.3, 0.0);
3180 cairo_rel_line_to(cr, 0.0, 0.25);
3181 cairo_rel_line_to(cr, 0.25, 0.0);
3182 cairo_rel_line_to(cr, 0.0, 0.3);
3183 cairo_rel_line_to(cr, -0.25, 0.0);
3184 cairo_rel_line_to(cr, 0.0, 0.25);
3185 cairo_rel_line_to(cr, -0.3, 0.0);
3186 cairo_rel_line_to(cr, 0.0, -0.25);
3187 cairo_rel_line_to(cr, -0.25, 0.0);
3188 cairo_rel_line_to(cr, 0.0, -0.3);
3189 cairo_rel_line_to(cr, 0.25, 0.0);
3190 cairo_close_path(cr);
3192 cairo_rectangle(cr, 0., 0., 1., 1.);
3194 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
3205 cairo_move_to(cr, 0.1, 0.1);
3206 cairo_line_to(cr, 0.2, 0.1);
3207 cairo_line_to(cr, 0.2, 0.9);
3208 cairo_line_to(cr, 0.8, 0.9);
3209 cairo_line_to(cr, 0.8, 0.1);
3210 cairo_line_to(cr, 0.9, 0.1);
3212 cairo_rectangle(cr, 0.2, 0.4, .6, .5);
3223 cairo_move_to(cr, 0.5, 0.1);
3224 cairo_arc(cr, 0.5, 0.65, 0.28, -0.2 *
M_PI, 1.2 *
M_PI);
3225 cairo_close_path(cr);
3227 cairo_set_line_width(cr, 0.1);
3228 cairo_arc(cr, 0.5, 0.65, 0.13, 0.65 *
M_PI, 1.2 *
M_PI);
3238 cairo_move_to(cr, 0.1, 0.6);
3239 cairo_line_to(cr, 0.9, 0.6);
3240 cairo_line_to(cr, 0.5, 1.0);
3241 cairo_close_path(cr);
3245 cairo_move_to(cr, 0.4, 0.0);
3246 cairo_line_to(cr, 0.6, 0.0);
3247 cairo_line_to(cr, 0.6, 0.6);
3248 cairo_line_to(cr, 0.4, 0.6);
3259 cairo_set_line_width(cr, 0.1);
3262 cairo_move_to(cr, 0.11, 0.25);
3263 cairo_line_to(cr, 0.89, 0.75);
3264 cairo_move_to(cr, 0.25, 0.11);
3265 cairo_line_to(cr, 0.75, 0.89);
3268 cairo_arc(cr, 0.89, 0.53, 0.17, 0, 2 *
M_PI);
3271 cairo_arc(cr, 0.53, 0.89, 0.17, 0, 2 *
M_PI);
3276 cairo_move_to(cr, 0.01, 0.35);
3277 cairo_line_to(cr, 0.99, 0.65);
3278 cairo_move_to(cr, 0.35, 0.01);
3279 cairo_line_to(cr, 0.65, 0.99);
3282 cairo_arc(cr, 0.89, 0.53, 0.17, 0, 2 *
M_PI);
3285 cairo_arc(cr, 0.53, 0.89, 0.17, 0, 2 *
M_PI);
3301 cairo_move_to(cr, x1, y1);
3303 const int steps = 4;
3304 const float delta = 1. / (float)steps;
3305 for(
int i = 0;
i < steps;
i++)
3308 cairo_line_to(cr, x1, y1);
3310 if(x1 > .9) x1 = .9;
3311 cairo_line_to(cr, x1, y1);
3315 cairo_set_line_width(cr, 0.1);
3316 cairo_rectangle(cr, 0., 0., 1., 1.);
3321 cairo_move_to(cr, 0.08, 1.);
3322 cairo_curve_to(cr, 0.4, 0.05, 0.6, 0.05, 1., 1.);
3323 cairo_line_to(cr, 0.08, 1.);
3326 cairo_set_line_width(cr, 0.1);
3327 cairo_rectangle(cr, 0., 0., 1., 1.);
3338 cairo_move_to(cr, .1, 0.3);
3339 cairo_line_to(cr, .1, 1.);
3342 cairo_move_to(cr, .5, 0.1);
3343 cairo_line_to(cr, .5, 1.);
3346 cairo_move_to(cr, .9, 0.3);
3347 cairo_line_to(cr, .9, 1.);
3350 cairo_move_to(cr, 0., 1.0);
3351 cairo_line_to(cr, 1.0, 1.0);
3359 const double a =
size / 2.0;
3360 const double b =
size / 10.0;
3362 cairo_move_to(cr, cx, cy - a);
3363 cairo_line_to(cr, cx + b, cy - b);
3364 cairo_line_to(cr, cx + a, cy);
3365 cairo_line_to(cr, cx + b, cy + b);
3366 cairo_line_to(cr, cx, cy + a);
3367 cairo_line_to(cr, cx - b, cy + b);
3368 cairo_line_to(cr, cx - a, cy);
3369 cairo_line_to(cr, cx - b, cy - b);
3370 cairo_close_path(cr);
3388 cairo_move_to(cr, 1., .85);
3389 cairo_line_to(cr, .85, 1.);
3390 cairo_line_to(cr, .2, .35);
3391 cairo_line_to(cr, .35, .2);
3392 cairo_close_path(cr);
3394 cairo_fill_preserve(cr);
3395 cairo_line_to(cr, .15, 0);
3396 cairo_line_to(cr, 0, .15);
3397 cairo_line_to(cr, .2, .35);
3412 cairo_rectangle(cr, 0.05, 0.2, 0.9, 0.6);
3413 cairo_move_to(cr, 0.06, 0.5);
3414 cairo_line_to(cr, 0.94, 0.5);
3415 cairo_move_to(cr, 0.35, 0.21);
3416 cairo_line_to(cr, 0.35, 0.79);
3417 cairo_move_to(cr, 0.65, 0.21);
3418 cairo_line_to(cr, 0.65, 0.79);
3421 cairo_set_line_width(cr, 0.08);
3422 cairo_rectangle(cr, 0.35, 0.5, 0.3, 0.3);
3432 cairo_rectangle(cr, 0.3, 0.2, 0.5, 0.34);
3434 cairo_move_to(cr, 0, 0.2);
3435 cairo_line_to(cr, 0.2, 0.2);
3436 cairo_line_to(cr, 0.2, 0.54);
3437 cairo_line_to(cr, 0, 0.54);
3439 cairo_move_to(cr, 1, 0.2);
3440 cairo_line_to(cr, 0.9, 0.2);
3441 cairo_line_to(cr, 0.9, 0.54);
3442 cairo_line_to(cr, 1, 0.54);
3444 cairo_move_to(cr, 0, 0.65);
3445 cairo_line_to(cr, 0.2, 0.65);
3446 cairo_line_to(cr, 0.2, 0.8);
3448 cairo_move_to(cr, 0.3, 0.8);
3449 cairo_line_to(cr, 0.3, 0.65);
3450 cairo_line_to(cr, 0.8, 0.65);
3451 cairo_line_to(cr, 0.8, 0.8);
3462 cairo_rectangle(cr, 0.16, 0.22, 0.31, 0.56);
3463 cairo_rectangle(cr, 0.53, 0.22, 0.31, 0.56);
3466 cairo_move_to(cr, 0.11, 0.4);
3467 cairo_line_to(cr, 0, 0.5);
3468 cairo_line_to(cr, 0.11, 0.6);
3471 cairo_move_to(cr, 0.89, 0.4);
3472 cairo_line_to(cr, 1, 0.5);
3473 cairo_line_to(cr, 0.89, 0.6);
3477 cairo_move_to(cr, 0.22, 0.36);
3478 cairo_line_to(cr, 0.40, 0.64);
3479 cairo_move_to(cr, 0.22, 0.64);
3480 cairo_line_to(cr, 0.40, 0.36);
3483 cairo_move_to(cr, 0.59, 0.36);
3484 cairo_line_to(cr, 0.68, 0.5);
3485 cairo_line_to(cr, 0.77, 0.36);
3486 cairo_move_to(cr, 0.68, 0.5);
3487 cairo_line_to(cr, 0.68, 0.64);
3498 cairo_rectangle(cr, 0.16, 0.22, 0.31, 0.56);
3499 cairo_rectangle(cr, 0.53, 0.22, 0.31, 0.56);
3503 cairo_move_to(cr, 0.22, 0.36);
3504 cairo_line_to(cr, 0.40, 0.64);
3505 cairo_move_to(cr, 0.22, 0.64);
3506 cairo_line_to(cr, 0.40, 0.36);
3509 cairo_move_to(cr, 0.59, 0.36);
3510 cairo_line_to(cr, 0.68, 0.5);
3511 cairo_line_to(cr, 0.77, 0.36);
3512 cairo_move_to(cr, 0.68, 0.5);
3513 cairo_line_to(cr, 0.68, 0.64);
3524 cairo_rectangle(cr, 0.07, 0.22, 0.86, 0.56);
3527 cairo_move_to(cr, 0.19, 0.29);
3528 cairo_line_to(cr, 0.19, 0.43);
3529 cairo_line_to(cr, 0.33, 0.29);
3532 cairo_move_to(cr, 0.19, 0.71);
3533 cairo_line_to(cr, 0.19, 0.57);
3534 cairo_line_to(cr, 0.33, 0.71);
3537 cairo_move_to(cr, 0.81, 0.71);
3538 cairo_line_to(cr, 0.81, 0.57);
3539 cairo_line_to(cr, 0.67, 0.71);
3542 cairo_move_to(cr, 0.81, 0.29);
3543 cairo_line_to(cr, 0.81, 0.43);
3544 cairo_line_to(cr, 0.67, 0.29);
3547 cairo_move_to(cr, 0.27, 0.37);
3548 cairo_line_to(cr, 0.30, 0.40);
3549 cairo_move_to(cr, 0.27, 0.63);
3550 cairo_line_to(cr, 0.30, 0.60);
3551 cairo_move_to(cr, 0.73, 0.63);
3552 cairo_line_to(cr, 0.70, 0.60);
3553 cairo_move_to(cr, 0.73, 0.37);
3554 cairo_line_to(cr, 0.70, 0.40);
3564 cairo_set_line_width(cr, .1);
3567 cairo_move_to(cr, .5, .5);
3568 cairo_line_to(cr, 1., 0.);
3570 cairo_move_to(cr, .65, 0.);
3571 cairo_line_to(cr, 1., 0.);
3572 cairo_line_to(cr, 1., .35);
3576 cairo_move_to(cr, .8, .6);
3577 cairo_line_to(cr, .8, .85);
3578 cairo_arc (cr, .65, .85, .15, 0., .5 *
M_PI);
3579 cairo_line_to(cr, .15, 1.);
3580 cairo_arc (cr, .15, .85, .15, .5 *
M_PI,
M_PI);
3581 cairo_line_to(cr, 0., .35);
3582 cairo_arc (cr, .15, .35, .15,
M_PI, 1.5 *
M_PI);
3583 cairo_line_to(cr, .4, .2);
3594 cairo_set_line_width(cr, .05);
3595 cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);
3597 cairo_move_to(cr, .9, .27);
3598 cairo_line_to(cr, .1, .27);
3599 cairo_line_to(cr, .1, .73);
3600 cairo_line_to(cr, .9, .73);
3601 cairo_line_to(cr, .9, .27);
3607 const double cr_linewidth=.04;
3608 const int toprow_keycount = 7;
3610 cairo_set_line_width(cr, cr_linewidth);
3611 cairo_set_line_join(cr, CAIRO_LINE_JOIN_MITER);
3612 cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);
3614 const double kheight = .73-.27;
3615 const double kwidth = .9 - .1;
3616 const double rspace = (kheight - cr_linewidth*3.)/4.;
3617 const double keylength = (kwidth-(cr_linewidth*2.0))/((
double)toprow_keycount+((
double)toprow_keycount/0.9));
3618 const double keyspace = keylength / 0.9;
3619 const double spacelength = kwidth / 2.0;
3622 double keyrowwidth = keylength * toprow_keycount + keyspace*(toprow_keycount-1);
3623 double rowstartpos = .1 + (kwidth - keyrowwidth)/2;
3624 for(
int i=0;
i < 7;
i++)
3626 cairo_move_to(cr, rowstartpos +
i*(keylength+keyspace), .27+rspace+cr_linewidth);
3627 cairo_line_to(cr, rowstartpos +
i*(keylength+keyspace)+keylength, .27+rspace+cr_linewidth);
3631 keyrowwidth = keylength * (toprow_keycount-1) + keyspace*(toprow_keycount-2);
3632 rowstartpos = .1 + (kwidth - keyrowwidth)/2;
3633 for(
int i=0;
i < 6;
i++)
3635 cairo_move_to(cr, rowstartpos +
i*(keylength+keyspace), .27+(rspace+cr_linewidth)*2);
3636 cairo_line_to(cr, rowstartpos +
i*(keylength+keyspace)+keylength, .27+(rspace+cr_linewidth)*2);
3640 keyrowwidth = spacelength;
3641 rowstartpos = .1 + (kwidth - keyrowwidth)/2;
3642 cairo_move_to(cr, rowstartpos , .27+(rspace+cr_linewidth)*3);
3643 cairo_line_to(cr, rowstartpos + spacelength, .27+(rspace+cr_linewidth)*3);
3655 cairo_move_to(cr, 0.5, 0.5);
3656 cairo_line_to(cr, 0, 1.0);
3660 cairo_move_to(cr, 0.13, 0.45);
3661 cairo_line_to(cr, 0.57, 0.88);
3662 cairo_line_to(cr, 0.67, 0.34);
3663 cairo_close_path(cr);
3665 cairo_move_to(cr, 0.61, 0);
3666 cairo_line_to(cr, 1.0, 0.4);
3667 cairo_line_to(cr, 0.34, 0.66);
3668 cairo_close_path(cr);
3678 const double radius = 0.20;
3679 const double offset = 0.24;
3680 const double height = (radius + offset) * 2.0;
3681 const double scale_y = 1 /
height;
3682 const double angle =
M_PI / 4.0;
3684 cairo_translate(cr, 0.5, 0.5);
3685 cairo_rotate(cr, angle);
3686 cairo_scale(cr, 1, scale_y);
3688 cairo_new_sub_path(cr);
3689 cairo_arc(cr, 0.0, -offset + 0.08, radius, 0, 1 *
M_PI);
3690 cairo_arc(cr, 0.0, -offset - 0.08, radius, 1 *
M_PI, 2 *
M_PI);
3691 cairo_close_path(cr);
3693 cairo_new_sub_path(cr);
3694 cairo_arc(cr, 0.0, offset + 0.08, radius, 0, 1 *
M_PI);
3695 cairo_arc(cr, 0.0, offset - 0.08, radius, 1 *
M_PI, 2 *
M_PI);
3696 cairo_close_path(cr);
3715 const cairo_operator_t prev_operator = cairo_get_operator(cr);
3716 cairo_push_group(cr);
3717 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
3719 cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE);
3721 const double width = 0.25;
3722 const double height = 0.25;
3723 const double margin = 0.05;
3726 const double left = margin;
3727 const double top = margin;
3728 const double right = 1.0 - margin -
width;
3729 const double bottom = 1.0 - margin -
height;
3730 const double center_x = margin +
width * 0.5;
3731 const double half_width =
width * 0.5;
3739 cairo_move_to(cr, center_x, bottom);
3740 cairo_line_to(cr, center_x,
top +
height);
3743 cairo_move_to(cr, center_x, 0.5);
3744 cairo_curve_to(cr, right + half_width, 0.5, right + half_width, 0.5, right + half_width, margin +
height);
3748 cairo_pop_group_to_source(cr);
3749 cairo_set_operator(cr, prev_operator);
3756 const gint
flags,
void *data)
3759 cairo_arc(cr, 0.5, 0.5, 0.2, 0, 2 *
M_PI);
3765 const gint
flags,
void *data)
3768 cairo_move_to(cr, 0.1, 0.9);
3769 cairo_line_to(cr, 0.9, 0.1);
3775 const gint
flags,
void *data)
3778 cairo_move_to(cr, 0.1, 0.9);
3779 cairo_curve_to(cr, 0.1, 0.5, 0.5, 0.1, 0.9, 0.1);
static void set_color(cairo_t *cr, GdkRGBA color)
static const dt_aligned_pixel_simd_t const dt_adaptation_t const float p
enum dt_colorlables_enum dt_colorlabels_enum
static const float const float C
static void dt_draw_star(cairo_t *cr, float x, float y, float r1, float r2)
void dtgtk_cairo_paint_help(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_lt_mode_culling_dynamic(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_empty(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_circle(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_raster(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_bulb(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_basic(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_inverse(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_grading(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_paste_forms(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_local_copy(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_remove(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_brush(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_minus_simple(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_difference(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_module_switch_on(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_zoom(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_refresh(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_overexposed(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_bracket(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_ellipse(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
Paint a 45 deg-rotated ellipse that touches the unit square boundaries.
void dtgtk_cairo_paint_masks_gradient(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_andnot(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_dropdown(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_plusminus(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_audio(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_polygon(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_camera(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_switch(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_lt_mode_grid(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_label_sel(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_switch_on(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_or(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_pin(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_structure(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_compass_star(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_draw_structure(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_rect_portrait(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_liquify_cairo_paint_curve_tool(cairo_t *cr, const gint x, const gint y, const gint w, const gint h, const gint flags, void *data)
void dtgtk_cairo_paint_label_flower(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_favorites(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_gamut_check(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_presets(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_line_arrow(cairo_t *cr, gint x, int y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_showmask(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_correct(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_cut_forms(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_triangle(cairo_t *cr, gint x, int y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_tool_heal(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_uniform(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_tone(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_directory(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_tool_blur(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_auto_levels(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_lock(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_text_label(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_treelist(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_lt_mode_zoom(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_map_pin(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_tool_clone(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_union(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_styles(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_liquify_cairo_paint_line_tool(cairo_t *cr, const gint x, const gint y, const gint w, const gint h, const gint flags, void *data)
void dtgtk_cairo_paint_overlays(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_sortby(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_lt_mode_culling_fixed(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_colorpicker(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_multiinstance(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_filmstrip(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_vectorscope(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_plus(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_flip(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_reject(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_switch_deprecated(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_switch_inactive(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_square_plus(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_grid(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_drawn(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_brush_and_inverse(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_linear_scale(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_flowchart(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
Paint the flowchart icon using normalized 0..1 coordinates.
void dtgtk_cairo_paint_modulegroup_technical(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_exclusion(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_module_switch(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_check_mark(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
static void _rounded_rectangle(cairo_t *cr)
void dtgtk_cairo_paint_alignment(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_and(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_rawoverexposed(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_solid_triangle(cairo_t *cr, gint x, int y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_cancel(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
static void _draw_plus_sign(cairo_t *cr, float x, float y, float size, float line_width_scale)
Draw a plus sign centered at the given position.
void dtgtk_liquify_cairo_paint_node_tool(cairo_t *cr, const gint x, const gint y, const gint w, const gint h, const gint flags, void *data)
void _gradient_arc(cairo_t *cr, double lw, int nb_steps, double x_center, double y_center, double radius, double angle_from, double angle_to, double color_from, double color_to, double alpha)
void dtgtk_cairo_paint_eye_toggle(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_luv(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_effect(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_rect_landscape(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_perspective(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_colorpicker_set_values(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_reset(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_eye(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_multi(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_active(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_lt_mode_fullpreview(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_ryb(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_aspectflip(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_star(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_plus_simple(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_solid_arrow(cairo_t *cr, gint x, int y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_color(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_display_wavelet_scale(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_unaltered(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_altered(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_drawn_and_parametric(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_unratestar(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_label(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_store(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_tool_fill(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_rgb_parade(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_polygon(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_waveform_overlaid(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_focus_peaking(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_jzazbz(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_logarithmic_scale(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_intersection(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_arrow(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_vertgradient(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_timer(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_multiply_small(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_shortcut(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_switch_off(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_sorting(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_modulegroup_basics(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_softproof(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_link_chain(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_wand(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_display(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_grouping(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_parametric(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_preferences(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_invert(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void _compass_star(cairo_t *cr, double cx, double cy, double size)
static void _paint_cursor_arrow(cairo_t *cr, const double tip_x, const double tip_y, const double size)
Paint the cursor arrow using the arrow tip position and a uniform size.
static void _draw_triangle(cairo_t *cr, const gint flags)
void dtgtk_cairo_paint_color(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_waveform_scope(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_histogram_scope(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
#define PREAMBLE(scaling, line_scaling, x_offset, y_offset)
void dtgtk_cairo_paint_masks_used(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_masks_edit(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
void dtgtk_cairo_paint_link(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
float *const restrict const size_t k
dt_mipmap_buffer_dsc_flags flags
struct dt_bauhaus_t * bauhaus
GdkRGBA colorlabels[DT_COLORLABELS_LAST]
typedef double((*spd)(unsigned long int wavelength, double TempK))