WIP refactor

This commit is contained in:
Andrea Blankenstijn 2021-06-13 15:44:11 +02:00
parent cc94c8efed
commit 27c11bc548
4 changed files with 17 additions and 21 deletions

View File

@ -94,7 +94,7 @@ void Button::font(TTF_Font* f)
void Button::viewport(SDL_Rect vp)
{
Widget::viewport(vp);
_widget_area.y = _viewport.h / 2 - _caption.rendered_text_size().h / 2
_widget_area.y = center(_viewport.h, _caption.rendered_text_size().h)
- _border_width;
_widget_area.h = _caption.rendered_text_size().h + 2 * _border_width;
_update_caption_area();
@ -109,8 +109,8 @@ void Button::_update_caption_area()
{
SDL_Rect txt_size = _caption.rendered_text_size();
_caption_area = {
_viewport.w / 2 - txt_size.w / 2,
_viewport.h / 2 - txt_size.h / 2,
center(_viewport.w, txt_size.w),
center(_viewport.h, txt_size.h),
txt_size.w,
txt_size.h
};

View File

@ -104,14 +104,8 @@ void Caption::_update_widget_area()
);
_widget_area.h = _text_area.h;
_widget_area.y = _viewport.h / 2 - _text_area.h / 2;
_widget_area.y = center(_viewport.h, _text_area.h);
_text_area.x = _widget_area.x;
_text_area.y = _widget_area.y;
std::cerr << "txt area: "
<< _text_area.x << ","
<< _text_area.y << ","
<< _text_area.w << ","
<< _text_area.h << std::endl;
}

View File

@ -35,32 +35,30 @@ private:
int field_width = Widget::_viewport.w - 2.5 * widest_button;
int field_height = heighest_button;
Input<T>::_input_field_area = {
Widget::_viewport.w / 2 - field_width / 2,
Widget::_viewport.h / 2 - field_height / 2,
Widget::center(Widget::_viewport.w, field_width),
Widget::center(Widget::_viewport.h, field_height),
field_width,
field_height
};
int button_x_center = 1.25 * widest_button / 2;
int button_y_center = Widget::_viewport.h / 2;
_increment_button_area = {
button_x_center - _increment_button.width() / 2,
button_y_center - _increment_button.height() / 2,
Widget::center(1.25 * widest_button, _increment_button.width()),
Widget::center(Widget::_viewport.h, _increment_button.height()),
_increment_button.width(),
_increment_button.height()
};
_decrement_button_area = {
Widget::_viewport.w - (button_x_center + _decrement_button.width() / 2),
button_y_center - _decrement_button.height() / 2,
Widget::_viewport.w - Widget::center(1.25 * widest_button, _decrement_button.width()),
Widget::center(Widget::_viewport.h, _decrement_button.height()),
_decrement_button.width(),
_decrement_button.height()
};
Widget::_widget_area = {
Widget::_viewport.x + button_x_center - widest_button / 2,
Widget::_viewport.y + button_y_center - heighest_button / 2,
button_x_center + Widget::_viewport.w - widest_button - Widget::_viewport.x,
Widget::_viewport.x + Widget::center(1.25 * widest_button, widest_button),
Widget::_viewport.y + Widget::center(Widget::_viewport.h, heighest_button),
button_xcenter + Widget::_viewport.w - widest_button - Widget::_viewport.x,
heighest_button
};
}

View File

@ -24,6 +24,10 @@ public:
Widget(SDL_Renderer*);
virtual ~Widget();
static inline int center(int available_size, int used_size)
{
return available_size / 2 - used_size / 2;
}
virtual void handle_event(const SDL_Event&);
virtual void render();
virtual void viewport(SDL_Rect);