Changeset - r9834:ce4065576049
[Not reviewed]
master
0 2 0
peter1138 - 16 years ago 2008-08-03 17:35:08
peter1138@openttd.org
(svn r13977) -Codechange: Let ResizeWindowForWidget() handle hidden (zero height or zero width) widgets.
2 files changed with 9 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/widget.cpp
Show inline comments
 
@@ -590,18 +590,23 @@ void ResizeButtons(Window *w, byte left,
 
}
 

	
 
/** Resize a widget and shuffle other widgets around to fit. */
 
void ResizeWindowForWidget(Window *w, int widget, int delta_x, int delta_y)
 
void ResizeWindowForWidget(Window *w, uint widget, int delta_x, int delta_y)
 
{
 
	int right  = w->widget[widget].right;
 
	int bottom = w->widget[widget].bottom;
 

	
 
	for (uint i = 0; i < w->widget_count; i++) {
 
		if (w->widget[i].left >= right) w->widget[i].left += delta_x;
 
		if (w->widget[i].left >= right && i != widget) w->widget[i].left += delta_x;
 
		if (w->widget[i].right >= right) w->widget[i].right += delta_x;
 
		if (w->widget[i].top >= bottom) w->widget[i].top += delta_y;
 
		if (w->widget[i].top >= bottom && i != widget) w->widget[i].top += delta_y;
 
		if (w->widget[i].bottom >= bottom) w->widget[i].bottom += delta_y;
 
	}
 

	
 
	/* A hidden widget has bottom == top or right == left, we need to make it
 
	 * one less to fit in its new gap. */
 
	if (right  == w->widget[widget].left) w->widget[widget].right--;
 
	if (bottom == w->widget[widget].top)  w->widget[widget].bottom--;
 

	
 
	w->width  += delta_x;
 
	w->height += delta_y;
 
	w->resize.width  += delta_x;
src/window_gui.h
Show inline comments
 
@@ -573,7 +573,7 @@ void ScrollbarClickHandler(Window *w, co
 

	
 
void ResizeButtons(Window *w, byte left, byte right);
 

	
 
void ResizeWindowForWidget(Window *w, int widget, int delta_x, int delta_y);
 
void ResizeWindowForWidget(Window *w, uint widget, int delta_x, int delta_y);
 

	
 
void SetVScrollCount(Window *w, int num);
 
void SetVScroll2Count(Window *w, int num);
0 comments (0 inline, 0 general)