Logo
  • Main Page
  • Related Pages
  • Modules
  • Classes
  • Files

mmscanvasfactory.cpp

Go to the documentation of this file.
00001 /*
00002  * mmscanvasfactory.cpp
00003  *
00004  *  Created on: Nov 3, 2011
00005  *      Author: sxs
00006  */
00007 
00008 #include "mmsgui/mmscanvasfactory.h"
00009 
00010 MMS_CANVAS_MAP MMSCanvasFactory::canvasFactoryList;
00011 
00012 MMSCanvasFactory::MMSCanvasFactory() {
00013 
00014 }
00015 
00016 MMSCanvasFactory::~MMSCanvasFactory() {
00017 
00018 }
00019 
00020 void MMSCanvasFactory::registerCanvas(string name, MMS_CANVAS_CONSTRUCTOR constructor) {
00021     MMS_CANVAS_MAP::iterator it = this->canvasFactoryList.find(name);
00022     if(it != this->canvasFactoryList.end()) {
00023         throw MMSCanvasFactoryError(1, "a canvas mit name '" + name  + "' already registered");
00024     }
00025 
00026     this->canvasFactoryList.insert(std::make_pair(name, constructor));
00027 }
00028 
00029 MMSCanvasWidget *MMSCanvasFactory::constructCanvas(const char *name, MMSWindow *root, string classname, MMSTheme *theme) {
00030     MMS_CANVAS_MAP::iterator it = this->canvasFactoryList.find(name);
00031 
00032     if(it == this->canvasFactoryList.end()) {
00033         return NULL;
00034     }
00035     return it->second(root, classname, theme);
00036 }

Generated by doxygen