Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CanvasPage.cxx

Go to the documentation of this file.
00001 #include "CanvasPage.h"
00002 #include "PageProxy.h"
00003 #include "Midad/Gui/GuiBox.h"
00004 #include "Midad/Gui/GuiCanvas.h"
00005 #include "Midad/Gui/GuiMainWindow.h"
00006 
00007 #include <TGWindow.h>
00008 #include <TGFileDialog.h>
00009 #include <TCanvas.h>
00010 #include <TLine.h>
00011 
00012 #include <sigc++/sigc++.h>
00013 
00014 #include <iostream>
00015 #include <cassert>
00016 
00017 // We don't use this here because we are just a base class.  But, any
00018 // subclass should have a version like it.
00019 //static PageProxy<CanvasPage> gsCanvasPageProxy("Canvas");
00020 
00021 CanvasPage::CanvasPage()
00022     : fCanvas(0), fMainWindow(0)
00023 {
00024 }
00025 
00026 CanvasPage::~CanvasPage()
00027 {
00028 }
00029 
00030 TObject* CanvasPage::Init(Mint* /*mint*/, PageDisplay* /*pd*/, GuiBox& box)
00031 {
00032     fMainWindow = dynamic_cast<TGWindow*>(&box);
00033     assert(fMainWindow);
00034 
00035     GuiCanvas* gc = SigC::manage(new GuiCanvas(box,100,100));
00036     box.Add(*gc);
00037     fCanvas = gc->GetCanvas();
00038     fCanvas->cd();
00039     return fCanvas;
00040 }
00041 
00042 void CanvasPage::Print()
00043 {
00044     if (!fMainWindow) {
00045         std::cerr << "CanvasPage::Print no main window\n";
00046         return;
00047     }
00048 
00049     const char* filetypes[] = { "All files",    "*",
00050                                 "EPS",          "*.eps",
00051                                 "PS",           "*.ps",
00052                                 "GIF",          "*.gif",
00053                                 0,              0 };
00054     static TString dir(".");
00055     TGFileInfo fi;
00056     fi.fFileTypes = filetypes;
00057     fi.fIniDir = StrDup(dir);
00058     new TGFileDialog(gClient->GetRoot(), fMainWindow, kFDOpen, &fi);
00059     dir = fi.fIniDir;
00060     fCanvas->Print(fi.fFilename);
00061 }
00062 
00063 
00064 TCanvas& CanvasPage::GetCanvas() 
00065 {
00066     fCanvas->cd();
00067     return *fCanvas; 
00068 }

Generated on Mon Feb 15 11:06:30 2010 for loon by  doxygen 1.3.9.1