X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flayout.cpp;h=ed7b93617dcd485c54759b7c00df05f90827f626;hb=c1faa54a3218b53757b8b55de0ff8aa64412253b;hp=6ed46e4d44cecc7e9922ed4920566ada5f609422;hpb=8352d5f2590cfcb09e92854be211399105408c4d;p=libs%2Fgltk.git diff --git a/source/layout.cpp b/source/layout.cpp index 6ed46e4..ed7b936 100644 --- a/source/layout.cpp +++ b/source/layout.cpp @@ -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::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)