- Mesaj
- 311
- Çözümler
- 14
- Beğeni
- 175
- Puan
- 769
- Ticaret Puanı
- 0
Minimap üzerindeki + - tuşlarına basmaya üşendim
İşin önemli kısmını m2dev'den Distraught isimli arkadaş yapmış zaten.
Sadece Python tarafında bir fonksiyonu override ettim.
uiminimap.py
İşin önemli kısmını m2dev'den Distraught isimli arkadaş yapmış zaten.Sadece Python tarafında bir fonksiyonu override ettim.
C++:
[B]EterPythonLib[/B]
PythonWindow.h
Add
virtual BOOL OnMouseWheel(int nLen);
after like
virtual BOOL OnMouseMiddleButtonUp();
In PythonWindow.cpp add the following function:
BOOL CWindow::OnMouseWheel(int nLen)
{
long lValue;
return PyCallClassMemberFunc(m_poHandler, "OnMouseWheel", Py_BuildValue("(i)", nLen), &lValue) && 0 != lValue;
}
In PythonWindowManager.h add
bool RunMouseWheel(int nLen);
after like
void RunMouseMiddleButtonUp(long x, long y);
In PythonWindowManager.cpp add the definition somewhere:
bool CWindowManager::RunMouseWheel(int nLen)
{
CWindow* pWin = GetPointWindow();
while (pWin)
{
if (pWin->OnMouseWheel(nLen))
return true;
pWin = pWin->GetParent();
}
return false;
}
[B]UserInterface[/B]
In PythonApplicationEvent.cpp override the following function:
void CPythonApplication::OnMouseWheel(int nLen)
{
UI::CWindowManager& rkWndMgr = UI::CWindowManager::Instance();
if (!rkWndMgr.RunMouseWheel(nLen))
{
CCameraManager& rkCmrMgr = CCameraManager::Instance();
if (CCamera* pkCmrCur = rkCmrMgr.GetCurrentCamera())
pkCmrCur->Wheel(nLen);
}
}
uiminimap.py
Python:
[/COLOR]
# class MiniMap(ui.ScriptWindow): içerisinde
# Herhangi bir fonksiyon isminin üstüne ekle:
def OnMouseWheel(self, nLen):
if nLen > 0:
self.ScaleUp()
return True
elif nLen < 0:
self.ScaleDown()
return True
return False