252
253
, group_expand_texture_("/dash_group_expand.png")
253
254
, group_grid_texture_("/grid-view.svg")
254
255
, group_coverflow_texture_ ("/flow-view.svg")
256
, star_deselected_texture_("/star_deselected.png")
257
, star_selected_texture_("/star_selected.png")
258
, star_highlight_texture_("/star_highlight.png")
256
260
signal_manager_.Add(new glib::Signal<void, GtkSettings*, GParamSpec*>
257
261
(gtk_settings_get_default(),
674
678
cairo_surface_mark_dirty(surface);
677
void Style::Impl::Star(cairo_t* cr, double size)
679
double outter[5][2] = {{0.0, 0.0},
684
double inner[5][2] = {{0.0, 0.0},
689
double angle[5] = {-90.0, -18.0, 54.0, 126.0, 198.0};
690
double outterRadius = size;
691
double innerRadius = size/1.75;
693
for (int i = 0; i < 5; i++)
695
outter[i][0] = outterRadius * cos(angle[i] * M_PI / 180.0);
696
outter[i][1] = outterRadius * sin(angle[i] * M_PI / 180.0);
697
inner[i][0] = innerRadius * cos((angle[i] + 36.0) * M_PI / 180.0);
698
inner[i][1] = innerRadius * sin((angle[i] + 36.0) * M_PI / 180.0);
701
cairo_move_to(cr, outter[0][0], outter[0][1]);
702
cairo_line_to(cr, inner[0][0], inner[0][1]);
703
cairo_line_to(cr, outter[1][0], outter[1][1]);
704
cairo_line_to(cr, inner[1][0], inner[1][1]);
705
cairo_line_to(cr, outter[2][0], outter[2][1]);
706
cairo_line_to(cr, inner[2][0], inner[2][1]);
707
cairo_line_to(cr, outter[3][0], outter[3][1]);
708
cairo_line_to(cr, inner[3][0], inner[3][1]);
709
cairo_line_to(cr, outter[4][0], outter[4][1]);
710
cairo_line_to(cr, inner[4][0], inner[4][1]);
711
cairo_close_path(cr);
714
681
void Style::Impl::SetDefaultValues()
1794
bool Style::StarEmpty(cairo_t* cr, nux::ButtonVisualState state)
1797
if (cairo_status(cr) != CAIRO_STATUS_SUCCESS)
1800
if (cairo_surface_get_type(cairo_get_target(cr)) != CAIRO_SURFACE_TYPE_IMAGE)
1803
double w = cairo_image_surface_get_width(cairo_get_target(cr));
1804
double h = cairo_image_surface_get_height(cairo_get_target(cr));
1805
double radius = .85 * h / 2.0;
1808
cairo_translate(cr, w / 2.0, h / 2.0);
1809
pimpl->Star(cr, radius);
1810
cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0.2);
1811
cairo_fill_preserve(cr);
1812
cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0.5);
1813
cairo_set_line_width(cr, 0.75);
1820
bool Style::StarHalf(cairo_t* cr, nux::ButtonVisualState state)
1823
if (cairo_status(cr) != CAIRO_STATUS_SUCCESS)
1826
if (cairo_surface_get_type(cairo_get_target(cr)) != CAIRO_SURFACE_TYPE_IMAGE)
1829
double w = cairo_image_surface_get_width(cairo_get_target(cr));
1830
double h = cairo_image_surface_get_height(cairo_get_target(cr));
1831
double radius = .85 * h / 2.0;
1833
cairo_pattern_t* pattern = NULL;
1834
pattern = cairo_pattern_create_linear(0.0, 0.0, w, 0.0);
1835
cairo_pattern_add_color_stop_rgba(pattern, 0.0, 1.0, 1.0, 1.0, 1.0);
1836
cairo_pattern_add_color_stop_rgba(pattern, .5, 1.0, 1.0, 1.0, 1.0);
1837
cairo_pattern_add_color_stop_rgba(pattern, .5 + 0.01, 1.0, 1.0, 1.0, 0.2);
1838
cairo_pattern_add_color_stop_rgba(pattern, 1.0, 1.0, 1.0, 1.0, 0.2);
1839
cairo_set_source(cr, pattern);
1842
cairo_translate(cr, w / 2.0, h / 2.0);
1843
pimpl->Star(cr, radius);
1844
cairo_fill_preserve(cr);
1845
cairo_pattern_destroy(pattern);
1846
cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0.5);
1847
cairo_set_line_width(cr, 0.75);
1854
bool Style::StarFull(cairo_t* cr, nux::ButtonVisualState state)
1857
if (cairo_status(cr) != CAIRO_STATUS_SUCCESS)
1860
if (cairo_surface_get_type(cairo_get_target(cr)) != CAIRO_SURFACE_TYPE_IMAGE)
1863
double w = cairo_image_surface_get_width(cairo_get_target(cr));
1864
double h = cairo_image_surface_get_height(cairo_get_target(cr));
1865
double radius = .85 * h / 2.0;
1868
cairo_translate(cr, w / 2.0, h / 2.0);
1869
pimpl->Star(cr, radius);
1870
cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 1.0);
1871
cairo_fill_preserve(cr);
1872
cairo_stroke(cr); // to make sure it's as "large" as the empty and half ones
1878
1761
bool Style::MultiRangeSegment(cairo_t* cr,
1879
1762
nux::ButtonVisualState state,
1880
1763
std::string const& label,