]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/layout.cpp
Rework exceptions and use maputils
[libs/gltk.git] / source / layout.cpp
index 6ed46e4d44cecc7e9922ed4920566ada5f609422..ed7b93617dcd485c54759b7c00df05f90827f626 100644 (file)
@@ -94,7 +94,7 @@ Layout::~Layout()
 void Layout::set_container(Container &c)
 {
        if(container)
-               throw InvalidState("This layout is already assigned to a Container");
+               throw logic_error("container!=0");
 
        container = &c;
 }
@@ -109,7 +109,7 @@ void Layout::set_margin(const Sides &m)
 void Layout::add_widget(Widget &wdg)
 {
        if(!container)
-               throw InvalidState("Can't add Widgets without a Container");
+               throw logic_error("!container");
 
        Slot *slot = create_slot(wdg);
        for(list<Constraint>::iterator i=slot->constraints.begin(); i!=slot->constraints.end(); ++i)
@@ -160,7 +160,7 @@ Layout::Slot &Layout::get_slot_for_widget(Widget &wdg)
                if(&(*i)->widget==&wdg)
                        return **i;
 
-       throw InvalidParameterValue("Widget is not in the Layout");
+       throw hierarchy_error("widget not in layout");
 }
 
 Layout::ConstraintType Layout::complement(ConstraintType type)
@@ -180,7 +180,7 @@ Layout::ConstraintType Layout::complement(ConstraintType type)
 void Layout::add_constraint(Widget &src, ConstraintType type, Widget &tgt)
 {
        if(&src==&tgt)
-               throw InvalidParameterValue("Can't add a self-referencing constraint");
+               throw invalid_argument("&src==&tgt");
 
        Slot &src_slot = get_slot_for_widget(src);
        Slot &tgt_slot = get_slot_for_widget(tgt);
@@ -337,7 +337,7 @@ Layout::LinearProgram::Row Layout::LinearProgram::add_row()
 Layout::LinearProgram::Row Layout::LinearProgram::operator[](unsigned r)
 {
        if(r>=n_rows)
-               throw InvalidParameterValue("Row index out of range");
+               throw out_of_range("LinearProgram::operator[]");
 
        return Row(*this, r);
 }
@@ -350,9 +350,9 @@ Layout::LinearProgram::Row Layout::LinearProgram::get_object_row()
 float Layout::LinearProgram::get_variable(unsigned i)
 {
        if(!solved || infeasible)
-               throw InvalidState("Not solved");
+               throw logic_error("not solved");
        if(i+1>=n_columns)
-               throw InvalidParameterValue("Variable index out of range");
+               throw out_of_range("LinearProgram::get_variable");
 
        unsigned r = columns[i].basic;
        return columns.back().values[r];
@@ -478,7 +478,7 @@ Layout::LinearProgram::Row::Row(LinearProgram &lp, unsigned i):
 float &Layout::LinearProgram::Row::operator[](unsigned c)
 {
        if(c>=linprog.n_columns)
-               throw InvalidParameterValue("Column index out of range");
+               throw out_of_range("Row::operator[]");
 
        Column &column = linprog.columns[c];
        if(column.values.size()<=index)