Centralize computations of border and padding into StThemeNode
Rather than repeating the computation of borders in many different widget subclasses, add helper functions: st_theme_node_adjust_for_height() st_theme_node_adjust_preferred_width() st_theme_node_adjust_for_width() st_theme_node_adjust_preferred_height() st_theme_node_get_content_box() That are used in get_preferred_width()/get_preferred_height() and allocate() methods to consistently apply the necessary adjustments. This allows removing the StPadding type. Queueing a relayout when the borders/padding change is moved from st_widget_real_style_changed() to the invoking code to allow access to the old StThemeNode for comparison. (Should this be added as a parameter to the signal?) Borders are included in the geometry adjustments, but borders are not yet drawn. https://bugzilla.gnome.org/show_bug.cgi?id=595993
This commit is contained in:
@ -37,29 +37,6 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_PADDING (st_padding_get_type ())
|
||||
|
||||
typedef struct _StPadding StPadding;
|
||||
|
||||
/**
|
||||
* StPadding:
|
||||
* @top: padding from the top
|
||||
* @right: padding from the right
|
||||
* @bottom: padding from the bottom
|
||||
* @left: padding from the left
|
||||
*
|
||||
* The padding from the internal border of the parent container.
|
||||
*/
|
||||
struct _StPadding
|
||||
{
|
||||
gfloat top;
|
||||
gfloat right;
|
||||
gfloat bottom;
|
||||
gfloat left;
|
||||
};
|
||||
|
||||
GType st_padding_get_type (void) G_GNUC_CONST;
|
||||
|
||||
typedef enum {
|
||||
ST_ALIGN_START,
|
||||
ST_ALIGN_MIDDLE,
|
||||
|
Reference in New Issue
Block a user