1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 #include "windowstool.h"
10 #include "compiler_specific_func.h"
11 #include "layoutmanager.h"
18 class DlgVersion : public LayoutManager
24 DlgVersion(HWND i_hwnd)
25 : LayoutManager(i_hwnd),
31 BOOL wmInitDialog(HWND /* i_focus */, LPARAM i_lParam)
33 TCHAR *mayudVersion = (TCHAR*)i_lParam;
34 setSmallIcon(m_hwnd, IDI_ICON_mayu);
35 setBigIcon(m_hwnd, IDI_ICON_mayu);
37 _TCHAR modulebuf[1024];
38 CHECK_TRUE( GetModuleFileName(g_hInst, modulebuf,
39 NUMBER_OF(modulebuf)) );
42 _sntprintf(buf, NUMBER_OF(buf), loadString(IDS_version).c_str(),
52 loadString(IDS_homepage).c_str(),
53 (_T(LOGNAME) _T("@") + toLower(_T(COMPUTERNAME))).c_str(),
54 _T(__DATE__) _T(" ") _T(__TIME__),
55 getCompilerVersionString().c_str(),
59 Edit_SetText(GetDlgItem(m_hwnd, IDC_EDIT_builtBy), buf);
62 typedef LayoutManager LM;
64 addItem(GetDlgItem(m_hwnd, IDC_STATIC_mayuIcon),
65 LM::ORIGIN_LEFT_EDGE, LM::ORIGIN_TOP_EDGE,
66 LM::ORIGIN_LEFT_EDGE, LM::ORIGIN_TOP_EDGE);
67 addItem(GetDlgItem(m_hwnd, IDC_EDIT_builtBy),
68 LM::ORIGIN_LEFT_EDGE, LM::ORIGIN_TOP_EDGE,
69 LM::ORIGIN_RIGHT_EDGE, LM::ORIGIN_BOTTOM_EDGE);
70 addItem(GetDlgItem(m_hwnd, IDC_BUTTON_download),
71 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE,
72 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE);
73 addItem(GetDlgItem(m_hwnd, IDOK),
74 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE,
75 LM::ORIGIN_CENTER, LM::ORIGIN_BOTTOM_EDGE);
76 restrictSmallestSize();
84 CHECK_TRUE( EndDialog(m_hwnd, 0) );
89 BOOL wmCommand(int /* i_notifyCode */, int i_id, HWND /* i_hwndControl */)
95 CHECK_TRUE( EndDialog(m_hwnd, 0) );
98 case IDC_BUTTON_download:
100 ShellExecute(NULL, NULL, loadString(IDS_homepage).c_str(),
101 NULL, NULL, SW_SHOWNORMAL);
102 CHECK_TRUE( EndDialog(m_hwnd, 0) );
113 INT_PTR CALLBACK dlgVersion_dlgProc(
115 BOOL CALLBACK dlgVersion_dlgProc(
117 HWND i_hwnd, UINT i_message, WPARAM i_wParam, LPARAM i_lParam)
120 getUserData(i_hwnd, &wc);
125 wc = setUserData(i_hwnd, new DlgVersion(i_hwnd));
126 return wc->wmInitDialog(reinterpret_cast<HWND>(i_wParam), i_lParam);
132 return wc->wmCommand(HIWORD(i_wParam), LOWORD(i_wParam),
133 reinterpret_cast<HWND>(i_lParam));
135 return wc->wmClose();
140 return wc->defaultWMHandler(i_message, i_wParam, i_lParam);