mirror of
https://github.com/isledecomp/LEGOIslandRebuilder.git
synced 2024-11-27 09:35:41 -05:00
window: cleaned interface
This commit is contained in:
parent
ed0d18779f
commit
269f7793b0
2 changed files with 44 additions and 60 deletions
|
@ -35,30 +35,18 @@ CRebuilderWindow::CRebuilderWindow()
|
||||||
// Create subtitle
|
// Create subtitle
|
||||||
m_cTopLevelSubtitle.Create(GetResourceString(IDS_SUBTITLE), WS_CHILD | WS_VISIBLE | SS_CENTER | SS_NOTIFY, CRect(), this, ID_SUBTITLE);
|
m_cTopLevelSubtitle.Create(GetResourceString(IDS_SUBTITLE), WS_CHILD | WS_VISIBLE | SS_CENTER | SS_NOTIFY, CRect(), this, ID_SUBTITLE);
|
||||||
|
|
||||||
// Create tab control
|
|
||||||
m_cTabCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(), this, ID_TABCTRL);
|
|
||||||
|
|
||||||
// Initialize common TCITEM
|
// Initialize common TCITEM
|
||||||
TCITEM tabItem;
|
TCITEM tabItem;
|
||||||
ZeroMemory(&tabItem, sizeof(tabItem));
|
ZeroMemory(&tabItem, sizeof(tabItem));
|
||||||
tabItem.mask |= TCIF_TEXT;
|
tabItem.mask |= TCIF_TEXT;
|
||||||
tabItem.pszText = new TCHAR[100];
|
tabItem.pszText = new TCHAR[100];
|
||||||
|
|
||||||
// Add "patches" tab
|
|
||||||
_tcscpy(tabItem.pszText, GetResourceString(IDS_PATCHES));
|
|
||||||
m_cTabCtrl.InsertItem(TAB_PATCHES, &tabItem);
|
|
||||||
|
|
||||||
// Add "music" tab
|
|
||||||
_tcscpy(tabItem.pszText, GetResourceString(IDS_MUSIC));
|
|
||||||
m_cTabCtrl.InsertItem(TAB_MUSIC, &tabItem);
|
|
||||||
|
|
||||||
delete [] tabItem.pszText;
|
delete [] tabItem.pszText;
|
||||||
|
|
||||||
// Create property grid
|
// Create property grid
|
||||||
m_cPatchGrid.Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW), _T("Patch Grid"), WS_CHILD | WS_VISIBLE, CRect(), &m_cTabCtrl, ID_PATCHGRID);
|
m_cPatchGrid.Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW), _T("Patch Grid"), WS_CHILD | WS_VISIBLE, CRect(), this, ID_PATCHGRID);
|
||||||
|
m_cPatchTitle.Create(CString(), WS_CHILD | WS_VISIBLE, CRect(), this, ID_PATCHTITLE);
|
||||||
m_cMusicLink.Create(_T("Coming back soon. If you need music replacement, download the old .NET version here."),
|
m_cPatchDesc.Create(CString(), WS_CHILD | WS_VISIBLE, CRect(), this, ID_PATCHDESC);
|
||||||
WS_CHILD | SS_CENTER, CRect(), &m_cTabCtrl, ID_MUSICLINK);
|
|
||||||
|
|
||||||
// Create run button
|
// Create run button
|
||||||
m_cRunBtn.Create(GetResourceString(IDS_RUN), WS_CHILD | WS_VISIBLE, CRect(), this, ID_RUN);
|
m_cRunBtn.Create(GetResourceString(IDS_RUN), WS_CHILD | WS_VISIBLE, CRect(), this, ID_RUN);
|
||||||
|
@ -143,12 +131,7 @@ void CRebuilderWindow::OnKillClick()
|
||||||
|
|
||||||
void CRebuilderWindow::OnSubtitleClick()
|
void CRebuilderWindow::OnSubtitleClick()
|
||||||
{
|
{
|
||||||
ShellExecute(NULL, _T("open"), _T("http://itsmattkc.com/"), NULL, NULL, SW_SHOWNORMAL);
|
ShellExecute(NULL, _T("open"), _T("https://mattkc.com/"), NULL, NULL, SW_SHOWNORMAL);
|
||||||
}
|
|
||||||
|
|
||||||
void CRebuilderWindow::OnMusicLinkClick()
|
|
||||||
{
|
|
||||||
ShellExecute(NULL, _T("open"), _T("http://github.com/itsmattkc/LEGOIslandRebuilder/releases"), NULL, NULL, SW_SHOWNORMAL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRebuilderWindow::OnSize(UINT type, int width, int height)
|
void CRebuilderWindow::OnSize(UINT type, int width, int height)
|
||||||
|
@ -156,30 +139,39 @@ void CRebuilderWindow::OnSize(UINT type, int width, int height)
|
||||||
const int padding = m_nFontHeight/2;
|
const int padding = m_nFontHeight/2;
|
||||||
const int dblPadding = padding * 2;
|
const int dblPadding = padding * 2;
|
||||||
|
|
||||||
// Top components
|
int y, h;
|
||||||
m_cTopLevelTitle.SetWindowPos(NULL, 0, padding, width, m_nFontHeight*2, 0);
|
|
||||||
|
|
||||||
int topComponentEnd = padding+m_nFontHeight*2;
|
// Top labels
|
||||||
m_cTopLevelSubtitle.SetWindowPos(NULL, 0, topComponentEnd, width, m_nFontHeight, 0);
|
y = padding;
|
||||||
topComponentEnd += m_nFontHeight;
|
h = m_nFontHeight*2;
|
||||||
|
|
||||||
// Bottom components
|
m_cTopLevelTitle.SetWindowPos(NULL, 0, y, width, h, 0);
|
||||||
|
|
||||||
|
y += h;
|
||||||
|
h = m_nFontHeight;
|
||||||
|
|
||||||
|
m_cTopLevelSubtitle.SetWindowPos(NULL, 0, y, width, h, 0);
|
||||||
|
|
||||||
|
y += h;
|
||||||
|
y += padding;
|
||||||
|
|
||||||
|
// Bottom buttons
|
||||||
const int btnHeight = m_nFontHeight*18/10;
|
const int btnHeight = m_nFontHeight*18/10;
|
||||||
int bottomComponentStart = height - btnHeight - padding;
|
int btnY = height - btnHeight - padding;
|
||||||
int bottomComponentWidth = width - dblPadding;
|
int btnWidth = width - dblPadding;
|
||||||
m_cRunBtn.SetWindowPos(NULL, padding, bottomComponentStart, bottomComponentWidth, btnHeight, 0);
|
m_cRunBtn.SetWindowPos(NULL, padding, btnY, btnWidth, btnHeight, 0);
|
||||||
m_cKillBtn.SetWindowPos(NULL, padding, bottomComponentStart, bottomComponentWidth, btnHeight, 0);
|
m_cKillBtn.SetWindowPos(NULL, padding, btnY, btnWidth, btnHeight, 0);
|
||||||
|
|
||||||
// Center components
|
h = m_nFontHeight*4;
|
||||||
int centerHeight = bottomComponentStart - topComponentEnd;
|
int patchDescY = btnY - h;
|
||||||
m_cTabCtrl.SetWindowPos(NULL, padding, topComponentEnd + padding, bottomComponentWidth, centerHeight - dblPadding, 0);
|
m_cPatchDesc.SetWindowPos(NULL, padding, patchDescY, btnWidth, h, 0);
|
||||||
|
|
||||||
// Tabs
|
h = m_nFontHeight;
|
||||||
RECT tabClientRect;
|
patchDescY -= h;
|
||||||
m_cTabCtrl.GetClientRect(&tabClientRect);
|
m_cPatchTitle.SetWindowPos(NULL, padding, patchDescY, btnWidth, h, 0);
|
||||||
m_cTabCtrl.AdjustRect(FALSE, &tabClientRect);
|
|
||||||
m_cPatchGrid.SetWindowPos(NULL, tabClientRect.left, tabClientRect.top, tabClientRect.right - tabClientRect.left, tabClientRect.bottom - tabClientRect.top, 0);
|
// Consume remaining space with patch grid
|
||||||
m_cMusicLink.SetWindowPos(NULL, tabClientRect.left, tabClientRect.top, tabClientRect.right - tabClientRect.left, tabClientRect.bottom - tabClientRect.top, 0);
|
m_cPatchGrid.SetWindowPos(NULL, padding, y, btnWidth, patchDescY - y - padding, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRebuilderWindow::OnGetMinMaxInfo(MINMAXINFO *info)
|
void CRebuilderWindow::OnGetMinMaxInfo(MINMAXINFO *info)
|
||||||
|
@ -191,12 +183,13 @@ void CRebuilderWindow::OnGetMinMaxInfo(MINMAXINFO *info)
|
||||||
info->ptMinTrackSize.y = m_nFontHeight * minimumWindowHeight;
|
info->ptMinTrackSize.y = m_nFontHeight * minimumWindowHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CRebuilderWindow::OnTabSelChange(NMHDR *pNMHDR, LRESULT *pResult)
|
LRESULT CRebuilderWindow::OnGridSelChange(WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
int tab = m_cTabCtrl.GetCurSel();
|
HITEM hItem = (HITEM) wParam;
|
||||||
|
|
||||||
m_cPatchGrid.ShowWindow((tab == TAB_PATCHES) ? SW_SHOWNORMAL : SW_HIDE);
|
m_cPatchTitle.SetWindowText(m_cPatchGrid.GetItemText(hItem).c_str());
|
||||||
m_cMusicLink.ShowWindow((tab == TAB_MUSIC) ? SW_SHOWNORMAL : SW_HIDE);
|
m_cPatchDesc.SetWindowText(m_cPatchGrid.GetItemDescription(hItem));
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CRebuilderWindow::SetFont(HWND child, LPARAM font)
|
BOOL CRebuilderWindow::SetFont(HWND child, LPARAM font)
|
||||||
|
@ -247,6 +240,7 @@ void CRebuilderWindow::SetGUIFonts()
|
||||||
SetFont(m_cTopLevelTitle.GetSafeHwnd(), (LPARAM)bold);
|
SetFont(m_cTopLevelTitle.GetSafeHwnd(), (LPARAM)bold);
|
||||||
SetFont(m_cRunBtn.GetSafeHwnd(), (LPARAM)bold);
|
SetFont(m_cRunBtn.GetSafeHwnd(), (LPARAM)bold);
|
||||||
SetFont(m_cKillBtn.GetSafeHwnd(), (LPARAM)bold);
|
SetFont(m_cKillBtn.GetSafeHwnd(), (LPARAM)bold);
|
||||||
|
SetFont(m_cPatchTitle.GetSafeHwnd(), (LPARAM)bold);
|
||||||
|
|
||||||
// Create link variant for subtitle
|
// Create link variant for subtitle
|
||||||
lf.lfWeight = FW_NORMAL;
|
lf.lfWeight = FW_NORMAL;
|
||||||
|
@ -282,6 +276,5 @@ BEGIN_MESSAGE_MAP(CRebuilderWindow, super)
|
||||||
ON_BN_CLICKED(ID_RUN, OnRunClick)
|
ON_BN_CLICKED(ID_RUN, OnRunClick)
|
||||||
ON_BN_CLICKED(ID_KILL, OnKillClick)
|
ON_BN_CLICKED(ID_KILL, OnKillClick)
|
||||||
ON_BN_CLICKED(ID_SUBTITLE, OnSubtitleClick)
|
ON_BN_CLICKED(ID_SUBTITLE, OnSubtitleClick)
|
||||||
ON_BN_CLICKED(ID_MUSICLINK, OnMusicLinkClick)
|
ON_MESSAGE(WM_PG_SELECTIONCHANGED, OnGridSelChange)
|
||||||
ON_NOTIFY(TCN_SELCHANGE, ID_TABCTRL, OnTabSelChange)
|
|
||||||
END_MESSAGE_MAP()
|
END_MESSAGE_MAP()
|
||||||
|
|
19
src/window.h
19
src/window.h
|
@ -21,13 +21,11 @@ public:
|
||||||
|
|
||||||
afx_msg void OnSubtitleClick();
|
afx_msg void OnSubtitleClick();
|
||||||
|
|
||||||
afx_msg void OnMusicLinkClick();
|
|
||||||
|
|
||||||
afx_msg void OnSize(UINT type, int width, int height);
|
afx_msg void OnSize(UINT type, int width, int height);
|
||||||
|
|
||||||
afx_msg void OnGetMinMaxInfo(MINMAXINFO *info);
|
afx_msg void OnGetMinMaxInfo(MINMAXINFO *info);
|
||||||
|
|
||||||
afx_msg void OnTabSelChange(NMHDR* pNMHDR, LRESULT* pResult);
|
afx_msg LRESULT OnGridSelChange(WPARAM, LPARAM);
|
||||||
|
|
||||||
static BOOL CALLBACK SetFont(HWND child, LPARAM font);
|
static BOOL CALLBACK SetFont(HWND child, LPARAM font);
|
||||||
|
|
||||||
|
@ -43,31 +41,24 @@ private:
|
||||||
enum {
|
enum {
|
||||||
ID_RUN = 1000,
|
ID_RUN = 1000,
|
||||||
ID_KILL,
|
ID_KILL,
|
||||||
ID_TABCTRL,
|
|
||||||
ID_SUBTITLE,
|
ID_SUBTITLE,
|
||||||
ID_PATCHGRID,
|
ID_PATCHGRID,
|
||||||
ID_MUSICLINK,
|
ID_PATCHTITLE,
|
||||||
|
ID_PATCHDESC,
|
||||||
ID_COUNT
|
ID_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Tab {
|
|
||||||
TAB_PATCHES,
|
|
||||||
TAB_MUSIC
|
|
||||||
};
|
|
||||||
|
|
||||||
UINT m_nFontHeight;
|
UINT m_nFontHeight;
|
||||||
|
|
||||||
CStatic m_cTopLevelTitle;
|
CStatic m_cTopLevelTitle;
|
||||||
CLinkStatic m_cTopLevelSubtitle;
|
CLinkStatic m_cTopLevelSubtitle;
|
||||||
|
|
||||||
CTabCtrl m_cTabCtrl;
|
|
||||||
|
|
||||||
CButton m_cRunBtn;
|
CButton m_cRunBtn;
|
||||||
CButton m_cKillBtn;
|
CButton m_cKillBtn;
|
||||||
|
|
||||||
PatchGrid m_cPatchGrid;
|
PatchGrid m_cPatchGrid;
|
||||||
|
CStatic m_cPatchTitle;
|
||||||
CLinkStatic m_cMusicLink;
|
CStatic m_cPatchDesc;
|
||||||
|
|
||||||
std::vector<HANDLE> m_lProcesses;
|
std::vector<HANDLE> m_lProcesses;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue