Exemplo n.º 1
0
bool ApResourceUnit::SetRowColumnType(eRowColumnType rcType)
{
	if (rcType == m_RowColumnType)
		return true;

	MkStr ssPrefix;
	switch (rcType)
	{
	case eRCT_None: break;
	case eRCT_Light: ssPrefix = L"ResIndexLight_"; break;
	case eRCT_Dark: ssPrefix = L"ResIndexDark_"; break;
	}

	if (ssPrefix.Empty())
	{
		if (m_SceneNode != NULL)
		{
			m_SceneNode->DeletePanel(L"Row");
			m_SceneNode->DeletePanel(L"Column");
		}
		m_RowColumnType = rcType;
		return true;
	}

	bool ok =
		(_AddImagePanelToLeftTop(L"Row", m_ImagePath, ssPrefix + MkStr(m_Type.GetRow()), -0.1f) &&
		_AddImagePanelToRightBottom(L"Column", m_ImagePath, ssPrefix + MkStr(m_Type.GetColumn()), -0.1f));
	if (ok)
	{
		m_RowColumnType = rcType;
	}
	return ok;
}
Exemplo n.º 2
0
HWND MkWebBrowser::Open(const MkStr& pageUrl, int posX, int posY, int width, int height)
{
	if (pageUrl.Empty())
		return NULL;

	HRESULT hr;
	IWebBrowser2* pWebBrowser = NULL;
	VARIANT vtHeader2 = {0};
	VARIANT vtTarget2 = {0};
	VARIANT vtEmpty2 = {0};

	vtHeader2.vt = VT_BSTR;
	vtHeader2.bstrVal = SysAllocString(L"Content-Type: application/x-www-form-urlencoded\r\n");

	vtTarget2.vt = VT_BSTR;
	vtTarget2.bstrVal = SysAllocString(L"_top");

	VariantInit(&vtEmpty2);

	CoInitialize(NULL);
	CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&pWebBrowser);

	pWebBrowser->put_Width((long)width);
	pWebBrowser->put_Height((long)height);
	pWebBrowser->put_Left((long)posX);
	pWebBrowser->put_Top((long)posY);
	pWebBrowser->put_MenuBar(VARIANT_FALSE);
	pWebBrowser->put_ToolBar(VARIANT_FALSE);
	pWebBrowser->put_AddressBar(VARIANT_FALSE);
	pWebBrowser->put_StatusBar(VARIANT_FALSE);

	BSTR cBuf = SysAllocString(pageUrl.GetPtr());
	hr = pWebBrowser->Navigate(cBuf, &vtEmpty2, &vtTarget2, &vtEmpty2, &vtHeader2);

	SysFreeString(cBuf);
	SysFreeString(vtHeader2.bstrVal);
	SysFreeString(vtTarget2.bstrVal);

	HWND exh = NULL;
	if (SUCCEEDED(hr))
	{
		pWebBrowser->put_Visible(VARIANT_TRUE);
		pWebBrowser->get_HWND((long*)&exh);
	}
	else
	{
		pWebBrowser->Quit();
	}

	pWebBrowser->Release();

	CoUninitialize();
	return exh;
}
void MkStaticResourceContainer::LoadTextNode(const MkDataNode* dataNode)
{
	if (dataNode != NULL)
	{
		MkStr filePath;
		if (dataNode->GetData(L"TextNode", filePath, 0) && (!filePath.Empty()))
		{
			LoadTextNode(filePath);
		}
	}
}
Exemplo n.º 4
0
// MkPrimitiveDataType
ePrimitiveDataType MkPrimitiveDataType::GetEnum(const MkStr& tag)
{
	if (!tag.Empty())
	{
		switch (tag.GetAt(0))
		{
		case L'b':
			{
				if (tag == m_TypeTag[ePDT_Bool]) return ePDT_Bool;
			}
			break;
		case L'i':
			{
				if (tag == m_TypeTag[ePDT_Int]) return ePDT_Int;
				else if (tag == m_TypeTag[ePDT_Int2]) return ePDT_Int2;
			}
			break;
		case L'u':
			{
				if (tag == m_TypeTag[ePDT_UnsignedInt]) return ePDT_UnsignedInt;
			}
			break;
		case L'f':
			{
				if (tag == m_TypeTag[ePDT_Float]) return ePDT_Float;
			}
			break;
		case L'v':
			{
				if (tag == m_TypeTag[ePDT_Vec3]) return ePDT_Vec3;
				else if (tag == m_TypeTag[ePDT_Vec2]) return ePDT_Vec2;
			}
			break;
		case L's':
			{
				if (tag == m_TypeTag[ePDT_Str]) return ePDT_Str;
			}
			break;
		}
	}
	return ePDT_Undefined;
}
Exemplo n.º 5
0
void MkCursorManager::SetUp(const MkDataNode* node)
{
	if (node == NULL)
		return;

	MK_DEV_PANEL.MsgToLog(L"< Cursor >", false);

	for (unsigned int i=0; i<eMaxType; ++i)
	{
		const MkDataNode* childNode = node->GetChildNode(CURSOR_NAME[i]);
		if (childNode != NULL)
		{
			MkStr filePath;
			MK_CHECK(childNode->GetData(FILE_PATH_KEY, filePath, 0) && (!filePath.Empty()), L"MkCursorManager에 등록될 " + CURSOR_NAME[i].GetString() + L" 노드의 " + FILE_PATH_KEY.GetString() + L" 항목 오류")
				continue;

			MkInt2 hotspot;
			childNode->GetData(HOTSPOT_KEY, hotspot, 0);
			
			RegisterCursor(static_cast<eCursorType>(i), filePath, static_cast<unsigned int>(hotspot.x), static_cast<unsigned int>(hotspot.y));
		}
	}
void MkCheckBoxControlNode::_SetCaption(const MkArray<MkHashStr>& textNode, const MkStr& caption)
{
	if (textNode.Empty() || (!MK_STATIC_RES.TextNodeExist(textNode)))
	{
		RemoveChildNode(CaptionNodeName);
		m_CaptionString.Clear();
		return;
	}

	// MkWindowTagNode 사용
	MkWindowTagNode* node = NULL;
	if (ChildExist(CaptionNodeName))
	{
		node = dynamic_cast<MkWindowTagNode*>(GetChildNode(CaptionNodeName));
	}
	else
	{
		node = MkWindowTagNode::CreateChildNode(this, CaptionNodeName);
		if (node != NULL)
		{
			node->SetAlignmentPivotIsWindowRect(true);
			node->SetAlignmentPosition(eRAP_RMostCenter);
			node->SetAlignmentOffset(MkFloat2(node->GetLengthOfBetweenIconAndText(), 0.f));
		}
	}

	if (node != NULL)
	{
		m_CaptionString = caption;
		if (caption.Empty())
		{
			node->SetTextName(textNode);
		}
		else
		{
			node->SetTextName(textNode, caption);
		}
	}
}
Exemplo n.º 7
0
bool MkCheatMessage::__ExcuteMsg(const MkStr& inputMsg, MkStr& resultMsg) const
{
	if (inputMsg.Empty())
		return false;

	MkStr msgCopy = inputMsg;
	MkStringTableForParser stringTable;
	stringTable.BuildStringTable(msgCopy);

	msgCopy.RemoveKeyword(MkStr::CR);

	bool result = false;

	// 라인별 분리
	MkArray<MkStr> lines;
	unsigned int lineCount = msgCopy.Tokenize(lines, MkStr::LF);
	MK_INDEXING_LOOP(lines, i)
	{
		MkArray<MkStr> tokens;
		MkStr command;
		unsigned int tokenCount = lines[i].Tokenize(tokens);
		if (tokenCount > 0) // 유효문자가 존재하면
		{
			bool success = false;
			if (DoAutoParsing(tokens[0]))
			{
				command = tokens[0];

				MkArray<MkStr> argument;
				if (tokenCount > 1) // argument가 존재하면
				{
					argument.Reserve(tokenCount - 1);
					for (unsigned int i=1; i<tokenCount; ++i)
					{
						MkHashStr currToken = tokens[i];
						argument.PushBack(stringTable.Exist(currToken) ? stringTable.GetString(currToken) : tokens[i]);
					}
				}

				success = ExcuteMsg(command, argument, resultMsg);
			}
			else
			{
				MkStr lineMsg = tokens[0];
				for (unsigned int i=1; i<tokenCount; ++i)
				{
					MkHashStr currToken = tokens[i];
					lineMsg += MkStr::SPACE;
					lineMsg += stringTable.Exist(currToken) ? stringTable.GetString(currToken) : tokens[i];
				}

				success = ExcuteLine(lineMsg, resultMsg);
			}

			if (success)
			{
				result = true; // 하나라도 성공하면 의미 있음
			}
			else
			{
				resultMsg += MkStr::CRLF;
				resultMsg += L"> MkCheatMessage::\"" + lines[i] + L"\" 실행 실패";
			}
		}
	}
Exemplo n.º 8
0
bool MkWebBrowser::Open(HWND parent, const MkStr& pageUrl, int posX, int posY, int width, int height, bool show)
{
	if ((m_Browser != NULL) || pageUrl.Empty())
		return false;

	CoInitialize(NULL);
	HRESULT hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&m_Browser);
	if (SUCCEEDED(hr) && (m_Browser != NULL))
	{
		m_Browser->put_Width((long)width);
		m_Browser->put_Height((long)height);
		m_Browser->put_Left((long)posX);
		m_Browser->put_Top((long)posY);
		m_Browser->put_MenuBar(VARIANT_FALSE);
		m_Browser->put_ToolBar(VARIANT_FALSE);
		m_Browser->put_AddressBar(VARIANT_FALSE);
		m_Browser->put_StatusBar(VARIANT_FALSE);

		BSTR cBuf = SysAllocString(pageUrl.GetPtr());

		VARIANT vtFlag2 = {0};
		vtFlag2.vt = VT_I4;
		vtFlag2.lVal = navNoHistory | navNoReadFromCache | navNoWriteToCache;

		VARIANT vtTarget2 = {0};
		vtTarget2.vt = VT_BSTR;
		vtTarget2.bstrVal = SysAllocString(L"_top");

		VARIANT vtEmpty2 = {0};
		VariantInit(&vtEmpty2);

		VARIANT vtHeader2 = {0};
		vtHeader2.vt = VT_BSTR;
		vtHeader2.bstrVal = SysAllocString(L"Content-Type: application/x-www-form-urlencoded\r\n");

		hr = m_Browser->Navigate(cBuf, &vtFlag2, &vtTarget2, &vtEmpty2, &vtHeader2);

		SysFreeString(cBuf);
		SysFreeString(vtHeader2.bstrVal);
		SysFreeString(vtTarget2.bstrVal);

		if (SUCCEEDED(hr))
		{
			m_Browser->put_Visible((show) ? VARIANT_TRUE : VARIANT_FALSE);
			m_Browser->get_HWND((long*)&m_hWnd);

			if (parent != NULL)
			{
				m_StyleBackup = static_cast<DWORD>(::GetWindowLongPtr(m_hWnd, GWL_STYLE));
				::SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN);
				::SetWindowPos(m_hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DRAWFRAME);
				::SetParent(m_hWnd, parent);
			}

			return true;
		}
		else
		{
			Close();
		}
	}
	return false;
}