]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/list.cpp
Add List::set_selected_index
[libs/gltk.git] / source / list.cpp
index 5665ef5dc264391f7020005d5635be43c30009d8..722e296edf9cae096b19e2c736f6075d439dc686 100644 (file)
@@ -73,6 +73,19 @@ void List::clear()
        sel_index=-1;
 }
 
+void List::set_selected_index(int i)
+{
+       if(i<0)
+               sel_index=-1;
+       else if(i<static_cast<int>(items.size()))
+       {
+               sel_index=i;
+               signal_item_selected.emit(sel_index, items[sel_index]);
+       }
+       else
+               throw InvalidParameterValue("Index out of range");
+}
+
 const string &List::get_selected() const
 {
        if(sel_index<0)
@@ -137,6 +150,7 @@ void List::render_special(const Part &part) const
 
                Geometry pgeom=geom;
                pgeom.h=row_height;
+               pgeom.w-=margin.left+margin.right;
 
                for(unsigned i=0; (i<n_visible && first+i<items.size()); ++i)
                {