Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

MainFrm.cpp

Go to the documentation of this file.
00001 // MainFrm.cpp : implementation of the CMainFrame class
00002 //
00003 
00004 #include "stdafx.h"
00005 #include "3dvis.h"
00006 
00007 #include "MainFrm.h"
00008 
00009 
00010 #include <string>
00011 using std::string;
00012 
00013 
00014 #ifdef _DEBUG
00015 #define new DEBUG_NEW
00016 #undef THIS_FILE
00017 static char THIS_FILE[] = __FILE__;
00018 #endif
00019 
00020 
00022 // CMainFrame
00023 
00024 IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
00025 
00026 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
00027         //{{AFX_MSG_MAP(CMainFrame)
00028         ON_WM_CREATE()
00029         //}}AFX_MSG_MAP
00030         ON_MESSAGE(MYWM_PROGRESS,OnProgress)
00031         ON_MESSAGE(MYWM_PROGRESS_MIN_MAX, OnProgressMinMax)
00032         ON_MESSAGE(MYWM_CHANGE_RENDERING, OnChangeRendering)
00033         ON_MESSAGE(MYWM_HIDE_BARS, OnHideBars)
00034         ON_MESSAGE(MYWM_SHOW_BAR, OnShowBar)
00035 
00036         ON_MESSAGE(MYWM_ABORT, OnAbortOperation)
00037         ON_MESSAGE(MYWM_SHOWABORT, OnShowAbort)
00038         ON_MESSAGE(MYWM_HIDEABORT, OnHideAbort)
00039         
00040 END_MESSAGE_MAP()
00041 
00042 static UINT indicators[] =
00043 {
00044         ID_SEPARATOR,           // status line indicator
00045         ID_INDICATOR_CAPS,
00046         ID_INDICATOR_NUM,
00047         ID_INDICATOR_SCRL,
00048 };
00049 
00050 
00052 // CMainFrame construction/destruction
00053 
00054 CMainFrame::CMainFrame()
00055 {
00056         // TODO: add member initialization code here
00057         
00058 }
00059 
00060 CMainFrame::~CMainFrame()
00061 {
00062 }
00063 
00064 
00065 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
00066 {
00067         if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
00068                 return -1;
00069         
00070         if (!m_wndToolBar.CreateEx(this) ||
00071                 !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
00072         {
00073                 TRACE0("Failed to create toolbar\n");
00074                 return -1;      // fail to create
00075         }
00076 
00077 
00078         if (!m_wndDlgBar.Create(this, IDR_MAINFRAME, 
00079                 CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
00080         {
00081                 TRACE0("Failed to create dialogbar\n");
00082                 return -1;              // fail to create
00083         }
00084 
00085         if (!m_wndVolumeBar.Create(this, IDR_VOLUMEFRAME,
00086                 CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR)) {
00087                 TRACE0("Failed to create volumebar\n");
00088                 return -1;
00089         }
00090 
00091 
00092         if (!m_wndReBar.Create(this) ||
00093                 !m_wndReBar.AddBar(&m_wndToolBar, NULL, NULL, RBBS_BREAK | RBBS_GRIPPERALWAYS) ||
00094                 !m_wndReBar.AddBar(&m_wndDlgBar, NULL, NULL, RBBS_NOGRIPPER) ||
00095                 !m_wndReBar.AddBar(&m_wndVolumeBar, NULL, NULL, RBBS_NOGRIPPER))
00096         {
00097                 TRACE0("Failed to create rebar\n");
00098                 return -1;      // fail to create
00099         }
00100 
00101 
00102         if (!m_wndStatusBar.Create(this) ||
00103                 !m_wndStatusBar.SetIndicators(indicators,
00104                   sizeof(indicators)/sizeof(UINT)))
00105         {
00106                 TRACE0("Failed to create status bar\n");
00107                 return -1;      // fail to create
00108         }
00109 
00110 
00111         m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
00112                 CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
00113 
00114         
00115 
00116         if (!m_wndVolumeDlg.Create(IDD_VOLUME_DIALOG, this)) {
00117                 TRACE0("Failed to create VolumeDialog!");
00118                 return -1;
00119         }
00120 
00121         if (!m_wndAbortDiag.Create(IDD_DIALOG_ABORT, this)) {
00122                 TRACE0("Failed to create AbortDialog!");
00123                 return -1;
00124         }
00125 
00126         m_wndAbortDiag.ShowWindow(SW_HIDE);
00127         
00128 
00129         m_wndDlgBar.ShowWindow(SW_HIDE);
00130         m_wndVolumeBar.ShowWindow(SW_HIDE);
00131 
00132 
00133         CMenu *optionsMenu = GetMenu()->GetSubMenu(1);
00134         optionsMenu->AppendMenu(MF_SEPARATOR);
00135 
00136         string name = "preset_";
00137         
00138 
00139         for (int i = 0; i < ((CMy3dvisApp *)AfxGetApp())->m_dNumPresets; i++) {
00140                 name[6] = i + '0';
00141                 optionsMenu->AppendMenu(MF_STRING, ID_PRESET_0 + i, name.c_str());
00142         }
00143 
00144         return 0;
00145 }
00146 
00147 
00148 
00149 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
00150 {
00151         if( !CFrameWnd::PreCreateWindow(cs) )
00152                 return FALSE;
00153         // TODO: Modify the Window class or styles here by modifying
00154         //  the CREATESTRUCT cs
00155 
00156         return TRUE;
00157 }
00158 
00159 
00160 
00161 
00162 LRESULT CMainFrame::OnHideBars(WPARAM wp, LPARAM lp) {
00163         m_wndDlgBar.ShowWindow(SW_HIDE);
00164         m_wndVolumeBar.ShowWindow(SW_HIDE);
00165         
00166         RecalcLayout();
00167         DrawMenuBar();
00168         return 0;
00169 }
00170 
00171 
00172 LRESULT CMainFrame::OnShowBar(WPARAM wp, LPARAM lp) {
00173         if (wp == 0)
00174                 m_wndDlgBar.ShowWindow(SW_NORMAL);
00175         else if (wp == 1)
00176                 m_wndVolumeBar.ShowWindow(SW_NORMAL);
00177 
00178         RecalcLayout();
00179         DrawMenuBar();
00180         return 0;
00181 }
00182 
00183 
00184 LRESULT CMainFrame::OnProgress(WPARAM wp, LPARAM lp) {
00185         m_wndStatusBar.OnProgress(wp); // pass to prog/status bar
00186         return 0;
00187 }
00188 
00189 
00190 LRESULT CMainFrame::OnProgressMinMax(WPARAM wp, LPARAM lp) {
00191         m_wndStatusBar.OnProgressMinMax(wp, lp);
00192         return 0;
00193 }
00194 
00195 
00196 LRESULT CMainFrame::OnChangeRendering(WPARAM wp, LPARAM lp) {
00197         //hide the toolbox
00198         if (wp == 0) {
00199                 m_wndVolumeBar.ShowWindow(SW_HIDE);
00200                 m_wndDlgBar.ShowWindow(SW_NORMAL);
00201                 
00202                 
00203                 GetMenu()->EnableMenuItem(ID_MENU_VOLUME, MF_GRAYED);
00204 
00205                 m_wndVolumeDlg.ShowWindow(SW_HIDE);
00206         }
00207         //show the toolbox
00208         else if (wp == 1) {
00209                 m_wndDlgBar.ShowWindow(SW_HIDE);
00210                 m_wndVolumeBar.ShowWindow(SW_NORMAL);
00211                 
00212                 
00213                 GetMenu()->EnableMenuItem(ID_MENU_VOLUME, MF_ENABLED);
00214 
00215 
00216                 if (!m_wndVolumeDlg.IsWindowVisible()) {
00217                         if (lp == 1)
00218                                 m_wndVolumeDlg.ShowWindow(SW_NORMAL);
00219                 }
00220                 else
00221                         m_wndVolumeDlg.ShowWindow(SW_HIDE);
00222         }
00223 
00224         RecalcLayout();
00225         DrawMenuBar();
00226         return 0;
00227 }
00228 
00229 
00230 
00231 
00232 void CMainFrame::OnAbortOperation(WPARAM wp, LPARAM lp) {
00233         m_wndAbortDiag.ShowWindow(SW_HIDE);
00234         ((CMy3dvisApp *)AfxGetApp())->Abort();
00235 }
00236 
00237 LRESULT CMainFrame::OnShowAbort(WPARAM wp, LPARAM lp) {
00238         m_wndAbortDiag.ShowWindow(SW_SHOWNORMAL);
00239         UpdateWindow();
00240         return 0;
00241 }
00242 
00243 
00244 LRESULT CMainFrame::OnHideAbort(WPARAM wp, LPARAM lp) {
00245         m_wndAbortDiag.ShowWindow(SW_HIDE);
00246         UpdateWindow();
00247         return 0;
00248 }
00249 
00250 
00252 // CMainFrame diagnostics
00253 
00254 #ifdef _DEBUG
00255 void CMainFrame::AssertValid() const
00256 {
00257         CFrameWnd::AssertValid();
00258 }
00259 
00260 void CMainFrame::Dump(CDumpContext& dc) const
00261 {
00262         CFrameWnd::Dump(dc);
00263 }
00264 
00265 #endif //_DEBUG

Generated on Thu Jan 23 12:32:15 2003 by doxygen1.3-rc2