diff options
-rw-r--r-- | src/widget.cpp | 11 | ||||
-rw-r--r-- | src/widget_type.h | 15 |
2 files changed, 17 insertions, 9 deletions
diff --git a/src/widget.cpp b/src/widget.cpp index ab8011825..5701cf434 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -1636,16 +1636,9 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, break; } - case WPT_PADDING: { - NWidgetBase *nwb = *dest; - if (nwb != NULL) { - nwb->padding_top = parts->u.padding.top; - nwb->padding_right = parts->u.padding.right; - nwb->padding_bottom = parts->u.padding.bottom; - nwb->padding_left = parts->u.padding.left; - } + case WPT_PADDING: + if (*dest != NULL) (*dest)->SetPadding(parts->u.padding.top, parts->u.padding.right, parts->u.padding.bottom, parts->u.padding.left); break; - } case WPT_PIPSPACE: { NWidgetPIPContainer *nwc = dynamic_cast<NWidgetPIPContainer *>(*dest); diff --git a/src/widget_type.h b/src/widget_type.h index 0128d510d..1e4b657a1 100644 --- a/src/widget_type.h +++ b/src/widget_type.h @@ -157,6 +157,21 @@ public: virtual void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl) = 0; + /** + * Set additional space (padding) around the widget. + * @param top Amount of additional space above the widget. + * @param right Amount of additional space right of the widget. + * @param bottom Amount of additional space below the widget. + * @param left Amount of additional space left of the widget. + */ + inline void SetPadding(uint8 top, uint8 right, uint8 bottom, uint8 left) + { + this->padding_top = top; + this->padding_right = right; + this->padding_bottom = bottom; + this->padding_left = left; + }; + WidgetType type; ///< Type of the widget / nested widget. uint min_x; ///< Minimal horizontal size. uint min_y; ///< Minimal vertical size. |