Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <stdexcept>
00016 #include <iostream>
00017 #include "TGFileDialog.h"
00018
00019
00020 #include "Fireworks/Core/interface/FWViewBase.h"
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 FWViewBase::FWViewBase(FWViewType::EType type, unsigned int iVersion) :
00035 FWConfigurableParameterizable(iVersion),
00036 m_type(type)
00037 {
00038 }
00039
00040
00041
00042
00043
00044
00045 FWViewBase::~FWViewBase()
00046 {
00047 }
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 void
00065 FWViewBase::destroy()
00066 {
00067 beingDestroyed_(this);
00068 }
00069
00070
00071
00072
00073 void
00074 FWViewBase::promptForSaveImageTo(TGFrame* iParent) const
00075 {
00076 if (typeId() < FWViewType::kTable)
00077 {
00078 try {
00079 static TString dir(".");
00080 const char * kImageExportTypes[] = {"PNG", "*.png",
00081 "GIF", "*.gif",
00082 "JPEG", "*.jpg",
00083 "PDF", "*.pdf",
00084 "Encapsulated PostScript", "*.eps",
00085 0, 0};
00086
00087 TGFileInfo fi;
00088 fi.fFileTypes = kImageExportTypes;
00089 fi.fIniDir = StrDup(dir);
00090 new TGFileDialog(gClient->GetDefaultRoot(), iParent,
00091 kFDSave,&fi);
00092 dir = fi.fIniDir;
00093 if (fi.fFilename != 0) {
00094 std::string name = fi.fFilename;
00095
00096
00097
00098 std::string ext = kImageExportTypes[fi.fFileTypeIdx + 1] + 1;
00099 if (name.find(ext) == name.npos)
00100 name += ext;
00101 saveImageTo(name);
00102 }
00103 }
00104 catch (std::runtime_error &e) { std::cout << e.what() << std::endl; }
00105 }
00106 else
00107 {
00108 saveImageTo("dummy");
00109 }
00110 }
00111
00112 FWViewContextMenuHandlerBase*
00113 FWViewBase::contextMenuHandler() const {
00114 return 0;
00115 }
00116
00117
00118
00119
00120 const std::string&
00121 FWViewBase::typeName() const
00122 {
00123 return m_type.name();
00124 }