X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fctsim.cpp;h=60f409a75929b43b0df14485357bf35969d107e9;hb=f313cfc038d176c3db704dbcf3c01fdd6f33d807;hp=1c3d334e937270c2db1b1a549292e8c11bf6c133;hpb=7f8f356151b0c8db0dbbf1c1896cc22630d6c774;p=ctsim.git diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 1c3d334..60f409a 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.27 2001/01/12 16:41:56 kevin Exp $ +** $Id: ctsim.cpp,v 1.33 2001/01/18 02:50:50 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -25,6 +25,9 @@ ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ +#ifdef MSVC +#define strdup _strdup +#endif // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -37,12 +40,17 @@ #include "wx/wx.h" #endif +#include "wx/image.h" +#include "wx/filesys.h" +#include "wx/fs_zip.h" + #if !wxUSE_DOC_VIEW_ARCHITECTURE #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! #endif #include "ct.h" #include "ctsim.h" +#include "ctsim-map.h" #include "docs.h" #include "views.h" #include "dialogs.h" @@ -61,9 +69,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.27 2001/01/12 16:41:56 kevin Exp $"; - -class CTSimApp* theApp = NULL; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.33 2001/01/18 02:50:50 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -124,14 +130,19 @@ CTSimApp::OnInit() m_docManager = new wxDocManager; new wxDocTemplate (m_docManager, "ImageFile", "*.if", "", "if", "ImageFile doc", "ImageFile View", CLASSINFO(ImageFileDocument), CLASSINFO(ImageFileView)); - new wxDocTemplate (m_docManager, "ProjectionFile", "*.pj", "", "pj", "ProjectionFile doc", "ProjectionFile View", CLASSINFO(ProjectionFileDocument), CLASSINFO(ProjectionFileView)); - new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "Phantom doc", "Phantom View", CLASSINFO(PhantomDocument), CLASSINFO(PhantomView)); - new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "Plot doc", "Plot View", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView)); - //// Create the main frame window +#if wxUSE_GIF + wxImage::AddHandler(new wxGIFHandler); // Required for images in the online documentation +#endif + +#if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB + wxFileSystem::AddHandler(new wxZipFSHandler); // Required for advanced HTML help +#endif + + // Create the main frame window m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE); SetTopWindow (m_pFrame); @@ -143,10 +154,36 @@ CTSimApp::OnInit() wxString filename = argv [i - 1]; m_docManager->CreateDocument (filename, wxDOC_SILENT); } - + + setIconForFrame (m_pFrame); + + if (! m_pFrame->getHelpController().Initialize("ctsim")) + ::wxMessageBox ("Cannot initialize the help system", "Error"); + + wxAcceleratorEntry accelEntries[5]; + accelEntries[0].Set(wxACCEL_CTRL, (int) 'O', wxID_OPEN); + accelEntries[1].Set(wxACCEL_CTRL, (int) 'T', MAINMENU_HELP_TOPICS); + accelEntries[2].Set(wxACCEL_CTRL, (int) 'P', MAINMENU_FILE_CREATE_PHANTOM); + accelEntries[3].Set(wxACCEL_CTRL, (int) 'F', MAINMENU_FILE_CREATE_FILTER); + accelEntries[4].Set(wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); + wxAcceleratorTable accelTable (5 + , accelEntries); + m_pFrame->SetAcceleratorTable (accelTable); + return true; } + +#include "./ctsim.xpm" +void +CTSimApp::setIconForFrame(wxFrame* pFrame) +{ + wxIcon iconApp (ctsim16_xpm); + + if (iconApp.Ok()) + pFrame->SetIcon (iconApp); +} + void CTSimApp::usage(const char* program) { @@ -193,6 +230,7 @@ BEGIN_EVENT_TABLE(MainFrame, wxDocParentFrame) EVT_MENU(MAINMENU_HELP_ABOUT, MainFrame::OnAbout) EVT_MENU(MAINMENU_HELP_CONTENTS, MainFrame::OnHelpContents) +EVT_MENU(MAINMENU_HELP_TOPICS, MainFrame::OnHelpTopics) EVT_MENU(MAINMENU_FILE_CREATE_PHANTOM, MainFrame::OnCreatePhantom) EVT_MENU(MAINMENU_FILE_CREATE_FILTER, MainFrame::OnCreateFilter) EVT_MENU(MAINMENU_FILE_EXIT, MainFrame::OnExit) @@ -237,9 +275,9 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const //// Make a menubar wxMenu *file_menu = new wxMenu; - file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom..."); - file_menu->Append(MAINMENU_FILE_CREATE_FILTER, "Create &Filter..."); - file_menu->Append(wxID_OPEN, "&Open..."); + file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...\tCtrl-P"); + file_menu->Append(MAINMENU_FILE_CREATE_FILTER, "Create &Filter...\tCtrl-F"); + file_menu->Append(wxID_OPEN, "&Open...\tCtrl-O"); file_menu->AppendSeparator(); file_menu->Append(MAINMENU_FILE_EXIT, "E&xit"); @@ -251,8 +289,8 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const m_pWindowMenu->UpdateUI (this); wxMenu* help_menu = new wxMenu; - help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents"); - help_menu->AppendSeparator(); + help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); + help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); wxMenuBar* menu_bar = new wxMenuBar; @@ -298,7 +336,7 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) } void -MainFrame::OnCreatePhantom(wxCommandEvent& WXUNUSED(event)) +MainFrame::OnCreatePhantom(wxCommandEvent& event) { DialogGetPhantom dialogPhantom (this, m_iDefaultPhantomID); int dialogReturn = dialogPhantom.ShowModal(); @@ -370,9 +408,34 @@ CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector