X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flayout.cpp;h=ed7b93617dcd485c54759b7c00df05f90827f626;hb=411a387be30f4fc25e0ce8924fb115b5863356f1;hp=468d45ff213267a88c55dba98a2777e20dadb3b8;hpb=a84c813859b6908c511b12ab7d82d6643f4f1a42;p=libs%2Fgltk.git diff --git a/source/layout.cpp b/source/layout.cpp index 468d45f..ed7b936 100644 --- a/source/layout.cpp +++ b/source/layout.cpp @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgltk -Copyright © 2011 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include #include "container.h" #include "layout.h" @@ -101,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; } @@ -116,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) @@ -167,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) @@ -187,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); @@ -344,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); } @@ -357,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]; @@ -485,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)