(svn r9484) [cpp_gui] -Add: Auto layout/resize ability of widgets.
-Add: Panel widget with DoLayout() method that moves/resizes widgets with respect to their minimal sizes.
-Add: QuerySizes() method added to widget. Widgets are now able to calculate their minimal size.
-Add: SizeT class added (similar to PointT) to make Point/Size/Rectangle math simpler
/* $Id$ */
#include "../stdafx.h"
#include <stdarg.h>
#include "../openttd.h"
#include "../debug.h"
#include "../functions.h"
#include "../map.h"
#include "../player.h"
#include "../window.h"
#include "../gfx.h"
#include "../viewport.h"
#include "../console.h"
#include "../variables.h"
#include "../table/sprites.h"
#include "../genworld.h"
#include "../helpers.hpp"
#include "window_events.hpp"
#include "widget_types.h"
namespace gui {
StringID TextButton::GetTextId()
{
if (m_text_id != STR_NULL) return m_text_id;
StringID temp_id = BindCString(m_text.c_str());
return temp_id;
}
/*virtual*/ void TextButton::QuerySizes()
{
static Point16 border_size(6, 2);
StringID text_id = GetTextId();
m_min_size = GetStringSize(text_id) + border_size;
}
/*virtual*/ void TextButton::OnPaint(EvtPaint &ev)
{
DrawBackground(ev);
Point center = GetSize() / 2;
if (m_pushed) center += Point(1, 1);
StringID text_id = GetTextId();
DrawStringCentered(center.x, center.y - 5, text_id, 16);
ev.SetHandled();
}
}; // namespace gui