]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/widget.cpp
Rework exceptions and use maputils
[libs/gltk.git] / source / widget.cpp
index 3f11af6d32e08bb707fc5b78bedd9b8aab964cf1..1cb42e5cae15598cdd82ea25809913e59a8359e7 100644 (file)
@@ -66,7 +66,7 @@ void Widget::set_geometry(const Geometry &g)
 void Widget::set_parent(Container *p)
 {
        if(parent && p)
-               throw InvalidState("Widget is already in a Container");
+               throw hierarchy_error("widget already parented");
        else if(p==parent)
                return;
        parent = p;
@@ -127,9 +127,9 @@ void Widget::set_focusable(bool f)
 void Widget::set_focus()
 {
        if(!parent)
-               throw InvalidState("No parent");
+               throw hierarchy_error("no parent");
        if(!visible)
-               throw InvalidState("Can't set focus on invisible widget");
+               throw logic_error("!visible");
 
        signal_request_focus.emit();
 }
@@ -137,7 +137,7 @@ void Widget::set_focus()
 void Widget::render() const
 {
        if(!style)
-               throw InvalidState(format("Attempt to render a widget with null style (class=\"%s\", style_name=\"%s\")", get_class(), style_name));
+               throw logic_error(format("Attempt to render a widget with null style (class=\"%s\", style_name=\"%s\")", get_class(), style_name));
 
        GL::push_matrix();
        GL::translate(geom.x, geom.y, 0);