Aug 6, 2009 Version 5.0.6
* Use wxWidgets command-line processing rather than existing
native processing.
+ * ezset.cpp: Initialize scale settings in constructor
+ * Improve titles of frames
Aug 3, 2009 Version 5.0.5
* Fix plots when maximum plot value is the same as minimum
s_xlegend = FALSE;
s_ylegend = FALSE;
s_textsize = FALSE;
+ s_xmin = FALSE;
+ s_xmax = FALSE;
+ s_ymin = FALSE;
+ s_ymax = FALSE;
clr_axis = C_LTGRAY; // set fixed colors
clr_title = C_RED;
double symheight = charheight * 0.3; // size of symbol in NDC
double symwidth = symheight;
- const EZPlotCurve& firstCurve = *m_vecCurves[0];
+ if (m_vecCurves.size() < 1)
+ return; // can't plot if there are no curves to plot
- double xmin = firstCurve.x[0]; // extent of curves in world coord
- double xmax = xmin;
- double ymin = firstCurve.y[0];
- double ymax = ymin;
+ // find a curve with at least one point to get base point
+ double xmin, xmax, ymin, ymax; // extent of curves in world coord
+ bool found = false;
- unsigned int iCurve;
- for (iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
+ for (unsigned int iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
+ const EZPlotCurve* const pCurve = m_vecCurves [iCurve];
+ if (pCurve->m_iPointCount > 0) {
+ xmin = pCurve->x[0];
+ xmax = xmin;
+ ymin = pCurve->y[0];
+ ymax = ymin;
+ found = true;
+ break;
+ }
+ }
+ if (! found)
+ return; // curve(s) are empty, so no plotting
+
+ for (unsigned int iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
const EZPlotCurve* const pCurve = m_vecCurves [iCurve];
for (int ip = 0; ip < pCurve->m_iPointCount; ip++) {
if (! axis_scale (xmin, xmax, o_xmajortick - 1, &xgw_min, &xgw_max, &x_nint) || ! axis_scale (ymin, ymax, o_ymajortick - 1, &ygw_min, &ygw_max, &y_nint))
return;
+
// check if user set x-axis extents
if (s_xmin == TRUE) {
xgw_min = v_xmin;
int max_leg = 0; // longest legend in characters
int num_leg = 0; // number of legend titles
- for (iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
+ for (unsigned int iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
const std::string* pstrLegend = getLegend (iCurve);
if (pstrLegend && pstrLegend->length() > 0) {
int iLegend = 0; // current legend position
- for (iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
+ for (unsigned int iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
const std::string* pstrLegend = getLegend (iCurve);
if (! pstrLegend || pstrLegend->length() == 0)
continue;
- for (iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
+ for (unsigned int iCurve = 0; iCurve < m_vecCurves.size(); iCurve++) {
const EZPlotCurve* const pCurve = m_vecCurves [iCurve];
-
m_pSGP->setColor (getColor (iCurve));
-
int iSym = getSymbol (iCurve);
-
int iLS = getLinestyle (iCurve);
-
-
if (iLS != SGP::LS_NOLINE) {
m_pSGP->setLineStyle (iLS);
double x1 = convertWorldToNDC_X (pCurve->x[0]);
}
-wxString
-CTSimApp::getUntitledFilename()
-{
- static int untitledNumber = 1;
-
- wxString filename (_T("Untitled"));
- filename << untitledNumber++;
-
- return (filename);
-}
-
-
// Top-level window for CTSim
#if CTSIM_MDI
m_dDefaultFilterBandwidth
<< _T(", inputScale=") << m_dDefaultFilterInputScale << _T(", outputScale=") << m_dDefaultFilterOutputScale;
*theApp->getLog() << os << _T("\n");
- wxString filename = _T("untitled.if");
ImageFileDocument* pFilterDoc = theApp->newImageDoc();
pFilterDoc->setBadFileOpen();
if (! pFilterDoc) {
return;
}
-#if WXWIN_COMPATIBILITY_2_4
- wxString strFilename = wxFileSelector (wxString(wxConvUTF8.cMB2WX("Import Filename")), wxString(wxConvUTF8.cMB2WX("")),
- wxString(wxConvUTF8.cMB2WX("")), strExt, strWildcard, wxHIDE_READONLY | wxOPEN);
-#else
wxString strFilename = wxFileSelector (wxString(wxConvUTF8.cMB2WX("Import Filename")), wxString(wxConvUTF8.cMB2WX("")),
wxString(wxConvUTF8.cMB2WX("")), strExt, strWildcard, wxOPEN);
-#endif
if (! strFilename.IsEmpty()) {
if (m_iDefaultImportFormat == ImageFile::IMPORT_FORMAT_PPM || m_iDefaultImportFormat == ImageFile::IMPORT_FORMAT_PNG) {
ProjectionFileDocument*
CTSimApp::newProjectionDoc()
{
- ProjectionFileDocument* newDoc = dynamic_cast<ProjectionFileDocument*>(m_pDocTemplProjection->CreateDocument (_T("")));
+ wxString fname;
+ m_docManager->MakeDefaultName(fname);
+ fname += _T(".pj");
+ ProjectionFileDocument* newDoc = dynamic_cast<ProjectionFileDocument*>(m_pDocTemplProjection->CreateDocument (fname));
if (newDoc) {
newDoc->SetDocumentName (m_pDocTemplProjection->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplProjection);
newDoc->OnNewDocument();
+ newDoc->SetFilename(fname);
}
return newDoc;
ImageFileDocument*
CTSimApp::newImageDoc()
{
- ImageFileDocument* newDoc = dynamic_cast<ImageFileDocument*>(m_pDocTemplImage->CreateDocument (_T("")));
+ wxString fname;
+ m_docManager->MakeDefaultName(fname);
+ fname += _T(".if");
+ ImageFileDocument* newDoc = dynamic_cast<ImageFileDocument*>(m_pDocTemplImage->CreateDocument (fname));
if (newDoc) {
newDoc->SetDocumentName (m_pDocTemplImage->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplImage);
newDoc->OnNewDocument();
+ newDoc->SetFilename(fname);
}
return newDoc;
PlotFileDocument*
CTSimApp::newPlotDoc()
{
- PlotFileDocument* newDoc = dynamic_cast<PlotFileDocument*>(m_pDocTemplPlot->CreateDocument (_T("")));
+ wxString fname;
+ m_docManager->MakeDefaultName(fname);
+ fname += _T(".plt");
+ PlotFileDocument* newDoc = dynamic_cast<PlotFileDocument*>(m_pDocTemplPlot->CreateDocument (fname));
if (newDoc) {
newDoc->SetDocumentName (m_pDocTemplPlot->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplPlot);
newDoc->OnNewDocument();
+ newDoc->SetFilename(fname);
}
return newDoc;
TextFileDocument*
CTSimApp::newTextDoc()
{
- wxString strFilename (getUntitledFilename());
- strFilename += wxString(".txt", *wxConvCurrent);
+ wxString fname;
+ m_docManager->MakeDefaultName(fname);
+ fname += _T(".txt");
- TextFileDocument* newDoc = dynamic_cast<TextFileDocument*>(m_pDocTemplText->CreateDocument (_T("")));
+ TextFileDocument* newDoc = dynamic_cast<TextFileDocument*>(m_pDocTemplText->CreateDocument (fname));
if (newDoc) {
newDoc->SetDocumentName (m_pDocTemplText->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplText);
newDoc->OnNewDocument();
+ newDoc->SetFilename (fname);
}
return newDoc;
PhantomFileDocument*
CTSimApp::newPhantomDoc()
{
- PhantomFileDocument* newDoc = dynamic_cast<PhantomFileDocument*>(m_pDocTemplPhantom->CreateDocument (_T("")));
+ wxString fname;
+ m_docManager->MakeDefaultName(fname);
+ fname += _T(".phm");
+ PhantomFileDocument* newDoc = dynamic_cast<PhantomFileDocument*>(m_pDocTemplPhantom->CreateDocument (fname));
if (newDoc) {
newDoc->SetDocumentName (m_pDocTemplPhantom->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplPhantom);
newDoc->OnNewDocument();
+ newDoc->SetFilename(fname);
}
return newDoc;
Graph3dFileDocument*
CTSimApp::newGraph3dDoc()
{
- Graph3dFileDocument* newDoc = dynamic_cast<Graph3dFileDocument*>(m_pDocTemplGraph3d->CreateDocument (_T("")));
+ wxString fname;
+ m_docManager->MakeDefaultName(fname);
+ fname += _T(".3dif");
+ Graph3dFileDocument* newDoc = dynamic_cast<Graph3dFileDocument*>(m_pDocTemplGraph3d->CreateDocument (fname));
if (newDoc) {
newDoc->SetDocumentName (m_pDocTemplGraph3d->GetDocumentName());
newDoc->SetDocumentTemplate (m_pDocTemplGraph3d);
newDoc->OnNewDocument();
+ newDoc->SetFilename(fname);
}
return newDoc;
}
+
#endif
wxDocManager* getDocManager()
{ return m_docManager; }
- wxString getUntitledFilename();
-
int getNumberCPU() const { return wxThread::GetCPUCount(); }
EZPlotDialog* makeEZPlotDialog()
SetFilename(filename, true);
Modify(false);
getView()->setInitialClientSize();
+ this->SetFilename(filename, true);
UpdateAllViews();
m_bBadFileOpen = false;
m_pCanvas = CreateCanvas (m_pFrame);
m_pFrame->SetClientSize (m_pCanvas->GetBestSize());
m_pCanvas->SetClientSize (m_pCanvas->GetBestSize());
- m_pFrame->SetTitle(_T("ImageFileView"));
+ m_pFrame->SetTitle(doc->GetFilename());
m_pFrame->Show(true);
Activate(true);
} else {
PlotFile& rPlotFile = pPlotDoc->getPlotFile();
std::ostringstream os;
- os << "Row " << yCursor << ": ";
+ os << "Row " << yCursor;
std::string title("title ");
title += os.str();
rPlotFile.addEzsetCommand (title.c_str());
}
for (unsigned int iL = 0; iL < rIF.nLabels(); iL++)
rPlotFile.addDescription (rIF.labelGet(iL).getLabelString().c_str());
- os << " Plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
+ os << ": plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
*theApp->getLog() << wxConvUTF8.cMB2WX(os.str().c_str()) << _T("\n");
rPlotFile.addDescription (os.str().c_str());
}
} else {
PlotFile& rPlotFile = pPlotDoc->getPlotFile();
std::ostringstream os;
- os << "Column " << xCursor << ": ";
+ os << "Column " << xCursor;
std::string title("title ");
title += os.str();
rPlotFile.addEzsetCommand (title.c_str());
}
for (unsigned int iL = 0; iL < rIF.nLabels(); iL++)
rPlotFile.addDescription (rIF.labelGet(iL).getLabelString().c_str());
- os << " Plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
+ os << " : plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
*theApp->getLog() << wxConvUTF8.cMB2WX(os.str().c_str()) << _T("\n");
rPlotFile.addDescription (os.str().c_str());
}
} else {
PlotFile& rPlotFile = pPlotDoc->getPlotFile();
std::ostringstream os;
- os << "Row " << yCursor << ": ";
+ os << "Row " << yCursor;
std::string title("title ");
title += os.str();
rPlotFile.addEzsetCommand (title.c_str());
rPlotFile.addColumn (3, pYMag);
for (unsigned int iL = 0; iL < rIF.nLabels(); iL++)
rPlotFile.addDescription (rIF.labelGet(iL).getLabelString().c_str());
- os << " FFT plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
+ os << ": FFT plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
*theApp->getLog() << wxConvUTF8.cMB2WX(os.str().c_str()) << _T("\n");
rPlotFile.addDescription (os.str().c_str());
}
} else {
PlotFile& rPlotFile = pPlotDoc->getPlotFile();
std::ostringstream os;
- os << "Column " << xCursor << ": ";
+ os << "Column " << xCursor;
std::string title("title ");
title += os.str();
rPlotFile.addEzsetCommand (title.c_str());
rPlotFile.addColumn (3, pYMag);
for (unsigned int iL = 0; iL < rIF.nLabels(); iL++)
rPlotFile.addDescription (rIF.labelGet(iL).getLabelString().c_str());
- os << " FFT plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
+ os << ": FFT plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
*theApp->getLog() << wxConvUTF8.cMB2WX(os.str().c_str()) << _T("\n");
rPlotFile.addDescription (os.str().c_str());
}
PlotFile& rPlotFile = pPlotDoc->getPlotFile();
std::ostringstream os;
- os << "Histogram ";
+ os << "Histogram";
std::string title("title ");
title += os.str();
rPlotFile.addEzsetCommand (title.c_str());
os << ": " << rIF.labelGet(iL).getLabelString();
rPlotFile.addDescription (os.str().c_str());
}
- os << " Plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
+ os << " plot of " << wxConvUTF8.cWX2MB(dynamic_cast<wxFrame*>(GetDocument()->GetFirstView()->GetFrame())->GetTitle().c_str());
*theApp->getLog() << wxConvUTF8.cMB2WX(os.str().c_str()) << _T("\n");
rPlotFile.addDescription (os.str().c_str());
delete pX;
wxSize(-1,-1), wxFULL_REPAINT_ON_RESIZE);
pCanvas->SetBackgroundColour(*wxWHITE);
pCanvas->ClearBackground();
-
return pCanvas;
}
m_pCanvas = CreateCanvas (m_pFrame);
m_pFrame->SetClientSize (m_pCanvas->GetBestSize());
m_pCanvas->SetClientSize (m_pCanvas->GetBestSize());
- m_pFrame->SetTitle (_T("PhantomFileView"));
+ m_pFrame->SetTitle (doc->GetFilename());
m_pFrame->Show(true);
Activate(true);
m_pCanvas = CreateCanvas (m_pFrame);
m_pFrame->SetClientSize (m_pCanvas->GetBestSize());
m_pCanvas->SetClientSize (m_pCanvas->GetBestSize());
- m_pFrame->SetTitle (_T("ProjectionFileView"));
+ m_pFrame->SetTitle (doc->GetFilename());
m_pFrame->Show(true);
Activate(true);
// PlotFileCanvas
-PlotFileCanvas::PlotFileCanvas (PlotFileView* v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style)
+PlotFileCanvas::PlotFileCanvas (PlotFileView* v, wxFrame *frame,
+ const wxPoint& pos, const wxSize& size,
+ const long style)
: wxScrolledWindow(frame, -1, pos, size, style), m_pView(v)
{
}
void
PlotFileView::OnScaleFull (wxCommandEvent& event)
{
- const PlotFile& rPlotFile = GetDocument()->getPlotFile();
- if (! rPlotFile.getMinMax (1, m_dMinPixel, m_dMaxPixel)) {
- *theApp->getLog() << _T("Error: unable to find Min/Max\n");
- return;
- }
-
- m_bMinSpecified = true;
- m_bMaxSpecified = true;
+ m_bMinSpecified = false;
+ m_bMaxSpecified = false;
OnUpdate (this, NULL);
GetDocument()->Activate();
}
m_pCanvas = CreateCanvas (m_pFrame);
m_pFrame->SetClientSize (m_pCanvas->GetBestSize());
m_pCanvas->SetClientSize (m_pCanvas->GetBestSize());
- m_pFrame->SetTitle (_T("Plot File"));
+ m_pFrame->SetTitle (_T("test"));
+ *theApp->getLog() << _T("Plot doc name: ") << doc->GetDocumentName() << _T("\n");
+ *theApp->getLog() << _T("Plot file name: ") << doc->GetFilename() << _T("\n");
+ m_pFrame->SetTitle (doc->GetFilename());
m_pFrame->Show(true);
Activate(true);
delete pdY;
}
- if (m_pCanvas)
+ if (m_pCanvas) {
m_pCanvas->Refresh();
+ }
}
bool
int width, height;
m_pFrame->GetClientSize(&width, &height);
- m_pFrame->SetTitle(_T("TextFile"));
+ m_pFrame->SetTitle(doc->GetFilename());
m_pCanvas = new TextFileCanvas (this, m_pFrame, wxPoint(-1,-1), wxSize(width, height), wxTE_MULTILINE | wxTE_READONLY);
- m_pFrame->SetTitle(_T("Log"));
m_pFrame->Show (true);
Activate (true);