00001
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
00023
00024 IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
00025
00026 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
00027
00028 ON_WM_CREATE()
00029
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,
00045 ID_INDICATOR_CAPS,
00046 ID_INDICATOR_NUM,
00047 ID_INDICATOR_SCRL,
00048 };
00049
00050
00052
00053
00054 CMainFrame::CMainFrame()
00055 {
00056
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;
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;
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;
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;
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
00154
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);
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
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
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
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