MiniMap dialog works as a child window now (#125)

This commit is contained in:
handama 2024-12-14 04:34:38 +08:00 committed by GitHub
parent 473eef415d
commit 51ec33af31
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 21 additions and 20 deletions

View file

@ -693,7 +693,7 @@ void CFinalSunDlg::UpdateDialogs(BOOL bOnlyMissionControl, BOOL bNoRepos)
m_view.m_isoview->UpdateDialog(!bNoRepos);
m_view.m_objectview->UpdateDialog();
m_view.m_minimap.UpdateView();
m_view.m_minimap->UpdateView();
if (tiles != NULL && tiledata != NULL && tiledata_count != NULL) {
m_view.m_browser->m_bar.Update();
@ -2008,7 +2008,7 @@ void CFinalSunDlg::OnFileNew()
// MessageBox("Repaired houses");
m_view.m_isoview->UpdateDialog(TRUE);
m_view.m_minimap.RedrawWindow();
m_view.m_minimap->RedrawWindow();
UpdateDialogs();
last_succeeded_operation = 11002;
@ -2204,7 +2204,7 @@ void CFinalSunDlg::UnloadAll()
tutorial.Clear();
g_data.Clear();
language.Clear();
m_view.m_minimap.reset();
DestroyWindow();
} catch (...) {
DestroyWindow();
@ -2247,7 +2247,7 @@ void CFinalSunDlg::OnOptionsSimpleview()
void CFinalSunDlg::OnOptionsShowminimap()
{
bMiniMapClosedByUser = FALSE;
this->m_view.m_minimap.UpdateView();
this->m_view.m_minimap->UpdateView();
}
void CFinalSunDlg::HideAllDialogs()
@ -2344,9 +2344,9 @@ void CFinalSunDlg::OnSize(UINT nType, int cx, int cy)
CDialog::OnSize(nType, cx, cy);
if (nType == SIZE_MINIMIZED) {
if (!bMiniMapClosedByUser) m_view.m_minimap.ShowWindow(SW_MINIMIZE);
if (!bMiniMapClosedByUser) m_view.m_minimap->ShowWindow(SW_MINIMIZE);
} else if (nType == SIZE_MAXIMIZED) {
if (!bMiniMapClosedByUser) m_view.m_minimap.ShowWindow(SW_RESTORE);
if (!bMiniMapClosedByUser) m_view.m_minimap->ShowWindow(SW_RESTORE);
}
RecalcLayout();

View file

@ -571,7 +571,7 @@ void CHouses::OnKillfocusColor()
// and minimap
Map->RedrawMinimap();
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_isoview->RedrawWindow();
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap.RedrawWindow();
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap->RedrawWindow();
}
void CHouses::OnKillfocusCredits()

View file

@ -1143,7 +1143,7 @@ void CIsoView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
CMyViewFrame& dlg = *(CMyViewFrame*)owner;
dlg.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
}
void CIsoView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
@ -1163,7 +1163,7 @@ void CIsoView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
CMyViewFrame& dlg = *(CMyViewFrame*)owner;
dlg.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
}
/*
@ -1233,7 +1233,7 @@ void CIsoView::OnMouseMove(UINT nFlags, CPoint point)
ShowCursor(TRUE);
CMyViewFrame& dlg = *(CMyViewFrame*)owner;
dlg.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
} else {
@ -2125,7 +2125,7 @@ void CIsoView::OnRButtonUp(UINT nFlags, CPoint point)
KillTimer(11);
ShowCursor(TRUE);
CMyViewFrame& dlg = *(CMyViewFrame*)owner;
dlg.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
}
@ -3327,7 +3327,7 @@ void CIsoView::OnLButtonUp(UINT nFlags, CPoint point)
}
CFinalSunDlg& dlg = *(CFinalSunDlg*)theApp.m_pMainWnd;
dlg.m_view.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_view.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
m_moved = FALSE;
@ -3385,7 +3385,7 @@ void CIsoView::OnSize(UINT nType, int cx, int cy)
updateFontScaled();
CMyViewFrame& dlg = *(CMyViewFrame*)owner;
dlg.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
UpdateScrollRanges();
@ -6513,7 +6513,7 @@ BOOL CIsoView::OnMouseWheel(UINT nFlags, short zDelta, CPoint ptScreen)
RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
CMyViewFrame& dlg = *(CMyViewFrame*)owner;
dlg.m_minimap.RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
dlg.m_minimap->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
return CView::OnMouseWheel(nFlags, zDelta, pt);
}

View file

@ -162,7 +162,7 @@ void CMapD::OnChange()
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_isoview->RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap.UpdateView();
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap->UpdateView();
char c[50];
itoa(dlg.m_Width, c, 10);

View file

@ -1248,7 +1248,7 @@ void CMapData::Pack(BOOL bCreatePreview, BOOL bCompression)
BITMAPINFO biinfo;
BYTE* lpDibData;
int pitch;
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap.DrawMinimap(&lpDibData, biinfo, pitch);
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_minimap->DrawMinimap(&lpDibData, biinfo, pitch);
m_mapfile.DeleteSection("PreviewPack");
m_mapfile.SetString("Preview", "Size", m_mapfile.GetString("Map", "Size"));

View file

@ -96,9 +96,10 @@ BOOL CMyViewFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
// the minimap is not a child window right now, but it is created here though
auto miniMapClass = AfxRegisterWndClass(0, m_hArrowCursor, static_cast<HBRUSH>(::GetStockObject(GRAY_BRUSH)));
m_minimap.CreateEx(0, miniMapClass, "Minimap", WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE, r, NULL, 0);
//m_minimap.Create(NULL, "Minimap", WS_OVERLAPPED)
m_minimap.UpdateView();
m_minimap = std::make_unique<CMiniMap>();
m_minimap->CreateEx(0, miniMapClass, "Minimap", WS_CAPTION | WS_VISIBLE | WS_CHILD, r, this, 0);
m_minimap->ModifyStyle(WS_MINIMIZEBOX | WS_MAXIMIZEBOX, 0);
m_minimap->UpdateView();
if (!m_statbar.CreateEx(this, SBARS_SIZEGRIP | SBT_TOOLTIPS)) return FALSE;

View file

@ -47,7 +47,7 @@ protected:
// attributes
public:
CMiniMap m_minimap;
std::unique_ptr<CMiniMap> m_minimap;
CStatusBar m_statbar;
CViewObjects* m_objectview;
CIsoView* m_isoview;