set_text(t);
}
-void Entry::autosize_special(const Part &part, Geometry &ageom)
+void Entry::autosize_special(const Part &part, Geometry &ageom) const
{
if(part.get_name()=="text")
{
Geometry sgeom = part.get_geometry();
if(!sgeom.w || !sgeom.h)
{
- slider->autosize();
+ Geometry wgeom;
+ slider->autosize(wgeom);
if(!sgeom.w)
- sgeom.w = slider->get_geometry().w;
+ sgeom.w = wgeom.w;
if(!sgeom.h)
- sgeom.h = slider->get_geometry().h;
+ sgeom.h = wgeom.h;
}
const Sides &margin = part.get_margin();
void Entry::rebuild_special(const Part &part)
{
if(part.get_name()=="text")
- text.build(part, geom, first_row, part_cache);
+ text.build(part, state, geom, first_row, part_cache);
else if(part.get_name()=="cursor")
{
const Graphic *graphic = part.get_graphic(state);
Geometry sgeom = slider_part->get_geometry();
if(!sgeom.w || !sgeom.h)
{
- slider->autosize();
+ Geometry wgeom;
+ slider->autosize(wgeom);
if(!sgeom.w)
- sgeom.w = slider->get_geometry().w;
+ sgeom.w = wgeom.w;
if(!sgeom.h)
- sgeom.h = slider->get_geometry().h;
+ sgeom.h = wgeom.h;
}
slider_part->get_alignment().apply(sgeom, geom, slider_part->get_margin());
first_row = text.get_n_lines()-visible_rows-static_cast<unsigned>(value);
}
+
+Entry::Loader::Loader(Entry &e):
+ DataFile::DerivedObjectLoader<Entry, Widget::Loader>(e)
+{
+ add("edit_size", &Entry::edit_width, &Entry::edit_height);
+ add("multiline", &Loader::multiline);
+}
+
+void Entry::Loader::multiline(bool m)
+{
+ obj.set_multiline(m);
+}
+
} // namespace GLtk
} // namespace Msp