WIP refactor
This commit is contained in:
parent
cc94c8efed
commit
27c11bc548
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue