Changeset - r11495:4296a4ba06fb
[Not reviewed]
master
0 2 0
yexo - 15 years ago 2009-03-26 20:39:04
yexo@openttd.org
(svn r15861) -Codechange: Add NWID_HORIZONTAL_LTR that forces the ordering from left-to-right.
2 files changed with 36 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/widget.cpp
Show inline comments
 
@@ -960,6 +960,21 @@ void NWidgetHorizontal::StoreWidgets(Wid
 
	}
 
}
 

	
 
NWidgetHorizontalLTR::NWidgetHorizontalLTR() : NWidgetHorizontal()
 
{
 
	this->type = NWID_HORIZONTAL_LTR;
 
}
 

	
 
void NWidgetHorizontalLTR::AssignMinimalPosition(uint x, uint y, uint given_width, uint given_height, bool allow_resize_x, bool allow_resize_y, bool rtl)
 
{
 
	NWidgetHorizontal::AssignMinimalPosition(x, y, given_width, given_height, allow_resize_x, allow_resize_y, false);
 
}
 

	
 
void NWidgetHorizontalLTR::StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl)
 
{
 
	NWidgetHorizontal::StoreWidgets(widgets, length, left_moving, top_moving, false);
 
}
 

	
 
NWidgetVertical::NWidgetVertical() : NWidgetContainer(NWID_VERTICAL)
 
{
 
}
 
@@ -1346,6 +1361,11 @@ static int MakeNWidget(const NWidgetPart
 
				*dest = new NWidgetHorizontal();
 
				break;
 

	
 
			case NWID_HORIZONTAL_LTR:
 
				if (*dest != NULL) return num_used;
 
				*dest = new NWidgetHorizontalLTR();
 
				break;
 

	
 
			case WWT_PANEL:
 
			case WWT_INSET:
 
			case WWT_FRAME:
 
@@ -1464,7 +1484,7 @@ static int MakeWidgetTree(const NWidgetP
 

	
 
		/* If sub-widget is a container, recursively fill that container. */
 
		WidgetType tp = sub_widget->type;
 
		if (tp == NWID_HORIZONTAL || tp == NWID_VERTICAL || tp == WWT_PANEL || tp == WWT_FRAME || tp == WWT_INSET) {
 
		if (tp == NWID_HORIZONTAL || tp == NWID_HORIZONTAL_LTR || tp == NWID_VERTICAL || tp == WWT_PANEL || tp == WWT_FRAME || tp == WWT_INSET) {
 
			int num_used = MakeWidgetTree(parts, count - total_used, sub_widget);
 
			parts += num_used;
 
			total_used += num_used;
src/widget_type.h
Show inline comments
 
@@ -96,9 +96,10 @@ enum WidgetType {
 
	WWT_LAST,       ///< Last Item. use WIDGETS_END to fill up padding!!
 

	
 
	/* Nested widget types. */
 
	NWID_HORIZONTAL,  ///< Horizontal container.
 
	NWID_VERTICAL,    ///< Vertical container.
 
	NWID_SPACER,      ///< Invisible widget that takes some space.
 
	NWID_HORIZONTAL,     ///< Horizontal container.
 
	NWID_HORIZONTAL_LTR, ///< Horizontal container that doesn't change the order of the widgets for RTL languages.
 
	NWID_VERTICAL,       ///< Vertical container.
 
	NWID_SPACER,         ///< Invisible widget that takes some space.
 

	
 
	/* Nested widget part types. */
 
	WPT_RESIZE,       ///< Widget part for specifying resizing.
 
@@ -217,6 +218,16 @@ public:
 
	void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl);
 
};
 

	
 
/** Horizontal container that doesn't change the direction of the widgets for RTL languages. */
 
class NWidgetHorizontalLTR : public NWidgetHorizontal {
 
public:
 
	NWidgetHorizontalLTR();
 

	
 
	void AssignMinimalPosition(uint x, uint y, uint given_width, uint given_height, bool allow_resize_x, bool allow_resize_y, bool rtl);
 

	
 
	void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl);
 
};
 

	
 
/** Vertical container */
 
class NWidgetVertical : public NWidgetContainer {
 
public:
 
@@ -428,7 +439,7 @@ static inline NWidgetPart NWidget(Widget
 

	
 
/**
 
 * Widget part function for starting a new horizontal container, vertical container, or spacer widget.
 
 * @param tp Type of the new nested widget, #NWID_HORIZONTAL, #NWID_VERTICAL, or #NWID_SPACER
 
 * @param tp Type of the new nested widget, #NWID_HORIZONTAL(_LTR), #NWID_VERTICAL, or #NWID_SPACER
 
 */
 
static inline NWidgetPart NWidget(WidgetType tp)
 
{
0 comments (0 inline, 0 general)