00001 #include "GfxCfg.h"
00002
00003 #include <Midad/Gui/GuiMainWindow.h>
00004 #include <Midad/Gui/GuiButton.h>
00005 #include <Midad/Gui/GuiBox.h>
00006
00007 #include <Midad/Base/RegistryGui.h>
00008
00009 GfxCfg::GfxCfg()
00010 {
00011 }
00012
00013 GfxCfg::~GfxCfg()
00014 {
00015 }
00016
00017 void GfxCfg::Config(void)
00018 {
00019
00020 this->modified_signal.emit();
00021 }
00022
00023
00024 const Registry& GfxCfg::GetPossibles()
00025 {
00026 return fPossibles;
00027 }
00028
00029 void GfxCfg::SetPossibles(const Registry& reg)
00030 {
00031 fPossibles = reg;
00032 }
00033
00034 static void apply_reg_gui(GfxCfg* cfg, RegistryGui* rg)
00035 {
00036
00037 cfg->GetConfig() = rg->GetRegistry();
00038 cfg->Update();
00039 }
00040
00041 void GfxCfg::GuiConfig()
00042 {
00043 GuiMainWindow* mw = new GuiMainWindow(100,300);
00044
00045 RegistryGui* rg = manage(new RegistryGui(*mw));
00046 mw->Add(*rg);
00047
00048 GuiBox* box = manage(new GuiBox(*mw,kHorizontalFrame));
00049 box->SetLayoutHints(kLHintsExpandX);
00050 mw->Add(*box);
00051
00052 GuiTextButton* apply = manage(new GuiTextButton(*box,"Apply"));
00053 box->Add(*apply);
00054 apply->clicked.connect(bind(slot(apply_reg_gui),this,rg));
00055
00056 GuiTextButton* okay = manage(new GuiTextButton(*box,"Okay"));
00057 box->Add(*okay);
00058 okay->clicked.connect(bind(slot(apply_reg_gui),this,rg));
00059 okay->clicked.connect(slot(*mw,&GuiMainWindow::SendCloseMessage));
00060
00061 GuiTextButton* cancel = manage(new GuiTextButton(*box,"Cancel"));
00062 box->Add(*cancel);
00063 cancel->clicked.connect(slot(*mw,&GuiMainWindow::SendCloseMessage));
00064
00065 rg->SetRegistry(this->GetConfig());
00066 rg->SetPossibles(this->GetPossibles());
00067
00068 mw->ShowAll();
00069 mw->ConnectClose(true);
00070 mw->Resize(mw->GetDefaultWidth(),mw->GetDefaultHeight());
00071
00072 }
00073