| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- /*
- FinalSun/FinalAlert 2 Mission Editor
- Copyright (C) 1999-2024 Electronic Arts, Inc.
- Authored by Matthias Wagner
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
- // MyViewFrame.cpp: Implementierungsdatei
- //
- #include "stdafx.h"
- #include "FinalSun.h"
- #include "MyViewFrame.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CMyViewFrame
- IMPLEMENT_DYNCREATE(CMyViewFrame, CFrameWnd)
- CMyViewFrame::CMyViewFrame()
- {
- m_isoview=0;
- }
- CMyViewFrame::~CMyViewFrame()
- {
- }
- BEGIN_MESSAGE_MAP(CMyViewFrame, CFrameWnd)
- //{{AFX_MSG_MAP(CMyViewFrame)
- ON_WM_SYSCOMMAND()
- ON_WM_SIZE()
- ON_WM_GETMINMAXINFO()
- ON_WM_KEYDOWN()
- ON_WM_KEYUP()
- ON_WM_CHAR()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // Behandlungsroutinen für Nachrichten CMyViewFrame
- BOOL CMyViewFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
- {
- SIZE z;
- z.cx=200;
- z.cy=200;
- CRect r;
- r.right=200;
- r.bottom=200;
-
- if(!m_Splitter.CreateStatic(this,1,2)) return FALSE;
-
- if(!m_Splitter.CreateView(0,0,
- RUNTIME_CLASS(CViewObjects),
- z,
- pContext)) return FALSE;
- if(!m_Splitter.CreateView(0,1,
- RUNTIME_CLASS(CRightFrame),
- z,
- pContext)) return FALSE;
- OutputDebugString("CMyViewFrame::OnCreateClient(): windows created\n");
- m_rightFrame=(CRightFrame*)m_Splitter.GetPane(0,1);
-
- m_isoview=(CIsoView*)m_rightFrame->m_Splitter.GetPane(0,0);
- m_isoview->owner=this;
- m_browser=(CTileSetBrowserFrame*)m_rightFrame->m_Splitter.GetPane(1,0);
- m_objectview=(CViewObjects*)m_Splitter.GetPane(0,0);
- // 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();
-
- if(!m_statbar.CreateEx(this,SBARS_SIZEGRIP | SBT_TOOLTIPS)) return FALSE;
-
- return CFrameWnd::OnCreateClient(lpcs, pContext);
- }
- void CMyViewFrame::OnSysCommand(UINT nID, LPARAM lParam)
- {
- if(nID==SC_CLOSE)
- {
- // ok now just hide the window
- ShowWindow(SW_HIDE);
- return;
- }
- CFrameWnd::OnSysCommand(nID, lParam);
- }
- void CMyViewFrame::OnSize(UINT nType, int cx, int cy)
- {
- // we now check if our frame window has already created its child windows
- // this is true at the second OnSize
- // TODO: replace static
- static BOOL wasHere=FALSE;
- if(wasHere==FALSE)
- {
- wasHere=TRUE;
- return;
- }
- CFrameWnd::OnSize(nType, cx, cy);
- CStatusBarCtrl& stat=m_statbar.GetStatusBarCtrl();
-
- m_statbar.ShowWindow(SW_SHOW);
- CRect sr;
- GetWindowRect(sr);
- //int Widths[]={sr.right-80,80,-1};
- int Widths[]={sr.right-sr.left-130,-1};
- stat.SetParts(2, Widths);
- stat.SetSimple(FALSE);
- m_statbar.ShowWindow(SW_SHOW);
- }
- void CMyViewFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
- {
- lpMMI->ptMinTrackSize.x=260;
- lpMMI->ptMinTrackSize.y=150;
- CFrameWnd::OnGetMinMaxInfo(lpMMI);
- }
- void CMyViewFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
- {
- m_isoview->SendMessage(WM_KEYDOWN, nChar, nFlags);
- // CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);
- }
- void CMyViewFrame::PostNcDestroy()
- {
- // do not call CFrameWnd::PostNcDestroy(), as long as MyViewFrame is not on the heap!
- // CFrameWnd::PostNcDestroy();
- }
- void CMyViewFrame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
- {
- // TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen
-
- // CFrameWnd::OnKeyUp(nChar, nRepCnt, nFlags);
- }
- void CMyViewFrame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
- {
- // TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen
-
- // CFrameWnd::OnChar(nChar, nRepCnt, nFlags);
- }
|