+ show_route(*cur_route);
+}
+
+void Designer::edit_zone(Zone *z)
+{
+ cur_zone = z;
+ cur_route = 0;
+ if(cur_zone)
+ show_zone(*cur_zone);
+ else
+ clear_paths();
+}
+
+void Designer::zone_properties()
+{
+ if(!cur_zone)
+ return;
+
+ ZoneProperties *zone_prop = new ZoneProperties(*cur_zone);
+ root.add(*zone_prop);
+ const GLtk::Geometry &root_geom = root.get_geometry();
+ const GLtk::Geometry &dlg_geom = zone_prop->get_geometry();
+ zone_prop->set_position((root_geom.w-dlg_geom.w)/2, (root_geom.h-dlg_geom.h)/2);
+}
+
+void Designer::add_selection_to_zone()
+{
+ if(!cur_zone)
+ return;
+
+ try
+ {
+ cur_zone->add_tracks(selection.get_tracks());
+ }
+ catch(const Exception &e)
+ {
+ lbl_status->set_text(e.what());
+ }
+
+ show_zone(*cur_zone);