MoniWiki딱지_CEGUI
Login:
Password:
대문|찾기|바뀐글|목록|메모장|책갈피|연꽃|링크
Edit Diff Reload Search Print Info Mail Help RSS

FrontPage › TitleIndex › 딱지_CEGUI
@ 2008-03-29
  CEGUI

1 IME
1.1 IME�� ��������?
1.2 �������� IME�� ����
1.2.1 IME�� ������ ������
1.3 ���� ���� ���� ������ ������
1.3.1 WM_IME_COMPOSITION�� ������ ���� ���� ����
2 CEGUI-SDK-0.5.0b(�������� ����)
2.1 ���� ����
2.1.1 schemes
2.1.2 looknfeel
2.1.3 imagesets
2.1.4 layouts
2.2 ���� ����
2.2.1 ���� ����
2.2.2 ���� ����1
2.2.3 ���� - ���� ����2
3 ���� GUI ���������� ���� ����

1 IME #

���� ������;

1.1 IME�� ��������? #

IME�� Input Method Editor�� ���� ������ ������ ������, ������, �������� DBCS(Double Byte Character Sets) / MDCS(Multi Byte Character Sets)�� ���� ���� �������� ������.

�������� >> http://www.dexgame.com/zbxe/?mid=download&search_target=title&search_keyword=ime&document_srl=5879
    ������ IME ���� ���� (ANSI ���� ����)         IME_Test.zip (2006.12.08)...    
������ ����������. ������ ���� ����~������.
������ IME ���� ����������. ���� �������� �������� �������� ���� ������ �� ������ ��������. ���������� ANSI �������� �������� �������� ������ ��/���� ���� ������ ���� ��������. Composite �� Candidate �� GDI�� ���� �������� ������ ������ ������ ���������� ���� ���� ���������� Unicode �� ���� ������ ANSI �� �������� ���������� ������.

��������; Vietnam Charset/Codepage ���� ���� (switch��)

1.2 �������� IME�� ���� #

�������� CWnd�� ���������� ���� �������� �������� ���� ������ WM_KEYDOWN ������ WM_CHAR�������� �������� ������ ������ �������� WM_KEYDOWN ������ WM_IME_COMPOSITION�� �������� ������ ������ ���� WM_CHAR�� ���� �������� ����. �� ���������� ������ 2byte������ ������ ������ �� ���� ��������.

�������� �������� ���������� �������� ���������� ������ �� ���� ���������� �������� ������ ������.
���� ������ �������� ������ ���� IME���� �������� �������� ���� ������ ������������ �������� ���� ������.

������������ IME �������� ����/���� �������� ���� �� IME�� ���� ���� ������ ���� WM_IME �� �������� IME �������� ������ �������� ������. �� ���������� �������� ���� DefWindowProc() ���� ���� ���� ���������� ������ ������ �������� WM_CHAR �������� ���� ����.

1.2.1 IME�� ������ ������ #
���� ����
ImmAssociateContext ������������ IME�� ����������. Default IME�� ������ �� ������ ������ IME�� �������� �� ������ ������ ���� �������� ����.
ImmCreateContext ������ IME�� ��������. ������ ������ ImmDestroyContext�� �������� ����.
ImmDestroyContext IME�� ��������.
ImmGetDefault IMEWnd Default IME ������ ������. ������ ������ ImmReleaseContext �� �������� ����.
ImmReleaseContext Default IME ������ OS�� ��������.
ImmGetConversionStatus IME�� ������ ��������.
ImmSimulateHotKey ��/��, ����/����, �������� ���� Simulation �� ����.
ImmGetCompositionString ���� IME�� �������� ���� ���������� ���� �� ������ ��������.
IsDBCSLeadByte ���� �� Byte������ ������ Byte���� ������ ���� ���������� ������ ������ ������ Byte�� ���� ���� ������ ������ Byte�� �� �� ���� ������ ������ ������ �� ������ ������ �� ����. ������ �� ������ �������� ���� ���� �������� �������� ���� ����������.

1.3 ���� ���� ���� ������ ������ #

������ �� �� �� ������ ����
WM_KEYDOWN &H100 ���� ���� �� ����
���� ���� ������ wParam�� 229(�������� "KeyDown"�������� ����)��, lParam�� �������� ���� ������ ���� ��������. lParam���� API������ "MapVirtualKey"�� �������� ���� ���� ���� ���� ���� ������ �� ����. ������ ���� �������� wParam�� �������� "KeyDown"���������� �������� "KeyCode�� ���� ���� ��������.(�� ���� lParam�� ���� ���� ������)
WM_KEYUP &H101 �������� "KeyUp"�������� ����
WM_CHAR &H102 �������� "KeyPress"�������� ������ ������ �������� ������ ���������� ��������
WM_IME_STARTCOMPOSITION &H10D ������ ���� ������ �� ����(IME�� ���� �������� ������ ������ ������)
-.���� ���� �� ���� ���� ���� �� ���� ���� ������ �� ������ ��������.��) "123"�� ���������� "��"�� ������ ����(WM_IME_ENDCOMPOSITION ������ ���� ������ ����)
-.������ ���������� ���������� wParam, lParam ���� �������� ������ ������ ���� ���� ������ ����. ������ ������������ �� �������� ������ �� ���� �������� ��������.
WM_IME_COMPOSITION &H10F ���� ���� ���� ����(������ ������������ ���� ��)
-.WM_IME_STARTCOMPOSITION�� ������ �� ���� ���� ���� �� ���� ��������
wParam�� lParam�� �������� ������ ���� ����.
-.������ ���� �� ������ ������ ������ �������� ���������� �������� ������ �������� ���� ���� �� �������� ��������(WM_IME_COMPOSITION �������� ������ ������ WM_IME_CHAR �������� ������ ���� ������)
wParam ���� ���� ������ ���� ASCII Code�� ��������(�������� ������ ������ �������� 2�������� DBCS ������ �������� ���� ���� ��������)
lParam ������ wParam�� �������� ���� ���� ������ ���������� ��������(���� ������ ������ ������������, �� ������ ������ �������� ������ �������� �������� ��������)
lParam �� ����
&H6018(GCS_COMPSTR) ������ wParam�� �������� ������(���� �� ������ �������� ������)
&H800(GCS_RESULTSTR) ������ wParam�� ������ ������
WM_IME_ENDCOMPOSITION &H10E ���� ������ ������ �� ����/ ������������ ���������� ������ ������������ ����(������ �������� ���� ������
-.���� ���� �� �������� ���� ���� ���� ��(������, Enter��, ���� ������, ������ ��), �������� ����������, �������� ���� �� ��������.(�� ���� ���� ������ ���� ������ ������ �� �� ���� ������ ������ ��)
-.������ ���� ���� ����.
WM_IME_SETCONTEXT &H281 �������� ������ ���� ���� IME�� �������� ������ ����(���� ���������� ����/�������� �� �� ��������)
������ �������� ���� �� �������� ������ �� ImmIsUIMessage() ������ �������� ���� �������� ���� �������� �������� ��������.
wParam ������ ���� TRUE, �������� ���� FALSE�� ��������.
WM_IME_NOTIFY &H282 IME �������� ������������ ���� ����������.
IME_OPENSTATUSWINDOW ���� �������� ������ �������� 'IME ��������' ������ ������������ ������ �������� ������.
wParam ������ ����. ���� �������� ���������� ������ ������, ����, ���� ���� ������ ������������ ��������
WM_IME_CONTROL &H283
WM_IME_COMPOSITIONFULL &H284
WM_IME_SELECT &H285
WM_IME_CHAR &H286 ������ ������ ���� ASCII���� ����(���� ������ ���������� �� ��������)
WM_IME_COMPOSITION ���� ��(lParam ���� &H800�� ��) ��������.
������ ������ ���� ���� ������ ���� WM_CHAR�� ������ ���������� �������� ������ ������ �������� �������� �������� �� �������� �������� ����.(�������� WM_IME_COMPOSITION �������� �������� ������ ���� �������� ����)
������ ������ ���� ���������� �� �������� ��������. �� �������� �������� ���� �� ������ ���� WM_CHAR �������� �� �� ���� ����. WM_IME_CHAR �������� WM_CHAR�������� ������ ���� ������.
wParam ������ ������ ������ ��������. �� ������ DBCS �� �� ����. ��, ���� ������ ���� WM_CHAR�� WM_IME_CHAR�� ������ �������� ��������.
WM_IME_KEYDOWN &H290 ���� ������ �������� ���� ���� ���� ���� �� ������ ����
WM_IME_ENDCOMPOSITION������ ���� ����(���� ������ ��������)��������.
WM_IME_KEYUP &H291
WM_IME_REPORT &H0280
WM_IME_REQUEST &H0288

1.3.1 WM_IME_COMPOSITION�� ������ ���� ���� ���� #
�� ������ ������ ���� ������, �� WM_IME_COMPOSITION �������� ���������� IME ������ ������ ���� ������ ���� ������.
WM_IME_COMPOSITION �������� ������������ ������ �������� �������� ���������� �� �������� �������� ������ lParam�� ������ �������� ������ �������� �� ������ �������� ���� ����. ������ IME�� �������� ���� �������� Composition ������������ ����.
�������� lParam�� ���� ������ ���� �������� lParam�� ���� ������ ����
�� GCS_COMPSTR �� �� GCS_COMPSTR ��
�� GCS_COMPSTR �� �� GCS_COMPSTR ��
�� GCS_COMPSTR �� Back Space GCS_COMPSTR ��
�� GCS_RESULTSTR �� Back Space GCS_COMPSTR NULL (���� 0)
GCS_COMPSTR ��
�� GCS_COMPSTR ��
�� GCS_RESULTSTR ��
�� GCS_COMPSTR ��
3 GCS_RESULTSTR ��3
�� �� ��

2 CEGUI-SDK-0.5.0b(�������� ����) #

���� ������
http://www.cegui.org.uk/wiki/index.php/Main_Page - 2008.03.27 CEGUI-SDK-0.6.0-vc8
http://acasia.tistory.com/166
http://cafe.naver.com/ogre3d.cafe - OGRE 3D ���� ������ ������ ���� CEGUI�� ���� ���� ����

        CEGUI-SDK-0.5.0b-vc8.exe/     CEImagesetEditor.zip (���� ?)
        CELayoutEditorSetup_0.5.0c.exe/     CELayoutEditorSetup-0.5.0b.exe/

2.1 ���� ���� #

'CEGUI-SDK-0.5.0b-vc8\datafiles\'������ ������ ������ ������ �������� ��������
�������� ������ schemes, looknfeel, imagesets, layouts�� ��������.

2.1.1 schemes #
<xml version="1.0" ?> // xml ����
<GUIScheme Name="WindowsLookSkin"> // GUIScheme ����
<Imageset Name="WindowsLook" Filename="WindowsLook.imageset" /> // ������ Image Set
<LookNFeel Filename="WindowsLook.looknfeel" /> // ������ LookNFeel
<WindowSet Filename="CEGUIFalagardWRBase" /> // ������ WindowSet
<FalagardMapping
WindowType="WindowsLook/Button" // ������ ����
TargetType="CEGUI/PushButton" // ���� ����
Renderer="Falagard/Button" // ������ ����
LookNFeel="WindowsLook/Button" /> // LookNFeel

2.1.2 looknfeel #
Falagard ������ �������� �������� �������� ������ ������ ����.
<xml version="1.0" ?>
<Falagard>
<WidgetLook name="WindowsLook/Button">
<PropertyDefinition name="NormalTextColour" initialValue="FF000000" redrawOnWrite="true" /> // ������ ����
</ WidgetLook>
</ Falagard>

2.1.3 imagesets #
���������� ������/������ ���� ������ ������ �������� CEImagesetEditor�� ������ ������ �� ����.
<xml version="1.0" ?>
<Imageset Name="WindowsLook" Imagefile="WindowsLook.tga" NativeHorzRes="800" NativeVertRes="600" AutoScaled="true">
<Image Name="Background" XPos="9" YPos="9" Width="2" Height="2" />
...
</Imageset>
������ �������� ������ �������� ������ ������ Image�� ��������.

2.1.4 layouts #
CELayoutEditor�� �������� ���������� ������ �� ����.
<xml version="1.0" ?>
<GUILayout>
<Window Type="Vanilla/Button" Name="Vanilla/Console/Submit">
<Property Name="ID" Value="1" />
</Window>
...
</GUILayout>

2.2 ���� ���� #

2.2.1 ���� ���� #
����; http://blog.naver.com/dekaf?Redirect=Log&logNo=40041234507
1.CEGUI 0.5.0������ �� ���� ������ ������ ������ ��������.�� ������ ������ ����.
1-1.���� ���� ����
-.������ ������ datafiles\fonts�� ��������.
-.����.font ������ ����
<xml version="1.0" ?>
<Font Name="Han-12" Filename="H2GTRE.TTF" Type="FreeType" Size="10" NativeHorzRes="800" NativeVertRes="600" AutoScaled="true"/>
-.���� �������� Filename="H2GTRE.TTF"�� ��������, ������ ���� ���� ���� ������ ����

1-2.������������ ���� ����
-.FontManager::getSingleton().createFont("����.font");

1-3.������ ������ UTF-8�� ����
1) �������� ������ UTF-8�� ����; Visual Studio���� ���������� ������ ��, UTF-8�� �������� �� �������� ������ ����
Visual Studio 6.0���� ���������� ������ �� ����
VS 2005������ ������������ UTF-8�� ���� ����(������ ���� �������� ��)
VS 2003������ �� ������ ��
2) �������� ������ �������� UTF-8�� ������ ���� File�� ������������ ������ ������ ����
VS 2005���� UTF-8�� �������� ������ ������ ������ ������ �� ����
3) MBC �������� UTF-8�� �������� CEGUI ������ ������(������ MBC -> Unicode -> UTF-8 ������)
        ���� ����(in orge3d ������ ����) strconv-dekaf.h    
#include "strconv.h"

#define CONV_UTF8_MBCS(a) convUni2Mbcs(convUtf82Uni(a)).c_str()
#define CONV_MBCS_UTF8(a) convUni2Utf8(convMbcs2Uni(a)).c_str()

������, (utf8*)CONV_MBCS_UTF8(txt)�� ����
��) history->SetText((utf8*)CONV_MBCS_UTF8("��������"));

2.2.2 ���� ����1 #
����; http://www.gpgstudy.com/forum/viewtopic.php?topic=15388
WM_IME_COMPOSITION ������ ���������� return������ true�� ���� ime���� �������� ������ ���� ������ �������� ���� ������.

#pragma comment(lib, "imm32.lib")
#include <imm.h>

void processImeInput(LPARAM lParam, CEGUI::System *pCEGUISystem)
{
// �������� CEGUI�������� Editbox������ �������� IME �������� ����
Window* myRoot = CEGUI::System::getSingleton().getGUISheet();
CEGUI::Editbox *pEditWindow =(CEGUI::Editbox*)myRoot->getActiveChild();

if(pEditWindow == NULL)
return;

// IME ��������. �������� IME �������� ����
HIMC hImc = ImmGetContext(GetWindowReference());
if(hImc == NULL)
return;

// ���� ����
int nLength = 0;
wchar_t wszComp[4] = {0,};

// IME ���� ������ ������������
if(lParam == GCS_RESULTSTR)
{
nLength = ImmGetCompositionStringW(hImc, GCS_RESULTSTR, NULL, 0);

if(nLength > 0)
{
ImmGetCompositionStringW(hImc, GCS_RESULTSTR, wszComp, nLength);

for(int i = 0; i < nLength; i++)
{
if(wszComp[i] != 0)
pCEGUISystem->injectChar(wszComp[i]);
}

// ���� ������ ������������ �������� ���� ��������
size_t caretIndex = pEditWindow->getCaratIndex();
pEditWindow->setSelection(caretIndex, caretIndex);
}
}
// IME ���� ������������
else
{
nLength = ImmGetCompositionStringW(hImc, GCS_COMPSTR, NULL, 0);

if(nLength > 0)
{
ImmGetCompositionStringW(hImc, GCS_COMPSTR, wszComp, nLength);

for(int i = 0; i < nLength; i++)
{
if(wszComp[i] != 0)
{
pCEGUISystem->injectChar(wszComp[i]);
}
}

// ������ �������� ���� �������� ������ ���������� ��
size_t caretIndex = pEditWindow->getCaratIndex();
pEditWindow->setSelection(caretIndex - 1, caretIndex);
}
}

// IME ���� ����
ImmReleaseContext(GetWindowReference(), hImc);
}

2.2.3 ���� - ���� ����2 #
����; http://blog.naver.com/dekaf?Redirect=Log&logNo=40041234507

������; ������������ �������� ������ ������ �������� ������ ������ ����

������ WM_CHAR �������� �������� �������� ������ ������ �������� �� 2������ �������� 1�������������� ��������
1������ �������� ���� ���� ���� ������, 2������ �������� ���������� 2������ ������ ������ UTF-8�� ������ ���� ������.

#include < ctype.h >
inline int __cdecl isLeadByte(int _C) {return ((unsigned char)(_C) & 0x80); }

switch(pEventRecord->uiMsg)
{
case WM_CHAR:
{
static char MultiByte[2] = {0};
static bool isHaveMultiByte = false;

if(isHaveMultiByte)
{
isHaveMultiByte = false;
MultiByte[1] = (unsigned char)pEventRecord->wParam;
int iLengthUnicode = 0;
wchar_t szUnicode;
MultiByteToWideChar(CP_ACP, 0, (char*)MultiByte, 2, &szUnicode, 1);
CEGUI::System::getSingleton().injectChar((CEGUI::utf32)szUnicode);
break;
}
else
{
if( isLeadByte(pEventRecord->wParam) )
{
isHaveMultiByte = true;
MultiByte[0] = (unsigned char)pEventRecord->wParam;
return true;
}
else
{
CEGUI::System::getSingleton().injectChar((CEGUI::utf32)pEventRecord->wParam);
break;
}
}
}
break;
}

3 ���� GUI ���������� ���� ���� #

GPG�� pacman���� 2004.04.13 ������ ���� ���� ( http://www.gpgstudy.com/forum/viewtopic.php?topic=5016 )
���� ���� ����
FLTK http://www.fltk.org/index.php ���� ������/ UI �� ����, ����/ Article, FAQ, Developer Document
GTK+ http://www.gtk.org/ ���� ������/ ������ GNU ���� ���������� ������/ ������ ������/ FAQ, Tutorial, API Reference
wxWidgets http://www.wxwidgets.org/ ���� ������/ ������ ������, ������, ���� ��/ FAQ, Book, Reference, Presentations, Tutorials, Courses, Sample Code
NGL http://home.gna.org/ngl/about.html ���� ������/ OpenGL ���� ���������� ���� C++ GUI ��������/ UI ��(RADtool) ����/ XML, ���� ���� ����/ ���� ����/ Reference Manual, FAQ
XML User Interface Language (XUL) http://www.mozilla.org/projects/xul/ ���� ������/ Mozilla Project�� ����/ XUL Planet (www.xulplanet.com - Tutorial, Developer Guide, References, Forum)/ Specification, Tutorial, Reference Manual
Crazy Eddie's GUI System http://www.cegui.org.uk/modules/news/ �� ������/ �� ����/ ����, ������ ������, ����/ API Reference, Tutorials, FAQ
Para GUI http://www.bms-aust...ts/paragui/index.php ���� ������/ SDL (Simple DirectMedia Layer) ����/ ����, ������ ������/ FAQ, API Reference, Source Code Documentation
gameswf http://www.tulrich....ekstuff/gameswf.html ������ swf������ ���� ������ �������� GUI ����������/ ������ ������/ ������(FAQ) ����
3DControls http://3dcontrols.free.fr/ 3���� ���������� �������� ������������ ������/ ���� �������� ����/ ����(����, ����)

October, 2026
 123
45678910
11121314151617
18192021222324
25262728293031

"Fortune Cookies..."

edu2014_Unity3D를_이용한_게임_만들기
딱지_Milestone
바람03
책갈피_Performance
last modified 2008-04-28 06:02:51
고치기|찾기|쪽 지우기|비슷한 쪽 Valid XHTML 1.0! Valid CSS! powerd by MoniWiki
0.6535 sec