|
Dillo
|
Anything related to Dillo Widget styles is defined here. More...
Classes | |
| class | Box |
| Represents a dimension box according to the CSS box model. More... | |
| class | StyleAttrs |
| class | Style |
| class | TooltipAttrs |
| class | Tooltip |
| class | FontAttrs |
| class | Font |
| class | ColorAttrs |
| class | Color |
Typedefs | |
| typedef int | Length |
| Type for representing all lengths within dw::core::style. | |
Functions | |
| static void | drawBorderTop (View *view, Style *style, int x1, int y1, int x2, int y2) |
| static void | drawBorderBottom (View *view, Style *style, int x1, int y1, int x2, int y2) |
| static void | drawBorderLeft (View *view, Style *style, int x1, int y1, int x2, int y2) |
| static void | drawBorderRight (View *view, Style *style, int x1, int y1, int x2, int y2) |
| void | drawBorder (View *view, Rectangle *area, int x, int y, int width, int height, Style *style, bool inverse) |
| Draw the border of a region in window, according to style. | |
| void | drawBackground (View *view, Rectangle *area, int x, int y, int width, int height, Style *style, bool inverse) |
| Draw the background (content plus padding) of a region in window, according to style. | |
| static void | strAsciiTolower (char *s) |
| void | numtostr (int num, char *buf, int buflen, ListStyleType listStyleType) |
| Convert a number into a string, in a given list style. | |
| Length | createAbsLength (int n) |
| Returns a length of n pixels. | |
| Length | createPerLength (double v) |
| Returns a percentage, v is relative to 1, not to 100. | |
| Length | createRelLength (double v) |
| Returns a relative length. | |
| bool | isAbsLength (Length l) |
| Returns true if l is an absolute length. | |
| bool | isPerLength (Length l) |
| Returns true if l is a percentage. | |
| bool | isRelLength (Length l) |
| Returns true if l is a relative length. | |
| int | absLengthVal (Length l) |
| Returns the value of a length in pixels, as an integer. | |
| double | perLengthVal (Length l) |
| Returns the value of a percentage, relative to 1, as a double. | |
| double | relLengthVal (Length l) |
| Returns the value of a relative length, as a float. | |
Variables | |
| static const char *const | roman_I0 [] = { "","I","II","III","IV","V","VI","VII","VIII","IX" } |
| static const char *const *const | roman_I1 [] = { "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC" } |
| static const char *const *const *const | roman_I2 [] = { "","C","CC","CCC","CD","D","DC","DCC","DCCC","CM" } |
| static const char *const *const *const *const | roman_I3 [] = { "","M","MM","MMM","MMMM" } |
Anything related to Dillo Widget styles is defined here.
dw::core::style::Style provides some resources and attributes for drawing widgets, as well as for parts of a widget (e.g., dw::Textblock uses styles for its words). Creating a style is done by filling a dw::core::style::StyleAttrs with the attributes and calling dw::core::style::Style::create:
After this, the attributes of a dw::core::style::Style should not be changed anymore, since styles are often shared between different widgets etc. (see below). Most times, you simply copy the attributes of another style (possible, since dw::core::style::Style is a sub class of dw::core::style::StyleAttrs), modify them and create a new style:
The dw::core::style::Font structure can be created by dw::core::style::Font::create, in a similar, with dw::core::style::FontAttrs, and colors by dw::core::style::Color::create, passing 0xrrggbb as an argument. Furthermore, there is dw::core::style::Tooltip, created by dw::core::style::Tooltip::create.
Notice that fonts, colors and tooltips are only intended to be used in conjunction with dw::core::style::Style.
dw::core::style::Style will become important for CSS, each CSS attribute, which is supported by dillo, will refer to an attribute in dw::core::style::Style. For this reason, the attributes in dw::core::style::Style get the names from the CSS attributes, with "camelCase" instead of hyphens (e.g. "background-color" becomes "backgroundColor").
However, dw::core::style::Style will be extended by some more attributes, which are not defined by CSS. To distinguish them, they get the prefix "x_", e.g. dw::core::style::Style::x_link.
dw::core::style::Length is a simple data type for lengths and percentages:
A length refers to an absolute measurement. It is used to represent the HTML type Pixels; and the CSS type <length>.
For CSS lengths, there are two units: (i) pixels and absolute units, which have to be converted to pixels (a pixel is, unlike in the CSS specification, treated as absolute unit), and (ii) the relative units "em" and "ex" (see below).
A percentage refers to a value relative to another value. It is used for the HTML type Length; (except Pixels;), and the CSS type <percentage>.
Since many values in CSS may be either lengths or percentages, a single type is very useful.
Creating lengths:
Examine lengths:
For borders, margins etc., the box model defined by CSS2 is used. dw::core::style::Style contains some members defining these attributes. A dw::core::Widget must use these values for any calculation of sizes. There are some helper functions (see dw/style.hh). A dw::core::style::Style box looks quite similar to a CSS box:
The background color is stored in dw::core::style::Style::backgroundColor, which may be NULL (the background color of the parent widget is shining through).
For toplevel widgets, this color is set as the background color of the views (dw::core::View::setBgColor), for other widgets, a filled rectangle is drawn, covering the content and padding. (This is compliant with CSS2, the background color of the toplevel element covers the whole canvas.)
The following methods may be useful:
dw::core::Widget::drawWidgetBox for drawing the box of a widget (typically at the beginning of the implementation of dw::core::Widget::draw), and
Memory management is done by reference counting, dw::core::style::Style::create returns a pointer to dw::core::style::Style with an increased reference counter, so you should care about calling dw::core::style::Style::unref if it is not used anymore. You do not need to care about the reference counters of fonts and styles.
In detail:
dw::core::style::Style::ref is called in
dw::core::style::Style::unref is called in
| typedef int dw::core::style::Length |
Type for representing all lengths within dw::core::style.
Lengths are int's. Absolute lengths are represented in the following way:
Percentages:
Relative lengths (only used in HTML):
This is an implementation detail, use one of the following functions:
Creating lengths:
Examine lengths:
"auto" lengths are represented as dw::core::style::LENGTH_AUTO.
|
inline |
Returns the value of a length in pixels, as an integer.
Referenced by dw::Textblock::calcTextSize(), dw::Textblock::calcWidgetSize(), dw::Table::forceCalcCellSizes(), dw::Table::forceCalcColumnExtremes(), dw::Table::getExtremesImpl(), dw::Textblock::getWordExtremes(), dw::Textblock::initLine1Offset(), and dw::Image::sizeRequestImpl().
|
inline |
Returns a length of n pixels.
|
inline |
Returns a percentage, v is relative to 1, not to 100.
|
inline |
Returns a relative length.
| void dw::core::style::drawBackground | ( | View * | view, |
| Rectangle * | area, | ||
| int | x, | ||
| int | y, | ||
| int | width, | ||
| int | height, | ||
| Style * | style, | ||
| bool | inverse | ||
| ) |
Draw the background (content plus padding) of a region in window, according to style.
Used by dw::core::Widget::drawBox and dw::core::Widget::drawWidgetBox.
References dw::core::style::StyleAttrs::backgroundColor, dw::core::style::StyleAttrs::borderWidth, dw::core::style::Box::bottom, dw::core::View::drawRectangle(), dw::core::Rectangle::height, dw::core::Rectangle::intersectsWith(), dw::core::style::Box::left, dw::core::style::StyleAttrs::margin, dw::core::style::Box::right, dw::core::style::Box::top, dw::core::Rectangle::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.
Referenced by dw::core::Widget::drawBox(), and dw::core::Widget::drawWidgetBox().
| void dw::core::style::drawBorder | ( | View * | view, |
| Rectangle * | area, | ||
| int | x, | ||
| int | y, | ||
| int | width, | ||
| int | height, | ||
| Style * | style, | ||
| bool | inverse | ||
| ) |
Draw the border of a region in window, according to style.
Used by dw::core::Widget::drawBox and dw::core::Widget::drawWidgetBox.
References dw::core::style::Box::bottom, drawBorderBottom(), drawBorderLeft(), drawBorderRight(), drawBorderTop(), dw::core::style::Box::left, dw::core::style::StyleAttrs::margin, dw::core::style::Box::right, and dw::core::style::Box::top.
Referenced by dw::core::Widget::drawBox(), and dw::core::Widget::drawWidgetBox().
|
static |
References BORDER_DASHED, BORDER_DOTTED, BORDER_DOUBLE, BORDER_GROOVE, BORDER_HIDDEN, BORDER_INSET, BORDER_NONE, BORDER_OUTSET, BORDER_RIDGE, BORDER_SOLID, dw::core::style::StyleAttrs::borderColor, dw::core::style::StyleAttrs::borderStyle, dw::core::style::StyleAttrs::borderWidth, dw::core::style::Box::bottom, dw::core::style::StyleAttrs::bottom, dw::core::View::drawLine(), dw::core::View::drawPolygon(), dw::core::View::drawTypedLine(), dw::core::style::Box::left, LINE_DASHED, LINE_DOTTED, dw::core::style::Box::right, dw::core::Point::x, and dw::core::Point::y.
Referenced by drawBorder().
|
static |
References BORDER_DASHED, BORDER_DOTTED, BORDER_DOUBLE, BORDER_GROOVE, BORDER_HIDDEN, BORDER_INSET, BORDER_NONE, BORDER_OUTSET, BORDER_RIDGE, BORDER_SOLID, dw::core::style::StyleAttrs::borderColor, dw::core::style::StyleAttrs::borderStyle, dw::core::style::StyleAttrs::borderWidth, dw::core::style::Box::bottom, dw::core::View::drawLine(), dw::core::View::drawPolygon(), dw::core::View::drawTypedLine(), dw::core::style::Box::left, dw::core::style::StyleAttrs::left, LINE_DASHED, LINE_DOTTED, dw::core::style::Box::top, dw::core::Point::x, and dw::core::Point::y.
Referenced by drawBorder().
|
static |
References BORDER_DASHED, BORDER_DOTTED, BORDER_DOUBLE, BORDER_GROOVE, BORDER_HIDDEN, BORDER_INSET, BORDER_NONE, BORDER_OUTSET, BORDER_RIDGE, BORDER_SOLID, dw::core::style::StyleAttrs::borderColor, dw::core::style::StyleAttrs::borderStyle, dw::core::style::StyleAttrs::borderWidth, dw::core::style::Box::bottom, dw::core::View::drawLine(), dw::core::View::drawPolygon(), dw::core::View::drawTypedLine(), LINE_DASHED, LINE_DOTTED, dw::core::style::Box::right, dw::core::style::StyleAttrs::right, dw::core::style::Box::top, dw::core::Point::x, and dw::core::Point::y.
Referenced by drawBorder().
|
static |
References BORDER_DASHED, BORDER_DOTTED, BORDER_DOUBLE, BORDER_GROOVE, BORDER_HIDDEN, BORDER_INSET, BORDER_NONE, BORDER_OUTSET, BORDER_RIDGE, BORDER_SOLID, dw::core::style::StyleAttrs::borderColor, dw::core::style::StyleAttrs::borderStyle, dw::core::style::StyleAttrs::borderWidth, dw::core::View::drawLine(), dw::core::View::drawPolygon(), dw::core::View::drawTypedLine(), dw::core::style::Box::left, LINE_DASHED, LINE_DOTTED, dw::core::style::Box::right, dw::core::style::Box::top, dw::core::style::StyleAttrs::top, dw::core::Point::x, and dw::core::Point::y.
Referenced by drawBorder().
|
inline |
Returns true if l is an absolute length.
Referenced by dw::Textblock::calcTextSize(), dw::Textblock::calcWidgetSize(), dw::Table::forceCalcCellSizes(), dw::Table::forceCalcColumnExtremes(), dw::Table::getExtremesImpl(), dw::Textblock::getWordExtremes(), and dw::Image::sizeRequestImpl().
|
inline |
Returns true if l is a percentage.
Referenced by dw::Table::apportion_percentages2(), dw::Table::forceCalcCellSizes(), dw::Table::forceCalcColumnExtremes(), dw::Textblock::getWordExtremes(), and dw::Textblock::initLine1Offset().
|
inline |
Returns true if l is a relative length.
| void dw::core::style::numtostr | ( | int | num, |
| char * | buf, | ||
| int | buflen, | ||
| ListStyleType | listStyleType | ||
| ) |
Convert a number into a string, in a given list style.
Used for ordered lists.
References LIST_STYLE_TYPE_DECIMAL, LIST_STYLE_TYPE_LOWER_ALPHA, LIST_STYLE_TYPE_LOWER_LATIN, LIST_STYLE_TYPE_LOWER_ROMAN, LIST_STYLE_TYPE_UPPER_ALPHA, LIST_STYLE_TYPE_UPPER_LATIN, LIST_STYLE_TYPE_UPPER_ROMAN, roman_I0, roman_I1, roman_I2, roman_I3, and strAsciiTolower().
|
inline |
Returns the value of a percentage, relative to 1, as a double.
Referenced by dw::Textblock::calcTextSize(), dw::Textblock::calcWidgetSize(), dw::Table::forceCalcCellSizes(), dw::Table::forceCalcColumnExtremes(), and dw::Textblock::initLine1Offset().
|
inline |
Returns the value of a relative length, as a float.
|
static |
References lout::misc::AsciiTolower().
Referenced by numtostr().
|
static |
Referenced by numtostr().
|
static |
Referenced by numtostr().
|
static |
Referenced by numtostr().
|
static |
Referenced by numtostr().
1.8.2