mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-13 07:10:57 +00:00
(svn r18022) -Cleanup: remove some (now) unused button resize functions
This commit is contained in:
parent
efbdba72b3
commit
85a3dce45c
@ -725,93 +725,6 @@ void Window::DrawWidgets() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Evenly distribute the combined horizontal length of two consecutive widgets.
|
|
||||||
* @param w Window containing the widgets.
|
|
||||||
* @param a Left widget to resize.
|
|
||||||
* @param b Right widget to resize.
|
|
||||||
* @note Widgets are assumed to lie against each other.
|
|
||||||
*/
|
|
||||||
static void ResizeWidgets(Window *w, byte a, byte b)
|
|
||||||
{
|
|
||||||
int16 offset = w->widget[a].left;
|
|
||||||
int16 length = w->widget[b].right - offset;
|
|
||||||
|
|
||||||
w->widget[a].right = (length / 2) + offset;
|
|
||||||
|
|
||||||
w->widget[b].left = w->widget[a].right + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Evenly distribute the combined horizontal length of three consecutive widgets.
|
|
||||||
* @param w Window containing the widgets.
|
|
||||||
* @param a Left widget to resize.
|
|
||||||
* @param b Middle widget to resize.
|
|
||||||
* @param c Right widget to resize.
|
|
||||||
* @note Widgets are assumed to lie against each other.
|
|
||||||
*/
|
|
||||||
static void ResizeWidgets(Window *w, byte a, byte b, byte c)
|
|
||||||
{
|
|
||||||
int16 offset = w->widget[a].left;
|
|
||||||
int16 length = w->widget[c].right - offset;
|
|
||||||
|
|
||||||
w->widget[a].right = length / 3;
|
|
||||||
w->widget[b].right = w->widget[a].right * 2;
|
|
||||||
|
|
||||||
w->widget[a].right += offset;
|
|
||||||
w->widget[b].right += offset;
|
|
||||||
|
|
||||||
/* Now the right side of the buttons are set. We will now set the left sides next to them */
|
|
||||||
w->widget[b].left = w->widget[a].right + 1;
|
|
||||||
w->widget[c].left = w->widget[b].right + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Evenly distribute some widgets when resizing horizontally (often a button row)
|
|
||||||
* When only two arguments are given, the widgets are presumed to be on a line and only the ends are given
|
|
||||||
* @param w Window to modify
|
|
||||||
* @param left The leftmost widget to resize
|
|
||||||
* @param right The rightmost widget to resize. Since right side of it is used, remember to set it to RESIZE_RIGHT
|
|
||||||
*/
|
|
||||||
void ResizeButtons(Window *w, byte left, byte right)
|
|
||||||
{
|
|
||||||
int16 num_widgets = right - left + 1;
|
|
||||||
|
|
||||||
if (num_widgets < 2) NOT_REACHED();
|
|
||||||
|
|
||||||
switch (num_widgets) {
|
|
||||||
case 2: ResizeWidgets(w, left, right); break;
|
|
||||||
case 3: ResizeWidgets(w, left, left + 1, right); break;
|
|
||||||
default: {
|
|
||||||
/* Looks like we got more than 3 widgets to resize
|
|
||||||
* Now we will find the middle of the space desinated for the widgets
|
|
||||||
* and place half of the widgets on each side of it and call recursively.
|
|
||||||
* Eventually we will get down to blocks of 2-3 widgets and we got code to handle those cases */
|
|
||||||
int16 offset = w->widget[left].left;
|
|
||||||
int16 length = w->widget[right].right - offset;
|
|
||||||
byte widget = ((num_widgets - 1)/ 2) + left; // rightmost widget of the left side
|
|
||||||
|
|
||||||
/* Now we need to find the middle of the widgets.
|
|
||||||
* It will not always be the middle because if we got an uneven number of widgets,
|
|
||||||
* we will need it to be 2/5, 3/7 and so on
|
|
||||||
* To get this, we multiply with num_widgets/num_widgets. Since we calculate in int, we will get:
|
|
||||||
*
|
|
||||||
* num_widgets/2 (rounding down)
|
|
||||||
* ---------------
|
|
||||||
* num_widgets
|
|
||||||
*
|
|
||||||
* as multiplier to length. We just multiply before divide to that we stay in the int area though */
|
|
||||||
int16 middle = ((length * num_widgets) / (2 * num_widgets)) + offset;
|
|
||||||
|
|
||||||
/* Set left and right on the widgets, that's next to our "middle" */
|
|
||||||
w->widget[widget].right = middle;
|
|
||||||
w->widget[widget + 1].left = w->widget[widget].right + 1;
|
|
||||||
/* Now resize the left and right of the middle */
|
|
||||||
ResizeButtons(w, left, widget);
|
|
||||||
ResizeButtons(w, widget + 1, right);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Resize a widget and shuffle other widgets around to fit. */
|
/** Resize a widget and shuffle other widgets around to fit. */
|
||||||
void ResizeWindowForWidget(Window *w, uint widget, int delta_x, int delta_y)
|
void ResizeWindowForWidget(Window *w, uint widget, int delta_x, int delta_y)
|
||||||
{
|
{
|
||||||
|
@ -956,8 +956,6 @@ bool EditBoxInGlobalFocus();
|
|||||||
void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y);
|
void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y);
|
||||||
void ScrollbarClickHandler(Window *w, const NWidgetCore *nw, int x, int y);
|
void ScrollbarClickHandler(Window *w, const NWidgetCore *nw, int x, int y);
|
||||||
|
|
||||||
void ResizeButtons(Window *w, byte left, byte right);
|
|
||||||
|
|
||||||
void ResizeWindowForWidget(Window *w, uint widget, int delta_x, int delta_y);
|
void ResizeWindowForWidget(Window *w, uint widget, int delta_x, int delta_y);
|
||||||
|
|
||||||
#endif /* WINDOW_GUI_H */
|
#endif /* WINDOW_GUI_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user