X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fctsim.cpp;h=906112df640364bf41b5f11d955b30358f5953f5;hp=a34339ca2e1c7cb7ce04de0893a1eeb7c8d0d7cd;hb=01ed72399d433ce45a0195f8acaea349a421461e;hpb=0914a8f418770303edfc8d00d68d53061cf01c93 diff --git a/src/ctsim.cpp b/src/ctsim.cpp index a34339c..906112d 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.38 2001/01/20 02:25:45 kevin Exp $ +** $Id: ctsim.cpp,v 1.39 2001/01/20 08:10:33 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 @@ -48,6 +48,7 @@ #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! #endif + #include "ct.h" #include "ctsim.h" #include "ctsim-map.h" @@ -69,7 +70,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.38 2001/01/20 02:25:45 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.39 2001/01/20 08:10:33 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -127,7 +128,7 @@ CTSimApp::OnInit() } } - m_docManager = new wxDocManager; + m_docManager = new wxDocManager (wxDEFAULT_DOCMAN_FLAGS, true); 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)); @@ -225,12 +226,15 @@ 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_SIZE(MainFrame::OnSize) + #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) EVT_MENU(MAINMENU_HELP_SECONDARY, MainFrame::OnHelpSecondary) #endif EVT_MENU(MAINMENU_FILE_CREATE_PHANTOM, MainFrame::OnCreatePhantom) EVT_MENU(MAINMENU_FILE_CREATE_FILTER, MainFrame::OnCreateFilter) EVT_MENU(MAINMENU_FILE_EXIT, MainFrame::OnExit) +EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, MainFrame::OnMRUFile) EVT_MENU(MAINMENU_WINDOW_BASE, MainFrame::OnWindowMenu0) EVT_MENU(MAINMENU_WINDOW_BASE+1, MainFrame::OnWindowMenu1) EVT_MENU(MAINMENU_WINDOW_BASE+2, MainFrame::OnWindowMenu2) @@ -264,11 +268,16 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const : wxDocParentFrame(manager, frame, id, title, pos, size, type), m_pLog(NULL) #endif { - m_pLog = new wxTextCtrl (this, -1, "Log Window\n", wxPoint(0, 250), wxSize(100,50), wxTE_MULTILINE | wxTE_READONLY); - wxLog::SetActiveTarget(new wxLogTextCtrl(m_pLog)); - CreateStatusBar(); - SetStatusText ("Welcome to CTSim"); - +#if 0 +//#if CTSIM_MDI + m_pLog = new wxLogWindow (this, "Log"); + //std::cout = new ostream (m_pLog->GetTextCtrl()); + wxLog::SetActiveTarget(m_pLog); +#else + m_pLog = new wxTextCtrl (this, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY); + wxLog::SetActiveTarget (new wxLogTextCtrl(m_pLog)); +#endif + //// Make a menubar wxMenu *file_menu = new wxMenu; @@ -281,10 +290,12 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const // history of files visited theApp->getDocManager()->FileHistoryUseMenu(file_menu); - + +#ifndef CTSIM_MDI m_pWindowMenu = new wxMenu; m_pWindowMenu->UpdateUI (this); - +#endif + wxMenu* help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); @@ -296,17 +307,21 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxMenuBar* menu_bar = new wxMenuBar; menu_bar->Append(file_menu, "&File"); +#ifndef CTSIM_MDI menu_bar->Append(m_pWindowMenu, "&Window"); +#endif menu_bar->Append(help_menu, "&Help"); SetMenuBar(menu_bar); +#ifndef CTSIM_MDI for (int i = 0; i < MAX_WINDOW_MENUITEMS; i++) { m_apWindowMenuItems[i] = new wxMenuItem (m_pWindowMenu, MAINMENU_WINDOW_BASE+i, wxString("")); m_pWindowMenu->Append (m_apWindowMenuItems[i]); m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); } - +#endif + m_iDefaultPhantomID = Phantom::PHM_HERMAN; m_iDefaultFilterID = SignalFilter::FILTER_BANDLIMIT; m_iDefaultFilterDomainID = SignalFilter::DOMAIN_FREQUENCY; @@ -317,18 +332,43 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const m_dDefaultFilterInputScale = 1.; m_dDefaultFilterOutputScale = 1.; - wxAcceleratorEntry accelEntries[14]; + wxAcceleratorEntry accelEntries[15]; accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); accelEntries[1].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); accelEntries[2].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); accelEntries[3].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); +#ifndef CTSIM_MDI accelEntries[4].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS); for (i = 0; i < 10; i++) accelEntries[i+4].Set (wxACCEL_CTRL, static_cast('0'+i), MAINMENU_WINDOW_BASE+i); - wxAcceleratorTable accelTable (16, accelEntries); + wxAcceleratorTable accelTable (15, accelEntries); +#else + wxAcceleratorTable accelTable (4, accelEntries); +#endif + SetAcceleratorTable (accelTable); } +void +MainFrame::OnSize (wxSizeEvent& event) +{ + wxSize sizeClient = GetClientSize(); + wxSize sizeLog = sizeClient; + if (sizeClient.y < 100) { + sizeLog.y = 0; + sizeLog.x = 0; + } else { + sizeLog.x = sizeClient.x; + sizeLog.y = 100; + } + sizeClient.x -= sizeLog.x; + sizeClient.y -= sizeLog.y; +// m_pLog->SetSize (0, sizeClient.y, sizeLog.x, sizeLog.y); +// GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y); +// GetClientWindow()->Refresh(); + wxMDIParentFrame::OnSize (event); +} + void MainFrame::OnCreatePhantom(wxCommandEvent& event) { @@ -487,6 +527,13 @@ MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent) } +void MainFrame::OnMRUFile(wxCommandEvent& event) +{ + wxString fileName (theApp->getDocManager()->GetHistoryFile(event.GetSelection())); + if (fileName != "") + theApp->getDocManager()->CreateDocument(fileName, wxDOC_SILENT); +} + void MainFrame::DoWindowMenu (int iMenuPosition, wxCommandEvent& event) {