Renamed expr_color to color

This commit is contained in:
cnjinhao 2014-12-24 02:07:39 +08:00
parent 34c8392f35
commit ad7c36be3f
49 changed files with 296 additions and 296 deletions

View File

@ -152,26 +152,26 @@ namespace nana
enum class color_argb: unsigned{}; enum class color_argb: unsigned{};
enum class color_rgba : unsigned{}; enum class color_rgba : unsigned{};
class expr_color class color
{ {
public: public:
expr_color() = default; color() = default;
expr_color(colors); color(colors);
expr_color(colors, double alpha); color(colors, double alpha);
expr_color(color_rgb); color(color_rgb);
expr_color(color_argb); color(color_argb);
expr_color(color_rgba); color(color_rgba);
expr_color(unsigned red, unsigned green, unsigned blue); color(unsigned red, unsigned green, unsigned blue);
expr_color(unsigned red, unsigned green, unsigned blue, double alpha); color(unsigned red, unsigned green, unsigned blue, double alpha);
expr_color& alpha(double); ///< Sets alpha channel color& alpha(double); ///< Sets alpha channel
expr_color& from_rgb(unsigned red, unsigned green, unsigned blue); ///< immutable alpha channel color& from_rgb(unsigned red, unsigned green, unsigned blue); ///< immutable alpha channel
expr_color& from_hsl(double hue, double saturation, double lightness); ///< immutable alpha channel color& from_hsl(double hue, double saturation, double lightness); ///< immutable alpha channel
expr_color& blend(const expr_color& bgcolor, bool ignore_bgcolor_alpha); color& blend(const color& bgcolor, bool ignore_bgcolor_alpha);
///< Blends two colors with the specified alpha, and the alpha values that come with these two colors are both ignored. ///< Blends two colors with the specified alpha, and the alpha values that come with these two colors are both ignored.
expr_color& blend(const expr_color& bgcolor, double alpha); color& blend(const color& bgcolor, double alpha);
bool invisible() const; bool invisible() const;
pixel_color_t px_color() const; pixel_color_t px_color() const;
@ -183,8 +183,8 @@ namespace nana
const double& b() const; const double& b() const;
const double& a() const; const double& a() const;
bool operator==(const expr_color& other) const; bool operator==(const color& other) const;
bool operator!=(const expr_color& other) const; bool operator!=(const color& other) const;
private: private:
double r_; double r_;
double g_; double g_;

View File

@ -105,9 +105,9 @@ namespace detail
drawable_impl_type(); drawable_impl_type();
~drawable_impl_type(); ~drawable_impl_type();
void fgcolor(const ::nana::expr_color&); //deprecated void fgcolor(const ::nana::color&); //deprecated
void set_color(const ::nana::expr_color&); void set_color(const ::nana::color&);
void set_text_color(const ::nana::expr_color&); void set_text_color(const ::nana::color&);
void update_color(); void update_color();
void update_text_color(); void update_text_color();

View File

@ -137,10 +137,10 @@ namespace detail
drawable_impl_type(); drawable_impl_type();
~drawable_impl_type(); ~drawable_impl_type();
void fgcolor(const ::nana::expr_color&); //deprecated void fgcolor(const ::nana::color&); //deprecated
unsigned get_color() const; unsigned get_color() const;
void set_color(const ::nana::expr_color&); void set_color(const ::nana::color&);
void set_text_color(const ::nana::expr_color&); void set_text_color(const ::nana::color&);
void update_pen(); void update_pen();
void update_brush(); void update_brush();

View File

@ -177,9 +177,9 @@ namespace detail
struct struct
{ {
expr_color fgcolor; color fgcolor;
expr_color bgcolor; color bgcolor;
expr_color activated; color activated;
}colors; }colors;
struct struct

View File

@ -35,7 +35,7 @@ namespace nana
virtual ~element_interface() virtual ~element_interface()
{} {}
virtual bool draw(graph_reference, const nana::expr_color& bgcolor, const nana::expr_color& fgcolor, const nana::rectangle&, element_state) = 0; virtual bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state) = 0;
}; };
class crook_interface class crook_interface
@ -53,7 +53,7 @@ namespace nana
virtual ~crook_interface() virtual ~crook_interface()
{} {}
virtual bool draw(graph_reference, const nana::expr_color& bgcolor, const nana::expr_color& fgcolor, const nana::rectangle&, element_state, const data&) = 0; virtual bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state, const data&) = 0;
}; };
class provider class provider
@ -122,7 +122,7 @@ namespace nana
void switch_to(const char*); void switch_to(const char*);
public: public:
//Implement element_interface //Implement element_interface
bool draw(graph_reference, const nana::expr_color& bgcolor, const nana::expr_color& fgcolor, const nana::rectangle& r, element_state) override; bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle& r, element_state) override;
private: private:
element::crook_interface::data data_; element::crook_interface::data data_;
element::crook_interface* const * keeper_; element::crook_interface* const * keeper_;
@ -144,7 +144,7 @@ namespace nana
void set(const cloneable_element&); void set(const cloneable_element&);
void set(const char*); void set(const char*);
bool draw(graph_reference, const nana::expr_color& bgcolor, const nana::expr_color& fgcolor, const nana::rectangle&, element_state); bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state);
private: private:
cloneable_element holder_; cloneable_element holder_;
element_interface * place_ptr_; element_interface * place_ptr_;
@ -174,7 +174,7 @@ namespace nana
void stretch_parts(unsigned left, unsigned top, unsigned right, unsigned bottom); void stretch_parts(unsigned left, unsigned top, unsigned right, unsigned bottom);
//Implement the methods of element_interface. //Implement the methods of element_interface.
virtual bool draw(graph_reference, const nana::expr_color& bgcolor, const nana::expr_color& fgcolor, const nana::rectangle&, element_state); virtual bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state);
private: private:
struct draw_method; struct draw_method;
struct draw_image; struct draw_image;

View File

@ -202,12 +202,12 @@ namespace API
void modal_window(window); ///< Blocks the routine til the specified window is closed. void modal_window(window); ///< Blocks the routine til the specified window is closed.
void wait_for(window); void wait_for(window);
expr_color fgcolor(window); color fgcolor(window);
expr_color fgcolor(window, const expr_color&); color fgcolor(window, const color&);
expr_color bgcolor(window); color bgcolor(window);
expr_color bgcolor(window, const expr_color&); color bgcolor(window, const color&);
expr_color activated_color(window); color activated_color(window);
expr_color activated_color(window, const expr_color&); color activated_color(window, const color&);
void create_caret(window, unsigned width, unsigned height); void create_caret(window, unsigned width, unsigned height);
void destroy_caret(window); void destroy_caret(window);

View File

@ -68,8 +68,8 @@ namespace nana{
bool enable_pushed; bool enable_pushed;
bool focus_color; bool focus_color;
paint::image * icon; paint::image * icon;
::nana::expr_color bgcolor; ::nana::color bgcolor;
::nana::expr_color fgcolor; ::nana::color fgcolor;
}attr_; }attr_;
}; };
}//end namespace button }//end namespace button

View File

@ -90,10 +90,10 @@ namespace nana
struct color_tag struct color_tag
{ {
::nana::expr_color highlight; ::nana::color highlight;
::nana::expr_color selected; ::nana::color selected;
::nana::expr_color normal; ::nana::color normal;
::nana::expr_color bgcolor; ::nana::color bgcolor;
}color_; }color_;
}; };

View File

@ -33,14 +33,11 @@ namespace nana
{ {
struct format struct format
{ {
//::nana::color_t bgcolor; ::nana::color bgcolor;
//::nana::color_t fgcolor; ::nana::color fgcolor;
::nana::expr_color bgcolor;
::nana::expr_color fgcolor;
format() = default; format() = default;
format(const ::nana::expr_color& bgcolor, const ::nana::expr_color& fgcolor); format(const ::nana::color& bgcolor, const ::nana::color& fgcolor);
}; };
using format_ptr = std::unique_ptr < format > ; using format_ptr = std::unique_ptr < format > ;
@ -53,7 +50,7 @@ namespace nana
cell(cell&&); cell(cell&&);
cell(nana::string); cell(nana::string);
cell(nana::string, const format&); cell(nana::string, const format&);
cell(nana::string, const ::nana::expr_color& bgcolor, const ::nana::expr_color& fgcolor); cell(nana::string, const ::nana::color& bgcolor, const ::nana::color& fgcolor);
cell& operator=(const cell&); cell& operator=(const cell&);
cell& operator=(cell&&); cell& operator=(cell&&);
@ -216,11 +213,11 @@ namespace nana
item_proxy & select(bool); item_proxy & select(bool);
bool selected() const; bool selected() const;
item_proxy & bgcolor(const nana::expr_color&); item_proxy & bgcolor(const nana::color&);
nana::expr_color bgcolor() const; nana::color bgcolor() const;
item_proxy& fgcolor(const nana::expr_color&); item_proxy& fgcolor(const nana::color&);
nana::expr_color fgcolor() const; nana::color fgcolor() const;
index_pair pos() const; index_pair pos() const;

View File

@ -26,7 +26,7 @@ namespace nana
void attached(widget_reference, graph_reference) override; void attached(widget_reference, graph_reference) override;
void load(const nana::char_t* file); void load(const nana::char_t* file);
void load(const nana::paint::image&); void load(const nana::paint::image&);
void set_shadow_background(const ::nana::expr_color& from, const ::nana::expr_color& to, bool horizontal); void set_shadow_background(const ::nana::color& from, const ::nana::color& to, bool horizontal);
bool bgstyle(bool is_stretch, nana::arrange, int beg, int end); bool bgstyle(bool is_stretch, nana::arrange, int beg, int end);
private: private:
void refresh(graph_reference) override; void refresh(graph_reference) override;
@ -37,8 +37,8 @@ namespace nana
struct struct
{ {
::nana::expr_color gradual_from; ::nana::color gradual_from;
::nana::expr_color gradual_to; ::nana::color gradual_to;
bool horizontal; bool horizontal;
}bground_; }bground_;
@ -72,7 +72,7 @@ namespace nana
); );
/// Fills a gradual-change color in background. If One of colors is invisible or clr_from is equal to clr_to, it draws background in bgcolor. /// Fills a gradual-change color in background. If One of colors is invisible or clr_from is equal to clr_to, it draws background in bgcolor.
void set_gradual_background(const ::nana::expr_color& clr_from, const ::nana::expr_color& clr_to, bool horizontal); void set_gradual_background(const ::nana::color& clr_from, const ::nana::color& clr_to, bool horizontal);
void transparent(bool); void transparent(bool);
bool transparent() const; bool transparent() const;
}; };

View File

@ -136,7 +136,7 @@ namespace nana{ namespace widgets
struct ext_renderer_tag struct ext_renderer_tag
{ {
std::function<void(graph_reference, const nana::rectangle& text_area, const ::nana::expr_color&)> background; std::function<void(graph_reference, const nana::rectangle& text_area, const ::nana::color&)> background;
}; };
text_editor(window, graph_reference); text_editor(window, graph_reference);
@ -151,7 +151,7 @@ namespace nana{ namespace widgets
/// Set the text_editor whether it is line wrapped, it returns false if the state is not changed. /// Set the text_editor whether it is line wrapped, it returns false if the state is not changed.
bool line_wrapped(bool); bool line_wrapped(bool);
void border_renderer(std::function<void(graph_reference, const ::nana::expr_color& bgcolor)>); void border_renderer(std::function<void(graph_reference, const ::nana::color& bgcolor)>);
bool load(const nana::char_t*); bool load(const nana::char_t*);
@ -227,7 +227,7 @@ namespace nana{ namespace widgets
skeletons::textbase<nana::char_t>& textbase(); skeletons::textbase<nana::char_t>& textbase();
const skeletons::textbase<nana::char_t>& textbase() const; const skeletons::textbase<nana::char_t>& textbase() const;
private: private:
::nana::expr_color _m_bgcolor() const; ::nana::color _m_bgcolor() const;
bool _m_scroll_text(bool vertical); bool _m_scroll_text(bool vertical);
void _m_on_scroll(const arg_mouse&); void _m_on_scroll(const arg_mouse&);
void _m_scrollbar(); void _m_scrollbar();
@ -262,7 +262,7 @@ namespace nana{ namespace widgets
//_m_draw_string //_m_draw_string
//@brief: Draw a line of string //@brief: Draw a line of string
void _m_draw_string(int top, const ::nana::expr_color&, const nana::upoint& str_pos, const nana::string&, bool if_mask) const; void _m_draw_string(int top, const ::nana::color&, const nana::upoint& str_pos, const nana::string&, bool if_mask) const;
//_m_draw //_m_draw
//@brief: Draw a character at a position specified by caret pos. //@brief: Draw a character at a position specified by caret pos.
//@return: true if beyond the border //@return: true if beyond the border
@ -308,7 +308,7 @@ namespace nana{ namespace widgets
unsigned scroll_pixels; unsigned scroll_pixels;
unsigned vscroll; unsigned vscroll;
unsigned hscroll; unsigned hscroll;
std::function<void(nana::paint::graphics&, const ::nana::expr_color&)> border_renderer; std::function<void(nana::paint::graphics&, const ::nana::color&)> border_renderer;
}text_area_; }text_area_;
struct selection struct selection

View File

@ -444,8 +444,8 @@ namespace nana{ namespace widgets{ namespace skeletons
bool bold; bool bold;
bool bold_empty; //bold should be ignored if bold_empty is true bool bold_empty; //bold should be ignored if bold_empty is true
aligns::t text_align; aligns::t text_align;
::nana::expr_color bgcolor; //If the color is not specified, it will be ignored, and the system will search for its parent. ::nana::color bgcolor; //If the color is not specified, it will be ignored, and the system will search for its parent.
::nana::expr_color fgcolor; //ditto ::nana::color fgcolor; //ditto
::nana::string target; ::nana::string target;
::nana::string url; ::nana::string url;

View File

@ -73,12 +73,12 @@ namespace nana
struct item_t struct item_t
{ {
::nana::rectangle r; ::nana::rectangle r;
::nana::expr_color bgcolor; ::nana::color bgcolor;
::nana::expr_color fgcolor; ::nana::color fgcolor;
}; };
virtual ~item_renderer() = default; virtual ~item_renderer() = default;
virtual void background(graph_reference, const nana::rectangle& r, const ::nana::expr_color& bgcolor) = 0; virtual void background(graph_reference, const nana::rectangle& r, const ::nana::color& bgcolor) = 0;
virtual void item(graph_reference, const item_t&, bool active, state_t) = 0; virtual void item(graph_reference, const item_t&, bool active, state_t) = 0;
virtual void close_fly(graph_reference, const nana::rectangle&, bool active, state_t) = 0; virtual void close_fly(graph_reference, const nana::rectangle&, bool active, state_t) = 0;
@ -150,7 +150,7 @@ namespace nana
std::size_t length() const; std::size_t length() const;
bool close_fly(bool); bool close_fly(bool);
void relate(size_t, window); void relate(size_t, window);
void tab_color(std::size_t, bool is_bgcolor, const ::nana::expr_color&); void tab_color(std::size_t, bool is_bgcolor, const ::nana::color&);
void tab_image(size_t, const nana::paint::image&); void tab_image(size_t, const nana::paint::image&);
void text(std::size_t, const nana::string&); void text(std::size_t, const nana::string&);
nana::string text(std::size_t) const; nana::string text(std::size_t) const;
@ -278,12 +278,12 @@ namespace nana
this->get_drawer_trigger().relate(pos, wd); this->get_drawer_trigger().relate(pos, wd);
} }
void tab_bgcolor(std::size_t i, const ::nana::expr_color& clr) void tab_bgcolor(std::size_t i, const ::nana::color& clr)
{ {
this->get_drawer_trigger().tab_color(i, true, clr); this->get_drawer_trigger().tab_color(i, true, clr);
} }
void tab_fgcolor(std::size_t i, const ::nana::expr_color& clr) void tab_fgcolor(std::size_t i, const ::nana::color& clr)
{ {
this->get_drawer_trigger().tab_color(i, false, clr); this->get_drawer_trigger().tab_color(i, false, clr);
} }

View File

@ -79,7 +79,7 @@ namespace nana
void typeface_changed(graph_reference) override; void typeface_changed(graph_reference) override;
private: private:
void _m_text_area(unsigned width, unsigned height); void _m_text_area(unsigned width, unsigned height);
void _m_draw_border(graph_reference, const ::nana::expr_color& bgcolor); void _m_draw_border(graph_reference, const ::nana::color& bgcolor);
private: private:
widget* widget_; widget* widget_;
struct status_type struct status_type

View File

@ -67,7 +67,7 @@ namespace nana
void mouse_up(graph_reference, const arg_mouse&) override; void mouse_up(graph_reference, const arg_mouse&) override;
private: private:
size_type _m_which(int x, int y, bool want_if_disabled) const; size_type _m_which(int x, int y, bool want_if_disabled) const;
void _m_draw_background(const ::nana::expr_color&); void _m_draw_background(const ::nana::color&);
void _m_draw(); void _m_draw();
void _m_owner_sized(const arg_resized&); void _m_owner_sized(const arg_resized&);
private: private:

View File

@ -74,7 +74,7 @@ namespace nana
virtual ~renderer_interface() virtual ~renderer_interface()
{} {}
virtual void set_color(const nana::expr_color& bgcolor, const nana::expr_color& fgcolor) = 0; virtual void set_color(const nana::color& bgcolor, const nana::color& fgcolor) = 0;
virtual void bground(graph_reference, const compset_interface *) const = 0; virtual void bground(graph_reference, const compset_interface *) const = 0;
virtual void expander(graph_reference, const compset_interface *) const = 0; virtual void expander(graph_reference, const compset_interface *) const = 0;

View File

@ -73,10 +73,10 @@ namespace nana
void move(int x, int y); void move(int x, int y);
void move(const rectangle&); void move(const rectangle&);
void fgcolor(const nana::expr_color&); void fgcolor(const nana::color&);
nana::expr_color fgcolor() const; nana::color fgcolor() const;
void bgcolor(const nana::expr_color&); void bgcolor(const nana::color&);
nana::expr_color bgcolor() const; nana::color bgcolor() const;
general_events& events() const; general_events& events() const;
@ -110,10 +110,10 @@ namespace nana
virtual void _m_typeface(const nana::paint::font& font); virtual void _m_typeface(const nana::paint::font& font);
virtual nana::paint::font _m_typeface() const; virtual nana::paint::font _m_typeface() const;
virtual void _m_fgcolor(const nana::expr_color&); virtual void _m_fgcolor(const nana::color&);
virtual nana::expr_color _m_fgcolor() const; virtual nana::color _m_fgcolor() const;
virtual void _m_bgcolor(const nana::expr_color&); virtual void _m_bgcolor(const nana::color&);
virtual nana::expr_color _m_bgcolor() const; virtual nana::color _m_bgcolor() const;
}; };
/// Base class of all the classes defined as a widget window. Defaultly a widget_tag /// Base class of all the classes defined as a widget window. Defaultly a widget_tag

View File

@ -405,7 +405,7 @@ namespace detail
class bresenham_line class bresenham_line
: public image_process::line_interface : public image_process::line_interface
{ {
virtual void process(paint::pixel_buffer & pixbuf, const nana::point& pos_beg, const nana::point& pos_end, const ::nana::expr_color& clr, double fade_rate) const virtual void process(paint::pixel_buffer & pixbuf, const nana::point& pos_beg, const nana::point& pos_end, const ::nana::color& clr, double fade_rate) const
{ {
auto rgb_color = clr.px_color().value; auto rgb_color = clr.px_color().value;
const std::size_t bytes_pl = pixbuf.bytes_per_line(); const std::size_t bytes_pl = pixbuf.bytes_per_line();

View File

@ -26,10 +26,10 @@ namespace gadget
enum t{to_east, to_southeast, to_south, to_southwest, to_west, to_northwest, to_north, to_northeast}; enum t{to_east, to_southeast, to_south, to_southwest, to_west, to_northwest, to_north, to_northeast};
}; };
void arrow_16_pixels(nana::paint::graphics&, int x, int y, const expr_color&, uint32_t style, directions::t direction); void arrow_16_pixels(nana::paint::graphics&, int x, int y, const color&, uint32_t style, directions::t direction);
void close_16_pixels(nana::paint::graphics&, int x, int y, uint32_t style, const expr_color&); void close_16_pixels(nana::paint::graphics&, int x, int y, uint32_t style, const color&);
//void cross(nana::paint::graphics&, int x, int y, uint32_t size, uint32_t thickness, nana::color_t color); //deprecated //void cross(nana::paint::graphics&, int x, int y, uint32_t size, uint32_t thickness, nana::color_t color); //deprecated
void cross(nana::paint::graphics&, int x, int y, uint32_t size, uint32_t thickness, const nana::expr_color&); void cross(nana::paint::graphics&, int x, int y, uint32_t size, uint32_t thickness, const nana::color&);
}//end namespace gadget }//end namespace gadget

View File

@ -131,34 +131,34 @@ namespace nana
void release(); void release();
void save_as_file(const char*); void save_as_file(const char*);
void set_color(const ::nana::expr_color&); void set_color(const ::nana::color&);
void set_text_color(const ::nana::expr_color&); void set_text_color(const ::nana::color&);
unsigned bidi_string(const nana::point&, const char_t *, std::size_t len); unsigned bidi_string(const nana::point&, const char_t *, std::size_t len);
void blend(const ::nana::rectangle& r, const ::nana::expr_color&, double fade_rate); void blend(const ::nana::rectangle& r, const ::nana::color&, double fade_rate);
void set_pixel(int x, int y, const ::nana::expr_color&); void set_pixel(int x, int y, const ::nana::color&);
void set_pixel(int x, int y); void set_pixel(int x, int y);
void string(point, const char_t*, std::size_t len); void string(point, const char_t*, std::size_t len);
void string(const point&, const char_t*); void string(const point&, const char_t*);
void string(const point&, const ::nana::string&); void string(const point&, const ::nana::string&);
void string(const point&, const ::nana::string&, const expr_color&); void string(const point&, const ::nana::string&, const color&);
void line(const point&, const point&); void line(const point&, const point&);
void line(const point&, const point&, const expr_color&); void line(const point&, const point&, const color&);
void line_to(const point&, const expr_color&); void line_to(const point&, const color&);
void line_to(const point&); void line_to(const point&);
void rectangle(bool solid); void rectangle(bool solid);
void rectangle(bool solid, const expr_color&); void rectangle(bool solid, const color&);
void rectangle(const ::nana::rectangle&, bool solid); void rectangle(const ::nana::rectangle&, bool solid);
void rectangle(const ::nana::rectangle&, bool solid, const expr_color&); void rectangle(const ::nana::rectangle&, bool solid, const color&);
void frame_rectangle(const ::nana::rectangle&, const expr_color& left, const expr_color& top, const expr_color& right, const expr_color& bottom); void frame_rectangle(const ::nana::rectangle&, const color& left, const color& top, const color& right, const color& bottom);
void gradual_rectangle(const ::nana::rectangle&, const expr_color& from, const expr_color& to, bool vertical); void gradual_rectangle(const ::nana::rectangle&, const color& from, const color& to, bool vertical);
void round_rectangle(const ::nana::rectangle&, unsigned radius_x, unsigned radius_y, const expr_color&, bool solid, const expr_color& color_if_solid); void round_rectangle(const ::nana::rectangle&, unsigned radius_x, unsigned radius_y, const color&, bool solid, const color& color_if_solid);
private: private:
std::shared_ptr< ::nana::detail::drawable_impl_type> dwptr_; std::shared_ptr< ::nana::detail::drawable_impl_type> dwptr_;
font font_shadow_; font font_shadow_;

View File

@ -68,7 +68,7 @@ namespace nana
virtual void process(paint::pixel_buffer & pixbuf, virtual void process(paint::pixel_buffer & pixbuf,
const point& pos_beg, ///< left point const point& pos_beg, ///< left point
const point& pos_end, ///< right point const point& pos_end, ///< right point
const ::nana::expr_color&, const ::nana::color&,
double fade_rate ///< blend rate in the range of [0, 1] If not 0, the line is blended to the pixbuf double fade_rate ///< blend rate in the range of [0, 1] If not 0, the line is blended to the pixbuf
) const = 0; ) const = 0;
}; };

View File

@ -68,10 +68,10 @@ namespace nana{ namespace paint
void put(const unsigned char* rawbits, std::size_t width, std::size_t height, std::size_t bits_per_pixel, std::size_t bytes_per_line, bool is_negative); void put(const unsigned char* rawbits, std::size_t width, std::size_t height, std::size_t bits_per_pixel, std::size_t bytes_per_line, bool is_negative);
void line(const std::string& name); void line(const std::string& name);
void line(const ::nana::point& pos_beg, const ::nana::point& pos_end, const ::nana::expr_color&, double fade_rate); void line(const ::nana::point& pos_beg, const ::nana::point& pos_end, const ::nana::color&, double fade_rate);
void rectangle(const nana::rectangle&, const ::nana::expr_color&, double fade_rate, bool solid); void rectangle(const nana::rectangle&, const ::nana::color&, double fade_rate, bool solid);
void gradual_rectangle(const ::nana::rectangle&, const ::nana::expr_color& from, const ::nana::expr_color& to, double fade_rate, bool vertical); void gradual_rectangle(const ::nana::rectangle&, const ::nana::color& from, const ::nana::color& to, double fade_rate, bool vertical);
pixel_color_t pixel(int x, int y) const; pixel_color_t pixel(int x, int y) const;
void pixel(int x, int y, pixel_color_t); void pixel(int x, int y, pixel_color_t);

View File

@ -14,41 +14,41 @@
namespace nana namespace nana
{ {
//class color //class color
expr_color::expr_color(colors clr) color::color(colors clr)
: expr_color((static_cast<unsigned>(clr)& 0xFF0000) >> 16, (static_cast<unsigned>(clr)& 0xFF00) >> 8, static_cast<unsigned>(clr)& 0xFF) : color((static_cast<unsigned>(clr)& 0xFF0000) >> 16, (static_cast<unsigned>(clr)& 0xFF00) >> 8, static_cast<unsigned>(clr)& 0xFF)
{} {}
expr_color::expr_color(colors clr, double alpha) color::color(colors clr, double alpha)
: expr_color((static_cast<unsigned>(clr)& 0xFF0000) >> 16, (static_cast<unsigned>(clr)& 0xFF00) >> 8, static_cast<unsigned>(clr)& 0xFF, alpha) : color((static_cast<unsigned>(clr)& 0xFF0000) >> 16, (static_cast<unsigned>(clr)& 0xFF00) >> 8, static_cast<unsigned>(clr)& 0xFF, alpha)
{} {}
expr_color::expr_color(color_rgb rgb) color::color(color_rgb rgb)
: r_((static_cast<int>(rgb) >> 16) & 0xFF), : r_((static_cast<int>(rgb) >> 16) & 0xFF),
g_((static_cast<int>(rgb) >> 8) & 0xFF), g_((static_cast<int>(rgb) >> 8) & 0xFF),
b_(static_cast<int>(rgb) & 0xFF), b_(static_cast<int>(rgb) & 0xFF),
a_(1.0) a_(1.0)
{} {}
expr_color::expr_color(color_argb argb) color::color(color_argb argb)
: r_((static_cast<int>(argb) >> 16) & 0xFF), : r_((static_cast<int>(argb) >> 16) & 0xFF),
g_((static_cast<int>(argb) >> 8) & 0xFF), g_((static_cast<int>(argb) >> 8) & 0xFF),
b_(static_cast<int>(argb) & 0xFF), b_(static_cast<int>(argb) & 0xFF),
a_(((static_cast<int>(argb) >> 24) & 0xFF) / 255.0) a_(((static_cast<int>(argb) >> 24) & 0xFF) / 255.0)
{} {}
expr_color::expr_color(color_rgba rgba) color::color(color_rgba rgba)
: r_((static_cast<int>(rgba) >> 24) & 0xFF), : r_((static_cast<int>(rgba) >> 24) & 0xFF),
g_((static_cast<int>(rgba) >> 16) & 0xFF), g_((static_cast<int>(rgba) >> 16) & 0xFF),
b_((static_cast<int>(rgba) >> 8) & 0xFF), b_((static_cast<int>(rgba) >> 8) & 0xFF),
a_((static_cast<int>(rgba) & 0xFF) / 255.0) a_((static_cast<int>(rgba) & 0xFF) / 255.0)
{} {}
expr_color::expr_color(unsigned red, unsigned green, unsigned blue) color::color(unsigned red, unsigned green, unsigned blue)
: a_(1.0), r_(red), g_(green), b_(blue) : a_(1.0), r_(red), g_(green), b_(blue)
{ {
} }
expr_color::expr_color(unsigned red, unsigned green, unsigned blue, double alpha) color::color(unsigned red, unsigned green, unsigned blue, double alpha)
: a_(alpha), r_(red), g_(green), b_(blue) : a_(alpha), r_(red), g_(green), b_(blue)
{ {
if (alpha < 0.0) if (alpha < 0.0)
@ -57,7 +57,7 @@ namespace nana
a_ = 1.0; a_ = 1.0;
} }
expr_color& expr_color::from_rgb(unsigned red, unsigned green, unsigned blue) color& color::from_rgb(unsigned red, unsigned green, unsigned blue)
{ {
r_ = red; r_ = red;
g_ = green; g_ = green;
@ -78,7 +78,7 @@ namespace nana
return v1; return v1;
} }
expr_color& expr_color::from_hsl(double hue, double saturation, double lightness) color& color::from_hsl(double hue, double saturation, double lightness)
{ {
if (0.0 == saturation) if (0.0 == saturation)
{ {
@ -103,7 +103,7 @@ namespace nana
return *this; return *this;
} }
expr_color& expr_color::alpha(double al) color& color::alpha(double al)
{ {
if (al < 0.0) if (al < 0.0)
a_ = 0.0; a_ = 0.0;
@ -114,7 +114,7 @@ namespace nana
return *this; return *this;
} }
expr_color& expr_color::blend(const expr_color& bgcolor, bool ignore_bgcolor_alpha) color& color::blend(const color& bgcolor, bool ignore_bgcolor_alpha)
{ {
if (a_ < 1.0) if (a_ < 1.0)
{ {
@ -146,7 +146,7 @@ namespace nana
return *this; return *this;
} }
expr_color& expr_color::blend(const expr_color& bgcolor, double alpha) color& color::blend(const color& bgcolor, double alpha)
{ {
r_ = r_ * alpha + bgcolor.r_ * (1.0 - alpha); r_ = r_ * alpha + bgcolor.r_ * (1.0 - alpha);
g_ = g_ * alpha + bgcolor.g_ * (1.0 - alpha); g_ = g_ * alpha + bgcolor.g_ * (1.0 - alpha);
@ -155,17 +155,17 @@ namespace nana
return *this; return *this;
} }
bool expr_color::invisible() const bool color::invisible() const
{ {
return (a_ == 0.0); return (a_ == 0.0);
} }
pixel_color_t expr_color::px_color() const pixel_color_t color::px_color() const
{ {
return argb(); return argb();
} }
pixel_argb_t expr_color::argb() const pixel_argb_t color::argb() const
{ {
pixel_argb_t argb; pixel_argb_t argb;
argb.element.red = static_cast<unsigned>(r_); argb.element.red = static_cast<unsigned>(r_);
@ -175,7 +175,7 @@ namespace nana
return argb; return argb;
} }
pixel_rgba_t expr_color::rgba() const pixel_rgba_t color::rgba() const
{ {
pixel_rgba_t rgba; pixel_rgba_t rgba;
rgba.element.red = static_cast<unsigned>(r_); rgba.element.red = static_cast<unsigned>(r_);
@ -185,29 +185,29 @@ namespace nana
return rgba; return rgba;
} }
const double& expr_color::r() const const double& color::r() const
{ {
return r_; return r_;
} }
const double& expr_color::g() const const double& color::g() const
{ {
return g_; return g_;
} }
const double& expr_color::b() const const double& color::b() const
{ {
return b_; return b_;
} }
const double& expr_color::a() const const double& color::a() const
{ {
return a_; return a_;
} }
bool expr_color::operator==(const expr_color& other) const bool color::operator==(const color& other) const
{ {
return (px_color().value == other.px_color().value); return (px_color().value == other.px_color().value);
} }
bool expr_color::operator!=(const expr_color& other) const bool color::operator!=(const color& other) const
{ {
return (px_color().value != other.px_color().value); return (px_color().value != other.px_color().value);
} }

View File

@ -301,12 +301,12 @@ namespace detail
#endif #endif
} }
void drawable_impl_type::set_color(const ::nana::expr_color& clr) void drawable_impl_type::set_color(const ::nana::color& clr)
{ {
color_ = clr.px_color().value; color_ = clr.px_color().value;
} }
void drawable_impl_type::set_text_color(const ::nana::expr_color& clr) void drawable_impl_type::set_text_color(const ::nana::color& clr)
{ {
text_color_ = clr.px_color().value; text_color_ = clr.px_color().value;
update_text_color(); update_text_color();
@ -363,7 +363,7 @@ namespace detail
} }
} }
void drawable_impl_type::fgcolor(const ::nana::expr_color& clr) void drawable_impl_type::fgcolor(const ::nana::color& clr)
{ {
auto rgb = clr.px_color().value; auto rgb = clr.px_color().value;

View File

@ -48,7 +48,7 @@ namespace detail
::DeleteObject(round_region.handle); ::DeleteObject(round_region.handle);
} }
void drawable_impl_type::fgcolor(const ::nana::expr_color& clr) void drawable_impl_type::fgcolor(const ::nana::color& clr)
{ {
set_text_color(clr); set_text_color(clr);
} }
@ -58,12 +58,12 @@ namespace detail
return color_; return color_;
} }
void drawable_impl_type::set_color(const ::nana::expr_color& clr) void drawable_impl_type::set_color(const ::nana::color& clr)
{ {
color_ = clr.px_color().value; color_ = clr.px_color().value;
} }
void drawable_impl_type::set_text_color(const ::nana::expr_color& clr) void drawable_impl_type::set_text_color(const ::nana::color& clr)
{ {
auto rgb = clr.px_color().value; auto rgb = clr.px_color().value;
if (text_color_ != rgb) if (text_color_ != rgb)

View File

@ -31,7 +31,7 @@ namespace nana
class crook class crook
: public crook_interface : public crook_interface
{ {
bool draw(graph_reference graph, const nana::expr_color& bgcolor, const nana::expr_color& fgcolor, const nana::rectangle& r, element_state es, const data& crook_data) override bool draw(graph_reference graph, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle& r, element_state es, const data& crook_data) override
{ {
if(crook_data.radio) if(crook_data.radio)
{ {
@ -141,7 +141,7 @@ namespace nana
} }
else else
{ {
nana::expr_color highlighted(0x5e, 0xb6, 0xf7); nana::color highlighted(0x5e, 0xb6, 0xf7);
auto bld_bgcolor = bgcolor; auto bld_bgcolor = bgcolor;
auto bld_fgcolor = fgcolor; auto bld_fgcolor = fgcolor;
switch(es) switch(es)
@ -156,7 +156,7 @@ namespace nana
bld_fgcolor.blend(highlighted, 0.4); bld_fgcolor.blend(highlighted, 0.4);
break; break;
case element_state::disabled: case element_state::disabled:
bld_bgcolor = bld_fgcolor = nana::expr_color(0xb2, 0xb7, 0xbc); bld_bgcolor = bld_fgcolor = nana::color(0xb2, 0xb7, 0xbc);
break; break;
default: default:
//Leave things as they are //Leave things as they are
@ -207,7 +207,7 @@ namespace nana
class menu_crook class menu_crook
: public crook_interface : public crook_interface
{ {
bool draw(graph_reference graph, const ::nana::expr_color&, const ::nana::expr_color& fgcolor, const nana::rectangle& r, element_state es, const data& crook_data) override bool draw(graph_reference graph, const ::nana::color&, const ::nana::color& fgcolor, const nana::rectangle& r, element_state es, const data& crook_data) override
{ {
if(crook_data.check_state == state::unchecked) if(crook_data.check_state == state::unchecked)
return true; return true;
@ -244,7 +244,7 @@ namespace nana
int x = r.x + (static_cast<int>(r.width) - 16) / 2; int x = r.x + (static_cast<int>(r.width) - 16) / 2;
int y = r.y + (static_cast<int>(r.height) - 16) / 2; int y = r.y + (static_cast<int>(r.height) - 16) / 2;
::nana::expr_color light(colors::white); ::nana::color light(colors::white);
light.blend(fgcolor, 0.5); light.blend(fgcolor, 0.5);
graph.set_color(fgcolor); graph.set_color(fgcolor);
@ -453,7 +453,7 @@ namespace nana
keeper_ = element::provider().keeper_crook(name); keeper_ = element::provider().keeper_crook(name);
} }
bool facade<element::crook>::draw(graph_reference graph, const ::nana::expr_color& bgcol, const ::nana::expr_color& fgcol, const nana::rectangle& r, element_state es) bool facade<element::crook>::draw(graph_reference graph, const ::nana::color& bgcol, const ::nana::color& fgcol, const nana::rectangle& r, element_state es)
{ {
return (*keeper_)->draw(graph, bgcol, fgcol, r, es, data_); return (*keeper_)->draw(graph, bgcol, fgcol, r, es, data_);
} }
@ -490,7 +490,7 @@ namespace nana
ref_ptr_ = detail::bedrock::instance().get_element_store().bground(name); ref_ptr_ = detail::bedrock::instance().get_element_store().bground(name);
} }
bool cite_bground::draw(graph_reference dst, const ::nana::expr_color& bgcolor, const ::nana::expr_color& fgcolor, const nana::rectangle& r, element_state state) bool cite_bground::draw(graph_reference dst, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const nana::rectangle& r, element_state state)
{ {
if (ref_ptr_ && *ref_ptr_) if (ref_ptr_ && *ref_ptr_)
return (*ref_ptr_)->draw(dst, bgcolor, fgcolor, r, state); return (*ref_ptr_)->draw(dst, bgcolor, fgcolor, r, state);
@ -676,7 +676,7 @@ namespace nana
} }
//Implement the methods of bground_interface. //Implement the methods of bground_interface.
bool bground::draw(graph_reference dst, const ::nana::expr_color&, const ::nana::expr_color&, const nana::rectangle& to_r, element_state state) bool bground::draw(graph_reference dst, const ::nana::color&, const ::nana::color&, const nana::rectangle& to_r, element_state state)
{ {
if (nullptr == method_) if (nullptr == method_)
return false; return false;

View File

@ -790,7 +790,7 @@ namespace API
restrict::bedrock.pump_event(wd, false); restrict::bedrock.pump_event(wd, false);
} }
expr_color fgcolor(window wd) color fgcolor(window wd)
{ {
internal_scope_guard lock; internal_scope_guard lock;
if (restrict::window_manager.available(reinterpret_cast<restrict::core_window_t*>(wd))) if (restrict::window_manager.available(reinterpret_cast<restrict::core_window_t*>(wd)))
@ -798,7 +798,7 @@ namespace API
return{}; return{};
} }
expr_color fgcolor(window wd, const expr_color& col) color fgcolor(window wd, const color& col)
{ {
auto iwd = reinterpret_cast<restrict::core_window_t*>(wd); auto iwd = reinterpret_cast<restrict::core_window_t*>(wd);
internal_scope_guard lock; internal_scope_guard lock;
@ -815,7 +815,7 @@ namespace API
return{}; return{};
} }
expr_color bgcolor(window wd) color bgcolor(window wd)
{ {
internal_scope_guard lock; internal_scope_guard lock;
if (restrict::window_manager.available(reinterpret_cast<restrict::core_window_t*>(wd))) if (restrict::window_manager.available(reinterpret_cast<restrict::core_window_t*>(wd)))
@ -823,7 +823,7 @@ namespace API
return{}; return{};
} }
expr_color bgcolor(window wd, const expr_color& col) color bgcolor(window wd, const color& col)
{ {
auto iwd = reinterpret_cast<restrict::core_window_t*>(wd); auto iwd = reinterpret_cast<restrict::core_window_t*>(wd);
internal_scope_guard lock; internal_scope_guard lock;
@ -840,7 +840,7 @@ namespace API
return{}; return{};
} }
expr_color activated_color(window wd) color activated_color(window wd)
{ {
internal_scope_guard lock; internal_scope_guard lock;
if (restrict::window_manager.available(reinterpret_cast<restrict::core_window_t*>(wd))) if (restrict::window_manager.available(reinterpret_cast<restrict::core_window_t*>(wd)))
@ -848,7 +848,7 @@ namespace API
return{}; return{};
} }
expr_color activated_color(window wd, const expr_color& col) color activated_color(window wd, const color& col)
{ {
auto iwd = reinterpret_cast<restrict::core_window_t*>(wd); auto iwd = reinterpret_cast<restrict::core_window_t*>(wd);
internal_scope_guard lock; internal_scope_guard lock;

View File

@ -220,7 +220,7 @@ namespace nana{ namespace drawerbase
//color_t fgcolor = (attr_.focus_color ? (attr_.focused ? 0xFF : attr_.fgcolor) : attr_.fgcolor); //color_t fgcolor = (attr_.focus_color ? (attr_.focused ? 0xFF : attr_.fgcolor) : attr_.fgcolor);
auto fgcolor = attr_.fgcolor; auto fgcolor = attr_.fgcolor;
if (attr_.focus_color && attr_.focused) if (attr_.focus_color && attr_.focused)
fgcolor = ::nana::expr_color(colors::blue); fgcolor = ::nana::color(colors::blue);
graph.set_text_color(fgcolor); graph.set_text_color(fgcolor);
@ -241,17 +241,17 @@ namespace nana{ namespace drawerbase
} }
else else
{ {
graph.set_text_color(::nana::expr_color(colors::white)); graph.set_text_color(::nana::color(colors::white));
if(attr_.omitted) if(attr_.omitted)
{ {
tr.render(point{ pos.x + 1, pos.y + 1 }, txtptr, txtlen, omitted_pixels, true); tr.render(point{ pos.x + 1, pos.y + 1 }, txtptr, txtlen, omitted_pixels, true);
graph.set_text_color(::nana::expr_color(colors::gray)); graph.set_text_color(::nana::color(colors::gray));
tr.render(pos, txtptr, txtlen, omitted_pixels, true); tr.render(pos, txtptr, txtlen, omitted_pixels, true);
} }
else else
{ {
graph.bidi_string(point{ pos.x + 1, pos.y + 1 }, txtptr, txtlen); graph.bidi_string(point{ pos.x + 1, pos.y + 1 }, txtptr, txtlen);
graph.set_text_color(::nana::expr_color(colors::gray)); graph.set_text_color(::nana::color(colors::gray));
graph.bidi_string(pos, txtptr, txtlen); graph.bidi_string(pos, txtptr, txtlen);
} }
} }
@ -298,9 +298,9 @@ namespace nana{ namespace drawerbase
nana::rectangle r(graph.size()); nana::rectangle r(graph.size());
r.pare_off(1); r.pare_off(1);
::nana::expr_color from(colors::white); ::nana::color from(colors::white);
from.blend(attr_.bgcolor, 0.8); from.blend(attr_.bgcolor, 0.8);
::nana::expr_color to(colors::black); ::nana::color to(colors::black);
to.blend(attr_.bgcolor, 0.05); to.blend(attr_.bgcolor, 0.05);
if (element_state::pressed == attr_.e_state) if (element_state::pressed == attr_.e_state)
@ -317,7 +317,7 @@ namespace nana{ namespace drawerbase
int right = r.width - 1; int right = r.width - 1;
int bottom = r.height - 1; int bottom = r.height - 1;
::nana::expr_color lt{0x7f,0x7f,0x7f}, rb{0x70,0x70,0x70}; ::nana::color lt{0x7f,0x7f,0x7f}, rb{0x70,0x70,0x70};
graph.frame_rectangle(r, lt, lt, rb, rb); graph.frame_rectangle(r, lt, lt, rb, rb);
graph.set_color({0x91,0x91,0x91}); graph.set_color({0x91,0x91,0x91});

View File

@ -78,7 +78,7 @@ namespace nana
if(ue.what == ue.none || (API::window_enabled(wd) == false)) if(ue.what == ue.none || (API::window_enabled(wd) == false))
{ //the mouse is out of the widget. { //the mouse is out of the widget.
style_.bgcolor.blend(expr_color{ 0xa0, 0xc9, 0xf5 }, 0.9); style_.bgcolor.blend(color{ 0xa0, 0xc9, 0xf5 }, 0.9);
} }
graph.rectangle(r, true, style_.bgcolor); graph.rectangle(r, true, style_.bgcolor);
} }
@ -90,7 +90,7 @@ namespace nana
if(ui_el_.what == ui_el_.item_root) if(ui_el_.what == ui_el_.item_root)
{ {
_m_item_bground(graph, r.x + 1, r.y, r.width - 2, r.height, (state == mouse_action::pressed ? mouse_action::pressed : mouse_action::over)); _m_item_bground(graph, r.x + 1, r.y, r.width - 2, r.height, (state == mouse_action::pressed ? mouse_action::pressed : mouse_action::over));
graph.rectangle(r, false, expr_color{ 0x3C, 0x7F, 0xB1 }); graph.rectangle(r, false, color{ 0x3C, 0x7F, 0xB1 });
if(state == mouse_action::pressed) if(state == mouse_action::pressed)
{ {
++x; ++x;
@ -127,7 +127,7 @@ namespace nana
unsigned width = r.width - 2; unsigned width = r.width - 2;
unsigned height = r.height - 2; unsigned height = r.height - 2;
::nana::expr_color clr{ 0x3C, 0x7F, 0xB1 }; ::nana::color clr{ 0x3C, 0x7F, 0xB1 };
if(has_child) if(has_child)
{ {
width -= 16; width -= 16;
@ -155,8 +155,8 @@ namespace nana
graph.rectangle(r, false, { 0xf0, 0xf0, 0xf0 }); graph.rectangle(r, false, { 0xf0, 0xf0, 0xf0 });
expr_color lb(0x9d, 0xab, 0xb9); color lb(0x9d, 0xab, 0xb9);
expr_color tr(0x48, 0x4e, 0x55); color tr(0x48, 0x4e, 0x55);
graph.frame_rectangle(r.pare_off(1), lb, tr, tr, lb); graph.frame_rectangle(r.pare_off(1), lb, tr, tr, lb);
} }
private: private:
@ -165,7 +165,7 @@ namespace nana
const unsigned half = (height - 2) / 2; const unsigned half = (height - 2) / 2;
int left = x + 1; int left = x + 1;
int top = y + 1; int top = y + 1;
nana::expr_color clr_top(0xea, 0xea, 0xea), clr_bottom(0xdc, 0xdc, 0xdc); nana::color clr_top(0xea, 0xea, 0xea), clr_bottom(0xdc, 0xdc, 0xdc);
switch(state) switch(state)
{ {
case mouse_action::over: case mouse_action::over:
@ -189,12 +189,12 @@ namespace nana
int bottom = y + height - 1; int bottom = y + height - 1;
int right = x + width - 1; int right = x + width - 1;
graph.set_color(expr_color(0x6e, 0x8d, 0x9f)); graph.set_color(color(0x6e, 0x8d, 0x9f));
graph.line(point{ x, y }, point{right, y}); graph.line(point{ x, y }, point{right, y});
graph.line(point{ x, y + 1 }, point{ x, bottom }); graph.line(point{ x, y + 1 }, point{ x, bottom });
++x; ++x;
++y; ++y;
graph.set_color(expr_color(0xa6, 0xc7, 0xd9)); graph.set_color(color(0xa6, 0xc7, 0xd9));
graph.line(point{ x, y }, point{ right, y }); graph.line(point{ x, y }, point{ right, y });
graph.line(point{ x, y + 1 }, point{ x, bottom }); graph.line(point{ x, y + 1 }, point{ x, bottom });
} }
@ -206,8 +206,8 @@ namespace nana
{ {
//nana::color_t bgcolor; //nana::color_t bgcolor;
//nana::color_t fgcolor; //nana::color_t fgcolor;
expr_color bgcolor; color bgcolor;
expr_color fgcolor; color fgcolor;
}style_; }style_;
}; };

View File

@ -85,7 +85,7 @@ namespace nana
{ {
widget_ = static_cast< ::nana::combox*>(&wd); widget_ = static_cast< ::nana::combox*>(&wd);
editor_ = new widgets::skeletons::text_editor(widget_->handle(), graph); editor_ = new widgets::skeletons::text_editor(widget_->handle(), graph);
editor_->border_renderer([this](graph_reference graph, const ::nana::expr_color& bgcolor){ editor_->border_renderer([this](graph_reference graph, const ::nana::color& bgcolor){
draw_border(graph, bgcolor); draw_border(graph, bgcolor);
}); });
editor_->multi_lines(false); editor_->multi_lines(false);
@ -284,9 +284,9 @@ namespace nana
_m_draw_image(); _m_draw_image();
} }
void draw_border(graph_reference graph, const ::nana::expr_color& bgcolor) void draw_border(graph_reference graph, const ::nana::color& bgcolor)
{ {
graph.rectangle(false, (state_.focused ? ::nana::expr_color(0x05, 0x95, 0xE2) : ::nana::expr_color(0x99, 0x9A, 0x9E))); graph.rectangle(false, (state_.focused ? ::nana::color(0x05, 0x95, 0xE2) : ::nana::color(0x99, 0x9A, 0x9E)));
nana::rectangle r(graph.size()); nana::rectangle r(graph.size());
graph.rectangle(r.pare_off(1), false, bgcolor); graph.rectangle(r.pare_off(1), false, bgcolor);
} }
@ -439,7 +439,7 @@ namespace nana
} }
} }
void _m_draw_background(graph_reference graph, const rectangle&, const ::nana::expr_color&) void _m_draw_background(graph_reference graph, const rectangle&, const ::nana::color&)
{ {
::nana::rectangle r(graph.size()); ::nana::rectangle r(graph.size());
auto clr_from = colors::button_face_shadow_start; auto clr_from = colors::button_face_shadow_start;
@ -467,8 +467,8 @@ namespace nana
int bottom = graph_->height() - 2; int bottom = graph_->height() - 2;
int mid = top + (bottom - top) * 5 / 18; int mid = top + (bottom - top) * 5 / 18;
::nana::expr_color topcol, topcol_ln, botcol, botcol_ln; ::nana::color topcol, topcol_ln, botcol, botcol_ln;
::nana::expr_color arrow_color{ colors::white }; ::nana::color arrow_color{ colors::white };
if (enabled && items_.size()) if (enabled && items_.size())
{ {
double percent = 1; double percent = 1;
@ -477,10 +477,10 @@ namespace nana
else if (state_.state == state_t::mouse_over) else if (state_.state == state_t::mouse_over)
percent = 0.9; percent = 0.9;
topcol_ln = expr_color{ 0x3F, 0x47, 0x6C }.blend(arrow_color, percent); topcol_ln = color{ 0x3F, 0x47, 0x6C }.blend(arrow_color, percent);
botcol_ln = expr_color{ 0x03, 0x31, 0x114 }.blend(arrow_color, percent); botcol_ln = color{ 0x03, 0x31, 0x114 }.blend(arrow_color, percent);
topcol = expr_color{ 0x3F, 83, 84 }.blend(arrow_color, percent); topcol = color{ 0x3F, 83, 84 }.blend(arrow_color, percent);
botcol = expr_color{ 0x0c, 0x4a, 0x9a }.blend(arrow_color, percent); botcol = color{ 0x0c, 0x4a, 0x9a }.blend(arrow_color, percent);
} }
else else
{ {

View File

@ -34,7 +34,7 @@ namespace nana
{ {
if (state == StateHighlighted) if (state == StateHighlighted)
{ {
::nana::expr_color clr{ 0xaf, 0xc7, 0xe3 }; ::nana::color clr{ 0xaf, 0xc7, 0xe3 };
graph.rectangle(r, false, clr); graph.rectangle(r, false, clr);
graph.set_color(colors::white); graph.set_color(colors::white);

View File

@ -74,7 +74,7 @@ namespace nana
return true; return true;
} }
void render(graph_reference graph, const ::nana::expr_color& fgcolor, align th, align_v tv) void render(graph_reference graph, const ::nana::color& fgcolor, align th, align_v tv)
{ {
traceable_.clear(); traceable_.clear();
@ -216,7 +216,7 @@ namespace nana
} }
} }
void _m_set_default(const ::nana::paint::font& ft, const ::nana::expr_color& fgcolor) void _m_set_default(const ::nana::paint::font& ft, const ::nana::color& fgcolor)
{ {
def_.font_name = ft.name(); def_.font_name = ft.name();
def_.font_size = ft.size(); def_.font_size = ft.size();
@ -224,7 +224,7 @@ namespace nana
def_.fgcolor = fgcolor; def_.fgcolor = fgcolor;
} }
const ::nana::expr_color& _m_fgcolor(nana::widgets::skeletons::fblock* fp) const ::nana::color& _m_fgcolor(nana::widgets::skeletons::fblock* fp)
{ {
while(fp->fgcolor.invisible()) while(fp->fgcolor.invisible())
{ {
@ -609,7 +609,7 @@ namespace nana
::nana::string font_name; ::nana::string font_name;
std::size_t font_size; std::size_t font_size;
bool font_bold; bool font_bold;
::nana::expr_color fgcolor; ::nana::color fgcolor;
}def_; }def_;
}; };

View File

@ -28,7 +28,7 @@ namespace nana
namespace listbox namespace listbox
{ {
//struct cell //struct cell
cell::format::format(const ::nana::expr_color& bgcolor, const ::nana::expr_color& fgcolor) cell::format::format(const ::nana::color& bgcolor, const ::nana::color& fgcolor)
: bgcolor{ bgcolor }, fgcolor{ fgcolor } : bgcolor{ bgcolor }, fgcolor{ fgcolor }
{} {}
@ -53,7 +53,7 @@ namespace nana
custom_format(new format{ fmt }) //make_unique custom_format(new format{ fmt }) //make_unique
{} {}
cell::cell(nana::string text, const ::nana::expr_color& bgcolor, const ::nana::expr_color& fgcolor) cell::cell(nana::string text, const ::nana::color& bgcolor, const ::nana::color& fgcolor)
: text(std::move(text)), : text(std::move(text)),
custom_format{ new format{ bgcolor, fgcolor } } //make_unique custom_format{ new format{ bgcolor, fgcolor } } //make_unique
{} {}
@ -577,8 +577,8 @@ namespace nana
typedef std::vector<cell> container; typedef std::vector<cell> container;
container cells; container cells;
nana::expr_color bgcolor; nana::color bgcolor;
nana::expr_color fgcolor; nana::color fgcolor;
paint::image img; paint::image img;
nana::size img_show_size; nana::size img_show_size;
@ -616,7 +616,7 @@ namespace nana
cells.emplace_back(std::move(s)); cells.emplace_back(std::move(s));
} }
item_t(nana::string&& s, const nana::expr_color& bg, const nana::expr_color& fg) item_t(nana::string&& s, const nana::color& bg, const nana::color& fg)
: bgcolor(bg), : bgcolor(bg),
fgcolor(fg) fgcolor(fg)
{ {
@ -2280,9 +2280,9 @@ namespace nana
} }
template<typename Item> template<typename Item>
void _m_draw_item(graph_reference graph, int x, int y, unsigned height, int txtop, const ::nana::expr_color& fgcolor, const Item& item, essence_t::state_t state) void _m_draw_item(graph_reference graph, int x, int y, unsigned height, int txtop, const ::nana::color& fgcolor, const Item& item, essence_t::state_t state)
{ {
::nana::expr_color bgcolor; ::nana::color bgcolor;
typedef essence_t::state_t state_t; typedef essence_t::state_t state_t;
switch(state) switch(state)
{ {
@ -2460,14 +2460,14 @@ namespace nana
} }
} }
private: private:
void _m_draw_categ(const category_t& categ, int x, int y, int txtoff, unsigned width, const nana::rectangle& r, nana::expr_color bgcolor, essence_t::state_t state) const void _m_draw_categ(const category_t& categ, int x, int y, int txtoff, unsigned width, const nana::rectangle& r, nana::color bgcolor, essence_t::state_t state) const
{ {
bool sel = categ.selected(); bool sel = categ.selected();
if(sel && (categ.expand == false)) if(sel && (categ.expand == false))
bgcolor = nana::expr_color(0xD5, 0xEF, 0xFC); bgcolor = nana::color(0xD5, 0xEF, 0xFC);
if (state == essence_t::state_t::highlighted) if (state == essence_t::state_t::highlighted)
bgcolor.blend(::nana::expr_color(0x99, 0xde, 0xfd), 0.8); bgcolor.blend(::nana::color(0x99, 0xde, 0xfd), 0.8);
auto graph = essence_->graph; auto graph = essence_->graph;
graph->set_color(bgcolor); graph->set_color(bgcolor);
@ -2499,10 +2499,10 @@ namespace nana
} }
} }
void _m_draw_item(const item_t& item, int x, int y, int txtoff, unsigned width, const nana::rectangle& r, const std::vector<size_type>& seqs, nana::expr_color bgcolor, nana::expr_color fgcolor, essence_t::state_t state) const void _m_draw_item(const item_t& item, int x, int y, int txtoff, unsigned width, const nana::rectangle& r, const std::vector<size_type>& seqs, nana::color bgcolor, nana::color fgcolor, essence_t::state_t state) const
{ {
if(item.flags.selected) if(item.flags.selected)
bgcolor = nana::expr_color(0xD5, 0xEF, 0xFC); bgcolor = nana::color(0xD5, 0xEF, 0xFC);
else if (!item.bgcolor.invisible()) else if (!item.bgcolor.invisible())
bgcolor = item.bgcolor; bgcolor = item.bgcolor;
@ -2511,7 +2511,7 @@ namespace nana
auto graph = essence_->graph; auto graph = essence_->graph;
if (essence_t::state_t::highlighted == state) if (essence_t::state_t::highlighted == state)
bgcolor.blend(::nana::expr_color(0x99, 0xde, 0xfd), 0.8); bgcolor.blend(::nana::color(0x99, 0xde, 0xfd), 0.8);
unsigned show_w = width - essence_->scroll.offset_x; unsigned show_w = width - essence_->scroll.offset_x;
if(show_w >= r.width) show_w = r.width; if(show_w >= r.width) show_w = r.width;
@ -2575,7 +2575,7 @@ namespace nana
{ {
auto cell_bgcolor = m_cell.custom_format->bgcolor; auto cell_bgcolor = m_cell.custom_format->bgcolor;
if (essence_t::state_t::highlighted == state) if (essence_t::state_t::highlighted == state)
cell_bgcolor.blend(::nana::expr_color(0x99, 0xde, 0xfd), 0.8); cell_bgcolor.blend(::nana::color(0x99, 0xde, 0xfd), 0.8);
graph->set_color(cell_bgcolor); graph->set_color(cell_bgcolor);
graph->rectangle(rectangle{ item_xpos, y, header.pixels, essence_->item_size }, true); graph->rectangle(rectangle{ item_xpos, y, header.pixels, essence_->item_size }, true);
} }
@ -3040,26 +3040,26 @@ namespace nana
return cat_->items.at(pos_.item).flags.selected; return cat_->items.at(pos_.item).flags.selected;
} }
item_proxy & item_proxy::bgcolor(const nana::expr_color& col) item_proxy & item_proxy::bgcolor(const nana::color& col)
{ {
cat_->items.at(pos_.item).bgcolor = col; cat_->items.at(pos_.item).bgcolor = col;
ess_->update(); ess_->update();
return *this; return *this;
} }
nana::expr_color item_proxy::bgcolor() const nana::color item_proxy::bgcolor() const
{ {
return cat_->items.at(pos_.item).bgcolor; return cat_->items.at(pos_.item).bgcolor;
} }
item_proxy& item_proxy::fgcolor(const nana::expr_color& col) item_proxy& item_proxy::fgcolor(const nana::color& col)
{ {
cat_->items.at(pos_.item).fgcolor = col; cat_->items.at(pos_.item).fgcolor = col;
ess_->update(); ess_->update();
return *this; return *this;
} }
nana::expr_color item_proxy::fgcolor() const nana::color item_proxy::fgcolor() const
{ {
return cat_->items.at(pos_.item).fgcolor; return cat_->items.at(pos_.item).fgcolor;
} }

View File

@ -134,7 +134,7 @@ namespace nana
{ {
graph.rectangle(r, false, { 0xCD, 0xD3, 0xE6 }); graph.rectangle(r, false, { 0xCD, 0xD3, 0xE6 });
::nana::expr_color clr(0xE6, 0xEF, 0xF4); ::nana::color clr(0xE6, 0xEF, 0xF4);
graph.rectangle(nana::rectangle(r).pare_off(1), true, clr); graph.rectangle(nana::rectangle(r).pare_off(1), true, clr);
nana::rectangle crook_r = r; nana::rectangle crook_r = r;

View File

@ -101,7 +101,7 @@ namespace nana
void item_renderer::background(const nana::point& pos, const nana::size& size, state_t state) void item_renderer::background(const nana::point& pos, const nana::size& size, state_t state)
{ {
auto bground = API::fgcolor(handle_); auto bground = API::fgcolor(handle_);
::nana::expr_color border, body, corner; ::nana::color border, body, corner;
switch(state) switch(state)
{ {
@ -541,8 +541,8 @@ namespace nana
{ {
int x = item_pos.x + item_s.width; int x = item_pos.x + item_s.width;
int y1 = item_pos.y + 2, y2 = item_pos.y + item_s.height - 1; int y1 = item_pos.y + 2, y2 = item_pos.y + item_s.height - 1;
graph_->line({ x, y1 }, { x, y2 }, ::nana::expr_color(colors::gray_border).blend(bgcolor, 0.6)); graph_->line({ x, y1 }, { x, y2 }, ::nana::color(colors::gray_border).blend(bgcolor, 0.6));
graph_->line({ x + 1, y1 }, { x + 1, y2 }, ::nana::expr_color(colors::button_face_shadow_end).blend(bgcolor, 0.5)); graph_->line({ x + 1, y1 }, { x + 1, y2 }, ::nana::color(colors::button_face_shadow_end).blend(bgcolor, 0.5));
} }
//Draw text, the text is transformed from orignal for hotkey character //Draw text, the text is transformed from orignal for hotkey character

View File

@ -43,7 +43,7 @@ namespace nana
backimg_.image = img; backimg_.image = img;
} }
void picture_drawer::set_shadow_background(const ::nana::expr_color& from, const ::nana::expr_color& to, bool horizontal) void picture_drawer::set_shadow_background(const ::nana::color& from, const ::nana::color& to, bool horizontal)
{ {
bground_.gradual_from = from; bground_.gradual_from = from;
bground_.gradual_to = to; bground_.gradual_to = to;
@ -277,7 +277,7 @@ namespace nana
API::refresh_window(*this); API::refresh_window(*this);
} }
void picture::set_gradual_background(const ::nana::expr_color& from, const ::nana::expr_color& to, bool horizontal) void picture::set_gradual_background(const ::nana::color& from, const ::nana::color& to, bool horizontal)
{ {
get_drawer_trigger().set_shadow_background(from, to, horizontal); get_drawer_trigger().set_shadow_background(from, to, horizontal);
} }

View File

@ -108,7 +108,7 @@ namespace nana
{ {
rectangle r = graph.size(); rectangle r = graph.size();
graph.gradual_rectangle(r, colors::button_face_shadow_end, colors::button_face_shadow_start, true); graph.gradual_rectangle(r, colors::button_face_shadow_end, colors::button_face_shadow_start, true);
::nana::expr_color lt{ 0x80, 0x80, 0x80 }, rb{colors::white}; ::nana::color lt{ 0x80, 0x80, 0x80 }, rb{colors::white};
graph.frame_rectangle(r, lt, lt, rb, rb); graph.frame_rectangle(r, lt, lt, rb, rb);
} }

View File

@ -197,7 +197,7 @@ namespace nana
{ {
if(state) if(state)
{ {
::nana::expr_color clr{0x97, 0x97, 0x97}; //highlight ::nana::color clr{0x97, 0x97, 0x97}; //highlight
switch(state) switch(state)
{ {
case states::actived: case states::actived:
@ -318,7 +318,7 @@ namespace nana
else else
r.y = (static_cast<int>(sz.height) - 16) / 2; r.y = (static_cast<int>(sz.height) - 16) / 2;
arrow_16_pixels(graph, r.x, r.y, (_m_check() ? expr_color(colors::black) : expr_color(0x80, 0x80, 0x80)), (states::none == state ? 0 : 1), dir); arrow_16_pixels(graph, r.x, r.y, (_m_check() ? color(colors::black) : color(0x80, 0x80, 0x80)), (states::none == state ? 0 : 1), dir);
} }
} }
//end class drawer //end class drawer

View File

@ -248,7 +248,7 @@ namespace nana{ namespace widgets
virtual std::size_t take_lines(std::size_t pos) const = 0; virtual std::size_t take_lines(std::size_t pos) const = 0;
virtual void update_line(std::size_t textline, std::size_t secondary_before) = 0; virtual void update_line(std::size_t textline, std::size_t secondary_before) = 0;
virtual void render(const ::nana::expr_color& fgcolor) = 0; virtual void render(const ::nana::color& fgcolor) = 0;
virtual nana::point caret_to_screen(upoint) = 0; virtual nana::point caret_to_screen(upoint) = 0;
virtual nana::upoint screen_to_caret(point scrpos) = 0; virtual nana::upoint screen_to_caret(point scrpos) = 0;
virtual bool move_caret_ns(bool to_north) = 0; virtual bool move_caret_ns(bool to_north) = 0;
@ -286,7 +286,7 @@ namespace nana{ namespace widgets
editor_._m_draw_string(top, API::fgcolor(editor_.window_), nana::upoint(0, editor_.points_.caret.y), editor_.textbase_.getline(textline), true); editor_._m_draw_string(top, API::fgcolor(editor_.window_), nana::upoint(0, editor_.points_.caret.y), editor_.textbase_.getline(textline), true);
} }
void render(const ::nana::expr_color& fgcolor) override void render(const ::nana::color& fgcolor) override
{ {
auto & points = editor_.points_; auto & points = editor_.points_;
@ -700,7 +700,7 @@ namespace nana{ namespace widgets
editor_.render(API::is_focus_window(editor_.window_)); editor_.render(API::is_focus_window(editor_.window_));
} }
void render(const ::nana::expr_color& fgcolor) override void render(const ::nana::color& fgcolor) override
{ {
std::size_t scrlines = editor_.screen_lines(); std::size_t scrlines = editor_.screen_lines();
@ -1246,7 +1246,7 @@ namespace nana{ namespace widgets
return false; return false;
} }
void text_editor::border_renderer(std::function<void(nana::paint::graphics&, const ::nana::expr_color&)> f) void text_editor::border_renderer(std::function<void(nana::paint::graphics&, const ::nana::color&)> f)
{ {
text_area_.border_renderer = f; text_area_.border_renderer = f;
} }
@ -2036,9 +2036,9 @@ namespace nana{ namespace widgets
return false; return false;
} }
::nana::expr_color text_editor::_m_bgcolor() const ::nana::color text_editor::_m_bgcolor() const
{ {
return (!API::window_enabled(window_) ? expr_color{ 0xE0, 0xE0, 0xE0 } : API::bgcolor(window_)); return (!API::window_enabled(window_) ? color{ 0xE0, 0xE0, 0xE0 } : API::bgcolor(window_));
} }
bool text_editor::_m_scroll_text(bool vert) bool text_editor::_m_scroll_text(bool vert)
@ -2500,7 +2500,7 @@ namespace nana{ namespace widgets
graph_.string({ text_area_.area.x - points_.offset.x, text_area_.area.y }, attributes_.tip_string, {0x78, 0x78, 0x78}); graph_.string({ text_area_.area.x - points_.offset.x, text_area_.area.y }, attributes_.tip_string, {0x78, 0x78, 0x78});
} }
void text_editor::_m_draw_string(int top, const ::nana::expr_color& clr, const nana::upoint& str_pos, const nana::string& linestr, bool if_mask) const void text_editor::_m_draw_string(int top, const ::nana::color& clr, const nana::upoint& str_pos, const nana::string& linestr, bool if_mask) const
{ {
::nana::point text_pos{ text_area_.area.x - points_.offset.x, top }; ::nana::point text_pos{ text_area_.area.x - points_.offset.x, top };
const int xend = text_area_.area.x + static_cast<int>(text_area_.area.width); const int xend = text_area_.area.x + static_cast<int>(text_area_.area.width);
@ -2575,11 +2575,13 @@ namespace nana{ namespace widgets
if ((text_pos.x + static_cast<int>(str_w) > text_area_.area.x) && (text_pos.x < xend)) if ((text_pos.x + static_cast<int>(str_w) > text_area_.area.x) && (text_pos.x < xend))
{ {
std::size_t pos = ent.begin - strbeg + str_pos.x; std::size_t pos = ent.begin - strbeg + str_pos.x;
const auto str_end = pos + len;
if ((pos + len <= a.x || pos >= b.x) || (a.x <= pos && pos + len <= b.x))
{
//NOT selected or Wholly seleceted //NOT selected or Wholly seleceted
if (a.x <= pos) if ((str_end <= a.x || pos >= b.x) || (a.x <= pos && str_end <= b.x))
{
//Wholly selected
if (a.x <= pos && str_end <= b.x)
{ {
graph_.rectangle({ text_pos, { str_w, line_h_pixels } }, true); graph_.rectangle({ text_pos, { str_w, line_h_pixels } }, true);
graph_.set_text_color(colors::white); graph_.set_text_color(colors::white);
@ -2589,9 +2591,9 @@ namespace nana{ namespace widgets
graph_.string(text_pos, ent.begin, len); graph_.string(text_pos, ent.begin, len);
} }
else if (pos <= a.x && a.x < pos + len) else if (pos <= a.x && a.x < str_end)
{ //Partial selected { //Partial selected
int endpos = static_cast<int>(b.x < pos + len ? b.x : pos + len); int endpos = static_cast<int>(b.x < str_end ? b.x : str_end);
std::unique_ptr<unsigned> pxbuf_ptr(new unsigned[len]); std::unique_ptr<unsigned> pxbuf_ptr(new unsigned[len]);
unsigned * pxbuf = pxbuf_ptr.get(); unsigned * pxbuf = pxbuf_ptr.get();
if (graph_.glyph_pixels(ent.begin, len, pxbuf)) if (graph_.glyph_pixels(ent.begin, len, pxbuf))
@ -2616,15 +2618,16 @@ namespace nana{ namespace widgets
graph_.set_text_color(colors::white); graph_.set_text_color(colors::white);
graph_.string(part_pos, ent.begin + (a.x - pos), endpos - a.x); graph_.string(part_pos, ent.begin + (a.x - pos), endpos - a.x);
if (static_cast<size_t>(endpos) < pos + len) if (static_cast<size_t>(endpos) < str_end)
{ {
graph_.set_text_color(clr);
part_pos.x += static_cast<int>(sel_w); part_pos.x += static_cast<int>(sel_w);
graph_.string(part_pos, ent.begin + (endpos - pos), pos + len - endpos); graph_.string(part_pos, ent.begin + (endpos - pos), str_end - endpos);
} }
} }
} }
} }
else if (pos <= b.x && b.x < pos + len) else if (pos <= b.x && b.x < str_end)
{ //Partial selected { //Partial selected
int endpos = b.x; int endpos = b.x;
unsigned sel_w = graph_.glyph_extent_size(ent.begin, len, 0, endpos - pos).width; unsigned sel_w = graph_.glyph_extent_size(ent.begin, len, 0, endpos - pos).width;
@ -2641,12 +2644,12 @@ namespace nana{ namespace widgets
graph_.set_text_color(colors::white); graph_.set_text_color(colors::white);
graph_.string(text_pos, ent.begin, endpos - pos); graph_.string(text_pos, ent.begin, endpos - pos);
graph_.set_text_color(clr); graph_.set_text_color(clr);
graph_.string(text_pos + ::nana::point(static_cast<int>(sel_w), 0), ent.begin + (endpos - pos), pos + len - endpos); graph_.string(text_pos + ::nana::point(static_cast<int>(sel_w), 0), ent.begin + (endpos - pos), str_end - endpos);
} }
} }
} }
text_pos.x += static_cast<int>(str_w); text_pos.x += static_cast<int>(str_w);
} }//end for
} }
else if (a.y == str_pos.y) else if (a.y == str_pos.y)
{ {

View File

@ -21,7 +21,7 @@ namespace nana
virtual void bar(window, graph_reference graph, const bar_t& bi) virtual void bar(window, graph_reference graph, const bar_t& bi)
{ {
//draw border //draw border
::nana::expr_color lt(0x83, 0x90, 0x97), rb(0x9d,0xae,0xc2); ::nana::color lt(0x83, 0x90, 0x97), rb(0x9d,0xae,0xc2);
graph.frame_rectangle(bi.r, lt, lt, rb, rb); graph.frame_rectangle(bi.r, lt, lt, rb, rb);
} }
@ -30,7 +30,7 @@ namespace nana
auto len = static_cast<const unsigned>(ad.bound.y - ad.bound.x); auto len = static_cast<const unsigned>(ad.bound.y - ad.bound.x);
const auto upperblock = ad.block - ad.block / 2; const auto upperblock = ad.block - ad.block / 2;
::nana::expr_color clr_from(0x84, 0xc5, 0xff), clr_trans(0x0f, 0x41, 0xcd), clr_to(0x6e, 0x96, 0xff); ::nana::color clr_from(0x84, 0xc5, 0xff), clr_trans(0x0f, 0x41, 0xcd), clr_to(0x6e, 0x96, 0xff);
if(ad.horizontal) if(ad.horizontal)
{ {
graph.gradual_rectangle({ ad.bound.x, ad.fixedpos, len, upperblock }, clr_from, clr_trans, true); graph.gradual_rectangle({ ad.bound.x, ad.fixedpos, len, upperblock }, clr_from, clr_trans, true);

View File

@ -27,22 +27,22 @@ namespace nana
nana::string text; nana::string text;
any value; any value;
::nana::expr_color bgcolor; ::nana::color bgcolor;
::nana::expr_color fgcolor; ::nana::color fgcolor;
}; };
class def_renderer class def_renderer
: public item_renderer : public item_renderer
{ {
private: private:
virtual void background(graph_reference graph, const nana::rectangle& r, const ::nana::expr_color& bgcolor) virtual void background(graph_reference graph, const nana::rectangle& r, const ::nana::color& bgcolor)
{ {
if(bgcolor_ != bgcolor) if(bgcolor_ != bgcolor)
{ {
bgcolor_ = bgcolor; bgcolor_ = bgcolor;
dark_bgcolor_ = ::nana::expr_color{ colors::black }.blend(bgcolor, 0.1); dark_bgcolor_ = ::nana::color{ colors::black }.blend(bgcolor, 0.1);
blcolor_ = ::nana::expr_color{ colors::black }.blend(bgcolor, 0.5); blcolor_ = ::nana::color{ colors::black }.blend(bgcolor, 0.5);
ilcolor_ = ::nana::expr_color{ colors::white }.blend(bgcolor, 0.1); ilcolor_ = ::nana::color{ colors::white }.blend(bgcolor, 0.1);
} }
graph.rectangle(true, bgcolor); graph.rectangle(true, bgcolor);
@ -52,9 +52,9 @@ namespace nana
{ {
//* //*
const nana::rectangle & r = m.r; const nana::rectangle & r = m.r;
expr_color bgcolor; color bgcolor;
expr_color blcolor; color blcolor;
expr_color dark_bgcolor; color dark_bgcolor;
if(m.bgcolor.invisible()) if(m.bgcolor.invisible())
{ {
@ -65,8 +65,8 @@ namespace nana
else else
{ {
bgcolor = m.bgcolor; bgcolor = m.bgcolor;
blcolor = expr_color{ colors::black }.blend(m.bgcolor, 0.5); blcolor = color{ colors::black }.blend(m.bgcolor, 0.5);
dark_bgcolor = expr_color{ colors::black }.blend(m.bgcolor, 0.1); dark_bgcolor = color{ colors::black }.blend(m.bgcolor, 0.1);
} }
auto round_r = r; auto round_r = r;
@ -81,7 +81,7 @@ namespace nana
if (m.bgcolor.invisible()) if (m.bgcolor.invisible())
beg = ilcolor_; beg = ilcolor_;
else else
beg = expr_color{ m.bgcolor }.blend(colors::white, 0.5); beg = color{ m.bgcolor }.blend(colors::white, 0.5);
end = bgcolor; end = bgcolor;
} }
@ -96,7 +96,7 @@ namespace nana
int x = r.x + (static_cast<int>(r.width) - 14) / 2; int x = r.x + (static_cast<int>(r.width) - 14) / 2;
int y = r.y + (static_cast<int>(r.height) - 14) / 2; int y = r.y + (static_cast<int>(r.height) - 14) / 2;
::nana::expr_color clr; ::nana::color clr;
switch(sta) switch(sta)
{ {
@ -123,20 +123,20 @@ namespace nana
virtual void close_fly(graph_reference graph, const nana::rectangle& r, bool active, state_t sta) virtual void close_fly(graph_reference graph, const nana::rectangle& r, bool active, state_t sta)
{ {
using namespace nana::paint; using namespace nana::paint;
::nana::expr_color clr{ colors::black }; ::nana::color clr{ colors::black };
if (sta == item_renderer::highlight) if (sta == item_renderer::highlight)
{ {
::nana::expr_color bgcolor{ 0xCC, 0xD2, 0xDD }; ::nana::color bgcolor{ 0xCC, 0xD2, 0xDD };
::nana::expr_color rect_clr{0x9d, 0xa3, 0xab}; ::nana::color rect_clr{0x9d, 0xa3, 0xab};
graph.round_rectangle(r, 1, 1, rect_clr, false, {}); graph.round_rectangle(r, 1, 1, rect_clr, false, {});
nana::rectangle draw_r(r); nana::rectangle draw_r(r);
graph.rectangle(draw_r.pare_off(1), false, ::nana::expr_color{ rect_clr }.blend(bgcolor, 0.8)); graph.rectangle(draw_r.pare_off(1), false, ::nana::color{ rect_clr }.blend(bgcolor, 0.8));
graph.rectangle(draw_r.pare_off(1), false, ::nana::expr_color{ rect_clr }.blend(bgcolor, 0.4)); graph.rectangle(draw_r.pare_off(1), false, ::nana::color{ rect_clr }.blend(bgcolor, 0.4));
graph.rectangle(draw_r.pare_off(1), false, ::nana::expr_color{ rect_clr }.blend(bgcolor, 0.2)); graph.rectangle(draw_r.pare_off(1), false, ::nana::color{ rect_clr }.blend(bgcolor, 0.2));
} }
else if (!active) else if (!active)
clr = ::nana::expr_color{ 0x92, 0x99, 0xA4 }; clr = ::nana::color{ 0x92, 0x99, 0xA4 };
gadget::close_16_pixels(graph, r.x - (16 - r.width) / 2, r.y - (16 - r.height) / 2, 1, clr); gadget::close_16_pixels(graph, r.x - (16 - r.width) / 2, r.y - (16 - r.height) / 2, 1, clr);
} }
@ -163,7 +163,7 @@ namespace nana
{ {
using namespace nana::paint::gadget; using namespace nana::paint::gadget;
::nana::expr_color fgcolor(colors::black); ::nana::color fgcolor(colors::black);
int style = 1; int style = 1;
if(sta == item_renderer::disable) if(sta == item_renderer::disable)
{ {
@ -176,10 +176,10 @@ namespace nana
graph.rectangle(r, false, { 0xA0, 0xA0, 0xA0 }); graph.rectangle(r, false, { 0xA0, 0xA0, 0xA0 });
} }
private: private:
::nana::expr_color bgcolor_; ::nana::color bgcolor_;
::nana::expr_color dark_bgcolor_; ::nana::color dark_bgcolor_;
::nana::expr_color blcolor_; ::nana::color blcolor_;
::nana::expr_color ilcolor_; ::nana::color ilcolor_;
}; };
class toolbox class toolbox
@ -593,7 +593,7 @@ namespace nana
} }
} }
bool tab_color(std::size_t pos, bool is_bgcolor, const ::nana::expr_color& clr) bool tab_color(std::size_t pos, bool is_bgcolor, const ::nana::color& clr)
{ {
if(pos < list_.size()) if(pos < list_.size())
{ {
@ -1019,7 +1019,7 @@ namespace nana
basis_.graph->line({ end, bottom }, { right, bottom }); basis_.graph->line({ end, bottom }, { right, bottom });
} }
void _m_render_toolbox(const ::nana::expr_color& bgcolor) void _m_render_toolbox(const ::nana::color& bgcolor)
{ {
bool backable = (basis_.scroll_pixels != 0); bool backable = (basis_.scroll_pixels != 0);
int xbase = _m_toolbox_pos(); int xbase = _m_toolbox_pos();
@ -1165,7 +1165,7 @@ namespace nana
layouter_->relate(i, wd); layouter_->relate(i, wd);
} }
void trigger::tab_color(std::size_t i, bool is_bgcolor, const ::nana::expr_color& clr) void trigger::tab_color(std::size_t i, bool is_bgcolor, const ::nana::color& clr)
{ {
if(layouter_->tab_color(i, is_bgcolor, clr)) if(layouter_->tab_color(i, is_bgcolor, clr))
API::refresh_window(layouter_->widget_handle()); API::refresh_window(layouter_->widget_handle());

View File

@ -59,7 +59,7 @@ namespace nana{ namespace drawerbase {
editor_ = new text_editor(wd, graph); editor_ = new text_editor(wd, graph);
editor_->textbase().set_event_agent(evt_agent_.get()); editor_->textbase().set_event_agent(evt_agent_.get());
editor_->border_renderer([this](graph_reference graph, const ::nana::expr_color& clr){ editor_->border_renderer([this](graph_reference graph, const ::nana::color& clr){
this->_m_draw_border(graph, clr); this->_m_draw_border(graph, clr);
}); });
@ -177,12 +177,12 @@ namespace nana{ namespace drawerbase {
} }
} }
void drawer::_m_draw_border(graph_reference graph, const ::nana::expr_color& bgcolor) void drawer::_m_draw_border(graph_reference graph, const ::nana::color& bgcolor)
{ {
if (!API::widget_borderless(widget_->handle())) if (!API::widget_borderless(widget_->handle()))
{ {
nana::rectangle r(graph.size()); nana::rectangle r(graph.size());
graph.rectangle(r, false, (status_.has_focus ? ::nana::expr_color(0x05, 0x95, 0xE2) : ::nana::expr_color(0x99, 0x9A, 0x9E))); graph.rectangle(r, false, (status_.has_focus ? ::nana::color(0x05, 0x95, 0xE2) : ::nana::color(0x99, 0x9A, 0x9E)));
graph.rectangle(r.pare_off(1), false, bgcolor); graph.rectangle(r.pare_off(1), false, bgcolor);
} }
} }

View File

@ -140,7 +140,7 @@ namespace nana
enum class state_t{normal, highlighted, selected}; enum class state_t{normal, highlighted, selected};
const static unsigned extra_size = 6; const static unsigned extra_size = 6;
item_renderer(nana::paint::graphics& graph, bool textout, unsigned scale, const ::nana::expr_color& bgcolor) item_renderer(nana::paint::graphics& graph, bool textout, unsigned scale, const ::nana::color& bgcolor)
:graph(graph), textout(textout), scale(scale), bgcolor(bgcolor) :graph(graph), textout(textout), scale(scale), bgcolor(bgcolor)
{} {}
@ -178,7 +178,7 @@ namespace nana
gh.paste(graph, pos.x, pos.y); gh.paste(graph, pos.x, pos.y);
} }
else if(state == state_t::normal) else if(state == state_t::normal)
graph.blend(nana::rectangle(pos, size), ::nana::expr_color(0xc0, 0xdd, 0xfc).blend(bgcolor, 0.5), 0.25); graph.blend(nana::rectangle(pos, size), ::nana::color(0xc0, 0xdd, 0xfc).blend(bgcolor, 0.5), 0.25);
x += scale; x += scale;
width -= scale; width -= scale;
@ -194,7 +194,7 @@ namespace nana
nana::paint::graphics& graph; nana::paint::graphics& graph;
bool textout; bool textout;
unsigned scale; unsigned scale;
::nana::expr_color bgcolor; ::nana::color bgcolor;
}; };
struct drawer::drawer_impl_type struct drawer::drawer_impl_type
@ -393,9 +393,9 @@ namespace nana
return npos; return npos;
} }
void drawer::_m_draw_background(const ::nana::expr_color& clr) void drawer::_m_draw_background(const ::nana::color& clr)
{ {
graph_->gradual_rectangle(graph_->size(), ::nana::expr_color(colors::white).blend(clr, 0.1), ::nana::expr_color(colors::black).blend(clr, 0.05), true); graph_->gradual_rectangle(graph_->size(), ::nana::color(colors::white).blend(clr, 0.1), ::nana::color(colors::black).blend(clr, 0.05), true);
} }
void drawer::_m_draw() void drawer::_m_draw()

View File

@ -1078,10 +1078,10 @@ namespace nana
class internal_renderer class internal_renderer
: public renderer_interface : public renderer_interface
{ {
nana::expr_color bgcolor_; nana::color bgcolor_;
nana::expr_color fgcolor_; nana::color fgcolor_;
void set_color(const nana::expr_color & bgcolor, const nana::expr_color& fgcolor) override void set_color(const nana::color & bgcolor, const nana::color& fgcolor) override
{ {
bgcolor_ = bgcolor; bgcolor_ = bgcolor;
fgcolor_ = fgcolor; fgcolor_ = fgcolor;
@ -1093,12 +1093,12 @@ namespace nana
if(compset->comp_attribute(component::bground, attr)) if(compset->comp_attribute(component::bground, attr))
{ {
const ::nana::expr_color color_table[][2] = { { { 0xE8, 0xF5, 0xFD }, { 0xD8, 0xF0, 0xFA } }, //highlighted const ::nana::color color_table[][2] = { { { 0xE8, 0xF5, 0xFD }, { 0xD8, 0xF0, 0xFA } }, //highlighted
{ { 0xC4, 0xE8, 0xFA }, { 0xB6, 0xE6, 0xFB } }, //Selected and highlighted { { 0xC4, 0xE8, 0xFA }, { 0xB6, 0xE6, 0xFB } }, //Selected and highlighted
{ { 0xD5, 0xEF, 0xFC }, {0x99, 0xDE, 0xFD } } //Selected but not highlighted { { 0xD5, 0xEF, 0xFC }, {0x99, 0xDE, 0xFD } } //Selected but not highlighted
}; };
const ::nana::expr_color *clrptr = nullptr; const ::nana::color *clrptr = nullptr;
if(compset->item_attribute().mouse_pointed) if(compset->item_attribute().mouse_pointed)
{ {
if(compset->item_attribute().selected) if(compset->item_attribute().selected)
@ -1131,7 +1131,7 @@ namespace nana
style = 0; style = 0;
dir = gadget::directions::to_east; dir = gadget::directions::to_east;
} }
gadget::arrow_16_pixels(graph, attr.area.x, attr.area.y + (attr.area.height - 16) / 2, (attr.mouse_pointed ? expr_color(0x1C, 0xC4, 0xF7) : expr_color(colors::black)), style, dir); gadget::arrow_16_pixels(graph, attr.area.x, attr.area.y + (attr.area.height - 16) / 2, (attr.mouse_pointed ? color(0x1C, 0xC4, 0xF7) : color(colors::black)), style, dir);
} }
} }
@ -1351,8 +1351,8 @@ namespace nana
} }
private: private:
trigger::implement * impl_; trigger::implement * impl_;
::nana::expr_color bgcolor_; ::nana::color bgcolor_;
::nana::expr_color fgcolor_; ::nana::color fgcolor_;
::nana::point pos_; ::nana::point pos_;
const node_type * iterated_node_; const node_type * iterated_node_;
item_attribute_t node_attr_; item_attribute_t node_attr_;

View File

@ -141,22 +141,22 @@ namespace nana
_m_move(r); _m_move(r);
} }
void widget::fgcolor(const nana::expr_color& col) void widget::fgcolor(const nana::color& col)
{ {
_m_fgcolor(col); _m_fgcolor(col);
} }
nana::expr_color widget::fgcolor() const nana::color widget::fgcolor() const
{ {
return _m_fgcolor(); return _m_fgcolor();
} }
void widget::bgcolor(const nana::expr_color& col) void widget::bgcolor(const nana::color& col)
{ {
_m_bgcolor(col); _m_bgcolor(col);
} }
nana::expr_color widget::bgcolor() const nana::color widget::bgcolor() const
{ {
return _m_bgcolor(); return _m_bgcolor();
} }
@ -276,22 +276,22 @@ namespace nana
return API::typeface(handle()); return API::typeface(handle());
} }
void widget::_m_fgcolor(const nana::expr_color& col) void widget::_m_fgcolor(const nana::color& col)
{ {
API::fgcolor(handle(), col); API::fgcolor(handle(), col);
} }
nana::expr_color widget::_m_fgcolor() const nana::color widget::_m_fgcolor() const
{ {
return API::fgcolor(handle()); return API::fgcolor(handle());
} }
void widget::_m_bgcolor(const nana::expr_color& col) void widget::_m_bgcolor(const nana::color& col)
{ {
API::bgcolor(handle(), col); API::bgcolor(handle(), col);
} }
nana::expr_color widget::_m_bgcolor() const nana::color widget::_m_bgcolor() const
{ {
return API::bgcolor(handle()); return API::bgcolor(handle());
} }

View File

@ -209,7 +209,7 @@ namespace gadget
//arrow_16_pixels //arrow_16_pixels
//param@style: 0 = hollow, 1 = solid //param@style: 0 = hollow, 1 = solid
void arrow_16_pixels(nana::paint::graphics& graph, int x, int y, const nana::expr_color& clr, uint32_t style, directions::t dir) void arrow_16_pixels(nana::paint::graphics& graph, int x, int y, const nana::color& clr, uint32_t style, directions::t dir)
{ {
graph.set_color(clr); graph.set_color(clr);
switch(style) switch(style)
@ -230,7 +230,7 @@ namespace gadget
} }
} }
void close_16_pixels(::nana::paint::graphics& graph, int x, int y, uint32_t style, const ::nana::expr_color& clr) void close_16_pixels(::nana::paint::graphics& graph, int x, int y, uint32_t style, const ::nana::color& clr)
{ {
graph.set_color(clr); graph.set_color(clr);
if(0 == style) if(0 == style)
@ -261,7 +261,7 @@ namespace gadget
} }
} }
void cross(graphics& graph, int x, int y, uint32_t size, uint32_t thickness, const ::nana::expr_color& color) void cross(graphics& graph, int x, int y, uint32_t size, uint32_t thickness, const ::nana::color& color)
{ {
if (thickness + 2 <= size) if (thickness + 2 <= size)
{ {
@ -302,7 +302,7 @@ namespace gadget
ps[11].x = x + gap; ps[11].x = x + gap;
ps[11].y = y + gap; ps[11].y = y + gap;
::nana::expr_color darker(0, 0, 0); ::nana::color darker(0, 0, 0);
darker.blend(color, true); darker.blend(color, true);
graph.set_color(darker); graph.set_color(darker);

View File

@ -857,13 +857,13 @@ namespace paint
} }
} }
void graphics::set_color(const ::nana::expr_color& col) void graphics::set_color(const ::nana::color& col)
{ {
if (handle_) if (handle_)
handle_->set_color(col); handle_->set_color(col);
} }
void graphics::set_text_color(const ::nana::expr_color& col) void graphics::set_text_color(const ::nana::color& col)
{ {
if (handle_) if (handle_)
handle_->set_text_color(col); handle_->set_text_color(col);
@ -883,7 +883,7 @@ namespace paint
return static_cast<unsigned>(moved_pos.x - pos.x); return static_cast<unsigned>(moved_pos.x - pos.x);
} }
void graphics::blend(const nana::rectangle& r, const ::nana::expr_color& clr, double fade_rate) void graphics::blend(const nana::rectangle& r, const ::nana::color& clr, double fade_rate)
{ {
if (handle_) if (handle_)
{ {
@ -892,7 +892,7 @@ namespace paint
} }
} }
void graphics::set_pixel(int x, int y, const ::nana::expr_color& clr) void graphics::set_pixel(int x, int y, const ::nana::color& clr)
{ {
if (handle_) if (handle_)
{ {
@ -968,7 +968,7 @@ namespace paint
string(pos, str.data(), str.size()); string(pos, str.data(), str.size());
} }
void graphics::string(const point& pos, const ::nana::string& text, const expr_color& clr) void graphics::string(const point& pos, const ::nana::string& text, const color& clr)
{ {
set_text_color(clr); set_text_color(clr);
string(pos, text.data(), text.size()); string(pos, text.data(), text.size());
@ -992,13 +992,13 @@ namespace paint
if (changed_ == false) changed_ = true; if (changed_ == false) changed_ = true;
} }
void graphics::line(const point& pos_a, const point& pos_b, const expr_color& clr) void graphics::line(const point& pos_a, const point& pos_b, const color& clr)
{ {
set_color(clr); set_color(clr);
line(pos_a, pos_b); line(pos_a, pos_b);
} }
void graphics::line_to(const point& pos, const expr_color& clr) void graphics::line_to(const point& pos, const color& clr)
{ {
if (!handle_) return; if (!handle_) return;
handle_->set_color(clr); handle_->set_color(clr);
@ -1028,7 +1028,7 @@ namespace paint
rectangle(size(), solid); rectangle(size(), solid);
} }
void graphics::rectangle(bool solid, const ::nana::expr_color& clr) void graphics::rectangle(bool solid, const ::nana::color& clr)
{ {
set_color(clr); set_color(clr);
rectangle(size(), solid); rectangle(size(), solid);
@ -1054,13 +1054,13 @@ namespace paint
} }
} }
void graphics::rectangle(const ::nana::rectangle& r, bool solid, const expr_color& clr) void graphics::rectangle(const ::nana::rectangle& r, bool solid, const color& clr)
{ {
set_color(clr); set_color(clr);
rectangle(r, solid); rectangle(r, solid);
} }
void graphics::frame_rectangle(const ::nana::rectangle& r, const ::nana::expr_color& left_clr, const ::nana::expr_color& top_clr, const ::nana::expr_color& right_clr, const ::nana::expr_color& bottom_clr) void graphics::frame_rectangle(const ::nana::rectangle& r, const ::nana::color& left_clr, const ::nana::color& top_clr, const ::nana::color& right_clr, const ::nana::color& bottom_clr)
{ {
int right = r.right() - 1; int right = r.right() - 1;
int bottom = r.bottom() - 1; int bottom = r.bottom() - 1;
@ -1071,7 +1071,7 @@ namespace paint
line_to({ r.x, r.y }, left_clr); line_to({ r.x, r.y }, left_clr);
} }
void graphics::gradual_rectangle(const ::nana::rectangle& r, const ::nana::expr_color& from, const ::nana::expr_color& to, bool vertical) void graphics::gradual_rectangle(const ::nana::rectangle& r, const ::nana::color& from, const ::nana::color& to, bool vertical)
{ {
#if defined(NANA_WINDOWS) #if defined(NANA_WINDOWS)
if (pxbuf_.open(handle_)) if (pxbuf_.open(handle_))
@ -1128,7 +1128,7 @@ namespace paint
if (changed_ == false) changed_ = true; if (changed_ == false) changed_ = true;
} }
void graphics::round_rectangle(const ::nana::rectangle& r, unsigned radius_x, unsigned radius_y, const expr_color& clr, bool solid, const expr_color& solid_clr) void graphics::round_rectangle(const ::nana::rectangle& r, unsigned radius_x, unsigned radius_y, const color& clr, bool solid, const color& solid_clr)
{ {
if (handle_) if (handle_)
{ {

View File

@ -714,7 +714,7 @@ namespace nana{ namespace paint
} }
} }
void pixel_buffer::line(const point &pos_beg, const point &pos_end, const ::nana::expr_color& clr, double fade_rate) void pixel_buffer::line(const point &pos_beg, const point &pos_end, const ::nana::color& clr, double fade_rate)
{ {
auto sp = storage_.get(); auto sp = storage_.get();
if(nullptr == sp) return; if(nullptr == sp) return;
@ -726,7 +726,7 @@ namespace nana{ namespace paint
(*(sp->img_pro.line))->process(*this, good_pos_beg, good_pos_end, clr, fade_rate); (*(sp->img_pro.line))->process(*this, good_pos_beg, good_pos_end, clr, fade_rate);
} }
void pixel_buffer::rectangle(const nana::rectangle &r, const ::nana::expr_color& clr, double fade_rate, bool solid) void pixel_buffer::rectangle(const nana::rectangle &r, const ::nana::color& clr, double fade_rate, bool solid)
{ {
auto sp = storage_.get(); auto sp = storage_.get();
if((nullptr == sp) || (fade_rate == 1.0)) return; if((nullptr == sp) || (fade_rate == 1.0)) return;
@ -927,7 +927,7 @@ namespace nana{ namespace paint
} }
} }
void pixel_buffer::gradual_rectangle(const ::nana::rectangle& draw_rct, const ::nana::expr_color& from, const ::nana::expr_color& to, double fade_rate, bool vertical) void pixel_buffer::gradual_rectangle(const ::nana::rectangle& draw_rct, const ::nana::color& from, const ::nana::color& to, double fade_rate, bool vertical)
{ {
auto sp = storage_.get(); auto sp = storage_.get();
if (nullptr == sp) return; if (nullptr == sp) return;

View File

@ -118,12 +118,12 @@ namespace nana
{ {
graphics & graph; graphics & graph;
int x, endpos; int x, endpos;
::nana::expr_color fgcolor; ::nana::color fgcolor;
unsigned omitted_pixels; unsigned omitted_pixels;
nana::unicode_bidi bidi; nana::unicode_bidi bidi;
std::vector<nana::unicode_bidi::entity> reordered; std::vector<nana::unicode_bidi::entity> reordered;
draw_string_omitted(graphics& graph, int x, int endpos, const ::nana::expr_color& fgcolor, bool omitted) draw_string_omitted(graphics& graph, int x, int endpos, const ::nana::color& fgcolor, bool omitted)
: graph(graph), x(x), endpos(endpos), fgcolor(fgcolor) : graph(graph), x(x), endpos(endpos), fgcolor(fgcolor)
{ {
omitted_pixels = (omitted ? graph.text_extent_size(STR("..."), 3).width : 0); omitted_pixels = (omitted ? graph.text_extent_size(STR("..."), 3).width : 0);