-
Notifications
You must be signed in to change notification settings - Fork 0
/
AppWnd.cpp
68 lines (52 loc) · 1.66 KB
/
AppWnd.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
////////////////////////////////////////////////////////////////////////////////
//! \file AppWnd.cpp
//! \brief The AppWnd class definition.
//! \author Chris Oldwood
#include "Common.hpp"
#include "AppWnd.hpp"
#include "Model.hpp"
#include <Core/StringUtils.hpp>
#include "ExecuteToolCmd.hpp"
////////////////////////////////////////////////////////////////////////////////
//! Constructor.
AppWnd::AppWnd(WCL::IMsgThread& thread, WCL::ICmdController& controller, Model& model)
: CDlgFrame(IDR_APPICON, m_mainDlg, false)
, m_mainDlg(*this, controller, model)
, m_toolbar(thread, controller)
, m_tools(model.m_tools)
{
}
////////////////////////////////////////////////////////////////////////////////
//! Destructor.
AppWnd::~AppWnd()
{
}
////////////////////////////////////////////////////////////////////////////////
//! Handle window creation.
void AppWnd::OnCreate(const CRect& clientRect)
{
//
// Create and attach the components.
//
m_accelerators.LoadRsc(IDR_APPACCEL);
Accel(&m_accelerators);
m_menu.LoadRsc(IDR_APPMENU);
Menu(&m_menu);
// m_toolbar.Create(*this, IDC_TOOL_BAR, clientRect);
// ToolBar(&m_toolbar);
m_statusbar.Create(*this, IDC_STATUS_BAR, clientRect);
StatusBar(&m_statusbar);
m_mainDlg.RunModeless(*this);
ActiveDlg(&m_mainDlg);
rebuildToolsMenu();
// Call base class.
CDlgFrame::OnCreate(clientRect);
}
////////////////////////////////////////////////////////////////////////////////
//! Rebuild the custom tools menu.
void AppWnd::rebuildToolsMenu()
{
const bool hostSelected = m_mainDlg.isHostSelected();
CPopupMenu hostMenu = m_menu.GetItemPopup(1);
ExecuteToolCmd::rebuildToolsMainMenu(m_tools, hostMenu, hostSelected);
}