-/* $Id$
-
-This file is part of libmspgltk
-Copyright © 2007-2011 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#include "panel.h"
#include "part.h"
+#include "style.h"
#include "toggle.h"
using namespace std;
set_text(t);
}
+void Toggle::autosize()
+{
+ if(!style)
+ return;
+
+ Widget::autosize();
+
+ if(const Part *text_part = style->get_part("text"))
+ {
+ const Sides &margin = text_part->get_margin();
+ geom.w = max(geom.w, text.get_width()+margin.left+margin.right);
+ geom.h = max(geom.h, text.get_height()+margin.top+margin.bottom);
+ }
+}
+
void Toggle::set_text(const string &t)
{
text = t;
+ signal_autosize_changed.emit();
}
void Toggle::set_exclusive(bool e)
Toggle &Toggle::Loader::get_object() const
{
- return static_cast<Toggle &>(wdg);
+ return static_cast<Toggle &>(obj);
}
void Toggle::Loader::finish()
{
- Toggle &tgl = static_cast<Toggle &>(wdg);
+ Toggle &tgl = get_object();
if(tgl.value)
tgl.state |= ACTIVE;
else
void Toggle::Loader::text(const string &t)
{
- static_cast<Toggle &>(wdg).text = t;
+ get_object().text = t;
}
} // namespace GLtk