Solution refactoring and restructuring, removed Boost dependency, removed unused tools
This commit is contained in:
165
src/UserInterface/PythonApplicationCursor.cpp
Normal file
165
src/UserInterface/PythonApplicationCursor.cpp
Normal file
@ -0,0 +1,165 @@
|
||||
#include "StdAfx.h"
|
||||
#include "PythonApplication.h"
|
||||
#include "resource.h"
|
||||
|
||||
bool CPythonApplication::CreateCursors()
|
||||
{
|
||||
NANOBEGIN
|
||||
m_bCursorVisible = TRUE;
|
||||
m_bLiarCursorOn = false;
|
||||
|
||||
int ResourceID[CURSOR_COUNT] =
|
||||
{
|
||||
IDC_CURSOR_NORMAL,
|
||||
IDC_CURSOR_ATTACK,
|
||||
IDC_CURSOR_ATTACK,
|
||||
IDC_CURSOR_TALK,
|
||||
IDC_CURSOR_NO,
|
||||
IDC_CURSOR_PICK,
|
||||
|
||||
IDC_CURSOR_DOOR,
|
||||
IDC_CURSOR_CHAIR,
|
||||
IDC_CURSOR_CHAIR, // Magic
|
||||
IDC_CURSOR_BUY, // Buy
|
||||
IDC_CURSOR_SELL, // Sell
|
||||
|
||||
IDC_CURSOR_CAMERA_ROTATE, // Camera Rotate
|
||||
IDC_CURSOR_HSIZE, // Horizontal Size
|
||||
IDC_CURSOR_VSIZE, // Vertical Size
|
||||
IDC_CURSOR_HVSIZE, // Horizontal & Vertical Size
|
||||
};
|
||||
|
||||
m_CursorHandleMap.clear();
|
||||
|
||||
for (int i = 0; i < CURSOR_COUNT; ++i)
|
||||
{
|
||||
HANDLE hCursor = LoadImage(ms_hInstance, MAKEINTRESOURCE(ResourceID[i]), IMAGE_CURSOR, 32, 32, LR_VGACOLOR);
|
||||
|
||||
if (NULL == hCursor)
|
||||
return false;
|
||||
|
||||
m_CursorHandleMap.insert(TCursorHandleMap::value_type(i, hCursor));
|
||||
}
|
||||
|
||||
NANOEND
|
||||
return true;
|
||||
}
|
||||
|
||||
void CPythonApplication::DestroyCursors()
|
||||
{
|
||||
TCursorHandleMap::iterator itor;
|
||||
for (itor = m_CursorHandleMap.begin(); itor != m_CursorHandleMap.end(); ++itor)
|
||||
{
|
||||
DestroyCursor((HCURSOR) itor->second);
|
||||
}
|
||||
}
|
||||
|
||||
void CPythonApplication::SetCursorVisible(BOOL bFlag, bool bLiarCursorOn)
|
||||
{
|
||||
m_bCursorVisible = bFlag;
|
||||
m_bLiarCursorOn = bLiarCursorOn;
|
||||
|
||||
if (CURSOR_MODE_HARDWARE == m_iCursorMode)
|
||||
{
|
||||
int iShowNum;
|
||||
if (FALSE == m_bCursorVisible)
|
||||
{
|
||||
do
|
||||
{
|
||||
iShowNum = ShowCursor(m_bCursorVisible);
|
||||
} while(iShowNum >= 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
iShowNum = ShowCursor(m_bCursorVisible);
|
||||
} while(iShowNum < 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CPythonApplication::GetCursorVisible()
|
||||
{
|
||||
return m_bCursorVisible;
|
||||
}
|
||||
|
||||
bool CPythonApplication::GetLiarCursorOn()
|
||||
{
|
||||
return m_bLiarCursorOn;
|
||||
}
|
||||
|
||||
int CPythonApplication::GetCursorMode()
|
||||
{
|
||||
return m_iCursorMode;
|
||||
}
|
||||
|
||||
BOOL CPythonApplication::__IsContinuousChangeTypeCursor(int iCursorNum)
|
||||
{
|
||||
switch (iCursorNum)
|
||||
{
|
||||
case CURSOR_SHAPE_NORMAL:
|
||||
case CURSOR_SHAPE_ATTACK:
|
||||
case CURSOR_SHAPE_TARGET:
|
||||
case CURSOR_SHAPE_MAGIC:
|
||||
case CURSOR_SHAPE_BUY:
|
||||
case CURSOR_SHAPE_SELL:
|
||||
return TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPythonApplication::SetCursorNum(int iCursorNum)
|
||||
{
|
||||
if (CURSOR_SHAPE_NORMAL == iCursorNum)
|
||||
{
|
||||
if (!__IsContinuousChangeTypeCursor(m_iCursorNum))
|
||||
{
|
||||
iCursorNum = m_iContinuousCursorNum;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (__IsContinuousChangeTypeCursor(m_iCursorNum)) // <20><><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>
|
||||
{
|
||||
m_iContinuousCursorNum = m_iCursorNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
}
|
||||
}
|
||||
|
||||
if (CURSOR_MODE_HARDWARE == m_iCursorMode)
|
||||
{
|
||||
TCursorHandleMap::iterator itor = m_CursorHandleMap.find(iCursorNum);
|
||||
if (m_CursorHandleMap.end() == itor)
|
||||
return FALSE;
|
||||
|
||||
HCURSOR hCursor = (HCURSOR)itor->second;
|
||||
|
||||
SetCursor(hCursor);
|
||||
m_hCurrentCursor = hCursor;
|
||||
}
|
||||
|
||||
m_iCursorNum = iCursorNum;
|
||||
|
||||
PyCallClassMemberFunc(m_poMouseHandler, "ChangeCursor", Py_BuildValue("(i)", m_iCursorNum));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CPythonApplication::SetCursorMode(int iMode)
|
||||
{
|
||||
switch (iMode)
|
||||
{
|
||||
case CURSOR_MODE_HARDWARE:
|
||||
m_iCursorMode = CURSOR_MODE_HARDWARE;
|
||||
ShowCursor(true);
|
||||
break;
|
||||
|
||||
case CURSOR_MODE_SOFTWARE:
|
||||
m_iCursorMode = CURSOR_MODE_SOFTWARE;
|
||||
SetCursor(NULL);
|
||||
ShowCursor(false);
|
||||
break;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user