1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r
9 #include "windowstool.h"
\r
10 #include "compiler_specific_func.h"
\r
11 #include "layoutmanager.h"
\r
14 #include <windowsx.h>
\r
18 class DlgVersion : public LayoutManager
\r
24 DlgVersion(HWND i_hwnd)
\r
25 : LayoutManager(i_hwnd),
\r
30 BOOL wmInitDialog(HWND /* i_focus */, LPARAM i_lParam) {
\r
31 TCHAR *mayudVersion = (TCHAR*)i_lParam;
\r
32 setSmallIcon(m_hwnd, IDI_ICON_mayu);
\r
33 setBigIcon(m_hwnd, IDI_ICON_mayu);
\r
35 _TCHAR modulebuf[1024];
\r
36 CHECK_TRUE( GetModuleFileName(g_hInst, modulebuf,
\r
37 NUMBER_OF(modulebuf)) );
\r
40 _sntprintf(buf, NUMBER_OF(buf), loadString(IDS_version).c_str(),
\r
49 loadString(IDS_homepage).c_str(),
\r
50 (_T(LOGNAME) _T("@") + toLower(_T(COMPUTERNAME))).c_str(),
\r
51 _T(__DATE__) _T(" ") _T(__TIME__),
\r
52 getCompilerVersionString().c_str(),
\r
56 Edit_SetText(GetDlgItem(m_hwnd, IDC_EDIT_builtBy), buf);
\r
58 // set layout manager
\r
59 typedef LayoutManager LM;
\r
61 addItem(GetDlgItem(m_hwnd, IDC_STATIC_mayuIcon),
\r
62 LM::ORIGIN_LEFT_EDGE, LM::ORIGIN_TOP_EDGE,
\r
63 LM::ORIGIN_LEFT_EDGE, LM::ORIGIN_TOP_EDGE);
\r
64 addItem(GetDlgItem(m_hwnd, IDC_EDIT_builtBy),
\r
65 LM::ORIGIN_LEFT_EDGE, LM::ORIGIN_TOP_EDGE,
\r
66 LM::ORIGIN_RIGHT_EDGE, LM::ORIGIN_BOTTOM_EDGE);
\r
67 addItem(GetDlgItem(m_hwnd, IDC_BUTTON_download),
\r
68 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE,
\r
69 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE);
\r
70 addItem(GetDlgItem(m_hwnd, IDOK),
\r
71 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE,
\r
72 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE);
\r
73 restrictSmallestSize();
\r
80 CHECK_TRUE( EndDialog(m_hwnd, 0) );
\r
85 BOOL wmCommand(int /* i_notifyCode */, int i_id, HWND /* i_hwndControl */) {
\r
88 CHECK_TRUE( EndDialog(m_hwnd, 0) );
\r
91 case IDC_BUTTON_download: {
\r
92 ShellExecute(NULL, NULL, loadString(IDS_homepage).c_str(),
\r
93 NULL, NULL, SW_SHOWNORMAL);
\r
94 CHECK_TRUE( EndDialog(m_hwnd, 0) );
\r
105 INT_PTR CALLBACK dlgVersion_dlgProc(
\r
107 BOOL CALLBACK dlgVersion_dlgProc(
\r
109 HWND i_hwnd, UINT i_message, WPARAM i_wParam, LPARAM i_lParam)
\r
112 getUserData(i_hwnd, &wc);
\r
114 switch (i_message) {
\r
115 case WM_INITDIALOG:
\r
116 wc = setUserData(i_hwnd, new DlgVersion(i_hwnd));
\r
117 return wc->wmInitDialog(reinterpret_cast<HWND>(i_wParam), i_lParam);
\r
120 switch (i_message) {
\r
122 return wc->wmCommand(HIWORD(i_wParam), LOWORD(i_wParam),
\r
123 reinterpret_cast<HWND>(i_lParam));
\r
125 return wc->wmClose();
\r
130 return wc->defaultWMHandler(i_message, i_wParam, i_lParam);
\r