egami
C++ Image Processing program
/homes/esi30/DCS339/coursework/src/processing_page.cpp
Go to the documentation of this file.
00001 #include <stdexcept>
00002 #include <string>
00003 #include <memory>
00004 
00005 #include <gtkmm/enums.h>
00006 
00007 #include "processing_page.hpp"
00008 #include "processing_unit.hpp"
00009 
00010 Processing_page::Instances Processing_page::instances;
00011 
00012 Processing_page::Processing_page(const std::string &id){
00013     instances.insert(Instances::value_type(id, this));
00014     set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
00015     container.set_layout(Gtk::BUTTONBOX_START);
00016     container.set_spacing(20);
00017     add(container);
00018     show_all_children();
00019 }
00020 
00021 void Processing_page::add_unit_to_page(const std::string &id, std::shared_ptr<Processing_unit> unit){
00022     Instances::iterator target=instances.find(id);
00023     if(target==instances.end())
00024         throw std::runtime_error("Trying to add a unit to the non existing page "+id);
00025     target->second->insert(unit);
00026 }
00027 
00028 void Processing_page::insert(std::shared_ptr<Processing_unit> unit){
00029     childs.push_back(unit);
00030     container.add(*unit);
00031     show_all_children();
00032 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends