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. */
|
||||
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 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);
|
||||
|
||||
#endif /* WINDOW_GUI_H */
|
||||
|
Loading…
Reference in New Issue
Block a user