From 608d439682a42b4f53878a9284ac618a7dbf14f0 Mon Sep 17 00:00:00 2001
From: Byurrer <byurrer@mail.ru>
Date: Sun, 8 Apr 2018 11:16:07 +0400
Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=82=D1=80=D0=B5=D1=84=D0=B0=D0=BA?=
 =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=BB=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD?=
 =?UTF-8?q?=D0=B8=D0=B9=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9?=
 =?UTF-8?q?=D1=81=20sxguiwinapi,=20=D0=BF=D0=BE=D0=B4=D1=80=D0=B5=D0=B4?=
 =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF?=
 =?UTF-8?q?=D0=BE=D0=B4=20=D1=8D=D1=82=D0=BE=20=D1=80=D0=B5=D0=B4=D0=B0?=
 =?UTF-8?q?=D0=BA=D1=82=D0=BE=D1=80=D1=8B=20(=D0=BC=D0=B0=D1=82=D0=B5?=
 =?UTF-8?q?=D1=80=D0=B8=D0=B0=D0=BB=D0=BE=D0=B2,=20=D1=83=D1=80=D0=BE?=
 =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D0=B9,=20=D0=BF=D0=B0=D1=80=D1=82=D0=B8?=
 =?UTF-8?q?=D0=BA=D0=BB=D0=BE=D0=B2,=20sxwincreator)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 build/editor.cfg                              |    2 +-
 proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj   |  138 +-
 .../vs2013/sxguiwinapi.vcxproj.filters        |   89 +-
 proj/sxwincreator/vs2013/sxwincreator.vcxproj |   25 +-
 .../vs2013/sxwincreator.vcxproj.filters       |   18 +-
 source/SXGUIWinApi/SXGUI.cpp                  |  353 +-
 source/SXGUIWinApi/SXGUI.h                    | 1514 ++++---
 source/SXGUIWinApi/SXGUI_base_wnd.cpp         |  106 -
 source/SXGUIWinApi/SXGUI_base_wnd.h           |   33 -
 source/SXGUIWinApi/SXGUI_button.cpp           |  110 -
 source/SXGUIWinApi/SXGUI_check_box.cpp        |   53 -
 source/SXGUIWinApi/SXGUI_check_box.h          |   19 -
 source/SXGUIWinApi/SXGUI_combo_box.cpp        |  119 -
 source/SXGUIWinApi/SXGUI_combo_box.h          |   34 -
 source/SXGUIWinApi/SXGUI_edit.cpp             |   97 -
 source/SXGUIWinApi/SXGUI_group_box.h          |   28 -
 source/SXGUIWinApi/SXGUI_hint.h               |   42 -
 source/SXGUIWinApi/SXGUI_img_button.h         |   67 -
 source/SXGUIWinApi/SXGUI_list_box.cpp         |  191 -
 source/SXGUIWinApi/SXGUI_list_box.h           |   52 -
 source/SXGUIWinApi/SXGUI_list_view.cpp        |  174 -
 source/SXGUIWinApi/SXGUI_list_view.h          |   39 -
 source/SXGUIWinApi/SXGUI_memo.cpp             |   78 -
 source/SXGUIWinApi/SXGUI_memo.h               |   26 -
 source/SXGUIWinApi/SXGUI_menu.h               |   72 -
 source/SXGUIWinApi/SXGUI_progress_bar.cpp     |  117 -
 source/SXGUIWinApi/SXGUI_progress_bar.h       |   45 -
 source/SXGUIWinApi/SXGUI_radio_button.cpp     |   53 -
 source/SXGUIWinApi/SXGUI_radio_button.h       |   21 -
 source/SXGUIWinApi/SXGUI_static.cpp           |   93 -
 source/SXGUIWinApi/SXGUI_static.h             |   24 -
 source/SXGUIWinApi/SXGUI_status_bar.cpp       |  206 -
 source/SXGUIWinApi/SXGUI_status_bar.h         |   40 -
 source/SXGUIWinApi/SXGUI_toolbar.cpp          |   66 -
 source/SXGUIWinApi/SXGUI_toolbar.h            |   22 -
 source/SXGUIWinApi/SXGUI_track_bar.cpp        |  104 -
 source/SXGUIWinApi/SXGUI_track_bar.h          |   31 -
 source/SXGUIWinApi/SXGUI_up_down.cpp          |  103 -
 source/SXGUIWinApi/SXGUI_up_down.h            |   28 -
 source/SXGUIWinApi/base.cpp                   | 1093 +++++
 source/SXGUIWinApi/base.h                     |  205 +
 source/SXGUIWinApi/base_wnd.cpp               |  106 +
 source/SXGUIWinApi/base_wnd.h                 |   36 +
 source/SXGUIWinApi/button.cpp                 |  115 +
 source/SXGUIWinApi/button.h                   |   27 +
 source/SXGUIWinApi/checkbox.cpp               |   62 +
 source/SXGUIWinApi/checkbox.h                 |   26 +
 source/SXGUIWinApi/combobox.cpp               |  124 +
 source/SXGUIWinApi/combobox.h                 |   40 +
 source/SXGUIWinApi/edit.cpp                   |  107 +
 source/SXGUIWinApi/edit.h                     |   32 +
 .../{SXGUI_group_box.cpp => groupbox.cpp}     |   60 +-
 source/SXGUIWinApi/groupbox.h                 |   27 +
 .../SXGUIWinApi/{SXGUI_hint.cpp => hint.cpp}  |   32 +-
 source/SXGUIWinApi/hint.h                     |   48 +
 .../{sxgui_img_button.cpp => img_button.cpp}  |  111 +-
 source/SXGUIWinApi/img_button.h               |   68 +
 source/SXGUIWinApi/listbox.cpp                |  182 +
 source/SXGUIWinApi/listbox.h                  |   52 +
 source/SXGUIWinApi/listview.cpp               |  187 +
 source/SXGUIWinApi/listview.h                 |   45 +
 source/SXGUIWinApi/memo.cpp                   |   62 +
 source/SXGUIWinApi/memo.h                     |   24 +
 source/SXGUIWinApi/menu.cpp                   |  247 ++
 source/SXGUIWinApi/menu.h                     |   70 +
 source/SXGUIWinApi/progressbar.cpp            |  121 +
 source/SXGUIWinApi/progressbar.h              |   49 +
 source/SXGUIWinApi/radiobutton.cpp            |   57 +
 source/SXGUIWinApi/radiobutton.h              |   25 +
 source/SXGUIWinApi/static.cpp                 |   99 +
 source/SXGUIWinApi/static.h                   |   29 +
 source/SXGUIWinApi/statusbar.cpp              |  213 +
 source/SXGUIWinApi/statusbar.h                |   48 +
 source/SXGUIWinApi/sxgui_base.cpp             | 1221 ------
 source/SXGUIWinApi/sxgui_base.h               |  180 -
 source/SXGUIWinApi/sxgui_button.h             |   23 -
 source/SXGUIWinApi/sxgui_edit.h               |   28 -
 source/SXGUIWinApi/sxgui_menu.cpp             |  369 --
 source/SXGUIWinApi/sxguiwinapi_dll.cpp        |    6 +-
 source/SXGUIWinApi/toolbar.cpp                |   72 +
 source/SXGUIWinApi/toolbar.h                  |   31 +
 source/SXGUIWinApi/trackbar.cpp               |  110 +
 source/SXGUIWinApi/trackbar.h                 |   37 +
 source/SXGUIWinApi/updown.cpp                 |  107 +
 source/SXGUIWinApi/updown.h                   |   34 +
 source/gcore/sxgcore.h                        | 2252 +++++-----
 source/skyxengine.cpp                         |    2 +-
 source/sxleveleditor/aigrid_callback.cpp      |  184 +-
 source/sxleveleditor/common_callback.cpp      |  508 +--
 source/sxleveleditor/game_callback.cpp        |  428 +-
 source/sxleveleditor/green_callback.cpp       |  190 +-
 source/sxleveleditor/level_editor.cpp         | 2980 ++++++-------
 source/sxleveleditor/level_editor.h           |    2 +-
 source/sxleveleditor/model_callback.cpp       |  172 +-
 source/sxleveleditor/sxleveleditor.cpp        |   49 +-
 source/sxmaterialeditor/buttons_callback.cpp  |   56 +-
 source/sxmaterialeditor/common_callback.cpp   |  526 +--
 source/sxmaterialeditor/edits_callback.cpp    |  104 +-
 source/sxmaterialeditor/material_editor.cpp   | 1916 ++++-----
 source/sxmaterialeditor/material_editor.h     |    2 +-
 source/sxmaterialeditor/sxmaterialeditor.cpp  |   34 +-
 .../sxmaterialeditor/trackbars_callback.cpp   |   48 +-
 source/sxparticleseditor/callback_common.cpp  |  362 +-
 source/sxparticleseditor/callback_list.cpp    |  210 +-
 source/sxparticleseditor/callback_tabs.cpp    |   12 +-
 source/sxparticleseditor/particles_editor.cpp | 3687 ++++++++---------
 source/sxparticleseditor/particles_editor.h   |    2 +-
 .../sxparticleseditor/particles_editor_op.cpp |  758 ++--
 .../sxparticleseditor/sxparticleseditor.cpp   |   29 +-
 source/sxwincreator/WindowOutput.cpp          |  192 +-
 source/sxwincreator/WindowOutput.h            |   37 +
 source/sxwincreator/about_sxwincreator.cpp    |  104 +-
 source/sxwincreator/about_sxwincreator.h      |   29 +
 source/sxwincreator/callbacks.cpp             |  314 +-
 source/sxwincreator/callbacks.h               |   77 +
 source/sxwincreator/create_current_gui.cpp    |    4 +-
 source/sxwincreator/sx_param_wnd_data.cpp     |  765 ++--
 source/sxwincreator/sx_param_wnd_data.h       |   76 +
 source/sxwincreator/sxwincreator.cpp          |  645 ++-
 source/sxwincreator/sxwincreator.h            |  224 +
 120 files changed, 14029 insertions(+), 13430 deletions(-)
 delete mode 100644 source/SXGUIWinApi/SXGUI_base_wnd.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_base_wnd.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_button.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_check_box.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_check_box.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_combo_box.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_combo_box.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_edit.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_group_box.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_hint.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_img_button.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_list_box.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_list_box.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_list_view.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_list_view.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_memo.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_memo.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_menu.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_progress_bar.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_progress_bar.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_radio_button.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_radio_button.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_static.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_static.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_status_bar.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_status_bar.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_toolbar.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_toolbar.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_track_bar.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_track_bar.h
 delete mode 100644 source/SXGUIWinApi/SXGUI_up_down.cpp
 delete mode 100644 source/SXGUIWinApi/SXGUI_up_down.h
 create mode 100644 source/SXGUIWinApi/base.cpp
 create mode 100644 source/SXGUIWinApi/base.h
 create mode 100644 source/SXGUIWinApi/base_wnd.cpp
 create mode 100644 source/SXGUIWinApi/base_wnd.h
 create mode 100644 source/SXGUIWinApi/button.cpp
 create mode 100644 source/SXGUIWinApi/button.h
 create mode 100644 source/SXGUIWinApi/checkbox.cpp
 create mode 100644 source/SXGUIWinApi/checkbox.h
 create mode 100644 source/SXGUIWinApi/combobox.cpp
 create mode 100644 source/SXGUIWinApi/combobox.h
 create mode 100644 source/SXGUIWinApi/edit.cpp
 create mode 100644 source/SXGUIWinApi/edit.h
 rename source/SXGUIWinApi/{SXGUI_group_box.cpp => groupbox.cpp} (57%)
 create mode 100644 source/SXGUIWinApi/groupbox.h
 rename source/SXGUIWinApi/{SXGUI_hint.cpp => hint.cpp} (75%)
 create mode 100644 source/SXGUIWinApi/hint.h
 rename source/SXGUIWinApi/{sxgui_img_button.cpp => img_button.cpp} (76%)
 create mode 100644 source/SXGUIWinApi/img_button.h
 create mode 100644 source/SXGUIWinApi/listbox.cpp
 create mode 100644 source/SXGUIWinApi/listbox.h
 create mode 100644 source/SXGUIWinApi/listview.cpp
 create mode 100644 source/SXGUIWinApi/listview.h
 create mode 100644 source/SXGUIWinApi/memo.cpp
 create mode 100644 source/SXGUIWinApi/memo.h
 create mode 100644 source/SXGUIWinApi/menu.cpp
 create mode 100644 source/SXGUIWinApi/menu.h
 create mode 100644 source/SXGUIWinApi/progressbar.cpp
 create mode 100644 source/SXGUIWinApi/progressbar.h
 create mode 100644 source/SXGUIWinApi/radiobutton.cpp
 create mode 100644 source/SXGUIWinApi/radiobutton.h
 create mode 100644 source/SXGUIWinApi/static.cpp
 create mode 100644 source/SXGUIWinApi/static.h
 create mode 100644 source/SXGUIWinApi/statusbar.cpp
 create mode 100644 source/SXGUIWinApi/statusbar.h
 delete mode 100644 source/SXGUIWinApi/sxgui_base.cpp
 delete mode 100644 source/SXGUIWinApi/sxgui_base.h
 delete mode 100644 source/SXGUIWinApi/sxgui_button.h
 delete mode 100644 source/SXGUIWinApi/sxgui_edit.h
 delete mode 100644 source/SXGUIWinApi/sxgui_menu.cpp
 create mode 100644 source/SXGUIWinApi/toolbar.cpp
 create mode 100644 source/SXGUIWinApi/toolbar.h
 create mode 100644 source/SXGUIWinApi/trackbar.cpp
 create mode 100644 source/SXGUIWinApi/trackbar.h
 create mode 100644 source/SXGUIWinApi/updown.cpp
 create mode 100644 source/SXGUIWinApi/updown.h
 create mode 100644 source/sxwincreator/WindowOutput.h
 create mode 100644 source/sxwincreator/about_sxwincreator.h
 create mode 100644 source/sxwincreator/callbacks.h
 create mode 100644 source/sxwincreator/sx_param_wnd_data.h
 create mode 100644 source/sxwincreator/sxwincreator.h

diff --git a/build/editor.cfg b/build/editor.cfg
index 62a6a04ec..8d3d90280 100644
--- a/build/editor.cfg
+++ b/build/editor.cfg
@@ -4,4 +4,4 @@ echo "Executing editor config file"
 unbind f10
 cl_mode_editor 1
 
-rs_stats 1
\ No newline at end of file
+r_stats 1
\ No newline at end of file
diff --git a/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj b/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj
index 81dba1f16..7a7303445 100644
--- a/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj
+++ b/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj
@@ -11,109 +11,51 @@
     </ProjectConfiguration>
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\base.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\base_wnd.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\button.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\checkbox.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\combobox.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\edit.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\groupbox.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\hint.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\img_button.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\listbox.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\listview.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\memo.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\menu.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\progressbar.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\radiobutton.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\static.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\statusbar.cpp" />
     <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI.cpp" />
     <ClCompile Include="..\..\..\source\SXGUIWinApi\sxguiwinapi_dll.cpp" />
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxgui_base.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_base_wnd.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_button.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_check_box.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_combo_box.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_edit.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_group_box.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_hint.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxgui_img_button.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_list_box.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_list_view.cpp" />
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_memo.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxgui_menu.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_progress_bar.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_radio_button.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_static.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_status_bar.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_toolbar.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_track_bar.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_up_down.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
-    </ClCompile>
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\toolbar.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\trackbar.cpp" />
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\updown.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\base.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\base_wnd.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\button.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\checkbox.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\combobox.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\edit.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\groupbox.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\hint.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\img_button.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\listbox.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\listview.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\memo.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\menu.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\progressbar.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\radiobutton.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\static.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\statusbar.h" />
     <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\sxgui_base.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_base_wnd.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\sxgui_button.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_check_box.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_combo_box.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\sxgui_edit.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_group_box.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_hint.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_img_button.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_list_box.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_list_view.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_memo.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_menu.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_progress_bar.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_radio_button.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_static.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_status_bar.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_toolbar.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_toolbar_sx.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_track_bar.h" />
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_up_down.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\toolbar.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\trackbar.h" />
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\updown.h" />
   </ItemGroup>
   <PropertyGroup Label="Globals">
     <ProjectGuid>{0292BE32-298E-4E18-BC42-5A39F9487EBA}</ProjectGuid>
diff --git a/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj.filters b/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj.filters
index 92101370e..3243685cd 100644
--- a/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj.filters
+++ b/proj/sxguiwinapi/vs2013/sxguiwinapi.vcxproj.filters
@@ -15,138 +15,135 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_base_wnd.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxguiwinapi_dll.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_button.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_check_box.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\trackbar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_combo_box.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\updown.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_edit.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\base.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_group_box.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\base_wnd.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_hint.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\button.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxgui_img_button.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\checkbox.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_list_box.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\combobox.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_memo.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\edit.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxgui_menu.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\groupbox.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_progress_bar.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\hint.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_radio_button.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\img_button.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_static.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\listbox.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_status_bar.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\listview.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_toolbar.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\memo.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_track_bar.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\menu.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_up_down.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\progressbar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxguiwinapi_dll.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\radiobutton.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\sxgui_base.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\static.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\statusbar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\SXGUIWinApi\SXGUI_list_view.cpp">
+    <ClCompile Include="..\..\..\source\SXGUIWinApi\toolbar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\sxgui_button.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_check_box.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_combo_box.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\statusbar.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\sxgui_edit.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\toolbar.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_group_box.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\trackbar.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_hint.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\updown.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_img_button.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\base.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_list_box.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\base_wnd.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_memo.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\button.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_menu.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\checkbox.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_progress_bar.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\combobox.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_radio_button.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\edit.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_static.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\groupbox.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_status_bar.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\hint.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_toolbar.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\img_button.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_toolbar_sx.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\listbox.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_track_bar.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\listview.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_up_down.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\memo.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\menu.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\sxgui_base.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\progressbar.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_base_wnd.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\radiobutton.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\source\SXGUIWinApi\SXGUI_list_view.h">
+    <ClInclude Include="..\..\..\source\SXGUIWinApi\static.h">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
diff --git a/proj/sxwincreator/vs2013/sxwincreator.vcxproj b/proj/sxwincreator/vs2013/sxwincreator.vcxproj
index 630822be6..72f9bf985 100644
--- a/proj/sxwincreator/vs2013/sxwincreator.vcxproj
+++ b/proj/sxwincreator/vs2013/sxwincreator.vcxproj
@@ -93,29 +93,30 @@
     <ResourceCompile Include="..\..\..\source\sxwincreator\SXWinCreator.rc" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="..\..\..\source\sxwincreator\about_sxwincreator.h" />
+    <ClInclude Include="..\..\..\source\sxwincreator\callbacks.h" />
     <ClInclude Include="..\..\..\source\sxwincreator\resource.h" />
+    <ClInclude Include="..\..\..\source\sxwincreator\sxwincreator.h" />
+    <ClInclude Include="..\..\..\source\sxwincreator\sx_param_wnd_data.h" />
+    <ClInclude Include="..\..\..\source\sxwincreator\WindowOutput.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\source\sxwincreator\about_sxwincreator.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\..\source\sxwincreator\callbacks.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-    </ClCompile>
-    <ClCompile Include="..\..\..\source\sxwincreator\create_current_gui.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\..\source\sxwincreator\sxwincreator.cpp" />
     <ClCompile Include="..\..\..\source\sxwincreator\sx_param_wnd_data.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\..\source\sxwincreator\WindowOutput.cpp">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
diff --git a/proj/sxwincreator/vs2013/sxwincreator.vcxproj.filters b/proj/sxwincreator/vs2013/sxwincreator.vcxproj.filters
index d919036ec..d865749c0 100644
--- a/proj/sxwincreator/vs2013/sxwincreator.vcxproj.filters
+++ b/proj/sxwincreator/vs2013/sxwincreator.vcxproj.filters
@@ -23,6 +23,21 @@
     <ClInclude Include="..\..\..\source\sxwincreator\resource.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\source\sxwincreator\about_sxwincreator.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\source\sxwincreator\callbacks.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\source\sxwincreator\sx_param_wnd_data.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\source\sxwincreator\WindowOutput.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\source\sxwincreator\sxwincreator.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\source\sxwincreator\WindowOutput.cpp">
@@ -34,9 +49,6 @@
     <ClCompile Include="..\..\..\source\sxwincreator\callbacks.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\source\sxwincreator\create_current_gui.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\source\sxwincreator\sx_param_wnd_data.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
diff --git a/source/SXGUIWinApi/SXGUI.cpp b/source/SXGUIWinApi/SXGUI.cpp
index 3a9b6bfe7..b31c6fb8d 100644
--- a/source/SXGUIWinApi/SXGUI.cpp
+++ b/source/SXGUIWinApi/SXGUI.cpp
@@ -1,244 +1,377 @@
 
-/******************************************************
-Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
+/***********************************************************
+Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
 See the license in LICENSE
-******************************************************/
-
-#include <SXGUIWinApi\SXGUI.h>
-#include <SXGUIWinApi\SXGUI_base.h>
-#include <SXGUIWinApi\SXGUI_base_wnd.h>
-#include <SXGUIWinApi\SXGUI_static.h>
-#include <SXGUIWinApi\SXGUI_button.h>
-#include <SXGUIWinApi\SXGUI_img_button.h>
-#include <SXGUIWinApi\SXGUI_edit.h>
-#include <SXGUIWinApi\SXGUI_up_down.h>
-#include <SXGUIWinApi\SXGUI_memo.h>
-#include <SXGUIWinApi\SXGUI_combo_box.h>
-#include <SXGUIWinApi\SXGUI_list_box.h>
-#include <SXGUIWinApi\SXGUI_list_view.h>
-#include <SXGUIWinApi\SXGUI_group_box.h>
-#include <SXGUIWinApi\SXGUI_progress_bar.h>
-#include <SXGUIWinApi\SXGUI_radio_button.h>
-#include <SXGUIWinApi\SXGUI_check_box.h>
-#include <SXGUIWinApi\SXGUI_track_bar.h>
-#include <SXGUIWinApi\SXGUI_status_bar.h>
-#include <SXGUIWinApi\SXGUI_hint.h>
-#include <SXGUIWinApi\SXGUI_menu.h>
-#include <SXGUIWinApi\SXGUI_toolbar.h>
-
-ISXGUIBaseWnd* SXGUICrBaseWnd(
-	const char* class_name, const char* caption, const char* menu,
-	WORD id, int x, int y, WORD width, WORD heigth,
+***********************************************************/
+
+#include "SXGUI.h"
+#include "base.h"
+#include "base_wnd.h"
+#include "static.h"
+#include "button.h"
+#include "img_button.h"
+#include "edit.h"
+#include "updown.h"
+#include "memo.h"
+#include "combobox.h"
+#include "listbox.h"
+#include "listview.h"
+#include "groupbox.h"
+#include "progressbar.h"
+#include "radiobutton.h"
+#include "checkbox.h"
+#include "trackbar.h"
+#include "statusbar.h"
+#include "hint.h"
+#include "menu.h"
+#include "toolbar.h"
+
+//##########################################################################
+
+SX_LIB_API void SXGUIinit()
+{
+	WNDCLASS wcButtonImg;
+
+	wcButtonImg.style = CS_HREDRAW | CS_VREDRAW;
+	wcButtonImg.lpfnWndProc = DefWindowProc;
+	wcButtonImg.cbClsExtra = 0;
+	wcButtonImg.cbWndExtra = 0;
+	wcButtonImg.hInstance = GetModuleHandle(0);
+	wcButtonImg.hIcon = 0;
+	wcButtonImg.hCursor = 0;
+	wcButtonImg.hbrBackground = 0;
+	wcButtonImg.lpszMenuName = 0;
+	wcButtonImg.lpszClassName = SXGUI_DEF_BUTTONIMG;
+
+	RegisterClass(&wcButtonImg);
+
+
+	WNDCLASS wcGroupBox;
+
+	wcGroupBox.style = CS_HREDRAW | CS_VREDRAW;
+	wcGroupBox.lpfnWndProc = DefWindowProc;
+	wcGroupBox.cbClsExtra = 0;
+	wcGroupBox.cbWndExtra = 0;
+	wcGroupBox.hInstance = GetModuleHandle(0);
+	wcGroupBox.hIcon = 0;
+	wcGroupBox.hCursor = 0;
+	wcGroupBox.hbrBackground = 0;
+	wcGroupBox.lpszMenuName = 0;
+	wcGroupBox.lpszClassName = SXGUI_DEF_GROUPBOX;
+
+	RegisterClass(&wcGroupBox);
+
+
+	INITCOMMONCONTROLSEX icex;
+
+	icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
+	icex.dwICC = ICC_BAR_CLASSES;
+	InitCommonControlsEx(&icex);
+}
+
+//##########################################################################
+
+int g_iCountCreateWnd = 0;
+
+SX_LIB_API ISXGUIBaseWnd* SXGUICrBaseWnd(
+	const char *szCaption,
+	int iPosX, int iPosY, int iWidth, int iHeight,
+	DWORD dwExstyle, DWORD dwStyle,
+	HWND hParent, WNDPROC lpfnHandler,
+	ID idObj
+	)
+{
+	char szClassName[64];
+	sprintf(szClassName, "SXGUICrBaseWnd_$d", g_iCountCreateWnd);
+	++g_iCountCreateWnd;
+
+	return new CGUIBaseWnd(szClassName, szCaption,
+		iPosX, iPosY, iWidth, iHeight,
+		0, 0, 0,
+		dwExstyle, CS_HREDRAW | CS_VREDRAW, dwStyle,
+		hParent, (lpfnHandler == 0 ? WndProcAllDefault : lpfnHandler), idObj);
+}
+
+SX_LIB_API ISXGUIBaseWnd* SXGUICrBaseWndEx(
+	const char* class_name, const char *szCaption, 
+	int iPosX, int iPosY, int iWidth, int iHeight,
 	HICON icon, HCURSOR cursor, HBRUSH brush,
-	DWORD exstyle, DWORD wndstyle, DWORD style,
-	HWND parent, WNDPROC handler
+	DWORD dwExstyle, DWORD wndstyle, DWORD dwStyle,
+	HWND hParent, WNDPROC lpfnHandler,
+	ID idObj
 	)
 {
-	return new SXGUIBaseWnd(class_name, caption, menu,
-		id, x, y, width, heigth,
+	return new CGUIBaseWnd(class_name, szCaption, 
+		iPosX, iPosY, iWidth, iHeight,
 		icon, cursor, brush,
-		exstyle, wndstyle, style,
-		parent, (handler == 0 ? WndProcAllDefault : handler));
+		dwExstyle, wndstyle, dwStyle,
+		hParent, (lpfnHandler == 0 ? WndProcAllDefault : lpfnHandler), idObj);
 }
 
+//##########################################################################
 
-ISXGUIStatic* SXGUICrStaticEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIStatic* SXGUICrStaticEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIStatic(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIStatic(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIStatic* SXGUICrStatic(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIStatic* SXGUICrStatic(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIStatic(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIStatic(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIStatic* SXGUICrStaticLine(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool vertical)
+SX_LIB_API ISXGUIStatic* SXGUICrStaticLine(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj, bool vertical)
 {
-	return new SXGUIStatic(x, y, width, heigth, parent, handler, id, vertical);
+	return new CGUIStatic(iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj, vertical);
 }
 
+//##########################################################################
 
-ISXGUIButton* SXGUICrButtonEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIButton* SXGUICrButtonEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIButton(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIButton(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
-ISXGUIButton* SXGUICrButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, int image, HWND parent, WNDPROC handler, DWORD id)
+
+SX_LIB_API ISXGUIButton* SXGUICrButton(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, SXGUI_BUTTON_IMAGE type_image, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIButton(caption, x, y, width, heigth, image, parent, handler, id);
+	return new CGUIButton(szCaption, iPosX, iPosY, iWidth, iHeight, type_image, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIButtonImg* SXGUICrButtonImgLoad(const char* path, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIButtonImg* SXGUICrButtonImgLoad(const char* path, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwAlphaColor, DWORD dwBkColor, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIButtonImg(path, x, y, width, heigth, alpha_color, bk_color, parent, handler, id);
+	return new CGUIButtonImg(path, iPosX, iPosY, iWidth, iHeight, dwAlphaColor, dwBkColor, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIButtonImg* SXGUICrButtonImgRes(WORD button, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIButtonImg* SXGUICrButtonImgRes(UINT uButton, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwAlphaColor, DWORD dwBkColor, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIButtonImg(button, x, y, width, heigth, alpha_color, bk_color, parent, handler, id);
+	return new CGUIButtonImg(uButton, iPosX, iPosY, iWidth, iHeight, dwAlphaColor, dwBkColor, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIEdit* SXGUICrEditEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+//##########################################################################
+
+SX_LIB_API ISXGUIEdit* SXGUICrEditEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIEdit(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIEdit(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIEdit* SXGUICrEdit(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIEdit* SXGUICrEdit(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIEdit(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIEdit(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIUpDown* SXGUICrUpDownEx(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id, HWND buddy)
+SX_LIB_API ISXGUIUpDown* SXGUICrUpDownEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj, HWND buddy)
 {
-	return new SXGUIUpDown(x, y, width, heigth, exstyle, style, parent, handler, id, buddy);
+	return new CGUIUpDown(iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj, buddy);
 }
 
-ISXGUIUpDown* SXGUICrUpDown(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, HWND buddy, bool align_left)
+SX_LIB_API ISXGUIUpDown* SXGUICrUpDown(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj, HWND buddy, bool align_left)
 {
-	return new SXGUIUpDown(x, y, width, heigth, parent, handler, id, buddy, align_left);
+	return new CGUIUpDown(iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj, buddy, align_left);
 }
 
+//##########################################################################
 
-ISXGUIMemo* SXGUICrMemoEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIMemo* SXGUICrMemoEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIMemo(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIMemo(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIMemo* SXGUICrMemo(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIMemo* SXGUICrMemo(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIMemo(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIMemo(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIComboBox* SXGUICrComboBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIComboBox* SXGUICrComboBoxEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIComboBox(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIComboBox(iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-//Їыруш: (parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS
-ISXGUIComboBox* SXGUICrComboBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+//Їыруш: (hParent != 0 ? WS_CHILD : 0) | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS
+SX_LIB_API ISXGUIComboBox* SXGUICrComboBox(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIComboBox(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIComboBox(iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIListBox* SXGUICrListBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIListBox* SXGUICrListBoxEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIListBox(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIListBox(iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIListBox* SXGUICrListBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool miltiple_sel)
+SX_LIB_API ISXGUIListBox* SXGUICrListBox(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj, bool miltiple_sel)
 {
-	return new SXGUIListBox(caption, x, y, width, heigth, parent, handler, id, miltiple_sel);
+	return new CGUIListBox(iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj, miltiple_sel);
 }
 
-ISXGUIListView* SXGUICrListViewEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+//##########################################################################
+
+SX_LIB_API ISXGUIListView* SXGUICrListViewEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIListView(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIListView(iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIListView* SXGUICrListView(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIListView* SXGUICrListView(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIListView(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIListView(iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
+
+SX_LIB_API ISXGUIHint* SXGUICrHint(HWND hParent)
+{
+	return new CGUIHint(hParent);
+}
 
-ISXGUIHint* SXGUICrHint(HWND parent)
+SX_LIB_API ISXGUIHint* SXGUICrHintEx(HWND hParent, const char *szText, UINT uInit, UINT uAutopop)
 {
-	return new SXGUIHint(parent);
+	CGUIHint *pHint = new CGUIHint(hParent);
+	pHint->setText(szText);
+	pHint->setDelayTime(uInit, uAutopop);
+
+	return pHint;
 }
 
+//##########################################################################
 
-ISXGUIGroupBox* SXGUICrGroupBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIGroupBox* SXGUICrGroupBoxEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIGroupBox(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIGroupBox(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIGroupBox* SXGUICrGroupBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIGroupBox* SXGUICrGroupBox(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIGroupBox(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIGroupBox(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIProgressBar* SXGUICrProgressBarEx(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIProgressBar* SXGUICrProgressBarEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIProgressBar(x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIProgressBar(iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIProgressBar* SXGUICrProgressBar(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool vertical, bool smooth)
+SX_LIB_API ISXGUIProgressBar* SXGUICrProgressBar(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj, bool vertical, bool smooth)
 {
-	return new SXGUIProgressBar(x, y, width, heigth, parent, handler, id, vertical, smooth);
+	return new CGUIProgressBar(iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj, vertical, smooth);
 }
 
+//##########################################################################
 
-ISXGUIRadioButton* SXGUICrRadioButtonEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIRadioButton* SXGUICrRadioButtonEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIRadioButton(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIRadioButton(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIRadioButton* SXGUICrRadioButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIRadioButton* SXGUICrRadioButton(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIRadioButton(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUIRadioButton(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUICheckBox* SXGUICrCheckBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUICheckBox* SXGUICrCheckBoxEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUICheckBox(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUICheckBox(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUICheckBox* SXGUICrCheckBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool cb_3_state)
+SX_LIB_API ISXGUICheckBox* SXGUICrCheckBox(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj, bool cb_3_state)
 {
-	return new SXGUICheckBox(caption, x, y, width, heigth, parent, handler, id, cb_3_state);
+	return new CGUICheckBox(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj, cb_3_state);
 }
 
+//##########################################################################
 
-ISXGUITrackBar* SXGUICrTrackBarEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUITrackBar* SXGUICrTrackBarEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUITrackBar(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUITrackBar(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUITrackBar* SXGUICrTrackBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUITrackBar* SXGUICrTrackBar(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUITrackBar(caption, x, y, width, heigth, parent, handler, id);
+	return new CGUITrackBar(szCaption, iPosX, iPosY, iWidth, iHeight, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIStatusBar* SXGUICrStatusBarEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIStatusBar* SXGUICrStatusBarEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIStatusBar(caption, x, y, width, heigth, exstyle, style, parent, handler, id);
+	return new CGUIStatusBar(szCaption, iPosX, iPosY, iWidth, iHeight, dwExstyle, dwStyle, hParent, lpfnHandler, idObj);
 }
 
-ISXGUIStatusBar* SXGUICrStatusBar(const char* caption, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIStatusBar* SXGUICrStatusBar(const char *szCaption, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIStatusBar(caption, parent, handler, id);
+	return new CGUIStatusBar(szCaption, hParent, lpfnHandler, idObj);
 }
 
+//##########################################################################
 
-ISXGUIMenu* SXGUICrMenu()
+SX_LIB_API ISXGUIMenuWindow* SXGUICrMenuWindow()
 {
-	return new SXGUIMenu();
+	return new CGUIMenuWindow();
 }
 
-ISXGUIMenu* SXGUICrMenuEx(WORD menu)
+SX_LIB_API ISXGUIMenuWindow* SXGUICrMenuWindowEx(UINT uResMenu)
 {
-	return new SXGUIMenu(menu);
+	return new CGUIMenuWindow(uResMenu);
 }
 
+//##########################################################################
 
-ISXGUIPopupMenu* SXGUICrPopupMenuEx(WORD menu)
+SX_LIB_API ISXGUIPopupMenu* SXGUICrPopupMenuEx(UINT uResMenu)
 {
-	return new SXGUIPopupMenu(menu);
+	return new CGUIPopupMenu(uResMenu);
 }
 
-ISXGUIPopupMenu* SXGUICrPopupMenu()
+SX_LIB_API ISXGUIPopupMenu* SXGUICrPopupMenu()
 {
-	return new SXGUIPopupMenu();
+	return new CGUIPopupMenu();
 }
 
+//##########################################################################
 
-ISXGUIToolBar* SXGUICrToolBar(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
+SX_LIB_API ISXGUIToolBar* SXGUICrToolBar(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj)
 {
-	return new SXGUIToolBar(0, x, y, width, heigth, 0, 0, parent, handler, id);
+	return new CGUIToolBar(0, iPosX, iPosY, iWidth, iHeight, 0, 0, hParent, lpfnHandler, idObj);
 }
+
+//##########################################################################
+
+bool gui_func::scrollbar::InitScroolBars(ISXGUIControl *pControl, bool h, bool v)
+{
+	return ShowScrollBar(pControl->getHWND(), SB_HORZ, h ? 1 : 0) && ShowScrollBar(pControl->getHWND(), SB_VERT, v ? 1 : 0);
+}
+
+bool gui_func::scrollbar::existsScrollBar(ISXGUIControl *pControl, SXGUI_SCROLL_TYPE scroll_type)
+{
+	long style = GetWindowLong(pControl->getHWND(), GWL_STYLE);
+	if (scroll_type == SXGUI_SCROLL_TYPE_V && style & WS_VSCROLL)
+		return true;
+	else if (scroll_type == SXGUI_SCROLL_TYPE_H && style & WS_HSCROLL)
+		return true;
+	return false;
+}
+
+bool gui_func::scrollbar::ScrollLine(ISXGUIControl *pControl, SXGUI_SCROLL_TYPE scroll_type, SXGUI_SCROLL_DIR dir, int iCountString)
+{
+	long _scroll = scroll_type == SXGUI_SCROLL_TYPE_V ? WM_VSCROLL : WM_HSCROLL;
+	long _dir = 0;
+	if (_scroll == WM_VSCROLL)
+		_dir = dir == SXGUI_SCROLL_DIR_DOWN ? SB_LINEDOWN : SB_LINEUP /*SB_BOTTOM :SB_TOP*/;
+	else
+		_dir = dir == SXGUI_SCROLL_DIR_RIGTH ? SB_LINERIGHT : SB_LINELEFT /*SB_RIGHT :SB_LEFT*/;
+
+	bool bf = true;
+	for (int i = 0; i<iCountString; i++)
+	{
+		bf = SendMessage(pControl->getHWND(), _scroll, _dir, 0);
+	}
+
+	return bf;//SendMessage(Control->GetHWND(),_scroll,_dir,LPARAM(count)) == 0 ? true : false;
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI.h b/source/SXGUIWinApi/SXGUI.h
index fcad9b61f..7aa7c114f 100644
--- a/source/SXGUIWinApi/SXGUI.h
+++ b/source/SXGUIWinApi/SXGUI.h
@@ -1,8 +1,8 @@
 
-/******************************************************
-Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
+/***********************************************************
+Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
 See the license in LICENSE
-******************************************************/
+***********************************************************/
 
 /*!
 \file
@@ -10,23 +10,11 @@ See the license in LICENSE
 */
 
 /*! \defgroup sxguiwinapi sxguiwinapi - библиотека графического пользовательского интерфейса реализованного на WinApi
- \note Для начала нужно инициализировать как внутренние библиотеки так и новые компоненты зарегистрировать:
-\code
-
-SXGUIRegClass::RegButtonImg();
-SXGUIRegClass::RegGroupBox();
-
-INITCOMMONCONTROLSEX icex;
-
-icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
-icex.dwICC  = ICC_BAR_CLASSES;
-InitCommonControlsEx(&icex);
-\endcode
-@{
-*/
+ \note Для начала нужно инициализировать вызвать функции инициализации #SXGUIinit
+@{*/
 
-#ifndef __sxguiwinapi
-#define __sxguiwinapi
+#ifndef __SXGUIWINAPI_H
+#define __SXGUIWINAPI_H
 
 #include <gdefines.h>
 
@@ -47,177 +35,189 @@ InitCommonControlsEx(&icex);
 #define SX_LIB_API extern "C" __declspec (dllimport)
 #endif
 
-/*! \name Определения для полос прокрутки (Scrool bar)
-@{*/
+//##########################################################################
 
-#define SXGUI_SCROLL_TYPE_HORZ	0	/*!< горизонтальный тип */
-#define SXGUI_SCROLL_TYPE_VERT	1	/*!< вертикальный тип */
+SX_LIB_API void SXGUIinit();
 
-#define SXGUI_SCROLL_DIR_UP		0	/*!< направление вверх */
-#define SXGUI_SCROLL_DIR_DOWN	1	/*!< направление вниз */
-
-#define SXGUI_SCROLL_DIR_LEFT	0	/*!< направление влево */
-#define SXGUI_SCROLL_DIR_RIGTH	1	/*!< направление вправо */
-
-//!@}
-
-//! максимальное количество обработчиков
-#define SXGUI_COUNT_HANDLERS_MSG_IN_ARR 256
+//##########################################################################
 
 //! тип обработчика
-typedef LRESULT(*HandlerMsg) (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+typedef LRESULT(*HandlerFunc) (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
 
 //! структура данных для обработчика
-struct SXHandlerMsgStruct
+struct CHandlerData
 {
-	HandlerMsg Handler;		//!< сама функция, которая будет вызываться
-	UINT Msg;				//!< код сообщения
-	WPARAM WParam;			//!< WParam сообщения
-	bool BFCondiderWParam;	//!< проверять WParam?
-	LPARAM LParam;			//!< LParam сообщения
-	bool BFCondiderLParam;	//!< проверять LParam
-	bool IsMainFunction;	//!< главный ли это обработчик? true - значение возвращенное фунцией - возвращается WndProc, иначе нет 
+	HandlerFunc m_fnHandler;//!< сама функция, которая будет вызываться
+	UINT m_uMsg;			//!< код сообщения
+	WPARAM m_wParam;		//!< WParam сообщения
+	bool m_needAllowW;		//!< проверять WParam?
+	LPARAM m_lParam;		//!< LParam сообщения
+	bool m_needAllowL;		//!< проверять LParam
+	bool m_isMainFunction;	//!< главный ли это обработчик? true - значение возвращенное фунцией - возвращается WndProc, иначе нет 
 };
 
-//! структура, логическая, для определения тянуться ли стороны элемента за сторонами родителя
-struct SXRectBool
+//!Выравнивание текста в элементе
+enum SXGUI_TEXT_ALIGN
 {
-	SXRectBool()
-	{
-		this->top = false;
-		this->left = false;
-		this->bottom = false;
-		this->right = false;
-	}
-	SXRectBool(bool _top, bool _left, bool _bottom, bool _right)
-	{
-		this->top = _top;
-		this->left = _left;
-		this->bottom = _bottom;
-		this->right = _right;
-	}
-	bool top;
-	bool left;
-	bool bottom;
-	bool right;
+	SXGUI_TEXT_ALIGN_LEFT = 0,	/*!< по левому краю */
+	SXGUI_TEXT_ALIGN_RIGHT,		/*!< по правому краю */
+	SXGUI_TEXT_ALIGN_CENTER,	/*!< по центру */
 };
 
-/*! \name Выравнивание текста в элементе
-@{*/
-
-#define SXGUI_TEXT_ALIGN_LEFT	0	/*!< по левому краю */
-#define SXGUI_TEXT_ALIGN_RIGHT	1	/*!< по правому краю */
-#define SXGUI_TEXT_ALIGN_CENTER	2	/*!< по центру */
+//! Стороны элемента
+enum SXGUI_SIDE
+{
+	SXGUI_SIDE_TOP = 0,	/*!< верх */
+	SXGUI_SIDE_BOTTOM,	/*!< низ */
+	SXGUI_SIDE_RIGHT,	/*!< правая сторона */
+	SXGUI_SIDE_LEFT,	/*!< левая сторона */
 
-//!@}
+	SXGUI_SIDE_COUNT
+};
 
 //#############################################################################
 
-/*! 
-первый базовый класс, единственным родителем не используется, 
-определяет объект как контрол, то есть содержит в себе минимум данных для управления объектом
+/*! Первый базовый класс, единственным родителем не используется, 
+определяет объект как control, то есть содержит в себе минимум данных для управления объектом
 */
 struct ISXGUIControl : public IBaseObject
 {
 	virtual ~ISXGUIControl(){};
-	virtual void Init(HWND window_handle, HWND parent_handle, WNDPROC handler) = 0;	//!< запоминаем дескрипторы, и устанавливаем новый обработчик
 
-	virtual HWND Parent() = 0;						//!< возвращает HWND родителя
-	virtual bool Parent(HWND parent_handle) = 0;	//!< устанавливает родителя
+	//! запоминаем дескрипторы, и устанавливаем новый обработчик
+	//virtual void init(HWND hWindow, HWND hParent, WNDPROC lpfnWndProc) = 0;	
 
-	virtual HWND GetHWND() = 0;						//!< возвращает свой HWND
 
-	virtual void Visible(bool bf) = 0;				//!< установка видимости контрола
-	virtual bool Visible() = 0;						//!< видим ли?
+	//! возвращает HWND родителя
+	virtual HWND getParent() = 0;						
 
-	virtual void SetFocus() = 0;					//!< установить фокус
-	virtual bool Focus() = 0;						//!< установлен ли фокус?
-	
-	WNDPROC OldProc;								//!< старый обработчик
+	//! устанавливает родителя
+	virtual bool setParent(HWND hParent) = 0;	
 
-	/*! \name Пользовательские данные
-	@{*/
+	//! возвращает свой HWND
+	virtual HWND getHWND() = 0;	
 
-	virtual void * GetUserPtr() = 0;				//!< получить пользовательские данные
-	virtual void * SetUserPtr(void *) = 0;			//!< установить пользовательские данные
 
-	//!@}
+	//! установка видимости контрола
+	virtual void setVisible(bool isVisible) = 0;
+
+	//! возвращает видим ли элемент
+	virtual bool getVisible() = 0;
+
+
+	//! установить фокус
+	virtual void setFocus() = 0;
+
+	//! установлен ли фокус?
+	virtual bool getFocus() = 0;						
+
+	//! возвращает предыдущий обработчик
+	virtual WNDPROC getPrevWndProc() = 0;
+
+
+	//! получить пользовательские данные
+	virtual void* getUserPtr() = 0;
+
+	//! установить пользовательские данные, возвращает предыдущее значение
+	virtual void* setUserPtr(void *ptr) = 0;
 };
 
+//#############################################################################
 
-//! смотреть #ISXGUIHint
+//! см. #ISXGUIHint
 struct ISXGUIHint;
 
 /*! Компонент - второй в очереди родитель, часто наследование идет именно от него,
-более расширенное управление большинством элементов*/
+более расширенное управление большинством возможностей 
+*/
 struct ISXGUIComponent : public virtual ISXGUIControl
 {
 	virtual ~ISXGUIComponent(){};
 
 	/*! устанавливает необходимые данные для управления элементом
-	 \note Необходимо вызывать после инициализации, то есть когда HWND уже получен*/
-	virtual void InitComponent() = 0; 
+	 \note Необходимо вызывать после инициализации, то есть когда HWND уже получен
+	*/
+	virtual void initComponent() = 0;
+
+	//! действителен ли элемент
+	virtual bool getEnable() = 0;
+
+	//! установка действительности элемента
+	virtual void setEnable(bool isEnable) = 0;
 
-	virtual bool Enable() = 0;			//!< действителен ли элемент
-	virtual void Enable(bool bf) = 0;	//!< установка действительности элемента
 
 	//! установка шрифта (с указанием значений)
-	virtual void SetFont(
-		const char* name,	//!< имя шрифта, если name == 0 то не изменияем название шрифта, если name[0] == 0 то дефолтный шрифт gui
-		int height,			//!< высота, если -1 то не учитываются
-		int width,			//!< ширина, если -1 то не учитываются
-		int weight,			//!< толщина от 1 до 1000 (400 - нормальный, 700 - полужирный), если -1 то не учитываются, 0 - толщина по умолчанию
-		int italic,			//!< использовать ли стиль "наклонный", 1 - да, 0 - нет, -1 не учитываются
-		int underline,		//!< использовать ли стиль "подчеркнутый", 1 - да, 0 - нет, -1 не учитываются
-		int strike_out		//!< использовать ли стиль "зачеркнутый", 1 - да, 0 - нет, -1 не учитываются
+	virtual void setFont(
+		const char *szName,	//!< имя шрифта, если name == 0 то не изменияем название шрифта, если name[0] == 0 то дефолтный шрифт gui
+		int iHeight,		//!< высота, если -1 то не учитываются
+		int iWidth,			//!< ширина, если -1 то не учитываются
+		int iWeight = -1,	//!< толщина от 1 до 1000 (400 - нормальный, 700 - полужирный), если -1 то не учитываются, 0 - толщина по умолчанию
+		int iItalic = -1,	//!< использовать ли стиль "наклонный", 1 - да, 0 - нет, -1 не учитываются
+		int iUnderline = -1,//!< использовать ли стиль "подчеркнутый", 1 - да, 0 - нет, -1 не учитываются
+		int iStrikeOut = -1	//!< использовать ли стиль "зачеркнутый", 1 - да, 0 - нет, -1 не учитываются
 		) = 0;
 
-	
-	virtual void SetFont(HFONT hfont) = 0;	//!< установка шрифта из дескриптора
-	virtual HFONT GetFont() = 0;			//!< возвращает дексриптор шрифта
+	//! установка шрифта из дескриптора
+	virtual void setHFont(HFONT hFont) = 0;
+
+	//! возвращает дексриптор шрифта
+	virtual HFONT getHFont() = 0;
 
-	virtual bool IsParentFont() = 0;	//!< наследуется ли шрифт родителя
-	virtual HFONT ParentFont() = 0;		//!< получает родительский шрифт
+
+	//! наследуется ли шрифт родителя
+	virtual bool hasParentFont() = 0;
+
+	//! возвращает дескриптор родительскиго шрифта
+	virtual HFONT getParentHFont() = 0;
 
 
 	//! модификация стилей
-	virtual bool ModifyStyle(
-		long style_add,	//!< добавляемые стили, иначе 0
-		long style_del	//!< удаляемые стили, иначе 0
+	virtual bool modifyStyle(
+		long lStyleAdd,	//!< добавляемые стили, иначе 0
+		long lStyleDel	//!< удаляемые стили, иначе 0
 		) = 0;
 
 	//! миодицикация расширенных стилей
-	virtual bool ModifyExStyle(
-		long style_add,	//!< добавляемые стили, иначе 0
-		long style_del	//!< удаляемые стили, иначе 0
+	virtual bool modifyExStyle(
+		long lStyleAdd,	//!< добавляемые стили, иначе 0
+		long lStyleDel	//!< удаляемые стили, иначе 0
 		) = 0;
 
 	//! устанавливает область окна RECT элемента в глобальных координатах
-	virtual bool	SetWinRect(
-		RECT* rect, //!< устанавливаемый RECT
-		bool alignment_screen_space	//!< использовать ли только работчую область (рабочий стол кроме панели задач)
+	virtual bool setWinRect(
+		const RECT *pRect,	//!< устанавливаемый RECT
+		bool isBoundScreen	//!< использовать ли только рабочую область (рабочий стол кроме панели задач)
 		) = 0;
+
 	//! возвращает область окна RECT элемента в глобальных координатах
-	virtual void	GetWinRect(RECT* rect) = 0;
+	virtual void getWinRect(RECT *pRect) = 0;
 
 	//! устанавливает клиентскую область RECT элемента в глобальных координатах
-	virtual bool	SetClientRect(
-		RECT* rect,	//!< устанавливаемый RECT
-		bool alignment_screen_space	//!< использовать ли только рабочую область (рабочий стол кроме панели задач)
+	virtual bool setClientRect(
+		const RECT *pRect,	//!< устанавливаемый RECT
+		bool isBoundScreen	//!< использовать ли только рабочую область (рабочий стол кроме панели задач)
 		) = 0;	
+
 	//! возвращает клиентскую область RECT элемента в глобальных координатах
-	virtual void	GetClientRect(RECT* rect) = 0;
+	virtual void getClientRect(RECT *pRect) = 0;
+
 
 	/*! \name Всплывающая подсказка
 	 \note Первая установка видимости ShowHint(true) либо первая устновка текста #SetHintText инициализируют объект подсказки, до первого вызова функции #GetHintText записывают/возвращают 0
 	@{*/
 
-	virtual void ShowHint(bool bf) = 0;	//!< установка состояния видимости подсказки
-	virtual bool ShowHint() = 0;		//!< возвращает: видима ли подсказка?
+	//! установка состояния видимости подсказки
+	virtual void setShowHint(bool isShowHint) = 0;
 
-	virtual void SetHintText(const char* text) = 0;	//!< установить текст подсказки
-	virtual const char* GetHintText() = 0;			//!< возвращает текст текущей подсказки
-	virtual void GetHintText(char* buf) = 0;		//!< в buf записывает текст текущей подсказки
+	//! возвращает: видима ли подсказка?
+	virtual bool getShowHint() = 0;		
+
+
+	//! установить текст подсказки
+	virtual void setHintText(const char *szText) = 0;
+
+	//! возвращает текст текущей подсказки
+	virtual const char* getHintText() = 0;
 
 	//!@}
 
@@ -225,109 +225,141 @@ struct ISXGUIComponent : public virtual ISXGUIControl
 	/*! \name Методы для цветов элемента
 	@{*/
 
-	//set/get цвет текста
-	virtual void SetColorText(BYTE r, BYTE g, BYTE b) = 0;	//!< покомпонентная установка цвета текста
-	virtual void SetColorText(DWORD color) = 0;				//!< установка цвета текста
-	virtual DWORD GetColorText() = 0;						//!< возвращает текущее значение цвета текста
+	//! установка цвета текста
+	virtual void setColorText(DWORD dwColor) = 0;				
+
+	//! возвращает текущее значение цвета текста
+	virtual DWORD getColorText() = 0;						
+
 
-	//set/get прозрачность заднего фона текста
-	virtual void SetTransparentTextBk(bool bf) = 0;			//!< установка прозрачности заднего фона
-	virtual bool GetTransparentTextBk() = 0;				//!< установлена ли прозрачность заднего фона?
+	//! установка прозрачности заднего фона
+	virtual void setTransparentTextBk(bool isTransparent) = 0;			
 
-	//set/get цвет заднего фона текста
-	virtual void SetColorTextBk(BYTE r, BYTE g, BYTE b) = 0;//!< покомпонентная установка цвета заднего фона текста
-	virtual void SetColorTextBk(DWORD color) = 0;			//!< установка цвета заднего фона текста
-	virtual DWORD GetColorTextBk() = 0;						//!< возвращает текущее значение цвета заднего фона текста
+	//! установлена ли прозрачность заднего фона?
+	virtual bool getTransparentTextBk() = 0;				
 
-	//set/get цвет фона элемента
-	virtual bool SetColorBrush(BYTE r, BYTE g, BYTE b) = 0;	//!< покомпонентная установка цвета фона
-	virtual bool SetColorBrush(DWORD color) = 0;			//!< установка цвета фона
-	virtual DWORD GetColorBrush() = 0;						//!< возвращает текущее значение цвета фона
-	virtual HBRUSH GetBrush() = 0;							//!< возвращает дескриптор "кисти" фона
+
+	//! установка цвета заднего фона текста
+	virtual void setColorTextBk(DWORD dwColor) = 0;			
+
+	//! возвращает текущее значение цвета заднего фона текста
+	virtual DWORD getColorTextBk() = 0;						
+
+
+	//! установка цвета фона
+	virtual bool setColorBrush(DWORD dwColor) = 0;			
+
+	//! возвращает текущее значение цвета фона
+	virtual DWORD getColorBrush() = 0;						
+
+	//! возвращает дескриптор "кисти" фона
+	virtual HBRUSH getBrush() = 0;							
 
 	//!@}
 
+
 	/*! \name Функции для работы с обработчиками
-	Пример добавления основного обработчика: Wnd->AddHandler(MouseWheel,WM_MOUSEWHEEL,0,0,0,0,true);\n
-	Пример добавления второстепенного обработчика: Wnd->AddHandler(MouseWheel,WM_MOUSEWHEEL);
 	 \note функция обработчик должна соответствовать стандартной функции обработчику WinApi
-	 \note main функция-обработчик может быть только одна и должна быть вообще, 
+	 \note main функция-обработчик может быть только одна, 
 	но если ее нет то в качестве возвращаемого значения будет использовано значение вызова функции: 
 	 - для окон DefWindowProc(hwnd, msg, wParam, lParam),
 	 - для остальных компонентов CallWindowProc(Component->OldProc,hwnd, msg, wParam, lParam)
 	@{*/
 
 	//! добавление обработчика
-	virtual bool AddHandler(
-		HandlerMsg Handler, //!< функция обработчик
-		UINT Msg,			//!< сообщение реакция на которое обрабатывает функция обработчик
+	virtual void addHandler(
+		HandlerFunc fnHandler, //!< функция обработчик
+		UINT uMsg,			//!< сообщение реакция на которое обрабатывает функция обработчик
 		WPARAM wParam,		//!< wParam функции обработчика при котором следует производить вызов функции обработчика
-		bool considerWparam,//!< учитывать ли wParam? если true то прежде вызова функции обработчика будет сравнение на равенство поступившего аргумента wParam с тем что указано было при вызове этой функции
+		bool needAllowW,	//!< учитывать ли wParam? если true то прежде вызова функции обработчика будет сравнение на равенство поступившего аргумента wParam с тем что указано было при вызове этой функции
 		LPARAM lParam,		//!< lParam функции обработчика при котором следует производить вызов функции обработчика
-		bool considerLparam,//!< учитывать ли lParam? если true то прежде вызова функции обработчика будет сравнение на равенство поступившего аргумента lParam с тем что указано было при вызове этой функции 
+		bool needAllowL,	//!< учитывать ли lParam? если true то прежде вызова функции обработчика будет сравнение на равенство поступившего аргумента lParam с тем что указано было при вызове этой функции 
 		bool isMain			//!< главная ли эта функция обработчик? если true то ее возвращаемое значение будет послано как результат обработки сообщения
 		) = 0;
 
 	/*! добавление второстепенного обработчика
 	 \note Все что необъявлено из функции #AddHandler не учитывается
 	*/
-	virtual bool AddHandler(
-		HandlerMsg Handler, //!< функция обработчик
-		UINT Msg			//!< сообщение реакция на которое обрабатывает функция обработчик
+	virtual void addHandler(
+		HandlerFunc fnHandler,	//!< функция обработчик
+		UINT uMsg				//!< сообщение реакция на которое обрабатывает функция обработчик
 		) = 0;	
 
-	//key - ключ в массиве обработчиков
-	virtual HandlerMsg GetHandlerFunction(int key) = 0;	//!< возвращает функцию обработчик по порядковому номеру
-	virtual int GetCountKeyArrHandler() = 0;			//!< количество ключей в массиве обработчиков
+	//! возвращает обработчик по id
+	virtual CHandlerData* getHandler(ID idHandler) = 0;
 
-	//все что касается данных сообщения
-	virtual UINT GetMsgHandler(int key) = 0;			//!< код сообщения обработчика, по порядковому номеру key в общем массиве обработчиков для данного элемента
-	virtual WPARAM GetWParamHandler(int key) = 0;		//!< wParam обработчика, по порядковому номеру key в общем массиве обработчиков для данного элемента
-	virtual bool GetConsiderWParamHandler(int key) = 0;	//!< учитывать WParam? по порядковому номеру key в общем массиве обработчиков для данного элемента
-	virtual LPARAM GetLParamHandler(int key) = 0;		//!< lParam обработчика, по порядковому номеру key в общем массиве обработчиков для данного элемента
-	virtual bool GetConsiderLParamHandler(int key) = 0;	//!< учитывать LParam? по порядковому номеру key в общем массиве обработчиков для данного элемента
+	//! количество ключей в массиве обработчиков
+	virtual int getCountHandlers() = 0;
 
-	virtual bool IsMainFunction(int key) = 0;	//!< это главная функция? по порядковому номеру key в общем массиве обработчиков для данного элемента
-	virtual LRESULT ExecuteHandler(int key, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) = 0;	//!< вызвать функцию обработчик
+	//! вызвать функцию обработчик
+	virtual LRESULT executeHandler(ID idHandler, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;
 	
 	//!@}
 
+
 	/*! \name Обновление позиций относительно родителя
 	@{*/
 
-	virtual void UpdateSize() = 0;	//!< обновление координат и размеров элемента относительно его родителя, обычно вызывается установленными обработчиками
-	virtual void UpdateRect() = 0;	//!< обновление внутрненних данных для #UpdateSize
+	//! обновление координат и размеров элемента относительно его родителя, обычно вызывается установленными обработчиками
+	virtual void updateSize() = 0;
+
+	//! обновление внутрненних данных для #UpdateSize
+	virtual void updateRect() = 0;
 
-	SXRectBool GAlign;	//!< данные регулирующие размеры элемента при изменении размеров его родителя, каждый компонент SXRectBool установленный в true привязывает сторону элемента к его родителю изменяя ее при манипуляциях с изменением стороны с родителем
+
+	//! закрепление сторон элемента за позициями его родителя, если сторона закреплена, то будет реагировать на изменения размеров родителя, по умолчанию все false
+	virtual void setFollowParentSides(bool canTop, bool canBottom, bool canRight, bool canLeft) = 0;
+	
+	//! закрепление стороны элемента за позициями его родителя
+	virtual void setFollowParentSide(SXGUI_SIDE side, bool can) = 0;
+
+	//! закреплена ли сторона за родителем?
+	virtual bool getFollowParentSide(SXGUI_SIDE side) = 0;
 
 	//!@}
 
+
 	/*! \name Данные регулирующие будет ли передвигаться определнная сторона при изменении размеров с этой стороны
 	 \note true - можно тянуть за сторону изменяя размер, false - тянуть за сторону не получится
 	@{*/
 
-	bool BFSizingChangeTop;		//!< верх
-	bool BFSizingChangeBottom;	//!< низ
-	bool BFSizingChangeRight;	//!< право
-	bool BFSizingChangeLeft;	//!< лево
+	//! установка возможности растягивать элемент за стороны, по умолчанию все true
+	virtual void setStretchSides(bool canTop, bool canBottom, bool canRight, bool canLeft) = 0;
+
+	//! установка возможности растягивать элемент за сторонe
+	virtual void setStretchSide(SXGUI_SIDE side, bool can) = 0;
+
+	//! возвращает можно ли растягивать элемент за сторону
+	virtual bool getStretchSide(SXGUI_SIDE side) = 0;
 
 	//!@}
 
-	//bool BFMinSize;	//!< установлен ли минимальный размер? если да то меньше чем #MinSizeX и #MinSizeY не будет уменьшаться
-	WORD MinSizeX;	//!< минимальный размер окна по ширине
-	WORD MinSizeY;	//!< минимальный размер окна по высоте
 
+	//! установить минимальные размеры окна, установливать надо оба, один работать не будет, по умолчанию 0 - нет минмума
+	virtual void setMixSize(UINT uMinWidth, UINT uMinHeght) = 0;
+
+	//! возвращает минимальную ширину
+	virtual UINT getMinWidth() = 0;
+
+	//! возвращает минимальную высоту
+	virtual UINT getMinHeight() = 0;
 };
 
-/*! третий (если нужен текст) родитель, непосредтсвенно не используется,
-характеризует элемент как содержащий единый текст (аля кэпшен) текстовый компонент
-*/
+//##########################################################################
+
+/*! Элемент содержащий текст, название */
 struct ISXGUITextual : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUITextual(){};
-	virtual bool SetText(const char* text) = 0;		//!< установка текста
-	virtual void GetText(char* buf, int size) = 0;	//!< записывает в buf текущий текст элемента, не больше size
-	virtual int GetTextLen() = 0;					//!< возвращает размер строки
+
+	//! установка текста
+	virtual bool setText(const char *szStr) = 0;
+
+	//! записывает в buf текущий текст элемента, не больше size
+	virtual void getText(char *szBuf, int iSize) = 0;
+
+	//! возвращает размер строки
+	virtual int getTextLen() = 0;
 };
 
 //#############################################################################
@@ -338,7 +370,7 @@ struct ISXGUITextual : public virtual ISXGUIComponent
 SXGUIBaseHandlers::InitHandlerMsg(HWND);
 \endcode
  \note Во многих функциях создания элементов используются одни и теже именования аргументов:
- - const char* caption - название окна
+ - const char *szCaption - название окна
  - WORD x,				- позиция по оси x
  - WORD y,				- позиция по оси y
  - WORD width,			- ширина
@@ -348,8 +380,8 @@ SXGUIBaseHandlers::InitHandlerMsg(HWND);
  - DWORD exstyle,		- расширенные стили WS_EX_
  - DWORD wndstyle,		- стили окна CS_
  - DWORD style,			- стили элемента WS_
- - HWND parent,			- дескриптор родителя
- - WNDPROC handler = 0	- функция обработчик, если 0 то будет назначен DefWindowProc
+ - HWND hParent,			- дескриптор родителя
+ - WNDPROC lpfnHandler = 0	- функция обработчик, если 0 то будет назначен DefWindowProc
 @{*/
 
 //! размер текста подсказки #ISXGUIHint
@@ -360,133 +392,200 @@ struct ISXGUIHint : public IBaseObject
 {
 	virtual ~ISXGUIHint(){}
 
-	//! установка времени ожидания и показа
-	virtual void SetDelayTime(
-		DWORD init,		//!< сколько ждать до появления подсказки после наведения курсора
-		DWORD autopop	//!< время показа
+	//! установка времени ожидания и показа (время в милисекундах)
+	virtual void setDelayTime(
+		UINT uInit,		//!< сколько ждать до появления подсказки после наведения курсора
+		UINT uAutopop	//!< время показа
 		) = 0;
 
-	virtual bool Parent(HWND parent) = 0;	//!< устанавливает родителя (при наведении на родителя всплывает эта подсказка)
-	virtual HWND Parent() = 0;				//!< возвращает родителя
+	//! устанавливает родителя (при наведении на родителя всплывает эта подсказка)
+	virtual bool setParent(HWND hParent) = 0;
+
+	//! возвращает родителя
+	virtual HWND getParent() = 0;
+
+	//! возвращает свой HWND
+	virtual HWND getHWND() = 0;				
+
+	//! установка видимости
+	virtual void setVisible(bool isVisible) = 0;		
+
+	//! видно ли?
+	virtual bool getVisible() = 0;				
+
 
-	virtual HWND GetHWND() = 0;				//!< возвращает свой HWND
+	//! установка текста подсказки
+	virtual void setText(const char *szStr) = 0;		
 
-	virtual void Visible(bool bf) = 0;		//!< установка видимости
-	virtual bool Visible() = 0;				//!< видно ли?
+	//! возвращает указатель на текущий текст подсказки, очищается при вызове деструктора
+	virtual const char* getText() = 0;				
 
-	virtual void SetText(const char* text) = 0;		//!< установка текста подсказки
-	virtual const char* GetText() = 0;				//!< возвращает указатель на текущий текст подсказки, очищается при вызове деструктора
-	virtual void GetText(char* buf) = 0;			//!< записывает в buf текущий текст подсказки
+	//! записывает в buf текущий текст подсказки
+	virtual void getText(char *szBuf) = 0;			
 };
 
 //! создание объекта "Hint" для элемента parent
-SX_LIB_API ISXGUIHint* SXGUICrHint(HWND parent);
+SX_LIB_API ISXGUIHint* SXGUICrHint(HWND hParent);
+
+//! создание объекта "Hint" для элемента parent
+SX_LIB_API ISXGUIHint* SXGUICrHintEx(HWND hParent, const char *szText, UINT uInit = 1000, UINT uAutopop = 10000);
+
+//#############################################################################
+
+//! стиль обычного окна, имеющего название, кнопки свернуть/развернуть/закрыть и возможность растягивать
+#define SXGUI_WND_FULL_OPT	WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION
+
+//! стиль окна только с рабочей областью
+#define SXGUI_WND_AREA	WS_CHILD
+
+//! стиль окна с рабочей областью и рамкой
+#define SXGUI_WND_AREA_BORDER	WS_CHILD | WS_BORDER
+
+//! стиль диалогового окна, с названием и кнопкой закрыть
+#define SXGUI_WND_DIALOG	WS_DLGFRAME | WS_SYSMENU | WS_CAPTION
+
+//! стиль диалогового окна, с названием и кнопками свернуть/закрыть
+#define SXGUI_WND_DIALOG_MINIMIZE	WS_DLGFRAME | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION
+
+//! стиль диалогового окна с меньшим по высоте заголовоком, с названием и кнопкой закрыть
+#define SXGUI_WND_MINDIALOG	WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED
 
-////////////////////////////////////////////////////////////////////////////
 
 /*! элемент "Window" - окно. 
 По дефолту обработчиком назначается DefWindowProc, 
-чтобы функционировали свойства SXGUIComponent необходимо указать стандартный для всех элементов обработчик WndProcAllDefault
+чтобы функционировали свойства ISXGUIComponent необходимо указать стандартный для всех элементов обработчик WndProcAllDefault
 */
 struct ISXGUIBaseWnd : public virtual ISXGUITextual
 {
 	virtual ~ISXGUIBaseWnd(){};
-	
-	//set/get цвет фона элемента
-	virtual bool SetColorBrush(BYTE r, BYTE g, BYTE b) = 0;	//!< покомпонентная установка цвета фона
-	virtual bool SetColorBrush(DWORD color) = 0;			//!< установка цвета фона
-	virtual DWORD GetColorBrush() = 0;						//!< возвращает текущее значение цвета фона
-	virtual HBRUSH GetBrush() = 0;							//!< возвращает дескриптор "кисти" фона
 
 	/*! \name Прозрачность окна
-	 \note Коэфициент прозрачности лежит в пределах [0,255] где 0 - полностью прозрачное, 255 - полностью непрозрачное
+	 \note Коэфициент прозрачности лежит в пределах [0,1] где 0 - полностью прозрачное, 1 - полностью непрозрачное
 	@{*/
 
-	virtual bool Alpha(WORD alpha) = 0;		//!< установить коэфициент прозрачности
-	virtual WORD Alpha() = 0;				//!< возвращает коэфициент прозрачности
-	virtual bool AlphaBlend(bool bf) = 0;	//!< установка прозрачного стиля (true - использовать коэфициент прозрачности, false - не использовать)
-	virtual bool AlphaBlend() = 0;			//!< установлен ли прозрачный стиль?
+	//! установить коэфициент прозрачности
+	virtual bool setAlpha(float fAlpha) = 0;
+
+	//! возвращает коэфициент прозрачности
+	virtual float getAlpha() = 0;
+
+	//! установка прозрачного стиля (true - использовать коэфициент прозрачности, false - не использовать)
+	virtual bool setAlphaBlend(bool isBlend) = 0;
+
+	//! установлен ли прозрачный стиль?
+	virtual bool getAlphaBlend() = 0;
 	
 	//!@}
 };
 
 //! создает экземплляр объекта "Window", и возвращает указатель
 SX_LIB_API ISXGUIBaseWnd* SXGUICrBaseWnd(
-	const char* class_name, //!< имя класса окна
-	const char* caption,	//!< название окна
-	const char* menu,		//!< имя ресурса меню класса, которое как имя показывается в файле ресурса, 0 - в случае отсутствия
-	WORD menu_id,			//!< идентификатор меню в ресурсах, 0 - в случае отсутствия
-	int x,					//!< позиция по оси x
-	int y,					//!< позиция по оси y
-	WORD width,				//!< ширина
-	WORD heigth,			//!< высота
-	HICON icon,				//!< дескриптор иконки, 0 - в случае отсутствия
-	HCURSOR cursor,			//!< дескриптор курсора, 0 - в случае отсутствия
-	HBRUSH brush,			//!< дескриптор кисти окна (цвета фона), 0 - в случае отсутствия
-	DWORD exstyle,			//!< расширенные стили WS_EX_
-	DWORD wndstyle,			//!< стили окна CS_
-	DWORD style,			//!< стили элемента WS_
-	HWND parent,			//!< дескриптор родителя
-	WNDPROC handler = 0		//!< функция обработчик, если 0 то будет назначен DefWindowProc
+	const char *szCaption,	//!< название окна
+	int iX,					//!< позиция по оси x
+	int iY,					//!< позиция по оси y
+	int width,				//!< ширина
+	int heigth,				//!< высота
+	DWORD dwExStyle,		//!< расширенные стили WS_EX_
+	DWORD dwStyle,			//!< стили элемента WS_
+	HWND hParent,			//!< дескриптор родителя
+	WNDPROC lpfnHandler = 0,//!< функция обработчик, если 0 то будет назначен общий WndProcAllDefault
+	ID idObj = -1
 	);
 
-////////////////////////////////////////////////////////////////////////////
+//! создает экземплляр объекта "Window", и возвращает указатель
+SX_LIB_API ISXGUIBaseWnd* SXGUICrBaseWndEx(
+	const char *szClassName,//!< имя класса окна
+	const char *szCaption,	//!< название окна
+	int iX,					//!< позиция по оси x
+	int iY,					//!< позиция по оси y
+	int width,				//!< ширина
+	int heigth,				//!< высота
+	HICON hIcon,			//!< дескриптор иконки, 0 - в случае отсутствия
+	HCURSOR hCursor,		//!< дескриптор курсора, 0 - в случае отсутствия
+	HBRUSH hBbrush,			//!< дескриптор кисти окна (цвета фона), 0 - в случае отсутствия
+	DWORD dwExStyle,		//!< расширенные стили WS_EX_
+	DWORD dwWndStyle,		//!< стили окна CS_
+	DWORD dwStyle,			//!< стили элемента WS_
+	HWND hParent,			//!< дескриптор родителя
+	WNDPROC lpfnHandler = 0,//!< функция обработчик, если 0 то будет назначен общий WndProcAllDefault
+	ID idObj = -1
+	);
+
+//#############################################################################
+
+#define SXGUI_DEF_STATIC "STATIC"
 
 //! элемент "Static" простое текстовое поле без возможности пользовательского редактирования, также можно создать при помощи него линию горизонтальную/вертикальную
 struct ISXGUIStatic : public virtual ISXGUITextual
 {
 	virtual ~ISXGUIStatic(){}
-	virtual int Align() = 0;			//!< возвращает тип выравнивания текста SXGUI_TEXT_ALIGN_
-	virtual bool Align(int align) = 0;	//!< устанавливает выравнивание текста SXGUI_TEXT_ALIGN_
 
-	virtual bool WordWrap() = 0;		//!< установлен ли автоперенос строк
-	virtual bool WordWrap(bool bf) = 0; //!< манипуляция со свойством автоперенос строк
+	//! возвращает тип выравнивания текста #SXGUI_TEXT_ALIGN
+	virtual SXGUI_TEXT_ALIGN getAlign() = 0;
+
+	//! устанавливает выравнивание текста #SXGUI_TEXT_ALIGN
+	virtual bool setAlign(SXGUI_TEXT_ALIGN align) = 0;
+
+
+	//! установлен ли автоперенос строк
+	virtual bool getWordWrap() = 0;
+
+	//! манипуляция со свойством автоперенос строк
+	virtual bool setWordWrap(bool isWordWrap) = 0;
 };
 
 //! создает экземплляр объекта "Static", и возвращает указатель
-SX_LIB_API ISXGUIStatic* SXGUICrStaticEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIStatic* SXGUICrStaticEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExStyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler = 0, ID idObj = -1);
 
 //! создает экземплляр объекта "Static", и возвращает указатель
-SX_LIB_API ISXGUIStatic* SXGUICrStatic(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIStatic* SXGUICrStatic(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler = 0, ID idObj = -1);
 
 /*! создает экземплляр объекта "Static" который представлен линией, и возвращает указатель
- \param vertical - вертикальная линия (true) или горизонтальная (false)
+ \param isVertical - вертикальная линия (true), горизонтальная (false)
 */
-SX_LIB_API ISXGUIStatic* SXGUICrStaticLine(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool vertical);
-
-////////////////////////////////////////////////////////////////////////////
+SX_LIB_API ISXGUIStatic* SXGUICrStaticLine(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler = 0, ID idObj = -1, bool isVertical = false);
 
-/*! \name Типы загружаемого фона элемента #ISXGUIButton
-@{*/
-
-#define SXGUI_BUTTON_IMAGE_NONE		0	/*!< не использовать загружаемый фон */
-#define SXGUI_BUTTON_IMAGE_ICON		1	/*!< загружать иконку (.ico) */
-#define SXGUI_BUTTON_IMAGE_BITMAT	2	/*!< загружать изображение (.bmp) */
+//#############################################################################
 
-//!@}
+//! Типы загружаемого фона элемента #ISXGUIButton
+enum SXGUI_BUTTON_IMAGE
+{
+	SXGUI_BUTTON_IMAGE_NONE = 0,	/*!< не использовать загружаемый фон */
+	SXGUI_BUTTON_IMAGE_ICON = 1,	/*!< загружать иконку (.ico) */
+	SXGUI_BUTTON_IMAGE_BITMAT = 2,	/*!< загружать изображение (.bmp) */
+};
 
 //! элемент "button" - кнопка
 struct ISXGUIButton : public virtual ISXGUITextual
 {
 	virtual ~ISXGUIButton(){}
-	virtual bool SetIconInFile(const char* path) = 0;	//!< загрузка на фон иконки (.ico)
-	virtual bool SetBmpInFile(const char* path) = 0;	//!< загрузка на фон изображения (.bmp)
 
-	virtual bool SetIconInResourse(WORD id) = 0;		//!< подгрузка на фон иконки (.ico) из ресурсов
-	virtual bool SetBmpInResourse(WORD id) = 0;			//!< подгрузка на фон изображения (.bmp) из ресурсов
+	//! загрузка на фон иконки (.ico)
+	virtual bool setIconFromFile(const char *szPath) = 0;	
+
+	//! загрузка на фон изображения (.bmp)
+	virtual bool setBmpFromFile(const char *szPath) = 0;
+
+	//! подгрузка на фон иконки (.ico) из ресурсов
+	virtual bool setIconFromResourse(UINT idRes) = 0;		
+
+	//! подгрузка на фон изображения (.bmp) из ресурсов
+	virtual bool setBmpFromResourse(UINT idRes) = 0;
 };
 
 //! создает экземплляр объекта "button", и возвращает указатель
-SX_LIB_API ISXGUIButton* SXGUICrButtonEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIButton* SXGUICrButtonEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 /*! создает экземплляр объекта "button", и возвращает указатель
  \param image тип загружаемого фона из возможных вариантов SXGUI_BUTTON_IMAGE_*/
-SX_LIB_API ISXGUIButton* SXGUICrButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, int image, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIButton* SXGUICrButton(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, SXGUI_BUTTON_IMAGE type_image, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
+
+#define SXGUI_DEF_BUTTONIMG "SXGUIBUTTONIMG"
 
 //! обработчик для элемента #ISXGUIButtonImg
-SX_LIB_API LRESULT WndProcButtonImgDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+SX_LIB_API LRESULT WndProcButtonImgDefault(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
 
 #define SXGUI_BI_SIZE_LINE			1	/*!< толщина рамки элемента #ISXGUIButtonImg */
 
@@ -508,244 +607,370 @@ struct ISXGUIButtonImg : public virtual ISXGUIComponent
 	virtual ~ISXGUIButtonImg(){}
 
 	//! перезагрузка изображения (.bmp) path - путь до изображения
-	virtual void ReInitImage(const char* path) = 0;
+	virtual void reInitImage(const char *szPath) = 0;
 
-	//! в buf записывает путь до текущего загруженного изображения
-	virtual void GetPathForImg(char* buf) = 0;
+	//! в szBuf записывает путь до текущего загруженного изображения
+	virtual void getPathForImg(char *szBuf) = 0;
 
 	//! установка необходимых обработчиков, вызывать сразу после создания
-	virtual void InitCallBack() = 0;
+	virtual void initCallBack() = 0;
 
-	virtual void SetColorFrame(BYTE r, BYTE g, BYTE b) = 0;	//!< покомпонентная установка цвета рамки
-	virtual void SetColorFrame(DWORD color) = 0;			//!< установка цвета рамки
-	virtual DWORD GetColorFrame() = 0;						//!< возвращает текущее значение цвета рамки
 
-	virtual void SetColorBk(BYTE r, BYTE g, BYTE b) = 0;	//!< покомпонентная установка цвета заднего фона
-	virtual void SetColorBk(DWORD color) = 0;				//!< установка цвета заднего фона
-	virtual DWORD GetColorBk() = 0;							//!< возвращает текущее значение цвета заднего фона
+	//! установка цвета рамки
+	virtual void setColorFrame(DWORD dwColor) = 0;
+
+	//! возвращает текущее значение цвета рамки
+	virtual DWORD getColorFrame() = 0;
 
-	virtual void SetColorAlpha(BYTE r, BYTE g, BYTE b) = 0;	//!< покомпонентная установка отсекаемого цвета в изображении
-	virtual void SetColorAlpha(DWORD color) = 0;			//!< установка отсекаемого цвета в изображении
-	virtual DWORD GetColorAlpha() = 0;						//!< возвращает текущее значение отсекаемого цвета в изображении
-	
 
-	virtual void SetEnable(bool bf) = 0;	//!< установка состояния кнопки (активна/пассивна)
-	virtual bool GetEnable() = 0;			//!< возвращает состояния кнопки (активна/пассивна)
+	//! установка цвета заднего фона
+	virtual void setColorBk(DWORD dwColor) = 0;
+
+	//! возвращает текущее значение цвета заднего фона
+	virtual DWORD getColorBk() = 0;
+
+
+	//! установка отсекаемого цвета в изображении
+	virtual void setColorAlpha(DWORD dwColor) = 0;
+
+	//! возвращает текущее значение отсекаемого цвета в изображении
+	virtual DWORD getColorAlpha() = 0;
 	
-	virtual void SetEnableActive(bool bf) = 0;	//!< установка состояния активности кнопки (включена/выключена)
-	virtual bool GetEnableActive() = 0;			//!< включено ли изменение активности кнопки?
 
-	virtual void SetParentGroup(bool bf) = 0;	//!< установить входит/не входит кнопка в группу остальных таких же кнопок своего родителя
-	virtual bool GetParentGroup() = 0;			//!< входит ли кнопка в группу остальных таких же кнопок своего родителя?
+	//! установка состояния активности кнопки (включена/выключена)
+	virtual void setActive(bool isActive) = 0;
+
+	//! включено ли изменение активности кнопки?
+	virtual bool getActive() = 0;
+
+
+	//! установить входит/не входит кнопка в группу остальных таких же кнопок своего родителя
+	virtual void setParentGroup(bool isInParentGroup) = 0;
+
+	//! входит ли кнопка в группу остальных таких же кнопок своего родителя?
+	virtual bool getParentGroup() = 0;
 };
 
 /*! создает экземплляр объекта "ButtonImg", и возвращает указатель
- \param path путь до загружаемого изображения (.bmp)
- \param alpha_color исключаемый цвет 
- \param bk_color цвет фона кнопки
+ \param szPath путь до загружаемого изображения (.bmp)
+ \param dwAlphaColor исключаемый цвет 
+ \param bkColor цвет фона кнопки
 */
-SX_LIB_API ISXGUIButtonImg* SXGUICrButtonImgLoad(const char* path, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIButtonImg* SXGUICrButtonImgLoad(const char *szPath, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwAlphaColor, DWORD bkColor, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 /*! создает экземплляр объекта "ButtonImg", и возвращает указатель
- \param button идентификатор ресурса подгружаемого изображения (.bmp)
- \param alpha_color исключаемый цвет
- \param bk_color цвет фона кнопки
+ \param uButton идентификатор ресурса подгружаемого изображения (.bmp)
+ \param dwAlphaColor исключаемый цвет
+ \param bkColor цвет фона кнопки
 */
-SX_LIB_API ISXGUIButtonImg* SXGUICrButtonImgRes(WORD button, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIButtonImg* SXGUICrButtonImgRes(UINT uButton, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwAlphaColor, DWORD bkColor, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "Edit" - текстовове поле с возможностью пользовательского редактирования
 struct ISXGUIEdit : public virtual ISXGUITextual
 {
 	virtual ~ISXGUIEdit(){}
-	virtual bool ReadOnly() = 0;		//!< установлено ли свойство "только для чтения"
-	virtual bool ReadOnly(bool bf) = 0;	//!< манипулирует свойством "только для чтения", возвращает результат действия
 
-	//дефолтово скрытый текст заменяется на *
-	virtual bool Password() = 0;		//!< установлено ли свойств скрытия текста
-	virtual bool Password(bool bf) = 0;	//!< манипулирует свойством скрытия текста
+	//! установлено ли свойство "только для чтения"
+	virtual bool getReadOnly() = 0;
+
+	//! манипулирует свойством "только для чтения", возвращает результат действия
+	virtual bool setReadOnly(bool isReadOnly) = 0;
 
-	virtual int Align() = 0;			//!< возвращает флаг выравнивания текста SXGUI_TEXT_ALIGN_
-	virtual bool Align(int align) = 0;	//!< устанавливает выравнивание SXGUI_TEXT_ALIGN_
+
+	//! установлено ли свойств скрытия текста, текст заменяется на *
+	virtual bool getStatePassword() = 0;
+
+	//! манипулирует свойством скрытия текста, текст заменяется на *
+	virtual bool setStatePassword(bool IsStatePassword) = 0;
+
+
+	//! возвращает флаг выравнивания текста #SXGUI_TEXT_ALIGN
+	virtual int getAlign() = 0;
+
+	//! устанавливает выравнивание #SXGUI_TEXT_ALIGN
+	virtual bool setAlign(int align) = 0;
 };
 
 //! создает экземплляр объекта "Edit", и возвращает указатель
-SX_LIB_API ISXGUIEdit* SXGUICrEditEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIEdit* SXGUICrEditEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "Edit", и возвращает указатель
-SX_LIB_API ISXGUIEdit* SXGUICrEdit(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIEdit* SXGUICrEdit(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "UpDown" - кнопки увеличения/уменьшения, обычно используется совместно с элементом "Edit" (#ISXGUIEdit)
 struct ISXGUIUpDown : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUIUpDown(){}
 
-	virtual void SetMinMax(long min, long max) = 0; //!< установка минимального и максимального значений
-	virtual long SetPos(long pos) = 0;				//!< устанавливает текущую позицию (число)
+	//! установка минимального и максимального значений
+	virtual void setMinMax(int iMin, int iMax) = 0;
+
+	//! устанавливает текущую позицию (число)
+	virtual long setPos(int iPos) = 0;
+
+
+	//! возвращает минимальное число
+	virtual long getMin() = 0;
 
-	virtual long GetMin() = 0;	//!< возвращает минимальное число
-	virtual long GetMax() = 0;	//!< возвращает максимальное число
-	virtual long GetPos() = 0;	//!< возвращает текущую позицию (число)
+	//! возвращает максимальное число
+	virtual long getMax() = 0;
 
-	virtual HWND SetBuddy(HWND buddy) = 0;	//!< устанавливает контроль/управление над значением в дескприторе buddy элемента
-	virtual HWND GetBuddy() = 0;			//!< возвращает HWND элемента над которым осуществляется контроль/управление
+	//! возвращает текущую позицию (число)
+	virtual long getPos() = 0;
+
+
+	//! устанавливает контроль/управление над значением в дескприторе buddy элемента
+	virtual HWND setBuddy(HWND hBuddy) = 0;
+
+	//! возвращает HWND элемента над которым осуществляется контроль/управление
+	virtual HWND getBuddy() = 0;
 };
 
 //! создает экземплляр объекта "UpDown", и возвращает указатель
-SX_LIB_API ISXGUIUpDown* SXGUICrUpDownEx(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id, HWND buddy);
+SX_LIB_API ISXGUIUpDown* SXGUICrUpDownEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1, HWND hBuddy = 0);
 
 /*! создает экземплляр объекта "UpDown", и возвращает указатель
- \param buddy HWND элемента (обычно "Edit" #ISXGUIEdit) над которым устанавливается контроль и управление
- \param align_left true - выравнивание по левому краю, false - выравнивание по правому краю
+ \param hBuddy HWND элемента (обычно "Edit" #ISXGUIEdit) над которым устанавливается контроль и управление
+ \param isAlignLeft true - выравнивание по левому краю, false - выравнивание по правому краю
 */
-SX_LIB_API ISXGUIUpDown* SXGUICrUpDown(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, HWND buddy, bool align_left);
+SX_LIB_API ISXGUIUpDown* SXGUICrUpDown(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1, HWND hBuddy = 0, bool isAlignLeft = false);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "Memo" - текстовое поле с возможностью создания новых строк
 struct ISXGUIMemo : public virtual ISXGUIEdit
 {
 	virtual ~ISXGUIMemo(){}
-	virtual bool WordWrap() = 0;		//!< установлен ли автоперенос слов
-	virtual bool WordWrap(bool bf) = 0;	//!< установка свойства автопереноса слов
-
-	//SXGUIFuctinon
-	virtual bool ScrollBars(bool h, bool v) = 0;					//!< 
-	virtual bool ScrollBarV() = 0;									//!< 
-	virtual bool ScrollBarH() = 0;									//!< 
-	virtual bool ScrollLine(WORD scroll, WORD dir, int count) = 0;	//!< 
+
+	//! установлен ли автоперенос слов
+	virtual bool getWordWrap() = 0;
+
+	//! установка свойства автопереноса слов
+	virtual bool setWordWrap(bool isWordWrap) = 0;
 };
 
 //! создает экземплляр объекта "Memo", и возвращает указатель
-SX_LIB_API ISXGUIMemo* SXGUICrMemoEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIMemo* SXGUICrMemoEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "Memo", и возвращает указатель
-SX_LIB_API ISXGUIMemo* SXGUICrMemo(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIMemo* SXGUICrMemo(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "ComboBox" - раскрывающийся список с возможностью едиинчного выбора
 struct ISXGUIComboBox : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUIComboBox(){}
-	virtual bool	InsertItem(int index, const char* text) = 0;	//!< вставка текста в строку
-	virtual bool	DeleteItem(int index) = 0;						//!< удаление строки
 
-	virtual int		GetCount() = 0;									//!< количество строк
+	//! вставка текста в строку
+	virtual bool insertItem(ID idItem, const char *szStr) = 0;
+
+	//! удаление строки
+	virtual bool deleteItem(ID idItem) = 0;
+
+	//! количество строк
+	virtual int getCount() = 0;									
+
+
+	//! выделяет определенную строку
+	virtual bool setSel(ID idItem) = 0;
+
+	//! номер выделенной строки
+	virtual ID getSel() = 0;									
+
+
+	//! установка для строки userdata
+	virtual bool setItemData(ID idItem, LPARAM lData) = 0;
+
+	//! получение userdata
+	virtual LPARAM getItemData(ID idItem) = 0;
+
+
+	//! удаляет все элементы
+	virtual bool clear() = 0;									
+
 
-	virtual bool	SetSel(int index) = 0;							//!< выделяет определенную строку
-	virtual int		GetSel() = 0;									//!< номер выделенной строки
+	//! вставка текста в строку, подобие замены
+	virtual bool setItemText(ID idItem, const char *szStr) = 0;
 
-	virtual bool	SetItemData(int index, LPARAM data) = 0;		//!< установка для строки userdata (32 бита)
-	virtual LPARAM	GetItemData(int index) = 0;						//!< получение userdata
+	//! получить текст из строки 
+	virtual void getItemText(ID idItem, char *szBuf) = 0;
 
-	virtual bool	Clear() = 0;									//!< удаляет все элементы
+	//! получить длину текста из строки
+	virtual int getItemTextLength(ID idItem) = 0;
 
-	virtual bool	SetItemText(int index, const char* text) = 0;	//!< вставка текста в строку, подобие замены
-	virtual void	GetItemText(int index, char* buf) = 0;			//!< получить текст из строки 
-	virtual int		GetItemTextLength(int index) = 0;				//!< получить длину текста из строки
-	virtual bool	AddItem(const char* text) = 0;					//!< добавляет в конец новую строку
+	//! добавляет в конец новую строку
+	virtual bool addItem(const char *szStr) = 0;					
 };
 
 //! создает экземплляр объекта "ComboBox", и возвращает указатель
-SX_LIB_API ISXGUIComboBox* SXGUICrComboBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIComboBox* SXGUICrComboBoxEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 /*! создает экземплляр объекта "ComboBox", и возвращает указатель
  \note Параметр style: (parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS
 */
-SX_LIB_API ISXGUIComboBox* SXGUICrComboBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIComboBox* SXGUICrComboBox(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "ListBox" - список с возможностью выбора (как единичного так и множественного)
 struct ISXGUIListBox : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUIListBox(){}
-	virtual bool	MultipleSel() = 0;							//!< установленно ли свойство множественного выделения строк
 
-	virtual bool	InsertItem(int index, const char* text) = 0;//!< вставить текст в строку с номером index
-	virtual bool	AddItem(const char* text) = 0;				//!< добавить строку в конец списка
-	virtual int		GetCountItem() = 0;							//!< возвращает количество строк
+	//! установленно ли свойство множественного выделения строк
+	virtual bool getStateMultiSel() = 0;
+	
+	/*! установка состояния мультивыделения
+	 \todo протестировать изменение состояния мультивыделения
+	*/
+	virtual void setStateMultiSel(bool isMultiSel) = 0;
+
+
+	//! вставить текст в строку с номером index
+	virtual bool insertItem(ID idString, const char *szText) = 0;
+
+	//! добавить строку в конец списка
+	virtual bool addItem(const char *szText) = 0;
+
+	//! возвращает количество строк
+	virtual int getItemCount() = 0;
+
+
+	//! удалить строку с номером index
+	virtual bool deleteItem(ID idString) = 0;
+
 
-	virtual bool	DeleteItem(int index) = 0;					//!< удалить строку с номером index
+	//! выделить строку с номером index
+	virtual bool setSel(ID idString) = 0;
+	virtual int	getSel() = 0;
 
-	virtual bool	SetSel(int index) = 0;						//!< выделить строку с номером index
-	virtual int		GetSel() = 0;
 
-	virtual bool	SetItemData(int index, LPARAM data) = 0;	//!< установить userdata для строки с номером index
-	virtual LPARAM	GetItemData(int index) = 0;					//!< возвращает userdata
+	//! установить userdata для строки с номером index
+	virtual bool setItemData(ID idString, LPARAM lData) = 0;
 
-	virtual bool	Clear() = 0;								//!< очистить
+	//! возвращает userdata
+	virtual LPARAM getItemData(ID idString) = 0;
 
-	virtual bool	SetTextItem(int index, const char* text) = 0;//!< установить текст в строке с номером index
-	virtual void	GetItemText(int index, char* buf) = 0;		//!< возвращает текст из строки
 
-	virtual int		GetItemTextLength(int index) = 0;			//!< возвращает длину текста в строке
+	//! очистить 
+	virtual bool clear() = 0;								
 
-	virtual int		GetMultipleSelCount() = 0;					//!< возвращает количество выделенных строк, если #GetMultipleSel() == true
 
-	virtual bool	SetMultipleSel(int index, bool sel) = 0;	//!< устанавливает выделена/не выделена строка
-	virtual bool	GetMultipleSel(int index) = 0;				//!< возвращает выделена ли строка
+	//! установить текст в строке с номером index
+	virtual bool setItemText(ID idString, const char *szText) = 0;
 
-	virtual void	GetMultipleSelArr(int** arr) = 0;			//!< возвращает массив с номерами выделенных строк
+	//! возвращает текст из строки
+	virtual void getItemText(ID idString, char *szBuf) = 0;
 
-	//SXGUIFuctinon
-	virtual bool ScrollBars(bool h, bool v) = 0;
-	virtual bool ScrollBarV() = 0;
-	virtual bool ScrollBarH() = 0;
-	virtual bool ScrollLine(WORD scroll, WORD dir, int count) = 0;
+
+	//! возвращает длину текста в строке
+	virtual int getItemTextLength(ID idString) = 0;
+
+
+	//! возвращает количество выделенных строк, если #GetMultipleSel() == true
+	virtual int	getMultiSelCount() = 0;					
+
+	//! устанавливает выделена/не выделена строка
+	virtual bool setMultiSel(ID idString, bool sel) = 0;
+
+	//! возвращает выделена ли строка
+	virtual bool getMultiSel(ID idString) = 0;
+
+	/*! инициализирует ppArr и записывает массив с номерами выделенных строк, возвращает размер массива
+	 \todo придумать как упростить, и желательно перевести на String
+	*/
+	virtual int getMultiSelArr(int **ppArr) = 0;			
 };
 
 //! создает экземплляр объекта "ListBox", и возвращает указатель
-SX_LIB_API ISXGUIListBox* SXGUICrListBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIListBox* SXGUICrListBoxEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "ListBox", и возвращает указатель
-SX_LIB_API ISXGUIListBox* SXGUICrListBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool miltiple_sel);
+SX_LIB_API ISXGUIListBox* SXGUICrListBox(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1, bool isMiltipleSel = false);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "ListView" - таблица с возможностью выбора
 struct ISXGUIListView : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUIListView(){}
 
-	virtual int InsertColumn(char* text, int col, int width) = 0;	//!< вставить столбец по индексу
-	virtual int AddColumn(char* text, int width) = 0;				//!< добавить (последним) столбец
-	virtual void DeleteColumn(int col) = 0;							//!< удалить столбец по индексу
-	virtual int GetCountColumns() = 0;								//!< количество столбцов
+	/*! вставить столбец по индексу
+	 \todo надо заюзать выделение на стеке через alloca или calloc, а сейчас new
+	*/
+	virtual int insertColumn(const char *szText, int iColumn, int iWidth) = 0;	
 
-	virtual int AddString(long data = -1) = 0;	//!< добавить строку
-	virtual void DeleteString(int str) = 0;		//!< удалить строку
-	virtual int GetCountString() = 0;			//!< количество строк
+	//! добавить (последним) столбец
+	virtual int addColumn(const char *szText, int iWidth) = 0;
 
-	virtual void SetTextItem(char* text, int col, int str) = 0;					//!< установить текст в ячейку
-	virtual void GetTextItem(char* text, int col, int str, int sizebuff) = 0;	//!< получить текст из ячейки
+	//! удалить столбец по индексу
+	virtual void deleteColumn(int iColumn) = 0;
 
-	virtual void SetDataItem(int str, long data) = 0;
-	virtual long GetDataItem(int str) = 0;
+	//! количество столбцов
+	virtual int getColumnsCount() = 0;
 
-	virtual int GetSelString(int start = -1) = 0;	//!< возвращает индекс первого найденного выделения после start (-1 - значит сначала искать)
-	virtual void SetSelString(int str) = 0;			//!< выделение строки по индексу
-	virtual int GetSelColumn() = 0;					//!< возвращает индекс выделеного столбца
-	virtual void SetSelColumn(int col) = 0;			//!< выделение столбца по индексу
 
-	virtual void Clear() = 0;						//!< очистка всей таблицы
-	virtual void ClearStrings() = 0;				//!< очистка только строк
+	//! добавить строку
+	virtual int addString(LPARAM lData = -1) = 0;
+
+	//! удалить строку
+	virtual void deleteString(int iString) = 0;
+
+	//! количество строк
+	virtual int getStringCount() = 0;
+
+
+	//! установить текст в ячейку
+	virtual void setItemText(char *szText, int iColumn, int iString) = 0;
+
+	//! получить текст из ячейки
+	virtual void getItemText(char *szText, int iColumn, int iString, int iSizeBuff) = 0;
+
+
+	//! установить userdata на строку
+	virtual void setItemData(int iString, LPARAM lData) = 0;
+
+	//! возвращает userdata строки iString
+	virtual LPARAM getItemData(int iString) = 0;
+
+
+	//! возвращает индекс первого найденного выделения после start (-1 - значит сначала искать)
+	virtual int getSelString(int iStart = -1) = 0;	
+
+	//! выделение строки по индексу
+	virtual void setSelString(int iString) = 0;
+
+	//! возвращает индекс выделеного столбца
+	virtual int getSelColumn() = 0;					
+
+	//! выделение столбца по индексу
+	virtual void setSelColumn(int iColumn) = 0;
+
+
+	//! очистка всей таблицы
+	virtual void clear() = 0;						
+
+	//! очистка только строк
+	virtual void clearStrings() = 0;				
 };
 
-//! создает экземплляр объекта "istView", и возвращает указатель
-SX_LIB_API ISXGUIListView* SXGUICrListViewEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+//! создает экземплляр объекта "ListView", и возвращает указатель
+SX_LIB_API ISXGUIListView* SXGUICrListViewEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-//! создает экземплляр объекта "istView", и возвращает указатель
-SX_LIB_API ISXGUIListView* SXGUICrListView(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+//! создает экземплляр объекта "ListView", и возвращает указатель
+SX_LIB_API ISXGUIListView* SXGUICrListView(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
+
+//#############################################################################
 
-////////////////////////////////////////////////////////////////////////////
+#define SXGUI_DEF_GROUPBOX "SXGUIGROUPBOX"
 
-//! обработчик для элемента #ISXGUIGroupBox
-SX_LIB_API LRESULT WndProcGroupBoxPaint(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+//! обработчик WM_PAINT для GroupBox
+SX_LIB_API LRESULT WndProcGroupBoxPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
 
 //! элемент "GroupBox" - контейнер для других элементов, с рамкой и необязательным заголовком, класс переопределен, вся занимаемая область данным элементом принадлжеит ему, и как следствие InvalidateRect приведет к обновлению всей области
 struct ISXGUIGroupBox : public virtual ISXGUITextual
@@ -754,134 +979,179 @@ struct ISXGUIGroupBox : public virtual ISXGUITextual
 };
 
 //! создает экземплляр объекта "GroupBox", и возвращает указатель
-SX_LIB_API ISXGUIGroupBox* SXGUICrGroupBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIGroupBox* SXGUICrGroupBoxEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "GroupBox", и возвращает указатель
-SX_LIB_API ISXGUIGroupBox* SXGUICrGroupBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIGroupBox* SXGUICrGroupBox(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "ProgressBar" - полоса состояния/прогресса выполнения чего либо
 struct ISXGUIProgressBar : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUIProgressBar(){}
-	//получить/установить позицию прогресса
-	virtual int GetPos() = 0;				//!< возвращает текущую позицию
-	virtual int SetPos(int pos) = 0;		//!< возвращает старую позицию
 
-	//получить/установить размер шага прогресса
-	virtual int GetStep() = 0;				//!< возвращает текущий размер шага
-	virtual int SetStep(int step) = 0;		//!< возвращает старый размер шага
+	//! возвращает текущую позицию прогресса
+	virtual int getPos() = 0;				
+
+	//! устанавливает новую и возвращает старую позицию прогресса
+	virtual int setPos(int pos) = 0;		
+
+
+	//! возвращает текущий размер шага
+	virtual int getStep() = 0;				
+
+	//! устанавливает новый и возвращает старый размер шага
+	virtual int setStep(int step) = 0;		
+
+
+	//! установить позицию по количеству шагов, возвращает предшествующую позицию
+	virtual int setPosSteps(int steps) = 0;	
+
+	//! увеличить позицию на один шаг, возвращает предшествующую позицию
+	virtual int setOneStep() = 0;			
 
-	//возвращают предшествующую позицию
-	virtual int SetPosSteps(int steps) = 0;	//!< установить позицию по количеству шагов
-	virtual int SetOneStep() = 0;			//!< увеличить позицию на один шаг
 
 	/*! устанавливает позицию минимума и максимума прогресса
-	 \return При удачном выполнении возвращает true, иначе false */
-	virtual bool SetMinMax(int min, int max) = 0;
+	 \return При удачном выполнении возвращает true, иначе false 
+	 */
+	virtual bool setMinMax(int min, int max) = 0;
+
+
+	//! возвращают минимальную позицию прогресса
+	virtual int getMin() = 0;	
 
-	virtual int GetMin() = 0;	//!< возвращают минимальную позицию прогресса
-	virtual int GetMax() = 0;	//!< возвращают максимальную позицию прогресса
+	//! возвращают максимальную позицию прогресса
+	virtual int getMax() = 0;	
 
 	
-	virtual bool SetBarColor(BYTE r, BYTE g, BYTE b) = 0;	//!< установить цвет полоски? при удачном выполнении возвращает true, иначе false
-	virtual DWORD GetBarColor() = 0;						//!< получить цвет полоски
+	//! установить цвет полоски? при удачном выполнении возвращает true, иначе false
+	virtual bool setColorBar(DWORD dwColor) = 0;
 
-	//установить/получить цвет фона
-	virtual bool SetBkColor(BYTE r, BYTE g, BYTE b) = 0;	//установить цвет фона, при удачном выполнении возвращает true, иначе false
-	virtual DWORD GetBkColor() = 0;							//!< получить цвет фона
+	//! получить цвет полоски
+	virtual DWORD getColorBar() = 0;						
+
+
+	//! установить цвет фона, при удачном выполнении возвращает true, иначе false
+	virtual bool setColorBk(DWORD dwColor) = 0;
+
+	//! возвращает цвет фона
+	virtual DWORD getColorBk() = 0;							
 };
 
 //! создает экземплляр объекта "GroupBox", и возвращает указатель
-SX_LIB_API ISXGUIProgressBar* SXGUICrProgressBarEx(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIProgressBar* SXGUICrProgressBarEx(int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 /*! создает экземплляр объекта "GroupBox", и возвращает указатель
  \param vertical true - вертикальное размещение, false - горизонтальное
  \param smooth true - сплошная заливка полосы, false - заливка полосы одинаковыми секциями/прямоугольниками
 */
-SX_LIB_API ISXGUIProgressBar* SXGUICrProgressBar(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool vertical, bool smooth);
+SX_LIB_API ISXGUIProgressBar* SXGUICrProgressBar(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1, bool isVertical = false, bool isSmooth = true);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "RadioButton" - переключа́тель (с необязательной подписью), позволяет выбрать одну опцию  из предопределенного набора (таких же RadioButton'ов у одного родителя)
 struct ISXGUIRadioButton : public virtual ISXGUIButton
 {
 	virtual ~ISXGUIRadioButton(){}
-	virtual void SetCheck(bool check) = 0;	//!< установка отметки
-	virtual bool GetCheck() = 0;			//!< отмечен ли?
+
+	//! установка отметки
+	virtual void setCheck(bool check) = 0;	
+
+	//! возвращает отмечен ли
+	virtual bool getCheck() = 0;			
 };
 
 //! создает экземплляр объекта "RadioButton", и возвращает указатель
-SX_LIB_API ISXGUIRadioButton* SXGUICrRadioButtonEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIRadioButton* SXGUICrRadioButtonEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "RadioButton", и возвращает указатель
-SX_LIB_API ISXGUIRadioButton* SXGUICrRadioButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
-
-////////////////////////////////////////////////////////////////////////////
+SX_LIB_API ISXGUIRadioButton* SXGUICrRadioButton(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-/*! \name Состояния выделения элемента #ISXGUICheckBox
-@{*/
-#define SXGUI_CHECKBOX_UNCHECKED		BST_UNCHECKED		/*!< не отмечен */
-#define SXGUI_CHECKBOX_CHECKED			BST_CHECKED			/*!< отмечен */
-#define SXGUI_CHECKBOX_INDETERMINATE	BST_INDETERMINATE	/*!< неопределен */
+//#############################################################################
 
-//!@}
+//! Состояния выделения элемента #ISXGUICheckBox
+enum SXGUI_CHECKBOX_STATE
+{
+	SXGUI_CHECKBOX_STATE_UNCHECKED = BST_UNCHECKED,			/*!< не отмечен */
+	SXGUI_CHECKBOX_STATE_CHECKED = BST_CHECKED,				/*!< отмечен */
+	SXGUI_CHECKBOX_STATE_INDETERMINATE = BST_INDETERMINATE,	/*!< неопределен */
+};
 
 //! элемент "CheckBox" - "галочка" (с необязательной подписью) с возможностью выбора состояния отметки
 struct ISXGUICheckBox : public virtual ISXGUIButton
 {
 	virtual ~ISXGUICheckBox(){}
-	virtual void SetCheck(int check) = 0;	//!< установка состояния отметки SXGUI_CHECKBOX_
-	virtual int GetCheck() = 0;				//!< возвращает состояние отметки SXGUI_CHECKBOX_
+
+	//! установка состояния отметки #SXGUI_CHECKBOX_STATE
+	virtual void setCheckEx(SXGUI_CHECKBOX_STATE check) = 0;
+
+	//! установка состояния отметки
+	virtual void setCheck(bool isCheck) = 0;
+
+	//! возвращает состояние отметки SXGUI_CHECKBOX_STATE
+	virtual SXGUI_CHECKBOX_STATE getCheck() = 0;
 };
 
 //! создает экземплляр объекта "CheckBox", и возвращает указатель
-SX_LIB_API ISXGUICheckBox* SXGUICrCheckBoxEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUICheckBox* SXGUICrCheckBoxEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 /*! создает экземплляр объекта "CheckBox", и возвращает указатель
- \param cb_3_state - может ли элемент иметь третье состояние "неопределенный"?
+ \param is3State - может ли элемент иметь третье состояние "неопределенный"?
 */
-SX_LIB_API ISXGUICheckBox* SXGUICrCheckBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, bool cb_3_state);
+SX_LIB_API ISXGUICheckBox* SXGUICrCheckBox(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1, bool is3State = false);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "TrackBar" - ползунок
 struct ISXGUITrackBar : public virtual ISXGUIComponent
 {
 	virtual ~ISXGUITrackBar(){}
-	virtual void SetPos(int pos) = 0;	//!< устанавливает позицию
-	virtual int GetPos() = 0;			//!< возвращает текущую позицию
 
-	virtual void SetMinMax(int min, int max) = 0;	//!< устанавливает минимальное (левое) и максимальное (правое) значения позиции
-	virtual int GetMin() = 0;			//!< возвращает текущее минимальное (левое) значение позиции
-	virtual int GetMax() = 0;			//!< возвращает текущее максимальное (правое) значение позиции
+	//! устанавливает позицию
+	virtual void setPos(int iPos) = 0;	
+
+	//! возвращает текущую позицию
+	virtual int getPos() = 0;			
+
+
+	//! устанавливает минимальное (левое) и максимальное (правое) значения позиции
+	virtual void setMinMax(int iMin, int iMax) = 0;	
+
+	//! возвращает текущее минимальное (левое) значение позиции
+	virtual int getMin() = 0;			
+
+	//! возвращает текущее максимальное (правое) значение позиции
+	virtual int getMax() = 0;			
+
 
 	/*! установка риски в позиции (между минимумом и максимумом)
 	 \note Элемент trackbar создает две крайние риски сам (если пределы от минуса (-100 к примеру) до плюса (100 к примеру) то тогда будет создана третья риска в нуле)
 	*/
-	virtual bool SetTick(int pos) = 0;	
-	virtual int GetTick(int index) = 0;	//!< возвращает позициюю риски (между минимумом и максимумом) по индексу риски
+	virtual bool setTick(int iPos) = 0;	
+
+	//! возвращает позициюю риски (между минимумом и максимумом) по индексу риски
+	virtual int getTick(int iIndex) = 0;	
 
-	virtual void SetTickFrequency(int freq) = 0;	//!< установка промежутков между рисками, значения указываются в интервалах приращения (пунктах)
+	//! установка промежутков между рисками, значения указываются в интервалах приращения (пунктах)
+	virtual void setTickFrequency(int iFreq) = 0;	
 };
 
 //! создает экземплляр объекта "TrackBar", и возвращает указатель
-SX_LIB_API ISXGUITrackBar* SXGUICrTrackBarEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUITrackBar* SXGUICrTrackBarEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "TrackBar", и возвращает указатель
-SX_LIB_API ISXGUITrackBar* SXGUICrTrackBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUITrackBar* SXGUICrTrackBar(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
-
-/*! \name Выравнивание составных частей внутри #ISXGUIStatusBar при изменении размеров
-@{*/
-
-#define SXGUI_STATUSBAR_ALIGNRS_NONE	0	/*!< без изменений */
-#define SXGUI_STATUSBAR_ALIGNRS_PERCENT	1	/*!< в процентном соотношениям к текущему состоянию */
-#define SXGUI_STATUSBAR_ALIGNRS_EQUALLY	2	/*!< равномерно одинаково */
+//#############################################################################
 
-//!@}
+//! Выравнивание составных частей внутри #ISXGUIStatusBar при изменении размеров
+enum SXGUI_STATUSBAR_ALIGN_RESIZE
+{
+	SXGUI_STATUSBAR_ALIGN_RESIZE_NONE = 0,		/*!< без изменений */
+	SXGUI_STATUSBAR_ALIGN_RESIZE_PERCENT = 1,	/*!< в процентном соотношениям к текущему состоянию */
+	SXGUI_STATUSBAR_ALIGN_RESIZE_EQUALLY = 2,	/*!< равномерно одинаково */
+};
 
 //! элемент "StatusBar" - горизонтальная полоса в нижней части родительского окна, в ней может отображать различные виды информации о состоянии
 struct ISXGUIStatusBar : public virtual ISXGUIComponent
@@ -889,36 +1159,44 @@ struct ISXGUIStatusBar : public virtual ISXGUIComponent
 	virtual ~ISXGUIStatusBar(){}
 
 	//! установка количества частей и их размеров
-	virtual bool SetCountParts(
-		int count,	//!< количество частей, оно же размер arr
-		int* arr	//!< массив с размерами в пикселях по ширине каждой части
+	virtual bool setPartsCount(
+		int iCount,	//!< количество частей, размер pArr
+		int *pArr	//!< массив с размерами в пикселях по ширине каждой части
 		) = 0;
 
-	virtual int GetCountParts(int **arr) = 0;	//!< инициализирует arr (если arr != 0) и записывает в него позиции (правая сторона клиентской области) каждой части, возвращает количество частей 
+	//! инициализирует arr (если arr != 0) и записывает в него позиции (правая сторона клиентской области) каждой части, возвращает количество частей 
+	virtual int getPartsCount(int **ppArr) = 0;
 	
 	//! устанавливает в часть текст
-	virtual bool SetTextParts(
-		int pos,			//!< номер части
-		const char* text	//!< текст
+	virtual bool setPartText(
+		int iPos,			//!< номер части
+		const char *szText	//!< текст
 		) = 0;
 
-	//!< в buf записывает текст части pos, len - размер buf
-	virtual bool GetTextParts(int pos, char* buf, int len) = 0;	
+	//! в szBuf записывает текст части iPos, iLenBuf - размер szBuf
+	virtual bool getPartText(int iPos, char *szBuf, int iLenBuf) = 0;
+
+	//! обновление с учетом установленного выравнивания, вызывать при изменении размеров
+	virtual void update() = 0;		
+
+	//! аналогично #Update
+	virtual void updateSize() = 0;	
 
-	virtual void Update() = 0;		//!< обновление с учетом установленного выравнивания, вызывать при изменении размеров
-	virtual void UpdateSize() = 0;	//!< аналогично #Update
 
-	virtual void SetAlignRS(int alignrs) = 0;	//!< устанавливает выравнивание при изменении размеров SXGUI_STATUSBAR_ALIGNRS_
-	virtual int GetAlignRS() = 0;				//!< возвращает выравнивание при изменении размеров SXGUI_STATUSBAR_ALIGNRS_
+	//! устанавливает выравнивание при изменении размеров SXGUI_STATUSBAR_ALIGNRS_
+	virtual void setAlignReSize(SXGUI_STATUSBAR_ALIGN_RESIZE align_resize) = 0;
+
+	//! возвращает выравнивание при изменении размеров SXGUI_STATUSBAR_ALIGNRS_
+	virtual SXGUI_STATUSBAR_ALIGN_RESIZE getAlignReSize() = 0;
 };
 
 //! создает экземплляр объекта "StatusBar", и возвращает указатель
-SX_LIB_API ISXGUIStatusBar* SXGUICrStatusBarEx(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIStatusBar* SXGUICrStatusBarEx(const char *szCaption, int iPosX, int iPosY, int iWidth, int iHeight, DWORD dwExstyle, DWORD dwStyle, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
 //! создает экземплляр объекта "StatusBar", и возвращает указатель
-SX_LIB_API ISXGUIStatusBar* SXGUICrStatusBar(const char* caption, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIStatusBar* SXGUICrStatusBar(const char *szCaption, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//#############################################################################
 
 //! элемент "ToolBar" - панель инструментов
 struct ISXGUIToolBar : public virtual ISXGUIComponent
@@ -927,9 +1205,9 @@ struct ISXGUIToolBar : public virtual ISXGUIComponent
 };
 
 //! создает экземплляр объекта "ToolBar", и возвращает указатель
-SX_LIB_API ISXGUIToolBar* SXGUICrToolBar(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
+SX_LIB_API ISXGUIToolBar* SXGUICrToolBar(int iPosX, int iPosY, int iWidth, int iHeight, HWND hParent, WNDPROC lpfnHandler, ID idObj = -1);
 
-////////////////////////////////////////////////////////////////////////////
+//**************************************************************************
 
 /*! \name Состояния элементов меню #ISXGUIMenu и #ISXGUIPopupMenu
 @{*/
@@ -940,246 +1218,232 @@ SX_LIB_API ISXGUIToolBar* SXGUICrToolBar(WORD x, WORD y, WORD width, WORD heigth
 
 //!@}
 
-//! элемент "Menu" - строка меню окна
-struct ISXGUIMenu : public IBaseObject
+struct ISXGUIMenuBase : public IBaseObject
 {
-	virtual ~ISXGUIMenu(){}
+	virtual ~ISXGUIMenuBase(){}
 
 	//! вставить элемент меню
-	virtual bool InsertItem(
-		int index,			//!< индекс позиции
+	virtual bool insertItem(
+		int iIndex,			//!< индекс позиции
 		const char* text,	//!< текст элемента
-		WORD id,			//!< идентификатор элемента меню
-		WORD id_sub_menu	//!< идентификатор подменю
+		ID idUnit,			//!< идентификатор элемента меню
+		ID idSubUnit		//!< идентификатор подменю
 		) = 0;
 
 	//! вставить контекстное меню
-	virtual bool InsertPopupItem(
-		int index,			//!< индекс позиции
+	virtual bool insertPopupItem(
+		int iIndex,			//!< индекс позиции
 		const char* text,	//!< текст элемента
-		WORD id,			//!< идентификатор элемента меню
-		WORD id_sub_menu	//!< идентификатор подменю
+		ID idUnit,			//!< идентификатор элемента меню
+		ID idSubUnit		//!< идентификатор подменю
 		) = 0;
 
 	//! вставить разделитель
-	virtual bool InsertSeparator(
-		int index,			//!< индекс позиции
-		WORD id,			//!< идентификатор элемента меню
-		WORD id_sub_menu	//!< идентификатор подменю
+	virtual bool insertSeparator(
+		int iIndex,			//!< индекс позиции
+		ID idUnit,			//!< идентификатор элемента меню
+		ID idSubUnit		//!< идентификатор подменю
 		) = 0;
 
-	virtual bool DeleteItem(WORD id) = 0;	//!< удалить элемент меню по его id
+	//! удалить элемент меню по его id
+	virtual bool deleteItem(ID idUnit) = 0;
+
+	//! возвращает дескриптор подменю по его id
+	virtual HMENU getSubMenu(ID idUnit) = 0;
+
 
-	virtual HMENU GetSubMenu(WORD id) = 0;	//!< возвращает дескриптор подменю по его id
+	//! выделить элемент меню
+	virtual bool setCheckItem(ID idUnit, bool isCheck) = 0;
 
-	virtual bool CheckItem(WORD id, bool check) = 0;	//!< выделить элемент меню
-	virtual bool EnableItem(WORD id, int enable) = 0;	//!< установить действительность элементу меню
+	//! установить действительность элементу меню
+	virtual bool setEnableItem(ID idUnit, int isEnable) = 0;
+
+
+	//! выделен ли элемент меню idUnit
+	virtual bool getCheckedItem(ID idUnit) = 0;
+
+	//! действителен ли элемент меню idUnit
+	virtual int getEnabledItem(ID idUnit) = 0;
 
-	virtual bool GetCheckedItem(WORD id) = 0;	//!< выделен ли элемент меню id
-	virtual int GetEnabledItem(WORD id) = 0;	//!< действителен ли элемент меню id
 
 	//! возвращает дескриптор меню
-	virtual HMENU GetHMENU() = 0;
+	virtual HMENU getHMENU() = 0;
+};
+
+//! элемент "Menu" - строка меню окна
+struct ISXGUIMenuWindow : public virtual ISXGUIMenuBase
+{
+	virtual ~ISXGUIMenuWindow(){}
 
 	//! установить меню окну hwnd
-	virtual bool SetToWindow(HWND hwnd) = 0;
+	virtual bool setToWindow(HWND hWnd) = 0;
 };
 
 //! создает экземплляр объекта "Menu", и возвращает указатель
-SX_LIB_API ISXGUIMenu* SXGUICrMenu();
+SX_LIB_API ISXGUIMenuWindow* SXGUICrMenuWindow();
 
-//! создает экземплляр объекта "Menu" из ресурсов по идентификатору menu, и возвращает указатель
-SX_LIB_API ISXGUIMenu* SXGUICrMenuEx(WORD menu);
+//! создает экземплляр объекта "Menu" из ресурсов по идентификатору uResMenu, и возвращает указатель
+SX_LIB_API ISXGUIMenuWindow* SXGUICrMenuWindowEx(UINT uResMenu);
 
-////////////////////////////////////////////////////////////////////////////
+//**************************************************************************
 
 //! элемент "PopupMenu" - контекстное меню
-struct ISXGUIPopupMenu : public IBaseObject
+struct ISXGUIPopupMenu : public virtual ISXGUIMenuBase
 {
 	virtual ~ISXGUIPopupMenu(){}
-	
-	//! вставить элемент меню
-	virtual bool InsertItem(
-		int index,			//!< индекс позиции
-		const char* text,	//!< текст элемента
-		WORD id,			//!< идентификатор элемента меню
-		WORD id_sub_menu	//!< идентификатор подменю
-		) = 0;
-
-	//! вставить контекстное меню
-	virtual bool InsertPopupItem(
-		int index,			//!< индекс позиции
-		const char* text,	//!< текст элемента
-		WORD id,			//!< идентификатор элемента меню
-		WORD id_sub_menu	//!< идентификатор подменю
-		) = 0;
-	
-	//! вставить разделитель
-	virtual bool InsertSeparator(
-		int index,			//!< индекс позиции
-		WORD id,			//!< идентификатор элемента меню
-		WORD id_sub_menu	//!< идентификатор подменю
-		) = 0;
-
-	virtual bool DeleteItem(WORD id) = 0;	//!< удалить элемент меню по его id
-
-	virtual HMENU GetSubMenu(WORD id) = 0;	//!< возвращает дескриптор подменю по его id
-
-	virtual bool CheckItem(WORD id, bool check) = 0;	//!< выделить элемент меню
-	virtual bool EnableItem(WORD id, int enable) = 0;	//!< установить действительность элементу меню
-
-	virtual bool GetCheckedItem(WORD id) = 0;	//!< выделен ли элемент меню id
-	virtual int GetEnabledItem(WORD id) = 0;	//!< действителен ли элемент меню id
-
-	//! возвращает дескриптор меню
-	virtual HMENU GetHMENU() = 0;
 
 	//! показать меню
-	virtual bool Track(
-		HWND hwnd,	//!< дескриптор элемента для которого вызывается меню
-		int x,		//!< позиция по оси x (screen space)
-		int y		//!< позиция по оси y (screen space)
+	virtual bool track(
+		HWND hWnd,	//!< дескриптор элемента для которого вызывается меню
+		int iPosX,	//!< позиция по оси x (screen space)
+		int iPosY	//!< позиция по оси y (screen space)
 		) = 0;
 };
 
 //! создает экземплляр объекта "PopupMenu", и возвращает указатель
 SX_LIB_API ISXGUIPopupMenu* SXGUICrPopupMenu();
 
-//! создает экземплляр объекта "PopupMenu" из ресурсов по идентификатору menu, и возвращает указатель
-SX_LIB_API ISXGUIPopupMenu* SXGUICrPopupMenuEx(WORD menu);
+//! создает экземплляр объекта "PopupMenu" из ресурсов по идентификатору uResMenu, и возвращает указатель
+SX_LIB_API ISXGUIPopupMenu* SXGUICrPopupMenuEx(UINT uResMenu);
 
 //!@} sxguiwinapi_elements
 
 //#############################################################################
 
-//! Стандартный обработчик событий для всех элементов
-SX_LIB_API LRESULT CALLBACK WndProcAllDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+//! Стандартный обработчик событий для всех элементов, исполняет всю очередь событий
+SX_LIB_API LRESULT CALLBACK WndProcAllDefault(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
 
 //#############################################################################
 
-//! функции управения элементами
-namespace SXGUIFuctinon
-{
-	/*! \name Операции с полосами прокрутки (Scroll bar) элемента
-	@{*/
-
-	//! установка прокрутки
-	SX_LIB_API bool	ScroolBars(
-		ISXGUIControl *Control, //!< элемент которому устанавливается
-		bool h,					//!< устанавливать ли горизонтальную полосу прокрутки?
-		bool v					//!< устанавливать ли вертикальную полосу прокрутки?
-		);
-
-	SX_LIB_API bool	ScrollBarV(ISXGUIControl *Control);	//!< устанвлена ли вертикальная полоса прокрутки?
-	SX_LIB_API bool	ScrollBarH(ISXGUIControl *Control);	//!< устанвлена ли горизонтальная полоса прокрутки?
-
-	SX_LIB_API bool	ScrollLine(
-		ISXGUIControl *Control, //!< элемент
-		int scroll,	//!< какую полосу прокручивать? SXGUI_SCROLL_TYPE_
-		int dir,	//!< в какую сторону прокручивать, SXGUI_SCROLL_DIR_
-		int count	//!< на сколько строк прокрутить
-		);
-
-	//!@}
+/*! \name Типы диалогов выбора файлов
+@{*/
 
-	/*! \name Операции с текстом (caption) элемента
-	@{*/
+#define SXGUI_DIALOG_FILE_OPEN 0	/*!< открыватие файла */
+#define SXGUI_DIALOG_FILE_SAVE 1	/*!< сохранение файла */
 
-	SX_LIB_API bool	SetText(ISXGUIControl*const Control, const char* text);	//!< установка текста контролу
-	SX_LIB_API void	GetText(ISXGUIControl *Control, char* buf, int count);	//!< в buf записывает текст контрола, count - длина buf
-	SX_LIB_API int	GetTextLen(ISXGUIControl *Control);						//!< возвращает длину текста контрола
+//!@}
 
-	//!@}
+//! типы scrollbars
+enum SXGUI_SCROLL_TYPE
+{
+	SXGUI_SCROLL_TYPE_H = 0,	/*!< горизонтальный тип */
+	SXGUI_SCROLL_TYPE_V = 1,	/*!< вертикальный тип */
 };
 
-//#############################################################################
-
-//! функции обработки определенного события посылаемого родительскому элементу у всех его дочерних элементов
-namespace SXGUIEnumChildWindow
+//! направления прокрутки scrollbars
+enum SXGUI_SCROLL_DIR
 {
-	//! для класса SXGUIButtonImg, обработка события активации кнопки и в последствии дезактивации остальных кнопкок
-	SX_LIB_API BOOL CALLBACK EnumChildProcUpdateImgButton(HWND hwnd, LPARAM lParam);
+	SXGUI_SCROLL_DIR_UP = 0,	/*!< направление вверх */
+	SXGUI_SCROLL_DIR_DOWN = 1,	/*!< направление вниз */
 
-	//! событие WM_SIZE
-	SX_LIB_API BOOL CALLBACK EnumChildProcUpdateSize(HWND hwnd, LPARAM lParam);
-
-	//! событие WM_MOVE
-	SX_LIB_API BOOL CALLBACK EnumChildProcUpdateRect(HWND hwnd, LPARAM lParam);
-
-	//! событие WM_MOUSEMOVE
-	SX_LIB_API BOOL CALLBACK EnumChildProcMouseMove(HWND hwnd, LPARAM lParam);
+	SXGUI_SCROLL_DIR_LEFT = 3,	/*!< направление влево */
+	SXGUI_SCROLL_DIR_RIGTH = 4,	/*!< направление вправо */
 };
 
-//! пространство имен с базовыми функциями обработчиками сообщений, используется #WndProcAllDefault
-namespace SXGUIBaseHandlers
+//! функции для управления gui
+namespace gui_func
 {
-	/*! установка основных обработчиков, без которых SXGUIWinApi будет работать не стабильно, а возможно и не будет работать, 
-	если возвращает 0 значит все в норме, иначе возвращает номер того обработчика который не удалось установить, 
-	данная функция вызывается только если не требуется каких либо дополнительных действий при обработке зарезервированных сообщений
-	*/
-	SX_LIB_API int InitHandlerMsg(ISXGUIComponent* Component);
+	//! Операции с полосами прокрутки (Scroll bar) элемента
+	namespace scrollbar
+	{
+		//! установка прокрутки
+		SX_LIB_API bool	InitScroolBars(
+			ISXGUIControl *pControl,	//!< элемент которому устанавливается
+			bool canH,					//!< устанавливать ли горизонтальную полосу прокрутки?
+			bool canV					//!< устанавливать ли вертикальную полосу прокрутки?
+			);
+
+		//! устанвлена ли scrollbar
+		SX_LIB_API bool	existsScrollBar(ISXGUIControl *pControl, SXGUI_SCROLL_TYPE scroll_type);
+
+		//! прокрутка содержимого элемента
+		SX_LIB_API bool	ScrollLine(
+			ISXGUIControl *pControl,		//!< элемент
+			SXGUI_SCROLL_TYPE scroll_type,	//!< какую полосу прокручивать? SXGUI_SCROLL_TYPE_
+			SXGUI_SCROLL_DIR dir,			//!< в какую сторону прокручивать, SXGUI_SCROLL_DIR_
+			int iCountString				//!< на сколько строк прокрутить
+			);
+	};
+
+	//! Операции с текстом (caption) элемента
+	namespace text
+	{
+		//! установка текста контролу
+		SX_LIB_API bool	SetText(ISXGUIControl*const Control, const char* text);
 
-	//! обработчик события WM_SIZE
-	SX_LIB_API LRESULT SizeChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+		//! в buf записывает текст контрола, count - длина buf
+		SX_LIB_API void	GetText(ISXGUIControl *Control, char* buf, int count);
 
-	/*! обработчик событий WM_CTLCOLORSTATIC WM_CTLCOLOREDIT WM_CTLCOLORBTN WM_CTLCOLORLISTBOX, 
-	то есть обработка цветов дочерних элементов окна (static, edit,button, listbox)
-	*/
-	SX_LIB_API LRESULT CtlColorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+		//! возвращает длину текста контрола
+		SX_LIB_API int	GetTextLen(ISXGUIControl *Control);
+	};
 
-	//! обработчик события WM_SIZING
-	SX_LIB_API LRESULT SizingChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+	//! функции обработки определенного события посылаемого родительскому элементу у всех его дочерних элементов
+	namespace enum_child
+	{
+		//! для класса SXGUIButtonImg, обработка события активации кнопки и в последствии дезактивации остальных кнопкок
+		SX_LIB_API BOOL CALLBACK EnumChildProcUpdateImgButton(HWND hwnd, LPARAM lParam);
 
-	//! обработчик события WM_MOVE
-	SX_LIB_API LRESULT MoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+		//! событие WM_SIZE
+		SX_LIB_API BOOL CALLBACK EnumChildProcUpdateSize(HWND hwnd, LPARAM lParam);
 
-	//! обработчик события WM_MOUSEMOVE
-	SX_LIB_API LRESULT MouseMoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+		//! событие WM_MOVE
+		SX_LIB_API BOOL CALLBACK EnumChildProcUpdateRect(HWND hwnd, LPARAM lParam);
 
-	//! обработчик события WM_SETCURSOR
-	SX_LIB_API LRESULT SetCursorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+		//! событие WM_MOUSEMOVE
+		SX_LIB_API BOOL CALLBACK EnumChildProcMouseMove(HWND hwnd, LPARAM lParam);
+	};
 
-	//! обработчик события WM_COMMAND SC_MAXIMIZE
-	SX_LIB_API LRESULT MaximuzeWinChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+	//! пространство имен с базовыми функциями обработчиками сообщений, используется #WndProcAllDefault
+	namespace base_handlers
+	{
+		/*! установка основных обработчиков, без которых SXGUIWinApi будет работать не стабильно, а возможно и не будет работать,
+		если возвращает 0 значит все в норме, иначе возвращает номер того обработчика который не удалось установить,
+		данная функция вызывается только если не требуется каких либо дополнительных действий при обработке зарезервированных сообщений
+		*/
+		SX_LIB_API void InitHandlerMsg(ISXGUIComponent* Component);
 
-	//! обработчик события WM_DESTROY
-	SX_LIB_API LRESULT WinDestroy(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-};
+		//! обработчик события WM_SIZE
+		SX_LIB_API LRESULT SizeChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-//#############################################################################
+		/*! обработчик событий WM_CTLCOLORSTATIC WM_CTLCOLOREDIT WM_CTLCOLORBTN WM_CTLCOLORLISTBOX,
+		то есть обработка цветов дочерних элементов окна (static, edit,button, listbox)
+		*/
+		SX_LIB_API LRESULT CtlColorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-//! пространство имен с функциями регистрации классов созданные вручную
-namespace SXGUIRegClass
-{
-	//! регистрация класса "ButtonImg" #ISXGUIButtonImg
-	SX_LIB_API bool RegButtonImg();
-	//! регистрация класса "GroupBox" #ISXGUIGroupBox
-	SX_LIB_API bool RegGroupBox();
-};
+		//! обработчик события WM_SIZING
+		SX_LIB_API LRESULT SizingChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-//#############################################################################
+		//! обработчик события WM_MOVE
+		SX_LIB_API LRESULT MoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-/*! \name Типы диалогов выбора файлов
-@{*/
+		//! обработчик события WM_MOUSEMOVE
+		SX_LIB_API LRESULT MouseMoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-#define SXGUI_DIALOG_FILE_OPEN 0	/*!< открыватие файла */
-#define SXGUI_DIALOG_FILE_SAVE 1	/*!< сохранение файла */
+		//! обработчик события WM_SETCURSOR
+		SX_LIB_API LRESULT SetCursorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-//!@}
+		//! обработчик события WM_COMMAND SC_MAXIMIZE
+		SX_LIB_API LRESULT MaximuzeWinChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
-//! функции диалогов
-namespace SXGUIDialogs
-{
-	/*! диалог выбора файла
-	 \note path или name должен быть не 0, иначе результат вызова диалога некуда будет записать и как следствие диалог не будет вызван
-	*/
-	SX_LIB_API void SelectFile(
-		int type,				//!< тип диалога SXGUI_DIALOG_FILE_
-		char* path,				//!< если не 0 то запишется путь до файла
-		char* name,				//!< если не 0 то запишется имя файла
-		const char* stdpath,	//!< путь относительно которого открывать диалог
-		const char* filter		//!< фильтр расширений
-		);
+		//! обработчик события WM_DESTROY
+		SX_LIB_API LRESULT WinDestroy(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+	};
+
+	//! функции диалогов
+	namespace dialogs
+	{
+		/*! диалог выбора файла
+		\note path или name должен быть не 0, иначе результат вызова диалога некуда будет записать и как следствие диалог не будет вызван
+		*/
+		SX_LIB_API void SelectFile(
+			int type,				//!< тип диалога SXGUI_DIALOG_FILE_
+			char* path,				//!< если не 0 то запишется путь до файла
+			char* name,				//!< если не 0 то запишется имя файла
+			const char* stdpath,	//!< путь относительно которого открывать диалог
+			const char* filter		//!< фильтр расширений
+			);
+	};
 };
 
 #endif
diff --git a/source/SXGUIWinApi/SXGUI_base_wnd.cpp b/source/SXGUIWinApi/SXGUI_base_wnd.cpp
deleted file mode 100644
index 621a6fb61..000000000
--- a/source/SXGUIWinApi/SXGUI_base_wnd.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_base_wnd.h>
-
-SXGUIBaseWnd::SXGUIBaseWnd(	
-					const char* class_name,const char* caption,const char* menu,
-					WORD id,int x,int y,WORD width,WORD heigth,
-					HICON icon,HCURSOR cursor, HBRUSH brush,
-					DWORD exstyle,DWORD wndstyle,DWORD style,
-					HWND parent,WNDPROC handler
-					)
-{
-	WNDCLASS wc;
-
-	wc.style         = wndstyle;
-	wc.lpfnWndProc   = DefWindowProc; 
-	wc.cbClsExtra    = 0;
-	wc.cbWndExtra    = 0;
-	wc.hInstance     = GetModuleHandle(0);
-	wc.hIcon         = icon != 0 ? icon : LoadCursor(GetModuleHandle(0), IDC_ARROW);
-	wc.hCursor       = cursor;
-	wc.hbrBackground = brush != 0 ? brush : (HBRUSH)GetStockObject(WHITE_BRUSH);
-	wc.lpszMenuName  = menu;
-	wc.lpszClassName = class_name;
-
-		if(!RegisterClass(&wc)) 
-		{
-			MessageBox(0, "������ ��� ����������� ������ ����!", class_name, 0);
-		}
-		
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							class_name,
-							caption,
-							style|WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
-							x,y,width,heigth,
-							parent,
-							HMENU(id),
-							GetModuleHandle(0),
-							0); 
-
-		if (!this->WindowHandle)
-		{
-			MessageBox(0, "������ �������� ����!!!", caption, 0);
-		}
-	this->Init(this->WindowHandle, parent, handler);
-	SetWindowLong(this->WindowHandle, GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-	ShowWindow(this->WindowHandle, SW_SHOW);
-	UpdateWindow(this->WindowHandle);
-}
-
-SXGUIBaseWnd::~SXGUIBaseWnd()
-{
-
-}
-
-bool SXGUIBaseWnd::AlphaBlend(bool bf)
-{
-	return this->ModifyExStyle(bf ? WS_EX_LAYERED : 0,!bf ? WS_EX_LAYERED : 0);
-}
-
-bool SXGUIBaseWnd::AlphaBlend()
-{
-	long style = GetWindowLong(this->WindowHandle, GWL_EXSTYLE);
-	return (style & WS_EX_LAYERED);
-}
-
-bool SXGUIBaseWnd::Alpha(WORD alpha)
-{
-	return SetLayeredWindowAttributes(this->WindowHandle, 0, alpha, LWA_ALPHA);
-}
-
-WORD SXGUIBaseWnd::Alpha()
-{
-	WORD alpha = 0;
-	if (!GetLayeredWindowAttributes(this->WindowHandle, 0, (BYTE*)&alpha, 0))
-			return -1;
-	return alpha;
-}
-
-bool SXGUIBaseWnd::SetColorBrush(BYTE r,BYTE g,BYTE b)
-{
-	return SetColorBrush(RGB(r, g, b));
-}
-
-bool SXGUIBaseWnd::SetColorBrush(DWORD color)
-{
-	DWORD color2 = SetClassLong(this->WindowHandle, GCL_HBRBACKGROUND, (LONG)CreateSolidBrush(color));
-	InvalidateRect(this->WindowHandle, 0, TRUE);
-	return color2 > 0 ? true : false;
-}
-
-DWORD SXGUIBaseWnd::GetColorBrush()
-{
-	HBRUSH hbrush = (HBRUSH)GetClassLong(this->WindowHandle, GCL_HBRBACKGROUND);
-	LOGBRUSH lbr;
-	ZeroMemory(&lbr,sizeof(LOGBRUSH));
-	GetObject(hbrush,sizeof(LOGBRUSH),&lbr);
-	return (lbr.lbColor);
-}
-
-HBRUSH SXGUIBaseWnd::GetBrush()
-{
-	//return GetClassLongPtr(this->WindowHandle,GCLP_HBRBACKGROUND);
-	return (HBRUSH)GetClassLong(this->WindowHandle, GCL_HBRBACKGROUND);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_base_wnd.h b/source/SXGUIWinApi/SXGUI_base_wnd.h
deleted file mode 100644
index bd7c13023..000000000
--- a/source/SXGUIWinApi/SXGUI_base_wnd.h
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef SXGUI_BASE_WND_H
-#define SXGUI_BASE_WND_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-#include <SXGUIWinApi\SXGUI_menu.h>
-
-#pragma once
-
-class SXGUIBaseWnd : public SXGUITextual, public virtual ISXGUIBaseWnd
-{
-public:
-	SXGUIBaseWnd(	
-					const char* class_name,const char* caption,const char* menu,
-					WORD id,int x,int y,WORD width,WORD heigth,
-					HICON icon,HCURSOR cursor, HBRUSH brush,
-					DWORD exstyle,DWORD wndstyle,DWORD style,
-					HWND parent,WNDPROC handler
-				);
-	~SXGUIBaseWnd();
-
-	bool SetColorBrush(BYTE r,BYTE g,BYTE b);
-	bool SetColorBrush(DWORD color);
-	DWORD GetColorBrush();
-	HBRUSH GetBrush();
-
-	bool Alpha(WORD alpha);
-	WORD Alpha();
-	bool AlphaBlend(bool bf);
-	bool AlphaBlend();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_button.cpp b/source/SXGUIWinApi/SXGUI_button.cpp
deleted file mode 100644
index 566d1cea5..000000000
--- a/source/SXGUIWinApi/SXGUI_button.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_button.h>
-
-SXGUIButton::SXGUIButton()
-{
-
-}
-
-SXGUIButton::SXGUIButton(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"Button",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIButton::SXGUIButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, int image, HWND parent, WNDPROC handler, DWORD id)
-{
-	DWORD image_style = BS_TEXT;
-
-	if (image == SXGUI_BUTTON_IMAGE_ICON)
-		image_style = BS_ICON;
-	else if (image == SXGUI_BUTTON_IMAGE_BITMAT)
-		image_style = BS_BITMAP;
-
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"BUTTON",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | image_style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->WindowHandle, parent, (handler == 0 ? WndProcAllDefault : handler));
-	ISXGUIComponent* component = dynamic_cast<ISXGUIComponent*>(this);
-	SetWindowLong(this->WindowHandle, GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-bool SXGUIButton::SetIconInFile(const char* path)
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(!(style & BS_ICON))
-			return false;
-
-	HICON icon = (HICON)LoadImage(NULL,path,IMAGE_ICON,0,0,LR_LOADFROMFILE);
-
-		if(icon == 0)
-			return false;
-
-	SendMessage(this->GetHWND(),BM_SETIMAGE,IMAGE_ICON,(LPARAM)icon);
-	return true;
-}
-
-bool SXGUIButton::SetBmpInFile(const char* path)
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(!(style & BS_BITMAP))
-			return false;
-
-	HBITMAP bmp = (HBITMAP)LoadImage(NULL,path,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
-
-		if(bmp == 0)
-			return false;
-
-	SendMessage(this->GetHWND(),BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)bmp);
-	return true;
-}
-
-
-bool SXGUIButton::SetIconInResourse(WORD id)
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(!(style & BS_ICON))
-			return false;
-
-	HICON icon = LoadCursor(GetModuleHandle(0),MAKEINTRESOURCE(id));
-
-		if(icon == 0)
-			return false;
-
-	SendMessage(this->GetHWND(),BM_SETIMAGE,IMAGE_ICON,(LPARAM)icon);
-	return true;
-}
-
-bool SXGUIButton::SetBmpInResourse(WORD id)
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(!(style & BS_BITMAP))
-			return false;
-
-	HBITMAP bmp = LoadBitmap(GetModuleHandle(0),MAKEINTRESOURCE(id));
-
-		if(bmp == 0)
-			return false;
-
-	SendMessage(this->GetHWND(),BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)bmp);
-	return true;
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_check_box.cpp b/source/SXGUIWinApi/SXGUI_check_box.cpp
deleted file mode 100644
index 84411ba16..000000000
--- a/source/SXGUIWinApi/SXGUI_check_box.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_check_box.h>
-
-#pragma once
-
-SXGUICheckBox::SXGUICheckBox()
-{
-
-}
-
-SXGUICheckBox::SXGUICheckBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"BUTTON",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUICheckBox::SXGUICheckBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool cb_3_state)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"BUTTON",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | (cb_3_state ? BS_AUTO3STATE : BS_AUTOCHECKBOX),
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-void SXGUICheckBox::SetCheck(int check)
-{
-	SendMessage(this->GetHWND(),BM_SETCHECK,check,0);
-}
-
-int SXGUICheckBox::GetCheck()
-{
-	return SendMessage(this->GetHWND(), BM_GETCHECK, 0, 0);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_check_box.h b/source/SXGUIWinApi/SXGUI_check_box.h
deleted file mode 100644
index d3eb25bee..000000000
--- a/source/SXGUIWinApi/SXGUI_check_box.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef SXGUI_CHECK_BOX_H
-#define SXGUI_CHECK_BOX_H
-
-#include "SXGUI_base.h"
-#include "SXGUI_button.h"
-
-class SXGUICheckBox : public SXGUIButton, public virtual ISXGUICheckBox
-{
-public:
-	SXGUICheckBox();
-	SXGUICheckBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUICheckBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool cb_3_state);
-
-	void SetCheck(int check);
-	int GetCheck();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_combo_box.cpp b/source/SXGUIWinApi/SXGUI_combo_box.cpp
deleted file mode 100644
index b6396ae07..000000000
--- a/source/SXGUIWinApi/SXGUI_combo_box.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-
-#include "SXGUI_combo_box.h"
-
-SXGUIComboBox::SXGUIComboBox()
-{
-
-}
-
-SXGUIComboBox::SXGUIComboBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"COMBOBOX",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(), parent, (handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIComboBox::SXGUIComboBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"COMBOBOX",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(), parent, (handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-bool SXGUIComboBox::InsertItem(int index,const char* text)
-{
-	if (SendMessage(this->GetHWND(), CB_INSERTSTRING, (WPARAM)index, (LPARAM)text) < 0)
-			return false;
-	return true;
-}
-
-bool SXGUIComboBox::DeleteItem(int index)
-{
-	if (SendMessage(this->GetHWND(), CB_DELETESTRING, WPARAM(index), 0) < 0)
-			return false;
-	return true;
-}
-
-int SXGUIComboBox::GetCount()
-{
-	return SendMessage(this->GetHWND(), CB_GETCOUNT, 0, 0);
-}
-
-bool SXGUIComboBox::SetSel(int index)
-{
-	if (SendMessage(this->GetHWND(), CB_SETCURSEL, WPARAM(index), 0) < 0)
-			return false;
-	return true;
-}
-
-int SXGUIComboBox::GetSel()
-{
-	return SendMessage(this->GetHWND(), CB_GETCURSEL, 0, 0);
-}
-
-
-bool SXGUIComboBox::Clear()
-{
-	if (!SendMessage(this->GetHWND(), CB_RESETCONTENT, 0, 0))
-			return false;
-	return true;
-}
-
-bool SXGUIComboBox::SetItemData(int index,LPARAM data)
-{
-	if (!SendMessage(this->GetHWND(), CB_SETITEMDATA, WPARAM(index), data))
-			return false;
-	return true;
-}
-
-LPARAM SXGUIComboBox::GetItemData(int index)
-{
-	return SendMessage(this->GetHWND(), CB_GETITEMDATA, WPARAM(index), 0);
-}
-
-bool SXGUIComboBox::SetItemText(int index,const char* text)
-{
-	LPARAM data = this->GetItemData(index);
-		if(!this->DeleteItem(index))
-			return false;
-		if(!this->InsertItem(index,text))
-			return false;
-		if(!this->SetItemData(index,data))
-			return false;
-	return true;
-}
-
-void SXGUIComboBox::GetItemText(int index,char* buf)
-{
-	SendMessage(this->GetHWND(), CB_GETLBTEXT, WPARAM(index), LPARAM(buf));
-}
-
-int SXGUIComboBox::GetItemTextLength(int index)
-{
-	return SendMessage(this->GetHWND(), CB_GETLBTEXTLEN, WPARAM(index), 0);
-}
-
-bool SXGUIComboBox::AddItem(const char* text)
-{
-	return this->InsertItem(-1,text);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_combo_box.h b/source/SXGUIWinApi/SXGUI_combo_box.h
deleted file mode 100644
index 35a20522a..000000000
--- a/source/SXGUIWinApi/SXGUI_combo_box.h
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef SXGUI_COMBO_BOX_H
-#define SXGUI_COMBO_BOX_H
-
-#include "SXGUI_base.h"
-
-class SXGUIComboBox : public SXGUIComponent, public virtual ISXGUIComboBox
-{
-public:
-	SXGUIComboBox();
-	SXGUIComboBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-
-	SXGUIComboBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-	bool	InsertItem(int index,const char* text);		//������� ������ � ������
-	bool	DeleteItem(int index);						//�������� ������
-
-	int		GetCount();									//���������� �����
-
-	bool	SetSel(int index);							//�������� ������������ ������
-	int		GetSel();									//����� ���������� ������
-
-	bool	SetItemData(int index,LPARAM data);			//��������� ��� ������ userdata (32 ����)
-	LPARAM	GetItemData(int index);						//��������� userdata
-
-	bool	Clear();									//������� ��� ��������
-
-	bool	SetItemText(int index,const char* text);	//������� ������ � ������, ������� ������
-	void	GetItemText(int index,char* buf);			//�������� ����� �� ������ 
-	int		GetItemTextLength(int index);				//�������� ����� ������ �� ������
-	bool	AddItem(const char* text);					//��������� � ����� ����� ������
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_edit.cpp b/source/SXGUIWinApi/SXGUI_edit.cpp
deleted file mode 100644
index 73a1920d9..000000000
--- a/source/SXGUIWinApi/SXGUI_edit.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_edit.h>
-
-#pragma once
-
-SXGUIEdit::SXGUIEdit() {}
-SXGUIEdit::~SXGUIEdit() {}
-
-SXGUIEdit::SXGUIEdit(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"EDIT",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIEdit::SXGUIEdit(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"EDIT",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOHSCROLL,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-bool SXGUIEdit::ReadOnly()
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(style & ES_READONLY)
-			return true;
-		else
-			return false;
-}
-
-bool SXGUIEdit::ReadOnly(bool bf)
-{
-	long p = bf ? 1 : 0;
-	SendMessage(this->GetHWND(), EM_SETREADONLY, bf ? 1 : 0, 0);
-	return this->ReadOnly() == bf;
-}
-
-int SXGUIEdit::Align()
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(style & ES_RIGHT)
-			return SXGUI_TEXT_ALIGN_RIGHT;
-		else if(style & ES_CENTER)
-			return SXGUI_TEXT_ALIGN_CENTER;
-		else
-			return SXGUI_TEXT_ALIGN_LEFT;
-}
-
-bool SXGUIEdit::Align(int align)
-{
-		if (align == SXGUI_TEXT_ALIGN_LEFT)
-			return this->ModifyStyle(ES_LEFT,0);
-		else if (align == SXGUI_TEXT_ALIGN_RIGHT)
-			return this->ModifyStyle(ES_RIGHT,0);
-		else if (align == SXGUI_TEXT_ALIGN_CENTER)
-			return this->ModifyStyle(ES_CENTER,0);
-	return false;
-}
-
-bool SXGUIEdit::Password()
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(style & ES_PASSWORD)
-			return true;
-		else
-			return false;
-}
-
-bool SXGUIEdit::Password(bool bf)
-{
-	long p = bf ? 1 : 0;
-	SendMessage(this->GetHWND(), EM_SETPASSWORDCHAR, bf ? '*' : 0, 0);
-	this->SetFocus();
-	UpdateWindow(this->GetHWND());
-	return this->Password() == bf;
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_group_box.h b/source/SXGUIWinApi/SXGUI_group_box.h
deleted file mode 100644
index b641d2675..000000000
--- a/source/SXGUIWinApi/SXGUI_group_box.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//----------------------------------------
-// ����: SXGUI_group_box.h
-// ������� ��������: ����������� group box
-// Project S.I.P for SkyXEngine (09,2012)
-//----------------------------------------
-
-#ifndef SXGUI_GROUP_BOX_H
-#define SXGUI_GROUP_BOX_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIGroupBox : public SXGUITextual, public virtual ISXGUIGroupBox
-{
-public:
-	SXGUIGroupBox();
-	~SXGUIGroupBox();
-	void Release(){ mem_del(this); }
-	SXGUIGroupBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIGroupBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-//private:
-	char* StrText;
-	int LenStrText;
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_hint.h b/source/SXGUIWinApi/SXGUI_hint.h
deleted file mode 100644
index 7a83cac37..000000000
--- a/source/SXGUIWinApi/SXGUI_hint.h
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef SXGUI_HINT_H
-#define SXGUI_HINT_H
-
-#include <windows.h>
-#include <commctrl.h>
-
-#include "SXGUI_base.h"
-#include "SXGUI.h"
-
-class SXGUIHint : public virtual ISXGUIHint
-{
-public:
-	SXGUIHint();
-	SXGUIHint(HWND parent);
-	~SXGUIHint();
-	void Release(){ mem_del(this); }
-	//autopop - ����� ������
-	//init - ������� ���� ��������� ��������� ����� ��������� �������
-	void SetDelayTime(DWORD init,DWORD autopop);
-
-	bool Parent(HWND parent);
-	HWND Parent();
-
-	HWND GetHWND();
-
-	void Visible(bool bf);
-	bool Visible();
-
-	void SetText(const char* text);	//��������� ������ ���������
-	const char* GetText();				//���������� ��������� �� ����� ���������, ��������� ��� ������ �����������
-	void GetText(char* buf);
-
-protected:
-	HWND WindowHandle;
-	HWND ParentHandle;
-	TOOLINFO Hint;
-	char hint[SX_HINT_COUNT_BUF_SIZE];
-	bool IsVisible;
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_img_button.h b/source/SXGUIWinApi/SXGUI_img_button.h
deleted file mode 100644
index 737fb924a..000000000
--- a/source/SXGUIWinApi/SXGUI_img_button.h
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef SXGUI_IMG_BUTTON_H
-#define SXGUI_IMG_BUTTON_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIButtonImg : public SXGUIComponent, public virtual ISXGUIButtonImg
-{
-public:
-	SXGUIButtonImg();
-	SXGUIButtonImg(const char* path,WORD x,WORD y,WORD width,WORD heigth,DWORD alpha_color,DWORD bk_color,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIButtonImg(WORD button,WORD x,WORD y,WORD width,WORD heigth,DWORD alpha_color,DWORD bk_color,HWND parent,WNDPROC handler,DWORD id);
-	void Release(){ mem_del(this); }
-	~SXGUIButtonImg();
-
-	void ReInitImage(const char* path);
-
-	void InitCallBack();
-	
-	void GetPathForImg(char* buf);
-
-	void SetColorFrame(BYTE r, BYTE g, BYTE b);	
-	void SetColorFrame(DWORD color);			
-	DWORD GetColorFrame();						
-
-	void SetColorBk(BYTE r, BYTE g, BYTE b);	
-	void SetColorBk(DWORD color);			
-	DWORD GetColorBk();						
-
-	void SetColorAlpha(BYTE r, BYTE g, BYTE b);	
-	void SetColorAlpha(DWORD color);			
-	DWORD GetColorAlpha();						
-
-	void SetEnable(bool bf);	//!< ��������� ��������� ������ (�������/��������)
-	bool GetEnable();			//!< ���������� ��������� ������ (�������/��������)
-
-	void SetEnableActive(bool bf);	//!< ��������� ��������� ���������� ������ (��������/���������)
-	bool GetEnableActive();			//!< �������� �� ��������� ���������� ������?
-
-	void SetParentGroup(bool bf);	//!< ���������� ������/�� ������ ������ � ������ ��������� ����� �� ������ ������ ��������
-	bool GetParentGroup();
-
-	BITMAP Bitmap;
-	HANDLE HBitMap;
-
-	bool IsImages;
-
-	DWORD AlphaColor;	//!< ���� ������� ����� ��������
-	DWORD BkColor;		//!< ���� ���� ������
-	DWORD FrameColor;	//!< ���� ���� ������
-
-	WORD Pos;			//!< ������� � ������� ������� ������
-	bool PosBf[3];		//!< ����� �� ����������� ���������
-
-	bool EnableState;	//!< ��������� ������ (�������/��������)
-
-	bool EnableBf;		//!< �������� �� ��������� ���������� ������
-	bool EnableGroup;	//!< �������� �� ������ � ������ ���� �������� ��������� ��������, ��� ���������� ����� �������������� ������ ��� �������� ������ ������
-
-
-private:
-	char PathForImg[1024];
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_list_box.cpp b/source/SXGUIWinApi/SXGUI_list_box.cpp
deleted file mode 100644
index 6656ae294..000000000
--- a/source/SXGUIWinApi/SXGUI_list_box.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_list_box.h>
-
-#pragma once
-
-SXGUIListBox::SXGUIListBox()
-{
-
-}
-
-SXGUIListBox::SXGUIListBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"LISTBOX",
-							0,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIListBox::SXGUIListBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool miltiple_sel)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"LISTBOX",
-							0,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | LBS_HASSTRINGS | LBS_NOTIFY | WS_VSCROLL | WS_BORDER | (miltiple_sel ? LBS_EXTENDEDSEL : 0),
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(), parent, (handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-bool SXGUIListBox::MultipleSel()
-{
-	long style = GetWindowLong(this->GetHWND(), GWL_STYLE);
-		if(style & LBS_EXTENDEDSEL)
-			return true;
-		else
-			return false;
-}
-
-
-bool SXGUIListBox::InsertItem(int index,const char* text)
-{
-		if(!SendMessage(this->GetHWND(),LB_INSERTSTRING,WPARAM(index),LPARAM(text))) 
-			return false;
-	return true;
-}
-
-bool SXGUIListBox::AddItem(const char* text)
-{
-		if(!SendMessage(this->GetHWND(),LB_ADDSTRING,0,LPARAM(text))) 
-			return false;
-	return true;
-}
-
-bool SXGUIListBox::DeleteItem(int index)
-{
-		if(!SendMessage(this->GetHWND(),LB_DELETESTRING,WPARAM(index),0))
-			return false;
-	return true;
-}
-
-int SXGUIListBox::GetCountItem()
-{
-	return SendMessage(this->GetHWND(),LB_GETCOUNT,0,0);
-}
-
-bool SXGUIListBox::SetSel(int index)
-{
-	return SendMessage(this->GetHWND(), LB_SETCURSEL, (WPARAM)index, 0);
-}
-
-int SXGUIListBox::GetSel()
-{
-	return SendMessage(this->GetHWND(),LB_GETCURSEL,0,0);
-}
-
-
-bool SXGUIListBox::SetItemData(int index,LPARAM data)
-{
-		if(!SendMessage(this->GetHWND(),LB_SETITEMDATA,WPARAM(index),data))
-			return false;
-	return true;
-}
-
-LPARAM SXGUIListBox::GetItemData(int index)
-{
-	return SendMessage(this->GetHWND(),LB_GETITEMDATA,WPARAM(index),0);
-}
-
-bool SXGUIListBox::Clear()
-{
-		if(!SendMessage(this->GetHWND(),LB_RESETCONTENT,0,0))
-			return false;
-	return true;
-}
-
-bool SXGUIListBox::SetTextItem(int index,const char* text)
-{
-	LPARAM data = this->GetItemData(index);
-	int sel = this->GetSel();
-		/*if(!this->DeleteItem(index))
-			return false;
-		if(!this->InsertItem(index,text))
-			return false;
-	return this->SetItemData(index,data);*/
-
-	this->DeleteItem(index);
-	this->InsertItem(index,text);
-	if(sel == index)
-	{
-		this->SetSel(index);
-	}
-	return this->SetItemData(index,data);
-}
-
-void SXGUIListBox::GetItemText(int index,char* buf)
-{
-	SendMessage(this->GetHWND(),LB_GETTEXT,WPARAM(index),LPARAM(buf));
-}
-
-int SXGUIListBox::GetItemTextLength(int index)
-{
-	return SendMessage(this->GetHWND(),LB_GETTEXTLEN,WPARAM(index),0);
-}
-
-
-int SXGUIListBox::GetMultipleSelCount()
-{
-	return SendMessage(this->GetHWND(),LB_GETSELCOUNT,0,0);
-}
-
-bool SXGUIListBox::SetMultipleSel(int index,bool sel)
-{
-		if(!SendMessage(this->GetHWND(),LB_SETSEL,WPARAM(sel ? 1 : 0),LPARAM(index)))
-			return false;
-	return true;
-}
-
-bool SXGUIListBox::GetMultipleSel(int index)
-{
-		if(!SendMessage(this->GetHWND(),LB_GETSEL,WPARAM(index),0))
-			return false;	
-	return true;
-}
-
-void SXGUIListBox::GetMultipleSelArr(int** arr)
-{
-	if (!arr)
-		return;
-
-	int count = this->GetMultipleSelCount();
-		if(count <= 0)
-			return;
-	*arr = new int[count];
-	SendMessage(this->GetHWND(),LB_GETSELITEMS,WPARAM(count),LPARAM(*arr));
-}
-
-
-bool SXGUIListBox::ScrollBars(bool h,bool v)
-{
-	return SXGUIFuctinon::ScroolBars(this,h,v);
-}
-
-bool SXGUIListBox::ScrollBarV()
-{
-	return SXGUIFuctinon::ScrollBarV(this);;
-}
-
-bool SXGUIListBox::ScrollBarH()
-{
-	return SXGUIFuctinon::ScrollBarH(this);
-}
-
-bool SXGUIListBox::ScrollLine(WORD scroll,WORD dir,int count)
-{
-	return SXGUIFuctinon::ScrollLine(this,scroll,dir,count);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_list_box.h b/source/SXGUIWinApi/SXGUI_list_box.h
deleted file mode 100644
index 9d377757c..000000000
--- a/source/SXGUIWinApi/SXGUI_list_box.h
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef SXGUI_LIST_BOX_H
-#define SXGUI_LIST_BOX_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIListBox : public SXGUIComponent, public virtual ISXGUIListBox
-{
-public:
-	SXGUIListBox();
-	SXGUIListBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIListBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool miltiple_sel);
-
-	bool	MultipleSel();	//������������ �� �������� �������������� ��������� �����
-
-	bool	InsertItem(int index,const char* text);	//�������� ����� � ������ � ������� index
-	bool	AddItem(const char* text);				//�������� ������ � ����� ������
-	int		GetCountItem();							//���������� ���������� �����
-
-	bool	DeleteItem(int index);					//������� ������ � ������� index
-
-	bool	SetSel(int index);						//�������� ������ � ������� index
-	int		GetSel();
-
-	bool	SetItemData(int index,LPARAM data);		//���������� userdata ��� ������ � ������� index
-	LPARAM	GetItemData(int index);					//���������� userdata
-
-	bool	Clear();								//��������
-
-	bool	SetTextItem(int index,const char* text);//���������� ����� � ������ � ������� index
-	void	GetItemText(int index,char* buf);		//���������� ����� �� ������
-
-	int		GetItemTextLength(int index);			//���������� ����� ������ � ������
-
-	//��������������� �����, ���� this->MultipleSel() == true
-	int		GetMultipleSelCount();					//���������� ���������� ���������� �����
-
-	bool	SetMultipleSel(int index,bool sel);		//������������� ��������/�� �������� ������
-	bool	GetMultipleSel(int index);				//���������� �������� �� ������
-
-	void	GetMultipleSelArr(int** arr);					//���������� ������ � �������� ���������� �����
-
-	//SXGUIFuctinon
-	bool ScrollBars(bool h,bool v);
-	bool ScrollBarV();
-	bool ScrollBarH();
-	bool ScrollLine(WORD scroll,WORD dir,int count);
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_list_view.cpp b/source/SXGUIWinApi/SXGUI_list_view.cpp
deleted file mode 100644
index 9aa9e32ba..000000000
--- a/source/SXGUIWinApi/SXGUI_list_view.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-
-#include "SXGUI_list_view.h"
-
-SXGUIListView::SXGUIListView()
-{
-
-}
-
-SXGUIListView::SXGUIListView(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-		exstyle,
-		WC_LISTVIEW,
-		0,
-		style,
-		x, y, width, heigth,
-		parent,
-		(HMENU)id,
-		GetModuleHandle(0),
-		0);
-
-	//ListView_SetExtendedListViewStyleEx(this->WindowHandle, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB | LVS_EX_ONECLICKACTIVATE);
-	this->Init(this->GetHWND(), parent, handler);
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIListView::SXGUIListView(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-		0,
-		WC_LISTVIEW,
-		0,
-		(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | /*WS_VSCROLL | WS_HSCROLL | LVS_ALIGNLEFT |*/ LVS_SHOWSELALWAYS | WS_BORDER | LVS_REPORT | LVS_SINGLESEL,
-		x, y, width, heigth,
-		parent,
-		(HMENU)id,
-		GetModuleHandle(0),
-		0);
-
-	ListView_SetExtendedListViewStyleEx(this->WindowHandle, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB | LVS_EX_ONECLICKACTIVATE);
-	this->Init(this->GetHWND(), parent, handler);
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-int SXGUIListView::InsertColumn(char* text, int col, int width)
-{
-	RECT rcl;
-	::GetClientRect(this->WindowHandle, &rcl);
-
-	LVCOLUMN lvc;
-	memset(&lvc, 0, sizeof(LVCOLUMN));
-	lvc.mask = LVCF_TEXT | LVCF_WIDTH;
-	lvc.cx = width;
-	lvc.pszText = text;
-
-	return ListView_InsertColumn(this->WindowHandle, col, &lvc);
-}
-
-int SXGUIListView::AddColumn(char* text, int width)
-{
-	return InsertColumn(text, GetCountColumns(), width);
-}
-
-void SXGUIListView::DeleteColumn(int col)
-{
-	ListView_DeleteColumn(this->WindowHandle, col);
-}
-
-int SXGUIListView::GetCountColumns()
-{
-	HWND hwndHeader = ListView_GetHeader(this->WindowHandle);
-	return ::SendMessage(hwndHeader, HDM_GETITEMCOUNT, 0, 0);
-}
-
-int SXGUIListView::AddString(long data)
-{
-	LVITEM lvi;
-	memset(&lvi, 0, sizeof(LVCOLUMN));
-	lvi.mask = LVIF_TEXT | LVIF_PARAM;
-	lvi.iItem = GetCountString();
-	lvi.iSubItem = 0;
-	lvi.lParam = data;
-	return ListView_InsertItem(this->WindowHandle, &lvi);
-}
-
-void SXGUIListView::DeleteString(int str)
-{
-	ListView_DeleteItem(this->WindowHandle, str);
-}
-
-int SXGUIListView::GetCountString()
-{
-	return ListView_GetItemCount(this->WindowHandle);
-}
-
-void SXGUIListView::SetTextItem(char* text, int col, int str)
-{
-	ListView_SetItemText(this->WindowHandle, str, col, text);
-}
-
-void SXGUIListView::GetTextItem(char* text, int col, int str, int sizebuff)
-{
-	ListView_GetItemText(this->WindowHandle, str, col, text, sizebuff);
-}
-
-void SXGUIListView::SetDataItem(int str, long data)
-{
-	LVITEM lvi;
-	lvi.iItem = str;
-	lvi.iSubItem = 0;
-
-	ListView_GetItem(this->WindowHandle, &lvi);
-
-	lvi.mask = lvi.mask | LVIF_PARAM;
-	lvi.iSubItem = 0;
-	lvi.lParam = data;
-	BOOL res = ListView_SetItem(this->WindowHandle, &lvi);
-	int qwerty = 0;
-}
-
-long SXGUIListView::GetDataItem(int str)
-{
-	LVITEM lvi;
-	lvi.iItem = str;
-	lvi.iSubItem = 0;
-
-	BOOL res = ListView_GetItem(this->WindowHandle, &lvi);
-	return lvi.lParam;
-}
-
-int SXGUIListView::GetSelString(int start)
-{
-	return ::SendMessage(this->WindowHandle, LVM_GETNEXTITEM, start, LVNI_SELECTED);
-}
-
-void SXGUIListView::SetSelString(int str)
-{
-	ListView_SetItemState(this->WindowHandle, str, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
-	this->SetFocus();
-}
-
-int SXGUIListView::GetSelColumn()
-{
-	return ListView_GetSelectedColumn(this->WindowHandle);
-}
-
-void SXGUIListView::SetSelColumn(int col)
-{
-	ListView_SetSelectedColumn(this->WindowHandle, col);
-}
-
-void SXGUIListView::Clear()
-{
-	ClearStrings();
-	ListView_DeleteAllItems(this->WindowHandle);
-
-	while (GetCountColumns() > 0)
-	{
-		DeleteColumn(0);
-	}
-}
-
-void SXGUIListView::ClearStrings()
-{
-	int countstr = GetCountString();
-	for (int i = 0; i < countstr; ++i)
-	{
-		DeleteString(0);
-	}
-	//BOOL bf = TabCtrl_DeleteAllItems(this->WindowHandle);
-	//int qwerty = 0;
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_list_view.h b/source/SXGUIWinApi/SXGUI_list_view.h
deleted file mode 100644
index ff4252e26..000000000
--- a/source/SXGUIWinApi/SXGUI_list_view.h
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef SXGUI_LIST_VIEW_H
-#define SXGUI_LIST_VIEW_H
-
-#include "SXGUI_base.h"
-
-class SXGUIListView : public SXGUIComponent, public virtual ISXGUIListView
-{
-public:
-	SXGUIListView();
-	SXGUIListView(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id);
-	SXGUIListView(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id);
-
-	int InsertColumn(char* text, int col, int width);
-	int AddColumn(char* text, int width);
-	void DeleteColumn(int col);
-	int GetCountColumns();
-
-	int AddString(long data = -1);
-	void DeleteString(int str);
-	int GetCountString();
-
-	void SetTextItem(char* text, int col, int str);
-	void GetTextItem(char* text, int col, int str, int sizebuff);
-
-	void SetDataItem(int str, long data);
-	long GetDataItem(int str);
-
-	int GetSelString(int start = -1);
-	void SetSelString(int str);
-
-	int GetSelColumn();
-	void SetSelColumn(int col);
-
-	void Clear();
-	void ClearStrings();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_memo.cpp b/source/SXGUIWinApi/SXGUI_memo.cpp
deleted file mode 100644
index 6306b56cf..000000000
--- a/source/SXGUIWinApi/SXGUI_memo.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_memo.h>
-
-#pragma once
-
-SXGUIMemo::SXGUIMemo()
-{
-
-}
-
-SXGUIMemo::SXGUIMemo(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"EDIT",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIMemo::SXGUIMemo(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"EDIT",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | WS_BORDER | ES_AUTOVSCROLL | ES_LEFT | ES_WANTRETURN | ES_MULTILINE,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-bool SXGUIMemo::ScrollBars(bool h,bool v)
-{
-	return SXGUIFuctinon::ScroolBars(this,h,v);
-}
-
-bool SXGUIMemo::ScrollBarV()
-{
-	return SXGUIFuctinon::ScrollBarV(this);
-}
-
-bool SXGUIMemo::ScrollBarH()
-{
-	return SXGUIFuctinon::ScrollBarH(this);
-}
-
-
-bool SXGUIMemo::WordWrap()
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if((style & ES_AUTOVSCROLL) && !(style & ES_AUTOHSCROLL))
-			return true;
-	return false;
-}
-
-bool SXGUIMemo::WordWrap(bool bf)
-{
-	return this->ModifyStyle(bf ? ES_AUTOVSCROLL : 0,!bf ? ES_AUTOVSCROLL : 0);
-}
-
-bool SXGUIMemo::ScrollLine(WORD scroll,WORD dir,int count)
-{
-	return SXGUIFuctinon::ScrollLine(this,scroll,dir,count);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_memo.h b/source/SXGUIWinApi/SXGUI_memo.h
deleted file mode 100644
index 27a5652e0..000000000
--- a/source/SXGUIWinApi/SXGUI_memo.h
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef SXGUI_MEMO_H
-#define SXGUI_MEMO_H
-
-#include <SXGUIWinApi\SXGUI_edit.h>
-
-#pragma once
-
-class SXGUIMemo : public SXGUIEdit, public virtual ISXGUIMemo
-{
-public:
-	SXGUIMemo();
-	SXGUIMemo(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIMemo(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-	bool WordWrap();		//���������� �� ����������� ����
-	bool WordWrap(bool bf);	//������������ ��������� ����������� ����
-
-	//SXGUIFuctinon
-	bool ScrollBars(bool h,bool v);
-	bool ScrollBarV();
-	bool ScrollBarH();
-	bool ScrollLine(WORD scroll,WORD dir,int count);
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_menu.h b/source/SXGUIWinApi/SXGUI_menu.h
deleted file mode 100644
index b979dd760..000000000
--- a/source/SXGUIWinApi/SXGUI_menu.h
+++ /dev/null
@@ -1,72 +0,0 @@
-
-#ifndef SXGUI_MENU_H
-#define SXGUI_MENU_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIMenu : public virtual ISXGUIMenu
-{
-public:
-	SXGUIMenu();
-	SXGUIMenu(WORD menu);
-	void Release(){ mem_del(this); }
-	~SXGUIMenu();
-
-	bool InsertItem(int index,const char* text,WORD id,WORD id_sub_menu);
-	bool InsertPopupItem(int index,const char* text,WORD id,WORD id_sub_menu);
-	bool InsertSeparator(int index,WORD id,WORD id_sub_menu);
-
-	bool DeleteItem(WORD id);
-
-	HMENU GetSubMenu(WORD id);
-
-	bool CheckItem(WORD id,bool check);
-	bool EnableItem(WORD id, int enable);
-
-	bool GetCheckedItem(WORD id);
-	int GetEnabledItem(WORD id);
-
-
-	HMENU GetHMENU();
-	bool SetToWindow(HWND hwnd);
-
-protected:
-	HMENU MenuHandle;
-};
-
-/////////////////////////
-
-class SXGUIPopupMenu : public virtual ISXGUIPopupMenu
-{
-public:
-	SXGUIPopupMenu(WORD menu);
-	SXGUIPopupMenu();
-	void Release(){ mem_del(this); }
-	~SXGUIPopupMenu();
-
-	bool InsertItem(int index,const char* text,WORD id,WORD id_sub_menu);
-	bool InsertPopupItem(int index,const char* text,WORD id,WORD id_sub_menu);
-	bool InsertSeparator(int index,WORD id,WORD id_sub_menu);
-
-	bool DeleteItem(WORD id);
-
-	HMENU GetSubMenu(WORD id);
-
-	bool CheckItem(WORD id,bool check);
-	bool EnableItem(WORD id, int enable);
-
-	bool GetCheckedItem(WORD id);
-	int GetEnabledItem(WORD id);
-
-	bool Track(HWND hwnd,int x,int y);
-
-
-	HMENU GetHMENU();
-
-protected:
-	HMENU MenuHandle;
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_progress_bar.cpp b/source/SXGUIWinApi/SXGUI_progress_bar.cpp
deleted file mode 100644
index 057261cd5..000000000
--- a/source/SXGUIWinApi/SXGUI_progress_bar.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_progress_bar.h>
-
-#pragma once
-
-SXGUIProgressBar::SXGUIProgressBar()
-{
-
-}
-
-SXGUIProgressBar::SXGUIProgressBar(WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							PROGRESS_CLASS,
-							0,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	OldProc = DefWindowProc;
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIProgressBar::SXGUIProgressBar(WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool vertical,bool smooth)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							PROGRESS_CLASS,
-							0,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | (smooth ? PBS_SMOOTH : 0) | (vertical ? PBS_VERTICAL : 0),
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	//SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	ISXGUIComponent* component = dynamic_cast<ISXGUIComponent*>(this);
-	SetWindowLong(GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-int SXGUIProgressBar::GetPos()
-{
-	return SendMessage(this->GetHWND(),PBM_GETPOS,0,0);
-}
-
-int SXGUIProgressBar::SetPos(int pos)
-{
-	return SendMessage(this->GetHWND(),PBM_SETPOS,WPARAM(pos),0);
-}
-
-int SXGUIProgressBar::GetStep()
-{
-	int step = SendMessage(this->GetHWND(),PBM_SETSTEP,WPARAM(0),0);
-
-	SendMessage(this->GetHWND(),PBM_SETSTEP,WPARAM(step),0);
-	return step;
-}
-
-int SXGUIProgressBar::SetStep(int step)
-{
-	return SendMessage(this->GetHWND(),PBM_SETSTEP,WPARAM(step),0);
-}
-
-int SXGUIProgressBar::SetPosSteps(int steps)
-{
-	return SendMessage(this->GetHWND(),PBM_DELTAPOS,WPARAM(steps),0);
-}
-
-int SXGUIProgressBar::SetOneStep()
-{
-	return SendMessage(this->GetHWND(),PBM_STEPIT,0,0);
-}
-
-bool SXGUIProgressBar::SetMinMax(int min,int max)
-{
-	return SendMessage(this->GetHWND(),PBM_SETRANGE32,WPARAM(min),LPARAM(max));
-}
-
-
-int SXGUIProgressBar::GetMin()
-{
-	return SendMessage(this->GetHWND(),PBM_GETRANGE,WPARAM(1),0);
-}
-
-int SXGUIProgressBar::GetMax()
-{
-	return SendMessage(this->GetHWND(),PBM_GETRANGE,WPARAM(0),0);
-}
-
-bool SXGUIProgressBar::SetBarColor(BYTE r, BYTE g, BYTE b)
-{
-	return SendMessage(this->GetHWND(),PBM_SETBARCOLOR,0,LPARAM(RGB(r,g,b)));
-}
-
-bool SXGUIProgressBar::SetBkColor(BYTE r, BYTE g, BYTE b)
-{
-	return SendMessage(this->GetHWND(),PBM_SETBKCOLOR,1,LPARAM(RGB(r,g,b)));
-}
-
-DWORD SXGUIProgressBar::GetBarColor()
-{
-	COLORREF color = SendMessage(this->GetHWND(),PBM_SETBARCOLOR,0,0);
-	return color;
-}
-
-DWORD SXGUIProgressBar::GetBkColor()
-{
-	COLORREF color = SendMessage(this->GetHWND(),PBM_SETBKCOLOR,0,0);
-	return color;
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_progress_bar.h b/source/SXGUIWinApi/SXGUI_progress_bar.h
deleted file mode 100644
index 851f157b3..000000000
--- a/source/SXGUIWinApi/SXGUI_progress_bar.h
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef SXGUI_PROGRESS_BAR_H
-#define SXGUI_PROGRESS_BAR_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIProgressBar : public  SXGUIComponent, public virtual ISXGUIProgressBar
-{
-public:
-	SXGUIProgressBar();
-	SXGUIProgressBar(WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIProgressBar(WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool vertical,bool smooth);
-
-	//��������/���������� ������� ���������
-	int GetPos();				//���������� ������� �������
-	int SetPos(int pos);		//���������� ������ �������
-
-	//��������/���������� ������ ���� ���������
-	int GetStep();				//���������� ������� ������ ����
-	int SetStep(int step);		//���������� ������ ������ ����
-
-	//���������� �������������� �������
-	int SetPosSteps(int steps);	//���������� ������� �� ���������� �����
-	int SetOneStep();			//��������� ������� �� ���� ���
-
-	//������������� ������� �������� � ��������� ���������
-	//��� ������� ���������� ���������� true, ����� false
-	bool SetMinMax(int min,int max);	
-
-	//���������� �����������/������������ ������� ���������
-	int GetMin();
-	int GetMax();
-
-	//����������/�������� ���� ������� (���������� ���� ��������� ������� RGB(51,153,255))
-	bool SetBarColor(BYTE r, BYTE g, BYTE b);	//��� ������� ���������� ���������� true, ����� false
-	DWORD GetBarColor();
-
-	//����������/�������� ���� ���� (���������� ���� ����� ����� ���� ��������)
-	bool SetBkColor(BYTE r, BYTE g, BYTE b); //��� ������� ���������� ���������� true, ����� false
-	DWORD GetBkColor();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_radio_button.cpp b/source/SXGUIWinApi/SXGUI_radio_button.cpp
deleted file mode 100644
index 0d391efc2..000000000
--- a/source/SXGUIWinApi/SXGUI_radio_button.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#include "SXGUI_radio_button.h"
-
-#pragma once
-
-SXGUIRadioButton::SXGUIRadioButton()
-{
-
-}
-
-SXGUIRadioButton::SXGUIRadioButton(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"BUTTON",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIRadioButton::SXGUIRadioButton(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"BUTTON",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | BS_AUTORADIOBUTTON,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-void SXGUIRadioButton::SetCheck(bool check)
-{
-	SendMessage(this->GetHWND(),BM_SETCHECK,(check ? BST_CHECKED : BST_UNCHECKED),0);
-}
-
-bool SXGUIRadioButton::GetCheck()
-{
-	return SendMessage(this->GetHWND(),BM_GETCHECK,0,0) ? true : false;
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_radio_button.h b/source/SXGUIWinApi/SXGUI_radio_button.h
deleted file mode 100644
index 2e8283eeb..000000000
--- a/source/SXGUIWinApi/SXGUI_radio_button.h
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef SXGUI_RADIO_BUTTON_H
-#define SXGUI_RADIO_BUTTON_H
-
-#include "SXGUI_base.h"
-#include "SXGUI_button.h"
-
-#pragma once
-
-class SXGUIRadioButton : public SXGUIButton, public virtual ISXGUIRadioButton
-{
-public:
-	SXGUIRadioButton();
-	SXGUIRadioButton(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIRadioButton(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-	void SetCheck(bool check);
-	bool GetCheck();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_static.cpp b/source/SXGUIWinApi/SXGUI_static.cpp
deleted file mode 100644
index 3db716e82..000000000
--- a/source/SXGUIWinApi/SXGUI_static.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-
-#include "SXGUI_static.h"
-
-SXGUIStatic::SXGUIStatic()
-{
-
-}
-
-SXGUIStatic::SXGUIStatic(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							"STATIC",
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIStatic::SXGUIStatic(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							"STATIC",
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE  | SS_LEFT,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIStatic::SXGUIStatic(WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool vertical)
-{
-	this->WindowHandle = CreateWindowEx(
-							WS_EX_TOPMOST,
-							"STATIC",
-							0,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE  | SS_LEFT | (vertical ? SS_ETCHEDVERT : SS_ETCHEDHORZ),
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,handler);
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-int SXGUIStatic::Align()
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(style & SS_RIGHT)
-			return SXGUI_TEXT_ALIGN_RIGHT;
-		else if(style & SS_CENTER)
-			return SXGUI_TEXT_ALIGN_CENTER;
-		else
-			return SXGUI_TEXT_ALIGN_LEFT;
-}
-
-bool SXGUIStatic::Align(int align)
-{
-	if (align == SXGUI_TEXT_ALIGN_LEFT)
-		return this->ModifyStyle(SS_LEFT,0);
-	else if (align == SXGUI_TEXT_ALIGN_RIGHT)
-		return this->ModifyStyle(SS_RIGHT,0);
-	else if (align == SXGUI_TEXT_ALIGN_CENTER)
-		return this->ModifyStyle(SS_CENTER,0);
-	return false;
-}
-
-bool SXGUIStatic::WordWrap()
-{
-	long style = GetWindowLong(this->GetHWND(),GWL_STYLE);
-		if(!(style & SS_LEFTNOWORDWRAP))
-			return true;
-	return false;
-}
-
-bool SXGUIStatic::WordWrap(bool bf)
-{
-	return this->ModifyStyle(!bf ? SS_LEFTNOWORDWRAP : 0,bf ? SS_LEFTNOWORDWRAP : 0);
-}
diff --git a/source/SXGUIWinApi/SXGUI_static.h b/source/SXGUIWinApi/SXGUI_static.h
deleted file mode 100644
index fe5c7108a..000000000
--- a/source/SXGUIWinApi/SXGUI_static.h
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef SXGUI_STATIC_H
-#define SXGUI_STATIC_H
-
-#include "SXGUI_base.h"
-
-class SXGUIStatic : public SXGUITextual, public virtual ISXGUIStatic
-{
-public:
-	SXGUIStatic();
-	SXGUIStatic(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIStatic(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-	//������� �����
-	SXGUIStatic(WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id,bool vertical);
-
-	int Align();			//���������� ���� ������������ ������
-	bool Align(int align);	//������������� ������������ ������
-
-	bool WordWrap();		//���������� �� ����������� �����
-	bool WordWrap(bool bf); //����������� �� ��������� ����������� �����
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_status_bar.cpp b/source/SXGUIWinApi/SXGUI_status_bar.cpp
deleted file mode 100644
index 467f1df1b..000000000
--- a/source/SXGUIWinApi/SXGUI_status_bar.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-
-#include "SXGUI_status_bar.h"
-
-SXGUIStatusBar::SXGUIStatusBar()
-{
-
-}
-
-SXGUIStatusBar::SXGUIStatusBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							STATUSCLASSNAME,
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-	
-	AlignReSizing = SXGUI_STATUSBAR_ALIGNRS_PERCENT;
-	ArrWidth = 0;
-	ArrCoef = 0;
-	CountArr = 0;
-
-	this->GAlign.left = false;
-	this->GAlign.top = false;
-	this->GAlign.right = false;
-	this->GAlign.bottom = false;
-}
-
-SXGUIStatusBar::SXGUIStatusBar(const char* caption,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							STATUSCLASSNAME,
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | TBS_AUTOTICKS | SBARS_SIZEGRIP | CCS_BOTTOM,
-							CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-	
-	AlignReSizing = SXGUI_STATUSBAR_ALIGNRS_PERCENT;
-	ArrWidth = 0;
-	ArrCoef = 0;
-	CountArr = 0;
-
-	this->GAlign.left = false;
-	this->GAlign.top = false;
-	this->GAlign.right = false;
-	this->GAlign.bottom = false;
-
-	::GetClientRect(this->GetHWND(),&this->OldRect);
-}
-
-SXGUIStatusBar::~SXGUIStatusBar()
-{
-	mem_delete_a(ArrCoef);
-	mem_delete_a(ArrWidth);
-}
-
-bool SXGUIStatusBar::SetCountParts(int count, int *arr)
-{
-	CountArr = count;
-	mem_delete_a(ArrWidth);
-	ArrWidth = 0;
-	ArrWidth = arr;
-
-	this->ComCoef();
-
-		if(SendMessage(this->GetHWND(),SB_SETPARTS,count,(LPARAM)arr))
-			return true;
-		else
-			return false;
-}
-
-void SXGUIStatusBar::ComCoef()
-{
-	WORD GWidth = 0;
-	RECT rect;
-	::GetClientRect(this->GetHWND(),&rect);
-	GWidth = rect.right;
-	float OnePercent = 100.0 / float(GWidth);
-
-	mem_delete_a(ArrCoef);
-	ArrCoef = new float[CountArr];
-
-		for(int i=0;i<CountArr;i++)
-		{
-			ArrCoef[i] = OnePercent *  ((ArrWidth[i] != -1 ? ArrWidth[i] : GWidth) - (i > 0 ? ArrWidth[i-1] : 0));
-		}
-}
-
-bool SXGUIStatusBar::SetTextParts(int pos, const char* text)
-{
-	SendMessage(this->GetHWND(),SB_SETTEXT,pos,(LPARAM)text);
-	return true;
-}
-
-int SXGUIStatusBar::GetCountParts(int** arr)
-{
-	int CountParts = SendMessage(this->GetHWND(), SB_GETPARTS, 0, 0);
-	int *parts = new int[CountParts];
-
-	int tmpcp = SendMessage(this->GetHWND(), SB_GETPARTS, CountParts, (LPARAM)parts);
-
-		if(arr != 0)
-			*arr = parts;
-		else
-		{
-			mem_delete_a(parts);
-		}
-	return CountParts;
-}
-
-bool SXGUIStatusBar::GetTextParts(int pos, char* buf, int len)
-{
-	int CountSym = SendMessage(this->GetHWND(), SB_GETTEXTLENGTH, pos, 0);
-	if (len < CountSym)
-		return false;
-
-	if (!SendMessage(this->GetHWND(), SB_GETTEXT, pos, (LPARAM)buf))
-		return false;
-
-	return true;
-}
-
-void SXGUIStatusBar::SetAlignRS(int alignrs)
-{
-	AlignReSizing = alignrs;
-}
-
-int SXGUIStatusBar::GetAlignRS()
-{
-	return AlignReSizing;
-}
-
-void SXGUIStatusBar::Update()
-{
-	//RECT OldRect;
-	RECT NewRect;
-	//::GetClientRect(this->GetHWND(),&this->OldRect);
-	SendMessage(this->GetHWND(),WM_SIZE,0,0);
-	::GetClientRect(this->GetHWND(),&NewRect);
-
-	int width = NewRect.right - OldRect.right;
-		/*if(width != 0)
-			MessageBox(0,ToPointChar(width),0,0);*/
-	int *Arr;
-	
-	WORD CountParts = this->GetCountParts(&Arr);
-	int *NewArr = new int[CountParts];
-
-	bool UpdateOldRect = true;
-
-	WORD tmpCountParts = (Arr[CountParts-1] == -1 ? CountParts - 1 : CountParts);
-		if (AlignReSizing == SXGUI_STATUSBAR_ALIGNRS_PERCENT)
-		{
-				for(int i=0;i<tmpCountParts;i++)
-				{
-					float coef = ArrCoef[i] / 100.0;
-					//MessageBox(0,ToPointChar(coef),0,0);
-					float part_width = Arr[i] - (i > 0 ? Arr[i-1] : 0);
-					float new_part_width = part_width + (int(width * coef));
-					//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(coef)),ToPointChar(new_part_width),0);
-					NewArr[i] = new_part_width + (i > 0 ? NewArr[i-1] : 0);
-						if(Arr[i] == NewArr[i])
-							UpdateOldRect = false;
-							//MessageBox(0,ToPointChar(ToString(Arr[i]) + "|" + ToString(NewArr[i])),0,0);
-				}
-		}
-		else if (AlignReSizing == SXGUI_STATUSBAR_ALIGNRS_EQUALLY)
-		{
-				for(int i=0;i<tmpCountParts;i++)
-					NewArr[i] = Arr[i] + (width / CountParts);
-		}
-		else
-		{
-				for(int i=0;i<tmpCountParts;i++)
-					NewArr[i] = Arr[i];
-		}
-
-		if(Arr[CountParts-1] == -1)
-			NewArr[CountParts-1] = Arr[CountParts-1];
-
-		if(UpdateOldRect)
-			::GetClientRect(this->GetHWND(),&this->OldRect);
-
-	SendMessage(this->GetHWND(),SB_SETPARTS,CountParts,(LPARAM)NewArr);
-	mem_delete_a(Arr);
-	mem_delete_a(NewArr);
-}
-
-void SXGUIStatusBar::UpdateSize()
-{
-	this->Update();
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_status_bar.h b/source/SXGUIWinApi/SXGUI_status_bar.h
deleted file mode 100644
index 4ae85488c..000000000
--- a/source/SXGUIWinApi/SXGUI_status_bar.h
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef SXGUI_STATUS_BAR_H
-#define SXGUI_STATUS_BAR_H
-
-#include "SXGUI_base.h"
-
-class SXGUIStatusBar : public SXGUIComponent, public virtual ISXGUIStatusBar
-{
-public:
-	SXGUIStatusBar();
-	SXGUIStatusBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIStatusBar(const char* caption,HWND parent,WNDPROC handler,DWORD id);
-	void Release(){ mem_del(this); }
-	~SXGUIStatusBar();
-
-	bool SetCountParts(int count, int *arr);
-	int GetCountParts(int **arr);
-	bool SetTextParts(int pos, const char* text);
-	bool GetTextParts(int pos, char* buf, int len);
-
-	void Update();
-	void UpdateSize();
-
-	void SetAlignRS(int alignrs);
-	int GetAlignRS();
-
-protected:
-
-	int AlignReSizing;
-
-	RECT OldRect;
-
-	void ComCoef();
-
-	float*	ArrCoef;
-	int*	ArrWidth;
-	WORD	CountArr;
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_toolbar.cpp b/source/SXGUIWinApi/SXGUI_toolbar.cpp
deleted file mode 100644
index 5374c12c9..000000000
--- a/source/SXGUIWinApi/SXGUI_toolbar.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-
-#include "SXGUI_toolbar.h"
-
-SXGUIToolBar::SXGUIToolBar()
-{
-
-}
-
-SXGUIToolBar::SXGUIToolBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,WORD width_element,WORD heigth_element,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							TOOLBARCLASSNAME,
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | TBSTYLE_FLAT | WS_BORDER | CCS_NOMOVEY | CCS_NORESIZE | TBSTYLE_TOOLTIPS | TBSTYLE_WRAPABLE,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,handler);
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-
-	HimList = ImageList_Create (width_element, heigth_element, ILC_COLOR24 | ILC_MASK, 1, 256);
-	SendMessage(this->GetHWND(), TB_SETIMAGELIST, 0, (LPARAM)HimList);
-	ShowWindow(this->GetHWND(), SW_SHOW);
-}
-
-SXGUIToolBar::~SXGUIToolBar()
-{
-	ImageList_Destroy(HimList);
-}
-
-void SXGUIToolBar::AddButton(WORD num,WORD id,const char* hint,WORD id_resource,DWORD mask)
-{
-	TBBUTTON tbb[1];
-	tbb[0].iBitmap = num;
-	tbb[0].idCommand = id;
-	tbb[0].fsState = TBSTATE_ENABLED;
-	tbb[0].fsStyle = TBSTYLE_BUTTON;
-	tbb[0].dwData = 0;
-	tbb[0].iString = (INT_PTR)hint;
-
-	HBITMAP HBitmap = LoadBitmap (GetModuleHandle(NULL), MAKEINTRESOURCE(id_resource));
-    ImageList_AddMasked (HimList, HBitmap, mask);
-
-	SendMessage (this->GetHWND(), TB_ADDBUTTONS, 1, (LPARAM)&tbb);
-	SendMessage (this->GetHWND(), TB_SETMAXTEXTROWS, 0, 0);
-	SendMessage(this->GetHWND(), TB_ADDSTRING, 0, (LPARAM)hint);
-	ShowWindow (this->GetHWND(), SW_SHOW);
-}
-
-void SXGUIToolBar::AddSeparator(WORD num)
-{
-	TBBUTTON tbb[1];
-	tbb[0].iBitmap = num;
-	tbb[0].idCommand = 0;
-	tbb[0].fsState = TBSTATE_ENABLED;
-	tbb[0].fsStyle = TBSTYLE_SEP;
-	tbb[0].dwData = 0;
-
-	SendMessage (this->GetHWND(), TB_ADDBUTTONS, 1, (LPARAM)&tbb);
-	SendMessage (this->GetHWND(), TB_SETMAXTEXTROWS, 0, 0);
-	ShowWindow (this->GetHWND(), SW_SHOW);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_toolbar.h b/source/SXGUIWinApi/SXGUI_toolbar.h
deleted file mode 100644
index b34aed222..000000000
--- a/source/SXGUIWinApi/SXGUI_toolbar.h
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef SXGUI_TOOLBAR_H
-#define SXGUI_TOOLBAR_H
-
-#include "SXGUI_base.h"
-
-class SXGUIToolBar : public SXGUIComponent, public virtual ISXGUIToolBar
-{
-public:
-	SXGUIToolBar();
-	SXGUIToolBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,WORD width_element,WORD heigth_element,HWND parent,WNDPROC handler,DWORD id);
-	void Release(){ mem_del(this); }
-	~SXGUIToolBar();
-
-	void AddButton(WORD num,WORD id,const char* hint,WORD id_resource,DWORD mask);
-	void AddSeparator(WORD num);
-
-private:
-	HIMAGELIST HimList;
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_track_bar.cpp b/source/SXGUIWinApi/SXGUI_track_bar.cpp
deleted file mode 100644
index 9591d8a64..000000000
--- a/source/SXGUIWinApi/SXGUI_track_bar.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-
-#include "SXGUI_track_bar.h"
-
-SXGUITrackBar::SXGUITrackBar()
-{
-
-}
-
-SXGUITrackBar::SXGUITrackBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							TRACKBAR_CLASS,
-							caption,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUITrackBar::SXGUITrackBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
-{
-	this->WindowHandle = CreateWindowEx(
-							0,
-							TRACKBAR_CLASS,
-							caption,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | TBS_AUTOTICKS,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-void SXGUITrackBar::SetPos(int pos)
-{
-	SendMessage(this->GetHWND(),TBM_SETPOS,WPARAM(TRUE),LPARAM(pos));
-}
-
-int SXGUITrackBar::GetPos()
-{
-	return SendMessage(this->GetHWND(),TBM_GETPOS,0,0);
-}
-
-void SXGUITrackBar::SetMinMax(int min,int max)
-{
-	SendMessage(this->GetHWND(),TBM_SETRANGE,WPARAM(TRUE),MAKELPARAM(min,max));
-}
-
-int SXGUITrackBar::GetMin()
-{
-	return SendMessage(this->GetHWND(),TBM_GETRANGEMIN,0,0);
-}
-
-int SXGUITrackBar::GetMax()
-{
-	return SendMessage(this->GetHWND(),TBM_GETRANGEMAX,0,0);
-}
-
-bool SXGUITrackBar::SetTick(int pos)
-{
-		if(!SendMessage(this->GetHWND(),TBM_SETTIC,0,LPARAM(pos)))
-			return false;
-	return true;
-}
-
-int SXGUITrackBar::GetTick(int index)
-{
-	return SendMessage(this->GetHWND(),TBM_GETTIC,WPARAM(index),0);
-}
-
-void SXGUITrackBar::SetTickFrequency(int freq)
-{
-	SendMessage(this->GetHWND(),TBM_SETTICFREQ,WPARAM(freq),0);
-}
-
-bool SXGUITrackBar::SetBuddies(HWND hwnd_left,HWND hwnd_right)
-{
-		if(!hwnd_left && !hwnd_left)
-			return false;
-	
-	SendMessage(this->GetHWND(),TBM_SETBUDDY,WPARAM(TRUE),LPARAM(hwnd_left));
-	SendMessage(this->GetHWND(),TBM_SETBUDDY,WPARAM(FALSE),LPARAM(hwnd_right));
-
-	return true;
-}
-
-HWND SXGUITrackBar::GetLeftBuddy()
-{
-	return HWND(SendMessage(this->GetHWND(),TBM_GETBUDDY,WPARAM(TRUE),0));
-}
-
-HWND SXGUITrackBar::GetRightBuddy()
-{
-	return HWND(SendMessage(this->GetHWND(),TBM_GETBUDDY,WPARAM(FALSE),0));
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_track_bar.h b/source/SXGUIWinApi/SXGUI_track_bar.h
deleted file mode 100644
index ea21983fb..000000000
--- a/source/SXGUIWinApi/SXGUI_track_bar.h
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef SXGUI_TRACK_BAR_H
-#define SXGUI_TRACK_BAR_H
-
-#include "SXGUI_base.h"
-
-class SXGUITrackBar : public SXGUIComponent, public virtual ISXGUITrackBar
-{
-public:
-	SXGUITrackBar();
-	SXGUITrackBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUITrackBar(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-	void SetPos(int pos);
-	int GetPos();
-
-	void SetMinMax(int min,int max);
-	int GetMin();
-	int GetMax();
-
-	bool SetTick(int pos);
-	int GetTick(int index);
-
-	void SetTickFrequency(int freq);
-
-	bool SetBuddies(HWND hwnd_left,HWND hwnd_right);
-	HWND GetLeftBuddy();
-	HWND GetRightBuddy();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_up_down.cpp b/source/SXGUIWinApi/SXGUI_up_down.cpp
deleted file mode 100644
index d9f1089d4..000000000
--- a/source/SXGUIWinApi/SXGUI_up_down.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_up_down.h>
-
-#pragma once
-
-SXGUIUpDown::SXGUIUpDown()
-{
-
-}
-
-SXGUIUpDown::~SXGUIUpDown()
-{
-
-}
-
-SXGUIUpDown::SXGUIUpDown(WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id,HWND buddy)
-{
-	this->WindowHandle = CreateWindowEx(
-							exstyle,
-							UPDOWN_CLASS,
-							0,
-							style,
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	SendMessage(this->GetHWND(), UDM_SETRANGE32, -65535, 65535);
-    SendMessage(this->GetHWND(), UDM_SETPOS32, 0, 0);
-		if(buddy)
-			this->SetBuddy(buddy);
-
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-SXGUIUpDown::SXGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, HWND buddy, bool align_left)
-{
-	/*this->GetHWND() = CreateUpDownControl(
-												WS_CHILD | WS_BORDER | WS_VISIBLE | UDS_WRAP | UDS_SETBUDDYINT | UDS_ARROWKEYS | (left_right == 1 ?UDS_ALIGNRIGHT : UDS_ALIGNLEFT), 
-												x,y,width,heigth, 
-												parent, 0, GetModuleHandle(0), buddy,
-												0, 0, 0
-											);*/
-	this->WindowHandle = CreateWindowEx(
-							0,
-							UPDOWN_CLASS,
-							0,
-							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | UDS_WRAP | UDS_SETBUDDYINT | UDS_ARROWKEYS | (align_left ? UDS_ALIGNRIGHT : UDS_ALIGNLEFT),
-							x,y,width,heigth,
-							parent,
-							(HMENU)id,
-							GetModuleHandle(0),
-							0);
-	SendMessage(this->GetHWND(), UDM_SETRANGE32, -65535, 65535);
-    SendMessage(this->GetHWND(), UDM_SETPOS32, 0, 0);
-		if(buddy)
-			this->SetBuddy(buddy);
-
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-}
-
-void SXGUIUpDown::SetMinMax(long min,long max)
-{
-	SendMessage(this->GetHWND(), UDM_SETRANGE32, min, max);
-}
-
-long SXGUIUpDown::SetPos(long pos)
-{
-	return SendMessage(this->GetHWND(), UDM_SETPOS32, 0, pos);
-}
-
-long SXGUIUpDown::GetMin()
-{
-	long min = 0;
-	SendMessage(this->GetHWND(), UDM_GETRANGE32, (WPARAM)&min, 0);
-	return min;
-}
-
-long SXGUIUpDown::GetMax()
-{
-	long max = 0;
-	SendMessage(this->GetHWND(), UDM_GETRANGE32, 0, (LPARAM)&max);
-	return max;
-}
-
-long SXGUIUpDown::GetPos()
-{
-	return SendMessage(this->GetHWND(), UDM_GETPOS32, 0, 0);
-}
-
-HWND SXGUIUpDown::SetBuddy(HWND buddy)
-{
-	return (HWND)SendMessage(this->GetHWND(), UDM_SETBUDDY, (WPARAM)buddy, 0);
-}
-
-HWND SXGUIUpDown::GetBuddy()
-{
-	return (HWND)SendMessage(this->GetHWND(), UDM_GETBUDDY, 0, 0);
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_up_down.h b/source/SXGUIWinApi/SXGUI_up_down.h
deleted file mode 100644
index d6479427a..000000000
--- a/source/SXGUIWinApi/SXGUI_up_down.h
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef SXGUI_UP_DOWN_H
-#define SXGUI_UP_DOWN_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIUpDown : public SXGUIComponent, public virtual ISXGUIUpDown
-{
-public:
-	SXGUIUpDown();
-	~SXGUIUpDown();
-	SXGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, DWORD id, HWND buddy);
-	SXGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, DWORD id, HWND buddy, bool align_left);
-
-	void SetMinMax(long min,long max);
-	long SetPos(long pos);
-
-	long GetMin();
-	long GetMax();
-	long GetPos();
-
-	HWND SetBuddy(HWND buddy);
-	HWND GetBuddy();
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/base.cpp b/source/SXGUIWinApi/base.cpp
new file mode 100644
index 000000000..1d8b91172
--- /dev/null
+++ b/source/SXGUIWinApi/base.cpp
@@ -0,0 +1,1093 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "base.h"
+
+
+CGUIControl::CGUIControl()
+{
+	m_hWindow = 0;
+	m_hParent = 0;
+	m_id = -1;
+}
+
+CGUIControl::~CGUIControl()
+{
+	::DestroyWindow(m_hWindow);
+}
+
+CGUIControl::CGUIControl(HWND window_handle, HWND parent_handle, WNDPROC handler)
+{
+	m_hWindow = window_handle;
+	m_hParent = parent_handle;
+	if (handler != 0)
+		m_lpfnPrevProc = (WNDPROC)SetWindowLong(m_hWindow, GWL_WNDPROC, (LONG)handler);
+}
+
+void CGUIControl::init(HWND window_handle, HWND parent_handle, WNDPROC handler, ID idObj)
+{
+	m_hWindow = window_handle;
+	m_hParent = parent_handle;
+
+	if (handler != 0)
+	{
+		if ((WNDPROC)GetWindowLong(m_hWindow, GWL_WNDPROC) != handler)
+		{
+			DWORD ptrf = SetWindowLong(m_hWindow, GWL_WNDPROC, (LONG)handler);
+			m_lpfnPrevProc = (WNDPROC)ptrf;
+		}
+	}
+
+	m_id = idObj;
+}
+
+HWND CGUIControl::getParent()
+{
+	return m_hParent;
+}
+
+bool CGUIControl::setParent(HWND parent_handle)
+{
+	HWND OldParent = GetParent(m_hWindow);
+	HWND tmp_parent = SetParent(m_hWindow, parent_handle);
+	if (tmp_parent = OldParent)
+	{
+		m_hParent = parent_handle;
+		return true;
+	}
+	return false;
+}
+
+HWND CGUIControl::getHWND()
+{
+	return m_hWindow;
+}
+
+void CGUIControl::setFocus()
+{
+	::SetFocus(m_hWindow);
+}
+
+bool CGUIControl::getFocus()
+{
+	return GetFocus() == m_hWindow ? true : false;
+}
+
+void CGUIControl::setVisible(bool bf)
+{
+	ShowWindow(m_hWindow, bf ? SW_SHOW : SW_HIDE);
+}
+
+bool CGUIControl::getVisible()
+{
+	return IsWindowVisible(m_hWindow);
+}
+
+WNDPROC CGUIControl::getPrevWndProc()
+{
+	return m_lpfnPrevProc;
+}
+
+void* CGUIControl::getUserPtr()
+{
+	return(m_pUserPtr);
+}
+void* CGUIControl::setUserPtr(void *ptr)
+{
+	void * oldPtr = m_pUserPtr;
+	m_pUserPtr = ptr;
+	return(oldPtr);
+}
+
+//##########################################################################
+
+CGUIComponent::CGUIComponent()
+{
+	m_pHint = 0;
+
+	m_aFollowParentSide[SXGUI_SIDE_TOP] = false;
+	m_aFollowParentSide[SXGUI_SIDE_BOTTOM] = false;
+	m_aFollowParentSide[SXGUI_SIDE_RIGHT] = false;
+	m_aFollowParentSide[SXGUI_SIDE_LEFT] = false;
+
+	m_rcParentScreen.top = m_rcParentScreen.bottom = m_rcParentScreen.left = m_rcParentScreen.right = 0;
+	m_isTransparentTextBk = true;
+
+	m_aStrethSide[SXGUI_SIDE_TOP] = true;
+	m_aStrethSide[SXGUI_SIDE_BOTTOM] = true;
+	m_aStrethSide[SXGUI_SIDE_RIGHT] = true;
+	m_aStrethSide[SXGUI_SIDE_LEFT] = true;
+
+	m_iMinSizeWidth = m_iMinSizeHeight = 0;
+	//Font = 0;
+}
+
+CGUIComponent::~CGUIComponent()
+{
+	mem_delete(m_pHint);
+	//delete Font;
+	//Font = 0;
+}
+
+void CGUIComponent::initComponent()
+{
+	COLORREF color_bk = GetBkColor(GetDC(m_hWindow));
+	COLORREF color_text = GetTextColor(GetDC(m_hWindow));
+	COLORREF color_brush = GetDCBrushColor(GetDC(m_hWindow));
+
+	m_dwColorText = color_text;
+	m_dwColorTextBk = color_bk;
+	m_dwColorBrush = color_brush;
+
+	m_hBrush = CreateSolidBrush(m_dwColorBrush);
+
+	GetWindowRect(getParent(), &m_rcParentScreen);
+
+	GetWindowRect(m_hWindow, &m_rcWinScreen);
+	MapWindowPoints(getParent(), HWND_DESKTOP, (LPPOINT)&m_rcWinScreen, 2);
+
+	RECT rc;
+	GetWindowRect(m_hWindow, &rc);
+
+	m_rcOffsetParent.top = m_rcOffsetParent.bottom = m_rcOffsetParent.left = m_rcOffsetParent.right = 0;
+
+	//MinSizeX = rc.right - rc.left;
+	//MinSizeY = rc.bottom - rc.top;
+
+	//HFONT HandleFont;
+	//SystemParametersInfo(SPI_GETICONTITLELOGFONT, 0, &HandleFont, 0);
+
+	HFONT HandleFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
+	SendMessage(
+		m_hWindow,
+		WM_SETFONT,
+		WPARAM(HandleFont),
+		0);
+	DeleteObject(HandleFont);
+	//Font = new SXFont();
+	//SetFont(Font);
+}
+
+bool CGUIComponent::getEnable()
+{
+	return ((IsWindowEnabled(getHWND()) == 0) ? false : true);
+}
+
+void CGUIComponent::setEnable(bool bf)
+{
+	EnableWindow(getHWND(), (bf ? 1 : 0));
+}
+
+bool CGUIComponent::setWinRect(const RECT* rect, bool alignment_screen_space)
+{
+	RECT wrect;
+	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
+	UINT width_screen = wrect.right;
+	UINT heigth_screen = wrect.bottom;
+
+	//MessageBox(0,ToPointChar(ToString(width_screen) + "|" + ToString(heigth_screen)),0,0);
+
+	WORD x = rect->left;
+	WORD y = rect->top;
+	WORD width = rect->right - rect->left;
+	WORD heigth = rect->bottom - rect->top;
+	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
+	if (alignment_screen_space)
+	{
+		x = x < width_screen ? x : width_screen;
+		y = y < heigth_screen ? y : heigth_screen;
+		//MessageBox(0,ToPointChar(ToString(rect->right) + "|" + ToString(rect->bottom)),"wh",0);
+		width = rect->right <= width_screen ? width : width_screen - x;
+		heigth = rect->bottom <= heigth_screen ? heigth : heigth_screen - y;
+
+		/*if(x < 0)
+		x = 0;
+		if(y < 0)
+		y = 0;*/
+	}
+	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
+	BOOL bf = MoveWindow(getHWND(), x, y, width, heigth, true);
+	return bf == TRUE ? true : false;
+}
+
+void CGUIComponent::getWinRect(RECT* rect)
+{
+	GetWindowRect(getHWND(), rect);
+}
+
+bool CGUIComponent::setClientRect(const RECT* rect, bool alignment_screen_space)
+{
+	RECT wrect;
+	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
+	long width_screen = wrect.right;
+	long heigth_screen = wrect.bottom;
+
+	//MessageBox(0,ToPointChar(ToString(width_screen) + "|" + ToString(heigth_screen)),0,0);
+
+	long x = rect->left;
+	long y = rect->top;
+	long width = rect->right - rect->left;
+	long heigth = rect->bottom - rect->top;
+	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
+	if (alignment_screen_space)
+	{
+		x = x < width_screen ? x : width_screen;
+		y = y < heigth_screen ? y : heigth_screen;
+		//MessageBox(0,ToPointChar(ToString(rect->right) + "|" + ToString(rect->bottom)),"wh",0);
+		width = rect->right <= width_screen ? width : width_screen - x;
+		heigth = rect->bottom <= heigth_screen ? heigth : heigth_screen - y;
+	}
+	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
+	BOOL bf = MoveWindow(getHWND(), x, y, width, heigth, TRUE);
+	/*RECT* qwerr = GetClientRect();
+	if(x != qwerr->left || y != qwerr->top || width != qwerr->right - qwerr->left || heigth != qwerr->bottom - qwerr->top)
+	MessageBox(0,0,0,0);*/
+	return bf == TRUE ? true : false;
+}
+
+void CGUIComponent::getClientRect(RECT* rect)
+{
+	GetWindowRect(getHWND(), rect);
+	MapWindowPoints(NULL, getParent(), (LPPOINT)rect, 2);
+}
+
+void CGUIComponent::setFont(const char* name, int height, int width, int weight, int italic, int underline, int strike_out)
+{
+	HFONT hfont = getHFont();
+	LOGFONT LogFont;
+	ZeroMemory(&LogFont, sizeof(&LogFont));
+	GetObject(hfont, sizeof(LOGFONT), &LogFont);
+	if (name != 0)
+		strcpy(LogFont.lfFaceName, name);
+
+	if (height != -1)
+		LogFont.lfHeight = height;
+
+	if (width != -1)
+		LogFont.lfWidth = width;
+
+	if (weight != -1)
+		LogFont.lfWeight = weight;
+
+	if (italic != -1)
+		LogFont.lfItalic = italic;
+
+	if (underline != -1)
+		LogFont.lfUnderline = underline;
+
+	if (strike_out != -1)
+		LogFont.lfStrikeOut = strike_out;
+	DeleteObject(hfont);
+	hfont = ::CreateFontIndirect(&LogFont);
+	SendMessage(getHWND(), WM_SETFONT, WPARAM(hfont), 1);
+}
+
+void CGUIComponent::setHFont(HFONT hfont)
+{
+	SendMessage(getHWND(), WM_SETFONT, WPARAM(hfont), 1);
+}
+/*
+void CGUIComponent::GetFont(SXFont* font)
+{
+if(font)
+{
+Font->SetHandleFont((HFONT)SendMessage(m_hWindow, WM_GETFONT, 0, 0));
+memcpy(font,Font,sizeof(SXFont));
+}
+//return (HFONT)SendMessage(m_hWindow, WM_GETFONT, 0, 0);
+}*/
+
+HFONT CGUIComponent::getHFont()
+{
+	return (HFONT)SendMessage(m_hWindow, WM_GETFONT, 0, 0);
+}
+
+//����� �� ����� ����������� ��� ������ ������� ����� ������
+//����� ������� ������ �� ��������� � ��� ... � ���
+/*void CGUIComponent::SetFont(SXFont* font)
+{
+if(font)
+{
+memcpy(Font,font,sizeof(SXFont));
+//Font->SetHandleFont(font->GetHandleFont());
+SendMessage(m_hWindow,WM_SETFONT,WPARAM(font->GetHandleFont()),0);
+}
+}*/
+
+HFONT CGUIComponent::getParentHFont()
+{
+	return (HFONT)SendMessage(getParent(), WM_GETFONT, 0, 0);
+}
+
+bool CGUIComponent::hasParentFont()
+{
+	HFONT ChildHFont = getHFont();
+	HFONT ParentHFont = getParentHFont();
+	LOGFONT ChildLF, ParentLF;
+	ZeroMemory(&ChildLF, sizeof(&ChildLF));
+	GetObject(ChildHFont, sizeof(LOGFONT), &ChildLF);
+	ZeroMemory(&ParentLF, sizeof(&ParentLF));
+	GetObject(ParentHFont, sizeof(LOGFONT), &ParentLF);
+	if (ChildLF.lfCharSet != ParentLF.lfCharSet)
+		return false;
+	if (ChildLF.lfClipPrecision != ParentLF.lfClipPrecision)
+		return false;
+	if (ChildLF.lfEscapement != ParentLF.lfEscapement)
+		return false;
+	if (ChildLF.lfHeight != ParentLF.lfHeight)
+		return false;
+	if (ChildLF.lfItalic != ParentLF.lfItalic)
+		return false;
+	if (ChildLF.lfOrientation != ParentLF.lfOrientation)
+		return false;
+	if (ChildLF.lfOutPrecision != ParentLF.lfOutPrecision)
+		return false;
+	if (ChildLF.lfPitchAndFamily != ParentLF.lfPitchAndFamily)
+		return false;
+	if (ChildLF.lfQuality != ParentLF.lfQuality)
+		return false;
+	if (ChildLF.lfStrikeOut != ParentLF.lfStrikeOut)
+		return false;
+	if (ChildLF.lfUnderline != ParentLF.lfUnderline)
+		return false;
+	if (ChildLF.lfWeight != ParentLF.lfWeight)
+		return false;
+	if (ChildLF.lfWidth != ParentLF.lfWidth)
+		return false;
+	if (strcmp(ChildLF.lfFaceName, ParentLF.lfFaceName) != 0)
+		return false;
+	return true;
+}
+
+
+bool CGUIComponent::modifyStyle(long style_add, long style_del)
+{
+
+	if (style_add)
+	{
+		if (!SetWindowLong(getHWND(), GWL_STYLE, GetWindowLong(getHWND(), GWL_STYLE) | style_add))
+			return false;
+	}
+
+	if (style_del)
+	{
+		if (!SetWindowLong(getHWND(), GWL_STYLE, GetWindowLong(getHWND(), GWL_STYLE)&~style_del))
+			return false;
+	}
+	return true;
+}
+
+bool CGUIComponent::modifyExStyle(long style_add, long style_del)
+{
+
+	if (style_add)
+	{
+		if (!SetWindowLong(getHWND(), GWL_EXSTYLE, GetWindowLong(getHWND(), GWL_EXSTYLE) | style_add))
+			return false;
+	}
+
+	if (style_del)
+	{
+		if (!SetWindowLong(getHWND(), GWL_EXSTYLE, GetWindowLong(getHWND(), GWL_EXSTYLE)&~style_del))
+			return false;
+	}
+	return true;
+}
+
+void CGUIComponent::setShowHint(bool bf)
+{
+	if (m_pHint != 0)
+		m_pHint->setVisible(bf);
+	else
+	{
+		m_pHint = new CGUIHint(getHWND());
+		m_pHint->setVisible(bf);
+	}
+}
+
+bool CGUIComponent::getShowHint()
+{
+	if (m_pHint != 0)
+		return m_pHint->getVisible();
+	return false;
+}
+
+void CGUIComponent::setHintText(const char* text)
+{
+	if (m_pHint == 0)
+		m_pHint = new CGUIHint(getHWND());
+	m_pHint->setText(text);
+}
+
+const char* CGUIComponent::getHintText()
+{
+	if (m_pHint != 0)
+		return m_pHint->getText();
+	return 0;
+}
+
+void CGUIComponent::updateSize()
+{
+	char classname[256];
+	GetClassName(getHWND(), classname, 256);
+	if (strcmp(classname, WC_LISTVIEW) == 0)
+		int qwerty = 0;
+	RECT rect;
+	RECT win_screen_rect;
+	BOOL bf = GetWindowRect(getHWND(), &rect);
+
+	GetWindowRect(getHWND(), &win_screen_rect);
+	//MapWindowPoints(m_hParent, HWND_DESKTOP, (LPPOINT)&win_screen_rect, 2);
+
+	RECT NewParentRect;
+	GetWindowRect(getParent(), &NewParentRect);
+
+	//if(NewParentRect.top != m_rcParentScreen.top)
+	//MessageBox(0,ToPointChar(NewParentRect.top),ToPointChar(m_rcParentScreen.top),0);
+
+	//���������� ��������� � ������������ ��������
+	//MapWindowPoints(NULL, m_hParent, (LPPOINT)&rect, 2);
+
+	if (abs(m_rcOffsetParent.left) > 30000 || abs(m_rcOffsetParent.right) > 30000 || abs(m_rcOffsetParent.top) > 30000 || abs(m_rcOffsetParent.bottom) > 30000)
+		return;
+
+	//�������� �� ���� ������������
+	RECT offset;
+	offset.left = m_rcOffsetParent.left ? m_rcOffsetParent.left : NewParentRect.left - m_rcParentScreen.left;
+	offset.right = m_rcOffsetParent.right ? m_rcOffsetParent.right : NewParentRect.right - m_rcParentScreen.right;
+	offset.top = m_rcOffsetParent.top ? m_rcOffsetParent.top : NewParentRect.top - m_rcParentScreen.top;
+	offset.bottom = m_rcOffsetParent.bottom ? m_rcOffsetParent.bottom : NewParentRect.bottom - m_rcParentScreen.bottom;
+
+	//MessageBox(0,ToPointChar(offset.top),ToPointChar(m_rcParentScreen.top),0);
+
+
+	if (m_aFollowParentSide[SXGUI_SIDE_LEFT]) //rect.left
+	{
+		if (m_aFollowParentSide[SXGUI_SIDE_RIGHT])
+			rect.right -= offset.left;
+		/*else
+		rect.right += offset.left;*/
+	}
+	else
+	{
+		rect.left = rect.left - offset.left;
+		rect.right -= offset.left;
+	}
+
+	if (m_aFollowParentSide[SXGUI_SIDE_TOP]) //rect.top
+	{
+		//MessageBox(0,ToPointChar(offset.top),ToPointChar(rect.top),0);
+		//rect.top = rect.top + offset.top;
+		if (m_aFollowParentSide[SXGUI_SIDE_BOTTOM])
+			rect.bottom -= offset.top;
+	}
+	else
+	{
+		rect.top = rect.top - offset.top;
+		rect.bottom -= offset.top;
+	}
+
+	if (m_aFollowParentSide[SXGUI_SIDE_RIGHT]) //rect.right
+	{
+		rect.right = rect.right + offset.right;
+		if (!m_aFollowParentSide[SXGUI_SIDE_LEFT]) //rect.left
+			rect.left += offset.right;
+	}
+
+	if (m_aFollowParentSide[SXGUI_SIDE_BOTTOM]) //rect.bottom
+	{
+
+		rect.bottom = rect.bottom + offset.bottom;
+		if (!m_aFollowParentSide[SXGUI_SIDE_TOP]) //rect.top
+			rect.top += offset.bottom;
+	}
+
+	MapWindowPoints(NULL, getParent(), (LPPOINT)&rect, 2);
+
+
+	//MapWindowPoints(m_hParent, HWND_DESKTOP, (LPPOINT)&m_rcWinScreen, 2);
+	//MessageBox(0,ToPointChar(rect.bottom - rect.top),ToPointChar(rect.bottom - rect.top),0);
+
+	bf = MoveWindow(getHWND(), rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, true);
+	//SetWinRect(&rect,true);
+	GetWindowRect(getParent(), &m_rcParentScreen);
+	GetWindowRect(getHWND(), &m_rcWinScreen);
+
+	m_rcOffsetParent.top = m_rcOffsetParent.bottom = m_rcOffsetParent.left = m_rcOffsetParent.right = 0;
+
+	DWORD err = GetLastError();
+	int qweerty = 0;
+}
+
+void CGUIComponent::updateRect()
+{
+	//MessageBox(0,"UpdateRect","UpdateRect",0);
+	RECT tmprect;
+	GetWindowRect(getParent(), &tmprect);
+	m_rcOffsetParent.top = tmprect.top - m_rcParentScreen.top;
+	m_rcOffsetParent.left = tmprect.left - m_rcParentScreen.left;
+	m_rcOffsetParent.bottom = tmprect.bottom - m_rcParentScreen.bottom;
+	m_rcOffsetParent.right = tmprect.right - m_rcParentScreen.right;
+	//MessageBox(0,ToPointChar(tmprect.top - m_rcParentScreen.top),ToPointChar(0),0);
+	GetWindowRect(getParent(), &m_rcParentScreen);
+	//GetWindowRect(m_hWindow,&m_rcWinScreen);
+}
+
+void CGUIComponent::setColorText(DWORD color)
+{
+	m_dwColorText = color;
+	InvalidateRect(getHWND(), 0, 1);
+}
+
+DWORD CGUIComponent::getColorText()
+{
+	return m_dwColorText;
+}
+
+void CGUIComponent::setTransparentTextBk(bool bf)
+{
+	m_isTransparentTextBk = bf;
+	InvalidateRect(getHWND(), 0, 1);
+}
+
+bool CGUIComponent::getTransparentTextBk()
+{
+	return m_isTransparentTextBk;
+}
+
+void CGUIComponent::setColorTextBk(DWORD color)
+{
+	m_dwColorTextBk = color;
+	InvalidateRect(getHWND(), 0, 1);
+}
+
+DWORD CGUIComponent::getColorTextBk()
+{
+	return m_dwColorTextBk;
+}
+
+
+bool CGUIComponent::setColorBrush(DWORD color)
+{
+	m_dwColorBrush = color;
+
+	DeleteObject(m_hBrush);
+	m_hBrush = CreateSolidBrush(m_dwColorBrush);
+	InvalidateRect(getHWND(), 0, 1);
+	return true;
+}
+
+DWORD CGUIComponent::getColorBrush()
+{
+	return m_dwColorBrush;
+}
+
+HBRUSH CGUIComponent::getBrush()
+{
+	return m_hBrush;
+}
+
+void CGUIComponent::addHandler(HandlerFunc Handler, UINT Msg, WPARAM wParam, bool considerWparam, LPARAM lParam, bool considerLparam, bool isMain)
+{
+	CHandlerData oHandler;
+	oHandler.m_fnHandler = Handler;
+	oHandler.m_uMsg = Msg;
+	oHandler.m_wParam = wParam;
+	oHandler.m_needAllowW = considerWparam;
+	oHandler.m_lParam = lParam;
+	oHandler.m_needAllowL = considerLparam;
+	oHandler.m_isMainFunction = isMain;
+
+	m_aHandlers.push_back(oHandler);
+}
+
+void CGUIComponent::addHandler(HandlerFunc Handler, UINT Msg)
+{
+	CHandlerData oHandler;
+	oHandler.m_fnHandler = Handler;
+	oHandler.m_uMsg = Msg;
+	oHandler.m_wParam = 0;
+	oHandler.m_needAllowW = false;
+	oHandler.m_lParam = 0;
+	oHandler.m_needAllowL = false;
+	oHandler.m_isMainFunction = false;
+
+	m_aHandlers.push_back(oHandler);
+}
+
+CHandlerData* CGUIComponent::getHandler(ID idHandler)
+{
+	if (idHandler >= 0 && m_aHandlers.size() > idHandler)
+		return &(m_aHandlers[idHandler]);
+
+	return 0;
+}
+
+int CGUIComponent::getCountHandlers()
+{
+	return m_aHandlers.size();
+}
+
+LRESULT CGUIComponent::executeHandler(ID idHandler, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+	if (idHandler >= 0 && m_aHandlers.size() > idHandler)
+		return (m_aHandlers[idHandler].m_fnHandler)(hWnd, uMsg, wParam, lParam);
+
+	return 0;
+}
+
+void CGUIComponent::setMixSize(UINT uMinWidth, UINT uMinHeght)
+{
+	m_iMinSizeWidth = uMinWidth;
+	m_iMinSizeHeight = uMinHeght;
+}
+
+UINT CGUIComponent::getMinWidth()
+{
+	return m_iMinSizeWidth;
+}
+
+UINT CGUIComponent::getMinHeight()
+{
+	return m_iMinSizeHeight;
+}
+
+void CGUIComponent::setStretchSides(bool canTop, bool canBottom, bool canRight, bool canLeft)
+{
+	m_aStrethSide[SXGUI_SIDE_TOP] = canTop;
+	m_aStrethSide[SXGUI_SIDE_BOTTOM] = canBottom;
+	m_aStrethSide[SXGUI_SIDE_RIGHT] = canRight;
+	m_aStrethSide[SXGUI_SIDE_LEFT] = canLeft;
+}
+
+void CGUIComponent::setStretchSide(SXGUI_SIDE side, bool can)
+{
+	m_aStrethSide[side] = can;
+}
+
+bool CGUIComponent::getStretchSide(SXGUI_SIDE side)
+{
+	return m_aStrethSide[side];
+}
+
+
+void CGUIComponent::setFollowParentSides(bool canTop, bool canBottom, bool canRight, bool canLeft)
+{
+	m_aFollowParentSide[SXGUI_SIDE_TOP] = canTop;
+	m_aFollowParentSide[SXGUI_SIDE_BOTTOM] = canBottom;
+	m_aFollowParentSide[SXGUI_SIDE_RIGHT] = canRight;
+	m_aFollowParentSide[SXGUI_SIDE_LEFT] = canLeft;
+}
+
+void CGUIComponent::setFollowParentSide(SXGUI_SIDE side, bool can)
+{
+	m_aFollowParentSide[side] = can;
+}
+
+bool CGUIComponent::getFollowParentSide(SXGUI_SIDE side)
+{
+	return m_aFollowParentSide[side];
+}
+
+//##########################################################################
+
+CGUITextual::CGUITextual()
+{
+
+}
+
+CGUITextual::~CGUITextual()
+{
+
+}
+
+bool CGUITextual::setText(const char* text)
+{
+	return gui_func::text::SetText(this, text);
+}
+
+/*const char* CGUITextual::GetText()
+{
+return gui_func::text::GetTextOut(this);
+}*/
+
+void CGUITextual::getText(char* buf, int size)
+{
+	gui_func::text::GetText(this, buf, size);
+}
+
+int CGUITextual::getTextLen()
+{
+	return gui_func::text::GetTextLen(this);
+}
+
+//##########################################################################
+
+BOOL IsEdit(HWND hWnd)
+{
+	if (hWnd == NULL)
+		return FALSE;
+
+	TCHAR szClassName[6];
+	return ::GetClassNameA(hWnd, szClassName, 6) &&
+		stricmp(szClassName, "Edit") == 0;
+}
+
+
+LRESULT CALLBACK WndProcAllDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA);
+
+	if (Component)
+	{
+		if (msg == WM_LBUTTONDOWN || msg == WM_RBUTTONDOWN || msg == WM_MBUTTONDOWN)
+		{
+			Component->setFocus();
+		}
+
+		if (msg == WM_KEYDOWN)
+		{
+			if (wParam == 'A' && (GetKeyState(VK_CONTROL) & 0x80))
+			{
+				// User pressed Ctrl-A.  Let's select-all
+				if (IsEdit(hwnd))
+				{
+					SendMessage(hwnd, EM_SETSEL, 0, -1);
+					return(1);
+				}
+			}
+		}
+		HandlerFunc MainFunction = 0;								//������� �������-����������, �� �������� � ����� ������������
+		Array<HandlerFunc> SecondFunction;	//������ �������������� ������������ �� ���������, �� �������� �� ������ ������
+		//int CountSecond = 0;	//���������� �������������� �������-������������
+		//�������������� ������������� ������
+		for (int i = 0; i<Component->getCountHandlers(); i++)
+		{
+			CHandlerData *pHandler = Component->getHandler(i);
+			if (pHandler->m_uMsg == msg)
+			{
+				if (
+					(!(pHandler->m_needAllowW) || (pHandler->m_needAllowW && pHandler->m_wParam == wParam)) &&
+					(!(pHandler->m_needAllowL) || (pHandler->m_needAllowL && pHandler->m_lParam == lParam))
+					)
+				{
+					if (pHandler->m_isMainFunction)
+						MainFunction = pHandler->m_fnHandler;
+					else
+						SecondFunction.push_back(pHandler->m_fnHandler);
+				}
+			}
+		}
+
+		//�������� ��� �������������� ������� �����������
+		for (int i = 0, il = SecondFunction.size(); i < il; ++i)
+		{
+			SecondFunction[i](hwnd, msg, wParam, lParam);
+		}
+
+		//���� ���� ������� ������� ������� �� �������� �� � ���������� �� ��������
+		if (MainFunction)
+			return MainFunction(hwnd, msg, wParam, lParam);
+
+		return CallWindowProc(Component->getPrevWndProc(), hwnd, msg, wParam, lParam);
+	}
+
+	return CallWindowProc(Component->getPrevWndProc(), hwnd, msg, wParam, lParam);
+}
+
+//##########################################################################
+
+/*bool gui_func::text::ScroolBars(ISXGUIControl *Control, bool h, bool v)
+{
+	return ShowScrollBar(Control->getHWND(), SB_HORZ, h ? 1 : 0) && ShowScrollBar(Control->getHWND(), SB_VERT, v ? 1 : 0);
+}
+
+bool gui_func::text::ScrollBarV(ISXGUIControl *Control)
+{
+	long style = GetWindowLong(Control->getHWND(), GWL_STYLE);
+	if (style & WS_VSCROLL)
+		return true;
+	return false;
+}
+
+bool gui_func::text::ScrollBarH(ISXGUIControl *Control)
+{
+	long style = GetWindowLong(Control->getHWND(), GWL_STYLE);
+	if (style & WS_HSCROLL)
+		return true;
+	return false;
+}
+
+bool gui_func::text::ScrollLine(ISXGUIControl *Control, int scroll, int dir, int count)
+{
+	long _scroll = scroll == SXGUI_SCROLL_TYPE_VERT ? WM_VSCROLL : WM_HSCROLL;
+	long _dir = 0;
+	if (_scroll == WM_VSCROLL)
+		_dir = dir == SXGUI_SCROLL_DIR_DOWN ? SB_LINEDOWN : SB_LINEUP ;
+	else
+		_dir = dir == SXGUI_SCROLL_DIR_RIGTH ? SB_LINERIGHT : SB_LINELEFT ;
+
+	bool bf = true;
+	for (int i = 0; i<count; i++)
+	{
+		bf = SendMessage(Control->getHWND(), _scroll, _dir, 0);
+	}
+
+	return bf;//SendMessage(Control->getHWND(),_scroll,_dir,LPARAM(count)) == 0 ? true : false;
+}
+*/
+bool gui_func::text::SetText(ISXGUIControl*const Control, const char* text)
+{
+	if (!SetWindowText(Control->getHWND(), text))
+		return false;
+	else
+		return true;
+}
+
+void gui_func::text::GetText(ISXGUIControl *Control, char* buf, int count)
+{
+	GetWindowText(Control->getHWND(), buf, count);
+}
+
+int gui_func::text::GetTextLen(ISXGUIControl *Control)
+{
+	return GetWindowTextLength(Control->getHWND());
+}
+
+//##########################################################################
+
+BOOL CALLBACK gui_func::enum_child::EnumChildProcUpdateImgButton(HWND hwnd, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA);
+
+	if (Component)
+	{
+		char ClassName[256];
+		int error = GetClassName(hwnd, ClassName, 256);
+		if (error && strcmp(ClassName, "SXGUIBUTTONIMG") == 0 && Component)
+			SendMessage(hwnd, WM_KILLFOCUS, 0, lParam);
+	}
+
+	return TRUE;
+}
+
+BOOL CALLBACK gui_func::enum_child::EnumChildProcUpdateSize(HWND hwnd, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
+	if (Component)
+		Component->updateSize();
+
+	return TRUE;
+}
+
+BOOL CALLBACK gui_func::enum_child::EnumChildProcUpdateRect(HWND hwnd, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
+	if (Component)
+		Component->updateRect();
+
+	return TRUE;
+}
+
+BOOL CALLBACK gui_func::enum_child::EnumChildProcMouseMove(HWND hwnd, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
+
+	if (Component)
+	{
+		POINT p;
+		GetCursorPos(&p);
+		RECT rect;
+		GetWindowRect(hwnd, &rect);
+
+		if (Component && !((p.x >= rect.left && p.x <= rect.right) && (p.y >= rect.top && p.y <= rect.bottom)))
+		{
+			SendMessage(Component->getHWND(), WM_NCMOUSEMOVE, lParam, 0);
+		}
+	}
+
+	return TRUE;
+}
+
+//##########################################################################
+
+void gui_func::base_handlers::InitHandlerMsg(ISXGUIComponent* Component)
+{
+	Component->addHandler(gui_func::base_handlers::CtlColorChange, WM_CTLCOLORSTATIC, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::CtlColorChange, WM_CTLCOLOREDIT, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::CtlColorChange, WM_CTLCOLORBTN, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::CtlColorChange, WM_CTLCOLORLISTBOX, 0, 0, 0, 0, true);
+
+	Component->addHandler(gui_func::base_handlers::SizeChange, WM_SIZE, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::SizingChange, WM_SIZING, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::WinDestroy, WM_DESTROY, 0, 0, 0, 0, true);
+
+	Component->addHandler(gui_func::base_handlers::MoveChange, WM_MOVE, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::MouseMoveChange, WM_MOUSEMOVE, 0, 0, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::MaximuzeWinChange, WM_SYSCOMMAND, SC_MAXIMIZE, true, 0, 0, true);
+	Component->addHandler(gui_func::base_handlers::SetCursorChange, WM_SETCURSOR, 0, 0, 0, 0, true);
+}
+
+LRESULT gui_func::base_handlers::CtlColorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong((HWND)lParam, GWL_USERDATA);
+
+	if (Component)
+	{
+		if (Component->getTransparentTextBk())
+			SetBkMode((HDC)wParam, TRANSPARENT);
+		else
+			SetBkColor((HDC)wParam, Component->getColorTextBk());
+		SetTextColor((HDC)wParam, Component->getColorText());
+		return (long)Component->getBrush();
+	}
+	return((LRESULT)INVALID_HANDLE_VALUE);
+}
+
+LRESULT gui_func::base_handlers::SizeChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	EnumChildWindows(hwnd, (WNDENUMPROC)&gui_func::enum_child::EnumChildProcUpdateSize, lParam);
+	return TRUE;
+}
+
+LRESULT gui_func::base_handlers::SizingChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
+
+	if (!Component)
+		return TRUE;
+
+	RECT rc;
+	GetWindowRect(hwnd, &rc);
+	POINT p;
+	GetCursorPos(&p);
+
+	RECT lpRect = *((LPRECT)lParam);
+
+	if (Component)
+	{
+
+		if (!Component->getStretchSide(SXGUI_SIDE_TOP))
+			lpRect.top = rc.top;
+
+		if (!Component->getStretchSide(SXGUI_SIDE_LEFT))
+			lpRect.left = rc.left;
+
+		if (!Component->getStretchSide(SXGUI_SIDE_RIGHT))
+			lpRect.right = rc.right;
+
+		if (!Component->getStretchSide(SXGUI_SIDE_BOTTOM))
+			lpRect.bottom = rc.bottom;
+
+		if (Component->getMinWidth() != 0 && Component->getMinHeight() != 0)
+		{
+			if (lpRect.right - lpRect.left < Component->getMinWidth() && Component->getStretchSide(SXGUI_SIDE_RIGHT))
+			{
+				lpRect.right += Component->getMinWidth() - (lpRect.right - lpRect.left);
+			}
+
+			if (lpRect.bottom - lpRect.top < Component->getMinHeight() && Component->getStretchSide(SXGUI_SIDE_BOTTOM))
+			{
+				lpRect.bottom += Component->getMinHeight() - (lpRect.bottom - lpRect.top);
+			}
+		}
+	}
+
+	*((LPRECT)lParam) = lpRect;
+
+	return TRUE;
+}
+
+LRESULT gui_func::base_handlers::MoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	EnumChildWindows(hwnd, (WNDENUMPROC)&gui_func::enum_child::EnumChildProcUpdateRect, lParam);
+	return TRUE;
+}
+
+LRESULT gui_func::base_handlers::MouseMoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	EnumChildWindows(hwnd, (WNDENUMPROC)&gui_func::enum_child::EnumChildProcMouseMove, lParam);
+	return ::DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+LRESULT gui_func::base_handlers::SetCursorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	EnumChildWindows(hwnd, (WNDENUMPROC)&gui_func::enum_child::EnumChildProcMouseMove, lParam);
+	return ::DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+LRESULT gui_func::base_handlers::MaximuzeWinChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	EnumChildWindows(hwnd, (WNDENUMPROC)&gui_func::enum_child::EnumChildProcUpdateSize, lParam);
+	return DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+LRESULT gui_func::base_handlers::WinDestroy(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	PostQuitMessage(0);
+	return ::DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+//##########################################################################
+
+void gui_func::dialogs::SelectFile(int type, char* path, char* name, const char* stdpath, const char* filter)
+{
+	OPENFILENAME ofn;
+
+	char tpath[1024];
+	char tname[256];
+
+	if (!path && !name)
+		return;
+
+	if (path)
+		tpath[0] = tpath[1] = 0;
+
+	if (name)
+		tname[0] = tname[1] = 0;
+
+	ZeroMemory(&ofn, sizeof(OPENFILENAME));
+	ofn.lStructSize = sizeof(OPENFILENAME);
+	ofn.hInstance = GetModuleHandle(0);
+	ofn.hwndOwner = 0;
+	ofn.lpstrFilter = filter;
+	ofn.lpstrFile = tpath;
+	ofn.nMaxFile = sizeof(tpath);
+	ofn.lpstrInitialDir = stdpath;
+
+	if (name)
+	{
+		ofn.lpstrFileTitle = tname;
+		ofn.nMaxFileTitle = sizeof(tname);
+	}
+
+	ofn.Flags = 0;
+
+	//if (path)
+	ofn.Flags |= OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
+
+	/*if (name)
+	ofn.Flags |= OFN_FILEMUSTEXIST;*/
+
+	char bf[256];
+	GetCurrentDirectory(256, bf);
+	BOOL Result = FALSE;
+	if (type == SXGUI_DIALOG_FILE_OPEN)
+		Result = GetOpenFileName(&ofn);
+	else if (type == SXGUI_DIALOG_FILE_SAVE)
+		Result = GetSaveFileName(&ofn);
+
+	SetCurrentDirectory(bf);
+
+	if (Result)
+	{
+		if (path)
+			strcpy(path, tpath);
+
+		if (name)
+			strcpy(name, tname);
+	}
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/base.h b/source/SXGUIWinApi/base.h
new file mode 100644
index 000000000..137672b1f
--- /dev/null
+++ b/source/SXGUIWinApi/base.h
@@ -0,0 +1,205 @@
+
+/***********************************************************
+Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_BASE_H
+#define __SXGUI_BASE_H
+
+#include "hint.h"
+#include "SXGUI.h"
+#include <common/array.h>
+
+
+//первый базовый класс, единственным родителем не используется
+//определяет объект как контрол, то есть содержит в себе минимум данных для 
+//управления объектом
+class CGUIControl : public virtual ISXGUIControl
+{
+public:
+	CGUIControl();
+	CGUIControl(HWND hWindow, HWND hParent, WNDPROC lpfnHandler);
+	~CGUIControl();
+
+	void Release(){ mem_del(this); }
+
+
+	void init(HWND hWindow, HWND hParent, WNDPROC lpfnHandler, ID idObj);	//запоминаем дескрипторы, и устанавливаем новый обработчик
+
+	HWND getParent();						//возвращает HWND родителя
+	bool setParent(HWND hParent);	//устанавливает родителя
+
+	HWND getHWND();
+
+	void setVisible(bool isVisible);				//установка видимости контрола
+	bool getVisible();						//видим ли контрол?
+
+	void setFocus();					//установить фокус на контрол
+	bool getFocus();						//установлен ли фокус на контроле?
+
+	WNDPROC getPrevWndProc();
+
+	void* getUserPtr();
+	void* setUserPtr(void *prt);
+
+private:
+	void *m_pUserPtr;
+	ID m_id;
+
+protected:
+	HWND m_hParent;
+	HWND m_hWindow;
+	WNDPROC m_lpfnPrevProc;								//!< старый обработчик
+	
+};
+
+//##########################################################################
+
+#define COMPONENT_PRECOD_HANDLER_ID(id, retval){if!(id >= 0 && m_aHandlers.size() > id)return retval;}
+
+//второй в очереди родитель, часто наследование идет именно от него
+//более расширенное управление большинством элементов
+class CGUIComponent : public CGUIControl, public virtual ISXGUIComponent
+{
+public:
+	CGUIComponent();
+	~CGUIComponent();
+
+	void Release(){ mem_del(this); }
+	//устанавливает необходимые данные для управления элементом
+	void initComponent(); //необходимо вызывать после инициализации
+
+	//действителен ли элемент
+	bool getEnable();
+	void setEnable(bool isEnable);
+
+	//работа со шрифтом
+	//если name == 0 то не изменияем название шрифта,
+	//если name[0] == 0 то дефолтный шрифт gui
+	//если остальные значения в -1 то не учитываются
+	void setFont(const char *szName, int iHeight, int iWidth, int iWeight, int iItalic, int iUnderline, int iStrikeOut);
+	void setHFont(HFONT hFont);
+	HFONT getHFont();
+	
+	bool hasParentFont();	//наследуется ли шрифт родителя
+	HFONT getParentHFont();		//получает родительский шрифт
+
+	//работа со стилями (в т.ч. специальным)
+	//style_add - добавляемые стили
+	//style_del - удаляемые
+	bool modifyStyle(long lStyleAdd, long lStyleDel);
+	bool modifyExStyle(long lStyleAdd, long lStyleDel);
+
+	//устанавливает/возвращает область окна RECT элемента в глобальных координатах
+	bool setWinRect(const RECT *pRect, bool alignment_screen_space);	//alignment_screen_space - использовать ли только работчую область (рабочий стол кроме панели задач)
+	RECT* getWinRect();
+	void getWinRect(RECT *pRect);
+
+	//устанавливает/возвращает клиентскую область RECT элемента в глобальных координатах
+	bool setClientRect(const RECT *pRect, bool isBoundScreen);	//alignment_screen_space - использовать ли только работчую область (рабочий стол кроме панели задач)
+	void getClientRect(RECT *pRect);
+
+	//!!!первоначально нужно единожды включить видимость подсказки, ибо в этот момент она инициализируется
+	//видимость подсказки
+	void setShowHint(bool isShowHint);
+	bool getShowHint();
+
+	//работа с текстом подсказки для элемента
+	void setHintText(const char *szStr);
+	const char* getHintText();
+	void getHintText(char *szBuf);
+
+	//функции для цветов
+	//set/get цвет текста
+	void setColorText(DWORD dwColor);
+	DWORD getColorText();
+
+	//set/get прозрачность заднего фона текста
+	void setTransparentTextBk(bool isTransparent);
+	bool getTransparentTextBk();
+
+	//set/get цвет заднего фона
+	void setColorTextBk(DWORD dwColor);
+	DWORD getColorTextBk();
+	
+	//set/get цвет заднего фона элемента
+	bool setColorBrush(DWORD dwColor);
+	DWORD getColorBrush();
+	HBRUSH getBrush();
+
+	//все что касается обработчиков функций
+	///////////////////////////////////////
+
+	//добавление обработчика
+	void addHandler(HandlerFunc Handler, UINT uMsg, WPARAM wParam, bool considerWparam, LPARAM lParam, bool considerLparam, bool isMain);
+	void addHandler(HandlerFunc Handler, UINT uMsg);	//все что необъявлено из функции выше не учитывается
+
+	CHandlerData* getHandler(ID idHandler);	//возвращает обработчик 
+	int getCountHandlers();			//количество ключей в массиве обработчиков
+
+	LRESULT executeHandler(ID idHandler, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);	//выполняет функцию обработчик, в аргументы отправляет свои аргументы
+	///////////////////////////////////////
+
+	void updateSize();
+	void updateRect();
+
+	void setMixSize(UINT uMinWidth, UINT uMinHeght);
+	UINT getMinWidth();
+	UINT getMinHeight();
+
+	void setStretchSides(bool canTop, bool canBottom, bool canRight, bool canLeft);
+	void setStretchSide(SXGUI_SIDE side, bool can);
+	bool getStretchSide(SXGUI_SIDE side);
+
+	void setFollowParentSides(bool canTop, bool canBottom, bool canRight, bool canLeft);
+	void setFollowParentSide(SXGUI_SIDE side, bool can);
+	bool getFollowParentSide(SXGUI_SIDE side);
+
+
+protected:
+
+	//данные необходимые для UpdateSize
+	RECT m_rcParentScreen;		//!< координаты родителя
+	RECT m_rcOffsetParent;	//!< на сколько был изменен родитель
+	RECT m_rcWinScreen;		//!< координаты текущего окна относительно рабочего стола
+	
+	//! всплывающая подсказка
+	ISXGUIHint *m_pHint;
+
+	//! массив обработчиков сообщений
+	Array<CHandlerData> m_aHandlers;
+
+	DWORD m_dwColorBrush;	//цвет заливки формы
+	HBRUSH m_hBrush;
+
+	DWORD m_dwColorText;	//цвет текста
+	bool m_isTransparentTextBk;	//используется прозрачность? если true то заднего фона у текста не будет
+	DWORD m_dwColorTextBk;	//цвет заднего фона у текста
+
+	int m_iMinSizeWidth;	//!< минимальный размер окна по ширине
+	int m_iMinSizeHeight;	//!< минимальный размер окна по высоте
+
+	bool m_aStrethSide[SXGUI_SIDE_COUNT];
+	bool m_aFollowParentSide[SXGUI_SIDE_COUNT];
+};
+
+//##########################################################################
+
+//третий (если нужен текст) родитель, непосредтсвенно не используется
+//характеризует элемент как содержащий единый текст (caption), текстовый компонент
+class CGUITextual : public CGUIComponent, public virtual ISXGUITextual
+{
+public:
+	CGUITextual();
+	~CGUITextual();
+
+	void Release(){ mem_del(this); }
+
+	bool setText(const char* text);
+	void getText(char* buf, int size);
+	int getTextLen();
+};
+
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/base_wnd.cpp b/source/SXGUIWinApi/base_wnd.cpp
new file mode 100644
index 000000000..b87b9faba
--- /dev/null
+++ b/source/SXGUIWinApi/base_wnd.cpp
@@ -0,0 +1,106 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "base_wnd.h"
+
+CGUIBaseWnd::CGUIBaseWnd(	
+					const char* class_name,const char* caption,
+					int x,int y,int width,int heigth,
+					HICON icon,HCURSOR cursor, HBRUSH brush,
+					DWORD exstyle,DWORD wndstyle,DWORD style,
+					HWND parent, WNDPROC handler, ID idObj
+					)
+{
+	WNDCLASS wc;
+
+	wc.style         = wndstyle;
+	wc.lpfnWndProc   = DefWindowProc; 
+	wc.cbClsExtra    = 0;
+	wc.cbWndExtra    = 0;
+	wc.hInstance     = GetModuleHandle(0);
+	wc.hIcon         = icon != 0 ? icon : LoadCursor(GetModuleHandle(0), IDC_ARROW);
+	wc.hCursor       = cursor;
+	wc.hbrBackground = brush != 0 ? brush : (HBRUSH)GetStockObject(WHITE_BRUSH);
+	wc.lpszMenuName  = 0;
+	wc.lpszClassName = class_name;
+
+		if(!RegisterClass(&wc)) 
+		{
+			MessageBox(0, "������ ��� ����������� ������ ����!", class_name, 0);
+		}
+		
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							class_name,
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | style | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
+							x,y,width,heigth,
+							parent,
+							(idObj > 0 ? (HMENU)idObj : 0),
+							GetModuleHandle(0),
+							0); 
+
+	if (!m_hWindow)
+	{
+			MessageBox(0, "������ �������� ����!!!", caption, 0);
+	}
+	this->init(m_hWindow, parent, handler, idObj);
+	SetWindowLong(m_hWindow, GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
+	ShowWindow(m_hWindow, SW_SHOW);
+	UpdateWindow(m_hWindow);
+}
+
+CGUIBaseWnd::~CGUIBaseWnd()
+{
+
+}
+
+bool CGUIBaseWnd::setAlphaBlend(bool bf)
+{
+	return this->modifyExStyle(bf ? WS_EX_LAYERED : 0,!bf ? WS_EX_LAYERED : 0);
+}
+
+bool CGUIBaseWnd::getAlphaBlend()
+{
+	long style = GetWindowLong(m_hWindow, GWL_EXSTYLE);
+	return (style & WS_EX_LAYERED);
+}
+
+bool CGUIBaseWnd::setAlpha(float fAlpha)
+{
+	return SetLayeredWindowAttributes(m_hWindow, 0, (BYTE)(fAlpha * 255.f), LWA_ALPHA);
+}
+
+float CGUIBaseWnd::getAlpha()
+{
+	WORD alpha = 0;
+	if (!GetLayeredWindowAttributes(m_hWindow, 0, (BYTE*)&alpha, 0))
+			return -1;
+	return float(alpha) / 255.f;
+}
+
+bool CGUIBaseWnd::setColorBrush(DWORD color)
+{
+	DWORD color2 = SetClassLong(m_hWindow, GCL_HBRBACKGROUND, (LONG)CreateSolidBrush(color));
+	InvalidateRect(m_hWindow, 0, TRUE);
+	return color2 > 0 ? true : false;
+}
+
+DWORD CGUIBaseWnd::getColorBrush()
+{
+	HBRUSH hbrush = (HBRUSH)GetClassLong(m_hWindow, GCL_HBRBACKGROUND);
+	LOGBRUSH lbr;
+	ZeroMemory(&lbr,sizeof(LOGBRUSH));
+	GetObject(hbrush,sizeof(LOGBRUSH),&lbr);
+	return (lbr.lbColor);
+}
+
+HBRUSH CGUIBaseWnd::getBrush()
+{
+	//return GetClassLongPtr(m_hWindow,GCLP_HBRBACKGROUND);
+	return (HBRUSH)GetClassLong(m_hWindow, GCL_HBRBACKGROUND);
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/base_wnd.h b/source/SXGUIWinApi/base_wnd.h
new file mode 100644
index 000000000..6bddf5a03
--- /dev/null
+++ b/source/SXGUIWinApi/base_wnd.h
@@ -0,0 +1,36 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_BASE_WND_H
+#define __SXGUI_BASE_WND_H
+
+#include "base.h"
+#include "menu.h"
+
+
+class CGUIBaseWnd : public CGUITextual, public virtual ISXGUIBaseWnd
+{
+public:
+	CGUIBaseWnd(	
+					const char* class_name, const char* caption,
+					int x, int y, int width, int heigth,
+					HICON icon,HCURSOR cursor, HBRUSH brush,
+					DWORD exstyle,DWORD wndstyle,DWORD style,
+					HWND parent,WNDPROC handler, ID idObj
+				);
+	~CGUIBaseWnd();
+
+	bool setColorBrush(DWORD color);
+	DWORD getColorBrush();
+	HBRUSH getBrush();
+
+	bool setAlpha(float fAlpha);
+	float getAlpha();
+	bool setAlphaBlend(bool isBlend);
+	bool getAlphaBlend();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/button.cpp b/source/SXGUIWinApi/button.cpp
new file mode 100644
index 000000000..c7bd239a3
--- /dev/null
+++ b/source/SXGUIWinApi/button.cpp
@@ -0,0 +1,115 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "button.h"
+
+CGUIButton::CGUIButton()
+{
+
+}
+
+CGUIButton::CGUIButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"Button",
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIButton::CGUIButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, SXGUI_BUTTON_IMAGE type_image, HWND parent, WNDPROC handler, ID idObj)
+{
+	DWORD image_style = BS_TEXT;
+
+	if (type_image == SXGUI_BUTTON_IMAGE_ICON)
+		image_style = BS_ICON;
+	else if (type_image == SXGUI_BUTTON_IMAGE_BITMAT)
+		image_style = BS_BITMAP;
+
+	m_hWindow = CreateWindowEx(
+							0,
+							"BUTTON",
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | image_style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(m_hWindow, parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	ISXGUIComponent* component = dynamic_cast<ISXGUIComponent*>(this);
+	SetWindowLong(m_hWindow, GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+bool CGUIButton::setIconFromFile(const char* path)
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(!(style & BS_ICON))
+			return false;
+
+	HICON icon = (HICON)LoadImage(NULL,path,IMAGE_ICON,0,0,LR_LOADFROMFILE);
+
+		if(icon == 0)
+			return false;
+
+	SendMessage(this->getHWND(),BM_SETIMAGE,IMAGE_ICON,(LPARAM)icon);
+	return true;
+}
+
+bool CGUIButton::setBmpFromFile(const char* path)
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(!(style & BS_BITMAP))
+			return false;
+
+	HBITMAP bmp = (HBITMAP)LoadImage(NULL,path,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
+
+		if(bmp == 0)
+			return false;
+
+	SendMessage(this->getHWND(),BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)bmp);
+	return true;
+}
+
+
+bool CGUIButton::setIconFromResourse(UINT idRes)
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(!(style & BS_ICON))
+			return false;
+
+		HICON icon = LoadCursor(GetModuleHandle(0), MAKEINTRESOURCE(idRes));
+
+		if(icon == 0)
+			return false;
+
+	SendMessage(this->getHWND(),BM_SETIMAGE,IMAGE_ICON,(LPARAM)icon);
+	return true;
+}
+
+bool CGUIButton::setBmpFromResourse(UINT idRes)
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(!(style & BS_BITMAP))
+			return false;
+
+		HBITMAP bmp = LoadBitmap(GetModuleHandle(0), MAKEINTRESOURCE(idRes));
+
+		if(bmp == 0)
+			return false;
+
+	SendMessage(this->getHWND(),BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)bmp);
+	return true;
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/button.h b/source/SXGUIWinApi/button.h
new file mode 100644
index 000000000..918ae052a
--- /dev/null
+++ b/source/SXGUIWinApi/button.h
@@ -0,0 +1,27 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_BUTTON_H
+#define __SXGUI_BUTTON_H
+
+#include "base.h"
+
+
+class CGUIButton : public CGUITextual, public virtual ISXGUIButton
+{
+public:
+	CGUIButton();
+	CGUIButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, SXGUI_BUTTON_IMAGE type_image, HWND parent, WNDPROC handler, ID idObj);
+
+	bool setIconFromFile(const char* path);
+	bool setBmpFromFile(const char* path);
+
+	bool setIconFromResourse(UINT idRes);
+	bool setBmpFromResourse(UINT idRes);
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/checkbox.cpp b/source/SXGUIWinApi/checkbox.cpp
new file mode 100644
index 000000000..cc767c4df
--- /dev/null
+++ b/source/SXGUIWinApi/checkbox.cpp
@@ -0,0 +1,62 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "checkbox.h"
+
+
+CGUICheckBox::CGUICheckBox()
+{
+
+}
+
+CGUICheckBox::CGUICheckBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"BUTTON",
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(m_hWindow, parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUICheckBox::CGUICheckBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, bool cb_3_state)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							"BUTTON",
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | (cb_3_state ? BS_AUTO3STATE : BS_AUTOCHECKBOX),
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(m_hWindow, parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+void CGUICheckBox::setCheckEx(SXGUI_CHECKBOX_STATE check)
+{
+	SendMessage(m_hWindow, BM_SETCHECK, check, 0);
+}
+
+void CGUICheckBox::setCheck(bool isCheck)
+{
+	SendMessage(m_hWindow, BM_SETCHECK, isCheck, 0);
+}
+
+SXGUI_CHECKBOX_STATE CGUICheckBox::getCheck()
+{
+	return (SXGUI_CHECKBOX_STATE)SendMessage(this->getHWND(), BM_GETCHECK, 0, 0);
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/checkbox.h b/source/SXGUIWinApi/checkbox.h
new file mode 100644
index 000000000..d1e9431b4
--- /dev/null
+++ b/source/SXGUIWinApi/checkbox.h
@@ -0,0 +1,26 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_CHECK_BOX_H
+#define __SXGUI_CHECK_BOX_H
+
+#include "base.h"
+#include "button.h"
+
+
+class CGUICheckBox : public CGUIButton, public virtual ISXGUICheckBox
+{
+public:
+	CGUICheckBox();
+	CGUICheckBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUICheckBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, bool cb_3_state);
+
+	void setCheckEx(SXGUI_CHECKBOX_STATE check);
+	void setCheck(bool isCheck);
+	SXGUI_CHECKBOX_STATE getCheck();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/combobox.cpp b/source/SXGUIWinApi/combobox.cpp
new file mode 100644
index 000000000..b43470c69
--- /dev/null
+++ b/source/SXGUIWinApi/combobox.cpp
@@ -0,0 +1,124 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "combobox.h"
+
+CGUIComboBox::CGUIComboBox()
+{
+
+}
+
+CGUIComboBox::CGUIComboBox(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"COMBOBOX",
+							0,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIComboBox::CGUIComboBox(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							"COMBOBOX",
+							0,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+bool CGUIComboBox::insertItem(int index,const char* text)
+{
+	if (SendMessage(this->getHWND(), CB_INSERTSTRING, (WPARAM)index, (LPARAM)text) < 0)
+			return false;
+	return true;
+}
+
+bool CGUIComboBox::deleteItem(int index)
+{
+	if (SendMessage(this->getHWND(), CB_DELETESTRING, WPARAM(index), 0) < 0)
+			return false;
+	return true;
+}
+
+int CGUIComboBox::getCount()
+{
+	return SendMessage(this->getHWND(), CB_GETCOUNT, 0, 0);
+}
+
+bool CGUIComboBox::setSel(int index)
+{
+	if (SendMessage(this->getHWND(), CB_SETCURSEL, WPARAM(index), 0) < 0)
+			return false;
+	return true;
+}
+
+int CGUIComboBox::getSel()
+{
+	return SendMessage(this->getHWND(), CB_GETCURSEL, 0, 0);
+}
+
+
+bool CGUIComboBox::clear()
+{
+	if (!SendMessage(this->getHWND(), CB_RESETCONTENT, 0, 0))
+			return false;
+	return true;
+}
+
+bool CGUIComboBox::setItemData(int index,LPARAM data)
+{
+	if (!SendMessage(this->getHWND(), CB_SETITEMDATA, WPARAM(index), data))
+			return false;
+	return true;
+}
+
+LPARAM CGUIComboBox::getItemData(int index)
+{
+	return SendMessage(this->getHWND(), CB_GETITEMDATA, WPARAM(index), 0);
+}
+
+bool CGUIComboBox::setItemText(int index,const char* text)
+{
+	LPARAM data = getItemData(index);
+		if(!deleteItem(index))
+			return false;
+		if(!insertItem(index,text))
+			return false;
+		if(!setItemData(index,data))
+			return false;
+	return true;
+}
+
+void CGUIComboBox::getItemText(int index,char* buf)
+{
+	SendMessage(this->getHWND(), CB_GETLBTEXT, WPARAM(index), LPARAM(buf));
+}
+
+int CGUIComboBox::getItemTextLength(int index)
+{
+	return SendMessage(this->getHWND(), CB_GETLBTEXTLEN, WPARAM(index), 0);
+}
+
+bool CGUIComboBox::addItem(const char* text)
+{
+	return this->insertItem(-1,text);
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/combobox.h b/source/SXGUIWinApi/combobox.h
new file mode 100644
index 000000000..50db5a570
--- /dev/null
+++ b/source/SXGUIWinApi/combobox.h
@@ -0,0 +1,40 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_COMBO_BOX_H
+#define __SXGUI_COMBO_BOX_H
+
+#include "base.h"
+
+
+class CGUIComboBox : public CGUIComponent, public virtual ISXGUIComboBox
+{
+public:
+	CGUIComboBox();
+	CGUIComboBox(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+
+	CGUIComboBox(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	bool insertItem(int index,const char* text);		//������� ������ � ������
+	bool deleteItem(int index);						//�������� ������
+
+	int	getCount();									//���������� �����
+
+	bool setSel(int index);							//�������� ������������ ������
+	int	getSel();									//����� ���������� ������
+
+	bool setItemData(int index,LPARAM data);			//��������� ��� ������ userdata (32 ����)
+	LPARAM getItemData(int index);						//��������� userdata
+
+	bool clear();									//������� ��� ��������
+
+	bool setItemText(int index,const char* text);	//������� ������ � ������, ������� ������
+	void getItemText(int index,char* buf);			//�������� ����� �� ������ 
+	int	getItemTextLength(int index);				//�������� ����� ������ �� ������
+	bool addItem(const char* text);					//��������� � ����� ����� ������
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/edit.cpp b/source/SXGUIWinApi/edit.cpp
new file mode 100644
index 000000000..810023c56
--- /dev/null
+++ b/source/SXGUIWinApi/edit.cpp
@@ -0,0 +1,107 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "edit.h"
+
+CGUIEdit::CGUIEdit() 
+{
+
+}
+
+CGUIEdit::~CGUIEdit()
+{
+
+}
+
+CGUIEdit::CGUIEdit(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"EDIT",
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	this->init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
+}
+
+CGUIEdit::CGUIEdit(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							"EDIT",
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOHSCROLL,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	this->init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
+}
+
+bool CGUIEdit::getReadOnly()
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(style & ES_READONLY)
+			return true;
+		else
+			return false;
+}
+
+bool CGUIEdit::setReadOnly(bool bf)
+{
+	long p = bf ? 1 : 0;
+	SendMessage(this->getHWND(), EM_SETREADONLY, bf ? 1 : 0, 0);
+	return getReadOnly() == bf;
+}
+
+int CGUIEdit::getAlign()
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(style & ES_RIGHT)
+			return SXGUI_TEXT_ALIGN_RIGHT;
+		else if(style & ES_CENTER)
+			return SXGUI_TEXT_ALIGN_CENTER;
+		else
+			return SXGUI_TEXT_ALIGN_LEFT;
+}
+
+bool CGUIEdit::setAlign(int align)
+{
+		if (align == SXGUI_TEXT_ALIGN_LEFT)
+			return modifyStyle(ES_LEFT,0);
+		else if (align == SXGUI_TEXT_ALIGN_RIGHT)
+			return modifyStyle(ES_RIGHT,0);
+		else if (align == SXGUI_TEXT_ALIGN_CENTER)
+			return modifyStyle(ES_CENTER,0);
+	return false;
+}
+
+bool CGUIEdit::getStatePassword()
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(style & ES_PASSWORD)
+			return true;
+		else
+			return false;
+}
+
+bool CGUIEdit::setStatePassword(bool bf)
+{
+	long p = bf ? 1 : 0;
+	SendMessage(this->getHWND(), EM_SETPASSWORDCHAR, bf ? '*' : 0, 0);
+	this->setFocus();
+	UpdateWindow(this->getHWND());
+	return getStatePassword() == bf;
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/edit.h b/source/SXGUIWinApi/edit.h
new file mode 100644
index 000000000..5b4e7679b
--- /dev/null
+++ b/source/SXGUIWinApi/edit.h
@@ -0,0 +1,32 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_EDIT_H
+#define __SXGUI_EDIT_H
+
+#include "base.h"
+
+
+class CGUIEdit : public CGUITextual, public virtual ISXGUIEdit
+{
+public:
+	CGUIEdit();
+	~CGUIEdit();
+	CGUIEdit(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIEdit(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	bool getReadOnly();		//����������� �� �������� "������ ��� ������"
+	bool setReadOnly(bool bf);	//������������ ��������� "������ ��� ������", ���������� ��������� ��������
+
+	//��������� ������� ����� ���������� �� *
+	bool getStatePassword();		//����������� �� ������� ������� ������
+	bool setStatePassword(bool bf);	//������������ ��������� ������� ������
+
+	int getAlign();				//���������� ���� ������������ ������
+	bool setAlign(int align);	//������������� ������������
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_group_box.cpp b/source/SXGUIWinApi/groupbox.cpp
similarity index 57%
rename from source/SXGUIWinApi/SXGUI_group_box.cpp
rename to source/SXGUIWinApi/groupbox.cpp
index b0c777a82..d5b41fb3d 100644
--- a/source/SXGUIWinApi/SXGUI_group_box.cpp
+++ b/source/SXGUIWinApi/groupbox.cpp
@@ -1,11 +1,15 @@
 
-#include <SXGUIWinApi\SXGUI_group_box.h>
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "groupbox.h"
 
-#pragma once
 
 LRESULT WndProcGroupBoxPaint(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	SXGUIGroupBox *GroupBox = dynamic_cast<SXGUIGroupBox*>((ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA));
+	CGUIGroupBox *GroupBox = dynamic_cast<CGUIGroupBox*>((ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA));
 	
 	PAINTSTRUCT PaintStruct;
 	HDC hdcp = BeginPaint(hwnd, &PaintStruct);
@@ -45,26 +49,26 @@ LRESULT WndProcGroupBoxPaint(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	clrect2.left += 1;
 	clrect2.right -= 1;
 
-	HBRUSH color_rect = CreateSolidBrush(GroupBox->GetColorBrush());
+	HBRUSH color_rect = CreateSolidBrush(GroupBox->getColorBrush());
 	FillRect(hdcp, &clrectorigin, color_rect);
 
-	HFONT hFont = GroupBox->GetFont();
+	HFONT hFont = GroupBox->getHFont();
 	if (!hFont)
 		hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
 
 	SelectObject(hdcp, hFont);
-	long tmplen = GetWindowTextLength(GroupBox->GetHWND());
-	if (GetWindowTextLength(GroupBox->GetHWND())+1 > GroupBox->LenStrText)
+	long tmplen = GetWindowTextLength(GroupBox->getHWND());
+	if (GetWindowTextLength(GroupBox->getHWND())+1 > GroupBox->LenStrText)
 	{
-		GroupBox->LenStrText = GetWindowTextLength(GroupBox->GetHWND())+1;
+		GroupBox->LenStrText = GetWindowTextLength(GroupBox->getHWND())+1;
 		mem_delete(GroupBox->StrText);
 		GroupBox->StrText = new char[GroupBox->LenStrText];
 	}
 
-	GetWindowText(GroupBox->GetHWND(), GroupBox->StrText, GroupBox->LenStrText);
+	GetWindowText(GroupBox->getHWND(), GroupBox->StrText, GroupBox->LenStrText);
 
-	SetTextColor(hdcp, GroupBox->GetColorText());
-	SetBkColor(hdcp, GroupBox->GetColorTextBk());
+	SetTextColor(hdcp, GroupBox->getColorText());
+	SetBkColor(hdcp, GroupBox->getColorTextBk());
 
 	clrect.top -= 3;
 	clrect.left += 10;
@@ -86,56 +90,56 @@ LRESULT WndProcGroupBoxPaint(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	return 1;
 }
 
-SXGUIGroupBox::SXGUIGroupBox()
+CGUIGroupBox::CGUIGroupBox()
 {
 	LenStrText = 0; StrText = 0;
 }
 
-SXGUIGroupBox::~SXGUIGroupBox()
+CGUIGroupBox::~CGUIGroupBox()
 {
 	mem_delete(StrText);
 }
 
-SXGUIGroupBox::SXGUIGroupBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id)
+CGUIGroupBox::CGUIGroupBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
 {
 	LenStrText = strlen(caption)+1;
 	StrText = new char[LenStrText];
 	sprintf(StrText, "%s", caption);
-	this->WindowHandle = CreateWindowEx(
+	m_hWindow = CreateWindowEx(
 							exstyle,
-							"SXGUIGROUPBOX",
+							SXGUI_DEF_GROUPBOX,
 							caption,
 							style,
 							x,y,width,heigth,
 							parent,
-							(HMENU)id,
+							(HMENU)idObj,
 							GetModuleHandle(0),
 							0);
-	this->Init(this->GetHWND(),parent,(handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
+	this->init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
 }
 
-SXGUIGroupBox::SXGUIGroupBox(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id)
+CGUIGroupBox::CGUIGroupBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
 {
 	LenStrText = strlen(caption)+1;
 	StrText = new char[LenStrText];
 	sprintf(StrText, "%s", caption);
-	this->WindowHandle = CreateWindowEx(
+	m_hWindow = CreateWindowEx(
 							0,
-							"SXGUIGROUPBOX",
+							SXGUI_DEF_GROUPBOX,
 							caption,
 							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE /*| BS_GROUPBOX*/,
 							x,y,width,heigth,
 							parent,
-							(HMENU)id,
+							(HMENU)idObj,
 							GetModuleHandle(0),
 							0);
 	
-	this->Init(this->GetHWND(), parent, (handler == 0 ? WndProcAllDefault : handler));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
-	this->AddHandler(WndProcGroupBoxPaint, WM_PAINT,0,0,0,0,true);
+	this->init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
+	this->addHandler(WndProcGroupBoxPaint, WM_PAINT,0,0,0,0,true);
 }
 
 
diff --git a/source/SXGUIWinApi/groupbox.h b/source/SXGUIWinApi/groupbox.h
new file mode 100644
index 000000000..9e339f8b9
--- /dev/null
+++ b/source/SXGUIWinApi/groupbox.h
@@ -0,0 +1,27 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_GROUP_BOX_H
+#define __SXGUI_GROUP_BOX_H
+
+#include "base.h"
+
+
+class CGUIGroupBox : public CGUITextual, public virtual ISXGUIGroupBox
+{
+public:
+	CGUIGroupBox();
+	~CGUIGroupBox();
+	void Release(){ mem_del(this); }
+	CGUIGroupBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIGroupBox(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+//private:
+	char* StrText;
+	int LenStrText;
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/SXGUI_hint.cpp b/source/SXGUIWinApi/hint.cpp
similarity index 75%
rename from source/SXGUIWinApi/SXGUI_hint.cpp
rename to source/SXGUIWinApi/hint.cpp
index 4d90da749..768aa5d62 100644
--- a/source/SXGUIWinApi/SXGUI_hint.cpp
+++ b/source/SXGUIWinApi/hint.cpp
@@ -1,14 +1,18 @@
 
-#include <SXGUIWinApi\SXGUI_hint.h>
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
 
-#pragma once
+#include "hint.h"
 
-SXGUIHint::SXGUIHint()
+
+CGUIHint::CGUIHint()
 {
 	WindowHandle = 0;ParentHandle = 0;IsVisible = false;
 }
 
-SXGUIHint::SXGUIHint(HWND parent)
+CGUIHint::CGUIHint(HWND parent)
 {
 	ParentHandle = parent;
 
@@ -60,23 +64,23 @@ SXGUIHint::SXGUIHint(HWND parent)
 	IsVisible = true;
 }
 
-SXGUIHint::~SXGUIHint()
+CGUIHint::~CGUIHint()
 {
 	::DestroyWindow(this->WindowHandle);
 }
 
-HWND SXGUIHint::GetHWND()
+HWND CGUIHint::getHWND()
 {
 	return WindowHandle;
 }
 
-void SXGUIHint::SetDelayTime(DWORD init,DWORD autopop)
+void CGUIHint::setDelayTime(UINT init, UINT autopop)
 {
 	SendMessage(WindowHandle,TTM_SETDELAYTIME,TTDT_AUTOPOP,autopop);
 	SendMessage(WindowHandle,TTM_SETDELAYTIME,TTDT_INITIAL,init);
 }
 
-void SXGUIHint::SetText(const char* text)
+void CGUIHint::setText(const char* text)
 {
 	SendMessage(WindowHandle, TTM_DELTOOL, 0, (LPARAM) &Hint);
 	sprintf(this->hint,"%s",text);
@@ -85,18 +89,18 @@ void SXGUIHint::SetText(const char* text)
 	//SendMessage(WindowHandle, TTM_SETTOOLINFO , 0, (LPARAM) &Hint);
 }
 
-const char* SXGUIHint::GetText()
+const char* CGUIHint::getText()
 {
 	return Hint.lpszText;
 }
 
-void SXGUIHint::GetText(char* buf)
+void CGUIHint::getText(char* buf)
 {
 		if(buf)
 			sprintf(buf,"%s",Hint.lpszText);
 }
 
-bool SXGUIHint::Parent(HWND parent)
+bool CGUIHint::setParent(HWND parent)
 {
 	HWND OldParent = GetParent(this->WindowHandle);
 	HWND tmp_parent = SetParent(this->WindowHandle,parent);
@@ -108,18 +112,18 @@ bool SXGUIHint::Parent(HWND parent)
 	return false;
 }
 
-HWND SXGUIHint::Parent()
+HWND CGUIHint::getParent()
 {
 	return this->WindowHandle;
 }
 
-void SXGUIHint::Visible(bool bf)
+void CGUIHint::setVisible(bool bf)
 {
 	SendMessage(WindowHandle,TTM_ACTIVATE,bf ? 1 : 0,0);
 	IsVisible = bf;
 }
 
-bool SXGUIHint::Visible()
+bool CGUIHint::getVisible()
 {
 	return IsVisible;
 }
\ No newline at end of file
diff --git a/source/SXGUIWinApi/hint.h b/source/SXGUIWinApi/hint.h
new file mode 100644
index 000000000..3691d6afe
--- /dev/null
+++ b/source/SXGUIWinApi/hint.h
@@ -0,0 +1,48 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_HINT_H
+#define __SXGUI_HINT_H
+
+#include <windows.h>
+#include <commctrl.h>
+
+#include "base.h"
+#include "SXGUI.h"
+
+
+class CGUIHint : public virtual ISXGUIHint
+{
+public:
+	CGUIHint();
+	CGUIHint(HWND parent);
+	~CGUIHint();
+	void Release(){ mem_del(this); }
+	//autopop - ����� ������
+	//init - ������� ���� ��������� ��������� ����� ��������� �������
+	void setDelayTime(UINT init, UINT autopop);
+
+	bool setParent(HWND parent);
+	HWND getParent();
+
+	HWND getHWND();
+
+	void setVisible(bool bf);
+	bool getVisible();
+
+	void setText(const char* text);	//��������� ������ ���������
+	const char* getText();				//���������� ��������� �� ����� ���������, ��������� ��� ������ �����������
+	void getText(char* buf);
+
+protected:
+	HWND WindowHandle;
+	HWND ParentHandle;
+	TOOLINFO Hint;
+	char hint[SX_HINT_COUNT_BUF_SIZE];
+	bool IsVisible;
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxgui_img_button.cpp b/source/SXGUIWinApi/img_button.cpp
similarity index 76%
rename from source/SXGUIWinApi/sxgui_img_button.cpp
rename to source/SXGUIWinApi/img_button.cpp
index 2e1eda029..f8d3bafce 100644
--- a/source/SXGUIWinApi/sxgui_img_button.cpp
+++ b/source/SXGUIWinApi/img_button.cpp
@@ -1,28 +1,32 @@
 
-#include <SXGUIWinApi\SXGUI_img_button.h>
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
 
-#pragma once
+#include "img_button.h"
 
-SXGUIButtonImg::SXGUIButtonImg()
+
+CGUIButtonImg::CGUIButtonImg()
 {
 
 }
 
-SXGUIButtonImg::SXGUIButtonImg(const char* path,WORD x,WORD y,WORD width,WORD heigth,DWORD alpha_color,DWORD bk_color,HWND parent,WNDPROC handler,DWORD id)
+CGUIButtonImg::CGUIButtonImg(const char* path, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, ID idObj)
 {
-	this->WindowHandle = CreateWindowEx(
+	m_hWindow = CreateWindowEx(
 							0,
-							"SXGUIBUTTONIMG",
+							SXGUI_DEF_BUTTONIMG,
 							0,
 							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE,
 							x,y,width,heigth,
 							parent,
-							(HMENU)id,
+							(HMENU)idObj,
 							GetModuleHandle(0),
 							0);
-	this->Init(this->GetHWND(),parent,(handler != 0 ? handler : WndProcAllDefault));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
+	this->init(this->getHWND(), parent, (handler != 0 ? handler : WndProcAllDefault), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
 
 	/*this->AddHandler(WndProcButtonImgDefault,WM_MOUSEMOVE,0,0,0,0,true);
 	this->AddHandler(WndProcButtonImgDefault,WM_KILLFOCUS,0,0,0,0,true);
@@ -53,21 +57,21 @@ SXGUIButtonImg::SXGUIButtonImg(const char* path,WORD x,WORD y,WORD width,WORD he
 	sprintf(this->PathForImg,"%s",path);
 }
 
-SXGUIButtonImg::SXGUIButtonImg(WORD button,WORD x,WORD y,WORD width,WORD heigth,DWORD alpha_color,DWORD bk_color,HWND parent,WNDPROC handler,DWORD id)
+CGUIButtonImg::CGUIButtonImg(WORD button, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, ID idObj)
 {
-	this->WindowHandle = CreateWindowEx(
+	m_hWindow = CreateWindowEx(
 							0,
-							"SXGUIBUTTONIMG",
+							SXGUI_DEF_BUTTONIMG,
 							0,
 							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE,
 							x,y,width,heigth,
 							parent,
-							(HMENU)id,
+							(HMENU)idObj,
 							GetModuleHandle(0),
 							0);
-	this->Init(this->GetHWND(),parent,(handler != 0 ? handler : WndProcAllDefault));
-	SetWindowLong(GetHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
-	this->InitComponent();
+	this->init(this->getHWND(), parent, (handler != 0 ? handler : WndProcAllDefault), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
 
 	/*this->AddHandler(WndProcButtonImgDefault,WM_MOUSEMOVE,0,0,0,0,true);
 	this->AddHandler(WndProcButtonImgDefault,WM_KILLFOCUS,0,0,0,0,true);
@@ -90,7 +94,7 @@ SXGUIButtonImg::SXGUIButtonImg(WORD button,WORD x,WORD y,WORD width,WORD heigth,
 	this->FrameColor = RGB(255,255,255);
 }
 
-void SXGUIButtonImg::ReInitImage(const char* path)
+void CGUIButtonImg::reInitImage(const char* path)
 {
 	DeleteObject(HBitMap);
 	HBitMap = LoadImage(NULL,path,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
@@ -100,102 +104,87 @@ void SXGUIButtonImg::ReInitImage(const char* path)
 	sprintf(this->PathForImg,"%s",path);
 }
 
-void SXGUIButtonImg::InitCallBack()
+void CGUIButtonImg::initCallBack()
 {
-	this->AddHandler(WndProcButtonImgDefault,WM_MOUSEMOVE,0,0,0,0,true);
-	this->AddHandler(WndProcButtonImgDefault,WM_KILLFOCUS,0,0,0,0,true);
-	this->AddHandler(WndProcButtonImgDefault,WM_NCMOUSEMOVE,0,0,0,0,true);
-	this->AddHandler(WndProcButtonImgDefault,WM_LBUTTONDOWN,0,0,0,0,true);
-	this->AddHandler(WndProcButtonImgDefault,WM_LBUTTONUP,0,0,0,0,true);
-	this->AddHandler(WndProcButtonImgDefault,WM_PAINT,0,0,0,0,true);
+	addHandler(WndProcButtonImgDefault,WM_MOUSEMOVE,0,0,0,0,true);
+	addHandler(WndProcButtonImgDefault,WM_KILLFOCUS,0,0,0,0,true);
+	addHandler(WndProcButtonImgDefault,WM_NCMOUSEMOVE,0,0,0,0,true);
+	addHandler(WndProcButtonImgDefault,WM_LBUTTONDOWN,0,0,0,0,true);
+	addHandler(WndProcButtonImgDefault,WM_LBUTTONUP,0,0,0,0,true);
+	addHandler(WndProcButtonImgDefault,WM_PAINT,0,0,0,0,true);
 }
 
-SXGUIButtonImg::~SXGUIButtonImg()
+CGUIButtonImg::~CGUIButtonImg()
 {
 	DeleteObject(HBitMap);
 }
 
-void SXGUIButtonImg::GetPathForImg(char* buf)
+void CGUIButtonImg::getPathForImg(char* buf)
 {
 	sprintf(buf,"%s",this->PathForImg);
 }
 
-void SXGUIButtonImg::SetEnable(bool bf)
+void CGUIButtonImg::setEnable(bool bf)
 {
 	EnableState = bf;
 }
 
-bool SXGUIButtonImg::GetEnable()
+bool CGUIButtonImg::getEnable()
 {
 	return EnableState;
 }
 
 
-void SXGUIButtonImg::SetEnableActive(bool bf)
+void CGUIButtonImg::setActive(bool bf)
 {
 	EnableBf = bf;
 }
 
-bool SXGUIButtonImg::GetEnableActive()
+bool CGUIButtonImg::getActive()
 {
 	return EnableBf;
 }
 
 
-void SXGUIButtonImg::SetParentGroup(bool bf)
+void CGUIButtonImg::setParentGroup(bool bf)
 {
 	EnableGroup = bf;
 }
 
-bool SXGUIButtonImg::GetParentGroup()
+bool CGUIButtonImg::getParentGroup()
 {
 	return EnableGroup;
 }
 
 
-void SXGUIButtonImg::SetColorFrame(BYTE r, BYTE g, BYTE b)
-{
-	FrameColor = RGB(r, g, b);
-}
-
-void SXGUIButtonImg::SetColorFrame(DWORD color)
+void CGUIButtonImg::setColorFrame(DWORD color)
 {
 	FrameColor = color;
 }
 
-DWORD SXGUIButtonImg::GetColorFrame()
+DWORD CGUIButtonImg::getColorFrame()
 {
 	return FrameColor;
 }
 
 
-void SXGUIButtonImg::SetColorBk(BYTE r, BYTE g, BYTE b)
-{
-	BkColor = RGB(r, g, b);
-}
-
-void SXGUIButtonImg::SetColorBk(DWORD color)
+void CGUIButtonImg::setColorBk(DWORD color)
 {
 	BkColor = color;
 }
 
-DWORD SXGUIButtonImg::GetColorBk()
+DWORD CGUIButtonImg::getColorBk()
 {
 	return BkColor;
 }
 
 
-void SXGUIButtonImg::SetColorAlpha(BYTE r, BYTE g, BYTE b)
-{
-	AlphaColor = RGB(r, g, b);
-}
-
-void SXGUIButtonImg::SetColorAlpha(DWORD color)
+void CGUIButtonImg::setColorAlpha(DWORD color)
 {
 	AlphaColor = color;
 }
 
-DWORD SXGUIButtonImg::GetColorAlpha()
+DWORD CGUIButtonImg::getColorAlpha()
 {
 	return AlphaColor;
 }
@@ -204,9 +193,9 @@ DWORD SXGUIButtonImg::GetColorAlpha()
 
 LRESULT WndProcButtonImgDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	//SXGUIButtonImg *Button = (SXGUIButtonImg *)GetWindowLong(hwnd,GWL_USERDATA);
+	//CGUIButtonImg *Button = (CGUIButtonImg *)GetWindowLong(hwnd,GWL_USERDATA);
 	ISXGUIComponent *Component = (ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA);
-	SXGUIButtonImg *Button = dynamic_cast<SXGUIButtonImg*>(Component);
+	CGUIButtonImg *Button = dynamic_cast<CGUIButtonImg*>(Component);
 	switch(msg)
 	{
 		case WM_MOUSEMOVE:
@@ -215,7 +204,7 @@ LRESULT WndProcButtonImgDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
 				POINT global_pos_cursor;
 				GetCursorPos(&global_pos_cursor);
 				RECT grect;
-				Button->GetWinRect(&grect);
+				Button->getWinRect(&grect);
 					if(global_pos_cursor.x >= grect.left && global_pos_cursor.x <= grect.right && global_pos_cursor.y >= grect.top && global_pos_cursor.y <= grect.bottom)
 					{
 							if(Button->Pos != SXGUI_BUTTONIMG_POS_ALLOC && !(Button->EnableBf && Button->EnableState))
@@ -283,7 +272,7 @@ LRESULT WndProcButtonImgDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
 					//���� ������ ������� � ������
 					//���� ������ ���� ��������� ������ ��� ������ ������ ��������, �������� �������� � ������������ ��������� ������
 					if(!Button->EnableState && Button->EnableGroup)
-						EnumChildWindows(Button->Parent(),(WNDENUMPROC)&SXGUIEnumChildWindow::EnumChildProcUpdateImgButton,-1);
+						EnumChildWindows(Button->getParent(), (WNDENUMPROC)&gui_func::enum_child::EnumChildProcUpdateImgButton, -1);
 				POINT p;
 				GetCursorPos(&p);
 				RECT rect;
@@ -307,9 +296,9 @@ LRESULT WndProcButtonImgDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
 				InvalidateRect(hwnd,0,TRUE);
 			}
 				if(Button->EnableState)
-					Button->SetFocus();
+					Button->setFocus();
 			
-			SendMessage(Button->Parent(),WM_COMMAND,MAKEWPARAM(GetWindowLong(hwnd,GWL_ID),0),(LPARAM)hwnd);
+			SendMessage(Button->getParent(),WM_COMMAND,MAKEWPARAM(GetWindowLong(hwnd,GWL_ID),0),(LPARAM)hwnd);
 			break;
 
 		case WM_PAINT:
@@ -426,5 +415,5 @@ LRESULT WndProcButtonImgDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
 			}
 		//break;
 	}
-	return CallWindowProc(Button->OldProc, hwnd, msg, wParam, lParam);
+	return CallWindowProc(Button->getPrevWndProc(), hwnd, msg, wParam, lParam);
 }
\ No newline at end of file
diff --git a/source/SXGUIWinApi/img_button.h b/source/SXGUIWinApi/img_button.h
new file mode 100644
index 000000000..f894a5450
--- /dev/null
+++ b/source/SXGUIWinApi/img_button.h
@@ -0,0 +1,68 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_IMG_BUTTON_H
+#define __SXGUI_IMG_BUTTON_H
+
+#include "base.h"
+
+
+class CGUIButtonImg : public CGUIComponent, public virtual ISXGUIButtonImg
+{
+public:
+	CGUIButtonImg();
+	CGUIButtonImg(const char* path, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, ID idObj);
+	CGUIButtonImg(WORD button, WORD x, WORD y, WORD width, WORD heigth, DWORD alpha_color, DWORD bk_color, HWND parent, WNDPROC handler, ID idObj);
+	void Release(){ mem_del(this); }
+	~CGUIButtonImg();
+
+	void reInitImage(const char* path);
+
+	void initCallBack();
+	
+	void getPathForImg(char* buf);
+
+	void setColorFrame(DWORD color);			
+	DWORD getColorFrame();						
+
+	void setColorBk(DWORD color);			
+	DWORD getColorBk();						
+
+	void setColorAlpha(DWORD color);			
+	DWORD getColorAlpha();						
+
+	void setEnable(bool bf);	//!< ��������� ��������� ������ (�������/��������)
+	bool getEnable();			//!< ���������� ��������� ������ (�������/��������)
+
+	void setActive(bool bf);	//!< ��������� ��������� ���������� ������ (��������/���������)
+	bool getActive();			//!< �������� �� ��������� ���������� ������?
+
+	void setParentGroup(bool bf);	//!< ���������� ������/�� ������ ������ � ������ ��������� ����� �� ������ ������ ��������
+	bool getParentGroup();
+
+	BITMAP Bitmap;
+	HANDLE HBitMap;
+
+	bool IsImages;
+
+	DWORD AlphaColor;	//!< ���� ������� ����� ��������
+	DWORD BkColor;		//!< ���� ���� ������
+	DWORD FrameColor;	//!< ���� ���� ������
+
+	WORD Pos;			//!< ������� � ������� ������� ������
+	bool PosBf[3];		//!< ����� �� ����������� ���������
+
+	bool EnableState;	//!< ��������� ������ (�������/��������)
+
+	bool EnableBf;		//!< �������� �� ��������� ���������� ������
+	bool EnableGroup;	//!< �������� �� ������ � ������ ���� �������� ��������� ��������, ��� ���������� ����� �������������� ������ ��� �������� ������ ������
+
+
+private:
+	char PathForImg[1024];
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/listbox.cpp b/source/SXGUIWinApi/listbox.cpp
new file mode 100644
index 000000000..e23e64d70
--- /dev/null
+++ b/source/SXGUIWinApi/listbox.cpp
@@ -0,0 +1,182 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "listbox.h"
+
+
+CGUIListBox::CGUIListBox()
+{
+
+}
+
+CGUIListBox::CGUIListBox(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"LISTBOX",
+							0,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIListBox::CGUIListBox(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, bool miltiple_sel)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							"LISTBOX",
+							0,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | LBS_HASSTRINGS | LBS_NOTIFY | WS_VSCROLL | WS_BORDER | (miltiple_sel ? LBS_EXTENDEDSEL : 0),
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+bool CGUIListBox::getStateMultiSel()
+{
+	long style = GetWindowLong(this->getHWND(), GWL_STYLE);
+		if(style & LBS_EXTENDEDSEL)
+			return true;
+		else
+			return false;
+}
+
+void CGUIListBox::setStateMultiSel(bool isMultiSel)
+{
+	modifyStyle((isMultiSel ? LBS_EXTENDEDSEL : 0), (isMultiSel ? LBS_EXTENDEDSEL : 0));
+}
+
+
+bool CGUIListBox::insertItem(int index,const char* text)
+{
+		if(!SendMessage(this->getHWND(),LB_INSERTSTRING,WPARAM(index),LPARAM(text))) 
+			return false;
+	return true;
+}
+
+bool CGUIListBox::addItem(const char* text)
+{
+		if(!SendMessage(this->getHWND(),LB_ADDSTRING,0,LPARAM(text))) 
+			return false;
+	return true;
+}
+
+bool CGUIListBox::deleteItem(int index)
+{
+		if(!SendMessage(this->getHWND(),LB_DELETESTRING,WPARAM(index),0))
+			return false;
+	return true;
+}
+
+int CGUIListBox::getItemCount()
+{
+	return SendMessage(this->getHWND(),LB_GETCOUNT,0,0);
+}
+
+bool CGUIListBox::setSel(int index)
+{
+	return SendMessage(this->getHWND(), LB_SETCURSEL, (WPARAM)index, 0);
+}
+
+int CGUIListBox::getSel()
+{
+	return SendMessage(this->getHWND(),LB_GETCURSEL,0,0);
+}
+
+
+bool CGUIListBox::setItemData(int index,LPARAM data)
+{
+		if(!SendMessage(this->getHWND(),LB_SETITEMDATA,WPARAM(index),data))
+			return false;
+	return true;
+}
+
+LPARAM CGUIListBox::getItemData(int index)
+{
+	return SendMessage(this->getHWND(),LB_GETITEMDATA,WPARAM(index),0);
+}
+
+bool CGUIListBox::clear()
+{
+		if(!SendMessage(this->getHWND(),LB_RESETCONTENT,0,0))
+			return false;
+	return true;
+}
+
+bool CGUIListBox::setItemText(int index, const char* text)
+{
+	LPARAM data = getItemData(index);
+	int sel = getSel();
+		/*if(!this->DeleteItem(index))
+			return false;
+		if(!this->InsertItem(index,text))
+			return false;
+	return this->SetItemData(index,data);*/
+
+	deleteItem(index);
+	insertItem(index,text);
+	if(sel == index)
+	{
+		setSel(index);
+	}
+	return setItemData(index,data);
+}
+
+void CGUIListBox::getItemText(int index,char* buf)
+{
+	SendMessage(this->getHWND(),LB_GETTEXT,WPARAM(index),LPARAM(buf));
+}
+
+int CGUIListBox::getItemTextLength(int index)
+{
+	return SendMessage(this->getHWND(),LB_GETTEXTLEN,WPARAM(index),0);
+}
+
+
+int CGUIListBox::getMultiSelCount()
+{
+	return SendMessage(this->getHWND(),LB_GETSELCOUNT,0,0);
+}
+
+bool CGUIListBox::setMultiSel(int index,bool sel)
+{
+		if(!SendMessage(this->getHWND(),LB_SETSEL,WPARAM(sel ? 1 : 0),LPARAM(index)))
+			return false;
+	return true;
+}
+
+bool CGUIListBox::getMultiSel(int index)
+{
+		if(!SendMessage(this->getHWND(),LB_GETSEL,WPARAM(index),0))
+			return false;	
+	return true;
+}
+
+int CGUIListBox::getMultiSelArr(int **ppArr)
+{
+	if (!ppArr)
+		return 0;
+
+	int iCount = getMultiSelCount();
+
+	if (iCount <= 0)
+		return iCount;
+
+	*ppArr = new int[iCount];
+	SendMessage(this->getHWND(), LB_GETSELITEMS, WPARAM(iCount), LPARAM(*ppArr));
+	return iCount;
+}
diff --git a/source/SXGUIWinApi/listbox.h b/source/SXGUIWinApi/listbox.h
new file mode 100644
index 000000000..981dc7221
--- /dev/null
+++ b/source/SXGUIWinApi/listbox.h
@@ -0,0 +1,52 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_LIST_BOX_H
+#define __SXGUI_LIST_BOX_H
+
+#include "base.h"
+
+
+class CGUIListBox : public CGUIComponent, public virtual ISXGUIListBox
+{
+public:
+	CGUIListBox();
+	CGUIListBox(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIListBox(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, bool miltiple_sel);
+
+	bool getStateMultiSel();	//������������ �� �������� �������������� ��������� �����
+	void setStateMultiSel(bool isMultiSel);
+
+	bool insertItem(int index,const char* text);	//�������� ����� � ������ � ������� index
+	bool addItem(const char* text);				//�������� ������ � ����� ������
+	int getItemCount();							//���������� ���������� �����
+
+	bool deleteItem(int index);					//������� ������ � ������� index
+
+	bool setSel(int index);						//�������� ������ � ������� index
+	int	getSel();
+
+	bool setItemData(int index,LPARAM data);		//���������� userdata ��� ������ � ������� index
+	LPARAM getItemData(int index);					//���������� userdata
+
+	bool clear();								//��������
+
+	bool setItemText(int index, const char* text);//���������� ����� � ������ � ������� index
+	void getItemText(int index,char* buf);		//���������� ����� �� ������
+
+	int	getItemTextLength(int index);			//���������� ����� ������ � ������
+
+	//��������������� �����, ���� this->MultipleSel() == true
+	int getMultiSelCount();					//���������� ���������� ���������� �����
+
+	bool setMultiSel(int index,bool sel);		//������������� ��������/�� �������� ������
+	bool getMultiSel(int index);				//���������� �������� �� ������
+
+	
+	int getMultiSelArr(int **ppArr);					//���������� ������ � �������� ���������� �����
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/listview.cpp b/source/SXGUIWinApi/listview.cpp
new file mode 100644
index 000000000..aee32578e
--- /dev/null
+++ b/source/SXGUIWinApi/listview.cpp
@@ -0,0 +1,187 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "listview.h"
+
+
+CGUIListView::CGUIListView()
+{
+
+}
+
+CGUIListView::CGUIListView(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+		exstyle,
+		WC_LISTVIEW,
+		0,
+		style,
+		x, y, width, heigth,
+		parent,
+		(HMENU)idObj,
+		GetModuleHandle(0),
+		0);
+
+	//ListView_SetExtendedListViewStyleEx(m_hWindow, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB | LVS_EX_ONECLICKACTIVATE);
+	this->init(this->getHWND(), parent, handler, idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
+}
+
+CGUIListView::CGUIListView(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+		0,
+		WC_LISTVIEW,
+		0,
+		(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | /*WS_VSCROLL | WS_HSCROLL | LVS_ALIGNLEFT |*/ LVS_SHOWSELALWAYS | WS_BORDER | LVS_REPORT | LVS_SINGLESEL,
+		x, y, width, heigth,
+		parent,
+		(HMENU)idObj,
+		GetModuleHandle(0),
+		0);
+
+	ListView_SetExtendedListViewStyleEx(m_hWindow, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB | LVS_EX_ONECLICKACTIVATE);
+	this->init(this->getHWND(), parent, handler, idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	this->initComponent();
+}
+
+int CGUIListView::insertColumn(const char* text, int col, int width)
+{
+	RECT rcl;
+	::GetClientRect(m_hWindow, &rcl);
+
+	/*char *szIStr = new char[strlen(text)];
+	sprintf(szIStr, "%s", text);*/
+
+	LVCOLUMN lvc;
+	memset(&lvc, 0, sizeof(LVCOLUMN));
+	lvc.mask = LVCF_TEXT | LVCF_WIDTH;
+	lvc.cx = width;
+	lvc.pszText = (char*)text;
+
+	int iRes =  ListView_InsertColumn(m_hWindow, col, &lvc);
+
+	//delete[] szIStr;
+
+	return iRes;
+}
+
+int CGUIListView::addColumn(const char* text, int width)
+{
+	return insertColumn(text, getColumnsCount(), width);
+}
+
+void CGUIListView::deleteColumn(int col)
+{
+	ListView_DeleteColumn(m_hWindow, col);
+}
+
+int CGUIListView::getColumnsCount()
+{
+	HWND hwndHeader = ListView_GetHeader(m_hWindow);
+	return ::SendMessage(hwndHeader, HDM_GETITEMCOUNT, 0, 0);
+}
+
+int CGUIListView::addString(LPARAM data)
+{
+	LVITEM lvi;
+	memset(&lvi, 0, sizeof(LVCOLUMN));
+	lvi.mask = LVIF_TEXT | LVIF_PARAM;
+	lvi.iItem = getStringCount();
+	lvi.iSubItem = 0;
+	lvi.lParam = data;
+	return ListView_InsertItem(m_hWindow, &lvi);
+}
+
+void CGUIListView::deleteString(int str)
+{
+	ListView_DeleteItem(m_hWindow, str);
+}
+
+int CGUIListView::getStringCount()
+{
+	return ListView_GetItemCount(m_hWindow);
+}
+
+void CGUIListView::setItemText(char* text, int col, int str)
+{
+	ListView_SetItemText(m_hWindow, str, col, text);
+}
+
+void CGUIListView::getItemText(char* text, int col, int str, int sizebuff)
+{
+	ListView_GetItemText(m_hWindow, str, col, text, sizebuff);
+}
+
+void CGUIListView::setItemData(int str, LPARAM data)
+{
+	LVITEM lvi;
+	lvi.iItem = str;
+	lvi.iSubItem = 0;
+
+	ListView_GetItem(m_hWindow, &lvi);
+
+	lvi.mask = lvi.mask | LVIF_PARAM;
+	lvi.iSubItem = 0;
+	lvi.lParam = data;
+	BOOL res = ListView_SetItem(m_hWindow, &lvi);
+	int qwerty = 0;
+}
+
+LPARAM CGUIListView::getItemData(int str)
+{
+	LVITEM lvi;
+	lvi.iItem = str;
+	lvi.iSubItem = 0;
+
+	BOOL res = ListView_GetItem(m_hWindow, &lvi);
+	return lvi.lParam;
+}
+
+int CGUIListView::getSelString(int start)
+{
+	return ::SendMessage(m_hWindow, LVM_GETNEXTITEM, start, LVNI_SELECTED);
+}
+
+void CGUIListView::setSelString(int str)
+{
+	ListView_SetItemState(m_hWindow, str, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
+	this->setFocus();
+}
+
+int CGUIListView::getSelColumn()
+{
+	return ListView_GetSelectedColumn(m_hWindow);
+}
+
+void CGUIListView::setSelColumn(int col)
+{
+	ListView_SetSelectedColumn(m_hWindow, col);
+}
+
+void CGUIListView::clear()
+{
+	clearStrings();
+	ListView_DeleteAllItems(m_hWindow);
+
+	while (getColumnsCount() > 0)
+	{
+		deleteColumn(0);
+	}
+}
+
+void CGUIListView::clearStrings()
+{
+	int countstr = getStringCount();
+	for (int i = 0; i < countstr; ++i)
+	{
+		deleteString(0);
+	}
+	//BOOL bf = TabCtrl_DeleteAllItems(m_hWindow);
+	//int qwerty = 0;
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/listview.h b/source/SXGUIWinApi/listview.h
new file mode 100644
index 000000000..0ff454d92
--- /dev/null
+++ b/source/SXGUIWinApi/listview.h
@@ -0,0 +1,45 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_LIST_VIEW_H
+#define __SXGUI_LIST_VIEW_H
+
+#include "base.h"
+
+
+class CGUIListView : public CGUIComponent, public virtual ISXGUIListView
+{
+public:
+	CGUIListView();
+	CGUIListView(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIListView(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	int insertColumn(const char* text, int col, int width);
+	int addColumn(const char* text, int width);
+	void deleteColumn(int col);
+	int getColumnsCount();
+
+	int addString(LPARAM data = -1);
+	void deleteString(int str);
+	int getStringCount();
+
+	void setItemText(char* text, int col, int str);
+	void getItemText(char* text, int col, int str, int sizebuff);
+
+	void setItemData(int str, LPARAM data);
+	LPARAM getItemData(int str);
+
+	int getSelString(int start = -1);
+	void setSelString(int str);
+
+	int getSelColumn();
+	void setSelColumn(int col);
+
+	void clear();
+	void clearStrings();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/memo.cpp b/source/SXGUIWinApi/memo.cpp
new file mode 100644
index 000000000..a19193d46
--- /dev/null
+++ b/source/SXGUIWinApi/memo.cpp
@@ -0,0 +1,62 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "memo.h"
+
+
+CGUIMemo::CGUIMemo()
+{
+
+}
+
+CGUIMemo::CGUIMemo(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"EDIT",
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIMemo::CGUIMemo(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							"EDIT",
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | WS_BORDER | ES_AUTOVSCROLL | ES_LEFT | ES_WANTRETURN | ES_MULTILINE,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+
+bool CGUIMemo::getWordWrap()
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if((style & ES_AUTOVSCROLL) && !(style & ES_AUTOHSCROLL))
+			return true;
+	return false;
+}
+
+bool CGUIMemo::setWordWrap(bool bf)
+{
+	return modifyStyle(bf ? ES_AUTOVSCROLL : 0,!bf ? ES_AUTOVSCROLL : 0);
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/memo.h b/source/SXGUIWinApi/memo.h
new file mode 100644
index 000000000..95146997c
--- /dev/null
+++ b/source/SXGUIWinApi/memo.h
@@ -0,0 +1,24 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_MEMO_H
+#define __SXGUI_MEMO_H
+
+#include "edit.h"
+
+
+class CGUIMemo : public CGUIEdit, public virtual ISXGUIMemo
+{
+public:
+	CGUIMemo();
+	CGUIMemo(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIMemo(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	bool getWordWrap();		//���������� �� ����������� ����
+	bool setWordWrap(bool bf);	//������������ ��������� ����������� ����
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/menu.cpp b/source/SXGUIWinApi/menu.cpp
new file mode 100644
index 000000000..c1c1b1623
--- /dev/null
+++ b/source/SXGUIWinApi/menu.cpp
@@ -0,0 +1,247 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "menu.h"
+
+
+CGUIMenuBase::CGUIMenuBase()
+{
+	MenuHandle = 0;
+}
+
+CGUIMenuBase::~CGUIMenuBase()
+{
+	DestroyMenu(this->MenuHandle);
+}
+
+bool CGUIMenuBase::insertItem(int index, const char* text, ID id, ID id_sub_menu)
+{
+	char str[256];
+	sprintf(str,"%s",text);
+	MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_STRING|MIIM_ID;
+	mi.dwTypeData = str;
+	mi.wID=id;
+
+	HMENU SubMenu = getSubMenu(id_sub_menu);
+	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu ? SubMenu : MenuHandle,index,TRUE,&mi);
+	//DrawMenuBar(ParentHandle);
+	return bf ? true : false;
+}
+
+bool CGUIMenuBase::insertPopupItem(int index, const char* text, ID id, ID id_sub_menu)
+{
+	char str[256];
+	sprintf(str,"%s",text);
+	MENUINFO mi;
+	MENUITEMINFO mii;
+	HMENU SubMenu = CreatePopupMenu();
+	mi.cbSize = sizeof(MENUINFO);
+	mi.fMask = MIM_STYLE;
+	mi.dwStyle = MNS_NOTIFYBYPOS;
+	SetMenuInfo(SubMenu, &mi);
+ 
+	mii.cbSize = sizeof(MENUITEMINFO);
+	mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_FTYPE | MIIM_ID; 
+	mii.fType = MFT_STRING;
+	mii.dwTypeData = str;
+	mii.wID = id;
+	mii.hSubMenu = SubMenu;
+
+	HMENU SubMenu2 = getSubMenu(id_sub_menu);
+	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu2 ? SubMenu2 : MenuHandle, index, TRUE, &mii);
+	//DrawMenuBar(ParentHandle);
+	return bf ? true : false;
+}
+
+bool CGUIMenuBase::insertSeparator(int index, ID id, ID id_sub_menu)
+{
+	MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_ID | MIIM_FTYPE;
+	mi.wID=id;
+	mi.fType = MFT_SEPARATOR;
+
+	HMENU SubMenu = getSubMenu(id_sub_menu);
+	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu ? SubMenu : MenuHandle,index,TRUE,&mi);
+	//DrawMenuBar(ParentHandle);
+	return bf ? true : false;
+}
+
+bool CGUIMenuBase::deleteItem(ID id)
+{
+	return DeleteMenu(this->MenuHandle,id,MF_BYCOMMAND) ? true : false;
+}
+
+HMENU CGUIMenuBase::getSubMenu(ID id)
+{
+	MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_SUBMENU;
+	mi.hSubMenu = 0;
+	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
+
+	return bf ? mi.hSubMenu : 0;
+}
+
+bool CGUIMenuBase::setCheckItem(ID id, bool check)
+{
+	/*MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_STATE;
+
+		if(!GetMenuItemInfo(MenuHandle,id,FALSE,&mi))
+			return false;
+
+	mi.fState |= (check ? MFS_CHECKED : MFS_UNCHECKED);
+
+		if(!SetMenuItemInfo(MenuHandle,id,FALSE,&mi))
+			return false;
+	return true;*/
+	DWORD var = CheckMenuItem(MenuHandle,id,(check ? MF_CHECKED : MF_UNCHECKED));
+	//DrawMenuBar(ParentHandle);
+	return ((var != 0xFFFFFFFF) || (var == -1)) ? true : false;
+}
+
+bool CGUIMenuBase::getCheckedItem(ID id)
+{
+	MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_STATE;
+	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
+		if(mi.fState & MFS_CHECKED)
+			return true;
+	return false;
+}
+
+bool CGUIMenuBase::setEnableItem(ID id, int enable)
+{
+	/*MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_STATE;
+
+		if(!GetMenuItemInfo(MenuHandle,id,FALSE,&mi))
+			return false;
+
+	DWORD Enable = SXGUI_MENU_ENABLED;
+
+		if(enable == SXGUI_MENU_DISABLED)
+			Enable = MFS_DISABLED;
+		else if(enable == SXGUI_MENU_GRAYED)
+			Enable = MFS_GRAYED;
+		else
+			Enable = MFS_ENABLED;
+
+	mi.fState |= Enable;
+
+		if(!SetMenuItemInfo(MenuHandle,id,FALSE,&mi))
+			return false;
+	return true;*/
+
+	DWORD Enable = SXGUI_MENU_PART_STATE_ENABLED;
+
+		if (enable == SXGUI_MENU_PART_STATE_DISABLED)
+			Enable = MFS_DISABLED;
+		else if (enable == SXGUI_MENU_PART_STATE_GRAYED)
+			Enable = MFS_GRAYED;
+		else
+			Enable = MFS_ENABLED;
+
+	DWORD var = EnableMenuItem(MenuHandle,id,Enable);;
+	//DrawMenuBar(ParentHandle);
+	return ((var != 0xFFFFFFFF) || (var == -1)) ? true : false;
+}
+
+int CGUIMenuBase::getEnabledItem(ID id)
+{
+	MENUITEMINFO mi;
+	mi.cbSize=sizeof(MENUITEMINFO);
+	mi.fMask=MIIM_STATE;
+	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
+
+		if(mi.fState & MFS_DISABLED)
+			return SXGUI_MENU_PART_STATE_DISABLED;
+		else if(mi.fState & MFS_GRAYED)
+			return SXGUI_MENU_PART_STATE_GRAYED;
+		else
+			return SXGUI_MENU_PART_STATE_ENABLED;
+
+	return -1;
+}
+
+HMENU CGUIMenuBase::getHMENU()
+{
+	return this->MenuHandle;
+}
+
+//##########################################################################
+
+CGUIMenuWindow::CGUIMenuWindow()
+{
+	MENUINFO mi;
+	MenuHandle = CreateMenu();
+	mi.cbSize = sizeof(MENUINFO);
+	mi.fMask = MIM_STYLE;
+	mi.dwStyle = MNS_NOTIFYBYPOS;
+	SetMenuInfo(MenuHandle, &mi);
+}
+
+CGUIMenuWindow::CGUIMenuWindow(UINT menu)
+{
+	MenuHandle = LoadMenu(GetModuleHandle(0), MAKEINTRESOURCE(menu));
+}
+
+bool CGUIMenuWindow::setToWindow(HWND hwnd)
+{
+		if(!hwnd)
+			return false;
+		if(!SetMenu(hwnd,this->MenuHandle))
+			return false;
+	return true;
+}
+
+//##########################################################################
+
+CGUIPopupMenu::CGUIPopupMenu(UINT menu)
+{
+	MenuHandle = LoadMenu(GetModuleHandle(0),MAKEINTRESOURCE(menu));
+	MenuHandle = ::GetSubMenu(MenuHandle,0);
+}
+
+CGUIPopupMenu::CGUIPopupMenu()
+{
+	MENUINFO mi;
+	MenuHandle = CreatePopupMenu();
+	mi.cbSize = sizeof(MENUINFO);
+	mi.fMask = MIM_STYLE;
+	mi.dwStyle = MNS_NOTIFYBYPOS;
+	SetMenuInfo(MenuHandle, &mi);
+}
+
+bool CGUIPopupMenu::track(HWND hwnd,int x,int y)
+{
+	int pos_x,pos_y;
+
+		if((x == -1)&&(y==-1))
+		{
+			POINT point;
+			GetCursorPos(&point);
+			pos_x = point.x;
+			pos_y = point.y;
+		}
+		else
+		{
+			pos_x=x; 
+			pos_y=y;
+		}
+		if(!hwnd)
+			return false;
+
+		if(!TrackPopupMenu(MenuHandle,TPM_LEFTALIGN,pos_x,pos_y,0,hwnd,0))
+			return false;
+	return true;
+}
diff --git a/source/SXGUIWinApi/menu.h b/source/SXGUIWinApi/menu.h
new file mode 100644
index 000000000..2aa0efc1d
--- /dev/null
+++ b/source/SXGUIWinApi/menu.h
@@ -0,0 +1,70 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_MENU_H
+#define __SXGUI_MENU_H
+
+#include "base.h"
+
+class CGUIMenuBase : public virtual ISXGUIMenuBase
+{
+public:
+	CGUIMenuBase();
+
+	~CGUIMenuBase();
+
+	void Release(){ mem_del(this); }
+
+
+	bool insertItem(int index, const char* text, ID id, ID id_sub_menu);
+	bool insertPopupItem(int index, const char* text, ID id, ID id_sub_menu);
+	bool insertSeparator(int index, ID id, ID id_sub_menu);
+
+	bool deleteItem(ID id);
+
+	HMENU getSubMenu(ID id);
+
+	bool setCheckItem(ID id, bool check);
+	bool setEnableItem(ID id, int enable);
+
+	bool getCheckedItem(ID id);
+	int getEnabledItem(ID id);
+
+
+	HMENU getHMENU();
+	bool setToWindow(HWND hwnd);
+
+protected:
+	HMENU MenuHandle;
+};
+
+//##########################################################################
+
+class CGUIMenuWindow : public CGUIMenuBase, public virtual ISXGUIMenuWindow
+{
+public:
+	CGUIMenuWindow();
+	CGUIMenuWindow(UINT menu);
+
+	void Release(){ mem_del(this); }
+
+	bool setToWindow(HWND hwnd);
+};
+
+//##########################################################################
+
+class CGUIPopupMenu : public CGUIMenuBase, public virtual ISXGUIPopupMenu
+{
+public:
+	CGUIPopupMenu();
+	CGUIPopupMenu(UINT menu);
+
+	void Release(){ mem_del(this); }
+
+	bool track(HWND hwnd,int x,int y);
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/progressbar.cpp b/source/SXGUIWinApi/progressbar.cpp
new file mode 100644
index 000000000..cce17404e
--- /dev/null
+++ b/source/SXGUIWinApi/progressbar.cpp
@@ -0,0 +1,121 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "progressbar.h"
+
+
+CGUIProgressBar::CGUIProgressBar()
+{
+
+}
+
+CGUIProgressBar::CGUIProgressBar(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							PROGRESS_CLASS,
+							0,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	m_lpfnPrevProc = DefWindowProc;
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIProgressBar::CGUIProgressBar(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, bool vertical, bool smooth)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							PROGRESS_CLASS,
+							0,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | (smooth ? PBS_SMOOTH : 0) | (vertical ? PBS_VERTICAL : 0),
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	//SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	ISXGUIComponent* component = dynamic_cast<ISXGUIComponent*>(this);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+int CGUIProgressBar::getPos()
+{
+	return SendMessage(this->getHWND(),PBM_GETPOS,0,0);
+}
+
+int CGUIProgressBar::setPos(int pos)
+{
+	return SendMessage(this->getHWND(),PBM_SETPOS,WPARAM(pos),0);
+}
+
+int CGUIProgressBar::getStep()
+{
+	int step = SendMessage(this->getHWND(),PBM_SETSTEP,WPARAM(0),0);
+
+	SendMessage(this->getHWND(),PBM_SETSTEP,WPARAM(step),0);
+	return step;
+}
+
+int CGUIProgressBar::setStep(int step)
+{
+	return SendMessage(this->getHWND(),PBM_SETSTEP,WPARAM(step),0);
+}
+
+int CGUIProgressBar::setPosSteps(int steps)
+{
+	return SendMessage(this->getHWND(),PBM_DELTAPOS,WPARAM(steps),0);
+}
+
+int CGUIProgressBar::setOneStep()
+{
+	return SendMessage(this->getHWND(),PBM_STEPIT,0,0);
+}
+
+bool CGUIProgressBar::setMinMax(int min,int max)
+{
+	return SendMessage(this->getHWND(),PBM_SETRANGE32,WPARAM(min),LPARAM(max));
+}
+
+
+int CGUIProgressBar::getMin()
+{
+	return SendMessage(this->getHWND(),PBM_GETRANGE,WPARAM(1),0);
+}
+
+int CGUIProgressBar::getMax()
+{
+	return SendMessage(this->getHWND(),PBM_GETRANGE,WPARAM(0),0);
+}
+
+bool CGUIProgressBar::setColorBar(DWORD dwColor)
+{
+	return SendMessage(this->getHWND(), PBM_SETBARCOLOR, 0, LPARAM(dwColor));
+}
+
+bool CGUIProgressBar::setColorBk(DWORD dwColor)
+{
+	return SendMessage(this->getHWND(), PBM_SETBKCOLOR, 1, LPARAM(dwColor));
+}
+
+DWORD CGUIProgressBar::getColorBar()
+{
+	COLORREF color = SendMessage(this->getHWND(),PBM_SETBARCOLOR,0,0);
+	return color;
+}
+
+DWORD CGUIProgressBar::getColorBk()
+{
+	COLORREF color = SendMessage(this->getHWND(),PBM_SETBKCOLOR,0,0);
+	return color;
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/progressbar.h b/source/SXGUIWinApi/progressbar.h
new file mode 100644
index 000000000..8684973cd
--- /dev/null
+++ b/source/SXGUIWinApi/progressbar.h
@@ -0,0 +1,49 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_PROGRESS_BAR_H
+#define __SXGUI_PROGRESS_BAR_H
+
+#include "base.h"
+
+
+class CGUIProgressBar : public CGUIComponent, public virtual ISXGUIProgressBar
+{
+public:
+	CGUIProgressBar();
+	CGUIProgressBar(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIProgressBar(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, bool vertical, bool smooth);
+
+	//��������/���������� ������� ���������
+	int getPos();				//���������� ������� �������
+	int setPos(int pos);		//���������� ������ �������
+
+	//��������/���������� ������ ���� ���������
+	int getStep();				//���������� ������� ������ ����
+	int setStep(int step);		//���������� ������ ������ ����
+
+	//���������� �������������� �������
+	int setPosSteps(int steps);	//���������� ������� �� ���������� �����
+	int setOneStep();			//��������� ������� �� ���� ���
+
+	//������������� ������� �������� � ��������� ���������
+	//��� ������� ���������� ���������� true, ����� false
+	bool setMinMax(int min,int max);	
+
+	//���������� �����������/������������ ������� ���������
+	int getMin();
+	int getMax();
+
+	//����������/�������� ���� ������� (���������� ���� ��������� ������� RGB(51,153,255))
+	bool setColorBar(DWORD dwColor);	//��� ������� ���������� ���������� true, ����� false
+	DWORD getColorBar();
+
+	//����������/�������� ���� ���� (���������� ���� ����� ����� ���� ��������)
+	bool setColorBk(DWORD dwColor); //��� ������� ���������� ���������� true, ����� false
+	DWORD getColorBk();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/radiobutton.cpp b/source/SXGUIWinApi/radiobutton.cpp
new file mode 100644
index 000000000..33a0aa8e9
--- /dev/null
+++ b/source/SXGUIWinApi/radiobutton.cpp
@@ -0,0 +1,57 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "radiobutton.h"
+
+
+CGUIRadioButton::CGUIRadioButton()
+{
+
+}
+
+CGUIRadioButton::CGUIRadioButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							"BUTTON",
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIRadioButton::CGUIRadioButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							"BUTTON",
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | BS_AUTORADIOBUTTON,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+void CGUIRadioButton::setCheck(bool check)
+{
+	SendMessage(this->getHWND(),BM_SETCHECK,(check ? BST_CHECKED : BST_UNCHECKED),0);
+}
+
+bool CGUIRadioButton::getCheck()
+{
+	return SendMessage(this->getHWND(),BM_GETCHECK,0,0) ? true : false;
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/radiobutton.h b/source/SXGUIWinApi/radiobutton.h
new file mode 100644
index 000000000..c769f2917
--- /dev/null
+++ b/source/SXGUIWinApi/radiobutton.h
@@ -0,0 +1,25 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_RADIO_BUTTON_H
+#define __SXGUI_RADIO_BUTTON_H
+
+#include "base.h"
+#include "button.h"
+
+
+class CGUIRadioButton : public CGUIButton, public virtual ISXGUIRadioButton
+{
+public:
+	CGUIRadioButton();
+	CGUIRadioButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIRadioButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	void setCheck(bool check);
+	bool getCheck();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/static.cpp b/source/SXGUIWinApi/static.cpp
new file mode 100644
index 000000000..4c06e5799
--- /dev/null
+++ b/source/SXGUIWinApi/static.cpp
@@ -0,0 +1,99 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "static.h"
+
+
+CGUIStatic::CGUIStatic()
+{
+
+}
+
+CGUIStatic::CGUIStatic(const char* caption, int x, int y, int width, int heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							SXGUI_DEF_STATIC,
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIStatic::CGUIStatic(const char* caption, int x, int y, int width, int heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							SXGUI_DEF_STATIC,
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE  | SS_LEFT,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIStatic::CGUIStatic(int x, int y, int width, int heigth, HWND parent, WNDPROC handler, ID idObj, bool vertical)
+{
+	m_hWindow = CreateWindowEx(
+							WS_EX_TOPMOST,
+							SXGUI_DEF_STATIC,
+							0,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE  | SS_LEFT | (vertical ? SS_ETCHEDVERT : SS_ETCHEDHORZ),
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, handler, idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+SXGUI_TEXT_ALIGN CGUIStatic::getAlign()
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(style & SS_RIGHT)
+			return SXGUI_TEXT_ALIGN_RIGHT;
+		else if(style & SS_CENTER)
+			return SXGUI_TEXT_ALIGN_CENTER;
+		else
+			return SXGUI_TEXT_ALIGN_LEFT;
+}
+
+bool CGUIStatic::setAlign(SXGUI_TEXT_ALIGN align)
+{
+	if (align == SXGUI_TEXT_ALIGN_LEFT)
+		return this->modifyStyle(SS_LEFT,0);
+	else if (align == SXGUI_TEXT_ALIGN_RIGHT)
+		return this->modifyStyle(SS_RIGHT,0);
+	else if (align == SXGUI_TEXT_ALIGN_CENTER)
+		return this->modifyStyle(SS_CENTER,0);
+	return false;
+}
+
+bool CGUIStatic::getWordWrap()
+{
+	long style = GetWindowLong(this->getHWND(),GWL_STYLE);
+		if(!(style & SS_LEFTNOWORDWRAP))
+			return true;
+	return false;
+}
+
+bool CGUIStatic::setWordWrap(bool bf)
+{
+	return this->modifyStyle(!bf ? SS_LEFTNOWORDWRAP : 0,bf ? SS_LEFTNOWORDWRAP : 0);
+}
diff --git a/source/SXGUIWinApi/static.h b/source/SXGUIWinApi/static.h
new file mode 100644
index 000000000..364597586
--- /dev/null
+++ b/source/SXGUIWinApi/static.h
@@ -0,0 +1,29 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_STATIC_H
+#define __SXGUI_STATIC_H
+
+#include "base.h"
+
+class CGUIStatic : public CGUITextual, public virtual ISXGUIStatic
+{
+public:
+	CGUIStatic();
+	CGUIStatic(const char* caption, int x, int y, int width, int heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIStatic(const char* caption, int x, int y, int width, int heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	//������� �����
+	CGUIStatic(int x, int y, int width, int heigth, HWND parent, WNDPROC handler, ID idObj, bool vertical);
+
+	SXGUI_TEXT_ALIGN getAlign();			//���������� ���� ������������ ������
+	bool setAlign(SXGUI_TEXT_ALIGN align);	//������������� ������������ ������
+
+	bool getWordWrap();		//���������� �� ����������� �����
+	bool setWordWrap(bool bf); //����������� �� ��������� ����������� �����
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/statusbar.cpp b/source/SXGUIWinApi/statusbar.cpp
new file mode 100644
index 000000000..8e74a7459
--- /dev/null
+++ b/source/SXGUIWinApi/statusbar.cpp
@@ -0,0 +1,213 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "statusbar.h"
+
+
+CGUIStatusBar::CGUIStatusBar()
+{
+
+}
+
+CGUIStatusBar::CGUIStatusBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							STATUSCLASSNAME,
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+	
+	AlignReSizing = SXGUI_STATUSBAR_ALIGN_RESIZE_PERCENT;
+	ArrWidth = 0;
+	ArrCoef = 0;
+	CountArr = 0;
+
+	m_aFollowParentSide[SXGUI_SIDE_TOP] = false;
+	m_aFollowParentSide[SXGUI_SIDE_BOTTOM] = false;
+	m_aFollowParentSide[SXGUI_SIDE_RIGHT] = false;
+	m_aFollowParentSide[SXGUI_SIDE_LEFT] = false;
+}
+
+CGUIStatusBar::CGUIStatusBar(const char* caption, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							STATUSCLASSNAME,
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | TBS_AUTOTICKS | SBARS_SIZEGRIP | CCS_BOTTOM,
+							CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+	
+	AlignReSizing = SXGUI_STATUSBAR_ALIGN_RESIZE_PERCENT;
+	ArrWidth = 0;
+	ArrCoef = 0;
+	CountArr = 0;
+
+	m_aFollowParentSide[SXGUI_SIDE_TOP] = false;
+	m_aFollowParentSide[SXGUI_SIDE_BOTTOM] = false;
+	m_aFollowParentSide[SXGUI_SIDE_RIGHT] = false;
+	m_aFollowParentSide[SXGUI_SIDE_LEFT] = false;
+
+	::GetClientRect(this->getHWND(),&this->OldRect);
+}
+
+CGUIStatusBar::~CGUIStatusBar()
+{
+	mem_delete_a(ArrCoef);
+	mem_delete_a(ArrWidth);
+}
+
+bool CGUIStatusBar::setPartsCount(int count, int *arr)
+{
+	CountArr = count;
+	mem_delete_a(ArrWidth);
+	ArrWidth = 0;
+	ArrWidth = arr;
+
+	comCoef();
+
+		if(SendMessage(this->getHWND(),SB_SETPARTS,count,(LPARAM)arr))
+			return true;
+		else
+			return false;
+}
+
+void CGUIStatusBar::comCoef()
+{
+	WORD GWidth = 0;
+	RECT rect;
+	::GetClientRect(this->getHWND(),&rect);
+	GWidth = rect.right;
+	float OnePercent = 100.0 / float(GWidth);
+
+	mem_delete_a(ArrCoef);
+	ArrCoef = new float[CountArr];
+
+		for(int i=0;i<CountArr;i++)
+		{
+			ArrCoef[i] = OnePercent *  ((ArrWidth[i] != -1 ? ArrWidth[i] : GWidth) - (i > 0 ? ArrWidth[i-1] : 0));
+		}
+}
+
+bool CGUIStatusBar::setPartText(int pos, const char* text)
+{
+	SendMessage(this->getHWND(),SB_SETTEXT,pos,(LPARAM)text);
+	return true;
+}
+
+int CGUIStatusBar::getPartsCount(int **ppArr)
+{
+	int iCount = SendMessage(this->getHWND(), SB_GETPARTS, 0, 0);
+	int *aParts = new int[iCount];
+
+	int tmpcp = SendMessage(this->getHWND(), SB_GETPARTS, iCount, (LPARAM)aParts);
+
+	if (ppArr != 0)
+		*ppArr = aParts;
+	else
+	{
+		mem_delete_a(aParts);
+	}
+
+	return iCount;
+}
+
+bool CGUIStatusBar::getPartText(int pos, char* buf, int len)
+{
+	int CountSym = SendMessage(this->getHWND(), SB_GETTEXTLENGTH, pos, 0);
+	if (len < CountSym)
+		return false;
+
+	if (!SendMessage(this->getHWND(), SB_GETTEXT, pos, (LPARAM)buf))
+		return false;
+
+	return true;
+}
+
+void CGUIStatusBar::setAlignReSize(SXGUI_STATUSBAR_ALIGN_RESIZE alignrs)
+{
+	AlignReSizing = alignrs;
+}
+
+SXGUI_STATUSBAR_ALIGN_RESIZE CGUIStatusBar::getAlignReSize()
+{
+	return AlignReSizing;
+}
+
+void CGUIStatusBar::update()
+{
+	//RECT OldRect;
+	RECT NewRect;
+	//::GetClientRect(this->getHWND(),&this->OldRect);
+	SendMessage(this->getHWND(),WM_SIZE,0,0);
+	::GetClientRect(this->getHWND(),&NewRect);
+
+	int width = NewRect.right - OldRect.right;
+		/*if(width != 0)
+			MessageBox(0,ToPointChar(width),0,0);*/
+	int *Arr;
+	
+	WORD CountParts = getPartsCount(&Arr);
+	int *NewArr = new int[CountParts];
+
+	bool UpdateOldRect = true;
+
+	WORD tmpCountParts = (Arr[CountParts-1] == -1 ? CountParts - 1 : CountParts);
+	if (AlignReSizing == SXGUI_STATUSBAR_ALIGN_RESIZE_PERCENT)
+		{
+				for(int i=0;i<tmpCountParts;i++)
+				{
+					float coef = ArrCoef[i] / 100.0;
+					//MessageBox(0,ToPointChar(coef),0,0);
+					float part_width = Arr[i] - (i > 0 ? Arr[i-1] : 0);
+					float new_part_width = part_width + (int(width * coef));
+					//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(coef)),ToPointChar(new_part_width),0);
+					NewArr[i] = new_part_width + (i > 0 ? NewArr[i-1] : 0);
+						if(Arr[i] == NewArr[i])
+							UpdateOldRect = false;
+							//MessageBox(0,ToPointChar(ToString(Arr[i]) + "|" + ToString(NewArr[i])),0,0);
+				}
+		}
+		else if (AlignReSizing == SXGUI_STATUSBAR_ALIGN_RESIZE_EQUALLY)
+		{
+				for(int i=0;i<tmpCountParts;i++)
+					NewArr[i] = Arr[i] + (width / CountParts);
+		}
+		else
+		{
+				for(int i=0;i<tmpCountParts;i++)
+					NewArr[i] = Arr[i];
+		}
+
+		if(Arr[CountParts-1] == -1)
+			NewArr[CountParts-1] = Arr[CountParts-1];
+
+		if(UpdateOldRect)
+			::GetClientRect(this->getHWND(),&this->OldRect);
+
+	SendMessage(this->getHWND(),SB_SETPARTS,CountParts,(LPARAM)NewArr);
+	mem_delete_a(Arr);
+	mem_delete_a(NewArr);
+}
+
+void CGUIStatusBar::updateSize()
+{
+	update();
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/statusbar.h b/source/SXGUIWinApi/statusbar.h
new file mode 100644
index 000000000..67b8b94b8
--- /dev/null
+++ b/source/SXGUIWinApi/statusbar.h
@@ -0,0 +1,48 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_STATUS_BAR_H
+#define __SXGUI_STATUS_BAR_H
+
+#include "base.h"
+
+class CGUIStatusBar : public CGUIComponent, public virtual ISXGUIStatusBar
+{
+public:
+	CGUIStatusBar();
+	CGUIStatusBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUIStatusBar(const char* caption, HWND parent, WNDPROC handler, ID idObj);
+	
+	~CGUIStatusBar();
+
+	void Release(){ mem_del(this); }
+
+
+	bool setPartsCount(int count, int *arr);
+	int getPartsCount(int **arr);
+	bool setPartText(int pos, const char* text);
+	bool getPartText(int pos, char* buf, int len);
+
+	void update();
+	void updateSize();
+
+	void setAlignReSize(SXGUI_STATUSBAR_ALIGN_RESIZE alignrs);
+	SXGUI_STATUSBAR_ALIGN_RESIZE getAlignReSize();
+
+protected:
+
+	SXGUI_STATUSBAR_ALIGN_RESIZE AlignReSizing;
+
+	RECT OldRect;
+
+	void comCoef();
+
+	float*	ArrCoef;
+	int*	ArrWidth;
+	WORD	CountArr;
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxgui_base.cpp b/source/SXGUIWinApi/sxgui_base.cpp
deleted file mode 100644
index 814335f56..000000000
--- a/source/SXGUIWinApi/sxgui_base.cpp
+++ /dev/null
@@ -1,1221 +0,0 @@
-
-#pragma once
-#include <SXGUIWinApi\SXGUI_base.h>
-
-
-SXGUIControl::SXGUIControl()
-{
-	WindowHandle = 0;
-	ParentHandle = 0;
-}
-
-SXGUIControl::~SXGUIControl()
-{
-	::DestroyWindow(this->WindowHandle);
-}
-
-SXGUIControl::SXGUIControl(HWND window_handle,HWND parent_handle,WNDPROC handler)
-{
-	WindowHandle = window_handle;
-	ParentHandle = parent_handle;
-		if(handler != 0)
-			OldProc = (WNDPROC)SetWindowLong(WindowHandle, GWL_WNDPROC, (LONG)handler);
-}
-
-void SXGUIControl::Init(HWND window_handle, HWND parent_handle, WNDPROC handler)
-{
-	WindowHandle = window_handle;
-	ParentHandle = parent_handle;
-
-		if(handler != 0)
-		{	
-			if ((WNDPROC)GetWindowLong(WindowHandle, GWL_WNDPROC) != handler)
-			{
-				DWORD ptrf = SetWindowLong(WindowHandle, GWL_WNDPROC, (LONG)handler);
-				OldProc = (WNDPROC)ptrf;
-			}
-		}
-	
-}
-
-HWND SXGUIControl::Parent()
-{
-	return ParentHandle;
-}
-
-bool SXGUIControl::Parent(HWND parent_handle)
-{
-	HWND OldParent = GetParent(this->WindowHandle);
-	HWND tmp_parent = SetParent(this->WindowHandle,parent_handle);
-		if(tmp_parent = OldParent)
-		{
-			ParentHandle = parent_handle;
-			return true;
-		}
-	return false;
-}
-
-HWND SXGUIControl::GetHWND()
-{
-	return WindowHandle;
-}
-
-void SXGUIControl::SetFocus()
-{
-	::SetFocus(WindowHandle);
-}
-
-bool SXGUIControl::Focus()
-{
-	return GetFocus() == WindowHandle ? true : false;
-}
-
-void SXGUIControl::Visible(bool bf)
-{
-	ShowWindow(WindowHandle,bf ? SW_SHOW : SW_HIDE);
-}
-
-bool SXGUIControl::Visible()
-{
-	return IsWindowVisible(WindowHandle);
-}
-
-void * SXGUIControl::GetUserPtr()
-{
-	return(UserPtr);
-}
-void * SXGUIControl::SetUserPtr(void * ptr)
-{
-	void * oldPtr = UserPtr;
-	UserPtr = ptr;
-	return(oldPtr);
-}
-
-///////////////////
-
-SXGUIComponent::SXGUIComponent()
-{
-	Hint = 0;
-	CountKeyArrHandler = 0;
-	GAlign = SXRectBool();
-	ParentRect.top = ParentRect.bottom = ParentRect.left = ParentRect.right = 0;
-	TransparenTextBf = true;
-
-	BFSizingChangeTop = true;
-	BFSizingChangeBottom = true;
-	BFSizingChangeRight = true;
-	BFSizingChangeLeft = true;
-
-	MinSizeX = MinSizeY = 0;
-	//this->Font = 0;
-}
-
-SXGUIComponent::~SXGUIComponent()
-{
-	mem_delete(this->Hint);
-	//delete this->Font;
-	//this->Font = 0;
-}
-
-void SXGUIComponent::InitComponent()
-{
-	COLORREF color_bk = GetBkColor(GetDC(this->WindowHandle));
-	COLORREF color_text = GetTextColor(GetDC(this->WindowHandle));
-	COLORREF color_brush = GetDCBrushColor(GetDC(this->WindowHandle));
-
-	ColorText = color_text;
-	ColorTextBk = color_bk;
-	ColorBrush = color_brush;
-
-	HBrush = CreateSolidBrush(ColorBrush);
-
-	GetWindowRect(this->Parent(),&ParentRect);
-
-	GetWindowRect(this->WindowHandle, &WinScreenRect);
-	MapWindowPoints(this->Parent(), HWND_DESKTOP, (LPPOINT)&WinScreenRect, 2);
-
-	RECT rc;
-	GetWindowRect(this->WindowHandle, &rc);
-
-	OffsetParentRect.top = OffsetParentRect.bottom = OffsetParentRect.left = OffsetParentRect.right = 0;
-
-	//MinSizeX = rc.right - rc.left;
-	//MinSizeY = rc.bottom - rc.top;
-
-	//HFONT HandleFont;
-	//SystemParametersInfo(SPI_GETICONTITLELOGFONT, 0, &HandleFont, 0);
-
-	HFONT HandleFont = (HFONT) GetStockObject(DEFAULT_GUI_FONT);
-	SendMessage(
-		this->WindowHandle, 
-		WM_SETFONT, 
-		WPARAM(HandleFont),
-		0);
-	DeleteObject(HandleFont);
-	//this->Font = new SXFont();
-	//this->SetFont(this->Font);
-}
-
-bool SXGUIComponent::Enable()
-{
-	return ((IsWindowEnabled(this->GetHWND()) == 0) ? false : true);
-}
-
-void SXGUIComponent::Enable(bool bf)
-{
-	EnableWindow(this->GetHWND(), (bf ? 1 : 0));
-}
-
-bool SXGUIComponent::SetWinRect(RECT* rect,bool alignment_screen_space)
-{
-	RECT wrect;
-	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
-	UINT width_screen = wrect.right;
-	UINT heigth_screen = wrect.bottom;
-
-	//MessageBox(0,ToPointChar(ToString(width_screen) + "|" + ToString(heigth_screen)),0,0);
-
-	WORD x = rect->left;
-	WORD y = rect->top;
-	WORD width = rect->right - rect->left;
-	WORD heigth = rect->bottom - rect->top;
-	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
-		if(alignment_screen_space)
-		{
-			x = x < width_screen ? x : width_screen;
-			y = y < heigth_screen ? y : heigth_screen;
-			//MessageBox(0,ToPointChar(ToString(rect->right) + "|" + ToString(rect->bottom)),"wh",0);
-			width = rect->right <= width_screen ? width : width_screen - x;
-			heigth = rect->bottom <= heigth_screen ? heigth : heigth_screen - y;
-
-				/*if(x < 0)
-					x = 0;
-				if(y < 0)
-					y = 0;*/
-		}
-	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
-		BOOL bf = MoveWindow(this->GetHWND(), x, y, width, heigth, true);
-	return bf == TRUE ? true : false;
-}
-
-void SXGUIComponent::GetWinRect(RECT* rect)
-{
-	GetWindowRect(this->GetHWND(), rect);
-}
-
-bool SXGUIComponent::SetClientRect(RECT* rect,bool alignment_screen_space)
-{
-	RECT wrect;
-	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
-	long width_screen = wrect.right;
-	long heigth_screen = wrect.bottom;
-
-	//MessageBox(0,ToPointChar(ToString(width_screen) + "|" + ToString(heigth_screen)),0,0);
-
-	long x = rect->left;
-	long y = rect->top;
-	long width = rect->right - rect->left;
-	long heigth = rect->bottom - rect->top;
-	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
-		if(alignment_screen_space)
-		{
-			x = x < width_screen ? x : width_screen;
-			y = y < heigth_screen ? y : heigth_screen;
-			//MessageBox(0,ToPointChar(ToString(rect->right) + "|" + ToString(rect->bottom)),"wh",0);
-			width = rect->right <= width_screen ? width : width_screen - x;
-			heigth = rect->bottom <= heigth_screen ? heigth : heigth_screen - y;
-		}
-	//MessageBox(0,ToPointChar(ToString(width) + "|" + ToString(heigth)),"wh",0);
-		BOOL bf = MoveWindow(this->GetHWND(), x, y, width, heigth, TRUE);
-	/*RECT* qwerr = GetClientRect();
-		if(x != qwerr->left || y != qwerr->top || width != qwerr->right - qwerr->left || heigth != qwerr->bottom - qwerr->top)
-			MessageBox(0,0,0,0);*/
-	return bf == TRUE ? true : false;
-}
-
-void SXGUIComponent::GetClientRect(RECT* rect)
-{
-	GetWindowRect(this->GetHWND(), rect);
-	MapWindowPoints(NULL, this->Parent(), (LPPOINT)rect, 2);
-}
-
-void SXGUIComponent::SetFont(const char* name,int height,int width,int weight,int italic,int underline,int strike_out)
-{
-	HFONT hfont = this->GetFont();
-	LOGFONT LogFont;
-	ZeroMemory(&LogFont,sizeof(&LogFont));
-	GetObject(hfont, sizeof(LOGFONT), &LogFont);
-		if(name != 0)
-			strcpy(LogFont.lfFaceName, name);
-
-		if(height != -1)
-			LogFont.lfHeight = height;
-
-		if(width != -1)
-			LogFont.lfWidth = width;
-
-		if(weight != -1)
-			LogFont.lfWeight = weight;
-
-		if(italic != -1)
-			LogFont.lfItalic = italic;
-
-		if(underline != -1)
-			LogFont.lfUnderline = underline;
-
-		if(strike_out != -1)
-			LogFont.lfStrikeOut = strike_out;
-	DeleteObject(hfont);
-	hfont = ::CreateFontIndirect(&LogFont);
-	SendMessage(this->GetHWND(), WM_SETFONT, WPARAM(hfont), 1);
-}
-
-void SXGUIComponent::SetFont(HFONT hfont)
-{
-	SendMessage(this->GetHWND(), WM_SETFONT, WPARAM(hfont), 1);
-}
-/*
-void SXGUIComponent::GetFont(SXFont* font)
-{
-		if(font)
-		{
-			this->Font->SetHandleFont((HFONT)SendMessage(this->WindowHandle, WM_GETFONT, 0, 0));
-			memcpy(font,this->Font,sizeof(SXFont));
-		}
-	//return (HFONT)SendMessage(this->WindowHandle, WM_GETFONT, 0, 0);
-}*/
-
-HFONT SXGUIComponent::GetFont()
-{
-	return (HFONT)SendMessage(this->WindowHandle, WM_GETFONT, 0, 0);
-}
-
-//����� �� ����� ����������� ��� ������ ������� ����� ������
-//����� ������� ������ �� ��������� � ��� ... � ���
-/*void SXGUIComponent::SetFont(SXFont* font)
-{
-		if(font)
-		{
-			memcpy(this->Font,font,sizeof(SXFont));
-			//this->Font->SetHandleFont(font->GetHandleFont());
-			SendMessage(this->WindowHandle,WM_SETFONT,WPARAM(font->GetHandleFont()),0);
-		}
-}*/
-
-HFONT SXGUIComponent::ParentFont()
-{
-	return (HFONT)SendMessage(this->Parent(), WM_GETFONT, 0, 0);
-}
-
-bool SXGUIComponent::IsParentFont()
-{
-	HFONT ChildHFont = this->GetFont();
-	HFONT ParentHFont = this->ParentFont();
-	LOGFONT ChildLF,ParentLF;
-	ZeroMemory(&ChildLF,sizeof(&ChildLF));
-	GetObject(ChildHFont, sizeof(LOGFONT), &ChildLF);
-	ZeroMemory(&ParentLF,sizeof(&ParentLF));
-	GetObject(ParentHFont, sizeof(LOGFONT), &ParentLF);
-		if(ChildLF.lfCharSet != ParentLF.lfCharSet)
-			return false;
-		if(ChildLF.lfClipPrecision != ParentLF.lfClipPrecision)
-			return false;
-		if(ChildLF.lfEscapement != ParentLF.lfEscapement)
-			return false;
-		if(ChildLF.lfHeight != ParentLF.lfHeight)
-			return false;
-		if(ChildLF.lfItalic != ParentLF.lfItalic)
-			return false;
-		if(ChildLF.lfOrientation != ParentLF.lfOrientation)
-			return false;
-		if(ChildLF.lfOutPrecision != ParentLF.lfOutPrecision)
-			return false;
-		if(ChildLF.lfPitchAndFamily != ParentLF.lfPitchAndFamily)
-			return false;
-		if(ChildLF.lfQuality != ParentLF.lfQuality)
-			return false;
-		if(ChildLF.lfStrikeOut != ParentLF.lfStrikeOut)
-			return false;
-		if(ChildLF.lfUnderline != ParentLF.lfUnderline)
-			return false;
-		if(ChildLF.lfWeight != ParentLF.lfWeight)
-			return false;
-		if(ChildLF.lfWidth != ParentLF.lfWidth)
-			return false;
-		if(strcmp(ChildLF.lfFaceName,ParentLF.lfFaceName) != 0)
-			return false;
-	return true;
-}
-
-
-bool SXGUIComponent::ModifyStyle(long style_add,long style_del)
-{
-
-		if(style_add)
-		{
-			if (!SetWindowLong(this->GetHWND(), GWL_STYLE, GetWindowLong(this->GetHWND(), GWL_STYLE) | style_add))
-					return false;
-		}
-
-		if(style_del)
-		{
-			if (!SetWindowLong(this->GetHWND(), GWL_STYLE, GetWindowLong(this->GetHWND(), GWL_STYLE)&~style_del))
-					return false;
-		}
-	return true;
-}
-
-bool SXGUIComponent::ModifyExStyle(long style_add,long style_del)
-{
-
-		if(style_add)
-		{
-			if (!SetWindowLong(this->GetHWND(), GWL_EXSTYLE, GetWindowLong(this->GetHWND(), GWL_EXSTYLE) | style_add))
-					return false;
-		}
-
-		if(style_del)
-		{
-			if (!SetWindowLong(this->GetHWND(), GWL_EXSTYLE, GetWindowLong(this->GetHWND(), GWL_EXSTYLE)&~style_del))
-					return false;
-		}
-	return true;
-}
-
-void SXGUIComponent::ShowHint(bool bf)
-{
-		if(Hint != 0)
-			Hint->Visible(bf);
-		else
-		{
-			Hint = new SXGUIHint(this->GetHWND());
-			Hint->Visible(bf);
-		}
-}
-
-bool SXGUIComponent::ShowHint()
-{
-		if(Hint != 0)
-			return Hint->Visible();
-	return false;
-}
-
-void SXGUIComponent::SetHintText(const char* text)
-{
-		if(Hint == 0)
-			Hint = new SXGUIHint(this->GetHWND());
-	Hint->SetText(text);
-}
-
-const char* SXGUIComponent::GetHintText()
-{
-		if(Hint != 0)
-			return Hint->GetText();
-	return 0;
-}
-
-void SXGUIComponent::GetHintText(char* buf)
-{
-		if(Hint != 0)
-			Hint->GetText(buf);
-		else
-			buf[0] = 0;
-}
-
-void SXGUIComponent::UpdateSize()
-{
-	char classname[256];
-	GetClassName(this->GetHWND(), classname, 256);
-	if (strcmp(classname, WC_LISTVIEW) == 0)
-		int qwerty = 0;
-	RECT rect;
-	RECT win_screen_rect;
-	BOOL bf = GetWindowRect(this->GetHWND(), &rect);
-
-	GetWindowRect(this->GetHWND(), &win_screen_rect);
-	//MapWindowPoints(this->ParentHandle, HWND_DESKTOP, (LPPOINT)&win_screen_rect, 2);
-
-	RECT NewParentRect;
-	GetWindowRect(this->Parent(),&NewParentRect);
-
-		//if(NewParentRect.top != ParentRect.top)
-	//MessageBox(0,ToPointChar(NewParentRect.top),ToPointChar(ParentRect.top),0);
-
-	//���������� ��������� � ������������ ��������
-	//MapWindowPoints(NULL, this->ParentHandle, (LPPOINT)&rect, 2);
-
-	if (abs(OffsetParentRect.left) > 30000 || abs(OffsetParentRect.right) > 30000 || abs(OffsetParentRect.top) > 30000 || abs(OffsetParentRect.bottom) > 30000)
-		return;
-
-	//�������� �� ���� ������������
-	RECT offset;
-	offset.left = OffsetParentRect.left ? OffsetParentRect.left : NewParentRect.left - ParentRect.left;
-	offset.right = OffsetParentRect.right ? OffsetParentRect.right : NewParentRect.right - ParentRect.right;
-	offset.top = OffsetParentRect.top ? OffsetParentRect.top : NewParentRect.top - ParentRect.top;
-	offset.bottom = OffsetParentRect.bottom ? OffsetParentRect.bottom : NewParentRect.bottom - ParentRect.bottom;
-
-	//MessageBox(0,ToPointChar(offset.top),ToPointChar(ParentRect.top),0);
-
-
-		if(GAlign.left) //rect.left
-		{
-				if(GAlign.right)
-					rect.right -= offset.left;
-				/*else
-					rect.right += offset.left;*/
-		}
-		else
-		{
-			rect.left = rect.left - offset.left;
-			rect.right -= offset.left;
-		}
-
-		if(GAlign.top) //rect.top
-		{
-			//MessageBox(0,ToPointChar(offset.top),ToPointChar(rect.top),0);
-			//rect.top = rect.top + offset.top;
-				if(GAlign.bottom)
-					rect.bottom -= offset.top;
-		}
-		else
-		{
-			rect.top = rect.top - offset.top;
-			rect.bottom -= offset.top;
-		}
-
-		if(GAlign.right) //rect.right
-		{
-			rect.right = rect.right + offset.right;
-				if(!GAlign.left) //rect.left
-					rect.left += offset.right;
-		}
-
-		if(GAlign.bottom) //rect.bottom
-		{
-			
-			rect.bottom = rect.bottom + offset.bottom;
-				if(!GAlign.top) //rect.top
-					rect.top += offset.bottom;
-		}
-
-	MapWindowPoints(NULL, this->Parent(), (LPPOINT)&rect, 2);
-
-	
-	//MapWindowPoints(this->ParentHandle, HWND_DESKTOP, (LPPOINT)&WinScreenRect, 2);
-	//MessageBox(0,ToPointChar(rect.bottom - rect.top),ToPointChar(rect.bottom - rect.top),0);
-	
-	bf = MoveWindow(this->GetHWND(), rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, true);
-	//SetWinRect(&rect,true);
-	GetWindowRect(this->Parent(),&this->ParentRect);
-	GetWindowRect(this->GetHWND(), &WinScreenRect);
-
-	OffsetParentRect.top = OffsetParentRect.bottom = OffsetParentRect.left = OffsetParentRect.right = 0;
-
-	DWORD err = GetLastError();
-	int qweerty = 0;
-}
-
-void SXGUIComponent::UpdateRect()
-{
-	//MessageBox(0,"UpdateRect","UpdateRect",0);
-	RECT tmprect;
-	GetWindowRect(this->Parent(),&tmprect);
-	OffsetParentRect.top = tmprect.top - ParentRect.top;
-	OffsetParentRect.left = tmprect.left - ParentRect.left;
-	OffsetParentRect.bottom = tmprect.bottom - ParentRect.bottom;
-	OffsetParentRect.right = tmprect.right - ParentRect.right;
-	//MessageBox(0,ToPointChar(tmprect.top - ParentRect.top),ToPointChar(0),0);
-	GetWindowRect(this->Parent(),&ParentRect);
-	//GetWindowRect(this->WindowHandle,&WinScreenRect);
-}
-
-void SXGUIComponent::SetColorText(BYTE r,BYTE g, BYTE b)
-{
-	this->ColorText = RGB(r,g,b);
-	InvalidateRect(this->GetHWND(), 0, 1);
-}
-
-void SXGUIComponent::SetColorText(DWORD color)
-{
-	this->ColorText = color;
-	InvalidateRect(this->GetHWND(), 0, 1);
-}
-
-DWORD SXGUIComponent::GetColorText()
-{
-	return this->ColorText;
-}
-
-void SXGUIComponent::SetTransparentTextBk(bool bf)
-{
-	this->TransparenTextBf = bf;
-	InvalidateRect(this->GetHWND(), 0, 1);
-}
-
-bool SXGUIComponent::GetTransparentTextBk()
-{
-	return this->TransparenTextBf;
-}
-
-void SXGUIComponent::SetColorTextBk(BYTE r,BYTE g, BYTE b)
-{
-	this->ColorTextBk = RGB(r,g,b);
-	InvalidateRect(this->GetHWND(), 0, 1);
-}
-
-void SXGUIComponent::SetColorTextBk(DWORD color)
-{
-	this->ColorTextBk = color;
-	InvalidateRect(this->GetHWND(), 0, 1);
-}
-
-DWORD SXGUIComponent::GetColorTextBk()
-{
-	return this->ColorTextBk;
-}
-
-
-bool SXGUIComponent::SetColorBrush(BYTE r,BYTE g,BYTE b)
-{
-	ColorBrush = RGB(r,g,b);
-
-	DeleteObject(HBrush);
-	HBrush = CreateSolidBrush(ColorBrush);
-	InvalidateRect(this->GetHWND(), 0, 1);
-	return true;
-}
-
-bool SXGUIComponent::SetColorBrush(DWORD color)
-{
-	ColorBrush = color;
-
-	DeleteObject(HBrush);
-	HBrush = CreateSolidBrush(ColorBrush);
-	InvalidateRect(this->GetHWND(), 0, 1);
-	return true;
-}
-
-DWORD SXGUIComponent::GetColorBrush()
-{
-	return ColorBrush;	
-}
-
-HBRUSH SXGUIComponent::GetBrush()
-{
-	return this->HBrush;
-}
-
-bool SXGUIComponent::AddHandler(HandlerMsg Handler,UINT Msg,WPARAM wParam,bool considerWparam,LPARAM lParam,bool considerLparam,bool isMain)
-{
-		if(CountKeyArrHandler < SXGUI_COUNT_HANDLERS_MSG_IN_ARR)
-		{
-			ArrHandler[CountKeyArrHandler].Handler = Handler;
-			ArrHandler[CountKeyArrHandler].Msg = Msg;
-			ArrHandler[CountKeyArrHandler].WParam = wParam;
-			ArrHandler[CountKeyArrHandler].BFCondiderWParam = considerWparam;
-			ArrHandler[CountKeyArrHandler].LParam = lParam;
-			ArrHandler[CountKeyArrHandler].BFCondiderLParam = considerLparam;
-			ArrHandler[CountKeyArrHandler].IsMainFunction = isMain;
-			CountKeyArrHandler += 1;
-			return true;
-		}
-		else
-			return false;
-}
-
-bool SXGUIComponent::AddHandler(HandlerMsg Handler,UINT Msg)
-{
-		if(CountKeyArrHandler < SXGUI_COUNT_HANDLERS_MSG_IN_ARR)
-		{
-			ArrHandler[CountKeyArrHandler].Handler = Handler;
-			ArrHandler[CountKeyArrHandler].Msg = Msg;
-			ArrHandler[CountKeyArrHandler].WParam = 0;
-			ArrHandler[CountKeyArrHandler].BFCondiderWParam = false;
-			ArrHandler[CountKeyArrHandler].LParam = 0;
-			ArrHandler[CountKeyArrHandler].BFCondiderLParam = false;
-			ArrHandler[CountKeyArrHandler].IsMainFunction = false;
-			CountKeyArrHandler += 1;
-			return true;
-		}
-		else
-			return false;
-}
-
-int SXGUIComponent::GetCountKeyArrHandler()
-{
-	return CountKeyArrHandler;
-}
-
-LRESULT SXGUIComponent::ExecuteHandler(int key,HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-		if(key < CountKeyArrHandler)
-			return (ArrHandler[key].Handler)(hwnd, msg, wParam, lParam);
-		else
-			return 0;
-}
-
-UINT SXGUIComponent::GetMsgHandler(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].Msg;
-		else
-			return 0;
-}
-
-WPARAM SXGUIComponent::GetWParamHandler(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].WParam;
-		else
-			return 0;
-}
-
-LPARAM SXGUIComponent::GetLParamHandler(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].LParam;
-		else
-			return 0;
-}
-
-bool SXGUIComponent::GetConsiderWParamHandler(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].BFCondiderWParam;
-		else
-			return false;
-}
-
-bool SXGUIComponent::GetConsiderLParamHandler(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].BFCondiderLParam;
-		else
-			return false;
-}
-
-bool SXGUIComponent::IsMainFunction(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].IsMainFunction;
-		else
-			return false;
-}
-
-HandlerMsg SXGUIComponent::GetHandlerFunction(int key)
-{
-		if(key < CountKeyArrHandler)
-			return ArrHandler[key].Handler;
-		else
-			return false;
-}
-
-///////////////////////////////////
-
-SXGUITextual::SXGUITextual()
-{
-
-}
-
-SXGUITextual::~SXGUITextual()
-{
-
-}
-
-bool SXGUITextual::SetText(const char* text)
-{
-	return SXGUIFuctinon::SetText(this,text);
-}
-
-/*const char* SXGUITextual::GetText()
-{
-	return SXGUIFuctinon::GetTextOut(this);
-}*/
-
-void SXGUITextual::GetText(char* buf,int size)
-{
-	SXGUIFuctinon::GetText(this,buf,size);
-}
-
-int SXGUITextual::GetTextLen()
-{
-	return SXGUIFuctinon::GetTextLen(this);
-}
-
-///////////////////////////////////
-
-BOOL IsEdit(HWND hWnd)
-{
-	if(hWnd == NULL)
-		return FALSE;
-
-	TCHAR szClassName[6];
-	return ::GetClassNameA(hWnd, szClassName, 6) &&
-		stricmp(szClassName, "Edit") == 0;
-}
-
-
-LRESULT CALLBACK WndProcAllDefault(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA);
-
-	if (Component)
-	{
-		if (msg == WM_LBUTTONDOWN || msg == WM_RBUTTONDOWN || msg == WM_MBUTTONDOWN)
-		{
-			Component->SetFocus();
-		}
-
-		if (msg == WM_KEYDOWN)
-		{
-			if (wParam == 'A' && (GetKeyState(VK_CONTROL) & 0x80))
-			{
-				// User pressed Ctrl-A.  Let's select-all
-				if (IsEdit(hwnd))
-				{
-					SendMessage(hwnd, EM_SETSEL, 0, -1);
-					return(1);
-				}
-			}
-		}
-		HandlerMsg MainFunction = 0;								//������� �������-����������, �� �������� � ����� ������������
-		HandlerMsg SecondFunction[SXGUI_COUNT_HANDLERS_MSG_IN_ARR];	//������ �������������� ������������ �� ���������, �� �������� �� ������ ������
-		int CountSecond = 0;	//���������� �������������� �������-������������
-		//�������������� ������������� ������
-		for (int i = 0; i<Component->GetCountKeyArrHandler(); i++)
-		{
-			if (Component->GetMsgHandler(i) == msg)
-			{
-				if (
-					Component->GetConsiderWParamHandler(i) && Component->GetWParamHandler(i) == wParam &&
-					Component->GetConsiderLParamHandler(i) && Component->GetLParamHandler(i) == lParam
-					)
-				{
-					if (Component->IsMainFunction(i))
-					{
-						MainFunction = Component->GetHandlerFunction(i);
-					}
-					else
-					{
-						SecondFunction[CountSecond] = Component->GetHandlerFunction(i);
-						CountSecond++;
-					}
-
-				}
-				else if (
-					!Component->GetConsiderWParamHandler(i) &&
-					Component->GetConsiderLParamHandler(i) && Component->GetLParamHandler(i) == lParam
-					)
-				{
-					if (Component->IsMainFunction(i))
-					{
-						MainFunction = Component->GetHandlerFunction(i);
-					}
-					else
-					{
-						SecondFunction[CountSecond] = Component->GetHandlerFunction(i);
-						CountSecond++;
-					}
-
-				}
-				else if (
-					Component->GetConsiderWParamHandler(i) && Component->GetWParamHandler(i) == wParam &&
-					!Component->GetConsiderLParamHandler(i)
-					)
-				{
-					if (Component->IsMainFunction(i))
-					{
-						MainFunction = Component->GetHandlerFunction(i);
-					}
-					else
-					{
-						SecondFunction[CountSecond] = Component->GetHandlerFunction(i);
-						CountSecond++;
-					}
-
-				}
-				else if (
-					!Component->GetConsiderWParamHandler(i) &&
-					!Component->GetConsiderLParamHandler(i)
-					)
-				{
-					if (Component->IsMainFunction(i))
-					{
-						MainFunction = Component->GetHandlerFunction(i);
-					}
-					else
-					{
-						SecondFunction[CountSecond] = Component->GetHandlerFunction(i);
-						CountSecond++;
-					}
-
-				}
-			}
-		}
-
-		//�������� ��� �������������� ������� �����������
-		for (int i = 0; i<CountSecond; i++)
-		{
-			SecondFunction[i](hwnd, msg, wParam, lParam);
-		}
-
-		//���� ���� ������� ������� ������� �� �������� �� � ���������� �� ��������
-		if (MainFunction)
-			return MainFunction(hwnd, msg, wParam, lParam);
-		//else
-		//return Component->OldProc(hwnd, msg, wParam, lParam);
-		//!!!� ���� ��� �� ���???
-		//else mf
-		//return CallWindowProc(Component->OldProc, hwnd, msg, wParam, lParam);
-		return CallWindowProc(Component->OldProc, hwnd, msg, wParam, lParam);;
-	}
-
-	return CallWindowProc(Component->OldProc, hwnd, msg, wParam, lParam);
-}
-
-/////////////////////////
-
-bool SXGUIFuctinon::ScroolBars(ISXGUIControl *Control,bool h,bool v)
-{
-	return ShowScrollBar(Control->GetHWND(),SB_HORZ,h ? 1 : 0) && ShowScrollBar(Control->GetHWND(),SB_VERT,v ? 1 : 0);
-}
-
-bool SXGUIFuctinon::ScrollBarV(ISXGUIControl *Control)
-{
-	long style = GetWindowLong(Control->GetHWND(),GWL_STYLE);
-		if(style & WS_VSCROLL)
-			return true;
-	return false;
-}
-
-bool SXGUIFuctinon::ScrollBarH(ISXGUIControl *Control)
-{
-	long style = GetWindowLong(Control->GetHWND(),GWL_STYLE);
-		if(style & WS_HSCROLL)
-			return true;
-	return false;
-}
-
-bool SXGUIFuctinon::ScrollLine(ISXGUIControl *Control,int scroll,int dir,int count)
-{
-	long _scroll = scroll == SXGUI_SCROLL_TYPE_VERT ? WM_VSCROLL : WM_HSCROLL;
-	long _dir = 0;
-		if(_scroll == WM_VSCROLL)
-			_dir = dir == SXGUI_SCROLL_DIR_DOWN ? SB_LINEDOWN : SB_LINEUP /*SB_BOTTOM :SB_TOP*/;
-		else
-			_dir = dir == SXGUI_SCROLL_DIR_RIGTH ? SB_LINERIGHT : SB_LINELEFT /*SB_RIGHT :SB_LEFT*/;
-
-	bool bf = true;
-		for(int i=0;i<count;i++)
-		{
-			bf = SendMessage(Control->GetHWND(),_scroll,_dir,0);
-		}
-
-	return bf;//SendMessage(Control->GetHWND(),_scroll,_dir,LPARAM(count)) == 0 ? true : false;
-}
-
-bool SXGUIFuctinon::SetText(ISXGUIControl*const Control, const char* text)
-{
-	if(!SetWindowText(Control->GetHWND(),text))
-			return false;
-		else
-			return true;
-}	
-
-void SXGUIFuctinon::GetText(ISXGUIControl *Control,char* buf,int count)
-{
-	GetWindowText(Control->GetHWND(),buf,count);
-}
-
-int SXGUIFuctinon::GetTextLen(ISXGUIControl *Control)
-{
-	return GetWindowTextLength(Control->GetHWND());
-}
-
-/////////////////////////
-
-BOOL CALLBACK SXGUIEnumChildWindow::EnumChildProcUpdateImgButton(HWND hwnd,LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA);
-	
-	if (Component)
-	{
-		char ClassName[256];
-		int error = GetClassName(hwnd, ClassName, 256);
-		if (error && strcmp(ClassName, "SXGUIBUTTONIMG") == 0 && Component)
-			SendMessage(hwnd, WM_KILLFOCUS, 0, lParam);
-	}
-		
-	return TRUE;
-}
-
-BOOL CALLBACK SXGUIEnumChildWindow::EnumChildProcUpdateSize(HWND hwnd,LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
-	if (Component)
-		Component->UpdateSize();
-
-	return TRUE;
-}
-
-BOOL CALLBACK SXGUIEnumChildWindow::EnumChildProcUpdateRect(HWND hwnd,LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
-	if (Component)
-		Component->UpdateRect();
-		
-	return TRUE;
-}
-
-BOOL CALLBACK SXGUIEnumChildWindow::EnumChildProcMouseMove(HWND hwnd,LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
-
-	if (Component)
-	{
-		POINT p;
-		GetCursorPos(&p);
-		RECT rect;
-		GetWindowRect(hwnd, &rect);
-
-		if (Component && !((p.x >= rect.left && p.x <= rect.right) && (p.y >= rect.top && p.y <= rect.bottom)))
-		{
-			SendMessage(Component->GetHWND(), WM_NCMOUSEMOVE, lParam, 0);
-		}
-	}
-
-	return TRUE;
-}
-
-////////////////////////////////
-
-int SXGUIBaseHandlers::InitHandlerMsg(ISXGUIComponent* Component)
-{
-		if(!Component->AddHandler(SXGUIBaseHandlers::CtlColorChange,WM_CTLCOLORSTATIC,0,0,0,0,true))
-			return 1;
-		if(!Component->AddHandler(SXGUIBaseHandlers::CtlColorChange,WM_CTLCOLOREDIT,0,0,0,0,true))
-			return 2;
-		if(!Component->AddHandler(SXGUIBaseHandlers::CtlColorChange,WM_CTLCOLORBTN,0,0,0,0,true))
-			return 3;
-		if(!Component->AddHandler(SXGUIBaseHandlers::CtlColorChange,WM_CTLCOLORLISTBOX,0,0,0,0,true))
-			return 4;
-	
-		if(!Component->AddHandler(SXGUIBaseHandlers::SizeChange,WM_SIZE,0,0,0,0,true))
-			return 5;
-		if(!Component->AddHandler(SXGUIBaseHandlers::SizingChange,WM_SIZING,0,0,0,0,true))
-			return 6;
-		if(!Component->AddHandler(SXGUIBaseHandlers::WinDestroy,WM_DESTROY,0,0,0,0,true))
-			return 7;
-
-		if(!Component->AddHandler(SXGUIBaseHandlers::MoveChange,WM_MOVE,0,0,0,0,true))
-			return 8;
-		if(!Component->AddHandler(SXGUIBaseHandlers::MouseMoveChange,WM_MOUSEMOVE,0,0,0,0,true))
-			return 9;
-		if(!Component->AddHandler(SXGUIBaseHandlers::MaximuzeWinChange,WM_SYSCOMMAND,SC_MAXIMIZE,true,0,0,true))
-			return 10;
-		if(!Component->AddHandler(SXGUIBaseHandlers::SetCursorChange,WM_SETCURSOR,0,0,0,0,true))
-			return 11;
-
-	return 0;
-}
-
-LRESULT SXGUIBaseHandlers::CtlColorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong((HWND)lParam, GWL_USERDATA);
-
-		if(Component)
-		{
-				if(Component->GetTransparentTextBk())
-					SetBkMode((HDC)wParam,TRANSPARENT);
-				else
-					SetBkColor((HDC)wParam, Component->GetColorTextBk());
-			SetTextColor((HDC)wParam, Component->GetColorText());
-			return (long)Component->GetBrush();
-		}
-	return((LRESULT)INVALID_HANDLE_VALUE);
-}
-
-LRESULT SXGUIBaseHandlers::SizeChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	EnumChildWindows(hwnd,(WNDENUMPROC)&SXGUIEnumChildWindow::EnumChildProcUpdateSize,lParam);
-	return TRUE;
-}
-
-LRESULT SXGUIBaseHandlers::SizingChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	ISXGUIComponent *Component = (ISXGUIComponent *)GetWindowLong(hwnd, GWL_USERDATA);
-	
-	if (!Component)
-		return TRUE;
-
-	RECT rc;
-	GetWindowRect(hwnd, &rc);
-	POINT p;
-	GetCursorPos(&p);
-
-	RECT lpRect = *((LPRECT)lParam);
-
-		if(Component)
-		{
-
-				if(!Component->BFSizingChangeTop)
-					lpRect.top = rc.top;
-
-				if(!Component->BFSizingChangeLeft)
-					lpRect.left = rc.left;
-
-				if(!Component->BFSizingChangeRight)
-					lpRect.right = rc.right;
-
-				if(!Component->BFSizingChangeBottom)
-					lpRect.bottom = rc.bottom;
-
-				if (Component->MinSizeX != 0 && Component->MinSizeY != 0)
-				{
-						if(lpRect.right - lpRect.left < Component->MinSizeX && Component->BFSizingChangeRight)
-						{
-							lpRect.right += Component->MinSizeX - (lpRect.right - lpRect.left);
-						}
-
-						if(lpRect.bottom - lpRect.top < Component->MinSizeY && Component->BFSizingChangeBottom)
-						{
-							lpRect.bottom += Component->MinSizeY - (lpRect.bottom - lpRect.top);
-						}
-				}
-		}
-
-	*((LPRECT)lParam) = lpRect;
-
-	return TRUE;
-}
-
-LRESULT SXGUIBaseHandlers::MoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	EnumChildWindows(hwnd,(WNDENUMPROC)&SXGUIEnumChildWindow::EnumChildProcUpdateRect,lParam);
-	return TRUE;
-}
-
-LRESULT SXGUIBaseHandlers::MouseMoveChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	EnumChildWindows(hwnd,(WNDENUMPROC)&SXGUIEnumChildWindow::EnumChildProcMouseMove,lParam);
-	return ::DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-LRESULT SXGUIBaseHandlers::SetCursorChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	EnumChildWindows(hwnd,(WNDENUMPROC)&SXGUIEnumChildWindow::EnumChildProcMouseMove,lParam);
-	return ::DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-LRESULT SXGUIBaseHandlers::MaximuzeWinChange(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	EnumChildWindows(hwnd,(WNDENUMPROC)&SXGUIEnumChildWindow::EnumChildProcUpdateSize,lParam);
-	return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-LRESULT SXGUIBaseHandlers::WinDestroy(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
-	PostQuitMessage(0);
-	return ::DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-////////////////////////////////
-
-bool SXGUIRegClass::RegButtonImg()
-{
-	WNDCLASS wc;
-
-	wc.style         = CS_HREDRAW | CS_VREDRAW;
-	wc.lpfnWndProc   = DefWindowProc; 
-	wc.cbClsExtra    = 0;
-	wc.cbWndExtra    = 0;
-	wc.hInstance     = GetModuleHandle(0);
-	wc.hIcon         = 0;
-	wc.hCursor       = 0;
-	wc.hbrBackground = 0;
-	wc.lpszMenuName  = 0;
-	wc.lpszClassName = "SXGUIBUTTONIMG";
-
-		if(!RegisterClass(&wc)) 
-			return false;
-	return true;
-}
-
-bool SXGUIRegClass::RegGroupBox()
-{
-	WNDCLASS wc;
-
-	wc.style = CS_HREDRAW | CS_VREDRAW;
-	wc.lpfnWndProc = DefWindowProc;
-	wc.cbClsExtra = 0;
-	wc.cbWndExtra = 0;
-	wc.hInstance = GetModuleHandle(0);
-	wc.hIcon = 0;
-	wc.hCursor = 0;
-	wc.hbrBackground = 0;
-	wc.lpszMenuName = 0;
-	wc.lpszClassName = "SXGUIGROUPBOX";
-
-	if (!RegisterClass(&wc))
-		return false;
-	return true;
-}
-
-void SXGUIDialogs::SelectFile(int type, char* path, char* name, const char* stdpath, const char* filter)
-{
-	OPENFILENAME ofn;
-
-	char tpath[1024];
-	char tname[256];
-	
-	if (!path && !name)
-		return;
-
-	if (path)
-		tpath[0] = tpath[1] = 0;
-
-	if (name)
-		tname[0] = tname[1] = 0;
-
-	ZeroMemory(&ofn, sizeof(OPENFILENAME));
-	ofn.lStructSize = sizeof(OPENFILENAME);
-	ofn.hInstance = GetModuleHandle(0);
-	ofn.hwndOwner = 0;
-	ofn.lpstrFilter = filter;
-	ofn.lpstrFile = tpath;
-	ofn.nMaxFile = sizeof(tpath);
-	ofn.lpstrInitialDir = stdpath;
-
-	if (name)
-	{
-		ofn.lpstrFileTitle = tname;
-		ofn.nMaxFileTitle = sizeof(tname);
-	}
-
-	ofn.Flags = 0;
-
-	//if (path)
-	ofn.Flags |= OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
-
-	/*if (name)
-		ofn.Flags |= OFN_FILEMUSTEXIST;*/
-
-	char bf[256];
-	GetCurrentDirectory(256, bf);
-	BOOL Result = FALSE;
-	if (type == SXGUI_DIALOG_FILE_OPEN)
-		Result = GetOpenFileName(&ofn);
-	else if (type == SXGUI_DIALOG_FILE_SAVE)
-		Result = GetSaveFileName(&ofn);
-
-	SetCurrentDirectory(bf);
-
-	if (Result)
-	{
-		if (path)
-			strcpy(path, tpath);
-
-		if (name)
-			strcpy(name, tname);
-	}
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxgui_base.h b/source/SXGUIWinApi/sxgui_base.h
deleted file mode 100644
index bc7cbf68d..000000000
--- a/source/SXGUIWinApi/sxgui_base.h
+++ /dev/null
@@ -1,180 +0,0 @@
-
-/******************************************************
-Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
-See the license in LICENSE
-******************************************************/
-
-#ifndef SXGUI_BASE_H
-#define SXGUI_BASE_H
-
-class SXGUIButtonImg;
-
-#include "SXGUI_hint.h"
-#include "SXGUI.h"
-
-//первый базовый класс, единственным родителем не используется
-//определяет объект как контрол, то есть содержит в себе минимум данных для 
-//управления объектом
-class SXGUIControl : public virtual ISXGUIControl
-{
-public:
-	SXGUIControl();
-	SXGUIControl(HWND window_handle,HWND parent_handle,WNDPROC handler);
-	~SXGUIControl();
-	void Release(){ mem_del(this); }
-	void Init(HWND window_handle, HWND parent_handle, WNDPROC handler);	//запоминаем дескрипторы, и устанавливаем новый обработчик
-
-	HWND Parent();						//возвращает HWND родителя
-	bool Parent(HWND parent_handle);	//устанавливает родителя
-
-	HWND GetHWND();
-
-	void Visible(bool bf);				//установка видимости контрола
-	bool Visible();						//видим ли контрол?
-
-	void SetFocus();					//установить фокус на контрол
-	bool Focus();						//установлен ли фокус на контроле?
-
-	void * GetUserPtr();
-	void * SetUserPtr(void *);
-
-private:
-	void * UserPtr;
-
-protected:
-	HWND ParentHandle;
-	HWND WindowHandle;
-};
-
-//второй в очереди родитель, часто наследование идет именно от него
-//более расширенное управление большинством элементов
-class SXGUIComponent : public SXGUIControl, public virtual ISXGUIComponent
-{
-public:
-	SXGUIComponent();
-	~SXGUIComponent();
-	void Release(){ mem_del(this); }
-	//устанавливает необходимые данные для управления элементом
-	void InitComponent(); //необходимо вызывать после инициализации
-
-	//действителен ли элемент
-	bool Enable();
-	void Enable(bool bf);
-
-	//работа со шрифтом
-	//если name == 0 то не изменияем название шрифта,
-	//если name[0] == 0 то дефолтный шрифт gui
-	//если остальные значения в -1 то не учитываются
-	void SetFont(const char* name, int height, int width, int weight, int italic, int underline, int strike_out);
-	void SetFont(HFONT hfont);
-	HFONT GetFont();
-	
-	bool IsParentFont();	//наследуется ли шрифт родителя
-	HFONT ParentFont();		//получает родительский шрифт
-
-	//работа со стилями (в т.ч. специальным)
-	//style_add - добавляемые стили
-	//style_del - удаляемые
-	bool ModifyStyle(long style_add, long style_del);
-	bool ModifyExStyle(long style_add, long style_del);
-
-	//устанавливает/возвращает область окна RECT элемента в глобальных координатах
-	bool	SetWinRect(RECT* rect, bool alignment_screen_space);	//alignment_screen_space - использовать ли только работчую область (рабочий стол кроме панели задач)
-	RECT*	GetWinRect();
-	void	GetWinRect(RECT* rect);
-
-	//устанавливает/возвращает клиентскую область RECT элемента в глобальных координатах
-	bool	SetClientRect(RECT* rect, bool alignment_screen_space);	//alignment_screen_space - использовать ли только работчую область (рабочий стол кроме панели задач)
-	void	GetClientRect(RECT* rect);
-
-	//!!!первоначально нужно единожды включить видимость подсказки, ибо в этот момент она инициализируется
-	//видимость подсказки
-	void ShowHint(bool bf);
-	bool ShowHint();
-
-	//работа с текстом подсказки для элемента
-	void SetHintText(const char* text);
-	const char* GetHintText();
-	void GetHintText(char* buf);
-
-	//функции для цветов
-	//set/get цвет текста
-	void SetColorText(BYTE r, BYTE g, BYTE b);
-	void SetColorText(DWORD color);
-	DWORD GetColorText();
-
-	//set/get прозрачность заднего фона текста
-	void SetTransparentTextBk(bool bf);
-	bool GetTransparentTextBk();
-
-	//set/get цвет заднего фона
-	void SetColorTextBk(BYTE r, BYTE g, BYTE b);
-	void SetColorTextBk(DWORD color);
-	DWORD GetColorTextBk();
-	
-	//set/get цвет заднего фона элемента
-	bool SetColorBrush(BYTE r, BYTE g, BYTE b);
-	bool SetColorBrush(DWORD color);
-	DWORD GetColorBrush();
-	HBRUSH GetBrush();
-
-	//все что касается обработчиков функций
-	///////////////////////////////////////
-
-	//добавление обработчика
-	bool AddHandler(HandlerMsg Handler, UINT Msg, WPARAM wParam, bool considerWparam, LPARAM lParam, bool considerLparam, bool isMain);
-	bool AddHandler(HandlerMsg Handler, UINT Msg);	//все что необъявлено из функции выше не учитывается
-
-	//key - ключ в массиве обработчиков
-	HandlerMsg GetHandlerFunction(int key);	//возвращает функцию обработчик 
-	int GetCountKeyArrHandler();			//количество ключей в массиве обработчиков
-
-	//все что касается данных сообщения
-	UINT GetMsgHandler(int key);
-	WPARAM GetWParamHandler(int key);
-	bool GetConsiderWParamHandler(int key);	//учитывать WParam?
-	LPARAM GetLParamHandler(int key);
-	bool GetConsiderLParamHandler(int key);	//учитывать LParam?
-
-	bool IsMainFunction(int key);	//это главная функция?
-	LRESULT ExecuteHandler(int key, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);	//выполняет функцию обработчик, в аргументы отправляет свои аргументы
-	///////////////////////////////////////
-
-	void UpdateSize();
-	void UpdateRect();
-
-
-protected:
-
-	//данные необходимые для UpdateSize
-	RECT ParentRect;		//!< координаты родителя
-	RECT OffsetParentRect;	//!< на сколько был изменен родитель
-	RECT WinScreenRect;		//!< координаты текущего окна относительно рабочего стола
-
-	ISXGUIHint *Hint;
-	SXHandlerMsgStruct ArrHandler[SXGUI_COUNT_HANDLERS_MSG_IN_ARR];
-	int CountKeyArrHandler;
-
-	DWORD ColorBrush;	//цвет заливки формы
-	HBRUSH HBrush;
-
-	DWORD ColorText;	//цвет текста
-	bool TransparenTextBf;	//используется прозрачность? если true то заднего фона у текста не будет
-	DWORD ColorTextBk;	//цвет заднего фона у текста
-};
-
-//третий (если нужен текст) родитель, непосредтсвенно не используется
-//характеризует элемент как содержащий единый текст (аля кэпшен) текстовый компонент
-class SXGUITextual : public SXGUIComponent, public virtual ISXGUITextual
-{
-public:
-	SXGUITextual();
-	~SXGUITextual();
-	void Release(){ mem_del(this); }
-	bool	SetText(const char* text);
-	void	GetText(char* buf, int size);
-	int		GetTextLen();
-};
-
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxgui_button.h b/source/SXGUIWinApi/sxgui_button.h
deleted file mode 100644
index f361c8ec5..000000000
--- a/source/SXGUIWinApi/sxgui_button.h
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef SXGUI_BUTTON_H
-#define SXGUI_BUTTON_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIButton : public SXGUITextual, public virtual ISXGUIButton
-{
-public:
-	SXGUIButton();
-	SXGUIButton(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIButton(const char* caption, WORD x, WORD y, WORD width, WORD heigth, int image, HWND parent, WNDPROC handler, DWORD id);
-
-	bool SetIconInFile(const char* path);
-	bool SetBmpInFile(const char* path);
-
-	bool SetIconInResourse(WORD id);
-	bool SetBmpInResourse(WORD id);
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxgui_edit.h b/source/SXGUIWinApi/sxgui_edit.h
deleted file mode 100644
index b3b5eade0..000000000
--- a/source/SXGUIWinApi/sxgui_edit.h
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef SXGUI_EDIT_H
-#define SXGUI_EDIT_H
-
-#include <SXGUIWinApi\SXGUI_base.h>
-
-#pragma once
-
-class SXGUIEdit : public SXGUITextual, public virtual ISXGUIEdit
-{
-public:
-	SXGUIEdit();
-	~SXGUIEdit();
-	SXGUIEdit(const char* caption,WORD x,WORD y,WORD width,WORD heigth,DWORD exstyle,DWORD style,HWND parent,WNDPROC handler,DWORD id);
-	SXGUIEdit(const char* caption,WORD x,WORD y,WORD width,WORD heigth,HWND parent,WNDPROC handler,DWORD id);
-
-	bool ReadOnly();		//����������� �� �������� "������ ��� ������"
-	bool ReadOnly(bool bf);	//������������ ��������� "������ ��� ������", ���������� ��������� ��������
-
-	//��������� ������� ����� ���������� �� *
-	bool Password();		//����������� �� ������� ������� ������
-	bool Password(bool bf);	//������������ ��������� ������� ������
-
-	int Align();				//���������� ���� ������������ ������
-	bool Align(int align);	//������������� ������������
-};
-
-#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxgui_menu.cpp b/source/SXGUIWinApi/sxgui_menu.cpp
deleted file mode 100644
index a9388018e..000000000
--- a/source/SXGUIWinApi/sxgui_menu.cpp
+++ /dev/null
@@ -1,369 +0,0 @@
-
-#include <SXGUIWinApi\SXGUI_menu.h>
-
-#pragma once
-
-SXGUIMenu::SXGUIMenu()
-{
-	MENUINFO mi;
-	MenuHandle = CreateMenu();
-	mi.cbSize = sizeof(MENUINFO);
-	mi.fMask = MIM_STYLE;
-	mi.dwStyle = MNS_NOTIFYBYPOS;
-	SetMenuInfo(MenuHandle, &mi);
-}
-
-SXGUIMenu::SXGUIMenu(WORD menu)
-{
-	MenuHandle = LoadMenu(GetModuleHandle(0),MAKEINTRESOURCE(menu));
-}
-
-SXGUIMenu::~SXGUIMenu()
-{
-	DestroyMenu(this->MenuHandle);
-}
-
-bool SXGUIMenu::InsertItem(int index,const char* text,WORD id,WORD id_sub_menu)
-{
-	char str[256];
-	sprintf(str,"%s",text);
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STRING|MIIM_ID;
-	mi.dwTypeData = str;
-	mi.wID=id;
-
-	HMENU SubMenu = this->GetSubMenu(id_sub_menu);
-	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu ? SubMenu : MenuHandle,index,TRUE,&mi);
-	//DrawMenuBar(ParentHandle);
-	return bf ? true : false;
-}
-
-bool SXGUIMenu::InsertPopupItem(int index,const char* text,WORD id,WORD id_sub_menu)
-{
-	char str[256];
-	sprintf(str,"%s",text);
-	MENUINFO mi;
-	MENUITEMINFO mii;
-	HMENU SubMenu = CreatePopupMenu();
-	mi.cbSize = sizeof(MENUINFO);
-	mi.fMask = MIM_STYLE;
-	mi.dwStyle = MNS_NOTIFYBYPOS;
-	SetMenuInfo(SubMenu, &mi);
- 
-	mii.cbSize = sizeof(MENUITEMINFO);
-	mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_FTYPE | MIIM_ID; 
-	mii.fType = MFT_STRING;
-	mii.dwTypeData = str;
-	mii.wID = id;
-	mii.hSubMenu = SubMenu;
-
-	HMENU SubMenu2 = this->GetSubMenu(id_sub_menu);
-	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu2 ? SubMenu2 : MenuHandle, index, TRUE, &mii);
-	//DrawMenuBar(ParentHandle);
-	return bf ? true : false;
-}
-
-bool SXGUIMenu::InsertSeparator(int index,WORD id,WORD id_sub_menu)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_ID | MIIM_FTYPE;
-	mi.wID=id;
-	mi.fType = MFT_SEPARATOR;
-
-	HMENU SubMenu = this->GetSubMenu(id_sub_menu);
-	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu ? SubMenu : MenuHandle,index,TRUE,&mi);
-	//DrawMenuBar(ParentHandle);
-	return bf ? true : false;
-}
-
-bool SXGUIMenu::DeleteItem(WORD id)
-{
-	return DeleteMenu(this->MenuHandle,id,MF_BYCOMMAND) ? true : false;
-}
-
-HMENU SXGUIMenu::GetSubMenu(WORD id)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_SUBMENU;
-	mi.hSubMenu = 0;
-	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
-
-	return bf ? mi.hSubMenu : 0;
-}
-
-bool SXGUIMenu::CheckItem(WORD id,bool check)
-{
-	/*MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STATE;
-
-		if(!GetMenuItemInfo(MenuHandle,id,FALSE,&mi))
-			return false;
-
-	mi.fState |= (check ? MFS_CHECKED : MFS_UNCHECKED);
-
-		if(!SetMenuItemInfo(MenuHandle,id,FALSE,&mi))
-			return false;
-	return true;*/
-	DWORD var = CheckMenuItem(MenuHandle,id,(check ? MF_CHECKED : MF_UNCHECKED));
-	//DrawMenuBar(ParentHandle);
-	return ((var != 0xFFFFFFFF) || (var == -1)) ? true : false;
-}
-
-bool SXGUIMenu::GetCheckedItem(WORD id)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STATE;
-	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
-		if(mi.fState & MFS_CHECKED)
-			return true;
-	return false;
-}
-
-bool SXGUIMenu::EnableItem(WORD id, int enable)
-{
-	/*MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STATE;
-
-		if(!GetMenuItemInfo(MenuHandle,id,FALSE,&mi))
-			return false;
-
-	DWORD Enable = SXGUI_MENU_ENABLED;
-
-		if(enable == SXGUI_MENU_DISABLED)
-			Enable = MFS_DISABLED;
-		else if(enable == SXGUI_MENU_GRAYED)
-			Enable = MFS_GRAYED;
-		else
-			Enable = MFS_ENABLED;
-
-	mi.fState |= Enable;
-
-		if(!SetMenuItemInfo(MenuHandle,id,FALSE,&mi))
-			return false;
-	return true;*/
-
-	DWORD Enable = SXGUI_MENU_PART_STATE_ENABLED;
-
-		if (enable == SXGUI_MENU_PART_STATE_DISABLED)
-			Enable = MFS_DISABLED;
-		else if (enable == SXGUI_MENU_PART_STATE_GRAYED)
-			Enable = MFS_GRAYED;
-		else
-			Enable = MFS_ENABLED;
-
-	DWORD var = EnableMenuItem(MenuHandle,id,Enable);;
-	//DrawMenuBar(ParentHandle);
-	return ((var != 0xFFFFFFFF) || (var == -1)) ? true : false;
-}
-
-int SXGUIMenu::GetEnabledItem(WORD id)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STATE;
-	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
-
-		if(mi.fState & MFS_DISABLED)
-			return SXGUI_MENU_PART_STATE_DISABLED;
-		else if(mi.fState & MFS_GRAYED)
-			return SXGUI_MENU_PART_STATE_GRAYED;
-		else
-			return SXGUI_MENU_PART_STATE_ENABLED;
-
-	return -1;
-}
-
-HMENU SXGUIMenu::GetHMENU()
-{
-	return this->MenuHandle;
-}
-
-bool SXGUIMenu::SetToWindow(HWND hwnd)
-{
-		if(!hwnd)
-			return false;
-		if(!SetMenu(hwnd,this->MenuHandle))
-			return false;
-	return true;
-}
-
-//////////////////////
-
-SXGUIPopupMenu::SXGUIPopupMenu(WORD menu)
-{
-	MenuHandle = LoadMenu(GetModuleHandle(0),MAKEINTRESOURCE(menu));
-	MenuHandle = ::GetSubMenu(MenuHandle,0);
-}
-
-SXGUIPopupMenu::SXGUIPopupMenu()
-{
-	MENUINFO mi;
-	MenuHandle = CreatePopupMenu();
-	mi.cbSize = sizeof(MENUINFO);
-	mi.fMask = MIM_STYLE;
-	mi.dwStyle = MNS_NOTIFYBYPOS;
-	SetMenuInfo(MenuHandle, &mi);
-}
-
-SXGUIPopupMenu::~SXGUIPopupMenu()
-{
-	DestroyMenu(this->MenuHandle);
-}
-
-bool SXGUIPopupMenu::InsertItem(int index,const char* text,WORD id,WORD id_sub_menu)
-{
-	char str[256];
-	sprintf(str,"%s",text);
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STRING|MIIM_ID;
-	mi.dwTypeData=str;
-	mi.wID=id;
-
-	HMENU SubMenu = this->GetSubMenu(id_sub_menu);
-	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu ? SubMenu : MenuHandle,index,TRUE,&mi);
-	//DrawMenuBar(ParentHandle);
-	return bf ? true : false;
-}
-
-bool SXGUIPopupMenu::InsertPopupItem(int index,const char* text,WORD id,WORD id_sub_menu)
-{
-	char str[256];
-	sprintf(str,"%s",text);
-	MENUINFO mi;
-	MENUITEMINFO mii;
-	HMENU SubMenu = CreatePopupMenu();
-	mi.cbSize = sizeof(MENUINFO);
-	mi.fMask = MIM_STYLE;
-	mi.dwStyle = MNS_NOTIFYBYPOS;
-	SetMenuInfo(SubMenu, &mi);
- 
-	mii.cbSize = sizeof(MENUITEMINFO);
-	mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_FTYPE | MIIM_ID; 
-	mii.fType = MFT_STRING;
-	mii.dwTypeData = str;
-	mii.wID = id;
-	mii.hSubMenu = SubMenu;
-
-	HMENU SubMenu2 = this->GetSubMenu(id_sub_menu);
-	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu2 ? SubMenu2 : MenuHandle, index, TRUE, &mii);
-	//DrawMenuBar(ParentHandle);
-	return bf ? true : false;
-}
-
-bool SXGUIPopupMenu::InsertSeparator(int index,WORD id,WORD id_sub_menu)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_ID | MIIM_FTYPE;
-	mi.wID=id;
-	mi.fType = MFT_SEPARATOR;
-
-	HMENU SubMenu = this->GetSubMenu(id_sub_menu);
-	BOOL bf = InsertMenuItem(id_sub_menu > 0 && SubMenu ? SubMenu : MenuHandle,index,TRUE,&mi);
-	//DrawMenuBar(ParentHandle);
-	return bf ? true : false;
-}
-
-bool SXGUIPopupMenu::DeleteItem(WORD id)
-{
-	return DeleteMenu(this->MenuHandle,id,MF_BYCOMMAND) ? true : false;
-}
-
-HMENU SXGUIPopupMenu::GetSubMenu(WORD id)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_SUBMENU;
-	mi.hSubMenu = 0;
-	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
-
-	return bf ? mi.hSubMenu : 0;
-}
-
-bool SXGUIPopupMenu::CheckItem(WORD id,bool check)
-{
-	DWORD var = CheckMenuItem(MenuHandle,id,(check ? MF_CHECKED : MF_UNCHECKED));
-	//DrawMenuBar(ParentHandle);
-	return ((var != 0xFFFFFFFF) || (var == -1)) ? true : false;
-}
-
-bool SXGUIPopupMenu::GetCheckedItem(WORD id)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STATE;
-	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
-		if(mi.fState & MFS_CHECKED)
-			return true;
-	return false;
-}
-
-bool SXGUIPopupMenu::EnableItem(WORD id, int enable)
-{
-	DWORD Enable = SXGUI_MENU_PART_STATE_ENABLED;
-
-		if (enable == SXGUI_MENU_PART_STATE_DISABLED)
-			Enable = MFS_DISABLED;
-		else if (enable == SXGUI_MENU_PART_STATE_GRAYED)
-			Enable = MFS_GRAYED;
-		else
-			Enable = MFS_ENABLED;
-
-	DWORD var = EnableMenuItem(MenuHandle,id,Enable);;
-	//DrawMenuBar(ParentHandle);
-	return ((var != 0xFFFFFFFF) || (var == -1)) ? true : false;
-}
-
-int SXGUIPopupMenu::GetEnabledItem(WORD id)
-{
-	MENUITEMINFO mi;
-	mi.cbSize=sizeof(MENUITEMINFO);
-	mi.fMask=MIIM_STATE;
-	BOOL bf = GetMenuItemInfo(MenuHandle,id,FALSE,&mi);
-
-		if(mi.fState & MFS_DISABLED)
-			return SXGUI_MENU_PART_STATE_DISABLED;
-		else if(mi.fState & MFS_GRAYED)
-			return SXGUI_MENU_PART_STATE_GRAYED;
-		else
-			return SXGUI_MENU_PART_STATE_ENABLED;
-
-	return -1;
-}
-
-bool SXGUIPopupMenu::Track(HWND hwnd,int x,int y)
-{
-	int pos_x,pos_y;
-
-		if((x == -1)&&(y==-1))
-		{
-			POINT point;
-			GetCursorPos(&point);
-			pos_x = point.x;
-			pos_y = point.y;
-		}
-		else
-		{
-			pos_y=x; 
-			pos_y=y;
-		}
-		if(!hwnd)
-			return false;
-
-		if(!TrackPopupMenu(MenuHandle,TPM_LEFTALIGN,pos_x,pos_y,0,hwnd,0))
-			return false;
-	return true;
-}
-
-
-HMENU SXGUIPopupMenu::GetHMENU()
-{
-	return this->MenuHandle;
-}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/sxguiwinapi_dll.cpp b/source/SXGUIWinApi/sxguiwinapi_dll.cpp
index 6eacfdafd..4369c428e 100644
--- a/source/SXGUIWinApi/sxguiwinapi_dll.cpp
+++ b/source/SXGUIWinApi/sxguiwinapi_dll.cpp
@@ -1,8 +1,8 @@
 
-/******************************************************
-Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
+/***********************************************************
+Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
 See the license in LICENSE
-******************************************************/
+***********************************************************/
 
 #include <windows.h>
 
diff --git a/source/SXGUIWinApi/toolbar.cpp b/source/SXGUIWinApi/toolbar.cpp
new file mode 100644
index 000000000..c73f80091
--- /dev/null
+++ b/source/SXGUIWinApi/toolbar.cpp
@@ -0,0 +1,72 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "toolbar.h"
+
+
+CGUIToolBar::CGUIToolBar()
+{
+
+}
+
+CGUIToolBar::CGUIToolBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, WORD width_element, WORD heigth_element, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							TOOLBARCLASSNAME,
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | TBSTYLE_FLAT | WS_BORDER | CCS_NOMOVEY | CCS_NORESIZE | TBSTYLE_TOOLTIPS | TBSTYLE_WRAPABLE,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, handler, idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+
+	HimList = ImageList_Create (width_element, heigth_element, ILC_COLOR24 | ILC_MASK, 1, 256);
+	SendMessage(this->getHWND(), TB_SETIMAGELIST, 0, (LPARAM)HimList);
+	ShowWindow(this->getHWND(), SW_SHOW);
+}
+
+CGUIToolBar::~CGUIToolBar()
+{
+	ImageList_Destroy(HimList);
+}
+
+void CGUIToolBar::AddButton(WORD num,WORD id,const char* hint,WORD id_resource,DWORD mask)
+{
+	TBBUTTON tbb[1];
+	tbb[0].iBitmap = num;
+	tbb[0].idCommand = id;
+	tbb[0].fsState = TBSTATE_ENABLED;
+	tbb[0].fsStyle = TBSTYLE_BUTTON;
+	tbb[0].dwData = 0;
+	tbb[0].iString = (INT_PTR)hint;
+
+	HBITMAP HBitmap = LoadBitmap (GetModuleHandle(NULL), MAKEINTRESOURCE(id_resource));
+    ImageList_AddMasked (HimList, HBitmap, mask);
+
+	SendMessage (this->getHWND(), TB_ADDBUTTONS, 1, (LPARAM)&tbb);
+	SendMessage (this->getHWND(), TB_SETMAXTEXTROWS, 0, 0);
+	SendMessage(this->getHWND(), TB_ADDSTRING, 0, (LPARAM)hint);
+	ShowWindow (this->getHWND(), SW_SHOW);
+}
+
+void CGUIToolBar::AddSeparator(WORD num)
+{
+	TBBUTTON tbb[1];
+	tbb[0].iBitmap = num;
+	tbb[0].idCommand = 0;
+	tbb[0].fsState = TBSTATE_ENABLED;
+	tbb[0].fsStyle = TBSTYLE_SEP;
+	tbb[0].dwData = 0;
+
+	SendMessage (this->getHWND(), TB_ADDBUTTONS, 1, (LPARAM)&tbb);
+	SendMessage (this->getHWND(), TB_SETMAXTEXTROWS, 0, 0);
+	ShowWindow (this->getHWND(), SW_SHOW);
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/toolbar.h b/source/SXGUIWinApi/toolbar.h
new file mode 100644
index 000000000..3663a129d
--- /dev/null
+++ b/source/SXGUIWinApi/toolbar.h
@@ -0,0 +1,31 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_TOOLBAR_H
+#define __SXGUI_TOOLBAR_H
+
+#include "base.h"
+
+
+class CGUIToolBar : public CGUIComponent, public virtual ISXGUIToolBar
+{
+public:
+	CGUIToolBar();
+	CGUIToolBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, WORD width_element, WORD heigth_element, HWND parent, WNDPROC handler, ID idObj);
+	
+	~CGUIToolBar();
+
+	void Release(){ mem_del(this); }
+
+
+	void AddButton(WORD num,WORD id,const char* hint,WORD id_resource,DWORD mask);
+	void AddSeparator(WORD num);
+
+private:
+	HIMAGELIST HimList;
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/trackbar.cpp b/source/SXGUIWinApi/trackbar.cpp
new file mode 100644
index 000000000..88e361e41
--- /dev/null
+++ b/source/SXGUIWinApi/trackbar.cpp
@@ -0,0 +1,110 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "trackbar.h"
+
+
+CGUITrackBar::CGUITrackBar()
+{
+
+}
+
+CGUITrackBar::CGUITrackBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							TRACKBAR_CLASS,
+							caption,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUITrackBar::CGUITrackBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj)
+{
+	m_hWindow = CreateWindowEx(
+							0,
+							TRACKBAR_CLASS,
+							caption,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | TBS_AUTOTICKS,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+void CGUITrackBar::setPos(int pos)
+{
+	SendMessage(this->getHWND(),TBM_SETPOS,WPARAM(TRUE),LPARAM(pos));
+}
+
+int CGUITrackBar::getPos()
+{
+	return SendMessage(this->getHWND(),TBM_GETPOS,0,0);
+}
+
+void CGUITrackBar::setMinMax(int min,int max)
+{
+	SendMessage(this->getHWND(),TBM_SETRANGE,WPARAM(TRUE),MAKELPARAM(min,max));
+}
+
+int CGUITrackBar::getMin()
+{
+	return SendMessage(this->getHWND(),TBM_GETRANGEMIN,0,0);
+}
+
+int CGUITrackBar::getMax()
+{
+	return SendMessage(this->getHWND(),TBM_GETRANGEMAX,0,0);
+}
+
+bool CGUITrackBar::setTick(int pos)
+{
+		if(!SendMessage(this->getHWND(),TBM_SETTIC,0,LPARAM(pos)))
+			return false;
+	return true;
+}
+
+int CGUITrackBar::getTick(int index)
+{
+	return SendMessage(this->getHWND(),TBM_GETTIC,WPARAM(index),0);
+}
+
+void CGUITrackBar::setTickFrequency(int freq)
+{
+	SendMessage(this->getHWND(),TBM_SETTICFREQ,WPARAM(freq),0);
+}
+
+bool CGUITrackBar::setBuddies(HWND hwnd_left,HWND hwnd_right)
+{
+		if(!hwnd_left && !hwnd_left)
+			return false;
+	
+	SendMessage(this->getHWND(),TBM_SETBUDDY,WPARAM(TRUE),LPARAM(hwnd_left));
+	SendMessage(this->getHWND(),TBM_SETBUDDY,WPARAM(FALSE),LPARAM(hwnd_right));
+
+	return true;
+}
+
+HWND CGUITrackBar::getLeftBuddy()
+{
+	return HWND(SendMessage(this->getHWND(),TBM_GETBUDDY,WPARAM(TRUE),0));
+}
+
+HWND CGUITrackBar::getRightBuddy()
+{
+	return HWND(SendMessage(this->getHWND(),TBM_GETBUDDY,WPARAM(FALSE),0));
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/trackbar.h b/source/SXGUIWinApi/trackbar.h
new file mode 100644
index 000000000..94548c3b2
--- /dev/null
+++ b/source/SXGUIWinApi/trackbar.h
@@ -0,0 +1,37 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_TRACK_BAR_H
+#define __SXGUI_TRACK_BAR_H
+
+#include "base.h"
+
+
+class CGUITrackBar : public CGUIComponent, public virtual ISXGUITrackBar
+{
+public:
+	CGUITrackBar();
+	CGUITrackBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj);
+	CGUITrackBar(const char* caption, WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj);
+
+	void setPos(int pos);
+	int getPos();
+
+	void setMinMax(int min,int max);
+	int getMin();
+	int getMax();
+
+	bool setTick(int pos);
+	int getTick(int index);
+
+	void setTickFrequency(int freq);
+
+	bool setBuddies(HWND hwnd_left,HWND hwnd_right);
+	HWND getLeftBuddy();
+	HWND getRightBuddy();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/SXGUIWinApi/updown.cpp b/source/SXGUIWinApi/updown.cpp
new file mode 100644
index 000000000..f5b80b8e7
--- /dev/null
+++ b/source/SXGUIWinApi/updown.cpp
@@ -0,0 +1,107 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#include "updown.h"
+
+
+CGUIUpDown::CGUIUpDown()
+{
+
+}
+
+CGUIUpDown::~CGUIUpDown()
+{
+
+}
+
+CGUIUpDown::CGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj, HWND buddy)
+{
+	m_hWindow = CreateWindowEx(
+							exstyle,
+							UPDOWN_CLASS,
+							0,
+							style,
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	SendMessage(this->getHWND(), UDM_SETRANGE32, -65535, 65535);
+    SendMessage(this->getHWND(), UDM_SETPOS32, 0, 0);
+		if(buddy)
+			setBuddy(buddy);
+
+		init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+CGUIUpDown::CGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, HWND buddy, bool align_left)
+{
+	/*this->getHWND() = CreateUpDownControl(
+												WS_CHILD | WS_BORDER | WS_VISIBLE | UDS_WRAP | UDS_SETBUDDYINT | UDS_ARROWKEYS | (left_right == 1 ?UDS_ALIGNRIGHT : UDS_ALIGNLEFT), 
+												x,y,width,heigth, 
+												parent, 0, GetModuleHandle(0), buddy,
+												0, 0, 0
+											);*/
+	m_hWindow = CreateWindowEx(
+							0,
+							UPDOWN_CLASS,
+							0,
+							(parent != 0 ? WS_CHILD : 0) | WS_VISIBLE | UDS_WRAP | UDS_SETBUDDYINT | UDS_ARROWKEYS | (align_left ? UDS_ALIGNRIGHT : UDS_ALIGNLEFT),
+							x,y,width,heigth,
+							parent,
+							(HMENU)idObj,
+							GetModuleHandle(0),
+							0);
+	SendMessage(this->getHWND(), UDM_SETRANGE32, -65535, 65535);
+    SendMessage(this->getHWND(), UDM_SETPOS32, 0, 0);
+		if(buddy)
+			setBuddy(buddy);
+
+	init(this->getHWND(), parent, (handler == 0 ? WndProcAllDefault : handler), idObj);
+	SetWindowLong(getHWND(),GWL_USERDATA,(LONG)dynamic_cast<ISXGUIComponent*>(this));
+	initComponent();
+}
+
+void CGUIUpDown::setMinMax(int min, int max)
+{
+	SendMessage(this->getHWND(), UDM_SETRANGE32, min, max);
+}
+
+long CGUIUpDown::setPos(int pos)
+{
+	return SendMessage(this->getHWND(), UDM_SETPOS32, 0, pos);
+}
+
+long CGUIUpDown::getMin()
+{
+	long min = 0;
+	SendMessage(this->getHWND(), UDM_GETRANGE32, (WPARAM)&min, 0);
+	return min;
+}
+
+long CGUIUpDown::getMax()
+{
+	long max = 0;
+	SendMessage(this->getHWND(), UDM_GETRANGE32, 0, (LPARAM)&max);
+	return max;
+}
+
+long CGUIUpDown::getPos()
+{
+	return SendMessage(this->getHWND(), UDM_GETPOS32, 0, 0);
+}
+
+HWND CGUIUpDown::setBuddy(HWND buddy)
+{
+	return (HWND)SendMessage(this->getHWND(), UDM_SETBUDDY, (WPARAM)buddy, 0);
+}
+
+HWND CGUIUpDown::getBuddy()
+{
+	return (HWND)SendMessage(this->getHWND(), UDM_GETBUDDY, 0, 0);
+}
\ No newline at end of file
diff --git a/source/SXGUIWinApi/updown.h b/source/SXGUIWinApi/updown.h
new file mode 100644
index 000000000..454312f9b
--- /dev/null
+++ b/source/SXGUIWinApi/updown.h
@@ -0,0 +1,34 @@
+
+/***********************************************************
+Copyright � Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+#ifndef __SXGUI_UP_DOWN_H
+#define __SXGUI_UP_DOWN_H
+
+#include "base.h"
+
+
+class CGUIUpDown : public CGUIComponent, public virtual ISXGUIUpDown
+{
+public:
+	CGUIUpDown();
+	CGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, DWORD exstyle, DWORD style, HWND parent, WNDPROC handler, ID idObj, HWND buddy);
+	CGUIUpDown(WORD x, WORD y, WORD width, WORD heigth, HWND parent, WNDPROC handler, ID idObj, HWND buddy, bool align_left);
+
+	~CGUIUpDown();
+
+
+	void setMinMax(int min, int max);
+	long setPos(int pos);
+
+	long getMin();
+	long getMax();
+	long getPos();
+
+	HWND setBuddy(HWND buddy);
+	HWND getBuddy();
+};
+
+#endif
\ No newline at end of file
diff --git a/source/gcore/sxgcore.h b/source/gcore/sxgcore.h
index 882e36ed3..9f9eda1ee 100644
--- a/source/gcore/sxgcore.h
+++ b/source/gcore/sxgcore.h
@@ -1,1134 +1,1134 @@
-
-/***********************************************************
-Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
-See the license in LICENSE
-***********************************************************/
-
-/*!
-\file
-Заголовочный файл sxgcore - графического ядра (переопределяемые функции, шейдеры, загружаемые текстуры, render targets, ограничиваюий объем, камера, статическая модель dse формата, skybox, skyclouds)
-*/
-
-/*! \defgroup sxgcore sxgcore - графическое ядро, использует технологии DirectX 9
-@{
-*/
-
-#ifndef __SXGCORE_H
-#define __SXGCORE_H
-
-#include <GRegisterIndex.h>
-
-#include <d3d9.h>
-#include <d3dx9.h>
-
-#if defined(_DEBUG)
-#pragma comment(lib, "sxcore_d.lib")
-#else
-#pragma comment(lib, "sxcore.lib")
-#endif
-
-#undef SX_LIB_API
-#define SX_LIB_API extern "C" __declspec (dllimport)
-#include <core/sxcore.h>
-
-#ifdef SX_DLL
-#undef SX_LIB_API
-#define SX_LIB_API extern "C" __declspec (dllexport)
-#endif
-
-#include <gdefines.h>
-
-#pragma comment(lib, "d3d9.lib")
-#pragma comment(lib, "DxErr9.lib")
-#pragma comment(lib, "d3dx9.lib")
-
-#include <gcore/ModelFile.h>
-
+
+/***********************************************************
+Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017, 2018
+See the license in LICENSE
+***********************************************************/
+
+/*!
+\file
+Заголовочный файл sxgcore - графического ядра (переопределяемые функции, шейдеры, загружаемые текстуры, render targets, ограничиваюий объем, камера, статическая модель dse формата, skybox, skyclouds)
+*/
+
+/*! \defgroup sxgcore sxgcore - графическое ядро, использует технологии DirectX 9
+@{
+*/
+
+#ifndef __SXGCORE_H
+#define __SXGCORE_H
+
+#include <GRegisterIndex.h>
+
+#include <d3d9.h>
+#include <d3dx9.h>
+
+#if defined(_DEBUG)
+#pragma comment(lib, "sxcore_d.lib")
+#else
+#pragma comment(lib, "sxcore.lib")
+#endif
+
+#undef SX_LIB_API
+#define SX_LIB_API extern "C" __declspec (dllimport)
+#include <core/sxcore.h>
+
+#ifdef SX_DLL
+#undef SX_LIB_API
+#define SX_LIB_API extern "C" __declspec (dllexport)
+#endif
+
+#include <gdefines.h>
+
+#pragma comment(lib, "d3d9.lib")
+#pragma comment(lib, "DxErr9.lib")
+#pragma comment(lib, "d3dx9.lib")
+
+#include <gcore/ModelFile.h>
+
 //флаги компиляции шейдеров
 #define SHADER_DEBUG D3DXSHADER_DEBUG | D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY | D3DXSHADER_AVOID_FLOW_CONTROL | D3DXSHADER_SKIPOPTIMIZATION
 #define SHADER_RELEASE D3DXSHADER_OPTIMIZATION_LEVEL3 | D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY | D3DXSHADER_PARTIALPRECISION | D3DXSHADER_PREFER_FLOW_CONTROL
-
+
 //определяем флаг компилции шейдеров
 #if defined(DEBUG) || defined(_DEBUG) 
 #define SHADER_FLAGS SHADER_DEBUG 
 #else 
 #define SHADER_FLAGS SHADER_RELEASE 
-#endif
-
-//
-#define SXGC_ERR_NON_DETECTED_D3D -1
-#define SXGC_ERR_FAILED_INIT_D3D -2
-
-//! \name Базовые функции библиотеки 
-//!@{
-
-//! версия подсистемы
-SX_LIB_API long SGCore_0GetVersion();			
-
-//! установка функции вывода сообщений
-SX_LIB_API void SGCore_Dbg_Set(report_func fnReport);	
-
-//! инициализация подсистемы
-SX_LIB_API void SGCore_0Create(
-	const char *szName,			//!< передваваемое имя подсистемы
-	HWND hWnd,					//!< дескриптор окна в которое будет осуществляться рендер
-	int iWidth,					//!< ширина области рендера
-	int iHeigth,				//!< высота области рендера
-	bool isWindowed,			//!< оконный режим использовать ли? иначе полноэкранный
-	DWORD dwFlags,				//!< флаги создания устрайства (стандартные dx)
-	bool isUnic = true			//!< должна ли подсистема быть уникальной на основе имени
-	);
-
-//! уничтожение либы
-SX_LIB_API void SGCore_AKill();	
-
-//! возвращает dx устройство
-SX_LIB_API IDirect3DDevice9* SGCore_GetDXDevice();	
-
-//! возвращает массив всех доступных разрешений монитора, в iCount записывает размер массива
-SX_LIB_API const DEVMODE* SGCore_GetModes(int *iCount);
-
-//!@}
-
-//#############################################################################
-
-/*! \name Отладочное сообщение в окне рендера
- \note Графическое ядро предусматривает наличие текстового сообщения в окне рендера, которое формирует непосредственно сам программист и дает команду на его вывод
-@{*/
-
-/*!< размер отладочного сообщения, выводимого в окно рендера */
-#define SXGC_STR_SIZE_DBG_MSG 4096 
-
-/*! Вывод отладочного сообщения в окно рендера.
-Аргументы аналогичны стандартным функциям типа printf.
-*/
-SX_LIB_API void SGCore_DbgMsg(const char *szFormat, ...);
-
-//!@}
-
-//#############################################################################
-
-/*! \name Обработка потери/восстановления устройства 
- \warning Функции обработки потери/восстановления устройства обрабатывают ресурсы только в пределах данной библиотеки, другие библиотеки должны сами производить данную обработку!
-!@{*/
-
-//! вызывать при потере устройства
-SX_LIB_API void SGCore_OnLostDevice();	
-
-//! вызывать при попытке сброса устройства
-SX_LIB_API bool SGCore_OnDeviceReset(
-	int iWwidth,		//!< новая ширина окна
-	int iHeigth,		//!< новая выоста окна
-	bool isWindewed		//!< true - оконный режим, false - полноэкранный
-	);	
-
-//! вызывать при сбросе устроства
-SX_LIB_API void SGCore_OnResetDevice();	
-
-//! отрисовка full screen quad (уже смещенного как надо чтобы не было размытия)
-SX_LIB_API void SGCore_ScreenQuadDraw();
-
-//!@}
-
-//#############################################################################
-
-/*! \name Базовые функции установки настроек выборки из текстуры 
-id - идентификатор текстурного слота
-value - для Filter D3DTEXTUREFILTERTYPE, для Address D3DTEXTUREADDRESS
-@{*/
-
-//! установка фильтрации для конкретного слота
-SX_LIB_API void SGCore_SetSamplerFilter(DWORD dwNum, DWORD dwValue);	
-
-//! установка фильтрации для набора слотов от begin_id до end_id
-SX_LIB_API void SGCore_SetSamplerFilter2(DWORD dwNumStart, DWORD dwCount, DWORD dwValue);
-
-
-//! установка адресации для конкретного слота
-SX_LIB_API void SGCore_SetSamplerAddress(DWORD dwNum, DWORD dwValue);
-
-//! установка адресации для набора слотов от begin_id до end_id
-SX_LIB_API void SGCore_SetSamplerAddress2(DWORD dwNumStart, DWORD dwCount, DWORD dwValue);
-
-//!@}
-
-//#############################################################################
-
-/*! \defgroup sxgcore_redefinition_func Переопределяемые функции
- \ingroup sxgcore
- \note sxgcore содержит базовые и необходимые функции для переопределения их пользователем, которые будут доступны из графического ядра в других библиотеках зависимых от графического ядра, но в тоже время, эти функции могут быть переопределены функциями из других библиотек. \n
-Это обеспечивает централизованную обобщенную зависимость от самого графического ядра и исключает перекрестные зависимости библиотек между собой, позволяя программисту воздействовать на ценрт управления не  из центра. \n
-Переопределяемые функции могут быть переопределены во внутреннем состоянии, то есть функция обертка так и останется функцией оберткой только будет вызывать уже переопределенную функцию. \n
-Переопределяемые функции изначально выполняют штатные действия исходя из их назначения, и могут вообще не переопределяться если так надо программисту, то есть необходимость в их переопределении исходит только от программиста. \n
-@{*/
-
-/*! \name Прототипы переопределяемых функций 
-@{*/
-
-/*! draw indexed primitive, команда отрисовки.
-Аналогична DrawIndexedPrimitive, в дополнение к DIP инкрементирует счетчик DIPов в int регистрах по индексу #G_RI_INT_COUNT_DIP, обнуление данных только на стороне приложения
-*/
-typedef void(*g_func_dip) (UINT uiTypePrimitive, long lBaseVertexIndex, UINT uiMinVertexIndex, UINT uiNumVertices, UINT uiStartIndex, UINT uiPrimitiveCount);
-
-/*! установка материала id, world - мировая матрица.
-По умолчанию установка текстуры в нулевой текстурный слот, id – идентификатор материала (по умолчанию - текстуры), world – матрица трансформации модели
-*/
-typedef void(*g_func_mtl_set) (ID id, float4x4 *pWorld);
-
-/*! загрузка материала, szName - имя текстуры с расширением, iMtlType - тип материала на случай провала загрузки.
-Загрузка материала (по умолчанию – текстуры) с именем name, iMtlType – типа материала, 
-будет задействован только в случае провала определения типа материала (по умолчанию не используется) - 
-тип стандартного материала будет определен на основании iMtlType, может принимать одно из значений MTL_TYPE_
-*/
-typedef ID(*g_func_mtl_load) (const char *szName,	int iMtlType);
-
-//! получить сорт материала, по дефолту 0
-typedef int(*g_func_mtl_get_sort) (ID id);
-
-//! получить физический тип материала
-typedef int(*g_func_mtl_get_physic_type)(ID id);
-
-//! рисовать ли подгруппы моделей данного материала раздельно?
-typedef bool(*g_func_mtl_group_render_is_singly) (ID id);
-
-//!@}
-
-/*! \name Переопределяемые функции(переопределение реализации внутри)
-!@{*/
-
-//! \copydoc g_func_dip
-SX_LIB_API void SGCore_DIP(UINT uiTypePrimitive, long lBaseVertexIndex, UINT uiMinVertexIndex, UINT uiNumVertices, UINT uiStartIndex, UINT uiPrimitiveCount);
-
-//! \copydoc g_func_mtl_set
-SX_LIB_API void SGCore_MtlSet(ID id, float4x4 *pWorld);
-
-//! \copydoc g_func_mtl_load
-SX_LIB_API ID SGCore_MtlLoad(const char *szName, int iMtlType);
-
-//! \copydoc g_func_mtl_get_sort
-SX_LIB_API int SGCore_MtlGetSort(ID id);
-
-//! \copydoc g_func_mtl_get_physic_type
-SX_LIB_API int SGCore_MtlGetPhysicType(ID id);
-
-//! \copydoc g_func_mtl_group_render_is_singly
-SX_LIB_API bool SGCore_MtlGroupRenderIsSingly(ID id);
-
-//!@}
-
-//##########################################################################
-
-/*! \name Переопределение функций
-!@{*/
-
-//! переназначение g_func_dip
-SX_LIB_API void SGCore_SetFunc_DIP(g_func_dip fnFunc);
-
-//! переназначение g_func_mtl_set
-SX_LIB_API void SGCore_SetFunc_MtlSet(g_func_mtl_set fnFunc);
-
-//! переназначение g_func_mtl_load
-SX_LIB_API void SGCore_SetFunc_MtlLoad(g_func_mtl_load fnFunc);
-
-//! переназначение g_func_mtl_get_sort
-SX_LIB_API void SGCore_SetFunc_MtlGetSort(g_func_mtl_get_sort fnFunc);
-
-//! переназначение g_func_mtl_get_physic_type
-SX_LIB_API void SGCore_SetFunc_MtlGetPhysicType(g_func_mtl_get_physic_type fnFunc);
-
-//! переназначение g_func_mtl_group_render_is_singly
-SX_LIB_API void SGCore_SetFunc_MtlGroupRenderIsSingly(g_func_mtl_group_render_is_singly fnFunc);
-
-//!@}
-
-//!@} group sxgcore_redefinition_func
-
-//#############################################################################
-
-/*! \defgroup sxgcore_shaders Шейдеры
- \ingroup sxgcore
- \note Распознавание  шейдеров (обращение через функции) происходит на основе идентификаторов представленных типом ID \n
-Если речь идет об идентификации на основе имени то имя в данном случае эта та строка name которая была передана SGCore_ShaderLoad \n
-Все шейдеры загружаются с версией 3.0 \n
-Если имя шейдер не содержит нижний пробел (_) то значит шейдера находится в корне директории \n
-Если шейдер содержит нижний пробел (_) то строка до первого нижнего проблема это имя папки в котором находится шейдер с целым именем \n
-Пример: pp_shader.vs - лежит по загружаемому пути: /pp/pp_shader.vs
-@{*/
-
-/*! \name Ограничения на размеры
-@{*/
-
-//! максимальный размер имени директории (до _)
-#define SXGC_SHADER_MAX_SIZE_DIR 64
-
-//! максимальный размер имени с расширением (после _)
-#define SXGC_SHADER_MAX_SIZE_NAME 64
-
-//! общий максимальный  размер имени текстуры с расширением
-#define SXGC_SHADER_MAX_SIZE_DIRNAME SXGC_SHADER_MAX_SIZE_DIR + SXGC_SHADER_MAX_SIZE_NAME
-
-//! максимальный размер пути до файла шейдера (без имени файла)
-#define SXGC_SHADER_MAX_SIZE_STDPATH 256
-
-//! максимальный размер полного пути до шейдера (включая имя шейдера)
-#define SXGC_SHADER_MAX_SIZE_FULLPATH SXGC_SHADER_MAX_SIZE_STDPATH + SXGC_SHADER_MAX_SIZE_DIRNAME
-
-
-//! максимальная длина имени переменной в шейдере
-#define SXGC_SHADER_VAR_MAX_SIZE 64
-
-//! максимальное количество переменных в шейдере
-#define SXGC_SHADER_VAR_MAX_COUNT 64
-
-//! количество макросов в массиве макросов
-#define SXGC_SHADER_COUNT_MACRO 12
-
-//!@}
-
-//**************************************************************************
-
-//! типы шейдеров (int type_shader)
-enum SHADER_TYPE
-{
-	SHADER_TYPE_VERTEX,	//!< вершинный
-	SHADER_TYPE_PIXEL	//!< пиксельный
-};
-
-//! типы проверок дубликатов шейдеров
-enum SHADER_CHECKDOUBLE
-{
-	SHADER_CHECKDOUBLE_NONE,	//!< нет проверки
-	SHADER_CHECKDOUBLE_PATH,	//!< проверка по пути (имени шейдера с расширением)
-	SHADER_CHECKDOUBLE_NAME		//!< проверка по пользовательскому имени
-};
-
-//**************************************************************************
-
-//! загрузить все шейдеры поставленные в очередь
-SX_LIB_API void SGCore_ShaderAllLoad();
-
-//! поставить шейдер в очередь загрузки
-SX_LIB_API ID SGCore_ShaderLoad(
-	SHADER_TYPE type_shader,		//!< тип шейдера
-	const char *szPath,				//!< имя файла шейдера с расширением
-	const char *szName,				//!< имя шейдера которое присвоится при загрузке
-	SHADER_CHECKDOUBLE check_double,//!< проверять ли на уникальность
-	D3DXMACRO *pMacro = 0			//!< макросы
-	);
-
-//! существует ли файл name в папке с шейдерами
-SX_LIB_API bool SGCore_ShaderFileExists(const char *szName);
-
-//! записывает пользовательское имя шейдера в name
-SX_LIB_API void SGCore_ShaderGetName(SHADER_TYPE type_shader, ID idShader, char *szName);
-
-//! записывает имя шейдер с расширением в path
-SX_LIB_API void SGCore_ShaderGetPath(SHADER_TYPE type_shader, ID idShader, char *szPath);
-
-//! существует ли шейдер с пользовательским именем name, если да то возвращает id
-SX_LIB_API ID SGCore_ShaderExistsName(SHADER_TYPE type_shader, const char *szName);
-
-//! существует ли шейдер с именем файла и расширением name, если да то возвращает id
-SX_LIB_API ID SGCore_ShaderExistsPath(SHADER_TYPE type_shader, const char *szPath);
-
-//! загружен ли шейдер с данным id
-SX_LIB_API bool SGCore_ShaderIsValidated(SHADER_TYPE type_shader, ID idShader);
-
-
-//! обновление шейдера по имени
-SX_LIB_API void SGCore_ShaderUpdateN(SHADER_TYPE type_shader, const char *szName);
-
-//! обновление шейдера по id
-SX_LIB_API void SGCore_ShaderUpdate(SHADER_TYPE type_shader, ID idShader);
-
-//! перезагрузить все шейдеры, с учетом макросов
-SX_LIB_API void SGCore_ShaderReloadAll();	
-
-
-//! получить идентификатор шейдера по имени
-SX_LIB_API ID SGCore_ShaderGetID(SHADER_TYPE type_shader, const char *szName);
-
-//! бинд шейдера по имени
-SX_LIB_API void SGCore_ShaderBindN(SHADER_TYPE type_shader, const char *szName);
-
-//! бинд шейдера по id
-SX_LIB_API void SGCore_ShaderBind(SHADER_TYPE type_shader, ID idShader);
-
-
-//! обнуление биндов шейдеров
-SX_LIB_API void SGCore_ShaderUnBind();	
-
-//**************************************************************************
-
-/*! \name Передача данных в шейдер
-@{*/
-
-//! передача float значений в шейдер по имени
-SX_LIB_API void SGCore_ShaderSetVRFN(
-	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
-	const char *szNameShader,	//!< пользовательское имя шейдера
-	const char *szNameVar,		//!< имя переменной которой присваивается значение
-	void *pData,				//!< указатель на массив данных
-	int iCountFloat4 = 0		//!< количество float4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
-	);
-
-//! передача float значений в шейдер по ID
-SX_LIB_API void SGCore_ShaderSetVRF(
-	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
-	ID idShader,				//!< идентификатор шейдера
-	const char *szNameVar,		//!< имя переменной которой присваивается значение
-	void *pData,				//!< указатель на массив данных
-	int iCountFloat4 = 0		//!< количество float4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
-	);
-
-//! передача int значений в шейдер по имени
-SX_LIB_API void SGCore_ShaderSetVRIN(
-	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
-	const char *szNameShader,	//!< пользовательское имя шейдера
-	const char *szNameVar,		//!< имя переменной которой присваивается значение
-	void *pData,				//!< указатель на массив данных
-	int iCountInt4 = 0			//!< количество int4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
-	);
-
-//! передача int значений в шейдер по ID
-SX_LIB_API void SGCore_ShaderSetVRI(
-	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
-	ID idShader,				//!< идентификатор шейдера
-	const char *szNameVar,		//!< имя переменной которой присваивается значение
-	void *pData,				//!< указатель на массив данных
-	int iCountInt4 = 0			//!< количество int4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
-	);
-
-//!@}
-//!@} sxgcore_shaders
-
-//#############################################################################
-
-/*! \defgroup sxgcore_loadtex Загружаемые текстуры
- \ingroup sxgcore
- \note Распознавание текстур (обращение через функции) происходит на основе идентификаторов представленных типом ID. \n
-Имя текстуры обязательно долно содержать нижний пробел (_), строка до первого нижнего проблема это имя папки в котором находится текстура с целым именем. \n
-Например: mtl_tex.dds - лежит по загружаемому пути: /mtl/mtl_tex.dds
-@{*/
-
-/*! \name Ограничения на размеры
-@{*/
-
-//! максимальный размер имени директории (до _)
-#define SXGC_LOADTEX_MAX_SIZE_DIR 64
-
-//! максимальный размер имени с расширением (после _)
-#define SXGC_LOADTEX_MAX_SIZE_NAME 64
-
-//! общий максимальный  размер имени текстуры с расширением
-#define SXGC_LOADTEX_MAX_SIZE_DIRNAME SXGC_LOADTEX_MAX_SIZE_DIR + SXGC_LOADTEX_MAX_SIZE_NAME
-
-//! максимальный размер пути до файла текстуры (без имени файла)
-#define SXGC_LOADTEX_MAX_SIZE_STDPATH 256
-
-//! максимальный размер полного пути до текстуры (включая имя текстуры)
-#define SXGC_LOADTEX_MAX_SIZE_FULLPATH SXGC_LOADTEX_MAX_SIZE_STDPATH + SXGC_LOADTEX_MAX_SIZE_DIRNAME
-
-
-//! количество mipmap уровней в загружаемых текстурах
-#define SXGC_LOADTEX_COUNT_MIPMAP 5	
-
-/*! формат в который будут преобразованы загружаемые текстуры
- \warning если установить формат со сжатием то необходимо следовать всем правилам оформления текстур для данного формата
-*/
-#define SXGC_LOADTEX_FORMAT_TEX D3DFMT_FROM_FILE
-
-//!@}
-
-//**************************************************************************
-
-/*! \name Типы материалов
-!@{*/
-
-#define MTL_TYPE_GEOM 0		/*!< статическая геометрия */
-#define MTL_TYPE_GRASS 1	/*!< растительность - трава */
-#define MTL_TYPE_TREE 2		/*!< растительность - деревья */
-#define MTL_TYPE_SKIN 3		/*!< скелетная модель */
-//#define MTL_LIGHT 4
-
-//!@}
-
-//! типы текстур
-enum LOAD_TEXTURE_TYPE
-{
-	LOAD_TEXTURE_TYPE_LOAD,		//!< загружаемая
-	LOAD_TEXTURE_TYPE_CONST,	//!< неудаляемая загружаемая
-	LOAD_TEXTURE_TYPE_CUSTOM,	//!< созданная пользователем
-
-	/*! самоопределение типа, на тот случай когда обновляем текстуру которая точно есть.
-	Если определить этот тип, а внутри у текстуры на самом деле нет типа (скорее всего нет текстуры)
-	то будет определен LOAD_TEXTURE_TYPE_LOAD
-	*/
-	LOAD_TEXTURE_TYPE_SELF,
-};
-
-//**************************************************************************
-
-//! существует ил файл name в папке с текстурами
-SX_LIB_API bool SGCore_LoadTexFileExists(const char *szName);	
-
-//! очистить список загружаемых текстур
-SX_LIB_API void SGCore_LoadTexClearLoaded();				
-
-//! удалить тектуру по id (независимо от типа)
-SX_LIB_API void SGCore_LoadTexDelete(ID idTexture);				
-
-//! добавляем имя текстуры, взамен получаем на нее ID (поставить в очередь)
-SX_LIB_API ID SGCore_LoadTexAddName(const char *szName, LOAD_TEXTURE_TYPE type);
-
-//! получить id по имени
-SX_LIB_API ID SGCore_LoadTexGetID(const char *szName);
-
-//! получить имя по id
-SX_LIB_API void SGCore_LoadTexGetName(ID idTexture, char *szName);
-
-
-/*! создать место для текстуры tex и присвоить ей имя name, возвращает id
- \warning создавать текстур необходимо в managed pool (D3DPOOL_MANAGED) ибо обработка потери и восстановления устройства сюда не приходит
-*/
-SX_LIB_API ID SGCore_LoadTexCreate(const char *szName, IDirect3DTexture9 *pTexture);
-
-/*! обновить/перезагрузить текстуру name, если текстуры не было в списке то добавляет.
-Если текстуру надо обновить, но тип у нее заранее не известен, но она точно уже загружена  
-то можно использовать тип самоопределения LOAD_TEXTURE_TYPE_SELF, тогда тип текстуры не изменится
-*/
-SX_LIB_API ID SGCore_LoadTexUpdateN(const char *szName, LOAD_TEXTURE_TYPE type);
-
-//! обновить/перезагрузить текстуру
-SX_LIB_API void SGCore_LoadTexUpdate(ID idTexture);
-
-//! возвращает текстуру по id
-SX_LIB_API IDirect3DTexture9* SGCore_LoadTexGetTex(ID idTexture);
-
-//! загрузка всех текстур поставленных в очередь, если есть очередь
-SX_LIB_API void SGCore_LoadTexAllLoad();	
-
-//!@} sxgcore_loadtex
-
-//#############################################################################
-
-/*! \defgroup sxgcore_rt Render targets
- \ingroup sxgcore
- \note Cброс и восстановление устройства сюда приходят
-@{*/
-
-//! добавить новый render target
-SX_LIB_API ID SGCore_RTAdd(
-	UINT iWidth,			//!< ширина
-	UINT iHeight,			//!< высота
-	UINT iLevels,			//!< количество mip-map уровней
-	DWORD dwUsage,			//!< признак применения, возможные значения из D3DUSAGE_
-	D3DFORMAT format,		//!< формат из D3DFORMAT
-	D3DPOOL pool,			//!< где будет размещена текстура, из D3DPOOL
-	const char *szName,		//!< имя rt
-	/*! коэфициент размеров rt относительно области рендера 
-	(если rt и размер области одинаковы то 1, если rt меньша на 0.5 то 0.5) 
-	если указаны фиксированные значения то ставить 0, это нужно для устновления размеров при восстановлении устройства
-	*/
-	float fCoefFullScreen
-	);
-
-//! удалить rt по имени
-SX_LIB_API void SGCore_RTDeleteN(const char *szName);	
-
-//! удалить rt по id
-SX_LIB_API void SGCore_RTDelete(ID id);				
-
-//! возвращает id по имени
-SX_LIB_API ID SGCore_RTGetNum(const char *szName);
-
-//! возвращает текстуру по имени
-SX_LIB_API IDirect3DTexture9* SGCore_RTGetTextureN(const char *szName);
-
-//! возвращает текстуру по id
-SX_LIB_API IDirect3DTexture9* SGCore_RTGetTexture(ID id);				
-
-//!@} sxgcore_rt
-
-//#############################################################################
-
-/*! \defgroup sxgcore_dse_static Статическая модель dse формата
- \ingroup sxgcore
- \note sxgcore предоставляет возможность загрузки статических моделей, формат вершин которых представлен структурой #vertex_static, которая объявлена в файле ModelFile.h
- \todo Описать формат файла статической модели dse
-@{*/
-
-//! структура статической модели dse
-struct ISXDataStaticModel : public IBaseObject
-{
-	virtual ~ISXDataStaticModel(){};
-
-	virtual ISXDataStaticModel* getCopy()=0;//!< получить абсолютную копию модели
-	
-	IDirect3DVertexBuffer9 *m_pVertexBuffer;//!< вершиный буфер
-	IDirect3DIndexBuffer9 *m_pIndexBuffer;	//!< индексный буфер
-
-	UINT m_uiSubsetCount;		//!< количество подгрупп
-	char **m_ppTextures;		//!< массив имен текстур без расширения
-	UINT *m_pStartIndex;		//!< массив стартовых позиций индексов для каждой подгруппы
-	UINT *m_pIndexCount;		//!< массив количества индексов для каждой подгруппы
-	UINT *m_pStartVertex;		//!< массив стартовых позиций вершин для каждой подгруппы
-	UINT *m_pVertexCount;		//!< массив количества вершин для каждой подгруппы
-	UINT m_uiAllIndexCount;		//!< общее количество индексов
-	UINT m_uiAllVertexCount;	//!< общее количество вершин
-
-	float4_t m_vBSphere;
-	float3_t m_vBBMax, m_vBBMin;
-};
-
-//! создать статическую модель
-SX_LIB_API ISXDataStaticModel* SGCore_StaticModelCr();	
-
-//! загрузить статическую модель, data инициализируется внутри
-SX_LIB_API void SGCore_StaticModelLoad(const char *szFile, ISXDataStaticModel **ppData);	
-
-//! сохранить статическую модель
-SX_LIB_API void SGCore_StaticModelSave(const char *szFile, ISXDataStaticModel **pData);
-
-//! возвращает декларацию вершин статической модели
-SX_LIB_API IDirect3DVertexDeclaration9* SGCore_StaticModelGetDecl();	
-
-//!@} sxgcore_dse_static
-
-//#############################################################################
-
-/*! \defgroup sxgcore_bb Ограничивающий объем
- \ingroup sxgcore
-@{*/
-
-/*! Простой объект трансформаций с минимальным описанием.
- \note Для корректного использования необходимо сначала установить позицию/поворот/масштаб после чего CalculateWorld
-*/
-struct ISXTransObject : public IBaseObject
-{
-	virtual ~ISXTransObject(){};
-
-	SX_ALIGNED_OP_MEM
-
-	//! просчет мировой матрицы трансформации на основе поворотов масштабирования и позиции
-	virtual inline float4x4* calcWorld() = 0;	
-
-	float3 m_vPosition;	//!< позиция
-	float3 m_vRotation;	//!< повороты
-	float3 m_vScale;	//!< масштабирование
-	float4x4 m_mWorld;	//!< мировая матрица на основе поворотов масштабирования и позиции
-};
-
-//! создать ISXTransObject
-SX_LIB_API ISXTransObject* SGCore_CrTransObject();	
-
-//! структура описывающая ограничивающий квадрат (а точнее параллелепипед) в пространстве экрана
-struct SXPosBBScreen
-{
-	float x;		//!< позиция по оси x в пространстве экрана
-	float y;		//!< позиция по оси y в пространстве экрана
-	float width;	//!< ширина в пикселях
-	float height;	//!< высота в пикселях
-	float maxdepth;	//!< конец объекта глубина 0-1
-	float mindepth;	//!< начало объект глубина 0-1
-	bool IsVisible;	//!< виден ли квадрат наблюдателю
-};
-
-
-/*! класс ограничивающего объема
- \warning GetMinMax, GetSphere до вызова CalcWorldAndTrans возвращают нетрансформирвоанные данные
-*/
-class ISXBound : public virtual ISXTransObject
-{
-public:
-	virtual ~ISXBound(){};
-
-	SX_ALIGNED_OP_MEM
-
-	/*! Просчет ограничивающего объема по вершинному буферу*/
-	virtual void calcBound(
-		IDirect3DVertexBuffer9 *pVertexBuffer, //!< вершинный буфер (незаблокированный), в вершинах которого первым элементом идет позиция float3_t вектор  
-		DWORD dwCountVertex,	//!< количество вершин
-		DWORD dwBytePerVertex	//!< количество байт в вершине
-		) = 0;
-
-	//! функция просчета мировой матрицы и трансформации минимума и максимума
-	virtual float4x4*  calcWorldAndTrans() = 0;
-
-	//! просчет структуры SXPosBBScreen 
-	virtual void getPosBBScreen(
-		SXPosBBScreen *res,		//!< инициализированная стркутура #SXPosBBScreen для записи
-		float3* campos,			//!< позиция наблюдателя
-		float3* sizemapdepth,	//!< размер карты глубины глябины для просчета float3(ширина, высота, максильная глубина)
-		float4x4* mat			//!< произведение видовой и проекционной матриц
-		) = 0;
-
-	//! установить экстремум, также просчитает и сферу
-	virtual void setMinMax(const float3 *pMin, const float3 *pMax) = 0;	
-
-	//! запишет в min и max точки экстремума
-	virtual void getMinMax(float3 *pMin, float3 *pMax) const = 0;			
-
-
-	//! установить сферу, просчитает также и параллелепипед
-	virtual void setSphere(const float3 *pCenter, float fRadius) = 0;	
-
-	//! запишет в center центр сферы, в radius радиус сферы
-	virtual void getSphere(float3 *pCenter, float *pRadius) const = 0;	
-
-
-	//! находится ли точка point в пределах сферы
-	virtual bool isPointInSphere(const float3 *pPoint) const = 0;	
-
-	//! находится ли точка point в пределах параллелепипеда
-	virtual bool isPointInBox(const float3 *pPoint) const = 0;		
-};
-
-//! создать ISXBound
-SX_LIB_API ISXBound* SGCore_CrBound(); 
-
-//!@} sxgcore_bb
-
-//#############################################################################
-
-//! создание меша (ID3DXMesh) конуса 
-SX_LIB_API void SGCore_FCreateCone(
-	float fTopRadius,		//!< верхний радиус
-	float fBottomRadius,	//!< нижний радиус
-	float fHeight,			//!< длина
-	ID3DXMesh ** ppMesh,	//!< выходной меш
-	UINT iSideCount			//!< количество частей??
-	);
-
-//! просчет ограничивающего объема по вершинному буфер
-SX_LIB_API void SGCore_FCompBoundBox(
-	IDirect3DVertexBuffer9* vertex_buffer, //!< вершинный буфер (незаблокированный), в вершинах которого первым элементом идет позиция float3_t вектор
-	ISXBound** bound,	//!< инициализированный ISXBound
-	DWORD count_vert,	//!< количество вершин
-	DWORD bytepervert	//!< количество байт в вершине
-	);
-
-//! создание меша (ID3DXMesh) ограничивающего объема
-SX_LIB_API void SGCore_FCreateBoundingBoxMesh(float3* min, float3* max, ID3DXMesh** bbmesh);
-
-/*! \name Оптимизация индексных буферов
-@{*/
-
-//! 16 битные индексные буферы
-SX_LIB_API void SGCore_OptimizeIndecesInSubsetUint16(
-	uint16_t* ib,		//!< указатель на индексный буфер
-	uint16_t numFaces,	//!< количество индексов
-	uint16_t numVerts	//!< количество вершин
-	);	
-
-//! 16 битные индексные буферы
-SX_LIB_API void SGCore_OptimizeIndecesInSubsetUint32(
-	uint32_t* ib,		//!< указатель на индексный буфер
-	uint32_t numFaces,	//!< количество индексов
-	uint32_t numVerts	//!< количество вершин
-	);	
-//!@}
-
-//##########################################################################
-
-/*! \defgroup sxgcore_bb_intersect Функции просчета попаданий точек в объемы и деление объемов
- \ingroup sxgcore
-@{*/
-
-/*! \name Просчеты попадания точки/точек в объем 
- \note 2d - на основании x и z координат \n
-3d - на основании всех трех координат \n
-Abs - абсолютное нахождение внутри, не на границах, иное допускает нахождение на границах 
-@{*/
-
-//! находится ли точка pos в пределах [min,max] по осям x z
-SX_LIB_API bool SGCore_0InPos2D(float3* min, float3* max, float3* pos);		
-
-//! находится ли точка pos в пределах (min,max) по осям x z
-SX_LIB_API bool SGCore_0InPosAbs2D(float3* min, float3* max, float3* pos);	
-
-
-//! возвращает количество точек (p1,p2,p3) лежащих в пределах [min,max]  по осям x z
-SX_LIB_API int SGCore_0CountPosPoints2D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
-
-//! возвращает количество точек (p1,p2,p3) лежащих в пределах (min,max)  по осям x z
-SX_LIB_API int SGCore_0CountPosPointsAbs2D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
-
-//! лежит ли хотя бы одна точка абсолютно в (min,max) или хотя бы 2 точки в пределах [min,max], из числа трех точек p1,p2,p3, по осям x z
-SX_LIB_API bool SGCore_0InPosPoints2D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
-
-
-//! находится ли точка pos в пределах [min,max]
-SX_LIB_API bool SGCore_0InPos3D(float3* min, float3* max, float3* pos);		
-
-//! находится ли точка pos в пределах (min,max)
-SX_LIB_API bool SGCore_0InPosAbs3D(float3* min, float3* max, float3* pos);	
-
-
-//! возвращает количество точек (p1,p2,p3) лежащих в пределах [min,max]
-SX_LIB_API int SGCore_0CountPosPoints3D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
-
-//! возвращает количество точек (p1,p2,p3) лежащих в пределах (min,max)
-SX_LIB_API int SGCore_0CountPosPointsAbs3D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
-
-//! лежит ли хотя бы одна точка абсолютно в (min,max) или хотя бы 2 точки в пределах [min,max], из числа трех точек p1,p2,p3
-SX_LIB_API bool SGCore_0InPosPoints3D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
-
-//!@}
-
-//**************************************************************************
-
-/*! кубическое (octo) деление объема (по всем трем осям)
- \warning массивы и объекты должны быть заранее инициализированны
- */
-SX_LIB_API void SGCore_0ComBoundBoxArr8(ISXBound* bound, ISXBound** bound_arr);
-
-/*! квадратичное (quad) деление объема (по двум осям x и z)
- \warning массивы и объекты должны быть заранее инициализированны
-*/
-SX_LIB_API void SGCore_0ComBoundBoxArr4(ISXBound* bound, ISXBound** bound_arr);
-
-//! находит квадрат расстояния между лучем и точкой
-SX_LIB_API float SGCore_0DistancePointBeam2(const float3 & p, const float3 & start, const float3 & dir);
-
-//! возвращает пересекаются ли боксы или нет
-SX_LIB_API bool SGCore_0InretsectBox(const float3 * min1, const float3 * max1, const float3 * min2, const float3 * max2);
-
-struct SXTriangle
-{
-	float3_t a;
-	float3_t b;
-	float3_t c;
-	SXTriangle()
-	{
-	};
-	SXTriangle(float3_t _a, float3_t _b, float3_t _c) :a(_a), b(_b), c(_c)
-	{
-	};
-
-	//Проверкка пересечения треугольника и отрезка
-	bool IntersectLine(const float3 & l1, const float3 &l2, float3 * p)
-	{
-		float3 n = SMVector3Normalize(SMVector3Cross((b - a), (c - b)));
-		float d1 = SMVector3Dot((l1 - a), n) / SMVector3Length(n);
-		float d2 = SMVector3Dot((l2 - a), n) / SMVector3Length(n);
-		if ((d1 > 0 && d2 > 0) || (d1 < 0 && d2 < 0))
-			return(false);
-		*p = l1 + (l2 - l1) * (-d1 / (d2 - d1));
-		if (SMVector3Dot(SMVector3Cross((b - a), (*p - a)), n) <= 0) return(false);
-		if (SMVector3Dot(SMVector3Cross((c - b), (*p - b)), n) <= 0) return(false);
-		if (SMVector3Dot(SMVector3Cross((a - c), (*p - c)), n) <= 0) return(false);
-		return(true);
-	}
-};
-
-
-//!@} sxgcore_bb_intersect
-
-//#############################################################################
-
-/*! \defgroup sxgcore_camera Камера
- \ingroup sxgcore
- \todo Добавить в библиотеку математики плоскости и операции с ними, заменить dx плоскости на свои
- \todo Возможно надо расширить возможности и абстракцию класса камеры, к примеру матрицу проекции хранить тоже в камере, и сделать отдельные функции для ее модификации
-@{
-*/
-
-//! структура описание плоскости
-struct CSXFrustumPlane
-{
-	float3_t m_vNormal;
-	float m_fDistance;
-
-	SX_ALIGNED_OP_MEM
-
-	void normalize()
-	{
-		float fDenom = sqrt((m_vNormal.x*m_vNormal.x) + (m_vNormal.y*m_vNormal.y) + (m_vNormal.z*m_vNormal.z));
-		m_vNormal.x = m_vNormal.x / fDenom;
-		m_vNormal.y = m_vNormal.y / fDenom;
-		m_vNormal.z = m_vNormal.z / fDenom;
-		m_fDistance = m_fDistance / fDenom;
-	}
-};
-
-//! класс описывающий фрустум
-class ISXFrustum : public IBaseObject
-{
-public:
-	virtual ~ISXFrustum(){};
-
-	SX_ALIGNED_OP_MEM
-
-	//! обновление фрустума, на вход матрицы по которым необходимо построить фрустум
-	virtual void update(
-		const float4x4 *pView,	//<! видовая матрица
-		const float4x4 *pProj	//<! проекционная матрица
-		) = 0;
-
-	//! находится ли точка во фрустуме
-	virtual bool pointInFrustum(const float3 *pPoint) const = 0;	
-
-	//! находится ли треугольник во фрутстуме
-	virtual bool polyInFrustum(const float3 *pPoint1, const float3 *pPoint2, const float3 *pPoint3) const = 0;		
-
-	//! находится ли полигон во фрустуме полностью
-	virtual bool polyInFrustumAbs(const float3 *pPoint1, const float3 *pPoint2, const float3 *pPoint3) const = 0;	
-
-
-	//! находится ли полигон во фрустуме
-	virtual bool sphereInFrustum(const float3 *pPoint, float fRadius) const = 0;	
-
-	//! находится ли сфера во фрустуме полностью
-	virtual bool sphereInFrustumAbs(const float3 *pPoint, float fRadius) const = 0;	
-
-	//! находится ли параллелепипед (описанный точками экстремума) во фрустуме
-	virtual bool boxInFrustum(float3 *pMin, float3 *pMax) const = 0;				
-
-
-	//! возвращает координаты точки фрустума, iNumPoint = [0,7]
-	virtual float3 getPoint(int iNumPoint) const = 0;
-
-	//! возвращает координаты центра фрустума
-	virtual float3 getCenter() const = 0;
-
-	//! устанавливает координаты точки фрустума, iNumPoint = [0,7]
-	virtual void setPoint(int iNumPoint, const float3 *pPoint) = 0;
-
-	//! устанавливает координаты центра фрустума
-	virtual void setCenter(const float3 *pCenter) = 0;
-};
-
-//! создать ISXFrustum
-SX_LIB_API ISXFrustum* SGCore_CrFrustum(); 
-
-//**************************************************************************
-
-//! камера
-class ISXCamera : public IBaseObject
-{
-public:
-	virtual ~ISXCamera(){};
-
-	SX_ALIGNED_OP_MEM
-
-	/*! \name Движение
-	 \note В метрах
-	@{*/
-
-	//! влево/вправо
-	virtual void posLeftRight(float fUnits) = 0;	
-
-	//! вверх/вниз
-	virtual void posUpDown(float fUnits) = 0;		
-
-	//! вперед/назад
-	virtual void posFrontBack(float fUnits) = 0;	
-
-	//!@}
-
-	/*! \name Вращение
-	 \note В радианах
-	@{*/
-
-	//! вращение вверх/вниз
-	virtual void rotUpDown(float fAngle) = 0;		
-
-	//! вращение вправо/влево
-	virtual void rotRightLeft(float fAngle) = 0;	
-
-	//! крен
-	virtual void roll(float fAngle) = 0;			
-
-	//! установить полное вращение
-	virtual void setOrientation(const SMQuaternion *pOrientation) = 0; 
-
-	//!@}
-
-	//! получаем матрицу вида в pMatrix
-	virtual void getViewMatrix(float4x4 *pMatrix) = 0;
-
-	/*! \name Базис
-	@{
-	*/
-
-	//! в pos записывает текущую позицию в мире
-	virtual void getPosition(float3 *pPos) const = 0;	
-
-	//! устанавливает позицию в мире
-	virtual void setPosition(const float3 *pPos) = 0;	
-
-
-	//! в right записывает парвый вектор
-	virtual void getRight(float3 *pRight) const = 0;
-
-	//! в up записывает верхний вектор
-	virtual void getUp(float3 *vUp) const = 0;		
-
-	//! в look записывает вектор направление взгляда
-	virtual void getLook(float3 *vLook) const = 0;	
-
-
-	//! в rot записывает углы поворотов по осям, в радианах
-	virtual void getRotation(float3 *vRot) const = 0;	
-
-	//повроты по осям
-
-	//! возвращает поворот по оси X, в радианах
-	virtual float getRotationX() const = 0;	
-
-	//! возвращает поворот по оси Y, в радианах
-	virtual float getRotationY() const = 0;	
-
-	//! возвращает поворот по оси Z, в радианах
-	virtual float getRotationZ() const = 0;	
-
-	//!@}
-
-	//! устанавливает FOV камеры
-	virtual void setFOV(float fFOV) = 0;
-
-	//! возвращает FOV камеры
-	virtual float getFOV() const = 0;	
-
-	//! обновление фрустума камеры
-	virtual void updateFrustum(const float4x4 *mProjection) = 0;
-
-	//! возвращает константный указатель фрустума
-	virtual const ISXFrustum* getFrustum() = 0;
-};
-
-//! создать ISXCamera
-SX_LIB_API ISXCamera* SGCore_CrCamera();	
-
-//!@} sxgcore_camera
-
-//#############################################################################
-
-/*! \defgroup sxgcore_sky Небо
- \ingroup sxgcore
-@{*/
-
-/*! \name SkyBox
- \note Используются кубические текстуры
-@{*/
-
-//! создание
-SX_LIB_API void SGCore_SkyBoxCr();	
-
-//! инициализирован ли skybox
-SX_LIB_API bool SGCore_SkyBoxIsCr();
-
-//! загружена ли текстура?
-SX_LIB_API bool SGCore_SkyBoxIsLoadTex();
-
-
-//! загрузка текстуры, texture - имя текстуры с расширением
-SX_LIB_API void SGCore_SkyBoxLoadTex(const char *szTexture);	
-
-//! смена текстуры, texture - имя текстуры с расширением
-SX_LIB_API void SGCore_SkyBoxChangeTex(const char *szTexture);
-
-//! в аргумент записывает путь до текущей активной текстуры
-SX_LIB_API void SGCore_SkyBoxGetActiveTex(char *szTexture);
-
-//! в аргумент записывает путь до следующей текстуры 9если включена смена)
-SX_LIB_API void SGCore_SkyBoxGetSecondTex(char *szTexture);
-
-
-//! установка угла поворота angle по оси y, в радианах
-SX_LIB_API void SGCore_SkyBoxSetRot(float fAngle);	
-
-//! возвращает угол поворота по оси y, в радианах
-SX_LIB_API float SGCore_SkyBoxGetRot();				
-
-
-//! установка цвета окраски в пределах 0-1, альфа компонента (w) - на сколько будет окрашен
-SX_LIB_API void SGCore_SkyBoxSetColor(const float4_t *pColor);	
-
-//! в color записывает текущий цвет окраски
-SX_LIB_API void SGCore_SkyBoxGetColor(float4_t *pColor);	
-
-//! рендер скайбокса
-SX_LIB_API void SGCore_SkyBoxRender(
-	float timeDelta,	//!< время рендера кадра в млсек 
-	const float3 *pPos	//!< позиция набладателя, эта же позиция будет центром skybox
-	);
-
-//!@}
-
-//**************************************************************************
-
-/*! \name SkyClouds
-
- \note Простая плоскость параллельная xz на которую зеркально (х2) натягивается текстура, в постоянном движении.
- Положение констатно.
- Используются обычные 2д текстуры.
-@{*/
-
-//! создание
-SX_LIB_API void SGCore_SkyCloudsCr();		
-
-//! инициализирован ли sky clouds
-SX_LIB_API bool SGCore_SkyCloudsIsCr();		
-
-//! загружена ли текстура
-SX_LIB_API bool SGCore_SkyCloudsIsLoadTex();
-
-
-/*! установка размеров и позиции.
- Так как позиция облаков константна то чтобы была илюзия полного покрытия уровня, необходимо облакам указывать размер в несколько раз больше чем весь доступный уровень, к примеру x2
-*/
-SX_LIB_API void SGCore_SkyCloudsSetWidthHeightPos(
-	float fWidth,			//!< ширина в метрах
-	float fHeight,			//!< высота в метрах
-	const float3 *pCenter	//!< позиция центра
-	);
-
-//! загрузка текстуры, texture - имя текстуры с расширением
-SX_LIB_API void SGCore_SkyCloudsLoadTex(const char *szNameTexture);	
-
-//! плавная смена текстуры, texture - имя текстуры с расширением
-SX_LIB_API void SGCore_SkyCloudsChangeTex(const char *szNameTexture);
-
-
-//! установка угла поворота angle по оси y, в радианах
-SX_LIB_API void SGCore_SkyCloudsSetRot(float fAngle);
-
-//! возвращает текущий угол поворота по оси y, в радианах
-SX_LIB_API float SGCore_SkyCloudsGetRot();			
-
-
-//! устанавливает коэфициент прозрачности, в пределах 0-1
-SX_LIB_API void SGCore_SkyCloudsSetAlpha(float fAlpha);	
-
-//! возвращает текущий коэфициент прозрачности
-SX_LIB_API float SGCore_SkyCloudsGetAlpha();			
-
-
-//! устанавливает коэфициент скорости движения
-SX_LIB_API void SGCore_SkyCloudsSetSpeed(float fSpeed);	
-
-//! возвращает текущий коэфициент скорости движения
-SX_LIB_API float SGCore_SkyCloudsGetSpeed();			
-
-
-//! установка цвета окраски в пределах 0-1, альфа компонента (w) - на сколько будет окрашен
-SX_LIB_API void SGCore_SkyCloudsSetColor(const float4_t *pColor);
-
-//! в color записывает текущий цвет окраски
-SX_LIB_API void SGCore_SkyCloudsGetColor(float4_t *pColor);
-
-//! рендер облаков
-SX_LIB_API void SGCore_SkyCloudsRender(
-	DWORD timeDetlta,		//!< время рендера кадра в млсек
-	const float3* pos,		//!< позиция набладателя
-	bool isShadow			//!< для теней ли рендерим?
-	);
-
-//!@}
-//!@} sxgcore_sky
-
-#endif
-
-/*! @} */
+#endif
+
+//
+#define SXGC_ERR_NON_DETECTED_D3D -1
+#define SXGC_ERR_FAILED_INIT_D3D -2
+
+//! \name Базовые функции библиотеки 
+//!@{
+
+//! версия подсистемы
+SX_LIB_API long SGCore_0GetVersion();			
+
+//! установка функции вывода сообщений
+SX_LIB_API void SGCore_Dbg_Set(report_func fnReport);	
+
+//! инициализация подсистемы
+SX_LIB_API void SGCore_0Create(
+	const char *szName,			//!< передваваемое имя подсистемы
+	HWND hWnd,					//!< дескриптор окна в которое будет осуществляться рендер
+	int iWidth,					//!< ширина области рендера
+	int iHeigth,				//!< высота области рендера
+	bool isWindowed,			//!< оконный режим использовать ли? иначе полноэкранный
+	DWORD dwFlags,				//!< флаги создания устрайства (стандартные dx)
+	bool isUnic = true			//!< должна ли подсистема быть уникальной на основе имени
+	);
+
+//! уничтожение либы
+SX_LIB_API void SGCore_AKill();	
+
+//! возвращает dx устройство
+SX_LIB_API IDirect3DDevice9* SGCore_GetDXDevice();	
+
+//! возвращает массив всех доступных разрешений монитора, в iCount записывает размер массива
+SX_LIB_API const DEVMODE* SGCore_GetModes(int *iCount);
+
+//!@}
+
+//#############################################################################
+
+/*! \name Отладочное сообщение в окне рендера
+ \note Графическое ядро предусматривает наличие текстового сообщения в окне рендера, которое формирует непосредственно сам программист и дает команду на его вывод
+@{*/
+
+/*!< размер отладочного сообщения, выводимого в окно рендера */
+#define SXGC_STR_SIZE_DBG_MSG 4096 
+
+/*! Вывод отладочного сообщения в окно рендера.
+Аргументы аналогичны стандартным функциям типа printf.
+*/
+SX_LIB_API void SGCore_DbgMsg(const char *szFormat, ...);
+
+//!@}
+
+//#############################################################################
+
+/*! \name Обработка потери/восстановления устройства 
+ \warning Функции обработки потери/восстановления устройства обрабатывают ресурсы только в пределах данной библиотеки, другие библиотеки должны сами производить данную обработку!
+!@{*/
+
+//! вызывать при потере устройства
+SX_LIB_API void SGCore_OnLostDevice();	
+
+//! вызывать при попытке сброса устройства
+SX_LIB_API bool SGCore_OnDeviceReset(
+	int iWwidth,		//!< новая ширина окна
+	int iHeigth,		//!< новая выоста окна
+	bool isWindewed		//!< true - оконный режим, false - полноэкранный
+	);	
+
+//! вызывать при сбросе устроства
+SX_LIB_API void SGCore_OnResetDevice();	
+
+//! отрисовка full screen quad (уже смещенного как надо чтобы не было размытия)
+SX_LIB_API void SGCore_ScreenQuadDraw();
+
+//!@}
+
+//#############################################################################
+
+/*! \name Базовые функции установки настроек выборки из текстуры 
+id - идентификатор текстурного слота
+value - для Filter D3DTEXTUREFILTERTYPE, для Address D3DTEXTUREADDRESS
+@{*/
+
+//! установка фильтрации для конкретного слота
+SX_LIB_API void SGCore_SetSamplerFilter(DWORD dwNum, DWORD dwValue);	
+
+//! установка фильтрации для набора слотов от begin_id до end_id
+SX_LIB_API void SGCore_SetSamplerFilter2(DWORD dwNumStart, DWORD dwCount, DWORD dwValue);
+
+
+//! установка адресации для конкретного слота
+SX_LIB_API void SGCore_SetSamplerAddress(DWORD dwNum, DWORD dwValue);
+
+//! установка адресации для набора слотов от begin_id до end_id
+SX_LIB_API void SGCore_SetSamplerAddress2(DWORD dwNumStart, DWORD dwCount, DWORD dwValue);
+
+//!@}
+
+//#############################################################################
+
+/*! \defgroup sxgcore_redefinition_func Переопределяемые функции
+ \ingroup sxgcore
+ \note sxgcore содержит базовые и необходимые функции для переопределения их пользователем, которые будут доступны из графического ядра в других библиотеках зависимых от графического ядра, но в тоже время, эти функции могут быть переопределены функциями из других библиотек. \n
+Это обеспечивает централизованную обобщенную зависимость от самого графического ядра и исключает перекрестные зависимости библиотек между собой, позволяя программисту воздействовать на ценрт управления не  из центра. \n
+Переопределяемые функции могут быть переопределены во внутреннем состоянии, то есть функция обертка так и останется функцией оберткой только будет вызывать уже переопределенную функцию. \n
+Переопределяемые функции изначально выполняют штатные действия исходя из их назначения, и могут вообще не переопределяться если так надо программисту, то есть необходимость в их переопределении исходит только от программиста. \n
+@{*/
+
+/*! \name Прототипы переопределяемых функций 
+@{*/
+
+/*! draw indexed primitive, команда отрисовки.
+Аналогична DrawIndexedPrimitive, в дополнение к DIP инкрементирует счетчик DIPов в int регистрах по индексу #G_RI_INT_COUNT_DIP, обнуление данных только на стороне приложения
+*/
+typedef void(*g_func_dip) (UINT uiTypePrimitive, long lBaseVertexIndex, UINT uiMinVertexIndex, UINT uiNumVertices, UINT uiStartIndex, UINT uiPrimitiveCount);
+
+/*! установка материала id, world - мировая матрица.
+По умолчанию установка текстуры в нулевой текстурный слот, id – идентификатор материала (по умолчанию - текстуры), world – матрица трансформации модели
+*/
+typedef void(*g_func_mtl_set) (ID id, float4x4 *pWorld);
+
+/*! загрузка материала, szName - имя текстуры с расширением, iMtlType - тип материала на случай провала загрузки.
+Загрузка материала (по умолчанию – текстуры) с именем name, iMtlType – типа материала, 
+будет задействован только в случае провала определения типа материала (по умолчанию не используется) - 
+тип стандартного материала будет определен на основании iMtlType, может принимать одно из значений MTL_TYPE_
+*/
+typedef ID(*g_func_mtl_load) (const char *szName,	int iMtlType);
+
+//! получить сорт материала, по дефолту 0
+typedef int(*g_func_mtl_get_sort) (ID id);
+
+//! получить физический тип материала
+typedef int(*g_func_mtl_get_physic_type)(ID id);
+
+//! рисовать ли подгруппы моделей данного материала раздельно?
+typedef bool(*g_func_mtl_group_render_is_singly) (ID id);
+
+//!@}
+
+/*! \name Переопределяемые функции(переопределение реализации внутри)
+!@{*/
+
+//! \copydoc g_func_dip
+SX_LIB_API void SGCore_DIP(UINT uiTypePrimitive, long lBaseVertexIndex, UINT uiMinVertexIndex, UINT uiNumVertices, UINT uiStartIndex, UINT uiPrimitiveCount);
+
+//! \copydoc g_func_mtl_set
+SX_LIB_API void SGCore_MtlSet(ID id, float4x4 *pWorld);
+
+//! \copydoc g_func_mtl_load
+SX_LIB_API ID SGCore_MtlLoad(const char *szName, int iMtlType);
+
+//! \copydoc g_func_mtl_get_sort
+SX_LIB_API int SGCore_MtlGetSort(ID id);
+
+//! \copydoc g_func_mtl_get_physic_type
+SX_LIB_API int SGCore_MtlGetPhysicType(ID id);
+
+//! \copydoc g_func_mtl_group_render_is_singly
+SX_LIB_API bool SGCore_MtlGroupRenderIsSingly(ID id);
+
+//!@}
+
+//##########################################################################
+
+/*! \name Переопределение функций
+!@{*/
+
+//! переназначение g_func_dip
+SX_LIB_API void SGCore_SetFunc_DIP(g_func_dip fnFunc);
+
+//! переназначение g_func_mtl_set
+SX_LIB_API void SGCore_SetFunc_MtlSet(g_func_mtl_set fnFunc);
+
+//! переназначение g_func_mtl_load
+SX_LIB_API void SGCore_SetFunc_MtlLoad(g_func_mtl_load fnFunc);
+
+//! переназначение g_func_mtl_get_sort
+SX_LIB_API void SGCore_SetFunc_MtlGetSort(g_func_mtl_get_sort fnFunc);
+
+//! переназначение g_func_mtl_get_physic_type
+SX_LIB_API void SGCore_SetFunc_MtlGetPhysicType(g_func_mtl_get_physic_type fnFunc);
+
+//! переназначение g_func_mtl_group_render_is_singly
+SX_LIB_API void SGCore_SetFunc_MtlGroupRenderIsSingly(g_func_mtl_group_render_is_singly fnFunc);
+
+//!@}
+
+//!@} group sxgcore_redefinition_func
+
+//#############################################################################
+
+/*! \defgroup sxgcore_shaders Шейдеры
+ \ingroup sxgcore
+ \note Распознавание  шейдеров (обращение через функции) происходит на основе идентификаторов представленных типом ID \n
+Если речь идет об идентификации на основе имени то имя в данном случае эта та строка name которая была передана SGCore_ShaderLoad \n
+Все шейдеры загружаются с версией 3.0 \n
+Если имя шейдер не содержит нижний пробел (_) то значит шейдера находится в корне директории \n
+Если шейдер содержит нижний пробел (_) то строка до первого нижнего проблема это имя папки в котором находится шейдер с целым именем \n
+Пример: pp_shader.vs - лежит по загружаемому пути: /pp/pp_shader.vs
+@{*/
+
+/*! \name Ограничения на размеры
+@{*/
+
+//! максимальный размер имени директории (до _)
+#define SXGC_SHADER_MAX_SIZE_DIR 64
+
+//! максимальный размер имени с расширением (после _)
+#define SXGC_SHADER_MAX_SIZE_NAME 64
+
+//! общий максимальный  размер имени текстуры с расширением
+#define SXGC_SHADER_MAX_SIZE_DIRNAME SXGC_SHADER_MAX_SIZE_DIR + SXGC_SHADER_MAX_SIZE_NAME
+
+//! максимальный размер пути до файла шейдера (без имени файла)
+#define SXGC_SHADER_MAX_SIZE_STDPATH 256
+
+//! максимальный размер полного пути до шейдера (включая имя шейдера)
+#define SXGC_SHADER_MAX_SIZE_FULLPATH SXGC_SHADER_MAX_SIZE_STDPATH + SXGC_SHADER_MAX_SIZE_DIRNAME
+
+
+//! максимальная длина имени переменной в шейдере
+#define SXGC_SHADER_VAR_MAX_SIZE 64
+
+//! максимальное количество переменных в шейдере
+#define SXGC_SHADER_VAR_MAX_COUNT 64
+
+//! количество макросов в массиве макросов
+#define SXGC_SHADER_COUNT_MACRO 12
+
+//!@}
+
+//**************************************************************************
+
+//! типы шейдеров (int type_shader)
+enum SHADER_TYPE
+{
+	SHADER_TYPE_VERTEX,	//!< вершинный
+	SHADER_TYPE_PIXEL	//!< пиксельный
+};
+
+//! типы проверок дубликатов шейдеров
+enum SHADER_CHECKDOUBLE
+{
+	SHADER_CHECKDOUBLE_NONE,	//!< нет проверки
+	SHADER_CHECKDOUBLE_PATH,	//!< проверка по пути (имени шейдера с расширением)
+	SHADER_CHECKDOUBLE_NAME		//!< проверка по пользовательскому имени
+};
+
+//**************************************************************************
+
+//! загрузить все шейдеры поставленные в очередь
+SX_LIB_API void SGCore_ShaderAllLoad();
+
+//! поставить шейдер в очередь загрузки
+SX_LIB_API ID SGCore_ShaderLoad(
+	SHADER_TYPE type_shader,		//!< тип шейдера
+	const char *szPath,				//!< имя файла шейдера с расширением
+	const char *szName,				//!< имя шейдера которое присвоится при загрузке
+	SHADER_CHECKDOUBLE check_double,//!< проверять ли на уникальность
+	D3DXMACRO *pMacro = 0			//!< макросы
+	);
+
+//! существует ли файл name в папке с шейдерами
+SX_LIB_API bool SGCore_ShaderFileExists(const char *szName);
+
+//! записывает пользовательское имя шейдера в name
+SX_LIB_API void SGCore_ShaderGetName(SHADER_TYPE type_shader, ID idShader, char *szName);
+
+//! записывает имя шейдер с расширением в path
+SX_LIB_API void SGCore_ShaderGetPath(SHADER_TYPE type_shader, ID idShader, char *szPath);
+
+//! существует ли шейдер с пользовательским именем name, если да то возвращает id
+SX_LIB_API ID SGCore_ShaderExistsName(SHADER_TYPE type_shader, const char *szName);
+
+//! существует ли шейдер с именем файла и расширением name, если да то возвращает id
+SX_LIB_API ID SGCore_ShaderExistsPath(SHADER_TYPE type_shader, const char *szPath);
+
+//! загружен ли шейдер с данным id
+SX_LIB_API bool SGCore_ShaderIsValidated(SHADER_TYPE type_shader, ID idShader);
+
+
+//! обновление шейдера по имени
+SX_LIB_API void SGCore_ShaderUpdateN(SHADER_TYPE type_shader, const char *szName);
+
+//! обновление шейдера по id
+SX_LIB_API void SGCore_ShaderUpdate(SHADER_TYPE type_shader, ID idShader);
+
+//! перезагрузить все шейдеры, с учетом макросов
+SX_LIB_API void SGCore_ShaderReloadAll();	
+
+
+//! получить идентификатор шейдера по имени
+SX_LIB_API ID SGCore_ShaderGetID(SHADER_TYPE type_shader, const char *szName);
+
+//! бинд шейдера по имени
+SX_LIB_API void SGCore_ShaderBindN(SHADER_TYPE type_shader, const char *szName);
+
+//! бинд шейдера по id
+SX_LIB_API void SGCore_ShaderBind(SHADER_TYPE type_shader, ID idShader);
+
+
+//! обнуление биндов шейдеров
+SX_LIB_API void SGCore_ShaderUnBind();	
+
+//**************************************************************************
+
+/*! \name Передача данных в шейдер
+@{*/
+
+//! передача float значений в шейдер по имени
+SX_LIB_API void SGCore_ShaderSetVRFN(
+	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
+	const char *szNameShader,	//!< пользовательское имя шейдера
+	const char *szNameVar,		//!< имя переменной которой присваивается значение
+	void *pData,				//!< указатель на массив данных
+	int iCountFloat4 = 0		//!< количество float4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
+	);
+
+//! передача float значений в шейдер по ID
+SX_LIB_API void SGCore_ShaderSetVRF(
+	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
+	ID idShader,				//!< идентификатор шейдера
+	const char *szNameVar,		//!< имя переменной которой присваивается значение
+	void *pData,				//!< указатель на массив данных
+	int iCountFloat4 = 0		//!< количество float4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
+	);
+
+//! передача int значений в шейдер по имени
+SX_LIB_API void SGCore_ShaderSetVRIN(
+	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
+	const char *szNameShader,	//!< пользовательское имя шейдера
+	const char *szNameVar,		//!< имя переменной которой присваивается значение
+	void *pData,				//!< указатель на массив данных
+	int iCountInt4 = 0			//!< количество int4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
+	);
+
+//! передача int значений в шейдер по ID
+SX_LIB_API void SGCore_ShaderSetVRI(
+	SHADER_TYPE type_shader,	//!< тип шейдера из #SHADER_TYPE
+	ID idShader,				//!< идентификатор шейдера
+	const char *szNameVar,		//!< имя переменной которой присваивается значение
+	void *pData,				//!< указатель на массив данных
+	int iCountInt4 = 0			//!< количество int4 значений в передаваемом массиве, если меньше одного значит количество будет взято из шейдера
+	);
+
+//!@}
+//!@} sxgcore_shaders
+
+//#############################################################################
+
+/*! \defgroup sxgcore_loadtex Загружаемые текстуры
+ \ingroup sxgcore
+ \note Распознавание текстур (обращение через функции) происходит на основе идентификаторов представленных типом ID. \n
+Имя текстуры обязательно долно содержать нижний пробел (_), строка до первого нижнего проблема это имя папки в котором находится текстура с целым именем. \n
+Например: mtl_tex.dds - лежит по загружаемому пути: /mtl/mtl_tex.dds
+@{*/
+
+/*! \name Ограничения на размеры
+@{*/
+
+//! максимальный размер имени директории (до _)
+#define SXGC_LOADTEX_MAX_SIZE_DIR 64
+
+//! максимальный размер имени с расширением (после _)
+#define SXGC_LOADTEX_MAX_SIZE_NAME 64
+
+//! общий максимальный  размер имени текстуры с расширением
+#define SXGC_LOADTEX_MAX_SIZE_DIRNAME SXGC_LOADTEX_MAX_SIZE_DIR + SXGC_LOADTEX_MAX_SIZE_NAME
+
+//! максимальный размер пути до файла текстуры (без имени файла)
+#define SXGC_LOADTEX_MAX_SIZE_STDPATH 256
+
+//! максимальный размер полного пути до текстуры (включая имя текстуры)
+#define SXGC_LOADTEX_MAX_SIZE_FULLPATH SXGC_LOADTEX_MAX_SIZE_STDPATH + SXGC_LOADTEX_MAX_SIZE_DIRNAME
+
+
+//! количество mipmap уровней в загружаемых текстурах
+#define SXGC_LOADTEX_COUNT_MIPMAP 5	
+
+/*! формат в который будут преобразованы загружаемые текстуры
+ \warning если установить формат со сжатием то необходимо следовать всем правилам оформления текстур для данного формата
+*/
+#define SXGC_LOADTEX_FORMAT_TEX D3DFMT_FROM_FILE
+
+//!@}
+
+//**************************************************************************
+
+/*! \name Типы материалов
+!@{*/
+
+#define MTL_TYPE_GEOM 0		/*!< статическая геометрия */
+#define MTL_TYPE_GRASS 1	/*!< растительность - трава */
+#define MTL_TYPE_TREE 2		/*!< растительность - деревья */
+#define MTL_TYPE_SKIN 3		/*!< скелетная модель */
+//#define MTL_LIGHT 4
+
+//!@}
+
+//! типы текстур
+enum LOAD_TEXTURE_TYPE
+{
+	LOAD_TEXTURE_TYPE_LOAD,		//!< загружаемая
+	LOAD_TEXTURE_TYPE_CONST,	//!< неудаляемая загружаемая
+	LOAD_TEXTURE_TYPE_CUSTOM,	//!< созданная пользователем
+
+	/*! самоопределение типа, на тот случай когда обновляем текстуру которая точно есть.
+	Если определить этот тип, а внутри у текстуры на самом деле нет типа (скорее всего нет текстуры)
+	то будет определен LOAD_TEXTURE_TYPE_LOAD
+	*/
+	LOAD_TEXTURE_TYPE_SELF,
+};
+
+//**************************************************************************
+
+//! существует ил файл name в папке с текстурами
+SX_LIB_API bool SGCore_LoadTexFileExists(const char *szName);	
+
+//! очистить список загружаемых текстур
+SX_LIB_API void SGCore_LoadTexClearLoaded();				
+
+//! удалить тектуру по id (независимо от типа)
+SX_LIB_API void SGCore_LoadTexDelete(ID idTexture);				
+
+//! добавляем имя текстуры, взамен получаем на нее ID (поставить в очередь)
+SX_LIB_API ID SGCore_LoadTexAddName(const char *szName, LOAD_TEXTURE_TYPE type);
+
+//! получить id по имени
+SX_LIB_API ID SGCore_LoadTexGetID(const char *szName);
+
+//! получить имя по id
+SX_LIB_API void SGCore_LoadTexGetName(ID idTexture, char *szName);
+
+
+/*! создать место для текстуры tex и присвоить ей имя name, возвращает id
+ \warning создавать текстур необходимо в managed pool (D3DPOOL_MANAGED) ибо обработка потери и восстановления устройства сюда не приходит
+*/
+SX_LIB_API ID SGCore_LoadTexCreate(const char *szName, IDirect3DTexture9 *pTexture);
+
+/*! обновить/перезагрузить текстуру name, если текстуры не было в списке то добавляет.
+Если текстуру надо обновить, но тип у нее заранее не известен, но она точно уже загружена  
+то можно использовать тип самоопределения LOAD_TEXTURE_TYPE_SELF, тогда тип текстуры не изменится
+*/
+SX_LIB_API ID SGCore_LoadTexUpdateN(const char *szName, LOAD_TEXTURE_TYPE type);
+
+//! обновить/перезагрузить текстуру
+SX_LIB_API void SGCore_LoadTexUpdate(ID idTexture);
+
+//! возвращает текстуру по id
+SX_LIB_API IDirect3DTexture9* SGCore_LoadTexGetTex(ID idTexture);
+
+//! загрузка всех текстур поставленных в очередь, если есть очередь
+SX_LIB_API void SGCore_LoadTexAllLoad();	
+
+//!@} sxgcore_loadtex
+
+//#############################################################################
+
+/*! \defgroup sxgcore_rt Render targets
+ \ingroup sxgcore
+ \note Cброс и восстановление устройства сюда приходят
+@{*/
+
+//! добавить новый render target
+SX_LIB_API ID SGCore_RTAdd(
+	UINT iWidth,			//!< ширина
+	UINT iHeight,			//!< высота
+	UINT iLevels,			//!< количество mip-map уровней
+	DWORD dwUsage,			//!< признак применения, возможные значения из D3DUSAGE_
+	D3DFORMAT format,		//!< формат из D3DFORMAT
+	D3DPOOL pool,			//!< где будет размещена текстура, из D3DPOOL
+	const char *szName,		//!< имя rt
+	/*! коэфициент размеров rt относительно области рендера 
+	(если rt и размер области одинаковы то 1, если rt меньша на 0.5 то 0.5) 
+	если указаны фиксированные значения то ставить 0, это нужно для устновления размеров при восстановлении устройства
+	*/
+	float fCoefFullScreen
+	);
+
+//! удалить rt по имени
+SX_LIB_API void SGCore_RTDeleteN(const char *szName);	
+
+//! удалить rt по id
+SX_LIB_API void SGCore_RTDelete(ID id);				
+
+//! возвращает id по имени
+SX_LIB_API ID SGCore_RTGetNum(const char *szName);
+
+//! возвращает текстуру по имени
+SX_LIB_API IDirect3DTexture9* SGCore_RTGetTextureN(const char *szName);
+
+//! возвращает текстуру по id
+SX_LIB_API IDirect3DTexture9* SGCore_RTGetTexture(ID id);				
+
+//!@} sxgcore_rt
+
+//#############################################################################
+
+/*! \defgroup sxgcore_dse_static Статическая модель dse формата
+ \ingroup sxgcore
+ \note sxgcore предоставляет возможность загрузки статических моделей, формат вершин которых представлен структурой #vertex_static, которая объявлена в файле ModelFile.h
+ \todo Описать формат файла статической модели dse
+@{*/
+
+//! структура статической модели dse
+struct ISXDataStaticModel : public IBaseObject
+{
+	virtual ~ISXDataStaticModel(){};
+
+	virtual ISXDataStaticModel* getCopy()=0;//!< получить абсолютную копию модели
+	
+	IDirect3DVertexBuffer9 *m_pVertexBuffer;//!< вершиный буфер
+	IDirect3DIndexBuffer9 *m_pIndexBuffer;	//!< индексный буфер
+
+	UINT m_uiSubsetCount;		//!< количество подгрупп
+	char **m_ppTextures;		//!< массив имен текстур без расширения
+	UINT *m_pStartIndex;		//!< массив стартовых позиций индексов для каждой подгруппы
+	UINT *m_pIndexCount;		//!< массив количества индексов для каждой подгруппы
+	UINT *m_pStartVertex;		//!< массив стартовых позиций вершин для каждой подгруппы
+	UINT *m_pVertexCount;		//!< массив количества вершин для каждой подгруппы
+	UINT m_uiAllIndexCount;		//!< общее количество индексов
+	UINT m_uiAllVertexCount;	//!< общее количество вершин
+
+	float4_t m_vBSphere;
+	float3_t m_vBBMax, m_vBBMin;
+};
+
+//! создать статическую модель
+SX_LIB_API ISXDataStaticModel* SGCore_StaticModelCr();	
+
+//! загрузить статическую модель, data инициализируется внутри
+SX_LIB_API void SGCore_StaticModelLoad(const char *szFile, ISXDataStaticModel **ppData);	
+
+//! сохранить статическую модель
+SX_LIB_API void SGCore_StaticModelSave(const char *szFile, ISXDataStaticModel **pData);
+
+//! возвращает декларацию вершин статической модели
+SX_LIB_API IDirect3DVertexDeclaration9* SGCore_StaticModelGetDecl();	
+
+//!@} sxgcore_dse_static
+
+//#############################################################################
+
+/*! \defgroup sxgcore_bb Ограничивающий объем
+ \ingroup sxgcore
+@{*/
+
+/*! Простой объект трансформаций с минимальным описанием.
+ \note Для корректного использования необходимо сначала установить позицию/поворот/масштаб после чего CalculateWorld
+*/
+struct ISXTransObject : public IBaseObject
+{
+	virtual ~ISXTransObject(){};
+
+	SX_ALIGNED_OP_MEM
+
+	//! просчет мировой матрицы трансформации на основе поворотов масштабирования и позиции
+	virtual inline float4x4* calcWorld() = 0;	
+
+	float3 m_vPosition;	//!< позиция
+	float3 m_vRotation;	//!< повороты
+	float3 m_vScale;	//!< масштабирование
+	float4x4 m_mWorld;	//!< мировая матрица на основе поворотов масштабирования и позиции
+};
+
+//! создать ISXTransObject
+SX_LIB_API ISXTransObject* SGCore_CrTransObject();	
+
+//! структура описывающая ограничивающий квадрат (а точнее параллелепипед) в пространстве экрана
+struct SXPosBBScreen
+{
+	float x;		//!< позиция по оси x в пространстве экрана
+	float y;		//!< позиция по оси y в пространстве экрана
+	float width;	//!< ширина в пикселях
+	float height;	//!< высота в пикселях
+	float maxdepth;	//!< конец объекта глубина 0-1
+	float mindepth;	//!< начало объект глубина 0-1
+	bool IsVisible;	//!< виден ли квадрат наблюдателю
+};
+
+
+/*! класс ограничивающего объема
+ \warning GetMinMax, GetSphere до вызова CalcWorldAndTrans возвращают нетрансформирвоанные данные
+*/
+class ISXBound : public virtual ISXTransObject
+{
+public:
+	virtual ~ISXBound(){};
+
+	SX_ALIGNED_OP_MEM
+
+	/*! Просчет ограничивающего объема по вершинному буферу*/
+	virtual void calcBound(
+		IDirect3DVertexBuffer9 *pVertexBuffer, //!< вершинный буфер (незаблокированный), в вершинах которого первым элементом идет позиция float3_t вектор  
+		DWORD dwCountVertex,	//!< количество вершин
+		DWORD dwBytePerVertex	//!< количество байт в вершине
+		) = 0;
+
+	//! функция просчета мировой матрицы и трансформации минимума и максимума
+	virtual float4x4*  calcWorldAndTrans() = 0;
+
+	//! просчет структуры SXPosBBScreen 
+	virtual void getPosBBScreen(
+		SXPosBBScreen *res,		//!< инициализированная стркутура #SXPosBBScreen для записи
+		float3* campos,			//!< позиция наблюдателя
+		float3* sizemapdepth,	//!< размер карты глубины глябины для просчета float3(ширина, высота, максильная глубина)
+		float4x4* mat			//!< произведение видовой и проекционной матриц
+		) = 0;
+
+	//! установить экстремум, также просчитает и сферу
+	virtual void setMinMax(const float3 *pMin, const float3 *pMax) = 0;	
+
+	//! запишет в min и max точки экстремума
+	virtual void getMinMax(float3 *pMin, float3 *pMax) const = 0;			
+
+
+	//! установить сферу, просчитает также и параллелепипед
+	virtual void setSphere(const float3 *pCenter, float fRadius) = 0;	
+
+	//! запишет в center центр сферы, в radius радиус сферы
+	virtual void getSphere(float3 *pCenter, float *pRadius) const = 0;	
+
+
+	//! находится ли точка point в пределах сферы
+	virtual bool isPointInSphere(const float3 *pPoint) const = 0;	
+
+	//! находится ли точка point в пределах параллелепипеда
+	virtual bool isPointInBox(const float3 *pPoint) const = 0;		
+};
+
+//! создать ISXBound
+SX_LIB_API ISXBound* SGCore_CrBound(); 
+
+//!@} sxgcore_bb
+
+//#############################################################################
+
+//! создание меша (ID3DXMesh) конуса 
+SX_LIB_API void SGCore_FCreateCone(
+	float fTopRadius,		//!< верхний радиус
+	float fBottomRadius,	//!< нижний радиус
+	float fHeight,			//!< длина
+	ID3DXMesh ** ppMesh,	//!< выходной меш
+	UINT iSideCount			//!< количество частей??
+	);
+
+//! просчет ограничивающего объема по вершинному буфер
+SX_LIB_API void SGCore_FCompBoundBox(
+	IDirect3DVertexBuffer9* vertex_buffer, //!< вершинный буфер (незаблокированный), в вершинах которого первым элементом идет позиция float3_t вектор
+	ISXBound** bound,	//!< инициализированный ISXBound
+	DWORD count_vert,	//!< количество вершин
+	DWORD bytepervert	//!< количество байт в вершине
+	);
+
+//! создание меша (ID3DXMesh) ограничивающего объема
+SX_LIB_API void SGCore_FCreateBoundingBoxMesh(float3* min, float3* max, ID3DXMesh** bbmesh);
+
+/*! \name Оптимизация индексных буферов
+@{*/
+
+//! 16 битные индексные буферы
+SX_LIB_API void SGCore_OptimizeIndecesInSubsetUint16(
+	uint16_t* ib,		//!< указатель на индексный буфер
+	uint16_t numFaces,	//!< количество индексов
+	uint16_t numVerts	//!< количество вершин
+	);	
+
+//! 16 битные индексные буферы
+SX_LIB_API void SGCore_OptimizeIndecesInSubsetUint32(
+	uint32_t* ib,		//!< указатель на индексный буфер
+	uint32_t numFaces,	//!< количество индексов
+	uint32_t numVerts	//!< количество вершин
+	);	
+//!@}
+
+//##########################################################################
+
+/*! \defgroup sxgcore_bb_intersect Функции просчета попаданий точек в объемы и деление объемов
+ \ingroup sxgcore
+@{*/
+
+/*! \name Просчеты попадания точки/точек в объем 
+ \note 2d - на основании x и z координат \n
+3d - на основании всех трех координат \n
+Abs - абсолютное нахождение внутри, не на границах, иное допускает нахождение на границах 
+@{*/
+
+//! находится ли точка pos в пределах [min,max] по осям x z
+SX_LIB_API bool SGCore_0InPos2D(float3* min, float3* max, float3* pos);		
+
+//! находится ли точка pos в пределах (min,max) по осям x z
+SX_LIB_API bool SGCore_0InPosAbs2D(float3* min, float3* max, float3* pos);	
+
+
+//! возвращает количество точек (p1,p2,p3) лежащих в пределах [min,max]  по осям x z
+SX_LIB_API int SGCore_0CountPosPoints2D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
+
+//! возвращает количество точек (p1,p2,p3) лежащих в пределах (min,max)  по осям x z
+SX_LIB_API int SGCore_0CountPosPointsAbs2D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
+
+//! лежит ли хотя бы одна точка абсолютно в (min,max) или хотя бы 2 точки в пределах [min,max], из числа трех точек p1,p2,p3, по осям x z
+SX_LIB_API bool SGCore_0InPosPoints2D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
+
+
+//! находится ли точка pos в пределах [min,max]
+SX_LIB_API bool SGCore_0InPos3D(float3* min, float3* max, float3* pos);		
+
+//! находится ли точка pos в пределах (min,max)
+SX_LIB_API bool SGCore_0InPosAbs3D(float3* min, float3* max, float3* pos);	
+
+
+//! возвращает количество точек (p1,p2,p3) лежащих в пределах [min,max]
+SX_LIB_API int SGCore_0CountPosPoints3D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
+
+//! возвращает количество точек (p1,p2,p3) лежащих в пределах (min,max)
+SX_LIB_API int SGCore_0CountPosPointsAbs3D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
+
+//! лежит ли хотя бы одна точка абсолютно в (min,max) или хотя бы 2 точки в пределах [min,max], из числа трех точек p1,p2,p3
+SX_LIB_API bool SGCore_0InPosPoints3D(float3* min, float3* max, float3* p1, float3* p2, float3* p3);
+
+//!@}
+
+//**************************************************************************
+
+/*! кубическое (octo) деление объема (по всем трем осям)
+ \warning массивы и объекты должны быть заранее инициализированны
+ */
+SX_LIB_API void SGCore_0ComBoundBoxArr8(ISXBound* bound, ISXBound** bound_arr);
+
+/*! квадратичное (quad) деление объема (по двум осям x и z)
+ \warning массивы и объекты должны быть заранее инициализированны
+*/
+SX_LIB_API void SGCore_0ComBoundBoxArr4(ISXBound* bound, ISXBound** bound_arr);
+
+//! находит квадрат расстояния между лучем и точкой
+SX_LIB_API float SGCore_0DistancePointBeam2(const float3 & p, const float3 & start, const float3 & dir);
+
+//! возвращает пересекаются ли боксы или нет
+SX_LIB_API bool SGCore_0InretsectBox(const float3 * min1, const float3 * max1, const float3 * min2, const float3 * max2);
+
+struct SXTriangle
+{
+	float3_t a;
+	float3_t b;
+	float3_t c;
+	SXTriangle()
+	{
+	};
+	SXTriangle(float3_t _a, float3_t _b, float3_t _c) :a(_a), b(_b), c(_c)
+	{
+	};
+
+	//Проверкка пересечения треугольника и отрезка
+	bool IntersectLine(const float3 & l1, const float3 &l2, float3 * p)
+	{
+		float3 n = SMVector3Normalize(SMVector3Cross((b - a), (c - b)));
+		float d1 = SMVector3Dot((l1 - a), n) / SMVector3Length(n);
+		float d2 = SMVector3Dot((l2 - a), n) / SMVector3Length(n);
+		if ((d1 > 0 && d2 > 0) || (d1 < 0 && d2 < 0))
+			return(false);
+		*p = l1 + (l2 - l1) * (-d1 / (d2 - d1));
+		if (SMVector3Dot(SMVector3Cross((b - a), (*p - a)), n) <= 0) return(false);
+		if (SMVector3Dot(SMVector3Cross((c - b), (*p - b)), n) <= 0) return(false);
+		if (SMVector3Dot(SMVector3Cross((a - c), (*p - c)), n) <= 0) return(false);
+		return(true);
+	}
+};
+
+
+//!@} sxgcore_bb_intersect
+
+//#############################################################################
+
+/*! \defgroup sxgcore_camera Камера
+ \ingroup sxgcore
+ \todo Добавить в библиотеку математики плоскости и операции с ними, заменить dx плоскости на свои
+ \todo Возможно надо расширить возможности и абстракцию класса камеры, к примеру матрицу проекции хранить тоже в камере, и сделать отдельные функции для ее модификации
+@{
+*/
+
+//! структура описание плоскости
+struct CSXFrustumPlane
+{
+	float3_t m_vNormal;
+	float m_fDistance;
+
+	SX_ALIGNED_OP_MEM
+
+	void normalize()
+	{
+		float fDenom = sqrt((m_vNormal.x*m_vNormal.x) + (m_vNormal.y*m_vNormal.y) + (m_vNormal.z*m_vNormal.z));
+		m_vNormal.x = m_vNormal.x / fDenom;
+		m_vNormal.y = m_vNormal.y / fDenom;
+		m_vNormal.z = m_vNormal.z / fDenom;
+		m_fDistance = m_fDistance / fDenom;
+	}
+};
+
+//! класс описывающий фрустум
+class ISXFrustum : public IBaseObject
+{
+public:
+	virtual ~ISXFrustum(){};
+
+	SX_ALIGNED_OP_MEM
+
+	//! обновление фрустума, на вход матрицы по которым необходимо построить фрустум
+	virtual void update(
+		const float4x4 *pView,	//<! видовая матрица
+		const float4x4 *pProj	//<! проекционная матрица
+		) = 0;
+
+	//! находится ли точка во фрустуме
+	virtual bool pointInFrustum(const float3 *pPoint) const = 0;	
+
+	//! находится ли треугольник во фрутстуме
+	virtual bool polyInFrustum(const float3 *pPoint1, const float3 *pPoint2, const float3 *pPoint3) const = 0;		
+
+	//! находится ли полигон во фрустуме полностью
+	virtual bool polyInFrustumAbs(const float3 *pPoint1, const float3 *pPoint2, const float3 *pPoint3) const = 0;	
+
+
+	//! находится ли полигон во фрустуме
+	virtual bool sphereInFrustum(const float3 *pPoint, float fRadius) const = 0;	
+
+	//! находится ли сфера во фрустуме полностью
+	virtual bool sphereInFrustumAbs(const float3 *pPoint, float fRadius) const = 0;	
+
+	//! находится ли параллелепипед (описанный точками экстремума) во фрустуме
+	virtual bool boxInFrustum(float3 *pMin, float3 *pMax) const = 0;				
+
+
+	//! возвращает координаты точки фрустума, iNumPoint = [0,7]
+	virtual float3 getPoint(int iNumPoint) const = 0;
+
+	//! возвращает координаты центра фрустума
+	virtual float3 getCenter() const = 0;
+
+	//! устанавливает координаты точки фрустума, iNumPoint = [0,7]
+	virtual void setPoint(int iNumPoint, const float3 *pPoint) = 0;
+
+	//! устанавливает координаты центра фрустума
+	virtual void setCenter(const float3 *pCenter) = 0;
+};
+
+//! создать ISXFrustum
+SX_LIB_API ISXFrustum* SGCore_CrFrustum(); 
+
+//**************************************************************************
+
+//! камера
+class ISXCamera : public IBaseObject
+{
+public:
+	virtual ~ISXCamera(){};
+
+	SX_ALIGNED_OP_MEM
+
+	/*! \name Движение
+	 \note В метрах
+	@{*/
+
+	//! влево/вправо
+	virtual void posLeftRight(float fUnits) = 0;	
+
+	//! вверх/вниз
+	virtual void posUpDown(float fUnits) = 0;		
+
+	//! вперед/назад
+	virtual void posFrontBack(float fUnits) = 0;	
+
+	//!@}
+
+	/*! \name Вращение
+	 \note В радианах
+	@{*/
+
+	//! вращение вверх/вниз
+	virtual void rotUpDown(float fAngle) = 0;		
+
+	//! вращение вправо/влево
+	virtual void rotRightLeft(float fAngle) = 0;	
+
+	//! крен
+	virtual void roll(float fAngle) = 0;			
+
+	//! установить полное вращение
+	virtual void setOrientation(const SMQuaternion *pOrientation) = 0; 
+
+	//!@}
+
+	//! получаем матрицу вида в pMatrix
+	virtual void getViewMatrix(float4x4 *pMatrix) = 0;
+
+	/*! \name Базис
+	@{
+	*/
+
+	//! в pos записывает текущую позицию в мире
+	virtual void getPosition(float3 *pPos) const = 0;	
+
+	//! устанавливает позицию в мире
+	virtual void setPosition(const float3 *pPos) = 0;	
+
+
+	//! в right записывает парвый вектор
+	virtual void getRight(float3 *pRight) const = 0;
+
+	//! в up записывает верхний вектор
+	virtual void getUp(float3 *vUp) const = 0;		
+
+	//! в look записывает вектор направление взгляда
+	virtual void getLook(float3 *vLook) const = 0;	
+
+
+	//! в rot записывает углы поворотов по осям, в радианах
+	virtual void getRotation(float3 *vRot) const = 0;	
+
+	//повроты по осям
+
+	//! возвращает поворот по оси X, в радианах
+	virtual float getRotationX() const = 0;	
+
+	//! возвращает поворот по оси Y, в радианах
+	virtual float getRotationY() const = 0;	
+
+	//! возвращает поворот по оси Z, в радианах
+	virtual float getRotationZ() const = 0;	
+
+	//!@}
+
+	//! устанавливает FOV камеры
+	virtual void setFOV(float fFOV) = 0;
+
+	//! возвращает FOV камеры
+	virtual float getFOV() const = 0;	
+
+	//! обновление фрустума камеры
+	virtual void updateFrustum(const float4x4 *mProjection) = 0;
+
+	//! возвращает константный указатель фрустума
+	virtual const ISXFrustum* getFrustum() = 0;
+};
+
+//! создать ISXCamera
+SX_LIB_API ISXCamera* SGCore_CrCamera();	
+
+//!@} sxgcore_camera
+
+//#############################################################################
+
+/*! \defgroup sxgcore_sky Небо
+ \ingroup sxgcore
+@{*/
+
+/*! \name SkyBox
+ \note Используются кубические текстуры
+@{*/
+
+//! создание
+SX_LIB_API void SGCore_SkyBoxCr();	
+
+//! инициализирован ли skybox
+SX_LIB_API bool SGCore_SkyBoxIsCr();
+
+//! загружена ли текстура?
+SX_LIB_API bool SGCore_SkyBoxIsLoadTex();
+
+
+//! загрузка текстуры, texture - имя текстуры с расширением
+SX_LIB_API void SGCore_SkyBoxLoadTex(const char *szTexture);	
+
+//! смена текстуры, texture - имя текстуры с расширением
+SX_LIB_API void SGCore_SkyBoxChangeTex(const char *szTexture);
+
+//! в аргумент записывает путь до текущей активной текстуры
+SX_LIB_API void SGCore_SkyBoxGetActiveTex(char *szTexture);
+
+//! в аргумент записывает путь до следующей текстуры 9если включена смена)
+SX_LIB_API void SGCore_SkyBoxGetSecondTex(char *szTexture);
+
+
+//! установка угла поворота angle по оси y, в радианах
+SX_LIB_API void SGCore_SkyBoxSetRot(float fAngle);	
+
+//! возвращает угол поворота по оси y, в радианах
+SX_LIB_API float SGCore_SkyBoxGetRot();				
+
+
+//! установка цвета окраски в пределах 0-1, альфа компонента (w) - на сколько будет окрашен
+SX_LIB_API void SGCore_SkyBoxSetColor(const float4_t *pColor);	
+
+//! в color записывает текущий цвет окраски
+SX_LIB_API void SGCore_SkyBoxGetColor(float4_t *pColor);	
+
+//! рендер скайбокса
+SX_LIB_API void SGCore_SkyBoxRender(
+	float timeDelta,	//!< время рендера кадра в млсек 
+	const float3 *pPos	//!< позиция набладателя, эта же позиция будет центром skybox
+	);
+
+//!@}
+
+//**************************************************************************
+
+/*! \name SkyClouds
+
+ \note Простая плоскость параллельная xz на которую зеркально (х2) натягивается текстура, в постоянном движении.
+ Положение констатно.
+ Используются обычные 2д текстуры.
+@{*/
+
+//! создание
+SX_LIB_API void SGCore_SkyCloudsCr();		
+
+//! инициализирован ли sky clouds
+SX_LIB_API bool SGCore_SkyCloudsIsCr();		
+
+//! загружена ли текстура
+SX_LIB_API bool SGCore_SkyCloudsIsLoadTex();
+
+
+/*! установка размеров и позиции.
+ Так как позиция облаков константна то чтобы была илюзия полного покрытия уровня, необходимо облакам указывать размер в несколько раз больше чем весь доступный уровень, к примеру x2
+*/
+SX_LIB_API void SGCore_SkyCloudsSetWidthHeightPos(
+	float fWidth,			//!< ширина в метрах
+	float fHeight,			//!< высота в метрах
+	const float3 *pCenter	//!< позиция центра
+	);
+
+//! загрузка текстуры, texture - имя текстуры с расширением
+SX_LIB_API void SGCore_SkyCloudsLoadTex(const char *szNameTexture);	
+
+//! плавная смена текстуры, texture - имя текстуры с расширением
+SX_LIB_API void SGCore_SkyCloudsChangeTex(const char *szNameTexture);
+
+
+//! установка угла поворота angle по оси y, в радианах
+SX_LIB_API void SGCore_SkyCloudsSetRot(float fAngle);
+
+//! возвращает текущий угол поворота по оси y, в радианах
+SX_LIB_API float SGCore_SkyCloudsGetRot();			
+
+
+//! устанавливает коэфициент прозрачности, в пределах 0-1
+SX_LIB_API void SGCore_SkyCloudsSetAlpha(float fAlpha);	
+
+//! возвращает текущий коэфициент прозрачности
+SX_LIB_API float SGCore_SkyCloudsGetAlpha();			
+
+
+//! устанавливает коэфициент скорости движения
+SX_LIB_API void SGCore_SkyCloudsSetSpeed(float fSpeed);	
+
+//! возвращает текущий коэфициент скорости движения
+SX_LIB_API float SGCore_SkyCloudsGetSpeed();			
+
+
+//! установка цвета окраски в пределах 0-1, альфа компонента (w) - на сколько будет окрашен
+SX_LIB_API void SGCore_SkyCloudsSetColor(const float4_t *pColor);
+
+//! в color записывает текущий цвет окраски
+SX_LIB_API void SGCore_SkyCloudsGetColor(float4_t *pColor);
+
+//! рендер облаков
+SX_LIB_API void SGCore_SkyCloudsRender(
+	DWORD timeDetlta,		//!< время рендера кадра в млсек
+	const float3* pos,		//!< позиция набладателя
+	bool isShadow			//!< для теней ли рендерим?
+	);
+
+//!@}
+//!@} sxgcore_sky
+
+#endif
+
+/*! @} */
diff --git a/source/skyxengine.cpp b/source/skyxengine.cpp
index 3390f4485..88fa6eed9 100644
--- a/source/skyxengine.cpp
+++ b/source/skyxengine.cpp
@@ -286,7 +286,7 @@ void SkyXEngine_Init(HWND hWnd3D, HWND hWndParent3D)
 #ifndef SX_GAME
 	ISXCamera *pCamera = SGCore_CrCamera();
 	static const float *r_default_fov = GET_PCVAR_FLOAT("r_default_fov");
-	pCamera->SetFOV(*r_default_fov);
+	pCamera->setFOV(*r_default_fov);
 
 	SRender_SetCamera(pCamera);
 #endif
diff --git a/source/sxleveleditor/aigrid_callback.cpp b/source/sxleveleditor/aigrid_callback.cpp
index cf3a5d96b..5f00f6e68 100644
--- a/source/sxleveleditor/aigrid_callback.cpp
+++ b/source/sxleveleditor/aigrid_callback.cpp
@@ -3,41 +3,41 @@
 
 void SXLevelEditor::AIGridActivateAll(bool bf)
 {
-	ButtonAIQuadsDelSel->Visible(bf);
-	ButtonAIGridClear->Visible(bf);
-	ButtonAIGridGen->Visible(bf);
-	ButtonAIClearAll->Visible(bf);
-	StatiAIBBDimensions->Visible(bf);
-	StaticAIBBDimensionsWidth->Visible(bf);
-	EditAIBBDimensionsWidth->Visible(bf);
-	StaticAIBBDimensionsHeight->Visible(bf);
-	EditAIBBDimensionsHeight->Visible(bf);
-	StaticAIBBDimensionsDepth->Visible(bf);
-	EditAIBBDimensionsDepth->Visible(bf);
-	StaticAIBBPos->Visible(bf);
-	StaticAIBBPosX->Visible(bf);
-	EditAIBBPosX->Visible(bf);
-	StaticAIBBPosY->Visible(bf);
-	EditAIBBPosY->Visible(bf);
-	StaticAIBBPosZ->Visible(bf);
-	EditAIBBPosZ->Visible(bf);
-	ButtonAIBBFinish->Visible(bf);
-	ButtonAIGPGen->Visible(bf);
-	ButtonAIGPClear->Visible(bf);
-	RadioButtonAIGPAdd->Visible(bf);
-	RadioButtonAIGPDel->Visible(bf);
-	RadioButtonAIQuadAdd->Visible(bf);
-	RadioButtonAIQuadsMSel->Visible(bf);
-	RadioButtonAIQuadsSelDel->Visible(bf);
-	ButtonAIGridValidation->Visible(bf);
-	CheckBoxAIGridMarkedSplits->Visible(bf);
-	StaticAIStatistics->Visible(bf);
-	StaticAIStatsCountQuads->Visible(bf);
-	StaticAIStatsCountGP->Visible(bf);
-	StaticAIStatsCountSplits->Visible(bf);
-	EditAIStatsCountQuads->Visible(bf);
-	EditAIStatsCountGP->Visible(bf);
-	EditAIStatsCountSplits->Visible(bf);
+	ButtonAIQuadsDelSel->setVisible(bf);
+	ButtonAIGridClear->setVisible(bf);
+	ButtonAIGridGen->setVisible(bf);
+	ButtonAIClearAll->setVisible(bf);
+	StatiAIBBDimensions->setVisible(bf);
+	StaticAIBBDimensionsWidth->setVisible(bf);
+	EditAIBBDimensionsWidth->setVisible(bf);
+	StaticAIBBDimensionsHeight->setVisible(bf);
+	EditAIBBDimensionsHeight->setVisible(bf);
+	StaticAIBBDimensionsDepth->setVisible(bf);
+	EditAIBBDimensionsDepth->setVisible(bf);
+	StaticAIBBPos->setVisible(bf);
+	StaticAIBBPosX->setVisible(bf);
+	EditAIBBPosX->setVisible(bf);
+	StaticAIBBPosY->setVisible(bf);
+	EditAIBBPosY->setVisible(bf);
+	StaticAIBBPosZ->setVisible(bf);
+	EditAIBBPosZ->setVisible(bf);
+	ButtonAIBBFinish->setVisible(bf);
+	ButtonAIGPGen->setVisible(bf);
+	ButtonAIGPClear->setVisible(bf);
+	RadioButtonAIGPAdd->setVisible(bf);
+	RadioButtonAIGPDel->setVisible(bf);
+	RadioButtonAIQuadAdd->setVisible(bf);
+	RadioButtonAIQuadsMSel->setVisible(bf);
+	RadioButtonAIQuadsSelDel->setVisible(bf);
+	ButtonAIGridValidation->setVisible(bf);
+	CheckBoxAIGridMarkedSplits->setVisible(bf);
+	StaticAIStatistics->setVisible(bf);
+	StaticAIStatsCountQuads->setVisible(bf);
+	StaticAIStatsCountGP->setVisible(bf);
+	StaticAIStatsCountSplits->setVisible(bf);
+	EditAIStatsCountQuads->setVisible(bf);
+	EditAIStatsCountGP->setVisible(bf);
+	EditAIStatsCountSplits->setVisible(bf);
 
 	SXLevelEditor::AIGridEnableBB(!(SAIG_BBIsCreatedFinish()));
 
@@ -48,57 +48,57 @@ void SXLevelEditor::AIGridActivateAll(bool bf)
 	SAIG_BBGetDimensions(&tmpdim);
 	SAIG_BBGetPos(&tmppos);
 
-	EditAIBBDimensionsWidth->SetText(String(tmpdim.x).c_str());
-	EditAIBBDimensionsHeight->SetText(String(tmpdim.y).c_str());
-	EditAIBBDimensionsDepth->SetText(String(tmpdim.z).c_str());
+	EditAIBBDimensionsWidth->setText(String(tmpdim.x).c_str());
+	EditAIBBDimensionsHeight->setText(String(tmpdim.y).c_str());
+	EditAIBBDimensionsDepth->setText(String(tmpdim.z).c_str());
 
-	EditAIBBPosX->SetText(String(tmppos.x).c_str());
-	EditAIBBPosY->SetText(String(tmppos.y).c_str());
-	EditAIBBPosZ->SetText(String(tmppos.z).c_str());
+	EditAIBBPosX->setText(String(tmppos.x).c_str());
+	EditAIBBPosY->setText(String(tmppos.y).c_str());
+	EditAIBBPosZ->setText(String(tmppos.z).c_str());
 
-	EditAIStatsCountQuads->SetText(String((DWORD)SAIG_GridGetCountQuads()).c_str());
-	EditAIStatsCountGP->SetText(String((DWORD)SAIG_GraphPointGetCount()).c_str());
-	EditAIStatsCountSplits->SetText(String((DWORD)SAIG_GridGetCountSplits()).c_str());
+	EditAIStatsCountQuads->setText(String((DWORD)SAIG_GridGetCountQuads()).c_str());
+	EditAIStatsCountGP->setText(String((DWORD)SAIG_GraphPointGetCount()).c_str());
+	EditAIStatsCountSplits->setText(String((DWORD)SAIG_GridGetCountSplits()).c_str());
 }
 
 void SXLevelEditor::AIGridEnableBB(bool bf)
 {
-	StatiAIBBDimensions->Enable(bf);
-	StaticAIBBDimensionsWidth->Enable(bf);
-	EditAIBBDimensionsWidth->Enable(bf);
-	StaticAIBBDimensionsHeight->Enable(bf);
-	EditAIBBDimensionsHeight->Enable(bf);
-	StaticAIBBDimensionsDepth->Enable(bf);
-	EditAIBBDimensionsDepth->Enable(bf);
-	StaticAIBBPos->Enable(bf);
-	StaticAIBBPosX->Enable(bf);
-	EditAIBBPosX->Enable(bf);
-	StaticAIBBPosY->Enable(bf);
-	EditAIBBPosY->Enable(bf);
-	StaticAIBBPosZ->Enable(bf);
-	EditAIBBPosZ->Enable(bf);
-	ButtonAIBBFinish->Enable(bf);
-
-	ButtonAIGridClear->Enable(!bf);
-	ButtonAIGPGen->Enable(!bf);
-	ButtonAIGPClear->Enable(!bf);
-	RadioButtonAIGPAdd->Enable(!bf);
-	RadioButtonAIGPDel->Enable(!bf);
-	RadioButtonAIQuadAdd->Enable(!bf);
-	RadioButtonAIQuadsMSel->Enable(!bf);
-	RadioButtonAIQuadsSelDel->Enable(!bf);
-	ButtonAIGridValidation->Enable(!bf);
-	CheckBoxAIGridMarkedSplits->Enable(!bf);
-	StaticAIStatistics->Enable(!bf);
-	StaticAIStatsCountQuads->Enable(!bf);
-	StaticAIStatsCountGP->Enable(!bf);
-	StaticAIStatsCountSplits->Enable(!bf);
-	EditAIStatsCountQuads->Enable(!bf);
-	EditAIStatsCountGP->Enable(!bf);
-	EditAIStatsCountSplits->Enable(!bf);
-	ButtonAIQuadsDelSel->Enable(!bf);
-	ButtonAIGridGen->Enable(!bf);
-	ButtonAIClearAll->Enable(!bf);
+	StatiAIBBDimensions->setEnable(bf);
+	StaticAIBBDimensionsWidth->setEnable(bf);
+	EditAIBBDimensionsWidth->setEnable(bf);
+	StaticAIBBDimensionsHeight->setEnable(bf);
+	EditAIBBDimensionsHeight->setEnable(bf);
+	StaticAIBBDimensionsDepth->setEnable(bf);
+	EditAIBBDimensionsDepth->setEnable(bf);
+	StaticAIBBPos->setEnable(bf);
+	StaticAIBBPosX->setEnable(bf);
+	EditAIBBPosX->setEnable(bf);
+	StaticAIBBPosY->setEnable(bf);
+	EditAIBBPosY->setEnable(bf);
+	StaticAIBBPosZ->setEnable(bf);
+	EditAIBBPosZ->setEnable(bf);
+	ButtonAIBBFinish->setEnable(bf);
+
+	ButtonAIGridClear->setEnable(!bf);
+	ButtonAIGPGen->setEnable(!bf);
+	ButtonAIGPClear->setEnable(!bf);
+	RadioButtonAIGPAdd->setEnable(!bf);
+	RadioButtonAIGPDel->setEnable(!bf);
+	RadioButtonAIQuadAdd->setEnable(!bf);
+	RadioButtonAIQuadsMSel->setEnable(!bf);
+	RadioButtonAIQuadsSelDel->setEnable(!bf);
+	ButtonAIGridValidation->setEnable(!bf);
+	CheckBoxAIGridMarkedSplits->setEnable(!bf);
+	StaticAIStatistics->setEnable(!bf);
+	StaticAIStatsCountQuads->setEnable(!bf);
+	StaticAIStatsCountGP->setEnable(!bf);
+	StaticAIStatsCountSplits->setEnable(!bf);
+	EditAIStatsCountQuads->setEnable(!bf);
+	EditAIStatsCountGP->setEnable(!bf);
+	EditAIStatsCountSplits->setEnable(!bf);
+	ButtonAIQuadsDelSel->setEnable(!bf);
+	ButtonAIGridGen->setEnable(!bf);
+	ButtonAIClearAll->setEnable(!bf);
 }
 
 LRESULT SXLevelEditor_EditAIBBDimensions_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -107,19 +107,19 @@ LRESULT SXLevelEditor_EditAIBBDimensions_Enter(HWND hwnd, UINT msg, WPARAM wPara
 	float3 tmpdim;
 	SAIG_BBGetDimensions(&tmpdim);
 
-	if (hwnd == SXLevelEditor::EditAIBBDimensionsWidth->GetHWND())
+	if (hwnd == SXLevelEditor::EditAIBBDimensionsWidth->getHWND())
 	{
-		SXLevelEditor::EditAIBBDimensionsWidth->GetText(txt, 64);
+		SXLevelEditor::EditAIBBDimensionsWidth->getText(txt, 64);
 		sscanf(txt, "%f", &(tmpdim.x));
 	}
-	else if (hwnd == SXLevelEditor::EditAIBBDimensionsHeight->GetHWND())
+	else if (hwnd == SXLevelEditor::EditAIBBDimensionsHeight->getHWND())
 	{
-		SXLevelEditor::EditAIBBDimensionsHeight->GetText(txt, 64);
+		SXLevelEditor::EditAIBBDimensionsHeight->getText(txt, 64);
 		sscanf(txt, "%f", &(tmpdim.y));
 	}
-	else if (hwnd == SXLevelEditor::EditAIBBDimensionsDepth->GetHWND())
+	else if (hwnd == SXLevelEditor::EditAIBBDimensionsDepth->getHWND())
 	{
-		SXLevelEditor::EditAIBBDimensionsDepth->GetText(txt, 64);
+		SXLevelEditor::EditAIBBDimensionsDepth->getText(txt, 64);
 		sscanf(txt, "%f", &(tmpdim.z));
 	}
 
@@ -134,19 +134,19 @@ LRESULT SXLevelEditor_EditAIBBPos_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	float3 tmppos;
 	SAIG_BBGetPos(&tmppos);
 
-	if (hwnd == SXLevelEditor::EditAIBBPosX->GetHWND())
+	if (hwnd == SXLevelEditor::EditAIBBPosX->getHWND())
 	{
-		SXLevelEditor::EditAIBBPosX->GetText(txt, 64);
+		SXLevelEditor::EditAIBBPosX->getText(txt, 64);
 		sscanf(txt, "%f", &(tmppos.x));
 	}
-	else if (hwnd == SXLevelEditor::EditAIBBPosY->GetHWND())
+	else if (hwnd == SXLevelEditor::EditAIBBPosY->getHWND())
 	{
-		SXLevelEditor::EditAIBBPosY->GetText(txt, 64);
+		SXLevelEditor::EditAIBBPosY->getText(txt, 64);
 		sscanf(txt, "%f", &(tmppos.y));
 	}
-	else if (hwnd == SXLevelEditor::EditAIBBPosZ->GetHWND())
+	else if (hwnd == SXLevelEditor::EditAIBBPosZ->getHWND())
 	{
-		SXLevelEditor::EditAIBBPosZ->GetText(txt, 64);
+		SXLevelEditor::EditAIBBPosZ->getText(txt, 64);
 		sscanf(txt, "%f", &(tmppos.z));
 	}
 
diff --git a/source/sxleveleditor/common_callback.cpp b/source/sxleveleditor/common_callback.cpp
index 74c518bc1..84f6abeb6 100644
--- a/source/sxleveleditor/common_callback.cpp
+++ b/source/sxleveleditor/common_callback.cpp
@@ -17,7 +17,7 @@ void SXLevelEditor::LevelNew(bool mess)
 	SLevel_Clear();
 	char tmpcaption[256];
 	sprintf(tmpcaption, "%s: new level ** ", "SXLevelEditor");
-	SXLevelEditor::JobWindow->SetText(tmpcaption);
+	SXLevelEditor::JobWindow->setText(tmpcaption);
 	SXLevelEditor::ActiveGroupType = 0;
 	SXLevelEditor::ActiveElement = -1;
 	SXLevelEditor::ActiveGreenSplit = -1;
@@ -27,9 +27,9 @@ void SXLevelEditor::LevelNew(bool mess)
 	if (gid >= 0)
 		SML_LigthsDeleteLight(gid);
 
-	SXLevelEditor::CheckBoxTBLevelType->SetBmpInResourse(IDB_BITMAP25);
-	SXLevelEditor::CheckBoxTBLevelType->SetCheck(false);
-	SXLevelEditor::CheckBoxTBGLightEnable->SetCheck(false);
+	SXLevelEditor::CheckBoxTBLevelType->setBmpFromResourse(IDB_BITMAP25);
+	SXLevelEditor::CheckBoxTBLevelType->setCheck(false);
+	SXLevelEditor::CheckBoxTBGLightEnable->setCheck(false);
 }
 
 void SXLevelEditor::LevelOpen()
@@ -42,27 +42,27 @@ void SXLevelEditor::LevelOpen()
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_LEVELS), FILE_FILTER_LEVEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_LEVELS), FILE_FILTER_LEVEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutNameNEx(tmppath, tmpname);
 		SLevel_Load(tmpname, false);
 		char tmpcaption[256];
 		sprintf(tmpcaption, "%s: %s", "SXLevelEditor", tmpname);
-		SXLevelEditor::JobWindow->SetText(tmpcaption);
+		SXLevelEditor::JobWindow->setText(tmpcaption);
 
 		ID gid = SML_LigthsGetGlobal();
 		if (gid >= 0)
 		{
-			SXLevelEditor::CheckBoxTBLevelType->SetBmpInResourse(IDB_BITMAP26);
-			SXLevelEditor::CheckBoxTBLevelType->SetCheck(true);
-			SXLevelEditor::CheckBoxTBGLightEnable->SetCheck(true);
+			SXLevelEditor::CheckBoxTBLevelType->setBmpFromResourse(IDB_BITMAP26);
+			SXLevelEditor::CheckBoxTBLevelType->setCheck(true);
+			SXLevelEditor::CheckBoxTBGLightEnable->setCheck(true);
 		}
 		else
 		{
-			SXLevelEditor::CheckBoxTBLevelType->SetBmpInResourse(IDB_BITMAP25);
-			SXLevelEditor::CheckBoxTBLevelType->SetCheck(false);
-			SXLevelEditor::CheckBoxTBGLightEnable->SetCheck(false);
+			SXLevelEditor::CheckBoxTBLevelType->setBmpFromResourse(IDB_BITMAP25);
+			SXLevelEditor::CheckBoxTBLevelType->setCheck(false);
+			SXLevelEditor::CheckBoxTBGLightEnable->setCheck(false);
 		}
 	}
 }
@@ -91,14 +91,14 @@ void SXLevelEditor::LevelSaveAs()
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_SAVE, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_LEVELS), FILE_FILTER_LEVEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_SAVE, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_LEVELS), FILE_FILTER_LEVEL);
 	if (StrValidate(tmppath))
 	{
 		StrCutNameNEx(tmppath, tmpname);
 		SLevel_Save(tmpname);
 		char tmpcaption[256];
 		sprintf(tmpcaption, "%s: %s", "SXLevelEditor", tmpname);
-		SXLevelEditor::JobWindow->SetText(tmpcaption);
+		SXLevelEditor::JobWindow->setText(tmpcaption);
 	}
 }
 
@@ -135,13 +135,13 @@ LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
 	else if (id == ID_VIEW_GRID)
 	{
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
-		SRender_EditorSetRenderGrid(SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
+		SRender_EditorSetRenderGrid(SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	else if (id == ID_VIEW_AXES)
 	{
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
-		SRender_EditorSetRenderAxesStatic(SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
+		SRender_EditorSetRenderAxesStatic(SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 
 	//
@@ -149,77 +149,77 @@ LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_COLOR);
 		SXLevelEditor::FinalImageUncheckedMenu();
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_NORMALS)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_NORMAL);
 		SXLevelEditor::FinalImageUncheckedMenu();
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_PARAMETERS)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_PARAM);
 		SXLevelEditor::FinalImageUncheckedMenu();
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_AMBIENTDIFFUSE)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_AMBIENTDIFF);
 		SXLevelEditor::FinalImageUncheckedMenu();
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_SPECULAR)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_SPECULAR);
 		SXLevelEditor::FinalImageUncheckedMenu();
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_LIGHTINGSCENE)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_SCENELIGHT);
 		SXLevelEditor::FinalImageUncheckedMenu();
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 
 
 	//
 	else if (id == ID_SELECTIONSETTINGS_SELECTION)
 	{
-		SXLevelEditor::SelSelection = !SXLevelEditor::MainMenu->GetCheckedItem(id);
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::SelSelection = !SXLevelEditor::MainMenu->getCheckedItem(id);
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_SELECTIONSETTINGS_ZTEST)
 	{
-		SXLevelEditor::SelZTest = !SXLevelEditor::MainMenu->GetCheckedItem(id);
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::SelZTest = !SXLevelEditor::MainMenu->getCheckedItem(id);
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_SELECTIONSETTINGS_MESH)
 	{
-		SXLevelEditor::SelMesh = !SXLevelEditor::MainMenu->GetCheckedItem(id);
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::SelMesh = !SXLevelEditor::MainMenu->getCheckedItem(id);
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_SELECTIONSETTINGS_BACKFACESCULL)
 	{
-		SXLevelEditor::SelBackFacesCull = !SXLevelEditor::MainMenu->GetCheckedItem(id);
-		SXLevelEditor::MainMenu->CheckItem(id, !SXLevelEditor::MainMenu->GetCheckedItem(id));
+		SXLevelEditor::SelBackFacesCull = !SXLevelEditor::MainMenu->getCheckedItem(id);
+		SXLevelEditor::MainMenu->setCheckItem(id, !SXLevelEditor::MainMenu->getCheckedItem(id));
 	}
 
 	else if (id >= SX_LE_MMENU_WEATHER_BEGIN_ID)
 	{
 		for (int i = 0; i < SXLevelEditor::MenuWeatherCount; ++i)
 		{
-			SXLevelEditor::MainMenu->CheckItem(SX_LE_MMENU_WEATHER_BEGIN_ID+i, false);
+			SXLevelEditor::MainMenu->setCheckItem(SX_LE_MMENU_WEATHER_BEGIN_ID+i, false);
 		}
-		SXLevelEditor::MainMenu->CheckItem(id, true);
+		SXLevelEditor::MainMenu->setCheckItem(id, true);
 		SXLevelEditor::MenuWeatherCurrID = (id - SX_LE_MMENU_WEATHER_BEGIN_ID) - 1;
 
 		if (SXLevelEditor::MenuWeatherCurrID >= 0)
@@ -311,7 +311,7 @@ LRESULT SXLevelEditor_RenderWindow_MouseMove(HWND hwnd, UINT msg, WPARAM wParam,
 	}
 	else if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN && SXLevelEditor::ActiveElement >= 0 && SXLevelEditor::ActiveGreenSplit >= 0 && SXLevelEditor::ActiveGreenObject >= 0)
 	{
-		if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 0)
+		if (SXLevelEditor::ComboBoxGreenSel->getSel() == 0)
 		{
 			float3_t pos;
 			SGeom_GreenGetPosObject(SXLevelEditor::ActiveElement, SXLevelEditor::ActiveGreenSplit, SXLevelEditor::ActiveGreenObject, &pos);
@@ -387,7 +387,7 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 		) * mat;
 	camDir = pos - vCamPos;
 
-	if (!SXLevelEditor::CheckBoxTBArrow->GetCheck())
+	if (!SXLevelEditor::CheckBoxTBArrow->getCheck())
 		return 0;
 
 	SXLevelEditor::IdMtl = -1;
@@ -396,7 +396,7 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 	{
 		if (SGeom_ModelsTraceBeam(&vCamPos, &camDir, &_res, &idmodel, &idmtl))
 		{
-			SXLevelEditor::ListBoxList->SetSel(idmodel);
+			SXLevelEditor::ListBoxList->setSel(idmodel);
 			SXLevelEditor::GeomSel(idmodel);
 			SXLevelEditor::IdMtl = idmtl;
 		}
@@ -407,7 +407,7 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 		ID idsplit;
 		ID idobj;
 
-		if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 0)
+		if (SXLevelEditor::ComboBoxGreenSel->getSel() == 0)
 		{
 			if (pt.x <= *r_win_width && pt.y <= *r_win_height && SGeom_GreenTraceBeam(&vCamPos, &camDir, &_res, &idgreen, &idsplit, &idobj, &idmtl))
 			{
@@ -415,13 +415,13 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 				SXLevelEditor::ActiveGreenObject = idobj;
 				SGeom_GreenGetPosObject(idgreen, idsplit, idobj, &pos2);
 
-				SXLevelEditor::StaticGreenSelX->SetText("Pos X:");
-				SXLevelEditor::StaticGreenSelY->SetText("Pos Y:");
-				SXLevelEditor::StaticGreenSelZ->SetText("Pos Z:");
+				SXLevelEditor::StaticGreenSelX->setText("Pos X:");
+				SXLevelEditor::StaticGreenSelY->setText("Pos Y:");
+				SXLevelEditor::StaticGreenSelZ->setText("Pos Z:");
 
-				SXLevelEditor::EditGreenSelX->SetText(String(pos2.x).c_str());
-				SXLevelEditor::EditGreenSelY->SetText(String(pos2.y).c_str());
-				SXLevelEditor::EditGreenSelZ->SetText(String(pos2.z).c_str());
+				SXLevelEditor::EditGreenSelX->setText(String(pos2.x).c_str());
+				SXLevelEditor::EditGreenSelY->setText(String(pos2.y).c_str());
+				SXLevelEditor::EditGreenSelZ->setText(String(pos2.z).c_str());
 				
 				SXLevelEditor::ObjAxesHelper->SetPosition(pos2);
 				SXLevelEditor::ObjAxesHelper->SetRotation(float3(0,0,0));
@@ -430,7 +430,7 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 				SXLevelEditor::IdMtl = idmtl;
 			}
 		}
-		else if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 1)
+		else if (SXLevelEditor::ComboBoxGreenSel->getSel() == 1)
 		{
 			if (pt.x <= *r_win_width && pt.y <= *r_win_height && SGeom_ModelsTraceBeam(&vCamPos, &camDir, &_res, &idmodel, &idmtl))
 			{
@@ -438,13 +438,13 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 				SXLevelEditor::ActiveGreenSplit = idsplit;
 				SXLevelEditor::ActiveGreenObject = idobj;
 
-				SXLevelEditor::StaticGreenSelX->SetText("Pos X:");
-				SXLevelEditor::StaticGreenSelY->SetText("Pos Y:");
-				SXLevelEditor::StaticGreenSelZ->SetText("Pos Z:");
+				SXLevelEditor::StaticGreenSelX->setText("Pos X:");
+				SXLevelEditor::StaticGreenSelY->setText("Pos Y:");
+				SXLevelEditor::StaticGreenSelZ->setText("Pos Z:");
 
-				SXLevelEditor::EditGreenSelX->SetText(String(_res.x).c_str());
-				SXLevelEditor::EditGreenSelY->SetText(String(_res.y).c_str());
-				SXLevelEditor::EditGreenSelZ->SetText(String(_res.z).c_str());
+				SXLevelEditor::EditGreenSelX->setText(String(_res.x).c_str());
+				SXLevelEditor::EditGreenSelY->setText(String(_res.y).c_str());
+				SXLevelEditor::EditGreenSelZ->setText(String(_res.z).c_str());
 
 				SXLevelEditor::ObjAxesHelper->SetPosition(pos2);
 				SXLevelEditor::ObjAxesHelper->SetRotation(float3(0, 0, 0));
@@ -454,12 +454,12 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 			}
 		}
 
-		else if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 2)
+		else if (SXLevelEditor::ComboBoxGreenSel->getSel() == 2)
 		{
 			if (pt.x <= *r_win_width && pt.y <= *r_win_height && SGeom_ModelsTraceBeam(&vCamPos, &camDir, &_res, &idmodel, &idmtl))
 			{
 				SXLevelEditor::GreenBoxPos = _res;
-				int density = SXLevelEditor::TrackBarGreenDensity->GetPos();
+				int density = SXLevelEditor::TrackBarGreenDensity->getPos();
 
 				float3 min, max, npos;
 				min.x = _res.x - SXLevelEditor::GreenBoxWHD.x * 0.5f;
@@ -480,7 +480,7 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 			}
 		}
 
-		else if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 3)
+		else if (SXLevelEditor::ComboBoxGreenSel->getSel() == 3)
 		{
 			static const int *r_win_width = GET_PCVAR_INT("r_win_width");
 			static const int *r_win_height = GET_PCVAR_INT("r_win_height");
@@ -488,9 +488,9 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 			{
 				SXLevelEditor::ActiveGreenSplit = -1;
 				SXLevelEditor::ActiveGreenObject = -1;
-				SXLevelEditor::EditGreenSelX->SetText("");
-				SXLevelEditor::EditGreenSelY->SetText("");
-				SXLevelEditor::EditGreenSelZ->SetText("");
+				SXLevelEditor::EditGreenSelX->setText("");
+				SXLevelEditor::EditGreenSelY->setText("");
+				SXLevelEditor::EditGreenSelZ->setText("");
 				SGeom_GreenDelObject(idgreen, idsplit, idobj);
 				int qwert = 0;
 			}
@@ -502,7 +502,7 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 	}
 	else if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_AIGRID)
 	{
-		if (SXLevelEditor::RadioButtonAIQuadAdd->GetCheck())
+		if (SXLevelEditor::RadioButtonAIQuadAdd->getCheck())
 		{
 			float3 start = pos;
 			float3 dir = camDir;
@@ -515,28 +515,28 @@ LRESULT SXLevelEditor_RenderWindow_LClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 				SAIG_QuadAdd(&BTVEC_F3(cb.m_hitPointWorld));
 			}
 		}
-		else if (SXLevelEditor::RadioButtonAIQuadsMSel->GetCheck())
+		else if (SXLevelEditor::RadioButtonAIQuadsMSel->getCheck())
 		{
 			ID idaq = SAIG_GridTraceBeam(&pos, &camDir);
 
 			if (idaq > -1)
 				SAIG_QuadSelect(idaq, true);
 		}
-		else if (SXLevelEditor::RadioButtonAIQuadsSelDel->GetCheck())
+		else if (SXLevelEditor::RadioButtonAIQuadsSelDel->getCheck())
 		{
 			ID idaq = SAIG_GridTraceBeam(&pos, &camDir);
 
 			if (idaq > -1)
 				SAIG_QuadDelete(idaq);
 		}
-		else if (SXLevelEditor::RadioButtonAIGPAdd->GetCheck())
+		else if (SXLevelEditor::RadioButtonAIGPAdd->getCheck())
 		{
 			ID idaq = SAIG_GridTraceBeam(&pos, &camDir);
 
 			if (idaq > -1)
 				SAIG_GraphPointAdd(idaq);
 		}
-		else if (SXLevelEditor::RadioButtonAIGPDel->GetCheck())
+		else if (SXLevelEditor::RadioButtonAIGPDel->getCheck())
 		{
 			ID idaq = SAIG_GridTraceBeam(&pos, &camDir);
 
@@ -588,7 +588,7 @@ LRESULT SXLevelEditor_RenderWindow_RClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 		ID idsplit;
 		ID idobj;
 
-		if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 2)
+		if (SXLevelEditor::ComboBoxGreenSel->getSel() == 2)
 		{
 			if (pt.x <= *r_win_width && pt.y <= *r_win_height && SGeom_ModelsTraceBeam(&vCamPos, &camDir, &_res, &idmodel, &idmtl))
 				SXLevelEditor::GreenBoxPos = _res;
@@ -597,7 +597,7 @@ LRESULT SXLevelEditor_RenderWindow_RClick(HWND hwnd, UINT msg, WPARAM wParam, LP
 
 	else if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_AIGRID)
 	{
-		if (SXLevelEditor::RadioButtonAIQuadsMSel->GetCheck())
+		if (SXLevelEditor::RadioButtonAIQuadsMSel->getCheck())
 		{
 			ID idaq = SAIG_GridTraceBeam(&pos, &camDir);
 
@@ -632,9 +632,9 @@ LRESULT SXLevelEditor_RenderWindow_Delete(HWND hwnd, UINT msg, WPARAM wParam, LP
 		SGeom_GreenDelObject(SXLevelEditor::ActiveElement, SXLevelEditor::ActiveGreenSplit, SXLevelEditor::ActiveGreenObject);
 		SXLevelEditor::ActiveGreenSplit = -1;
 		SXLevelEditor::ActiveGreenObject = -1;
-		SXLevelEditor::EditGreenSelX->SetText("");
-		SXLevelEditor::EditGreenSelY->SetText("");
-		SXLevelEditor::EditGreenSelZ->SetText("");
+		SXLevelEditor::EditGreenSelX->setText("");
+		SXLevelEditor::EditGreenSelY->setText("");
+		SXLevelEditor::EditGreenSelZ->setText("");
 	}
 
 	return 0;
@@ -642,17 +642,17 @@ LRESULT SXLevelEditor_RenderWindow_Delete(HWND hwnd, UINT msg, WPARAM wParam, LP
 
 LRESULT SXLevelEditor_ButtonGeometryOpen_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	SXLevelEditor::ListBoxList->Clear();
+	SXLevelEditor::ListBoxList->clear();
 	long tmpcountmodel = SGeom_ModelsGetCount();
 	char tmptextvalcountmodel[64];
 	sprintf(tmptextvalcountmodel, "%d", tmpcountmodel);
-	SXLevelEditor::StaticListValCount->SetText(tmptextvalcountmodel);
+	SXLevelEditor::StaticListValCount->setText(tmptextvalcountmodel);
 
 	char tmpnamecountpoly[1024];
 	for (int i = 0; i < tmpcountmodel;++i)
 	{
 		sprintf(tmpnamecountpoly, "%s | %d", SGeom_ModelsMGetName(i), SGeom_ModelsMGetCountPoly(i));
-		SXLevelEditor::ListBoxList->AddItem(tmpnamecountpoly);
+		SXLevelEditor::ListBoxList->addItem(tmpnamecountpoly);
 	}
 
 	SXLevelEditor::GreenActivateAll(false);
@@ -669,11 +669,11 @@ LRESULT SXLevelEditor_ButtonGeometryOpen_Click(HWND hwnd, UINT msg, WPARAM wPara
 
 LRESULT SXLevelEditor_ButtonGreenOpen_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	SXLevelEditor::ListBoxList->Clear();
+	SXLevelEditor::ListBoxList->clear();
 	long tmpcountmodel = SGeom_GreenGetCount();
 	char tmptextvalcountmodel[64];
 	sprintf(tmptextvalcountmodel, "%d", tmpcountmodel);
-	SXLevelEditor::StaticListValCount->SetText(tmptextvalcountmodel);
+	SXLevelEditor::StaticListValCount->setText(tmptextvalcountmodel);
 
 	char tmpnamecountpoly[1024];
 	for (int i = 0; i < tmpcountmodel; ++i)
@@ -682,7 +682,7 @@ LRESULT SXLevelEditor_ButtonGreenOpen_Click(HWND hwnd, UINT msg, WPARAM wParam,
 			SGeom_GreenMGetName(i),
 			(SGeom_GreenMGetTypeCountGen(i) == GREEN_TYPE_GRASS ? "grass" : "tree/shrub"),
 			SGeom_GreenMGetCountGen(i));
-		SXLevelEditor::ListBoxList->AddItem(tmpnamecountpoly);
+		SXLevelEditor::ListBoxList->addItem(tmpnamecountpoly);
 	}
 
 	SXLevelEditor::GeomActivateAll(false);
@@ -703,7 +703,7 @@ LRESULT SXLevelEditor_ButtonGreenOpen_Click(HWND hwnd, UINT msg, WPARAM wParam,
 
 LRESULT SXLevelEditor_ButtonGameObjectOpen_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	SXLevelEditor::ListBoxList->Clear();
+	SXLevelEditor::ListBoxList->clear();
 
 	int tmpcoungo = SXGame_EntGetCount();
 	int tmpcoungo2 = 0;
@@ -714,15 +714,15 @@ LRESULT SXLevelEditor_ButtonGameObjectOpen_Click(HWND hwnd, UINT msg, WPARAM wPa
 		if (bEnt)
 		{
 			sprintf(tmpname, "%s / %s", bEnt->getName(), bEnt->getClassName());
-			SXLevelEditor::ListBoxList->AddItem(tmpname);
-			SXLevelEditor::ListBoxList->SetItemData(SXLevelEditor::ListBoxList->GetCountItem() - 1, i);
+			SXLevelEditor::ListBoxList->addItem(tmpname);
+			SXLevelEditor::ListBoxList->setItemData(SXLevelEditor::ListBoxList->getItemCount() - 1, i);
 			++tmpcoungo2;
 		}
 	}
 
 	char tmptextvalcountgo[64];
 	sprintf(tmptextvalcountgo, "%d", tmpcoungo2);
-	SXLevelEditor::StaticListValCount->SetText(tmptextvalcountgo);
+	SXLevelEditor::StaticListValCount->setText(tmptextvalcountgo);
 
 	SXLevelEditor::GeomActivateAll(false);
 	SXLevelEditor::GreenActivateAll(false);
@@ -736,9 +736,9 @@ LRESULT SXLevelEditor_ButtonGameObjectOpen_Click(HWND hwnd, UINT msg, WPARAM wPa
 
 LRESULT SXLevelEditor_ButtonAIGridOpen_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	SXLevelEditor::ListBoxList->Clear();
+	SXLevelEditor::ListBoxList->clear();
 
-	SXLevelEditor::StaticListValCount->SetText("0");
+	SXLevelEditor::StaticListValCount->setText("0");
 
 	SXLevelEditor::GeomActivateAll(false);
 	SXLevelEditor::GreenActivateAll(false);
@@ -753,7 +753,7 @@ LRESULT SXLevelEditor_ButtonAIGridOpen_Click(HWND hwnd, UINT msg, WPARAM wParam,
 
 LRESULT SXLevelEditor_ListBoxList_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 
 	SXLevelEditor::ActiveGreenSplit = -1;
 	SXLevelEditor::ActiveGreenObject = -1;
@@ -782,7 +782,7 @@ LRESULT SXLevelEditor_ListBoxList_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 
 LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 
 	if (sel < 0)
 		return 0;
@@ -792,7 +792,7 @@ LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 		if (SGeom_ModelsGetCount() > 0 && sel < SGeom_ModelsGetCount())
 		{
 			SGeom_ModelsDelModel(sel);
-			SXLevelEditor::ListBoxList->DeleteItem(sel);
+			SXLevelEditor::ListBoxList->deleteItem(sel);
 			if (SGeom_ModelsGetCount() > 0)
 			{
 				if (sel > 0)
@@ -800,7 +800,7 @@ LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 					if (SGeom_ModelsGetCount() <= sel)
 						sel -= 1;
 				}
-				SXLevelEditor::ListBoxList->SetSel(sel);
+				SXLevelEditor::ListBoxList->setSel(sel);
 				SXLevelEditor::GeomSel(sel);
 			}
 			else
@@ -814,7 +814,7 @@ LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 		if (SGeom_GreenGetCount() > 0 && sel < SGeom_GreenGetCount())
 		{
 			SGeom_GreenDelGreen(sel);
-			SXLevelEditor::ListBoxList->DeleteItem(sel);
+			SXLevelEditor::ListBoxList->deleteItem(sel);
 			if (SGeom_GreenGetCount() > 0)
 			{
 				if (sel > 0)
@@ -822,7 +822,7 @@ LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 					if (SGeom_GreenGetCount() <= sel)
 						sel -= 1;
 				}
-				SXLevelEditor::ListBoxList->SetSel(sel);
+				SXLevelEditor::ListBoxList->setSel(sel);
 				SXLevelEditor::GreenSel(sel);
 			}
 			else
@@ -835,14 +835,14 @@ LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	{
 		if (SXGame_EntGetCount() > 0 && sel < SXGame_EntGetCount())
 		{
-			SXGame_RemoveEntity(SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel)));
+			SXGame_RemoveEntity(SXGame_EntGet(SXLevelEditor::ListBoxList->getItemData(sel)));
 			SXLevelEditor_ButtonGameObjectOpen_Click(hwnd, msg, wParam, lParam);
 
-			if (sel >= SXLevelEditor::ListBoxList->GetCountItem())
+			if (sel >= SXLevelEditor::ListBoxList->getItemCount())
 				--sel;
 			if (sel >= 0)
 			{
-				SXLevelEditor::ListBoxList->SetSel(sel);
+				SXLevelEditor::ListBoxList->setSel(sel);
 				SXLevelEditor::GameSel(sel);
 			}
 		}
@@ -857,11 +857,11 @@ LRESULT SXLevelEditor_ButtonDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 
 LRESULT SXLevelEditor_GroupBox_Notify(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	if (((NMHDR*)lParam)->hwndFrom == SXLevelEditor::ListViewGameClass->GetHWND() && ((NMHDR*)lParam)->code == NM_CLICK)
+	if (((NMHDR*)lParam)->hwndFrom == SXLevelEditor::ListViewGameClass->getHWND() && ((NMHDR*)lParam)->code == NM_CLICK)
 	{
 		SXLevelEditor_ListViewGameClass_Click();
 	}
-	else if (((NMHDR*)lParam)->hwndFrom == SXLevelEditor::ListViewGameConnections->GetHWND() && ((NMHDR*)lParam)->code == NM_CLICK)
+	else if (((NMHDR*)lParam)->hwndFrom == SXLevelEditor::ListViewGameConnections->getHWND() && ((NMHDR*)lParam)->code == NM_CLICK)
 	{
 		SXLevelEditor_ListViewGameConnections_Click();
 	}
@@ -874,14 +874,14 @@ LRESULT SXLevelEditor_ToolBar1_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 	HWND handle_elem = (HWND)(lParam);
 	if (Notification == BN_CLICKED)
 	{
-		if (SXLevelEditor::CheckBoxTBArrow->GetHWND() == handle_elem)
+		if (SXLevelEditor::CheckBoxTBArrow->getHWND() == handle_elem)
 		{
-			SXLevelEditor::CheckBoxTBPos->SetCheck(false);
-			SXLevelEditor::CheckBoxTBRot->SetCheck(false);
-			SXLevelEditor::CheckBoxTBScale->SetCheck(false);
+			SXLevelEditor::CheckBoxTBPos->setCheck(false);
+			SXLevelEditor::CheckBoxTBRot->setCheck(false);
+			SXLevelEditor::CheckBoxTBScale->setCheck(false);
 			SXLevelEditor::ObjAxesHelper->SetType(AxesHelper::HT_NONE);
 		}
-		else if (SXLevelEditor::CheckBoxTBPos->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBPos->getHWND() == handle_elem)
 		{
 			if (
 				SXLevelEditor::ActiveElement >= 0 &&
@@ -892,147 +892,147 @@ LRESULT SXLevelEditor_ToolBar1_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 				)
 				)
 			{
-				SXLevelEditor::CheckBoxTBArrow->SetCheck(false);
-				SXLevelEditor::CheckBoxTBRot->SetCheck(false);
-				SXLevelEditor::CheckBoxTBScale->SetCheck(false);
+				SXLevelEditor::CheckBoxTBArrow->setCheck(false);
+				SXLevelEditor::CheckBoxTBRot->setCheck(false);
+				SXLevelEditor::CheckBoxTBScale->setCheck(false);
 				SXLevelEditor::ObjAxesHelper->SetType(AxesHelper::HT_MOVE);
 			}
 			else
-				SXLevelEditor::CheckBoxTBPos->SetCheck(false);
+				SXLevelEditor::CheckBoxTBPos->setCheck(false);
 		}
-		else if (SXLevelEditor::CheckBoxTBRot->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRot->getHWND() == handle_elem)
 		{
 			if ((SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GEOM || SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GAME) && SXLevelEditor::ActiveElement >= 0)
 			{
-				SXLevelEditor::CheckBoxTBArrow->SetCheck(false);
-				SXLevelEditor::CheckBoxTBPos->SetCheck(false);
-				SXLevelEditor::CheckBoxTBScale->SetCheck(false);
+				SXLevelEditor::CheckBoxTBArrow->setCheck(false);
+				SXLevelEditor::CheckBoxTBPos->setCheck(false);
+				SXLevelEditor::CheckBoxTBScale->setCheck(false);
 				SXLevelEditor::ObjAxesHelper->SetType(AxesHelper::HT_ROTATE);
 			}
 			else
-				SXLevelEditor::CheckBoxTBRot->SetCheck(false);
+				SXLevelEditor::CheckBoxTBRot->setCheck(false);
 		}
-		else if (SXLevelEditor::CheckBoxTBScale->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBScale->getHWND() == handle_elem)
 		{
 			if ((SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GEOM || SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GAME) && SXLevelEditor::ActiveElement >= 0)
 			{
-				SXLevelEditor::CheckBoxTBPos->SetCheck(false);
-				SXLevelEditor::CheckBoxTBRot->SetCheck(false);
-				SXLevelEditor::CheckBoxTBArrow->SetCheck(false);
+				SXLevelEditor::CheckBoxTBPos->setCheck(false);
+				SXLevelEditor::CheckBoxTBRot->setCheck(false);
+				SXLevelEditor::CheckBoxTBArrow->setCheck(false);
 				SXLevelEditor::ObjAxesHelper->SetType(AxesHelper::HT_SCALE);
 			}
 			else
-				SXLevelEditor::CheckBoxTBScale->SetCheck(false);
+				SXLevelEditor::CheckBoxTBScale->setCheck(false);
 		}
 
-		else if (SXLevelEditor::ButtonTBNew->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ButtonTBNew->getHWND() == handle_elem)
 		{
 			SXLevelEditor::LevelNew(true);
 		}
-		else if (SXLevelEditor::ButtonTBOpen->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ButtonTBOpen->getHWND() == handle_elem)
 		{
 			SXLevelEditor::LevelOpen();
 		}
-		else if (SXLevelEditor::ButtonTBSave->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ButtonTBSave->getHWND() == handle_elem)
 		{
 			SXLevelEditor::LevelSave();
 		}
-		else if (SXLevelEditor::ButtonTBSaveAs->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ButtonTBSaveAs->getHWND() == handle_elem)
 		{
 			SXLevelEditor::LevelSaveAs();
 		}
 
-		else if (SXLevelEditor::CheckBoxTBGrid->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBGrid->getHWND() == handle_elem)
 		{
-			SXLevelEditor::MainMenu->CheckItem(ID_VIEW_GRID, SXLevelEditor::CheckBoxTBGrid->GetCheck());
-			SRender_EditorSetRenderGrid(SXLevelEditor::CheckBoxTBGrid->GetCheck());
+			SXLevelEditor::MainMenu->setCheckItem(ID_VIEW_GRID, SXLevelEditor::CheckBoxTBGrid->getCheck());
+			SRender_EditorSetRenderGrid(SXLevelEditor::CheckBoxTBGrid->getCheck());
 		}
-		else if (SXLevelEditor::CheckBoxTBAxes->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBAxes->getHWND() == handle_elem)
 		{
-			SXLevelEditor::MainMenu->CheckItem(ID_VIEW_AXES, SXLevelEditor::CheckBoxTBAxes->GetCheck());
-			SRender_EditorSetRenderAxesStatic(SXLevelEditor::CheckBoxTBAxes->GetCheck());
+			SXLevelEditor::MainMenu->setCheckItem(ID_VIEW_AXES, SXLevelEditor::CheckBoxTBAxes->getCheck());
+			SRender_EditorSetRenderAxesStatic(SXLevelEditor::CheckBoxTBAxes->getCheck());
 		}
 
-		else if (SXLevelEditor::CheckBoxTBRColor->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRColor->getHWND() == handle_elem)
 		{
 			SXLevelEditor::FinalImageUncheckedMenu();
-			SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_COLOR, true);
-			SXLevelEditor::CheckBoxTBRColor->SetCheck(true);
+			SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_COLOR, true);
+			SXLevelEditor::CheckBoxTBRColor->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_COLOR);
 		}
-		else if (SXLevelEditor::CheckBoxTBRNormal->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRNormal->getHWND() == handle_elem)
 		{
 			SXLevelEditor::FinalImageUncheckedMenu();
-			SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_NORMALS, true);
-			SXLevelEditor::CheckBoxTBRNormal->SetCheck(true);
+			SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_NORMALS, true);
+			SXLevelEditor::CheckBoxTBRNormal->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_NORMAL);
 		}
-		else if (SXLevelEditor::CheckBoxTBRParam->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRParam->getHWND() == handle_elem)
 		{
 			SXLevelEditor::FinalImageUncheckedMenu();
-			SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_PARAMETERS, true);
-			SXLevelEditor::CheckBoxTBRParam->SetCheck(true);
+			SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_PARAMETERS, true);
+			SXLevelEditor::CheckBoxTBRParam->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_PARAM);
 		}
-		else if (SXLevelEditor::CheckBoxTBRAmDiff->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRAmDiff->getHWND() == handle_elem)
 		{
 			SXLevelEditor::FinalImageUncheckedMenu();
-			SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, true);
-			SXLevelEditor::CheckBoxTBRAmDiff->SetCheck(true);
+			SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, true);
+			SXLevelEditor::CheckBoxTBRAmDiff->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_AMBIENTDIFF);
 		}
-		else if (SXLevelEditor::CheckBoxTBRSpecular->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRSpecular->getHWND() == handle_elem)
 		{
 			SXLevelEditor::FinalImageUncheckedMenu();
-			SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_SPECULAR, true);
-			SXLevelEditor::CheckBoxTBRSpecular->SetCheck(true);
+			SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_SPECULAR, true);
+			SXLevelEditor::CheckBoxTBRSpecular->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_SPECULAR);
 		}
-		else if (SXLevelEditor::CheckBoxTBRLighting->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBRLighting->getHWND() == handle_elem)
 		{
 			SXLevelEditor::FinalImageUncheckedMenu();
-			SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_LIGHTINGSCENE, true);
-			SXLevelEditor::CheckBoxTBRLighting->SetCheck(true);
+			SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_LIGHTINGSCENE, true);
+			SXLevelEditor::CheckBoxTBRLighting->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_SCENELIGHT);
 		}
 
-		else if (SXLevelEditor::CheckBoxTBSelS->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBSelS->getHWND() == handle_elem)
 		{
-			SXLevelEditor::SelSelection = SXLevelEditor::CheckBoxTBSelS->GetCheck();
-			SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_SELECTION, SXLevelEditor::CheckBoxTBSelS->GetCheck());
+			SXLevelEditor::SelSelection = SXLevelEditor::CheckBoxTBSelS->getCheck();
+			SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_SELECTION, SXLevelEditor::CheckBoxTBSelS->getCheck());
 		}
-		else if (SXLevelEditor::CheckBoxTBSelZTest->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBSelZTest->getHWND() == handle_elem)
 		{
-			SXLevelEditor::SelZTest = SXLevelEditor::CheckBoxTBSelZTest->GetCheck();
-			SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_ZTEST, SXLevelEditor::CheckBoxTBSelZTest->GetCheck());
+			SXLevelEditor::SelZTest = SXLevelEditor::CheckBoxTBSelZTest->getCheck();
+			SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_ZTEST, SXLevelEditor::CheckBoxTBSelZTest->getCheck());
 		}
-		else if (SXLevelEditor::CheckBoxTBSelMesh->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBSelMesh->getHWND() == handle_elem)
 		{
-			SXLevelEditor::SelMesh = SXLevelEditor::CheckBoxTBSelMesh->GetCheck();
-			SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_MESH, SXLevelEditor::CheckBoxTBSelMesh->GetCheck());
+			SXLevelEditor::SelMesh = SXLevelEditor::CheckBoxTBSelMesh->getCheck();
+			SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_MESH, SXLevelEditor::CheckBoxTBSelMesh->getCheck());
 		}
-		else if (SXLevelEditor::CheckBoxTBSelCullBack->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBSelCullBack->getHWND() == handle_elem)
 		{
-			SXLevelEditor::SelBackFacesCull = SXLevelEditor::CheckBoxTBSelCullBack->GetCheck();
-			SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_BACKFACESCULL, SXLevelEditor::CheckBoxTBSelCullBack->GetCheck());
+			SXLevelEditor::SelBackFacesCull = SXLevelEditor::CheckBoxTBSelCullBack->getCheck();
+			SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_BACKFACESCULL, SXLevelEditor::CheckBoxTBSelCullBack->getCheck());
 		}
 
-		else if (SXLevelEditor::CheckBoxTBAIGBound->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBAIGBound->getHWND() == handle_elem)
 		{
-			SXLevelEditor::AIGBound = SXLevelEditor::CheckBoxTBAIGBound->GetCheck();
+			SXLevelEditor::AIGBound = SXLevelEditor::CheckBoxTBAIGBound->getCheck();
 		}
-		else if (SXLevelEditor::CheckBoxTBAIGQuad->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBAIGQuad->getHWND() == handle_elem)
 		{
-			SXLevelEditor::AIGQuad = SXLevelEditor::CheckBoxTBAIGQuad->GetCheck();
+			SXLevelEditor::AIGQuad = SXLevelEditor::CheckBoxTBAIGQuad->getCheck();
 		}
-		else if (SXLevelEditor::CheckBoxTBAIGGraphPoint->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBAIGGraphPoint->getHWND() == handle_elem)
 		{
-			SXLevelEditor::AIGGraphPoint = SXLevelEditor::CheckBoxTBAIGGraphPoint->GetCheck();
+			SXLevelEditor::AIGGraphPoint = SXLevelEditor::CheckBoxTBAIGGraphPoint->getCheck();
 		}
 
-		else if (SXLevelEditor::CheckBoxTBLevelType->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBLevelType->getHWND() == handle_elem)
 		{
-			if (SXLevelEditor::CheckBoxTBLevelType->GetCheck())
+			if (SXLevelEditor::CheckBoxTBLevelType->getCheck())
 			{
 				ID gid = SML_LigthsGetGlobal();
 				if (gid < 0)
@@ -1043,28 +1043,28 @@ LRESULT SXLevelEditor_ToolBar1_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 						&float3(1, 1, 1),
 						true,
 						true);
-					SML_LigthsSetEnable(gid, SXLevelEditor::CheckBoxTBGLightEnable->GetCheck());
+					SML_LigthsSetEnable(gid, SXLevelEditor::CheckBoxTBGLightEnable->getCheck());
 					SML_LigthsSetName(gid, "sun");
 				}
-				SXLevelEditor::CheckBoxTBLevelType->SetBmpInResourse(IDB_BITMAP26);
+				SXLevelEditor::CheckBoxTBLevelType->setBmpFromResourse(IDB_BITMAP26);
 			}
 			else
 			{
 				ID gid = SML_LigthsGetGlobal();
 				if (gid >= 0)
 					SML_LigthsDeleteLight(gid);
-				SXLevelEditor::CheckBoxTBLevelType->SetBmpInResourse(IDB_BITMAP25);
-				SXLevelEditor::CheckBoxTBGLightEnable->SetCheck(false);
+				SXLevelEditor::CheckBoxTBLevelType->setBmpFromResourse(IDB_BITMAP25);
+				SXLevelEditor::CheckBoxTBGLightEnable->setCheck(false);
 			}
 		}
 
-		else if (SXLevelEditor::CheckBoxTBGLightEnable->GetHWND() == handle_elem)
+		else if (SXLevelEditor::CheckBoxTBGLightEnable->getHWND() == handle_elem)
 		{
 			ID gid = SML_LigthsGetGlobal();
 			if (gid >= 0)
-				SML_LigthsSetEnable(gid, SXLevelEditor::CheckBoxTBGLightEnable->GetCheck());
+				SML_LigthsSetEnable(gid, SXLevelEditor::CheckBoxTBGLightEnable->getCheck());
 			else
-				SXLevelEditor::CheckBoxTBGLightEnable->SetCheck(false);
+				SXLevelEditor::CheckBoxTBGLightEnable->setCheck(false);
 		}
 		
 	}
@@ -1080,26 +1080,26 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 	HWND handle_elem = (HWND)(lParam);
 	if (Notification == BN_CLICKED)
 	{
-		if (handle_elem == SXLevelEditor::CheckBoxAIGridMarkedSplits->GetHWND())
-			SAIG_GridSetMarkSplits(SXLevelEditor::CheckBoxAIGridMarkedSplits->GetCheck());
+		if (handle_elem == SXLevelEditor::CheckBoxAIGridMarkedSplits->getHWND())
+			SAIG_GridSetMarkSplits(SXLevelEditor::CheckBoxAIGridMarkedSplits->getCheck());
 		else
 		{
-			ID seldata = SXLevelEditor::ListBoxList->GetItemData(SXLevelEditor::ListBoxList->GetSel());
+			ID seldata = SXLevelEditor::ListBoxList->getItemData(SXLevelEditor::ListBoxList->getSel());
 			CBaseEntity* bEnt = SXGame_EntGet(seldata);
-			int str = SXLevelEditor::ListViewGameClass->GetSelString();
+			int str = SXLevelEditor::ListViewGameClass->getSelString();
 
 			if (seldata < 0 || str < 0)
 				return 0;
 			char txtval[256];
-			SXLevelEditor::ListViewGameClass->GetTextItem(txtval, 1, str, 256);
+			SXLevelEditor::ListViewGameClass->getItemText(txtval, 1, str, 256);
 			UINT uiFlags;
 			sscanf(txtval, "%d", &uiFlags);
 
 			for (int i = 0; i < 16; ++i)
 			{
-				if (SXLevelEditor::CheckBoxGameFlags[i]->GetHWND() == handle_elem)
+				if (SXLevelEditor::CheckBoxGameFlags[i]->getHWND() == handle_elem)
 				{
-					if (SXLevelEditor::CheckBoxGameFlags[i]->GetCheck())
+					if (SXLevelEditor::CheckBoxGameFlags[i]->getCheck())
 						uiFlags |= (1 << (i + 16));
 					else
 						uiFlags ^= (1 << (i + 16));
@@ -1107,37 +1107,37 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 			}
 
 			sprintf(txtval, "%d", uiFlags);
-			SXLevelEditor::ListViewGameClass->SetTextItem(txtval, 1, str);
+			SXLevelEditor::ListViewGameClass->setItemText(txtval, 1, str);
 			bEnt->setKV("flags", txtval);
 		}
 	}
 	else if (Notification == CBN_SELCHANGE)
 	{
-		if (SXLevelEditor::ComboBoxGameValue->GetHWND() == handle_elem)
+		if (SXLevelEditor::ComboBoxGameValue->getHWND() == handle_elem)
 		{
-			int sel = SXLevelEditor::ListBoxList->GetSel();
+			int sel = SXLevelEditor::ListBoxList->getSel();
 			char txt[256];
-			SXLevelEditor::ComboBoxGameValue->GetItemText(SXLevelEditor::ComboBoxGameValue->GetSel(), txt);
-			SXLevelEditor::ListViewGameClass->SetTextItem(txt, 1, SXLevelEditor::ListViewGameClass->GetSelString());
-			CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel));
+			SXLevelEditor::ComboBoxGameValue->getItemText(SXLevelEditor::ComboBoxGameValue->getSel(), txt);
+			SXLevelEditor::ListViewGameClass->setItemText(txt, 1, SXLevelEditor::ListViewGameClass->getSelString());
+			CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->getItemData(sel));
 			if (bEnt)
 			{
-				propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(SXLevelEditor::ListViewGameClass->GetSelString());
-				SXLevelEditor::ComboBoxGameValue->GetItemData(SXLevelEditor::ComboBoxGameValue->GetSel());
-				bEnt->setKV(pd->szKey, (const char*)SXLevelEditor::ComboBoxGameValue->GetItemData(SXLevelEditor::ComboBoxGameValue->GetSel()));
+				propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(SXLevelEditor::ListViewGameClass->getSelString());
+				SXLevelEditor::ComboBoxGameValue->getItemData(SXLevelEditor::ComboBoxGameValue->getSel());
+				bEnt->setKV(pd->szKey, (const char*)SXLevelEditor::ComboBoxGameValue->getItemData(SXLevelEditor::ComboBoxGameValue->getSel()));
 			}
 		}
-		else if (SXLevelEditor::ComboBoxGameClass->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ComboBoxGameClass->getHWND() == handle_elem)
 		{
-			if (SXLevelEditor::ComboBoxGameClass->GetSel() == 0)
+			if (SXLevelEditor::ComboBoxGameClass->getSel() == 0)
 				return 0;
 
-			int sel = SXLevelEditor::ListBoxList->GetSel();
+			int sel = SXLevelEditor::ListBoxList->getSel();
 
 			if (sel < 0)
 				return 0;
 
-			CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel));
+			CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->getItemData(sel));
 			proptable_t* pt = SXGame_EntGetProptable(bEnt->getClassName());
 
 			propdata_t* pd;
@@ -1197,7 +1197,7 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 			}
 
 			char txt[256];
-			SXLevelEditor::ComboBoxGameClass->GetItemText(SXLevelEditor::ComboBoxGameClass->GetSel(), txt);
+			SXLevelEditor::ComboBoxGameClass->getItemText(SXLevelEditor::ComboBoxGameClass->getSel(), txt);
 			SXGame_RemoveEntity(bEnt);
 
 			bEnt = SXGame_CreateEntity(txt);
@@ -1211,9 +1211,9 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 
 			SXLevelEditor_ButtonGameObjectOpen_Click(hwnd, msg, wParam, lParam);
 			sel = -1;
-			for(int i = 0; i < SXLevelEditor::ListBoxList->GetCountItem(); ++i)
+			for (int i = 0; i < SXLevelEditor::ListBoxList->getItemCount(); ++i)
 			{
-				if(SXLevelEditor::ListBoxList->GetItemData(i) == bEnt->getId())
+				if(SXLevelEditor::ListBoxList->getItemData(i) == bEnt->getId())
 				{
 					sel = i;
 					break;
@@ -1225,70 +1225,70 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 
 			}
 
-			SXLevelEditor::ListBoxList->SetSel(sel);
+			SXLevelEditor::ListBoxList->setSel(sel);
 			SXLevelEditor::GameSel(sel);
 		}
-		else if (SXLevelEditor::ComboBoxGreenSel->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ComboBoxGreenSel->getHWND() == handle_elem)
 		{
-			int sel = SXLevelEditor::ComboBoxGreenSel->GetSel();
+			int sel = SXLevelEditor::ComboBoxGreenSel->getSel();
 			SXLevelEditor::GreenRenderBox = false;
 			
 			if (sel == 0)
 			{
-				SXLevelEditor::StaticGreenSelX->SetText("Position X:");
-				SXLevelEditor::StaticGreenSelY->SetText("Position Y:");
-				SXLevelEditor::StaticGreenSelZ->SetText("Position Z:");
-				SXLevelEditor::EditGreenSelX->SetText("");
-				SXLevelEditor::EditGreenSelY->SetText("");
-				SXLevelEditor::EditGreenSelZ->SetText("");
+				SXLevelEditor::StaticGreenSelX->setText("Position X:");
+				SXLevelEditor::StaticGreenSelY->setText("Position Y:");
+				SXLevelEditor::StaticGreenSelZ->setText("Position Z:");
+				SXLevelEditor::EditGreenSelX->setText("");
+				SXLevelEditor::EditGreenSelY->setText("");
+				SXLevelEditor::EditGreenSelZ->setText("");
 			}
 			else if (sel == 2)
 			{
 				SXLevelEditor::GreenRenderBox = true;
 
-				SXLevelEditor::StaticGreenSelX->SetText("Width volume:");
-				SXLevelEditor::StaticGreenSelY->SetText("Height volume:");
-				SXLevelEditor::StaticGreenSelZ->SetText("Depth volume:");
-				SXLevelEditor::EditGreenSelX->SetText(String(SXLevelEditor::GreenBoxWHD.x).c_str());
-				SXLevelEditor::EditGreenSelY->SetText(String(SXLevelEditor::GreenBoxWHD.y).c_str());
-				SXLevelEditor::EditGreenSelZ->SetText(String(SXLevelEditor::GreenBoxWHD.z).c_str());
+				SXLevelEditor::StaticGreenSelX->setText("Width volume:");
+				SXLevelEditor::StaticGreenSelY->setText("Height volume:");
+				SXLevelEditor::StaticGreenSelZ->setText("Depth volume:");
+				SXLevelEditor::EditGreenSelX->setText(String(SXLevelEditor::GreenBoxWHD.x).c_str());
+				SXLevelEditor::EditGreenSelY->setText(String(SXLevelEditor::GreenBoxWHD.y).c_str());
+				SXLevelEditor::EditGreenSelZ->setText(String(SXLevelEditor::GreenBoxWHD.z).c_str());
 			}
 
 			
 		}
 
-		else if (SXLevelEditor::ComboBoxGameConnectionsEvent->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ComboBoxGameConnectionsEvent->getHWND() == handle_elem)
 		{
-			ID idSelListBoxList = SXLevelEditor::ListBoxList->GetSel();
-			ID idSelStrTable = SXLevelEditor::ListViewGameConnections->GetSelString();
+			ID idSelListBoxList = SXLevelEditor::ListBoxList->getSel();
+			ID idSelStrTable = SXLevelEditor::ListViewGameConnections->getSelString();
 
 			if (idSelListBoxList < 0 || idSelStrTable < 0)
 				return 0;
 
 			char szBuffer256[256];
 			szBuffer256[0] = 0;
-			SXLevelEditor::ComboBoxGameConnectionsEvent->GetItemText(256, szBuffer256);
-			SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 0, idSelStrTable);
+			SXLevelEditor::ComboBoxGameConnectionsEvent->getItemText(256, szBuffer256);
+			SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 0, idSelStrTable);
 			return SXLevelEditor_EditGameConnections_Enter(hwnd, msg, wParam, lParam);
 		}
-		else if (SXLevelEditor::ComboBoxGameConnectionsAction->GetHWND() == handle_elem)
+		else if (SXLevelEditor::ComboBoxGameConnectionsAction->getHWND() == handle_elem)
 		{
-			ID idSelListBoxList = SXLevelEditor::ListBoxList->GetSel();
-			ID idSelStrTable = SXLevelEditor::ListViewGameConnections->GetSelString();
+			ID idSelListBoxList = SXLevelEditor::ListBoxList->getSel();
+			ID idSelStrTable = SXLevelEditor::ListViewGameConnections->getSelString();
 
 			if (idSelListBoxList < 0 || idSelStrTable < 0)
 				return 0;
 
 			char szBuffer256[256];
 			szBuffer256[0] = 0;
-			SXLevelEditor::ComboBoxGameConnectionsAction->GetItemText(SXLevelEditor::ComboBoxGameConnectionsAction->GetSel(), szBuffer256);
-			SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 2, idSelStrTable);
+			SXLevelEditor::ComboBoxGameConnectionsAction->getItemText(SXLevelEditor::ComboBoxGameConnectionsAction->getSel(), szBuffer256);
+			SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 2, idSelStrTable);
 			return SXLevelEditor_EditGameConnections_Enter(hwnd, msg, wParam, lParam);
 		}
 	}
 	/*else if (Notification == EN_CHANGE)
 	{
-		if (SXLevelEditor::EditGameConnectionsACValue->GetHWND() == handle_elem)
+		if (SXLevelEditor::EditGameConnectionsACValue->getHWND() == handle_elem)
 		{
 			static int recurion = 0;
 			if (recurion > 0)
@@ -1327,8 +1327,8 @@ LRESULT SXLevelEditor_GroupBox_CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam,
 						if (qq == 0)
 						{
 							++recurion;
-							SXLevelEditor::EditGameConnectionsACValue->SetText(lower_name);
-							PostMessage(SXLevelEditor::EditGameConnectionsACValue->GetHWND(), EM_SETSEL, strlen(edit_text), strlen(lower_name));
+							SXLevelEditor::EditGameConnectionsACValue->setText(lower_name);
+							PostMessage(SXLevelEditor::EditGameConnectionsACValue->getHWND(), EM_SETSEL, strlen(edit_text), strlen(lower_name));
 							return 0;
 						}
 					}
@@ -1346,7 +1346,7 @@ LRESULT SXLevelEditor_GroupBoxList_CallWmCommand(HWND hwnd, UINT msg, WPARAM wPa
 	HWND handle_elem = (HWND)(lParam);
 	if (Notification == LBN_SELCHANGE)
 	{
-		if (handle_elem == SXLevelEditor::ListBoxList->GetHWND())
+		if (handle_elem == SXLevelEditor::ListBoxList->getHWND())
 			SXLevelEditor_ListBoxList_Click(hwnd, msg, wParam, lParam);
 	}
 
@@ -1359,19 +1359,19 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 	static bool IsSFirstRBMTransform = false;
 	static int CoordinateTransformation = -1;
 
-	if (SXLevelEditor::RadioButtonGeomPosX->GetCheck() || SXLevelEditor::RadioButtonGeomRotX->GetCheck() || SXLevelEditor::RadioButtonGeomScaleX->GetCheck() || SXLevelEditor::RadioButtonGreenSelX->GetCheck())
+	if (SXLevelEditor::RadioButtonGeomPosX->getCheck() || SXLevelEditor::RadioButtonGeomRotX->getCheck() || SXLevelEditor::RadioButtonGeomScaleX->getCheck() || SXLevelEditor::RadioButtonGreenSelX->getCheck())
 		CoordinateTransformation = 0;
-	else if (SXLevelEditor::RadioButtonGeomPosY->GetCheck() || SXLevelEditor::RadioButtonGeomRotY->GetCheck() || SXLevelEditor::RadioButtonGeomScaleY->GetCheck() || SXLevelEditor::RadioButtonGreenSelY->GetCheck())
+	else if (SXLevelEditor::RadioButtonGeomPosY->getCheck() || SXLevelEditor::RadioButtonGeomRotY->getCheck() || SXLevelEditor::RadioButtonGeomScaleY->getCheck() || SXLevelEditor::RadioButtonGreenSelY->getCheck())
 		CoordinateTransformation = 1;
-	else if (SXLevelEditor::RadioButtonGeomPosZ->GetCheck() || SXLevelEditor::RadioButtonGeomRotZ->GetCheck() || SXLevelEditor::RadioButtonGeomScaleZ->GetCheck() || SXLevelEditor::RadioButtonGreenSelZ->GetCheck())
+	else if (SXLevelEditor::RadioButtonGeomPosZ->getCheck() || SXLevelEditor::RadioButtonGeomRotZ->getCheck() || SXLevelEditor::RadioButtonGeomScaleZ->getCheck() || SXLevelEditor::RadioButtonGreenSelZ->getCheck())
 		CoordinateTransformation = 2;
 
 	if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GEOM)
 	{
 		if (SSInput_GetKeyState(SIK_LSHIFT) && SGeom_ModelsGetCount() > 0)
 		{
-			DWORD selmodel = SXLevelEditor::ListBoxList->GetSel();
-			if (SXLevelEditor::RadioButtonGeomPosX->GetCheck() || SXLevelEditor::RadioButtonGeomPosY->GetCheck() || SXLevelEditor::RadioButtonGeomPosZ->GetCheck())
+			DWORD selmodel = SXLevelEditor::ListBoxList->getSel();
+			if (SXLevelEditor::RadioButtonGeomPosX->getCheck() || SXLevelEditor::RadioButtonGeomPosY->getCheck() || SXLevelEditor::RadioButtonGeomPosZ->getCheck())
 			{
 				float3& pos = *(SGeom_ModelsMGetPosition(selmodel));
 
@@ -1413,14 +1413,14 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 				sprintf(tmpPosY, "%f", pos.y);
 				sprintf(tmpPosZ, "%f", pos.z);
 
-				SXLevelEditor::EditGeomPosX->SetText(tmpPosX);
-				SXLevelEditor::EditGeomPosY->SetText(tmpPosY);
-				SXLevelEditor::EditGeomPosZ->SetText(tmpPosZ);
+				SXLevelEditor::EditGeomPosX->setText(tmpPosX);
+				SXLevelEditor::EditGeomPosY->setText(tmpPosY);
+				SXLevelEditor::EditGeomPosZ->setText(tmpPosZ);
 
 				SGeom_ModelsMApplyTransform(selmodel);
 			}
 
-			else if (SXLevelEditor::RadioButtonGeomRotX->GetCheck() || SXLevelEditor::RadioButtonGeomRotY->GetCheck() || SXLevelEditor::RadioButtonGeomRotZ->GetCheck())
+			else if (SXLevelEditor::RadioButtonGeomRotX->getCheck() || SXLevelEditor::RadioButtonGeomRotY->getCheck() || SXLevelEditor::RadioButtonGeomRotZ->getCheck())
 			{
 				float3& pos = *(SGeom_ModelsMGetRotation(selmodel));
 
@@ -1463,14 +1463,14 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 				sprintf(tmpPosY, "%f", pos.y);
 				sprintf(tmpPosZ, "%f", pos.z);
 
-				SXLevelEditor::EditGeomRotX->SetText(tmpPosX);
-				SXLevelEditor::EditGeomRotY->SetText(tmpPosY);
-				SXLevelEditor::EditGeomRotZ->SetText(tmpPosZ);
+				SXLevelEditor::EditGeomRotX->setText(tmpPosX);
+				SXLevelEditor::EditGeomRotY->setText(tmpPosY);
+				SXLevelEditor::EditGeomRotZ->setText(tmpPosZ);
 
 				SGeom_ModelsMApplyTransform(selmodel);
 			}
 
-			else if (SXLevelEditor::RadioButtonGeomScaleX->GetCheck() || SXLevelEditor::RadioButtonGeomScaleY->GetCheck() || SXLevelEditor::RadioButtonGeomScaleZ->GetCheck())
+			else if (SXLevelEditor::RadioButtonGeomScaleX->getCheck() || SXLevelEditor::RadioButtonGeomScaleY->getCheck() || SXLevelEditor::RadioButtonGeomScaleZ->getCheck())
 			{
 				float3& pos = *(SGeom_ModelsMGetScale(selmodel));
 
@@ -1513,9 +1513,9 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 				sprintf(tmpPosY, "%f", pos.y);
 				sprintf(tmpPosZ, "%f", pos.z);
 
-				SXLevelEditor::EditGeomScaleX->SetText(tmpPosX);
-				SXLevelEditor::EditGeomScaleY->SetText(tmpPosY);
-				SXLevelEditor::EditGeomScaleZ->SetText(tmpPosZ);
+				SXLevelEditor::EditGeomScaleX->setText(tmpPosX);
+				SXLevelEditor::EditGeomScaleY->setText(tmpPosY);
+				SXLevelEditor::EditGeomScaleZ->setText(tmpPosZ);
 
 				SGeom_ModelsMApplyTransform(selmodel);
 			}
@@ -1523,18 +1523,18 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 	}
 	else if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN &&
 			(
-			(SXLevelEditor::ComboBoxGreenSel->GetSel() == 0 && SXLevelEditor::ActiveElement >= 0 && SXLevelEditor::ActiveGreenSplit >= 0 && SXLevelEditor::ActiveGreenObject >= 0) ||
-			(SXLevelEditor::ComboBoxGreenSel->GetSel() == 2)
+			(SXLevelEditor::ComboBoxGreenSel->getSel() == 0 && SXLevelEditor::ActiveElement >= 0 && SXLevelEditor::ActiveGreenSplit >= 0 && SXLevelEditor::ActiveGreenObject >= 0) ||
+			(SXLevelEditor::ComboBoxGreenSel->getSel() == 2)
 			)
 		)
 	{
 		if (SSInput_GetKeyState(SIK_LSHIFT) && SGeom_GreenGetCount() > 0)
 		{
-			DWORD selmodel = SXLevelEditor::ListBoxList->GetSel();
-			if (SXLevelEditor::RadioButtonGreenSelX->GetCheck() || SXLevelEditor::RadioButtonGreenSelY->GetCheck() || SXLevelEditor::RadioButtonGreenSelZ->GetCheck())
+			DWORD selmodel = SXLevelEditor::ListBoxList->getSel();
+			if (SXLevelEditor::RadioButtonGreenSelX->getCheck() || SXLevelEditor::RadioButtonGreenSelY->getCheck() || SXLevelEditor::RadioButtonGreenSelZ->getCheck())
 			{
 				float3 pos;
-				if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 2)
+				if (SXLevelEditor::ComboBoxGreenSel->getSel() == 2)
 					pos = SXLevelEditor::GreenBoxWHD;
 				else
 				{
@@ -1582,11 +1582,11 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 				sprintf(tmpPosY, "%f", pos.y);
 				sprintf(tmpPosZ, "%f", pos.z);
 
-				SXLevelEditor::EditGreenSelX->SetText(tmpPosX);
-				SXLevelEditor::EditGreenSelY->SetText(tmpPosY);
-				SXLevelEditor::EditGreenSelZ->SetText(tmpPosZ);
+				SXLevelEditor::EditGreenSelX->setText(tmpPosX);
+				SXLevelEditor::EditGreenSelY->setText(tmpPosY);
+				SXLevelEditor::EditGreenSelZ->setText(tmpPosZ);
 
-				if (SXLevelEditor::ComboBoxGreenSel->GetSel() == 2)
+				if (SXLevelEditor::ComboBoxGreenSel->getSel() == 2)
 					SXLevelEditor::GreenBoxWHD = pos;
 				else
 					SGeom_GreenSetPosObject(SXLevelEditor::ActiveElement, &SXLevelEditor::ActiveGreenSplit, &SXLevelEditor::ActiveGreenObject, &float3_t(pos));
@@ -1638,17 +1638,17 @@ void SXLevelEditor_Transform(DWORD timeDelta)
 
 void SXLevelEditor::FinalImageUncheckedMenu()
 {
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_COLOR, false);
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_NORMALS, false);
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_PARAMETERS, false);
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, false);
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_SPECULAR, false);
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_LIGHTINGSCENE, false);
-
-	SXLevelEditor::CheckBoxTBRColor->SetCheck(false);
-	SXLevelEditor::CheckBoxTBRNormal->SetCheck(false);
-	SXLevelEditor::CheckBoxTBRParam->SetCheck(false);
-	SXLevelEditor::CheckBoxTBRAmDiff->SetCheck(false);
-	SXLevelEditor::CheckBoxTBRSpecular->SetCheck(false);
-	SXLevelEditor::CheckBoxTBRLighting->SetCheck(false);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_COLOR, false);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_NORMALS, false);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_PARAMETERS, false);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, false);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_SPECULAR, false);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_LIGHTINGSCENE, false);
+
+	SXLevelEditor::CheckBoxTBRColor->setCheck(false);
+	SXLevelEditor::CheckBoxTBRNormal->setCheck(false);
+	SXLevelEditor::CheckBoxTBRParam->setCheck(false);
+	SXLevelEditor::CheckBoxTBRAmDiff->setCheck(false);
+	SXLevelEditor::CheckBoxTBRSpecular->setCheck(false);
+	SXLevelEditor::CheckBoxTBRLighting->setCheck(false);
 }
\ No newline at end of file
diff --git a/source/sxleveleditor/game_callback.cpp b/source/sxleveleditor/game_callback.cpp
index f953157b4..920f53ee8 100644
--- a/source/sxleveleditor/game_callback.cpp
+++ b/source/sxleveleditor/game_callback.cpp
@@ -3,28 +3,28 @@
 
 void SXLevelEditor::GameActivateAll(bool bf)
 {
-	SXLevelEditor::StaticGameClass->Visible(bf);
-	SXLevelEditor::ComboBoxGameClass->Visible(bf);
-	SXLevelEditor::ComboBoxGameClass->SetSel(0);
-	SXLevelEditor::ButtonGameTab->Visible(bf);
-	SXLevelEditor::ButtonGameTab->SetText("Connections");
-	SXLevelEditor::ListViewGameClass->Visible(bf);
-	SXLevelEditor::ListViewGameClass->ClearStrings();
-	SXLevelEditor::ComboBoxGameValue->Visible(false);
-	SXLevelEditor::ComboBoxGameValue->Clear();
-	SXLevelEditor::EditGameValue->Visible(false);
-	SXLevelEditor::EditGameValue->SetText("");
-	SXLevelEditor::ButtonGameValue->Visible(false);
-	SXLevelEditor::ListViewGameClass->Enable(false);
-
-	SXLevelEditor::StaticGameHelp->Visible(bf);
-	SXLevelEditor::MemoGameHelp->SetText("");
-	SXLevelEditor::MemoGameHelp->Visible(bf);
-	SXLevelEditor::ButtonGameCreate->Visible(bf);
+	SXLevelEditor::StaticGameClass->setVisible(bf);
+	SXLevelEditor::ComboBoxGameClass->setVisible(bf);
+	SXLevelEditor::ComboBoxGameClass->setSel(0);
+	SXLevelEditor::ButtonGameTab->setVisible(bf);
+	SXLevelEditor::ButtonGameTab->setText("Connections");
+	SXLevelEditor::ListViewGameClass->setVisible(bf);
+	SXLevelEditor::ListViewGameClass->clearStrings();
+	SXLevelEditor::ComboBoxGameValue->setVisible(false);
+	SXLevelEditor::ComboBoxGameValue->clear();
+	SXLevelEditor::EditGameValue->setVisible(false);
+	SXLevelEditor::EditGameValue->setText("");
+	SXLevelEditor::ButtonGameValue->setVisible(false);
+	SXLevelEditor::ListViewGameClass->setEnable(false);
+
+	SXLevelEditor::StaticGameHelp->setVisible(bf);
+	SXLevelEditor::MemoGameHelp->setText("");
+	SXLevelEditor::MemoGameHelp->setVisible(bf);
+	SXLevelEditor::ButtonGameCreate->setVisible(bf);
 
 	for (int i = 0; i < 16; ++i)
 	{
-		SXLevelEditor::CheckBoxGameFlags[i]->Visible(false);
+		SXLevelEditor::CheckBoxGameFlags[i]->setVisible(false);
 	}
 
 	if (!bf)
@@ -35,17 +35,17 @@ void SXLevelEditor::GameSel(int sel)
 {
 	for (int i = 0; i < 16; ++i)
 	{
-		SXLevelEditor::CheckBoxGameFlags[i]->Visible(false);
+		SXLevelEditor::CheckBoxGameFlags[i]->setVisible(false);
 	}
 
-	SXLevelEditor::ComboBoxGameValue->Visible(false);
-	SXLevelEditor::ComboBoxGameValue->Clear();
-	SXLevelEditor::EditGameValue->Visible(false);
-	SXLevelEditor::EditGameValue->SetText("");
-	SXLevelEditor::ButtonGameCreate->Visible(false);
-	SXLevelEditor::ListViewGameClass->Enable(true);
-	SXLevelEditor::ListViewGameClass->ClearStrings();
-	ID seldata = SXLevelEditor::ListBoxList->GetItemData(sel);
+	SXLevelEditor::ComboBoxGameValue->setVisible(false);
+	SXLevelEditor::ComboBoxGameValue->clear();
+	SXLevelEditor::EditGameValue->setVisible(false);
+	SXLevelEditor::EditGameValue->setText("");
+	SXLevelEditor::ButtonGameCreate->setVisible(false);
+	SXLevelEditor::ListViewGameClass->setEnable(true);
+	SXLevelEditor::ListViewGameClass->clearStrings();
+	ID seldata = SXLevelEditor::ListBoxList->getItemData(sel);
 	SXLevelEditor::ActiveElement = seldata;
 	SXLevelEditor::ActiveGroupType = EDITORS_LEVEL_GROUPTYPE_GAME;
 	CBaseEntity* bEnt = SXGame_EntGet(seldata);
@@ -53,11 +53,11 @@ void SXLevelEditor::GameSel(int sel)
 
 	char txtclasscb[256];
 	const char* txtclassent = bEnt->getClassName();
-	for (int i = 0; i < SXLevelEditor::ComboBoxGameClass->GetCount(); ++i)
+	for (int i = 0; i < SXLevelEditor::ComboBoxGameClass->getCount(); ++i)
 	{
-		SXLevelEditor::ComboBoxGameClass->GetItemText(i, txtclasscb);
+		SXLevelEditor::ComboBoxGameClass->getItemText(i, txtclasscb);
 		if (strcmp(txtclasscb, txtclassent) == 0)
-			SXLevelEditor::ComboBoxGameClass->SetSel(i);
+			SXLevelEditor::ComboBoxGameClass->setSel(i);
 	}
 	
 	propdata_t* pd;
@@ -86,10 +86,10 @@ void SXLevelEditor::GameSel(int sel)
 			{
 				sprintf(txtkey, "%s", pd->szEdName);
 				bEnt->getKV(pd->szKey, txtval, 256);
-				int str = SXLevelEditor::ListViewGameClass->AddString((long)pd);
-				SXLevelEditor::ListViewGameClass->SetTextItem(txtkey, 0, str);
-				//propdata_t* pd2 = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str);
-				SXLevelEditor::ListViewGameClass->SetTextItem(txtval, 1, str);
+				int str = SXLevelEditor::ListViewGameClass->addString((long)pd);
+				SXLevelEditor::ListViewGameClass->setItemText(txtkey, 0, str);
+				//propdata_t* pd2 = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(str);
+				SXLevelEditor::ListViewGameClass->setItemText(txtval, 1, str);
 			}
 
 			if (pd->szEdName && pd->type == PDF_FLAG)
@@ -109,10 +109,10 @@ void SXLevelEditor::GameSel(int sel)
 		{
 			sprintf(txtkey, "%s", pd->szEdName);
 			bEnt->getKV(pd->szKey, txtval, 256);
-			int str = SXLevelEditor::ListViewGameClass->AddString((long)pd);
-			SXLevelEditor::ListViewGameClass->SetTextItem(txtkey, 0, str);
-			//propdata_t* pd2 = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str);
-			SXLevelEditor::ListViewGameClass->SetTextItem(txtval, 1, str);
+			int str = SXLevelEditor::ListViewGameClass->addString((long)pd);
+			SXLevelEditor::ListViewGameClass->setItemText(txtkey, 0, str);
+			//propdata_t* pd2 = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(str);
+			SXLevelEditor::ListViewGameClass->setItemText(txtval, 1, str);
 		}
 
 		if (pd->szEdName && pd->type == PDF_FLAG)
@@ -123,12 +123,12 @@ void SXLevelEditor::GameSel(int sel)
 	}
 
 	//заполнение таблицы и ComboBoxGameConnectionsEvent
-	SXLevelEditor::ComboBoxGameConnectionsEvent->Clear();
-	SXLevelEditor::ComboBoxGameConnectionsAction->Clear();
-	SXLevelEditor::ListViewGameConnections->ClearStrings();
-	SXLevelEditor::EditGameConnectionsName->SetText("");
-	SXLevelEditor::EditGameConnectionsDelay->SetText("");
-	SXLevelEditor::EditGameConnectionsParameter->SetText("");
+	SXLevelEditor::ComboBoxGameConnectionsEvent->clear();
+	SXLevelEditor::ComboBoxGameConnectionsAction->clear();
+	SXLevelEditor::ListViewGameConnections->clearStrings();
+	SXLevelEditor::EditGameConnectionsName->setText("");
+	SXLevelEditor::EditGameConnectionsDelay->setText("");
+	SXLevelEditor::EditGameConnectionsParameter->setText("");
 
 	char szBuffer4096[4096];
 
@@ -156,12 +156,12 @@ void SXLevelEditor::GameSel(int sel)
 
 				if (iConns2 > 0)
 				{
-					int iNumStr = SXLevelEditor::ListViewGameConnections->AddString((long)pd);
+					int iNumStr = SXLevelEditor::ListViewGameConnections->addString((long)pd);
 					sprintf(txtkey, "%s", pd->szEdName);
-					SXLevelEditor::ListViewGameConnections->SetTextItem(txtkey, 0, iNumStr);
+					SXLevelEditor::ListViewGameConnections->setItemText(txtkey, 0, iNumStr);
 
 					for (int j = 0; j < iConns2; ++j)
-						SXLevelEditor::ListViewGameConnections->SetTextItem(parts2[j], j + 1, iNumStr);
+						SXLevelEditor::ListViewGameConnections->setItemText(parts2[j], j + 1, iNumStr);
 
 					CBaseEntity *pEnt2 = SXGame_EntGetByName(parts2[0], 0);
 					if (pEnt2)
@@ -174,15 +174,15 @@ void SXLevelEditor::GameSel(int sel)
 							if (pPropData2->flags & PDFF_INPUT && strcmp(pPropData2->szKey, parts2[1])==0)
 							{
 								sprintf(txtkey, "%s", pPropData2->szEdName);
-								SXLevelEditor::ListViewGameConnections->SetTextItem(txtkey, 2, iNumStr);
+								SXLevelEditor::ListViewGameConnections->setItemText(txtkey, 2, iNumStr);
 							}
 						}
 					}
 				}
 			}
 
-			SXLevelEditor::ComboBoxGameConnectionsEvent->AddItem(pd->szEdName);
-			SXLevelEditor::ComboBoxGameConnectionsEvent->SetItemData(SXLevelEditor::ComboBoxGameConnectionsEvent->GetCount()-1, (LPARAM)(pd->szKey));
+			SXLevelEditor::ComboBoxGameConnectionsEvent->addItem(pd->szEdName);
+			SXLevelEditor::ComboBoxGameConnectionsEvent->setItemData(SXLevelEditor::ComboBoxGameConnectionsEvent->getCount()-1, (LPARAM)(pd->szKey));
 		}
 	}
 	//-------
@@ -201,16 +201,16 @@ void SXLevelEditor::GameUpdatePosRot()
 	propdata_t* pd = 0;
 	char txtval[256];
 
-	for (int i = 0; i < SXLevelEditor::ListViewGameClass->GetCountString(); ++i)
+	for (int i = 0; i < SXLevelEditor::ListViewGameClass->getStringCount(); ++i)
 	{
-		pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(i);
+		pd = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(i);
 
 		if (pd)
 		{
 			if (stricmp(pd->szKey, "origin") == 0 || stricmp(pd->szKey, "rotation") == 0)
 			{
 				bEnt->getKV(pd->szKey, txtval, 256);
-				SXLevelEditor::ListViewGameClass->SetTextItem(txtval, 1, i);
+				SXLevelEditor::ListViewGameClass->setItemText(txtval, 1, i);
 			}
 		}
 	}
@@ -218,61 +218,61 @@ void SXLevelEditor::GameUpdatePosRot()
 
 LRESULT SXLevelEditor_ListViewGameClass_Click()
 {
-	int str = SXLevelEditor::ListViewGameClass->GetSelString();
+	int str = SXLevelEditor::ListViewGameClass->getSelString();
 	if (str < 0)
 	{
-		SXLevelEditor::EditGameValue->Visible(false);
-		SXLevelEditor::ButtonGameValue->Visible(false);
-		SXLevelEditor::ComboBoxGameValue->Visible(false);
+		SXLevelEditor::EditGameValue->setVisible(false);
+		SXLevelEditor::ButtonGameValue->setVisible(false);
+		SXLevelEditor::ComboBoxGameValue->setVisible(false);
 		return 0;
 	}
-	propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str);
+	propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(str);
 
-	SXLevelEditor::EditGameValue->Visible(false);
-	SXLevelEditor::ButtonGameValue->Visible(false);
-	SXLevelEditor::ComboBoxGameValue->Visible(false);
+	SXLevelEditor::EditGameValue->setVisible(false);
+	SXLevelEditor::ButtonGameValue->setVisible(false);
+	SXLevelEditor::ComboBoxGameValue->setVisible(false);
 
 	char txtval[256];
 
 	for (int i = 0; i < 16; ++i)
 	{
-		SXLevelEditor::CheckBoxGameFlags[i]->Visible(false);
+		SXLevelEditor::CheckBoxGameFlags[i]->setVisible(false);
 	}
 
 	if (pd->editor.type == PDE_TEXTFIELD)
 	{
-		SXLevelEditor::EditGameValue->Visible(true);
-		SXLevelEditor::ListViewGameClass->GetTextItem(txtval, 1, str, 256);
-		SXLevelEditor::EditGameValue->SetText(txtval);
+		SXLevelEditor::EditGameValue->setVisible(true);
+		SXLevelEditor::ListViewGameClass->getItemText(txtval, 1, str, 256);
+		SXLevelEditor::EditGameValue->setText(txtval);
 
-		SXLevelEditor::StaticGameHelp->Visible(true);
-		SXLevelEditor::MemoGameHelp->Visible(true);
+		SXLevelEditor::StaticGameHelp->setVisible(true);
+		SXLevelEditor::MemoGameHelp->setVisible(true);
 	}
 	else if (pd->editor.type == PDE_FILEFIELD)
 	{
-		SXLevelEditor::EditGameValue->Visible(true);
-		SXLevelEditor::ButtonGameValue->Visible(true);
-		SXLevelEditor::ListViewGameClass->GetTextItem(txtval, 1, str, 256);
-		SXLevelEditor::EditGameValue->SetText(txtval);
+		SXLevelEditor::EditGameValue->setVisible(true);
+		SXLevelEditor::ButtonGameValue->setVisible(true);
+		SXLevelEditor::ListViewGameClass->getItemText(txtval, 1, str, 256);
+		SXLevelEditor::EditGameValue->setText(txtval);
 
-		SXLevelEditor::StaticGameHelp->Visible(true);
-		SXLevelEditor::MemoGameHelp->Visible(true);
+		SXLevelEditor::StaticGameHelp->setVisible(true);
+		SXLevelEditor::MemoGameHelp->setVisible(true);
 	}
 	else if (pd->editor.type == PDE_COMBOBOX)
 	{
-		SXLevelEditor::StaticGameHelp->Visible(true);
-		SXLevelEditor::MemoGameHelp->Visible(true);
+		SXLevelEditor::StaticGameHelp->setVisible(true);
+		SXLevelEditor::MemoGameHelp->setVisible(true);
 
-		SXLevelEditor::ComboBoxGameValue->Clear();
-		SXLevelEditor::ComboBoxGameValue->Visible(true);
+		SXLevelEditor::ComboBoxGameValue->clear();
+		SXLevelEditor::ComboBoxGameValue->setVisible(true);
 		editor_kv* ekv = (editor_kv*)pd->editor.pData;
 		int elem = 0;
 		while (ekv)
 		{
 			if (ekv->key && ekv->value)
 			{
-				SXLevelEditor::ComboBoxGameValue->AddItem(ekv->key);
-				SXLevelEditor::ComboBoxGameValue->SetItemData(elem, (LPARAM)ekv->value);
+				SXLevelEditor::ComboBoxGameValue->addItem(ekv->key);
+				SXLevelEditor::ComboBoxGameValue->setItemData(elem, (LPARAM)ekv->value);
 				++elem;
 				ekv++;
 			}
@@ -282,31 +282,31 @@ LRESULT SXLevelEditor_ListViewGameClass_Click()
 
 		static char tval[256];
 		tval[0] = 0;
-		SXLevelEditor::ListViewGameClass->GetTextItem(tval, 1, str, 256);
+		SXLevelEditor::ListViewGameClass->getItemText(tval, 1, str, 256);
 
 		const char* tval2;
 		char tval3[256];
 		bool isfound = false;
 
 		//проверяем в цикле какая строка из комбобокса выбрана
-		for (int i = 0; i < SXLevelEditor::ComboBoxGameValue->GetCount(); ++i)
+		for (int i = 0; i < SXLevelEditor::ComboBoxGameValue->getCount(); ++i)
 		{
 			//сначала проверяем по юзердате (там записано значение)
-			tval2 = (const char*)SXLevelEditor::ComboBoxGameValue->GetItemData(i);
+			tval2 = (const char*)SXLevelEditor::ComboBoxGameValue->getItemData(i);
 
 			if (strcmp(tval, tval2) == 0)
 			{
-				SXLevelEditor::ComboBoxGameValue->SetSel(i);
+				SXLevelEditor::ComboBoxGameValue->setSel(i);
 				isfound = true;
 				break;
 			}
 
 			//затем проверям по имени строки
-			SXLevelEditor::ComboBoxGameValue->GetItemText(i, tval3);
+			SXLevelEditor::ComboBoxGameValue->getItemText(i, tval3);
 			
 			if (strcmp(tval, tval3) == 0)
 			{
-				SXLevelEditor::ComboBoxGameValue->SetSel(i);
+				SXLevelEditor::ComboBoxGameValue->setSel(i);
 				isfound = true;
 				break;
 			}
@@ -316,29 +316,29 @@ LRESULT SXLevelEditor_ListViewGameClass_Click()
 		if (!isfound)
 		{
 			MessageBox(0,"SXLevelEditor_ListViewGameClass_Click data not found",0,0);
-			SXLevelEditor::ComboBoxGameValue->AddItem(tval);
-			SXLevelEditor::ComboBoxGameValue->SetItemData(SXLevelEditor::ComboBoxGameValue->GetCount() - 1, (LPARAM)tval);
-			SXLevelEditor::ComboBoxGameValue->SetSel(SXLevelEditor::ComboBoxGameValue->GetCount()-1);
+			SXLevelEditor::ComboBoxGameValue->addItem(tval);
+			SXLevelEditor::ComboBoxGameValue->setItemData(SXLevelEditor::ComboBoxGameValue->getCount() - 1, (LPARAM)tval);
+			SXLevelEditor::ComboBoxGameValue->setSel(SXLevelEditor::ComboBoxGameValue->getCount()-1);
 		}
 	}
 	else if (pd->editor.type == PDE_FLAGS)
 	{
-		SXLevelEditor::StaticGameHelp->Visible(false);
-		SXLevelEditor::MemoGameHelp->Visible(false);
+		SXLevelEditor::StaticGameHelp->setVisible(false);
+		SXLevelEditor::MemoGameHelp->setVisible(false);
 		char txtval[256];
-		SXLevelEditor::ListViewGameClass->GetTextItem(txtval, 1, str, 256);
+		SXLevelEditor::ListViewGameClass->getItemText(txtval, 1, str, 256);
 		UINT uiFlags;
 		sscanf(txtval, "%d", &uiFlags);
 		for (int i = 0; i < 16; ++i)
 		{
 			if (SXLevelEditor::aGameObjectFlags[i])
 			{
-				SXLevelEditor::CheckBoxGameFlags[i]->SetText(SXLevelEditor::aGameObjectFlags[i]);
-				SXLevelEditor::CheckBoxGameFlags[i]->Visible(true);
+				SXLevelEditor::CheckBoxGameFlags[i]->setText(SXLevelEditor::aGameObjectFlags[i]);
+				SXLevelEditor::CheckBoxGameFlags[i]->setVisible(true);
 				if (uiFlags & ((1 << i + 16)))
-					SXLevelEditor::CheckBoxGameFlags[i]->SetCheck(true);
+					SXLevelEditor::CheckBoxGameFlags[i]->setCheck(true);
 				else
-					SXLevelEditor::CheckBoxGameFlags[i]->SetCheck(false);
+					SXLevelEditor::CheckBoxGameFlags[i]->setCheck(false);
 			}
 		}
 	}
@@ -347,23 +347,23 @@ LRESULT SXLevelEditor_ListViewGameClass_Click()
 
 LRESULT SXLevelEditor_EditGameValue_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 	
 	if (sel < 0)
 		return 0;
 
-	int str = SXLevelEditor::ListViewGameClass->GetSelString();
+	int str = SXLevelEditor::ListViewGameClass->getSelString();
 	
 	if (str < 0)
 		return 0;
 
 	char txt[256];
-	SXLevelEditor::EditGameValue->GetText(txt, 256);
-	SXLevelEditor::ListViewGameClass->SetTextItem(txt, 1, str);
-	CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel));
+	SXLevelEditor::EditGameValue->getText(txt, 256);
+	SXLevelEditor::ListViewGameClass->setItemText(txt, 1, str);
+	CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->getItemData(sel));
 	if (bEnt)
 	{
-		propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str);
+		propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(str);
 		bool bf = bEnt->setKV(pd->szKey, txt);
 		int qwerty = 0;
 
@@ -371,7 +371,7 @@ LRESULT SXLevelEditor_EditGameValue_Enter(HWND hwnd, UINT msg, WPARAM wParam, LP
 		{
 			char tmpname[512];
 			sprintf(tmpname, "%s / %s", bEnt->getName(), bEnt->getClassName());
-			SXLevelEditor::ListBoxList->SetTextItem(sel, tmpname);
+			SXLevelEditor::ListBoxList->setItemText(sel, tmpname);
 		}
 	}
 
@@ -380,8 +380,8 @@ LRESULT SXLevelEditor_EditGameValue_Enter(HWND hwnd, UINT msg, WPARAM wParam, LP
 
 LRESULT SXLevelEditor_ButtonGameValue_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int str = SXLevelEditor::ListViewGameClass->GetSelString();
-	propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->GetDataItem(str);
+	int str = SXLevelEditor::ListViewGameClass->getSelString();
+	propdata_t* pd = (propdata_t*)SXLevelEditor::ListViewGameClass->getItemData(str);
 
 	int len = 0;
 	editor_kv* ekv = (editor_kv*)pd->editor.pData;
@@ -428,17 +428,17 @@ LRESULT SXLevelEditor_ButtonGameValue_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GAMESOURCE), txtfmt);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GAMESOURCE), txtfmt);
 	if (def_str_validate(tmppath))
 	{
 		String tmpstr = tmppath + strlen(Core_RStringGet(G_RI_STRING_PATH_GAMESOURCE));
 		tmpstr.ReplaceAll("\\", "/");
 		sprintf(tmpname, "%s", tmpstr.c_str());
-		SXLevelEditor::EditGameValue->SetText(tmpname);
+		SXLevelEditor::EditGameValue->setText(tmpname);
 
-		int sel = SXLevelEditor::ListBoxList->GetSel();
-		SXLevelEditor::ListViewGameClass->SetTextItem(tmpname, 1, str);
-		CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->GetItemData(sel));
+		int sel = SXLevelEditor::ListBoxList->getSel();
+		SXLevelEditor::ListViewGameClass->setItemText(tmpname, 1, str);
+		CBaseEntity* bEnt = SXGame_EntGet(SXLevelEditor::ListBoxList->getItemData(sel));
 		if (bEnt)
 		{
 			bEnt->setKV(pd->szKey, tmpname);
@@ -450,20 +450,20 @@ LRESULT SXLevelEditor_ButtonGameValue_Click(HWND hwnd, UINT msg, WPARAM wParam,
 
 LRESULT SXLevelEditor_ButtonGameCreate_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	if (SXLevelEditor::ComboBoxGameClass->GetSel() == 0)
+	if (SXLevelEditor::ComboBoxGameClass->getSel() == 0)
 	{
 		MessageBox(0, "Class of game object is not selected!", 0, 0);
 		return 0;
 	}
 	char txt[256];
-	SXLevelEditor::ComboBoxGameClass->GetItemText(SXLevelEditor::ComboBoxGameClass->GetSel(), txt);
+	SXLevelEditor::ComboBoxGameClass->getItemText(SXLevelEditor::ComboBoxGameClass->getSel(), txt);
 
 	CBaseEntity* bEnt = SXGame_CreateEntity(txt);
 	bEnt->setFlags(bEnt->getFlags() | EF_EXPORT | EF_LEVEL);
 
 	SXLevelEditor_ButtonGameObjectOpen_Click(hwnd, msg, wParam, lParam);
-	int sel = SXLevelEditor::ListBoxList->GetCountItem()-1;
-	SXLevelEditor::ListBoxList->SetSel(sel);
+	int sel = SXLevelEditor::ListBoxList->getItemCount() - 1;
+	SXLevelEditor::ListBoxList->setSel(sel);
 	SXLevelEditor::GameSel(sel);
 	SXLevelEditor::ActiveElement = sel;
 	SXLevelEditor::ActiveGroupType = EDITORS_LEVEL_GROUPTYPE_GAME;
@@ -474,7 +474,7 @@ LRESULT SXLevelEditor_ButtonGameCreate_Click(HWND hwnd, UINT msg, WPARAM wParam,
 LRESULT SXLevelEditor_EditGameConnectionsName_IN(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	char edit_text[256];
-	SXLevelEditor::EditGameConnectionsName->GetText(edit_text, 256);
+	SXLevelEditor::EditGameConnectionsName->getText(edit_text, 256);
 	if (edit_text[0] == 0)
 		return 0;
 
@@ -501,8 +501,8 @@ LRESULT SXLevelEditor_EditGameConnectionsName_IN(HWND hwnd, UINT msg, WPARAM wPa
 				int qq = found - lower_name;
 				if (qq == 0)
 				{
-					SXLevelEditor::EditGameConnectionsName->SetText(lower_name);
-					PostMessage(SXLevelEditor::EditGameConnectionsName->GetHWND(), EM_SETSEL, strlen(edit_text), strlen(lower_name));
+					SXLevelEditor::EditGameConnectionsName->setText(lower_name);
+					PostMessage(SXLevelEditor::EditGameConnectionsName->getHWND(), EM_SETSEL, strlen(edit_text), strlen(lower_name));
 					return 0;
 				}
 			}
@@ -514,51 +514,51 @@ LRESULT SXLevelEditor_EditGameConnectionsName_IN(HWND hwnd, UINT msg, WPARAM wPa
 
 void SXLevelEditor::GameVisibleProperties(bool bf)
 {
-	SXLevelEditor::StaticGameClass->Visible(bf);
-	SXLevelEditor::ComboBoxGameClass->Visible(bf);
-	SXLevelEditor::ListViewGameClass->Visible(bf);
-	//SXLevelEditor::ComboBoxGameValue->Visible(bf);
-	//SXLevelEditor::EditGameValue->Visible(bf);
-	//SXLevelEditor::ButtonGameValue->Visible(bf);
-	SXLevelEditor::StaticGameHelp->Visible(bf);
-	SXLevelEditor::MemoGameHelp->Visible(bf);
-	SXLevelEditor::ButtonGameCreate->Visible(bf);
+	SXLevelEditor::StaticGameClass->setVisible(bf);
+	SXLevelEditor::ComboBoxGameClass->setVisible(bf);
+	SXLevelEditor::ListViewGameClass->setVisible(bf);
+	//SXLevelEditor::ComboBoxGameValue->setVisible(bf);
+	//SXLevelEditor::EditGameValue->setVisible(bf);
+	//SXLevelEditor::ButtonGameValue->setVisible(bf);
+	SXLevelEditor::StaticGameHelp->setVisible(bf);
+	SXLevelEditor::MemoGameHelp->setVisible(bf);
+	SXLevelEditor::ButtonGameCreate->setVisible(bf);
 
 	for (int i = 0; i < 16; ++i)
 	{
-		SXLevelEditor::CheckBoxGameFlags[i]->Visible(false);
+		SXLevelEditor::CheckBoxGameFlags[i]->setVisible(false);
 	}
 }
 
 void SXLevelEditor::GameVisibleConnections(bool bf)
 {
-	SXLevelEditor::ListViewGameConnections->Visible(bf);
-	SXLevelEditor::StaticGameConnectionsEvent->Visible(bf);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->Visible(bf);
-	SXLevelEditor::StaticGameConnectionsName->Visible(bf);
-	SXLevelEditor::EditGameConnectionsName->Visible(bf);
-	SXLevelEditor::StaticGameConnectionsAction->Visible(bf);
-	SXLevelEditor::ComboBoxGameConnectionsAction->Visible(bf);
-	SXLevelEditor::StaticGameConnectionsDelay->Visible(bf);
-	SXLevelEditor::EditGameConnectionsDelay->Visible(bf);
-	SXLevelEditor::StaticGameConnectionsParameter->Visible(bf);
-	SXLevelEditor::EditGameConnectionsParameter->Visible(bf);
-	SXLevelEditor::ButtonGameConnectionsCreate->Visible(bf);
-	SXLevelEditor::ButtonGameConnectionsDelete->Visible(false);
+	SXLevelEditor::ListViewGameConnections->setVisible(bf);
+	SXLevelEditor::StaticGameConnectionsEvent->setVisible(bf);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setVisible(bf);
+	SXLevelEditor::StaticGameConnectionsName->setVisible(bf);
+	SXLevelEditor::EditGameConnectionsName->setVisible(bf);
+	SXLevelEditor::StaticGameConnectionsAction->setVisible(bf);
+	SXLevelEditor::ComboBoxGameConnectionsAction->setVisible(bf);
+	SXLevelEditor::StaticGameConnectionsDelay->setVisible(bf);
+	SXLevelEditor::EditGameConnectionsDelay->setVisible(bf);
+	SXLevelEditor::StaticGameConnectionsParameter->setVisible(bf);
+	SXLevelEditor::EditGameConnectionsParameter->setVisible(bf);
+	SXLevelEditor::ButtonGameConnectionsCreate->setVisible(bf);
+	SXLevelEditor::ButtonGameConnectionsDelete->setVisible(false);
 }
 
 LRESULT SXLevelEditor_ButtonGameTab_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	if (SXLevelEditor::GameTabVal == 1)
 	{
-		SXLevelEditor::ButtonGameTab->SetText("Connections");
+		SXLevelEditor::ButtonGameTab->setText("Connections");
 		SXLevelEditor::GameVisibleProperties(true);
 		SXLevelEditor::GameVisibleConnections(false);
 		SXLevelEditor::GameTabVal = 0;
 	}
 	else
 	{
-		SXLevelEditor::ButtonGameTab->SetText("Properties");
+		SXLevelEditor::ButtonGameTab->setText("Properties");
 		SXLevelEditor::GameVisibleProperties(false);
 		SXLevelEditor::GameVisibleConnections(true);
 		SXLevelEditor::GameTabVal = 1;
@@ -571,20 +571,20 @@ LRESULT SXLevelEditor_ButtonGameTab_Click(HWND hwnd, UINT msg, WPARAM wParam, LP
 
 LRESULT SXLevelEditor_ListViewGameConnections_Click()
 {
-	int iNumStr = SXLevelEditor::ListViewGameConnections->GetSelString();
+	int iNumStr = SXLevelEditor::ListViewGameConnections->getSelString();
 
 	//очищаем комбобоксы
-	//SXLevelEditor::ComboBoxGameConnectionsEvent->Clear();
-	SXLevelEditor::ComboBoxGameConnectionsAction->Clear();
+	//SXLevelEditor::ComboBoxGameConnectionsEvent->clear();
+	SXLevelEditor::ComboBoxGameConnectionsAction->clear();
 
 	//если нет выделенного тогда обнуляем
 	if (iNumStr < 0)
 	{
-		SXLevelEditor::ComboBoxGameConnectionsEvent->SetSel(0);
-		SXLevelEditor::EditGameConnectionsName->SetText("");
-		SXLevelEditor::ComboBoxGameConnectionsAction->SetSel(0);
-		SXLevelEditor::EditGameConnectionsDelay->SetText("");
-		SXLevelEditor::EditGameConnectionsParameter->SetText("");
+		SXLevelEditor::ComboBoxGameConnectionsEvent->setSel(0);
+		SXLevelEditor::EditGameConnectionsName->setText("");
+		SXLevelEditor::ComboBoxGameConnectionsAction->setSel(0);
+		SXLevelEditor::EditGameConnectionsDelay->setText("");
+		SXLevelEditor::EditGameConnectionsParameter->setText("");
 		return 0;
 	}
 
@@ -592,22 +592,22 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click()
 	char szStr2[256];
 
 	//выделяем используемый event в ComboBoxGameConnectionsEvent
-	SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 0, iNumStr, 256);
+	SXLevelEditor::ListViewGameConnections->getItemText(szStr, 0, iNumStr, 256);
 
-	for (int i = 0; i < SXLevelEditor::ComboBoxGameConnectionsEvent->GetCount(); ++i)
+	for (int i = 0; i < SXLevelEditor::ComboBoxGameConnectionsEvent->getCount(); ++i)
 	{
-		SXLevelEditor::ComboBoxGameConnectionsEvent->GetItemText(i, szStr2);
+		SXLevelEditor::ComboBoxGameConnectionsEvent->getItemText(i, szStr2);
 		if (strcmp(szStr, szStr2) == 0)
 		{
-			SXLevelEditor::ComboBoxGameConnectionsEvent->SetSel(i);
+			SXLevelEditor::ComboBoxGameConnectionsEvent->setSel(i);
 			break;
 		}
 	}
 	//-------
 
 	//устанавилваем имя используемого игрового объекта в EditGameConnectionsName
-	SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 1, iNumStr, 256);
-	SXLevelEditor::EditGameConnectionsName->SetText(szStr);
+	SXLevelEditor::ListViewGameConnections->getItemText(szStr, 1, iNumStr, 256);
+	SXLevelEditor::EditGameConnectionsName->setText(szStr);
 	//-------
 
 	//устанавилваем данные в ComboBoxGameConnectionsAction и выделяем используемый
@@ -630,37 +630,37 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click()
 				pPropData = &pPropTable->pData[k];
 				if (pPropData->flags & PDFF_INPUT)
 				{
-					SXLevelEditor::ComboBoxGameConnectionsAction->AddItem(pPropData->szEdName);
-					SXLevelEditor::ComboBoxGameConnectionsAction->SetItemData(SXLevelEditor::ComboBoxGameConnectionsAction->GetCount() - 1, (LPARAM)(pPropData->szKey));
+					SXLevelEditor::ComboBoxGameConnectionsAction->addItem(pPropData->szEdName);
+					SXLevelEditor::ComboBoxGameConnectionsAction->setItemData(SXLevelEditor::ComboBoxGameConnectionsAction->getCount() - 1, (LPARAM)(pPropData->szKey));
 				}
 			}
 		}
 	}
 
-	SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 2, iNumStr, 256);
-	for (int i = 0; i < SXLevelEditor::ComboBoxGameConnectionsAction->GetCount(); ++i)
+	SXLevelEditor::ListViewGameConnections->getItemText(szStr, 2, iNumStr, 256);
+	for (int i = 0; i < SXLevelEditor::ComboBoxGameConnectionsAction->getCount(); ++i)
 	{
-		SXLevelEditor::ComboBoxGameConnectionsAction->GetItemText(i, szStr2);
+		SXLevelEditor::ComboBoxGameConnectionsAction->getItemText(i, szStr2);
 		if (strcmp(szStr, szStr2) == 0)
 		{
-			SXLevelEditor::ComboBoxGameConnectionsAction->SetSel(i);
+			SXLevelEditor::ComboBoxGameConnectionsAction->setSel(i);
 			break;
 		}
 	}
 	//-------
 
 	//устанавливаем задержку в секундах в EditGameConnectionsDelay
-	SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 3, iNumStr, 256);
-	SXLevelEditor::EditGameConnectionsDelay->SetText(szStr);
+	SXLevelEditor::ListViewGameConnections->getItemText(szStr, 3, iNumStr, 256);
+	SXLevelEditor::EditGameConnectionsDelay->setText(szStr);
 	//-------
 
 	//устанавливаем параметр в EditGameConnectionsParameter
-	SXLevelEditor::ListViewGameConnections->GetTextItem(szStr, 4, iNumStr, 256);
-	SXLevelEditor::EditGameConnectionsParameter->SetText(szStr);
+	SXLevelEditor::ListViewGameConnections->getItemText(szStr, 4, iNumStr, 256);
+	SXLevelEditor::EditGameConnectionsParameter->setText(szStr);
 	//-------
 
-	SXLevelEditor::ButtonGameConnectionsDelete->Visible(true);
-	SXLevelEditor::ButtonGameConnectionsCreate->SetText("Create");
+	SXLevelEditor::ButtonGameConnectionsDelete->setVisible(true);
+	SXLevelEditor::ButtonGameConnectionsCreate->setText("Create");
 	SXLevelEditor::isAddGameConections = false;
 
 	return 0;
@@ -668,8 +668,8 @@ LRESULT SXLevelEditor_ListViewGameConnections_Click()
 
 LRESULT SXLevelEditor_EditGameConnectionsName_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	ID idSelListBoxList = SXLevelEditor::ListBoxList->GetSel();
-	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->GetSelString();
+	ID idSelListBoxList = SXLevelEditor::ListBoxList->getSel();
+	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->getSelString();
 
 	if (idSelListBoxList < 0)
 		return 0;
@@ -679,20 +679,20 @@ LRESULT SXLevelEditor_EditGameConnectionsName_Enter(HWND hwnd, UINT msg, WPARAM
 	char szBuffer256[256];
 	szBuffer256[0] = 0;
 
-	SXLevelEditor::EditGameConnectionsName->GetText(szBuffer256, 256);
+	SXLevelEditor::EditGameConnectionsName->getText(szBuffer256, 256);
 
 	CBaseEntity *pEnt2 = SXGame_EntGetByName(szBuffer256, 0);
 
 	//записываем в szBuffer256 текущее имя action
 	szBuffer256[0] = 0;
-	SXLevelEditor::ComboBoxGameConnectionsAction->GetItemText(SXLevelEditor::ComboBoxGameConnectionsAction->GetSel(), szBuffer256);
+	SXLevelEditor::ComboBoxGameConnectionsAction->getItemText(SXLevelEditor::ComboBoxGameConnectionsAction->getSel(), szBuffer256);
 
 	// если энтить с введенным именем существует
 	if (pEnt2)
 	{
 		proptable_t *pPropTable2 = SXGame_EntGetProptable(pEnt2->getClassName());
 		propdata_t *pPropData2 = 0;
-		SXLevelEditor::ComboBoxGameConnectionsAction->Clear();
+		SXLevelEditor::ComboBoxGameConnectionsAction->clear();
 
 		//проходимся по всем данным таблицы свойств
 		for (int j = 0; j < pPropTable2->numFields; ++j)
@@ -703,14 +703,14 @@ LRESULT SXLevelEditor_EditGameConnectionsName_Enter(HWND hwnd, UINT msg, WPARAM
 			if (pPropData2->flags & PDFF_INPUT)
 			{
 				//добавляем в комбобокс action
-				SXLevelEditor::ComboBoxGameConnectionsAction->AddItem(pPropData2->szEdName);
-				SXLevelEditor::ComboBoxGameConnectionsAction->SetItemData(SXLevelEditor::ComboBoxGameConnectionsEvent->GetCount() - 1, (LPARAM)(pPropData2->szKey));
+				SXLevelEditor::ComboBoxGameConnectionsAction->addItem(pPropData2->szEdName);
+				SXLevelEditor::ComboBoxGameConnectionsAction->setItemData(SXLevelEditor::ComboBoxGameConnectionsEvent->getCount() - 1, (LPARAM)(pPropData2->szKey));
 
 				//если предыдущее имя action равно последнему вставленному
 				if (strcmp(pPropData2->szEdName, szBuffer256) == 0)
 				{
 					//активируем эту строку в комбобоксе
-					SXLevelEditor::ComboBoxGameConnectionsAction->SetSel(SXLevelEditor::ComboBoxGameConnectionsAction->GetCount() - 1);
+					SXLevelEditor::ComboBoxGameConnectionsAction->setSel(SXLevelEditor::ComboBoxGameConnectionsAction->getCount() - 1);
 				}
 			}
 		}
@@ -724,8 +724,8 @@ LRESULT SXLevelEditor_EditGameConnectionsName_Enter(HWND hwnd, UINT msg, WPARAM
 			return 0;
 
 		szBuffer256[0] = 0;
-		SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 1, idSelStrTable, 256);
-		SXLevelEditor::EditGameConnectionsName->SetText(szBuffer256);
+		SXLevelEditor::ListViewGameConnections->getItemText(szBuffer256, 1, idSelStrTable, 256);
+		SXLevelEditor::EditGameConnectionsName->setText(szBuffer256);
 	}
 
 	return SXLevelEditor_EditGameConnections_Enter(hwnd, msg, wParam, lParam);
@@ -736,16 +736,16 @@ LRESULT SXLevelEditor_EditGameConnections_Enter(HWND hwnd, UINT msg, WPARAM wPar
 	if (SXLevelEditor::isAddGameConections)
 		return 0;
 
-	ID idSelListBoxList = SXLevelEditor::ListBoxList->GetSel();
-	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->GetSelString();
+	ID idSelListBoxList = SXLevelEditor::ListBoxList->getSel();
+	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->getSelString();
 
 	if (idSelListBoxList < 0 || idSelStrTable < 0)
 		return 0;
 
-	ID idSelEnt = SXLevelEditor::ListBoxList->GetItemData(idSelListBoxList);
+	ID idSelEnt = SXLevelEditor::ListBoxList->getItemData(idSelListBoxList);
 	CBaseEntity *pEnt = SXGame_EntGet(idSelEnt);
 	proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->getClassName());
-	propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->GetDataItem(idSelStrTable));
+	propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->getItemData(idSelStrTable));
 
 	//получаем скленные в единую строку данные
 	char szBuffer4096[4096];
@@ -757,24 +757,24 @@ LRESULT SXLevelEditor_EditGameConnections_Enter(HWND hwnd, UINT msg, WPARAM wPar
 	char szBuffer256[256];
 	szBuffer256[0] = 0;
 
-	SXLevelEditor::ComboBoxGameConnectionsEvent->GetItemText(SXLevelEditor::ComboBoxGameConnectionsEvent->GetSel(), szBuffer256);
-	SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 0, idSelStrTable);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->getItemText(SXLevelEditor::ComboBoxGameConnectionsEvent->getSel(), szBuffer256);
+	SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 0, idSelStrTable);
 	
 	szBuffer256[0] = 0;
-	SXLevelEditor::EditGameConnectionsName->GetText(szBuffer256, 256);
-	SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 1, idSelStrTable);
+	SXLevelEditor::EditGameConnectionsName->getText(szBuffer256, 256);
+	SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 1, idSelStrTable);
 
 	szBuffer256[0] = 0;
-	SXLevelEditor::ComboBoxGameConnectionsAction->GetItemText(SXLevelEditor::ComboBoxGameConnectionsAction->GetSel(), szBuffer256);
-	SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 2, idSelStrTable);
+	SXLevelEditor::ComboBoxGameConnectionsAction->getItemText(SXLevelEditor::ComboBoxGameConnectionsAction->getSel(), szBuffer256);
+	SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 2, idSelStrTable);
 
 	szBuffer256[0] = 0;
-	SXLevelEditor::EditGameConnectionsDelay->GetText(szBuffer256, 256);
-	SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 3, idSelStrTable);
+	SXLevelEditor::EditGameConnectionsDelay->getText(szBuffer256, 256);
+	SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 3, idSelStrTable);
 
 	szBuffer256[0] = 0;
-	SXLevelEditor::EditGameConnectionsParameter->GetText(szBuffer256, 256);
-	SXLevelEditor::ListViewGameConnections->SetTextItem(szBuffer256, 4, idSelStrTable);
+	SXLevelEditor::EditGameConnectionsParameter->getText(szBuffer256, 256);
+	SXLevelEditor::ListViewGameConnections->setItemText(szBuffer256, 4, idSelStrTable);
 
 	pEnt->setKV(pPropData->szKey, szBuffer4096);
 
@@ -787,13 +787,13 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t
 	szBuffer256[0] = 0;
 
 	//проходимся по всем строкам таблицы
-	for (int i = 0, il = SXLevelEditor::ListViewGameConnections->GetCountString(); i < il; ++i)
+	for (int i = 0, il = SXLevelEditor::ListViewGameConnections->getStringCount(); i < il; ++i)
 	{
 		//если строку с этим номером надо исключить
 		if (iNumExclude == i)
 			continue;
 
-		propdata_t *pPropData2 = (propdata_t*)SXLevelEditor::ListViewGameConnections->GetDataItem(i);
+		propdata_t *pPropData2 = (propdata_t*)SXLevelEditor::ListViewGameConnections->getItemData(i);
 
 		//если юзердата то что нам надо
 		if (pPropData == pPropData2)
@@ -802,7 +802,7 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t
 				sprintf(szStrOut + strlen(szStrOut), ",");
 
 			szBuffer256[0] = 0;
-			SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 1, i, 256);
+			SXLevelEditor::ListViewGameConnections->getItemText(szBuffer256, 1, i, 256);
 			sprintf(szStrOut + strlen(szStrOut), "%s:", szBuffer256);
 
 			//ищем энтить с которым будет соединение
@@ -813,7 +813,7 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t
 				pPropTable2 = SXGame_EntGetProptable(pEnt2->getClassName());
 
 			szBuffer256[0] = 0;
-			SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 2, i, 256);
+			SXLevelEditor::ListViewGameConnections->getItemText(szBuffer256, 2, i, 256);
 
 			//если энтить для соединения существует
 			if (pEnt2)
@@ -838,11 +838,11 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t
 			}
 
 			szBuffer256[0] = 0;
-			SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 3, i, 256);
+			SXLevelEditor::ListViewGameConnections->getItemText(szBuffer256, 3, i, 256);
 			sprintf(szStrOut + strlen(szStrOut), "%s:", szBuffer256);
 
 			szBuffer256[0] = 0;
-			SXLevelEditor::ListViewGameConnections->GetTextItem(szBuffer256, 4, i, 256);
+			SXLevelEditor::ListViewGameConnections->getItemText(szBuffer256, 4, i, 256);
 			sprintf(szStrOut + strlen(szStrOut), "%s", szBuffer256);
 		}
 	}
@@ -850,13 +850,13 @@ void SXLevelEditor_VeldStringGameConnections(proptable_t *pPropTable, propdata_t
 
 LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	ID idSelListBoxList = SXLevelEditor::ListBoxList->GetSel();
-	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->GetSelString();
+	ID idSelListBoxList = SXLevelEditor::ListBoxList->getSel();
+	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->getSelString();
 
 	if (idSelListBoxList < 0)
 		return 0;
 
-	ID idSelEnt = SXLevelEditor::ListBoxList->GetItemData(idSelListBoxList);
+	ID idSelEnt = SXLevelEditor::ListBoxList->getItemData(idSelListBoxList);
 	CBaseEntity *pEnt = SXGame_EntGet(idSelEnt);
 	proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->getClassName());
 
@@ -869,10 +869,10 @@ LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPA
 		if (idSelStrTable < 0)
 			return 0;
 
-		propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->GetDataItem(idSelStrTable));
+		propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->getItemData(idSelStrTable));
 
-		SXLevelEditor::ButtonGameConnectionsDelete->Visible(true);
-		SXLevelEditor::ButtonGameConnectionsCreate->SetText("Create");
+		SXLevelEditor::ButtonGameConnectionsDelete->setVisible(true);
+		SXLevelEditor::ButtonGameConnectionsCreate->setText("Create");
 		SXLevelEditor::isAddGameConections = false;
 
 		char szBuffer4096[4096];
@@ -886,19 +886,19 @@ LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPA
 		char szBuffer256[256];
 		szBuffer256[0] = 0;
 
-		SXLevelEditor::EditGameConnectionsName->GetText(szBuffer256, 256);
+		SXLevelEditor::EditGameConnectionsName->getText(szBuffer256, 256);
 		sprintf(szBuffer4096 + strlen(szBuffer4096), "%s:", szBuffer256);
 
 		szBuffer256[0] = 0;
-		long lItemData = SXLevelEditor::ComboBoxGameConnectionsAction->GetItemData(SXLevelEditor::ComboBoxGameConnectionsAction->GetSel());
+		long lItemData = SXLevelEditor::ComboBoxGameConnectionsAction->getItemData(SXLevelEditor::ComboBoxGameConnectionsAction->getSel());
 		sprintf(szBuffer4096 + strlen(szBuffer4096), "%s:", (char*)lItemData);
 
 		szBuffer256[0] = 0;
-		SXLevelEditor::EditGameConnectionsDelay->GetText(szBuffer256, 256);
+		SXLevelEditor::EditGameConnectionsDelay->getText(szBuffer256, 256);
 		sprintf(szBuffer4096 + strlen(szBuffer4096), "%s:", szBuffer256);
 
 		szBuffer256[0] = 0;
-		SXLevelEditor::EditGameConnectionsParameter->GetText(szBuffer256, 256);
+		SXLevelEditor::EditGameConnectionsParameter->getText(szBuffer256, 256);
 		sprintf(szBuffer4096 + strlen(szBuffer4096), "%s", szBuffer256);
 
 		pEnt->setKV(pPropData->szKey, szBuffer4096);
@@ -908,8 +908,8 @@ LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPA
 	//иначе создание нового соединения
 	else
 	{
-		SXLevelEditor::ButtonGameConnectionsDelete->Visible(false);
-		SXLevelEditor::ButtonGameConnectionsCreate->SetText("Add");
+		SXLevelEditor::ButtonGameConnectionsDelete->setVisible(false);
+		SXLevelEditor::ButtonGameConnectionsCreate->setText("Add");
 		SXLevelEditor::isAddGameConections = true;
 	}
 	return 0;
@@ -917,16 +917,16 @@ LRESULT SXLevelEditor_ButtonGameConnectionsCreate_Click(HWND hwnd, UINT msg, WPA
 
 LRESULT SXLevelEditor_ButtonGameConnectionsDelete_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	ID idSelListBoxList = SXLevelEditor::ListBoxList->GetSel();
-	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->GetSelString();
+	ID idSelListBoxList = SXLevelEditor::ListBoxList->getSel();
+	ID idSelStrTable = SXLevelEditor::ListViewGameConnections->getSelString();
 
 	if (idSelListBoxList < 0 || idSelStrTable < 0)
 		return 0;
 
-	ID idSelEnt = SXLevelEditor::ListBoxList->GetItemData(idSelListBoxList);
+	ID idSelEnt = SXLevelEditor::ListBoxList->getItemData(idSelListBoxList);
 	CBaseEntity *pEnt = SXGame_EntGet(idSelEnt);
 	proptable_t *pPropTable = SXGame_EntGetProptable(pEnt->getClassName());
-	propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->GetDataItem(idSelStrTable));
+	propdata_t *pPropData = (propdata_t*)(SXLevelEditor::ListViewGameConnections->getItemData(idSelStrTable));
 
 	if (!pEnt)
 		return 0;
diff --git a/source/sxleveleditor/green_callback.cpp b/source/sxleveleditor/green_callback.cpp
index 3293f48ee..8dcdcbfe9 100644
--- a/source/sxleveleditor/green_callback.cpp
+++ b/source/sxleveleditor/green_callback.cpp
@@ -10,76 +10,76 @@ void SXLevelEditor::GreenActivateAll(bool bf)
 
 void SXLevelEditor::GreenActivateMain(bool bf)
 {
-	SXLevelEditor::StaticGreenName->Visible(bf);
-	SXLevelEditor::EditGreenName->Visible(bf);
-	SXLevelEditor::EditGreenName->SetText("");
-
-	SXLevelEditor::StaticGreenModel->Visible(bf);
-	SXLevelEditor::EditGreenModel->Visible(bf);
-	SXLevelEditor::EditGreenModel->SetText("");
-	SXLevelEditor::ButtonGreenModel->Visible(bf);
-
-	SXLevelEditor::StaticGreenLod1->Visible(bf);
-	SXLevelEditor::EditGreenLod1->Visible(bf);
-	SXLevelEditor::EditGreenLod1->SetText("");
-	SXLevelEditor::ButtonGreenLod1->Visible(bf);
+	SXLevelEditor::StaticGreenName->setVisible(bf);
+	SXLevelEditor::EditGreenName->setVisible(bf);
+	SXLevelEditor::EditGreenName->setText("");
+
+	SXLevelEditor::StaticGreenModel->setVisible(bf);
+	SXLevelEditor::EditGreenModel->setVisible(bf);
+	SXLevelEditor::EditGreenModel->setText("");
+	SXLevelEditor::ButtonGreenModel->setVisible(bf);
+
+	SXLevelEditor::StaticGreenLod1->setVisible(bf);
+	SXLevelEditor::EditGreenLod1->setVisible(bf);
+	SXLevelEditor::EditGreenLod1->setText("");
+	SXLevelEditor::ButtonGreenLod1->setVisible(bf);
 	
-	SXLevelEditor::StaticGreenLod2->Visible(bf);
-	SXLevelEditor::EditGreenLod2->Visible(bf);
-	SXLevelEditor::EditGreenLod2->SetText("");
-	SXLevelEditor::ButtonGreenLod2->Visible(bf);
-
-	SXLevelEditor::StaticGreenMask->Visible(bf);
-	SXLevelEditor::EditGreenMask->Visible(bf);
-	SXLevelEditor::EditGreenMask->SetText("");
-	SXLevelEditor::ButtonGreenMask->Visible(bf);
-
-	SXLevelEditor::StaticGreenNav->Visible(bf);
-	SXLevelEditor::EditGreenNav->Visible(bf);
-	SXLevelEditor::EditGreenNav->SetText("");
-	SXLevelEditor::ButtonGreenNav->Visible(bf);
+	SXLevelEditor::StaticGreenLod2->setVisible(bf);
+	SXLevelEditor::EditGreenLod2->setVisible(bf);
+	SXLevelEditor::EditGreenLod2->setText("");
+	SXLevelEditor::ButtonGreenLod2->setVisible(bf);
+
+	SXLevelEditor::StaticGreenMask->setVisible(bf);
+	SXLevelEditor::EditGreenMask->setVisible(bf);
+	SXLevelEditor::EditGreenMask->setText("");
+	SXLevelEditor::ButtonGreenMask->setVisible(bf);
+
+	SXLevelEditor::StaticGreenNav->setVisible(bf);
+	SXLevelEditor::EditGreenNav->setVisible(bf);
+	SXLevelEditor::EditGreenNav->setText("");
+	SXLevelEditor::ButtonGreenNav->setVisible(bf);
 }
 
 void SXLevelEditor::GreenActivateCreate(bool bf)
 {
-	SXLevelEditor::StaticGreenMask->Enable(bf);
-	SXLevelEditor::EditGreenMask->Enable(bf);
-	SXLevelEditor::ButtonGreenMask->Enable(bf);
+	SXLevelEditor::StaticGreenMask->setEnable(bf);
+	SXLevelEditor::EditGreenMask->setEnable(bf);
+	SXLevelEditor::ButtonGreenMask->setEnable(bf);
 
-	SXLevelEditor::ButtonGreenGenerate->Visible(bf);
+	SXLevelEditor::ButtonGreenGenerate->setVisible(bf);
 
-	SXLevelEditor::TrackBarGreenDensity->Visible(bf);
-	SXLevelEditor::TrackBarGreenDensity->SetPos(0);
+	SXLevelEditor::TrackBarGreenDensity->setVisible(bf);
+	SXLevelEditor::TrackBarGreenDensity->setPos(0);
 
-	SXLevelEditor::StaticGreenDensityVal->Visible(bf);
-	SXLevelEditor::StaticGreenDensityText->Visible(bf);
+	SXLevelEditor::StaticGreenDensityVal->setVisible(bf);
+	SXLevelEditor::StaticGreenDensityText->setVisible(bf);
 }
 
 void SXLevelEditor::GreenActivateEdit(bool bf)
 {
-	SXLevelEditor::ButtonGreenGenerate->Visible(bf);
-
-	SXLevelEditor::TrackBarGreenDensity->Visible(bf);
-	SXLevelEditor::TrackBarGreenDensity->SetPos(0);
-
-	SXLevelEditor::StaticGreenDensityVal->Visible(bf);
-	SXLevelEditor::StaticGreenDensityText->Visible(bf);
-
-	//SXLevelEditor::CheckBoxSingleSel->Visible(bf);
-	//SXLevelEditor::StaticSingleSelPos->Visible(bf);
-	SXLevelEditor::EditGreenSelX->Visible(bf);
-	SXLevelEditor::EditGreenSelX->SetText("");
-	SXLevelEditor::EditGreenSelY->Visible(bf);
-	SXLevelEditor::EditGreenSelY->SetText("");
-	SXLevelEditor::EditGreenSelZ->Visible(bf);
-	SXLevelEditor::EditGreenSelZ->SetText("");
-	SXLevelEditor::RadioButtonGreenSelX->Visible(bf);
-	SXLevelEditor::RadioButtonGreenSelY->Visible(bf);
-	SXLevelEditor::RadioButtonGreenSelZ->Visible(bf);
-	SXLevelEditor::ComboBoxGreenSel->Visible(bf);
-	SXLevelEditor::StaticGreenSelX->Visible(bf);
-	SXLevelEditor::StaticGreenSelY->Visible(bf);
-	SXLevelEditor::StaticGreenSelZ->Visible(bf);
+	SXLevelEditor::ButtonGreenGenerate->setVisible(bf);
+
+	SXLevelEditor::TrackBarGreenDensity->setVisible(bf);
+	SXLevelEditor::TrackBarGreenDensity->setPos(0);
+
+	SXLevelEditor::StaticGreenDensityVal->setVisible(bf);
+	SXLevelEditor::StaticGreenDensityText->setVisible(bf);
+
+	//SXLevelEditor::CheckBoxSingleSel->setVisible(bf);
+	//SXLevelEditor::StaticSingleSelPos->setVisible(bf);
+	SXLevelEditor::EditGreenSelX->setVisible(bf);
+	SXLevelEditor::EditGreenSelX->setText("");
+	SXLevelEditor::EditGreenSelY->setVisible(bf);
+	SXLevelEditor::EditGreenSelY->setText("");
+	SXLevelEditor::EditGreenSelZ->setVisible(bf);
+	SXLevelEditor::EditGreenSelZ->setText("");
+	SXLevelEditor::RadioButtonGreenSelX->setVisible(bf);
+	SXLevelEditor::RadioButtonGreenSelY->setVisible(bf);
+	SXLevelEditor::RadioButtonGreenSelZ->setVisible(bf);
+	SXLevelEditor::ComboBoxGreenSel->setVisible(bf);
+	SXLevelEditor::StaticGreenSelX->setVisible(bf);
+	SXLevelEditor::StaticGreenSelY->setVisible(bf);
+	SXLevelEditor::StaticGreenSelZ->setVisible(bf);
 }
 
 void SXLevelEditor::GreenSel(int sel)
@@ -91,23 +91,23 @@ void SXLevelEditor::GreenSel(int sel)
 
 		SXLevelEditor::GreenActivateCreate(false);
 		SXLevelEditor::GreenActivateEdit(true);
-		SXLevelEditor::ButtonGreenGenerate->Visible(false);
-
-		SXLevelEditor::EditGreenModel->SetText(SGeom_GreenMGetModel(sel));
-		SXLevelEditor::EditGreenLod1->SetText((SGeom_GreenMGetLod1(sel) ? SGeom_GreenMGetLod1(sel) : ""));
-		SXLevelEditor::EditGreenLod2->SetText((SGeom_GreenMGetLod2(sel) ? SGeom_GreenMGetLod2(sel) : ""));
-		SXLevelEditor::EditGreenMask->SetText(SGeom_GreenMGetMask(sel));
-		SXLevelEditor::EditGreenName->SetText(SGeom_GreenMGetName(sel));
-		SXLevelEditor::EditGreenNav->SetText(SGeom_GreenMGetNav(sel));
+		SXLevelEditor::ButtonGreenGenerate->setVisible(false);
+
+		SXLevelEditor::EditGreenModel->setText(SGeom_GreenMGetModel(sel));
+		SXLevelEditor::EditGreenLod1->setText((SGeom_GreenMGetLod1(sel) ? SGeom_GreenMGetLod1(sel) : ""));
+		SXLevelEditor::EditGreenLod2->setText((SGeom_GreenMGetLod2(sel) ? SGeom_GreenMGetLod2(sel) : ""));
+		SXLevelEditor::EditGreenMask->setText(SGeom_GreenMGetMask(sel));
+		SXLevelEditor::EditGreenName->setText(SGeom_GreenMGetName(sel));
+		SXLevelEditor::EditGreenNav->setText(SGeom_GreenMGetNav(sel));
 	}
 }
 
 LRESULT SXLevelEditor_EditGreenName_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 	if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN)
 	{
-		SXLevelEditor::EditGreenName->GetText(SGeom_GreenMGetName(sel), 64);
+		SXLevelEditor::EditGreenName->getText(SGeom_GreenMGetName(sel), 64);
 	}
 
 	return 0;
@@ -118,12 +118,12 @@ LRESULT SXLevelEditor_ButtonGreenModel_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutMesh(tmppath, tmpname);
-		SXLevelEditor::EditGreenModel->SetText(tmpname);
-		int sel = SXLevelEditor::ListBoxList->GetSel();
+		SXLevelEditor::EditGreenModel->setText(tmpname);
+		int sel = SXLevelEditor::ListBoxList->getSel();
 		if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN)
 		{
 			if (sel >= 0 && sel < SGeom_GreenGetCount())
@@ -138,12 +138,12 @@ LRESULT SXLevelEditor_ButtonGreenLod1_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutMesh(tmppath, tmpname);
-		SXLevelEditor::EditGreenLod1->SetText(tmpname);
-		int sel = SXLevelEditor::ListBoxList->GetSel();
+		SXLevelEditor::EditGreenLod1->setText(tmpname);
+		int sel = SXLevelEditor::ListBoxList->getSel();
 		if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN)
 		{
 			if (sel >= 0 && sel < SGeom_GreenGetCount())
@@ -158,12 +158,12 @@ LRESULT SXLevelEditor_ButtonGreenLod2_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutMesh(tmppath, tmpname);
-		SXLevelEditor::EditGreenLod2->SetText(tmpname);
-		int sel = SXLevelEditor::ListBoxList->GetSel();
+		SXLevelEditor::EditGreenLod2->setText(tmpname);
+		int sel = SXLevelEditor::ListBoxList->getSel();
 		if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN)
 		{
 			if (sel >= 0 && sel < SGeom_GreenGetCount())
@@ -176,9 +176,9 @@ LRESULT SXLevelEditor_ButtonGreenLod2_Click(HWND hwnd, UINT msg, WPARAM wParam,
 LRESULT SXLevelEditor_TrackBarGreenDensity_MouseMove(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	char freqstr[64];
-	int pos = SXLevelEditor::TrackBarGreenDensity->GetPos();
+	int pos = SXLevelEditor::TrackBarGreenDensity->getPos();
 	sprintf(freqstr, "%d%", pos);
-	SXLevelEditor::StaticGreenDensityVal->SetText(freqstr);
+	SXLevelEditor::StaticGreenDensityVal->setText(freqstr);
 	return 0;
 }
 
@@ -187,11 +187,11 @@ LRESULT SXLevelEditor_ButtonGreenMask_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXLevelEditor::EditGreenMask->SetText(tmpname);
+		SXLevelEditor::EditGreenMask->setText(tmpname);
 	}
 	return 0;
 }
@@ -201,12 +201,12 @@ LRESULT SXLevelEditor_ButtonGreenNav_Click(HWND hwnd, UINT msg, WPARAM wParam, L
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutMesh(tmppath, tmpname);
-		SXLevelEditor::EditGreenNav->SetText(tmpname);
-		int sel = SXLevelEditor::ListBoxList->GetSel();
+		SXLevelEditor::EditGreenNav->setText(tmpname);
+		int sel = SXLevelEditor::ListBoxList->getSel();
 		if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GREEN)
 		{
 			if (sel >= 0 && sel < SGeom_GreenGetCount())
@@ -251,12 +251,12 @@ LRESULT SXLevelEditor_ButtonGreenGenerate_Click(HWND hwnd, UINT msg, WPARAM wPar
 
 	int greentype = GREEN_TYPE_TREE;
 
-	SXLevelEditor::EditGreenName->GetText(tmp_name, 1024);
-	SXLevelEditor::EditGreenMask->GetText(tmp_tex, 1024);
-	SXLevelEditor::EditGreenModel->GetText(tmp_model, 1024);
-	SXLevelEditor::EditGreenLod1->GetText(tmp_lod1, 1024);
-	SXLevelEditor::EditGreenLod2->GetText(tmp_lod2, 1024);
-	SXLevelEditor::EditGreenNav->GetText(tmp_navmesh, 1024);
+	SXLevelEditor::EditGreenName->getText(tmp_name, 1024);
+	SXLevelEditor::EditGreenMask->getText(tmp_tex, 1024);
+	SXLevelEditor::EditGreenModel->getText(tmp_model, 1024);
+	SXLevelEditor::EditGreenLod1->getText(tmp_lod1, 1024);
+	SXLevelEditor::EditGreenLod2->getText(tmp_lod2, 1024);
+	SXLevelEditor::EditGreenNav->getText(tmp_navmesh, 1024);
 
 	if (tmp_lod1[0] == 0 && tmp_lod2[0] == 0)
 		greentype = GREEN_TYPE_GRASS;
@@ -336,7 +336,7 @@ LRESULT SXLevelEditor_ButtonGreenGenerate_Click(HWND hwnd, UINT msg, WPARAM wPar
 			return 0;
 	}
 
-	float pos = SXLevelEditor::TrackBarGreenDensity->GetPos();
+	float pos = SXLevelEditor::TrackBarGreenDensity->getPos();
 
 	SGeom_GreenAddGreen(tmp_name,
 		tmp_tex,
@@ -351,15 +351,15 @@ LRESULT SXLevelEditor_ButtonGreenGenerate_Click(HWND hwnd, UINT msg, WPARAM wPar
 			SGeom_GreenMGetName(SGeom_GreenGetCount() - 1),
 			(SGeom_GreenMGetTypeCountGen(SGeom_GreenGetCount() - 1) == GREEN_TYPE_GRASS ? "grass" : "tree/shrub"),
 			SGeom_GreenMGetCountGen(SGeom_GreenGetCount() - 1));
-		SXLevelEditor::ListBoxList->AddItem(tmpnamecountpoly);
+		SXLevelEditor::ListBoxList->addItem(tmpnamecountpoly);
 
 	SXLevelEditor::GreenActivateCreate(false);
-	SXLevelEditor::ListBoxList->SetSel(SXLevelEditor::ListBoxList->GetCountItem() - 1);
+	SXLevelEditor::ListBoxList->setSel(SXLevelEditor::ListBoxList->getItemCount() - 1);
 
-	SXLevelEditor::GreenSel(SXLevelEditor::ListBoxList->GetCountItem() - 1);
+	SXLevelEditor::GreenSel(SXLevelEditor::ListBoxList->getItemCount() - 1);
 
 	SXLevelEditor::ActiveGroupType = EDITORS_LEVEL_GROUPTYPE_GREEN;
-	SXLevelEditor::ActiveElement = SXLevelEditor::ListBoxList->GetSel();
+	SXLevelEditor::ActiveElement = SXLevelEditor::ListBoxList->getSel();
 
 	return 0;
 }
\ No newline at end of file
diff --git a/source/sxleveleditor/level_editor.cpp b/source/sxleveleditor/level_editor.cpp
index 29b45fd39..7cb0e9dca 100644
--- a/source/sxleveleditor/level_editor.cpp
+++ b/source/sxleveleditor/level_editor.cpp
@@ -4,7 +4,7 @@
 namespace SXLevelEditor
 {
 	ISXGUIBaseWnd* JobWindow;
-	ISXGUIMenu* MainMenu;
+	ISXGUIMenuWindow* MainMenu;
 	ISXGUIBaseWnd* RenderWindow;
 
 	ISXGUIToolBar* ToolBar1;
@@ -290,1526 +290,1562 @@ void SXLevelEditor::InitAllElements()
 	int cx = (wrect.right - MAINWIN_SIZE_X) / 2;
 	int cy = (wrect.bottom - MAINWIN_SIZE_Y) / 2;
 
-	SXLevelEditor::JobWindow = SXGUICrBaseWnd("JobWindow", "SX Level editor", 0, 0, cx, cy, MAINWIN_SIZE_X, MAINWIN_SIZE_Y, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION, 0, WndProcAllDefault);
-	SXLevelEditor::JobWindow->Visible(false);
-	SXGUIBaseHandlers::InitHandlerMsg(SXLevelEditor::JobWindow);
-
-	SXLevelEditor::JobWindow->AddHandler(ComMenuId, WM_COMMAND);
-	SXLevelEditor::JobWindow->AddHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
-	SXLevelEditor::JobWindow->AddHandler(MsgEditSize, WM_SIZE);
-	SXLevelEditor::JobWindow->MinSizeX = MAINWIN_SIZE_X;
-	SXLevelEditor::JobWindow->MinSizeY = MAINWIN_SIZE_Y;
-	SXLevelEditor::MainMenu = SXGUICrMenuEx(IDR_MENU1);
-	SXLevelEditor::MainMenu->SetToWindow(SXLevelEditor::JobWindow->GetHWND());
+	SXLevelEditor::JobWindow = SXGUICrBaseWndEx("JobWindow", "SX Level editor", cx, cy, MAINWIN_SIZE_X, MAINWIN_SIZE_Y, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION, 0, WndProcAllDefault);
+	//SXLevelEditor::JobWindow->setVisible(false);
+	gui_func::base_handlers::InitHandlerMsg(SXLevelEditor::JobWindow);
+
+	SXLevelEditor::JobWindow->addHandler(ComMenuId, WM_COMMAND);
+	SXLevelEditor::JobWindow->addHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
+	SXLevelEditor::JobWindow->addHandler(MsgEditSize, WM_SIZE);
+	SXLevelEditor::JobWindow->setMixSize(MAINWIN_SIZE_X, MAINWIN_SIZE_Y);
+	SXLevelEditor::MainMenu = SXGUICrMenuWindowEx(IDR_MENU1);
+	SXLevelEditor::MainMenu->setToWindow(SXLevelEditor::JobWindow->getHWND());
+
+
+	ISXGUIPopupMenu *pPMenu = SXGUICrPopupMenu();
+	pPMenu->insertItem(0, "1", 0, 0);
+	pPMenu->insertItem(0, "1", 0, 0);
+	pPMenu->insertItem(0, "1", 0, 0);
+	pPMenu->insertItem(0, "1", 0, 0);
+	pPMenu->insertItem(0, "1", 0, 0);
+	pPMenu->insertItem(0, "1", 0, 0);
+	pPMenu->track(SXLevelEditor::JobWindow->getHWND(), 150, 150);
 	
 
-	SXLevelEditor::RenderWindow = SXGUICrBaseWnd("RenderWindow", "RenderWindow", 0, 0, 0, 27, 600, 400, 0, LoadCursor(NULL, IDC_ARROW), CreateSolidBrush(RGB(200, 200, 200)), 0, CS_HREDRAW | CS_VREDRAW, WS_CHILD | WS_VISIBLE | WS_BORDER, SXLevelEditor::JobWindow->GetHWND(), WndProcAllDefault);
-	SXLevelEditor::RenderWindow->GAlign.left = true;
-	SXLevelEditor::RenderWindow->GAlign.right = true;
-	SXLevelEditor::RenderWindow->GAlign.top = true;
-	SXLevelEditor::RenderWindow->GAlign.bottom = true;
-	SXLevelEditor::RenderWindow->AddHandler(SXLevelEditor_RenderWindow_MouseMove, WM_MOUSEMOVE);
-	SXLevelEditor::RenderWindow->AddHandler(SXLevelEditor_RenderWindow_LDown, WM_LBUTTONDOWN);
-	SXLevelEditor::RenderWindow->AddHandler(SXLevelEditor_RenderWindow_LClick, WM_LBUTTONUP);
-	SXLevelEditor::RenderWindow->AddHandler(SXLevelEditor_RenderWindow_RClick, WM_RBUTTONUP);
-	SXLevelEditor::RenderWindow->AddHandler(SXLevelEditor_RenderWindow_MBUp, WM_MBUTTONUP);
-	SXLevelEditor::RenderWindow->AddHandler(SXLevelEditor_RenderWindow_Delete, WM_KEYDOWN, VK_DELETE, 1, 0, 0, 0);
-
-	SXLevelEditor::ToolBar1 = SXGUICrToolBar(0, 1, 810, 26, SXLevelEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXLevelEditor::ToolBar1->GAlign.left = true;
-	SXLevelEditor::ToolBar1->GAlign.right = true;
-	SXLevelEditor::ToolBar1->GAlign.top = true;
-	SXLevelEditor::ToolBar1->GAlign.bottom = false;
-	SXLevelEditor::ToolBar1->AddHandler(SXLevelEditor_ToolBar1_CallWmCommand, WM_COMMAND);
-
-	SXLevelEditor::ButtonTBNew = SXGUICrButtonEx("", 2, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonTBNew->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonTBNew->GAlign.left = true;
-	SXLevelEditor::ButtonTBNew->GAlign.top = true;
-	SXLevelEditor::ButtonTBNew->SetBmpInResourse(IDB_BITMAP1);
-
-	SXLevelEditor::ButtonTBOpen = SXGUICrButtonEx("", 26, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonTBOpen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonTBOpen->GAlign.left = true;
-	SXLevelEditor::ButtonTBOpen->GAlign.top = true;
-	SXLevelEditor::ButtonTBOpen->SetBmpInResourse(IDB_BITMAP2);
-
-	SXLevelEditor::ButtonTBSave = SXGUICrButtonEx("", 50, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonTBSave->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonTBSave->GAlign.left = true;
-	SXLevelEditor::ButtonTBSave->GAlign.top = true;
-	SXLevelEditor::ButtonTBSave->SetBmpInResourse(IDB_BITMAP4);
-
-	SXLevelEditor::ButtonTBSaveAs = SXGUICrButtonEx("", 74, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonTBSaveAs->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonTBSaveAs->GAlign.left = true;
-	SXLevelEditor::ButtonTBSaveAs->GAlign.top = true;
-	SXLevelEditor::ButtonTBSaveAs->SetBmpInResourse(IDB_BITMAP3);
-
-	SXLevelEditor::CheckBoxTBArrow = SXGUICrCheckBoxEx("", 104, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBArrow->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBArrow->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBArrow->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBArrow->SetBmpInResourse(IDB_BITMAP5);
-
-	SXLevelEditor::CheckBoxTBPos = SXGUICrCheckBoxEx("", 128, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBPos->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBPos->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBPos->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBPos->SetBmpInResourse(IDB_BITMAP6);
-
-	SXLevelEditor::CheckBoxTBRot = SXGUICrCheckBoxEx("", 152, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRot->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRot->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRot->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRot->SetBmpInResourse(IDB_BITMAP7);
-
-	SXLevelEditor::CheckBoxTBScale = SXGUICrCheckBoxEx("", 176, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBScale->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBScale->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBScale->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBScale->SetBmpInResourse(IDB_BITMAP8);
-
-
-	SXLevelEditor::CheckBoxTBGrid = SXGUICrCheckBoxEx("", 206, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBGrid->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBGrid->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBGrid->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBGrid->SetBmpInResourse(IDB_BITMAP9);
-
-	SXLevelEditor::CheckBoxTBAxes = SXGUICrCheckBoxEx("", 230, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBAxes->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBAxes->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBAxes->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBAxes->SetBmpInResourse(IDB_BITMAP10);
-
-
-	SXLevelEditor::CheckBoxTBRColor = SXGUICrCheckBoxEx("", 260, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRColor->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRColor->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRColor->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRColor->SetBmpInResourse(IDB_BITMAP11);
-
-	SXLevelEditor::CheckBoxTBRNormal = SXGUICrCheckBoxEx("", 284, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRNormal->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRNormal->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRNormal->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRNormal->SetBmpInResourse(IDB_BITMAP12);
-
-	SXLevelEditor::CheckBoxTBRParam = SXGUICrCheckBoxEx("", 308, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRParam->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRParam->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRParam->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRParam->SetBmpInResourse(IDB_BITMAP13);
-
-	SXLevelEditor::CheckBoxTBRAmDiff = SXGUICrCheckBoxEx("", 332, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRAmDiff->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRAmDiff->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRAmDiff->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRAmDiff->SetBmpInResourse(IDB_BITMAP14);
-
-	SXLevelEditor::CheckBoxTBRSpecular = SXGUICrCheckBoxEx("", 356, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRSpecular->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRSpecular->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRSpecular->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRSpecular->SetBmpInResourse(IDB_BITMAP15);
-
-	SXLevelEditor::CheckBoxTBRLighting = SXGUICrCheckBoxEx("", 380, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBRLighting->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBRLighting->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBRLighting->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBRLighting->SetBmpInResourse(IDB_BITMAP16);
+	SXLevelEditor::RenderWindow = SXGUICrBaseWndEx("RenderWindow", "RenderWindow", 0, 27, 600, 400, 0, LoadCursor(NULL, IDC_ARROW), CreateSolidBrush(RGB(200, 200, 200)), 0, CS_HREDRAW | CS_VREDRAW, WS_VISIBLE | WS_BORDER, SXLevelEditor::JobWindow->getHWND(), WndProcAllDefault);
+	SXLevelEditor::RenderWindow->setFollowParentSides(true, true, true, true);
+	/*SXLevelEditor::RenderWindow->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RenderWindow->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXLevelEditor::RenderWindow->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RenderWindow->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);*/
+	SXLevelEditor::RenderWindow->addHandler(SXLevelEditor_RenderWindow_MouseMove, WM_MOUSEMOVE);
+	SXLevelEditor::RenderWindow->addHandler(SXLevelEditor_RenderWindow_LDown, WM_LBUTTONDOWN);
+	SXLevelEditor::RenderWindow->addHandler(SXLevelEditor_RenderWindow_LClick, WM_LBUTTONUP);
+	SXLevelEditor::RenderWindow->addHandler(SXLevelEditor_RenderWindow_RClick, WM_RBUTTONUP);
+	SXLevelEditor::RenderWindow->addHandler(SXLevelEditor_RenderWindow_MBUp, WM_MBUTTONUP);
+	SXLevelEditor::RenderWindow->addHandler(SXLevelEditor_RenderWindow_Delete, WM_KEYDOWN, VK_DELETE, 1, 0, 0, 0);
+
+	SXLevelEditor::ToolBar1 = SXGUICrToolBar(0, 1, 810, 26, SXLevelEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	//SXLevelEditor::ToolBar1->setFollowParentSides(true, true, true, false);
+	SXLevelEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXLevelEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_BOTTOM, false);
+	SXLevelEditor::ToolBar1->addHandler(SXLevelEditor_ToolBar1_CallWmCommand, WM_COMMAND);
+
+	SXLevelEditor::ButtonTBNew = SXGUICrButtonEx("", 2, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::ButtonTBNew->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonTBNew->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::ButtonTBNew->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonTBNew->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::ButtonTBNew->setBmpFromResourse(IDB_BITMAP1);
+
+	SXLevelEditor::ButtonTBOpen = SXGUICrButtonEx("", 26, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::ButtonTBOpen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonTBOpen->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::ButtonTBOpen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonTBOpen->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::ButtonTBOpen->setBmpFromResourse(IDB_BITMAP2);
+
+	SXLevelEditor::ButtonTBSave = SXGUICrButtonEx("", 50, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::ButtonTBSave->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonTBSave->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::ButtonTBSave->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonTBSave->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::ButtonTBSave->setBmpFromResourse(IDB_BITMAP4);
+
+	SXLevelEditor::ButtonTBSaveAs = SXGUICrButtonEx("", 74, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::ButtonTBSaveAs->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonTBSaveAs->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::ButtonTBSaveAs->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonTBSaveAs->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::ButtonTBSaveAs->setBmpFromResourse(IDB_BITMAP3);
+
+	SXLevelEditor::CheckBoxTBArrow = SXGUICrCheckBoxEx("", 104, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBArrow->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBArrow->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBArrow->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBArrow->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBArrow->setBmpFromResourse(IDB_BITMAP5);
+
+	SXLevelEditor::CheckBoxTBPos = SXGUICrCheckBoxEx("", 128, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBPos->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBPos->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBPos->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBPos->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBPos->setBmpFromResourse(IDB_BITMAP6);
+
+	SXLevelEditor::CheckBoxTBRot = SXGUICrCheckBoxEx("", 152, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRot->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRot->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRot->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRot->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRot->setBmpFromResourse(IDB_BITMAP7);
+
+	SXLevelEditor::CheckBoxTBScale = SXGUICrCheckBoxEx("", 176, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBScale->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBScale->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBScale->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBScale->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBScale->setBmpFromResourse(IDB_BITMAP8);
+
+
+	SXLevelEditor::CheckBoxTBGrid = SXGUICrCheckBoxEx("", 206, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBGrid->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBGrid->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBGrid->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBGrid->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBGrid->setBmpFromResourse(IDB_BITMAP9);
+
+	SXLevelEditor::CheckBoxTBAxes = SXGUICrCheckBoxEx("", 230, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBAxes->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBAxes->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBAxes->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBAxes->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBAxes->setBmpFromResourse(IDB_BITMAP10);
+
+
+	SXLevelEditor::CheckBoxTBRColor = SXGUICrCheckBoxEx("", 260, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRColor->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRColor->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRColor->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRColor->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRColor->setBmpFromResourse(IDB_BITMAP11);
+
+	SXLevelEditor::CheckBoxTBRNormal = SXGUICrCheckBoxEx("", 284, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRNormal->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRNormal->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRNormal->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRNormal->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRNormal->setBmpFromResourse(IDB_BITMAP12);
+
+	SXLevelEditor::CheckBoxTBRParam = SXGUICrCheckBoxEx("", 308, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRParam->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRParam->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRParam->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRParam->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRParam->setBmpFromResourse(IDB_BITMAP13);
+
+	SXLevelEditor::CheckBoxTBRAmDiff = SXGUICrCheckBoxEx("", 332, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRAmDiff->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRAmDiff->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRAmDiff->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRAmDiff->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRAmDiff->setBmpFromResourse(IDB_BITMAP14);
+
+	SXLevelEditor::CheckBoxTBRSpecular = SXGUICrCheckBoxEx("", 356, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRSpecular->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRSpecular->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRSpecular->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRSpecular->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRSpecular->setBmpFromResourse(IDB_BITMAP15);
+
+	SXLevelEditor::CheckBoxTBRLighting = SXGUICrCheckBoxEx("", 380, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBRLighting->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBRLighting->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBRLighting->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBRLighting->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBRLighting->setBmpFromResourse(IDB_BITMAP16);
 
 	
-	SXLevelEditor::CheckBoxTBSelS = SXGUICrCheckBoxEx("", 410, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBSelS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBSelS->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBSelS->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBSelS->SetBmpInResourse(IDB_BITMAP17);
-
-	SXLevelEditor::CheckBoxTBSelZTest = SXGUICrCheckBoxEx("", 434, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBSelZTest->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBSelZTest->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBSelZTest->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBSelZTest->SetBmpInResourse(IDB_BITMAP18);
-
-	SXLevelEditor::CheckBoxTBSelMesh = SXGUICrCheckBoxEx("", 458, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBSelMesh->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBSelMesh->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBSelMesh->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBSelMesh->SetBmpInResourse(IDB_BITMAP19);
-
-	SXLevelEditor::CheckBoxTBSelCullBack = SXGUICrCheckBoxEx("", 482, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBSelCullBack->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBSelCullBack->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBSelCullBack->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBSelCullBack->SetBmpInResourse(IDB_BITMAP20);
-
-
-	SXLevelEditor::CheckBoxTBAIGBound = SXGUICrCheckBoxEx("", 512, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBAIGBound->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBAIGBound->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBAIGBound->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBAIGBound->SetBmpInResourse(IDB_BITMAP22);
-
-	SXLevelEditor::CheckBoxTBAIGQuad = SXGUICrCheckBoxEx("", 536, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBAIGQuad->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBAIGQuad->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBAIGQuad->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBAIGQuad->SetBmpInResourse(IDB_BITMAP23);
-
-	SXLevelEditor::CheckBoxTBAIGGraphPoint = SXGUICrCheckBoxEx("", 560, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBAIGGraphPoint->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBAIGGraphPoint->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBAIGGraphPoint->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBAIGGraphPoint->SetBmpInResourse(IDB_BITMAP24);
-
-	SXLevelEditor::CheckBoxTBLevelType = SXGUICrCheckBoxEx("", 588, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBLevelType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBLevelType->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBLevelType->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBLevelType->SetBmpInResourse(IDB_BITMAP25);
-
-	SXLevelEditor::CheckBoxTBGLightEnable = SXGUICrCheckBoxEx("", 612, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->GetHWND(), 0, 0);
-	SXLevelEditor::CheckBoxTBGLightEnable->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxTBGLightEnable->GAlign.left = true;
-	SXLevelEditor::CheckBoxTBGLightEnable->GAlign.top = true;
-	SXLevelEditor::CheckBoxTBGLightEnable->SetBmpInResourse(IDB_BITMAP27);
+	SXLevelEditor::CheckBoxTBSelS = SXGUICrCheckBoxEx("", 410, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBSelS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBSelS->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBSelS->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBSelS->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBSelS->setBmpFromResourse(IDB_BITMAP17);
+
+	SXLevelEditor::CheckBoxTBSelZTest = SXGUICrCheckBoxEx("", 434, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBSelZTest->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBSelZTest->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBSelZTest->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBSelZTest->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBSelZTest->setBmpFromResourse(IDB_BITMAP18);
+
+	SXLevelEditor::CheckBoxTBSelMesh = SXGUICrCheckBoxEx("", 458, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBSelMesh->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBSelMesh->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBSelMesh->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBSelMesh->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBSelMesh->setBmpFromResourse(IDB_BITMAP19);
+
+	SXLevelEditor::CheckBoxTBSelCullBack = SXGUICrCheckBoxEx("", 482, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBSelCullBack->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBSelCullBack->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBSelCullBack->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBSelCullBack->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBSelCullBack->setBmpFromResourse(IDB_BITMAP20);
+
+
+	SXLevelEditor::CheckBoxTBAIGBound = SXGUICrCheckBoxEx("", 512, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBAIGBound->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBAIGBound->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBAIGBound->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBAIGBound->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBAIGBound->setBmpFromResourse(IDB_BITMAP22);
+
+	SXLevelEditor::CheckBoxTBAIGQuad = SXGUICrCheckBoxEx("", 536, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBAIGQuad->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBAIGQuad->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBAIGQuad->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBAIGQuad->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBAIGQuad->setBmpFromResourse(IDB_BITMAP23);
+
+	SXLevelEditor::CheckBoxTBAIGGraphPoint = SXGUICrCheckBoxEx("", 560, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBAIGGraphPoint->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBAIGGraphPoint->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBAIGGraphPoint->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBAIGGraphPoint->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBAIGGraphPoint->setBmpFromResourse(IDB_BITMAP24);
+
+	SXLevelEditor::CheckBoxTBLevelType = SXGUICrCheckBoxEx("", 588, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBLevelType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBLevelType->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBLevelType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBLevelType->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBLevelType->setBmpFromResourse(IDB_BITMAP25);
+
+	SXLevelEditor::CheckBoxTBGLightEnable = SXGUICrCheckBoxEx("", 612, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXLevelEditor::ToolBar1->getHWND(), 0, 0);
+	SXLevelEditor::CheckBoxTBGLightEnable->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxTBGLightEnable->setFollowParentSides(true, false, false, true);
+	/*SXLevelEditor::CheckBoxTBGLightEnable->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxTBGLightEnable->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXLevelEditor::CheckBoxTBGLightEnable->setBmpFromResourse(IDB_BITMAP27);
 
 
 	
-	SXLevelEditor::GroupBoxList = SXGUICrGroupBox("GroupBoxList", 601, 28, 200, 400, SXLevelEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXGUIBaseHandlers::InitHandlerMsg(SXLevelEditor::GroupBoxList);
-	SXLevelEditor::GroupBoxList->AddHandler(SXLevelEditor_GroupBoxList_CallWmCommand, WM_COMMAND);
-	SXLevelEditor::GroupBoxList->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::GroupBoxList->SetColorText(0,0,0);
-	SXLevelEditor::GroupBoxList->SetColorTextBk(220,220,220);
-	SXLevelEditor::GroupBoxList->SetTransparentTextBk(true);
-	SXLevelEditor::GroupBoxList->SetColorBrush(220,220,220);
-
-	SXLevelEditor::GroupBoxList->GAlign.left = false;
-	SXLevelEditor::GroupBoxList->GAlign.right = true;
-	SXLevelEditor::GroupBoxList->GAlign.top = true;
-	SXLevelEditor::GroupBoxList->GAlign.bottom = true;
-
-	SXLevelEditor::GroupBoxData = SXGUICrGroupBox("", 0, 425, 800, 190, SXLevelEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXGUIBaseHandlers::InitHandlerMsg(SXLevelEditor::GroupBoxData);
-	SXLevelEditor::GroupBoxData->AddHandler(SXLevelEditor_GroupBox_CallWmCommand, WM_COMMAND);
-	SXLevelEditor::GroupBoxData->AddHandler(SXLevelEditor_GroupBox_Notify, WM_NOTIFY);
-	SXLevelEditor::GroupBoxData->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::GroupBoxData->SetColorText(0,0,0);
-	SXLevelEditor::GroupBoxData->SetColorTextBk(220,220,220);
-	SXLevelEditor::GroupBoxData->SetTransparentTextBk(true);
-	SXLevelEditor::GroupBoxData->SetColorBrush(220,220,220);
-
-	SXLevelEditor::GroupBoxData->GAlign.left = true;
-	SXLevelEditor::GroupBoxData->GAlign.right = true;
-	SXLevelEditor::GroupBoxData->GAlign.top = false;
-	SXLevelEditor::GroupBoxData->GAlign.bottom = true;
-
-	SXLevelEditor::ListBoxList = SXGUICrListBox("", 4, 30, 193, 290, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0, false);
-	SXLevelEditor::ListBoxList->GAlign.left = true;
-	SXLevelEditor::ListBoxList->GAlign.top = true;
-	SXLevelEditor::ListBoxList->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::ListBoxList->SetColorText(0,0,0);
-	SXLevelEditor::ListBoxList->SetColorTextBk(255,255,255);
-	SXLevelEditor::ListBoxList->SetTransparentTextBk(true);
-	SXLevelEditor::ListBoxList->SetColorBrush(255,255,255);
-	//SXLevelEditor::ListBoxList->AddHandler(SXLevelEditor_ListBoxList_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticListTextCount = SXGUICrStatic("Count:", 65, 15, 30, 15, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::StaticListTextCount->GAlign.left = true;
-	SXLevelEditor::StaticListTextCount->GAlign.top = true;
-	SXLevelEditor::StaticListTextCount->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::StaticListTextCount->SetColorText(0,0,0);
-	SXLevelEditor::StaticListTextCount->SetColorTextBk(255,255,255);
-	SXLevelEditor::StaticListTextCount->SetTransparentTextBk(true);
-	SXLevelEditor::StaticListTextCount->SetColorBrush(220,220,220);
-
-	SXLevelEditor::StaticListValCount = SXGUICrStatic("0", 100, 15, 50, 15, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::StaticListValCount->GAlign.left = true;
-	SXLevelEditor::StaticListValCount->GAlign.top = true;
-	SXLevelEditor::StaticListValCount->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::StaticListValCount->SetColorText(0,0,0);
-	SXLevelEditor::StaticListValCount->SetColorTextBk(255,255,255);
-	SXLevelEditor::StaticListValCount->SetTransparentTextBk(true);
-	SXLevelEditor::StaticListValCount->SetColorBrush(220,220,220);
-
-	SXLevelEditor::ButtonDelete = SXGUICrButton("Delete", 135, 325, 60, 20, 0, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonDelete->GAlign.left = true;
-	SXLevelEditor::ButtonDelete->GAlign.top = true;
-	SXLevelEditor::ButtonDelete->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonDelete->AddHandler(SXLevelEditor_ButtonDelete_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonGeometryOpen = SXGUICrButton("Geometry", 5, 350, 60, 20, 0, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGeometryOpen->GAlign.left = true;
-	SXLevelEditor::ButtonGeometryOpen->GAlign.top = true;
-	SXLevelEditor::ButtonGeometryOpen->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::ButtonGeometryOpen->AddHandler(SXLevelEditor_ButtonGeometryOpen_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonGreenOpen = SXGUICrButton("Green", 70, 350, 60, 20, 0, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenOpen->GAlign.left = true;
-	SXLevelEditor::ButtonGreenOpen->GAlign.top = true;
-	SXLevelEditor::ButtonGreenOpen->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXLevelEditor::ButtonGreenOpen->AddHandler(SXLevelEditor_ButtonGreenOpen_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonGameObjectOpen = SXGUICrButton("Game", 135, 350, 60, 20, 0, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGameObjectOpen->GAlign.left = true;
-	SXLevelEditor::ButtonGameObjectOpen->GAlign.top = true;
-	SXLevelEditor::ButtonGameObjectOpen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGameObjectOpen->AddHandler(SXLevelEditor_ButtonGameObjectOpen_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonAIGridOpen = SXGUICrButton("AI Grid", 5, 375, 60, 20, 0, SXLevelEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIGridOpen->GAlign.left = true;
-	SXLevelEditor::ButtonAIGridOpen->GAlign.top = true;
-	SXLevelEditor::ButtonAIGridOpen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIGridOpen->AddHandler(SXLevelEditor_ButtonAIGridOpen_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StatusBar1 = SXGUICrStatusBar("StatusBar1", SXLevelEditor::JobWindow->GetHWND(), 0, 0);
-	SXLevelEditor::StatusBar1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::GroupBoxList = SXGUICrGroupBox("GroupBoxList", 601, 28, 200, 400, SXLevelEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	gui_func::base_handlers::InitHandlerMsg(SXLevelEditor::GroupBoxList);
+	SXLevelEditor::GroupBoxList->addHandler(SXLevelEditor_GroupBoxList_CallWmCommand, WM_COMMAND);
+	SXLevelEditor::GroupBoxList->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::GroupBoxList->setColorText(RGB(0,0,0));
+	SXLevelEditor::GroupBoxList->setColorTextBk(RGB(220,220,220));
+	SXLevelEditor::GroupBoxList->setTransparentTextBk(true);
+	SXLevelEditor::GroupBoxList->setColorBrush(RGB(220, 220, 220));
+
+	SXLevelEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_LEFT, false);
+	SXLevelEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXLevelEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
+
+	SXLevelEditor::GroupBoxData = SXGUICrGroupBox("", 0, 425, 800, 190, SXLevelEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	gui_func::base_handlers::InitHandlerMsg(SXLevelEditor::GroupBoxData);
+	SXLevelEditor::GroupBoxData->addHandler(SXLevelEditor_GroupBox_CallWmCommand, WM_COMMAND);
+	SXLevelEditor::GroupBoxData->addHandler(SXLevelEditor_GroupBox_Notify, WM_NOTIFY);
+	SXLevelEditor::GroupBoxData->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::GroupBoxData->setColorText(RGB(0,0,0));
+	SXLevelEditor::GroupBoxData->setColorTextBk(RGB(220, 220, 220));
+	SXLevelEditor::GroupBoxData->setTransparentTextBk(true);
+	SXLevelEditor::GroupBoxData->setColorBrush(RGB(220, 220, 220));
+
+	SXLevelEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXLevelEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_TOP, false);
+	SXLevelEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
+
+	SXLevelEditor::ListBoxList = SXGUICrListBox(4, 30, 193, 290, SXLevelEditor::GroupBoxList->getHWND(), 0, 0, false);
+	SXLevelEditor::ListBoxList->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ListBoxList->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ListBoxList->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::ListBoxList->setColorText(RGB(0,0,0));
+	SXLevelEditor::ListBoxList->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ListBoxList->setTransparentTextBk(true);
+	SXLevelEditor::ListBoxList->setColorBrush(RGB(255, 255, 255));
+	//SXLevelEditor::ListBoxList->addHandler(SXLevelEditor_ListBoxList_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticListTextCount = SXGUICrStatic("Count:", 65, 15, 30, 15, SXLevelEditor::GroupBoxList->getHWND(), 0);
+	SXLevelEditor::StaticListTextCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticListTextCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticListTextCount->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::StaticListTextCount->setColorText(RGB(0,0,0));
+	SXLevelEditor::StaticListTextCount->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticListTextCount->setTransparentTextBk(true);
+	SXLevelEditor::StaticListTextCount->setColorBrush(RGB(220, 220, 220));
+
+	SXLevelEditor::StaticListValCount = SXGUICrStatic("0", 100, 15, 50, 15, SXLevelEditor::GroupBoxList->getHWND(), 0);
+	SXLevelEditor::StaticListValCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticListValCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticListValCount->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::StaticListValCount->setColorText(RGB(0,0,0));
+	SXLevelEditor::StaticListValCount->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticListValCount->setTransparentTextBk(true);
+	SXLevelEditor::StaticListValCount->setColorBrush(RGB(220, 220, 220));
+
+	SXLevelEditor::ButtonDelete = SXGUICrButton("Delete", 135, 325, 60, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxList->getHWND(), 0, 0);
+	SXLevelEditor::ButtonDelete->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonDelete->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonDelete->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonDelete->addHandler(SXLevelEditor_ButtonDelete_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonGeometryOpen = SXGUICrButton("Geometry", 5, 350, 60, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxList->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGeometryOpen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGeometryOpen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGeometryOpen->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::ButtonGeometryOpen->addHandler(SXLevelEditor_ButtonGeometryOpen_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonGreenOpen = SXGUICrButton("Green", 70, 350, 60, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxList->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenOpen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenOpen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenOpen->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXLevelEditor::ButtonGreenOpen->addHandler(SXLevelEditor_ButtonGreenOpen_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonGameObjectOpen = SXGUICrButton("Game", 135, 350, 60, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxList->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGameObjectOpen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGameObjectOpen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGameObjectOpen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGameObjectOpen->addHandler(SXLevelEditor_ButtonGameObjectOpen_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonAIGridOpen = SXGUICrButton("AI Grid", 5, 375, 60, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxList->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIGridOpen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIGridOpen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIGridOpen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIGridOpen->addHandler(SXLevelEditor_ButtonAIGridOpen_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StatusBar1 = SXGUICrStatusBar("StatusBar1", SXLevelEditor::JobWindow->getHWND(), 0, 0);
+	SXLevelEditor::StatusBar1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
 	int arrpart[5];
 	arrpart[0] = 150;
 	arrpart[1] = 300;
 	arrpart[2] = 450;
 	arrpart[3] = 600;
 	arrpart[4] = -1;
-	SXLevelEditor::StatusBar1->SetCountParts(5, arrpart);
-	SXLevelEditor::StatusBar1->SetTextParts(0, "Level poly: ");
-	SXLevelEditor::StatusBar1->SetTextParts(1, "Geom poly: ");
-	SXLevelEditor::StatusBar1->SetTextParts(2, "Green poly: ");
-	SXLevelEditor::StatusBar1->SetTextParts(3, "");
-	SXLevelEditor::StatusBar1->SetTextParts(4, "");
+	SXLevelEditor::StatusBar1->setPartsCount(5, arrpart);
+	SXLevelEditor::StatusBar1->setPartText(0, "Level poly: ");
+	SXLevelEditor::StatusBar1->setPartText(1, "Geom poly: ");
+	SXLevelEditor::StatusBar1->setPartText(2, "Green poly: ");
+	SXLevelEditor::StatusBar1->setPartText(3, "");
+	SXLevelEditor::StatusBar1->setPartText(4, "");
 
 	//Geom
 	//{
-	SXLevelEditor::StaticGeomName = SXGUICrStatic("Name", 5, 20, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGeomName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGeomName->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGeomName->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGeomName->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGeomName->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGeomName->GAlign.left = true;
-	SXLevelEditor::StaticGeomName->GAlign.top = true;
-	SXLevelEditor::StaticGeomName->Visible(false);
-
-	SXLevelEditor::EditGeomName = SXGUICrEdit("0", 80, 20, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomName->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomName->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomName->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomName->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomName->GAlign.left = true;
-	SXLevelEditor::EditGeomName->GAlign.top = true;
-	SXLevelEditor::EditGeomName->Visible(false);
-	SXLevelEditor::EditGeomName->AddHandler(SXLevelEditor_EditGeomName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomName->AddHandler(SXLevelEditor_EditGeomName_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticGeomModel = SXGUICrStatic("Model", 5, 40, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGeomModel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGeomModel->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGeomModel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGeomModel->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGeomModel->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGeomModel->GAlign.left = true;
-	SXLevelEditor::StaticGeomModel->GAlign.top = true;
-	SXLevelEditor::StaticGeomModel->Visible(false);
-
-	SXLevelEditor::EditGeomModel = SXGUICrEdit("0", 80, 40, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomModel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomModel->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomModel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomModel->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomModel->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomModel->GAlign.left = true;
-	SXLevelEditor::EditGeomModel->GAlign.top = true;
-	SXLevelEditor::EditGeomModel->Visible(false);
-
-	SXLevelEditor::ButtonGeomModel = SXGUICrButton("...", 285, 40, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGeomModel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGeomModel->GAlign.left = true;
-	SXLevelEditor::ButtonGeomModel->GAlign.top = true;
-	SXLevelEditor::ButtonGeomModel->Visible(false);
-	SXLevelEditor::ButtonGeomModel->AddHandler(SXLevelEditor_ButtonGeomModel_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticGeomLod1 = SXGUICrStatic("Lod1", 5, 60, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGeomLod1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGeomLod1->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGeomLod1->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGeomLod1->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGeomLod1->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGeomLod1->GAlign.left = true;
-	SXLevelEditor::StaticGeomLod1->GAlign.top = true;
-	SXLevelEditor::StaticGeomLod1->Visible(false);
-
-	SXLevelEditor::EditGeomLod1 = SXGUICrEdit("0", 80, 60, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomLod1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomLod1->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomLod1->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomLod1->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomLod1->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomLod1->GAlign.left = true;
-	SXLevelEditor::EditGeomLod1->GAlign.top = true;
-	SXLevelEditor::EditGeomLod1->Visible(false);
-
-	SXLevelEditor::ButtonGeomLod1 = SXGUICrButton("...", 285, 60, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGeomLod1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGeomLod1->GAlign.left = true;
-	SXLevelEditor::ButtonGeomLod1->GAlign.top = true;
-	SXLevelEditor::ButtonGeomLod1->Visible(false);
-	SXLevelEditor::ButtonGeomLod1->AddHandler(SXLevelEditor_ButtonGeomLod1_Click, WM_LBUTTONUP);
+	SXLevelEditor::StaticGeomName = SXGUICrStatic("Name", 5, 20, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGeomName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGeomName->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGeomName->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGeomName->setTransparentTextBk(true);
+	SXLevelEditor::StaticGeomName->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGeomName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGeomName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGeomName->setVisible(false);
+
+	SXLevelEditor::EditGeomName = SXGUICrEdit("0", 80, 20, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomName->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomName->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomName->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomName->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomName->setVisible(false);
+	SXLevelEditor::EditGeomName->addHandler(SXLevelEditor_EditGeomName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomName->addHandler(SXLevelEditor_EditGeomName_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticGeomModel = SXGUICrStatic("Model", 5, 40, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGeomModel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGeomModel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGeomModel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGeomModel->setTransparentTextBk(true);
+	SXLevelEditor::StaticGeomModel->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGeomModel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGeomModel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGeomModel->setVisible(false);
+
+	SXLevelEditor::EditGeomModel = SXGUICrEdit("0", 80, 40, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomModel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomModel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomModel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomModel->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomModel->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomModel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomModel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomModel->setVisible(false);
+
+	SXLevelEditor::ButtonGeomModel = SXGUICrButton("...", 285, 40, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGeomModel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGeomModel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGeomModel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGeomModel->setVisible(false);
+	SXLevelEditor::ButtonGeomModel->addHandler(SXLevelEditor_ButtonGeomModel_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticGeomLod1 = SXGUICrStatic("Lod1", 5, 60, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGeomLod1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGeomLod1->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGeomLod1->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGeomLod1->setTransparentTextBk(true);
+	SXLevelEditor::StaticGeomLod1->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGeomLod1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGeomLod1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGeomLod1->setVisible(false);
+
+	SXLevelEditor::EditGeomLod1 = SXGUICrEdit("0", 80, 60, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomLod1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomLod1->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomLod1->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomLod1->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomLod1->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomLod1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomLod1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomLod1->setVisible(false);
+
+	SXLevelEditor::ButtonGeomLod1 = SXGUICrButton("...", 285, 60, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGeomLod1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGeomLod1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGeomLod1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGeomLod1->setVisible(false);
+	SXLevelEditor::ButtonGeomLod1->addHandler(SXLevelEditor_ButtonGeomLod1_Click, WM_LBUTTONUP);
 	
-	SXLevelEditor::StaticGeomPos = SXGUICrStatic("Position:", 320, 35, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGeomPos->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGeomPos->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGeomPos->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGeomPos->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGeomPos->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGeomPos->GAlign.left = true;
-	SXLevelEditor::StaticGeomPos->GAlign.top = true;
-	SXLevelEditor::StaticGeomPos->Visible(false);
-
-	SXLevelEditor::EditGeomPosX = SXGUICrEdit("0", 370, 15, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomPosX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomPosX->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomPosX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomPosX->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomPosX->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomPosX->GAlign.left = true;
-	SXLevelEditor::EditGeomPosX->GAlign.top = true;
-	SXLevelEditor::EditGeomPosX->Visible(false);
-	SXLevelEditor::EditGeomPosX->AddHandler(SXLevelEditor_EditTransformPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomPosX->AddHandler(SXLevelEditor_EditTransformPos_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::EditGeomPosY = SXGUICrEdit("0", 370, 35, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomPosY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomPosY->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomPosY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomPosY->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomPosY->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomPosY->GAlign.left = true;
-	SXLevelEditor::EditGeomPosY->GAlign.top = true;
-	SXLevelEditor::EditGeomPosY->Visible(false);
-	SXLevelEditor::EditGeomPosY->AddHandler(SXLevelEditor_EditTransformPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomPosY->AddHandler(SXLevelEditor_EditTransformPos_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::EditGeomPosZ = SXGUICrEdit("0", 370, 55, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomPosZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomPosZ->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomPosZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomPosZ->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomPosZ->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomPosZ->GAlign.left = true;
-	SXLevelEditor::EditGeomPosZ->GAlign.top = true;
-	SXLevelEditor::EditGeomPosZ->Visible(false);
-	SXLevelEditor::EditGeomPosZ->AddHandler(SXLevelEditor_EditTransformPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomPosZ->AddHandler(SXLevelEditor_EditTransformPos_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::RadioButtonGeomPosX = SXGUICrRadioButton("x", 440, 15, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomPosX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomPosX->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomPosX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomPosX->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomPosX->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomPosX->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomPosX->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomPosX->Visible(false);
-
-	SXLevelEditor::RadioButtonGeomPosY = SXGUICrRadioButton("y", 440, 35, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomPosY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomPosY->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomPosY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomPosY->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomPosY->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomPosY->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomPosY->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomPosY->Visible(false);
-
-	SXLevelEditor::RadioButtonGeomPosZ = SXGUICrRadioButton("z", 440, 55, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomPosZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomPosZ->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomPosZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomPosZ->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomPosZ->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomPosZ->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomPosZ->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomPosZ->Visible(false);
-
-	SXLevelEditor::StaticGeomRot = SXGUICrStatic("Rotation:", 470, 35, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGeomRot->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGeomRot->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGeomRot->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGeomRot->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGeomRot->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGeomRot->GAlign.left = true;
-	SXLevelEditor::StaticGeomRot->GAlign.top = true;
-	SXLevelEditor::StaticGeomRot->Visible(false);
-
-	SXLevelEditor::EditGeomRotX = SXGUICrEdit("0", 525, 15, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomRotX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomRotX->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomRotX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomRotX->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomRotX->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomRotX->GAlign.left = true;
-	SXLevelEditor::EditGeomRotX->GAlign.top = true;
-	SXLevelEditor::EditGeomRotX->Visible(false);
-	SXLevelEditor::EditGeomRotX->AddHandler(SXLevelEditor_EditTransformRot_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomRotX->AddHandler(SXLevelEditor_EditTransformRot_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::EditGeomRotY = SXGUICrEdit("0", 525, 35, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomRotY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomRotY->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomRotY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomRotY->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomRotY->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomRotY->GAlign.left = true;
-	SXLevelEditor::EditGeomRotY->GAlign.top = true;
-	SXLevelEditor::EditGeomRotY->Visible(false);
-	SXLevelEditor::EditGeomRotY->AddHandler(SXLevelEditor_EditTransformRot_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomRotY->AddHandler(SXLevelEditor_EditTransformRot_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::EditGeomRotZ = SXGUICrEdit("0", 525, 55, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomRotZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomRotZ->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomRotZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomRotZ->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomRotZ->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomRotZ->GAlign.left = true;
-	SXLevelEditor::EditGeomRotZ->GAlign.top = true;
-	SXLevelEditor::EditGeomRotZ->Visible(false);
-	SXLevelEditor::EditGeomRotZ->AddHandler(SXLevelEditor_EditTransformRot_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomRotZ->AddHandler(SXLevelEditor_EditTransformRot_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::RadioButtonGeomRotX = SXGUICrRadioButton("x", 595, 15, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomRotX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomRotX->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomRotX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomRotX->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomRotX->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomRotX->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomRotX->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomRotX->Visible(false);
-
-	SXLevelEditor::RadioButtonGeomRotY = SXGUICrRadioButton("y", 595, 35, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomRotY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomRotY->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomRotY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomRotY->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomRotY->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomRotY->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomRotY->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomRotY->Visible(false);
-
-	SXLevelEditor::RadioButtonGeomRotZ = SXGUICrRadioButton("z", 595, 55, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomRotZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomRotZ->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomRotZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomRotZ->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomRotZ->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomRotZ->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomRotZ->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomRotZ->Visible(false);
-
-	SXLevelEditor::StaticGeomScale = SXGUICrStatic("Scale:", 625, 35, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGeomScale->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGeomScale->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGeomScale->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGeomScale->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGeomScale->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGeomScale->GAlign.left = true;
-	SXLevelEditor::StaticGeomScale->GAlign.top = true;
-	SXLevelEditor::StaticGeomScale->Visible(false);
-
-	SXLevelEditor::EditGeomScaleX = SXGUICrEdit("0", 675, 15, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomScaleX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomScaleX->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomScaleX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomScaleX->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomScaleX->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomScaleX->GAlign.left = true;
-	SXLevelEditor::EditGeomScaleX->GAlign.top = true;
-	SXLevelEditor::EditGeomScaleX->Visible(false);
-	SXLevelEditor::EditGeomScaleX->AddHandler(SXLevelEditor_EditTransformScale_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomScaleX->AddHandler(SXLevelEditor_EditTransformScale_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::EditGeomScaleY = SXGUICrEdit("0", 675, 35, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomScaleY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomScaleY->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomScaleY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomScaleY->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomScaleY->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomScaleY->GAlign.left = true;
-	SXLevelEditor::EditGeomScaleY->GAlign.top = true;
-	SXLevelEditor::EditGeomScaleY->Visible(false);
-	SXLevelEditor::EditGeomScaleY->AddHandler(SXLevelEditor_EditTransformScale_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomScaleY->AddHandler(SXLevelEditor_EditTransformScale_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::EditGeomScaleZ = SXGUICrEdit("0", 675, 55, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGeomScaleZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGeomScaleZ->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGeomScaleZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGeomScaleZ->SetTransparentTextBk(true);
-	SXLevelEditor::EditGeomScaleZ->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGeomScaleZ->GAlign.left = true;
-	SXLevelEditor::EditGeomScaleZ->GAlign.top = true;
-	SXLevelEditor::EditGeomScaleZ->Visible(false);
-	SXLevelEditor::EditGeomScaleZ->AddHandler(SXLevelEditor_EditTransformScale_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGeomScaleZ->AddHandler(SXLevelEditor_EditTransformScale_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::RadioButtonGeomScaleX = SXGUICrRadioButton("x", 745, 15, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleX->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomScaleX->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomScaleX->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomScaleX->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomScaleX->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomScaleX->Visible(false);
-
-	SXLevelEditor::RadioButtonGeomScaleY = SXGUICrRadioButton("y", 745, 35, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleY->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomScaleY->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomScaleY->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomScaleY->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomScaleY->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomScaleY->Visible(false);
-
-	SXLevelEditor::RadioButtonGeomScaleZ = SXGUICrRadioButton("z", 745, 55, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleZ->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGeomScaleZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGeomScaleZ->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGeomScaleZ->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGeomScaleZ->GAlign.left = true;
-	SXLevelEditor::RadioButtonGeomScaleZ->GAlign.top = true;
-	SXLevelEditor::RadioButtonGeomScaleZ->Visible(false);
-
-	SXLevelEditor::ButtonGeomFinish = SXGUICrButton("Finish", 100, 95, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGeomFinish->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGeomFinish->GAlign.left = true;
-	SXLevelEditor::ButtonGeomFinish->GAlign.top = true;
-	SXLevelEditor::ButtonGeomFinish->Visible(false);
-	SXLevelEditor::ButtonGeomFinish->AddHandler(SXLevelEditor_ButtonGeomFinish_Click, WM_LBUTTONUP);
+	SXLevelEditor::StaticGeomPos = SXGUICrStatic("Position:", 320, 35, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGeomPos->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGeomPos->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGeomPos->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGeomPos->setTransparentTextBk(true);
+	SXLevelEditor::StaticGeomPos->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGeomPos->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGeomPos->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGeomPos->setVisible(false);
+
+	SXLevelEditor::EditGeomPosX = SXGUICrEdit("0", 370, 15, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomPosX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomPosX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomPosX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomPosX->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomPosX->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomPosX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomPosX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomPosX->setVisible(false);
+	SXLevelEditor::EditGeomPosX->addHandler(SXLevelEditor_EditTransformPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomPosX->addHandler(SXLevelEditor_EditTransformPos_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::EditGeomPosY = SXGUICrEdit("0", 370, 35, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomPosY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomPosY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomPosY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomPosY->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomPosY->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomPosY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomPosY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomPosY->setVisible(false);
+	SXLevelEditor::EditGeomPosY->addHandler(SXLevelEditor_EditTransformPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomPosY->addHandler(SXLevelEditor_EditTransformPos_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::EditGeomPosZ = SXGUICrEdit("0", 370, 55, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomPosZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomPosZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomPosZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomPosZ->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomPosZ->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomPosZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomPosZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomPosZ->setVisible(false);
+	SXLevelEditor::EditGeomPosZ->addHandler(SXLevelEditor_EditTransformPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomPosZ->addHandler(SXLevelEditor_EditTransformPos_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::RadioButtonGeomPosX = SXGUICrRadioButton("x", 440, 15, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomPosX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomPosX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomPosX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomPosX->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomPosX->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomPosX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomPosX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomPosX->setVisible(false);
+
+	SXLevelEditor::RadioButtonGeomPosY = SXGUICrRadioButton("y", 440, 35, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomPosY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomPosY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomPosY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomPosY->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomPosY->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomPosY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomPosY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomPosY->setVisible(false);
+
+	SXLevelEditor::RadioButtonGeomPosZ = SXGUICrRadioButton("z", 440, 55, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomPosZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomPosZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomPosZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomPosZ->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomPosZ->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomPosZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomPosZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomPosZ->setVisible(false);
+
+	SXLevelEditor::StaticGeomRot = SXGUICrStatic("Rotation:", 470, 35, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGeomRot->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGeomRot->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGeomRot->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGeomRot->setTransparentTextBk(true);
+	SXLevelEditor::StaticGeomRot->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGeomRot->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGeomRot->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGeomRot->setVisible(false);
+
+	SXLevelEditor::EditGeomRotX = SXGUICrEdit("0", 525, 15, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomRotX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomRotX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomRotX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomRotX->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomRotX->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomRotX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomRotX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomRotX->setVisible(false);
+	SXLevelEditor::EditGeomRotX->addHandler(SXLevelEditor_EditTransformRot_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomRotX->addHandler(SXLevelEditor_EditTransformRot_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::EditGeomRotY = SXGUICrEdit("0", 525, 35, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomRotY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomRotY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomRotY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomRotY->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomRotY->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomRotY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomRotY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomRotY->setVisible(false);
+	SXLevelEditor::EditGeomRotY->addHandler(SXLevelEditor_EditTransformRot_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomRotY->addHandler(SXLevelEditor_EditTransformRot_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::EditGeomRotZ = SXGUICrEdit("0", 525, 55, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomRotZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomRotZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomRotZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomRotZ->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomRotZ->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomRotZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomRotZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomRotZ->setVisible(false);
+	SXLevelEditor::EditGeomRotZ->addHandler(SXLevelEditor_EditTransformRot_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomRotZ->addHandler(SXLevelEditor_EditTransformRot_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::RadioButtonGeomRotX = SXGUICrRadioButton("x", 595, 15, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomRotX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomRotX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomRotX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomRotX->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomRotX->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomRotX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomRotX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomRotX->setVisible(false);
+
+	SXLevelEditor::RadioButtonGeomRotY = SXGUICrRadioButton("y", 595, 35, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomRotY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomRotY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomRotY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomRotY->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomRotY->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomRotY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomRotY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomRotY->setVisible(false);
+
+	SXLevelEditor::RadioButtonGeomRotZ = SXGUICrRadioButton("z", 595, 55, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomRotZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomRotZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomRotZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomRotZ->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomRotZ->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomRotZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomRotZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomRotZ->setVisible(false);
+
+	SXLevelEditor::StaticGeomScale = SXGUICrStatic("Scale:", 625, 35, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGeomScale->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGeomScale->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGeomScale->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGeomScale->setTransparentTextBk(true);
+	SXLevelEditor::StaticGeomScale->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGeomScale->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGeomScale->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGeomScale->setVisible(false);
+
+	SXLevelEditor::EditGeomScaleX = SXGUICrEdit("0", 675, 15, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomScaleX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomScaleX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomScaleX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomScaleX->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomScaleX->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomScaleX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomScaleX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomScaleX->setVisible(false);
+	SXLevelEditor::EditGeomScaleX->addHandler(SXLevelEditor_EditTransformScale_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomScaleX->addHandler(SXLevelEditor_EditTransformScale_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::EditGeomScaleY = SXGUICrEdit("0", 675, 35, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomScaleY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomScaleY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomScaleY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomScaleY->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomScaleY->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomScaleY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomScaleY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomScaleY->setVisible(false);
+	SXLevelEditor::EditGeomScaleY->addHandler(SXLevelEditor_EditTransformScale_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomScaleY->addHandler(SXLevelEditor_EditTransformScale_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::EditGeomScaleZ = SXGUICrEdit("0", 675, 55, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGeomScaleZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGeomScaleZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGeomScaleZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomScaleZ->setTransparentTextBk(true);
+	SXLevelEditor::EditGeomScaleZ->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGeomScaleZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGeomScaleZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGeomScaleZ->setVisible(false);
+	SXLevelEditor::EditGeomScaleZ->addHandler(SXLevelEditor_EditTransformScale_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGeomScaleZ->addHandler(SXLevelEditor_EditTransformScale_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::RadioButtonGeomScaleX = SXGUICrRadioButton("x", 745, 15, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomScaleX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomScaleX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomScaleX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomScaleX->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomScaleX->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomScaleX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomScaleX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomScaleX->setVisible(false);
+
+	SXLevelEditor::RadioButtonGeomScaleY = SXGUICrRadioButton("y", 745, 35, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomScaleY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomScaleY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomScaleY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomScaleY->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomScaleY->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomScaleY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomScaleY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomScaleY->setVisible(false);
+
+	SXLevelEditor::RadioButtonGeomScaleZ = SXGUICrRadioButton("z", 745, 55, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGeomScaleZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGeomScaleZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGeomScaleZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGeomScaleZ->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGeomScaleZ->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGeomScaleZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGeomScaleZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGeomScaleZ->setVisible(false);
+
+	SXLevelEditor::ButtonGeomFinish = SXGUICrButton("Finish", 100, 95, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGeomFinish->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGeomFinish->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGeomFinish->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGeomFinish->setVisible(false);
+	SXLevelEditor::ButtonGeomFinish->addHandler(SXLevelEditor_ButtonGeomFinish_Click, WM_LBUTTONUP);
 	//}
 
 
 	//Green
 	//{
 
-	SXLevelEditor::StaticGreenName = SXGUICrStatic("Name", 5, 20, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenName->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenName->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenName->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenName->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenName->GAlign.left = true;
-	SXLevelEditor::StaticGreenName->GAlign.top = true;
-	SXLevelEditor::StaticGreenName->Visible(false);
-
-	SXLevelEditor::EditGreenName = SXGUICrEdit("0", 80, 20, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenName->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenName->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenName->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenName->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenName->GAlign.left = true;
-	SXLevelEditor::EditGreenName->GAlign.top = true;
-	SXLevelEditor::EditGreenName->Visible(false);
-	SXLevelEditor::EditGreenName->AddHandler(SXLevelEditor_EditGreenName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGreenName->AddHandler(SXLevelEditor_EditGreenName_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticGreenModel = SXGUICrStatic("Model", 5, 40, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenModel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenModel->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenModel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenModel->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenModel->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenModel->GAlign.left = true;
-	SXLevelEditor::StaticGreenModel->GAlign.top = true;
-	SXLevelEditor::StaticGreenModel->Visible(false);
-
-	SXLevelEditor::EditGreenModel = SXGUICrEdit("0", 80, 40, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenModel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenModel->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenModel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenModel->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenModel->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenModel->GAlign.left = true;
-	SXLevelEditor::EditGreenModel->GAlign.top = true;
-	SXLevelEditor::EditGreenModel->Visible(false);
-
-	SXLevelEditor::ButtonGreenModel = SXGUICrButton("...", 285, 40, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenModel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGreenModel->GAlign.left = true;
-	SXLevelEditor::ButtonGreenModel->GAlign.top = true;
-	SXLevelEditor::ButtonGreenModel->Visible(false);
-	SXLevelEditor::ButtonGreenModel->AddHandler(SXLevelEditor_ButtonGreenModel_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticGreenLod1 = SXGUICrStatic("Lod1", 5, 60, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenLod1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenLod1->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenLod1->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenLod1->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenLod1->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenLod1->GAlign.left = true;
-	SXLevelEditor::StaticGreenLod1->GAlign.top = true;
-	SXLevelEditor::StaticGreenLod1->Visible(false);
-
-	SXLevelEditor::EditGreenLod1 = SXGUICrEdit("0", 80, 60, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenLod1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenLod1->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenLod1->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenLod1->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenLod1->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenLod1->GAlign.left = true;
-	SXLevelEditor::EditGreenLod1->GAlign.top = true;
-	SXLevelEditor::EditGreenLod1->Visible(false);
-
-	SXLevelEditor::ButtonGreenLod1 = SXGUICrButton("...", 285, 60, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenLod1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGreenLod1->GAlign.left = true;
-	SXLevelEditor::ButtonGreenLod1->GAlign.top = true;
-	SXLevelEditor::ButtonGreenLod1->Visible(false);
-	SXLevelEditor::ButtonGreenLod1->AddHandler(SXLevelEditor_ButtonGreenLod1_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticGreenLod2 = SXGUICrStatic("Lod2", 5, 80, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenLod2->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenLod2->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenLod2->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenLod2->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenLod2->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenLod2->GAlign.left = true;
-	SXLevelEditor::StaticGreenLod2->GAlign.top = true;
-	SXLevelEditor::StaticGreenLod2->Visible(false);
-
-	SXLevelEditor::EditGreenLod2 = SXGUICrEdit("0", 80, 80, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenLod2->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenLod2->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenLod2->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenLod2->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenLod2->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenLod2->GAlign.left = true;
-	SXLevelEditor::EditGreenLod2->GAlign.top = true;
-	SXLevelEditor::EditGreenLod2->Visible(false);
-
-	SXLevelEditor::ButtonGreenLod2 = SXGUICrButton("...", 285, 80, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenLod2->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGreenLod2->GAlign.left = true;
-	SXLevelEditor::ButtonGreenLod2->GAlign.top = true;
-	SXLevelEditor::ButtonGreenLod2->Visible(false);
-	SXLevelEditor::ButtonGreenLod2->AddHandler(SXLevelEditor_ButtonGreenLod2_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonGreenMask = SXGUICrButton("...", 285, 100, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenMask->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGreenMask->GAlign.left = true;
-	SXLevelEditor::ButtonGreenMask->GAlign.top = true;
-	SXLevelEditor::ButtonGreenMask->Visible(false);
-	SXLevelEditor::ButtonGreenMask->AddHandler(SXLevelEditor_ButtonGreenMask_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticGreenMask = SXGUICrStatic("Mask texture", 5, 100, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenMask->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenMask->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenMask->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenMask->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenMask->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenMask->GAlign.left = true;
-	SXLevelEditor::StaticGreenMask->GAlign.top = true;
-	SXLevelEditor::StaticGreenMask->Visible(false);
-
-	SXLevelEditor::EditGreenMask = SXGUICrEdit("0", 80, 100, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenMask->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenMask->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenMask->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenMask->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenMask->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenMask->GAlign.left = true;
-	SXLevelEditor::EditGreenMask->GAlign.top = true;
-	SXLevelEditor::EditGreenMask->Visible(false);
-
-	SXLevelEditor::StaticGreenNav = SXGUICrStatic("NavMesh:", 330, 20, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenNav->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenNav->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenNav->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenNav->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenNav->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenNav->GAlign.left = true;
-	SXLevelEditor::StaticGreenNav->GAlign.top = true;
-	SXLevelEditor::StaticGreenNav->Visible(false);
-
-	SXLevelEditor::EditGreenNav = SXGUICrEdit("", 380, 20, 200, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenNav->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenNav->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenNav->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenNav->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenNav->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenNav->GAlign.left = true;
-	SXLevelEditor::EditGreenNav->GAlign.top = true;
-	SXLevelEditor::EditGreenNav->Visible(false);
-
-	SXLevelEditor::ButtonGreenNav = SXGUICrButton("...", 585, 20, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenNav->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGreenNav->GAlign.left = true;
-	SXLevelEditor::ButtonGreenNav->GAlign.top = true;
-	SXLevelEditor::ButtonGreenNav->Visible(false);
-	SXLevelEditor::ButtonGreenNav->AddHandler(SXLevelEditor_ButtonGreenNav_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::TrackBarGreenDensity = SXGUICrTrackBar("", 330, 65, 280, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::TrackBarGreenDensity->SetMinMax(1, 100);
-	SXLevelEditor::TrackBarGreenDensity->SetTickFrequency(10);
-	SXLevelEditor::TrackBarGreenDensity->AddHandler(SXLevelEditor_TrackBarGreenDensity_MouseMove, WM_MOUSEMOVE);
-	SXLevelEditor::TrackBarGreenDensity->GAlign.left = true;
-	SXLevelEditor::TrackBarGreenDensity->GAlign.top = true;
-	SXLevelEditor::TrackBarGreenDensity->Visible(false);
-
-	SXLevelEditor::ButtonGreenGenerate = SXGUICrButton("Generate", 420, 87, 100, 30, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGreenGenerate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGreenGenerate->GAlign.left = true;
-	SXLevelEditor::ButtonGreenGenerate->GAlign.top = true;
-	SXLevelEditor::ButtonGreenGenerate->Visible(false);
-	SXLevelEditor::ButtonGreenGenerate->AddHandler(SXLevelEditor_ButtonGreenGenerate_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticGreenDensityText = SXGUICrStatic("Density:", 380, 45, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenDensityText->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenDensityText->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenDensityText->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenDensityText->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenDensityText->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenDensityText->GAlign.left = true;
-	SXLevelEditor::StaticGreenDensityText->GAlign.top = true;
-	SXLevelEditor::StaticGreenDensityText->Visible(false);
-
-	SXLevelEditor::StaticGreenDensityVal = SXGUICrStatic("0", 430, 45, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenDensityVal->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenDensityVal->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenDensityVal->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenDensityVal->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenDensityVal->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenDensityVal->GAlign.left = true;
-	SXLevelEditor::StaticGreenDensityVal->GAlign.top = true;
-	SXLevelEditor::StaticGreenDensityVal->Visible(false);
-
-	SXLevelEditor::RadioButtonGreenSelX = SXGUICrRadioButton("x", 765, 40, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGreenSelX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGreenSelX->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGreenSelX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGreenSelX->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGreenSelX->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGreenSelX->GAlign.left = true;
-	SXLevelEditor::RadioButtonGreenSelX->GAlign.top = true;
-	SXLevelEditor::RadioButtonGreenSelX->Visible(false);
-
-	SXLevelEditor::RadioButtonGreenSelY = SXGUICrRadioButton("y", 765, 60, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGreenSelY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGreenSelY->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGreenSelY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGreenSelY->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGreenSelY->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGreenSelY->GAlign.left = true;
-	SXLevelEditor::RadioButtonGreenSelY->GAlign.top = true;
-	SXLevelEditor::RadioButtonGreenSelY->Visible(false);
-
-	SXLevelEditor::RadioButtonGreenSelZ = SXGUICrRadioButton("z", 765, 80, 25, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonGreenSelZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonGreenSelZ->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonGreenSelZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonGreenSelZ->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonGreenSelZ->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonGreenSelZ->GAlign.left = true;
-	SXLevelEditor::RadioButtonGreenSelZ->GAlign.top = true;
-	SXLevelEditor::RadioButtonGreenSelZ->Visible(false);
+	SXLevelEditor::StaticGreenName = SXGUICrStatic("Name", 5, 20, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenName->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenName->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenName->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenName->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenName->setVisible(false);
+
+	SXLevelEditor::EditGreenName = SXGUICrEdit("0", 80, 20, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenName->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenName->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenName->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenName->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenName->setVisible(false);
+	SXLevelEditor::EditGreenName->addHandler(SXLevelEditor_EditGreenName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGreenName->addHandler(SXLevelEditor_EditGreenName_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticGreenModel = SXGUICrStatic("Model", 5, 40, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenModel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenModel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenModel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenModel->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenModel->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenModel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenModel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenModel->setVisible(false);
+
+	SXLevelEditor::EditGreenModel = SXGUICrEdit("0", 80, 40, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenModel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenModel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenModel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenModel->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenModel->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenModel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenModel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenModel->setVisible(false);
+
+	SXLevelEditor::ButtonGreenModel = SXGUICrButton("...", 285, 40, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenModel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGreenModel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenModel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenModel->setVisible(false);
+	SXLevelEditor::ButtonGreenModel->addHandler(SXLevelEditor_ButtonGreenModel_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticGreenLod1 = SXGUICrStatic("Lod1", 5, 60, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenLod1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenLod1->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenLod1->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenLod1->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenLod1->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenLod1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenLod1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenLod1->setVisible(false);
+
+	SXLevelEditor::EditGreenLod1 = SXGUICrEdit("0", 80, 60, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenLod1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenLod1->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenLod1->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenLod1->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenLod1->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenLod1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenLod1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenLod1->setVisible(false);
+
+	SXLevelEditor::ButtonGreenLod1 = SXGUICrButton("...", 285, 60, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenLod1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGreenLod1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenLod1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenLod1->setVisible(false);
+	SXLevelEditor::ButtonGreenLod1->addHandler(SXLevelEditor_ButtonGreenLod1_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticGreenLod2 = SXGUICrStatic("Lod2", 5, 80, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenLod2->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenLod2->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenLod2->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenLod2->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenLod2->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenLod2->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenLod2->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenLod2->setVisible(false);
+
+	SXLevelEditor::EditGreenLod2 = SXGUICrEdit("0", 80, 80, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenLod2->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenLod2->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenLod2->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenLod2->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenLod2->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenLod2->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenLod2->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenLod2->setVisible(false);
+
+	SXLevelEditor::ButtonGreenLod2 = SXGUICrButton("...", 285, 80, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenLod2->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGreenLod2->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenLod2->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenLod2->setVisible(false);
+	SXLevelEditor::ButtonGreenLod2->addHandler(SXLevelEditor_ButtonGreenLod2_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonGreenMask = SXGUICrButton("...", 285, 100, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenMask->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGreenMask->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenMask->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenMask->setVisible(false);
+	SXLevelEditor::ButtonGreenMask->addHandler(SXLevelEditor_ButtonGreenMask_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticGreenMask = SXGUICrStatic("Mask texture", 5, 100, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenMask->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenMask->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenMask->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenMask->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenMask->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenMask->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenMask->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenMask->setVisible(false);
+
+	SXLevelEditor::EditGreenMask = SXGUICrEdit("0", 80, 100, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenMask->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenMask->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenMask->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenMask->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenMask->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenMask->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenMask->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenMask->setVisible(false);
+
+	SXLevelEditor::StaticGreenNav = SXGUICrStatic("NavMesh:", 330, 20, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenNav->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenNav->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenNav->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenNav->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenNav->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenNav->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenNav->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenNav->setVisible(false);
+
+	SXLevelEditor::EditGreenNav = SXGUICrEdit("", 380, 20, 200, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenNav->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenNav->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenNav->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenNav->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenNav->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenNav->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenNav->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenNav->setVisible(false);
+
+	SXLevelEditor::ButtonGreenNav = SXGUICrButton("...", 585, 20, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenNav->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGreenNav->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenNav->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenNav->setVisible(false);
+	SXLevelEditor::ButtonGreenNav->addHandler(SXLevelEditor_ButtonGreenNav_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::TrackBarGreenDensity = SXGUICrTrackBar("", 330, 65, 280, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::TrackBarGreenDensity->setMinMax(1, 100);
+	SXLevelEditor::TrackBarGreenDensity->setTickFrequency(10);
+	SXLevelEditor::TrackBarGreenDensity->addHandler(SXLevelEditor_TrackBarGreenDensity_MouseMove, WM_MOUSEMOVE);
+	SXLevelEditor::TrackBarGreenDensity->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::TrackBarGreenDensity->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::TrackBarGreenDensity->setVisible(false);
+
+	SXLevelEditor::ButtonGreenGenerate = SXGUICrButton("Generate", 420, 87, 100, 30, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGreenGenerate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGreenGenerate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGreenGenerate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGreenGenerate->setVisible(false);
+	SXLevelEditor::ButtonGreenGenerate->addHandler(SXLevelEditor_ButtonGreenGenerate_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticGreenDensityText = SXGUICrStatic("Density:", 380, 45, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenDensityText->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenDensityText->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenDensityText->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenDensityText->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenDensityText->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenDensityText->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenDensityText->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenDensityText->setVisible(false);
+
+	SXLevelEditor::StaticGreenDensityVal = SXGUICrStatic("0", 430, 45, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenDensityVal->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenDensityVal->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenDensityVal->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenDensityVal->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenDensityVal->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenDensityVal->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenDensityVal->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenDensityVal->setVisible(false);
+
+	SXLevelEditor::RadioButtonGreenSelX = SXGUICrRadioButton("x", 765, 40, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGreenSelX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGreenSelX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGreenSelX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGreenSelX->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGreenSelX->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGreenSelX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGreenSelX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGreenSelX->setVisible(false);
+
+	SXLevelEditor::RadioButtonGreenSelY = SXGUICrRadioButton("y", 765, 60, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGreenSelY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGreenSelY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGreenSelY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGreenSelY->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGreenSelY->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGreenSelY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGreenSelY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGreenSelY->setVisible(false);
+
+	SXLevelEditor::RadioButtonGreenSelZ = SXGUICrRadioButton("z", 765, 80, 25, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonGreenSelZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonGreenSelZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonGreenSelZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonGreenSelZ->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonGreenSelZ->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonGreenSelZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonGreenSelZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonGreenSelZ->setVisible(false);
 	
-	SXLevelEditor::ComboBoxGreenSel = SXGUICrComboBox("", 620, 20, 150, 100, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ComboBoxGreenSel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ComboBoxGreenSel->SetColorText(0, 0, 0);
-	SXLevelEditor::ComboBoxGreenSel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ComboBoxGreenSel->SetTransparentTextBk(true);
-	SXLevelEditor::ComboBoxGreenSel->SetColorBrush(220, 220, 220);
-	SXLevelEditor::ComboBoxGreenSel->AddItem("single select");
-	SXLevelEditor::ComboBoxGreenSel->AddItem("single create");
-	SXLevelEditor::ComboBoxGreenSel->AddItem("multiple create");
-	SXLevelEditor::ComboBoxGreenSel->AddItem("single delete");
+	SXLevelEditor::ComboBoxGreenSel = SXGUICrComboBox(620, 20, 150, 100, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ComboBoxGreenSel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ComboBoxGreenSel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ComboBoxGreenSel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGreenSel->setTransparentTextBk(true);
+	SXLevelEditor::ComboBoxGreenSel->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::ComboBoxGreenSel->addItem("single select");
+	SXLevelEditor::ComboBoxGreenSel->addItem("single create");
+	SXLevelEditor::ComboBoxGreenSel->addItem("multiple create");
+	SXLevelEditor::ComboBoxGreenSel->addItem("single delete");
 	//SXLevelEditor::ComboBoxGreenSel->AddItem("multiple delete");
-	SXLevelEditor::ComboBoxGreenSel->SetSel(0);
-	SXLevelEditor::ComboBoxGreenSel->GAlign.left = true;
-	SXLevelEditor::ComboBoxGreenSel->GAlign.top = true;
-	SXLevelEditor::ComboBoxGreenSel->Visible(false);
+	SXLevelEditor::ComboBoxGreenSel->setSel(0);
+	SXLevelEditor::ComboBoxGreenSel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ComboBoxGreenSel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ComboBoxGreenSel->setVisible(false);
 	
-	SXLevelEditor::StaticGreenSelX = SXGUICrStatic("Width volume:", 620, 40, 75, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenSelX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenSelX->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenSelX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenSelX->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenSelX->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenSelX->GAlign.left = true;
-	SXLevelEditor::StaticGreenSelX->GAlign.top = true;
-	SXLevelEditor::StaticGreenSelX->Visible(false);
-
-	SXLevelEditor::StaticGreenSelY = SXGUICrStatic("Height volume:", 620, 60, 75, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenSelY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenSelY->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenSelY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenSelY->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenSelY->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenSelY->GAlign.left = true;
-	SXLevelEditor::StaticGreenSelY->GAlign.top = true;
-	SXLevelEditor::StaticGreenSelY->Visible(false);
-
-	SXLevelEditor::StaticGreenSelZ = SXGUICrStatic("Depth volume:", 620, 80, 75, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGreenSelZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGreenSelZ->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGreenSelZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGreenSelZ->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGreenSelZ->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGreenSelZ->GAlign.left = true;
-	SXLevelEditor::StaticGreenSelZ->GAlign.top = true;
-	SXLevelEditor::StaticGreenSelZ->Visible(false);
-
-	SXLevelEditor::EditGreenSelX = SXGUICrEdit("0", 695, 40, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenSelX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenSelX->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenSelX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenSelX->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenSelX->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenSelX->GAlign.left = true;
-	SXLevelEditor::EditGreenSelX->GAlign.top = true;
-	SXLevelEditor::EditGreenSelX->Visible(false);
-
-	SXLevelEditor::EditGreenSelY = SXGUICrEdit("0", 695, 60, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenSelY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenSelY->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenSelY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenSelY->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenSelY->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenSelY->GAlign.left = true;
-	SXLevelEditor::EditGreenSelY->GAlign.top = true;
-	SXLevelEditor::EditGreenSelY->Visible(false);
-
-	SXLevelEditor::EditGreenSelZ = SXGUICrEdit("0", 695, 80, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGreenSelZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGreenSelZ->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGreenSelZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGreenSelZ->SetTransparentTextBk(true);
-	SXLevelEditor::EditGreenSelZ->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGreenSelZ->GAlign.left = true;
-	SXLevelEditor::EditGreenSelZ->GAlign.top = true;
-	SXLevelEditor::EditGreenSelZ->Visible(false);
+	SXLevelEditor::StaticGreenSelX = SXGUICrStatic("Width volume:", 620, 40, 75, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenSelX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenSelX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenSelX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenSelX->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenSelX->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenSelX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenSelX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenSelX->setVisible(false);
+
+	SXLevelEditor::StaticGreenSelY = SXGUICrStatic("Height volume:", 620, 60, 75, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenSelY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenSelY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenSelY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenSelY->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenSelY->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenSelY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenSelY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenSelY->setVisible(false);
+
+	SXLevelEditor::StaticGreenSelZ = SXGUICrStatic("Depth volume:", 620, 80, 75, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGreenSelZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGreenSelZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGreenSelZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGreenSelZ->setTransparentTextBk(true);
+	SXLevelEditor::StaticGreenSelZ->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGreenSelZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGreenSelZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGreenSelZ->setVisible(false);
+
+	SXLevelEditor::EditGreenSelX = SXGUICrEdit("0", 695, 40, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenSelX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenSelX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenSelX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenSelX->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenSelX->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenSelX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenSelX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenSelX->setVisible(false);
+
+	SXLevelEditor::EditGreenSelY = SXGUICrEdit("0", 695, 60, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenSelY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenSelY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenSelY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenSelY->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenSelY->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenSelY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenSelY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenSelY->setVisible(false);
+
+	SXLevelEditor::EditGreenSelZ = SXGUICrEdit("0", 695, 80, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGreenSelZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGreenSelZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGreenSelZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenSelZ->setTransparentTextBk(true);
+	SXLevelEditor::EditGreenSelZ->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGreenSelZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGreenSelZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGreenSelZ->setVisible(false);
 	//}
 
 	//Game
 	//{
-	SXLevelEditor::StaticGameClass = SXGUICrStatic("Class:", 415, 15, 35, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameClass->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameClass->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameClass->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameClass->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameClass->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameClass->GAlign.left = true;
-	SXLevelEditor::StaticGameClass->GAlign.top = true;
-	SXLevelEditor::StaticGameClass->Visible(false);
-
-	SXLevelEditor::ComboBoxGameClass = SXGUICrComboBoxEx("", 455, 15, 230, 180, 0, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ComboBoxGameClass->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ComboBoxGameClass->SetColorText(0, 0, 0);
-	SXLevelEditor::ComboBoxGameClass->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ComboBoxGameClass->SetTransparentTextBk(true);
-	SXLevelEditor::ComboBoxGameClass->SetColorBrush(255, 255, 255);
-	SXLevelEditor::ComboBoxGameClass->GAlign.left = true;
-	SXLevelEditor::ComboBoxGameClass->GAlign.top = true;
-	SXLevelEditor::ComboBoxGameClass->Visible(false);
-	SXLevelEditor::ComboBoxGameClass->AddItem("");
-
-	SXLevelEditor::ButtonGameTab = SXGUICrButton("Connections", 695, 15, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGameTab->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGameTab->GAlign.left = true;
-	SXLevelEditor::ButtonGameTab->GAlign.top = true;
-	SXLevelEditor::ButtonGameTab->Visible(false);
-	SXLevelEditor::ButtonGameTab->AddHandler(SXLevelEditor_ButtonGameTab_Click, WM_LBUTTONUP);
+	SXLevelEditor::StaticGameClass = SXGUICrStatic("Class:", 415, 15, 35, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameClass->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameClass->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameClass->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameClass->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameClass->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameClass->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameClass->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameClass->setVisible(false);
+
+	SXLevelEditor::ComboBoxGameClass = SXGUICrComboBoxEx(455, 15, 230, 180, 0, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ComboBoxGameClass->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ComboBoxGameClass->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ComboBoxGameClass->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameClass->setTransparentTextBk(true);
+	SXLevelEditor::ComboBoxGameClass->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameClass->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ComboBoxGameClass->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ComboBoxGameClass->setVisible(false);
+	SXLevelEditor::ComboBoxGameClass->addItem("");
+
+	SXLevelEditor::ButtonGameTab = SXGUICrButton("Connections", 695, 15, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGameTab->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGameTab->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGameTab->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGameTab->setVisible(false);
+	SXLevelEditor::ButtonGameTab->addHandler(SXLevelEditor_ButtonGameTab_Click, WM_LBUTTONUP);
 	SXLevelEditor::GameTabVal = 0;
 
-	SXLevelEditor::ListViewGameClass = SXGUICrListView("", 5, 5, 400, 180, SXLevelEditor::GroupBoxData->GetHWND(), WndProcAllDefault, 0);
-	SXLevelEditor::ListViewGameClass->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ListViewGameClass->SetColorText(0, 0, 0);
-	SXLevelEditor::ListViewGameClass->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ListViewGameClass->SetTransparentTextBk(true);
-	SXLevelEditor::ListViewGameClass->SetColorBrush(255, 255, 255);
-	SXLevelEditor::ListViewGameClass->AddColumn("Property Name",199);
-	SXLevelEditor::ListViewGameClass->AddColumn("Value", 199);
-	SXLevelEditor::ListViewGameClass->GAlign.left = true;
-	SXLevelEditor::ListViewGameClass->GAlign.top = true;
-	SXLevelEditor::ListViewGameClass->Visible(false);
-
-	SXLevelEditor::ComboBoxGameValue = SXGUICrComboBox("", 415, 45, 270,180, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ComboBoxGameValue->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ComboBoxGameValue->SetColorText(0, 0, 0);
-	SXLevelEditor::ComboBoxGameValue->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ComboBoxGameValue->SetTransparentTextBk(true);
-	SXLevelEditor::ComboBoxGameValue->SetColorBrush(255, 255, 255);
-	SXLevelEditor::ComboBoxGameValue->GAlign.left = true;
-	SXLevelEditor::ComboBoxGameValue->GAlign.top = true;
-	SXLevelEditor::ComboBoxGameValue->Visible(false);
-
-	SXLevelEditor::EditGameValue = SXGUICrEdit("", 415, 45, 240, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGameValue->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGameValue->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGameValue->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGameValue->SetTransparentTextBk(true);
-	SXLevelEditor::EditGameValue->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGameValue->GAlign.left = true;
-	SXLevelEditor::EditGameValue->GAlign.top = true;
-	SXLevelEditor::EditGameValue->Visible(false);
-	SXLevelEditor::EditGameValue->AddHandler(SXLevelEditor_EditGameValue_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGameValue->AddHandler(SXLevelEditor_EditGameValue_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::ButtonGameValue = SXGUICrButton("...", 660, 45, 25, 15, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGameValue->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGameValue->GAlign.left = true;
-	SXLevelEditor::ButtonGameValue->GAlign.top = true;
-	SXLevelEditor::ButtonGameValue->Visible(false);
-	SXLevelEditor::ButtonGameValue->AddHandler(SXLevelEditor_ButtonGameValue_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::StaticGameHelp = SXGUICrStatic("Help:", 415, 65, 35, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameHelp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameHelp->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameHelp->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameHelp->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameHelp->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameHelp->GAlign.left = true;
-	SXLevelEditor::StaticGameHelp->GAlign.top = true;
-	SXLevelEditor::StaticGameHelp->Visible(false);
-
-	SXLevelEditor::MemoGameHelp = SXGUICrMemo("Help", 415, 85, 270, 95, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::MemoGameHelp->ReadOnly(true);
-	SXLevelEditor::MemoGameHelp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::MemoGameHelp->SetColorText(0, 0, 0);
-	SXLevelEditor::MemoGameHelp->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::MemoGameHelp->SetTransparentTextBk(true);
-	SXLevelEditor::MemoGameHelp->SetColorBrush(220, 220, 220);
-	SXLevelEditor::MemoGameHelp->GAlign.left = true;
-	SXLevelEditor::MemoGameHelp->GAlign.top = true;
-	SXLevelEditor::MemoGameHelp->Visible(false);
-
-	SXLevelEditor::ButtonGameCreate = SXGUICrButton("Create", 695, 165, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGameCreate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGameCreate->GAlign.left = true;
-	SXLevelEditor::ButtonGameCreate->GAlign.top = true;
-	SXLevelEditor::ButtonGameCreate->Visible(false);
-	SXLevelEditor::ButtonGameCreate->AddHandler(SXLevelEditor_ButtonGameCreate_Click, WM_LBUTTONUP);
+	SXLevelEditor::ListViewGameClass = SXGUICrListView(5, 5, 400, 180, SXLevelEditor::GroupBoxData->getHWND(), WndProcAllDefault, 0);
+	SXLevelEditor::ListViewGameClass->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ListViewGameClass->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ListViewGameClass->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ListViewGameClass->setTransparentTextBk(true);
+	SXLevelEditor::ListViewGameClass->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::ListViewGameClass->addColumn("Property Name",199);
+	SXLevelEditor::ListViewGameClass->addColumn("Value", 199);
+	SXLevelEditor::ListViewGameClass->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ListViewGameClass->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ListViewGameClass->setVisible(false);
+
+	SXLevelEditor::ComboBoxGameValue = SXGUICrComboBox(415, 45, 270, 180, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ComboBoxGameValue->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ComboBoxGameValue->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ComboBoxGameValue->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameValue->setTransparentTextBk(true);
+	SXLevelEditor::ComboBoxGameValue->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameValue->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ComboBoxGameValue->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ComboBoxGameValue->setVisible(false);
+
+	SXLevelEditor::EditGameValue = SXGUICrEdit("", 415, 45, 240, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGameValue->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGameValue->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGameValue->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGameValue->setTransparentTextBk(true);
+	SXLevelEditor::EditGameValue->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGameValue->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGameValue->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGameValue->setVisible(false);
+	SXLevelEditor::EditGameValue->addHandler(SXLevelEditor_EditGameValue_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGameValue->addHandler(SXLevelEditor_EditGameValue_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::ButtonGameValue = SXGUICrButton("...", 660, 45, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGameValue->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGameValue->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGameValue->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGameValue->setVisible(false);
+	SXLevelEditor::ButtonGameValue->addHandler(SXLevelEditor_ButtonGameValue_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::StaticGameHelp = SXGUICrStatic("Help:", 415, 65, 35, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameHelp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameHelp->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameHelp->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameHelp->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameHelp->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameHelp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameHelp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameHelp->setVisible(false);
+
+	SXLevelEditor::MemoGameHelp = SXGUICrMemo("Help", 415, 85, 270, 95, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::MemoGameHelp->setReadOnly(true);
+	SXLevelEditor::MemoGameHelp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::MemoGameHelp->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::MemoGameHelp->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::MemoGameHelp->setTransparentTextBk(true);
+	SXLevelEditor::MemoGameHelp->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::MemoGameHelp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::MemoGameHelp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::MemoGameHelp->setVisible(false);
+
+	SXLevelEditor::ButtonGameCreate = SXGUICrButton("Create", 695, 165, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGameCreate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGameCreate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGameCreate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGameCreate->setVisible(false);
+	SXLevelEditor::ButtonGameCreate->addHandler(SXLevelEditor_ButtonGameCreate_Click, WM_LBUTTONUP);
 
 	for (int i = 0; i < 8; ++i)
 	{
-		SXLevelEditor::CheckBoxGameFlags[i] = SXGUICrCheckBox("", 415, 45 + (15*i), 180, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0, false);
-		SXLevelEditor::CheckBoxGameFlags[i]->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-		SXLevelEditor::CheckBoxGameFlags[i]->SetColorText(0, 0, 0);
-		SXLevelEditor::CheckBoxGameFlags[i]->SetColorTextBk(255, 255, 255);
-		SXLevelEditor::CheckBoxGameFlags[i]->SetTransparentTextBk(true);
-		SXLevelEditor::CheckBoxGameFlags[i]->SetColorBrush(220, 220, 220);
-		SXLevelEditor::CheckBoxGameFlags[i]->GAlign.left = true;
-		SXLevelEditor::CheckBoxGameFlags[i]->GAlign.top = true;
-		SXLevelEditor::CheckBoxGameFlags[i]->Visible(false);
+		SXLevelEditor::CheckBoxGameFlags[i] = SXGUICrCheckBox("", 415, 45 + (15*i), 180, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0, false);
+		SXLevelEditor::CheckBoxGameFlags[i]->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+		SXLevelEditor::CheckBoxGameFlags[i]->setColorText(RGB(0, 0, 0));
+		SXLevelEditor::CheckBoxGameFlags[i]->setColorTextBk(RGB(255, 255, 255));
+		SXLevelEditor::CheckBoxGameFlags[i]->setTransparentTextBk(true);
+		SXLevelEditor::CheckBoxGameFlags[i]->setColorBrush(RGB(220, 220, 220));
+		SXLevelEditor::CheckBoxGameFlags[i]->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+		SXLevelEditor::CheckBoxGameFlags[i]->setFollowParentSide(SXGUI_SIDE_TOP, true);
+		SXLevelEditor::CheckBoxGameFlags[i]->setVisible(false);
 	}
 
 	for (int i = 0; i < 8; ++i)
 	{
-		SXLevelEditor::CheckBoxGameFlags[i + 8] = SXGUICrCheckBox("", 600, 45 + (15 * i), 180, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0, false);
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->SetColorText(0, 0, 0);
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->SetColorTextBk(255, 255, 255);
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->SetTransparentTextBk(true);
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->SetColorBrush(220, 220, 220);
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->GAlign.left = true;
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->GAlign.top = true;
-		SXLevelEditor::CheckBoxGameFlags[i + 8]->Visible(false);
+		SXLevelEditor::CheckBoxGameFlags[i + 8] = SXGUICrCheckBox("", 600, 45 + (15 * i), 180, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0, false);
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setColorText(RGB(0, 0, 0));
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setColorTextBk(RGB(255, 255, 255));
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setTransparentTextBk(true);
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setColorBrush(RGB(220, 220, 220));
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setFollowParentSide(SXGUI_SIDE_TOP, true);
+		SXLevelEditor::CheckBoxGameFlags[i + 8]->setVisible(false);
 	}
 
 
-	SXLevelEditor::ListViewGameConnections = SXGUICrListView("", 5, 5, 550, 180, SXLevelEditor::GroupBoxData->GetHWND(), WndProcAllDefault, 0);
-	SXLevelEditor::ListViewGameConnections->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ListViewGameConnections->SetColorText(0, 0, 0);
-	SXLevelEditor::ListViewGameConnections->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ListViewGameConnections->SetTransparentTextBk(true);
-	SXLevelEditor::ListViewGameConnections->SetColorBrush(255, 255, 255);
-	SXLevelEditor::ListViewGameConnections->AddColumn("Event", 110);
-	SXLevelEditor::ListViewGameConnections->AddColumn("Name", 110);
-	SXLevelEditor::ListViewGameConnections->AddColumn("Action", 110);
-	SXLevelEditor::ListViewGameConnections->AddColumn("Delay", 110);
-	SXLevelEditor::ListViewGameConnections->AddColumn("Parameter", 110);
-	SXLevelEditor::ListViewGameConnections->GAlign.left = true;
-	SXLevelEditor::ListViewGameConnections->GAlign.top = true;
-	SXLevelEditor::ListViewGameConnections->Visible(false);
-
-	SXLevelEditor::StaticGameConnectionsEvent = SXGUICrStatic("Event:", 560, 50, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameConnectionsEvent->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsEvent->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsEvent->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameConnectionsEvent->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameConnectionsEvent->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameConnectionsEvent->GAlign.left = true;
-	SXLevelEditor::StaticGameConnectionsEvent->GAlign.top = true;
-	SXLevelEditor::StaticGameConnectionsEvent->Visible(false);
-
-	SXLevelEditor::ComboBoxGameConnectionsEvent = SXGUICrComboBox("", 610, 50, 185, 180, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->SetColorText(0, 0, 0);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->SetTransparentTextBk(true);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->SetColorBrush(255, 255, 255);
-	SXLevelEditor::ComboBoxGameConnectionsEvent->GAlign.left = true;
-	SXLevelEditor::ComboBoxGameConnectionsEvent->GAlign.top = true;
-	SXLevelEditor::ComboBoxGameConnectionsEvent->Visible(false);
-
-	SXLevelEditor::StaticGameConnectionsName = SXGUICrStatic("Name:", 560, 75, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameConnectionsName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsName->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsName->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameConnectionsName->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameConnectionsName->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameConnectionsName->GAlign.left = true;
-	SXLevelEditor::StaticGameConnectionsName->GAlign.top = true;
-	SXLevelEditor::StaticGameConnectionsName->Visible(false);
-
-	SXLevelEditor::EditGameConnectionsName = SXGUICrEdit("", 610, 75, 185, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGameConnectionsName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGameConnectionsName->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGameConnectionsName->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGameConnectionsName->SetTransparentTextBk(true);
-	SXLevelEditor::EditGameConnectionsName->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGameConnectionsName->GAlign.left = true;
-	SXLevelEditor::EditGameConnectionsName->GAlign.top = true;
-	SXLevelEditor::EditGameConnectionsName->Visible(false);
-	SXLevelEditor::EditGameConnectionsName->AddHandler(SXLevelEditor_EditGameConnectionsName_IN, WM_KEYUP);
-	SXLevelEditor::EditGameConnectionsName->AddHandler(SXLevelEditor_EditGameConnectionsName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGameConnectionsName->AddHandler(SXLevelEditor_EditGameConnectionsName_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticGameConnectionsAction = SXGUICrStatic("Action:", 560, 95, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameConnectionsAction->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsAction->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsAction->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameConnectionsAction->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameConnectionsAction->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameConnectionsAction->GAlign.left = true;
-	SXLevelEditor::StaticGameConnectionsAction->GAlign.top = true;
-	SXLevelEditor::StaticGameConnectionsAction->Visible(false);
-
-	SXLevelEditor::ComboBoxGameConnectionsAction = SXGUICrComboBox("", 610, 95, 185, 135, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ComboBoxGameConnectionsAction->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ComboBoxGameConnectionsAction->SetColorText(0, 0, 0);
-	SXLevelEditor::ComboBoxGameConnectionsAction->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::ComboBoxGameConnectionsAction->SetTransparentTextBk(true);
-	SXLevelEditor::ComboBoxGameConnectionsAction->SetColorBrush(255, 255, 255);
-	SXLevelEditor::ComboBoxGameConnectionsAction->GAlign.left = true;
-	SXLevelEditor::ComboBoxGameConnectionsAction->GAlign.top = true;
-	SXLevelEditor::ComboBoxGameConnectionsAction->Visible(false);
-
-	SXLevelEditor::StaticGameConnectionsDelay = SXGUICrStatic("Delay:", 560, 120, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameConnectionsDelay->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsDelay->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsDelay->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameConnectionsDelay->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameConnectionsDelay->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameConnectionsDelay->GAlign.left = true;
-	SXLevelEditor::StaticGameConnectionsDelay->GAlign.top = true;
-	SXLevelEditor::StaticGameConnectionsDelay->Visible(false);
-
-	SXLevelEditor::EditGameConnectionsDelay = SXGUICrEdit("", 610, 120, 185, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGameConnectionsDelay->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGameConnectionsDelay->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGameConnectionsDelay->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGameConnectionsDelay->SetTransparentTextBk(true);
-	SXLevelEditor::EditGameConnectionsDelay->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGameConnectionsDelay->GAlign.left = true;
-	SXLevelEditor::EditGameConnectionsDelay->GAlign.top = true;
-	SXLevelEditor::EditGameConnectionsDelay->Visible(false);
-	SXLevelEditor::EditGameConnectionsDelay->AddHandler(SXLevelEditor_EditGameConnections_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGameConnectionsDelay->AddHandler(SXLevelEditor_EditGameConnections_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticGameConnectionsParameter = SXGUICrStatic("Parameter:", 560, 140, 50, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticGameConnectionsParameter->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsParameter->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticGameConnectionsParameter->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticGameConnectionsParameter->SetTransparentTextBk(true);
-	SXLevelEditor::StaticGameConnectionsParameter->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticGameConnectionsParameter->GAlign.left = true;
-	SXLevelEditor::StaticGameConnectionsParameter->GAlign.top = true;
-	SXLevelEditor::StaticGameConnectionsParameter->Visible(false);
-
-	SXLevelEditor::EditGameConnectionsParameter = SXGUICrEdit("", 610, 140, 185, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditGameConnectionsParameter->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditGameConnectionsParameter->SetColorText(0, 0, 0);
-	SXLevelEditor::EditGameConnectionsParameter->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditGameConnectionsParameter->SetTransparentTextBk(true);
-	SXLevelEditor::EditGameConnectionsParameter->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditGameConnectionsParameter->GAlign.left = true;
-	SXLevelEditor::EditGameConnectionsParameter->GAlign.top = true;
-	SXLevelEditor::EditGameConnectionsParameter->Visible(false);
-	SXLevelEditor::EditGameConnectionsParameter->AddHandler(SXLevelEditor_EditGameConnections_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditGameConnectionsParameter->AddHandler(SXLevelEditor_EditGameConnections_Enter, WM_KILLFOCUS);
+	SXLevelEditor::ListViewGameConnections = SXGUICrListView(5, 5, 550, 180, SXLevelEditor::GroupBoxData->getHWND(), WndProcAllDefault, 0);
+	SXLevelEditor::ListViewGameConnections->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ListViewGameConnections->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ListViewGameConnections->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ListViewGameConnections->setTransparentTextBk(true);
+	SXLevelEditor::ListViewGameConnections->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::ListViewGameConnections->addColumn("Event", 110);
+	SXLevelEditor::ListViewGameConnections->addColumn("Name", 110);
+	SXLevelEditor::ListViewGameConnections->addColumn("Action", 110);
+	SXLevelEditor::ListViewGameConnections->addColumn("Delay", 110);
+	SXLevelEditor::ListViewGameConnections->addColumn("Parameter", 110);
+	SXLevelEditor::ListViewGameConnections->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ListViewGameConnections->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ListViewGameConnections->setVisible(false);
+
+	SXLevelEditor::StaticGameConnectionsEvent = SXGUICrStatic("Event:", 560, 50, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameConnectionsEvent->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameConnectionsEvent->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameConnectionsEvent->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameConnectionsEvent->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameConnectionsEvent->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameConnectionsEvent->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameConnectionsEvent->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameConnectionsEvent->setVisible(false);
+
+	SXLevelEditor::ComboBoxGameConnectionsEvent = SXGUICrComboBox(610, 50, 185, 180, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setTransparentTextBk(true);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ComboBoxGameConnectionsEvent->setVisible(false);
+
+	SXLevelEditor::StaticGameConnectionsName = SXGUICrStatic("Name:", 560, 75, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameConnectionsName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameConnectionsName->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameConnectionsName->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameConnectionsName->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameConnectionsName->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameConnectionsName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameConnectionsName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameConnectionsName->setVisible(false);
+
+	SXLevelEditor::EditGameConnectionsName = SXGUICrEdit("", 610, 75, 185, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGameConnectionsName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGameConnectionsName->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGameConnectionsName->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGameConnectionsName->setTransparentTextBk(true);
+	SXLevelEditor::EditGameConnectionsName->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGameConnectionsName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGameConnectionsName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGameConnectionsName->setVisible(false);
+	SXLevelEditor::EditGameConnectionsName->addHandler(SXLevelEditor_EditGameConnectionsName_IN, WM_KEYUP);
+	SXLevelEditor::EditGameConnectionsName->addHandler(SXLevelEditor_EditGameConnectionsName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGameConnectionsName->addHandler(SXLevelEditor_EditGameConnectionsName_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticGameConnectionsAction = SXGUICrStatic("Action:", 560, 95, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameConnectionsAction->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameConnectionsAction->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameConnectionsAction->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameConnectionsAction->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameConnectionsAction->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameConnectionsAction->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameConnectionsAction->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameConnectionsAction->setVisible(false);
+
+	SXLevelEditor::ComboBoxGameConnectionsAction = SXGUICrComboBox(610, 95, 185, 135, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ComboBoxGameConnectionsAction->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ComboBoxGameConnectionsAction->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::ComboBoxGameConnectionsAction->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameConnectionsAction->setTransparentTextBk(true);
+	SXLevelEditor::ComboBoxGameConnectionsAction->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::ComboBoxGameConnectionsAction->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ComboBoxGameConnectionsAction->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ComboBoxGameConnectionsAction->setVisible(false);
+
+	SXLevelEditor::StaticGameConnectionsDelay = SXGUICrStatic("Delay:", 560, 120, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameConnectionsDelay->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameConnectionsDelay->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameConnectionsDelay->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameConnectionsDelay->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameConnectionsDelay->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameConnectionsDelay->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameConnectionsDelay->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameConnectionsDelay->setVisible(false);
+
+	SXLevelEditor::EditGameConnectionsDelay = SXGUICrEdit("", 610, 120, 185, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGameConnectionsDelay->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGameConnectionsDelay->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGameConnectionsDelay->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGameConnectionsDelay->setTransparentTextBk(true);
+	SXLevelEditor::EditGameConnectionsDelay->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGameConnectionsDelay->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGameConnectionsDelay->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGameConnectionsDelay->setVisible(false);
+	SXLevelEditor::EditGameConnectionsDelay->addHandler(SXLevelEditor_EditGameConnections_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGameConnectionsDelay->addHandler(SXLevelEditor_EditGameConnections_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticGameConnectionsParameter = SXGUICrStatic("Parameter:", 560, 140, 50, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticGameConnectionsParameter->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticGameConnectionsParameter->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticGameConnectionsParameter->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticGameConnectionsParameter->setTransparentTextBk(true);
+	SXLevelEditor::StaticGameConnectionsParameter->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticGameConnectionsParameter->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticGameConnectionsParameter->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticGameConnectionsParameter->setVisible(false);
+
+	SXLevelEditor::EditGameConnectionsParameter = SXGUICrEdit("", 610, 140, 185, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditGameConnectionsParameter->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditGameConnectionsParameter->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditGameConnectionsParameter->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditGameConnectionsParameter->setTransparentTextBk(true);
+	SXLevelEditor::EditGameConnectionsParameter->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditGameConnectionsParameter->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditGameConnectionsParameter->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditGameConnectionsParameter->setVisible(false);
+	SXLevelEditor::EditGameConnectionsParameter->addHandler(SXLevelEditor_EditGameConnections_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditGameConnectionsParameter->addHandler(SXLevelEditor_EditGameConnections_Enter, WM_KILLFOCUS);
 
 	
-	SXLevelEditor::ButtonGameConnectionsCreate = SXGUICrButton("Create", 565, 160, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGameConnectionsCreate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGameConnectionsCreate->GAlign.left = true;
-	SXLevelEditor::ButtonGameConnectionsCreate->GAlign.top = true;
-	SXLevelEditor::ButtonGameConnectionsCreate->Visible(false);
-	SXLevelEditor::ButtonGameConnectionsCreate->AddHandler(SXLevelEditor_ButtonGameConnectionsCreate_Click, WM_LBUTTONUP);
+	SXLevelEditor::ButtonGameConnectionsCreate = SXGUICrButton("Create", 565, 160, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGameConnectionsCreate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGameConnectionsCreate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGameConnectionsCreate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGameConnectionsCreate->setVisible(false);
+	SXLevelEditor::ButtonGameConnectionsCreate->addHandler(SXLevelEditor_ButtonGameConnectionsCreate_Click, WM_LBUTTONUP);
 	SXLevelEditor::isAddGameConections = false;
 
-	SXLevelEditor::ButtonGameConnectionsDelete = SXGUICrButton("Delete", 690, 160, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonGameConnectionsDelete->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonGameConnectionsDelete->GAlign.left = true;
-	SXLevelEditor::ButtonGameConnectionsDelete->GAlign.top = true;
-	SXLevelEditor::ButtonGameConnectionsDelete->Visible(false);
-	SXLevelEditor::ButtonGameConnectionsDelete->AddHandler(SXLevelEditor_ButtonGameConnectionsDelete_Click, WM_LBUTTONUP);
+	SXLevelEditor::ButtonGameConnectionsDelete = SXGUICrButton("Delete", 690, 160, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonGameConnectionsDelete->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonGameConnectionsDelete->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonGameConnectionsDelete->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonGameConnectionsDelete->setVisible(false);
+	SXLevelEditor::ButtonGameConnectionsDelete->addHandler(SXLevelEditor_ButtonGameConnectionsDelete_Click, WM_LBUTTONUP);
 
 	//}
 
 	//aigrid
 	//{
-	SXLevelEditor::StatiAIBBDimensions = SXGUICrStatic("Bound box dimensions:", 5, 10, 120, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StatiAIBBDimensions->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StatiAIBBDimensions->SetColorText(0, 0, 0);
-	SXLevelEditor::StatiAIBBDimensions->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StatiAIBBDimensions->SetTransparentTextBk(true);
-	SXLevelEditor::StatiAIBBDimensions->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StatiAIBBDimensions->GAlign.left = true;
-	SXLevelEditor::StatiAIBBDimensions->GAlign.top = true;
-	SXLevelEditor::StatiAIBBDimensions->Visible(false);
-
-	SXLevelEditor::StaticAIBBDimensionsWidth = SXGUICrStatic("Width:", 5, 30, 40, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsWidth->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsWidth->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsWidth->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBDimensionsWidth->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBDimensionsWidth->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBDimensionsWidth->GAlign.left = true;
-	SXLevelEditor::StaticAIBBDimensionsWidth->GAlign.top = true;
-	SXLevelEditor::StaticAIBBDimensionsWidth->Visible(false);
-
-	SXLevelEditor::EditAIBBDimensionsWidth = SXGUICrEdit("0", 50, 30, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIBBDimensionsWidth->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsWidth->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsWidth->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIBBDimensionsWidth->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIBBDimensionsWidth->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIBBDimensionsWidth->GAlign.left = true;
-	SXLevelEditor::EditAIBBDimensionsWidth->GAlign.top = true;
-	SXLevelEditor::EditAIBBDimensionsWidth->Visible(false);
-	SXLevelEditor::EditAIBBDimensionsWidth->AddHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsWidth->AddHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticAIBBDimensionsHeight = SXGUICrStatic("Height:", 5, 50, 40, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsHeight->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsHeight->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsHeight->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBDimensionsHeight->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBDimensionsHeight->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBDimensionsHeight->GAlign.left = true;
-	SXLevelEditor::StaticAIBBDimensionsHeight->GAlign.top = true;
-	SXLevelEditor::StaticAIBBDimensionsHeight->Visible(false);
-
-	SXLevelEditor::EditAIBBDimensionsHeight = SXGUICrEdit("0", 50, 50, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIBBDimensionsHeight->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsHeight->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsHeight->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIBBDimensionsHeight->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIBBDimensionsHeight->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIBBDimensionsHeight->GAlign.left = true;
-	SXLevelEditor::EditAIBBDimensionsHeight->GAlign.top = true;
-	SXLevelEditor::EditAIBBDimensionsHeight->Visible(false);
-	SXLevelEditor::EditAIBBDimensionsHeight->AddHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsHeight->AddHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticAIBBDimensionsDepth = SXGUICrStatic("Depth:", 5, 70, 40, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsDepth->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsDepth->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBDimensionsDepth->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBDimensionsDepth->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBDimensionsDepth->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBDimensionsDepth->GAlign.left = true;
-	SXLevelEditor::StaticAIBBDimensionsDepth->GAlign.top = true;
-	SXLevelEditor::StaticAIBBDimensionsDepth->Visible(false);
-
-	SXLevelEditor::EditAIBBDimensionsDepth = SXGUICrEdit("0", 50, 70, 70, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIBBDimensionsDepth->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsDepth->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsDepth->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIBBDimensionsDepth->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIBBDimensionsDepth->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIBBDimensionsDepth->GAlign.left = true;
-	SXLevelEditor::EditAIBBDimensionsDepth->GAlign.top = true;
-	SXLevelEditor::EditAIBBDimensionsDepth->Visible(false);
-	SXLevelEditor::EditAIBBDimensionsDepth->AddHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditAIBBDimensionsDepth->AddHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KILLFOCUS);
-
-
-	SXLevelEditor::StaticAIBBPos = SXGUICrStatic("Bound box position:", 5, 95, 100, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBPos->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBPos->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBPos->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBPos->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBPos->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBPos->GAlign.left = true;
-	SXLevelEditor::StaticAIBBPos->GAlign.top = true;
-	SXLevelEditor::StaticAIBBPos->Visible(false);
-
-	SXLevelEditor::StaticAIBBPosX = SXGUICrStatic("x:", 5, 115, 10, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBPosX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBPosX->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBPosX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBPosX->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBPosX->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBPosX->GAlign.left = true;
-	SXLevelEditor::StaticAIBBPosX->GAlign.top = true;
-	SXLevelEditor::StaticAIBBPosX->Visible(false);
-
-	SXLevelEditor::EditAIBBPosX = SXGUICrEdit("0", 15, 115, 65, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIBBPosX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIBBPosX->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIBBPosX->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIBBPosX->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIBBPosX->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIBBPosX->GAlign.left = true;
-	SXLevelEditor::EditAIBBPosX->GAlign.top = true;
-	SXLevelEditor::EditAIBBPosX->Visible(false);
-	SXLevelEditor::EditAIBBPosX->AddHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditAIBBPosX->AddHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticAIBBPosY = SXGUICrStatic("y:", 85, 115, 10, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBPosY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBPosY->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBPosY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBPosY->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBPosY->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBPosY->GAlign.left = true;
-	SXLevelEditor::StaticAIBBPosY->GAlign.top = true;
-	SXLevelEditor::StaticAIBBPosY->Visible(false);
-
-	SXLevelEditor::EditAIBBPosY = SXGUICrEdit("0", 95, 115, 65, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIBBPosY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIBBPosY->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIBBPosY->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIBBPosY->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIBBPosY->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIBBPosY->GAlign.left = true;
-	SXLevelEditor::EditAIBBPosY->GAlign.top = true;
-	SXLevelEditor::EditAIBBPosY->Visible(false);
-	SXLevelEditor::EditAIBBPosY->AddHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditAIBBPosY->AddHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::StaticAIBBPosZ = SXGUICrStatic("z:", 165, 115, 10, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIBBPosZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIBBPosZ->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIBBPosZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIBBPosZ->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIBBPosZ->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIBBPosZ->GAlign.left = true;
-	SXLevelEditor::StaticAIBBPosZ->GAlign.top = true;
-	SXLevelEditor::StaticAIBBPosZ->Visible(false);
-
-	SXLevelEditor::EditAIBBPosZ = SXGUICrEdit("0", 175, 115, 65, 15, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIBBPosZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIBBPosZ->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIBBPosZ->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIBBPosZ->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIBBPosZ->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIBBPosZ->GAlign.left = true;
-	SXLevelEditor::EditAIBBPosZ->GAlign.top = true;
-	SXLevelEditor::EditAIBBPosZ->Visible(false);
-	SXLevelEditor::EditAIBBPosZ->AddHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXLevelEditor::EditAIBBPosZ->AddHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KILLFOCUS);
-
-	SXLevelEditor::ButtonAIBBFinish = SXGUICrButton("Create bound box", 15, 140, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIBBFinish->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIBBFinish->GAlign.left = true;
-	SXLevelEditor::ButtonAIBBFinish->GAlign.top = true;
-	SXLevelEditor::ButtonAIBBFinish->Visible(false);
-	SXLevelEditor::ButtonAIBBFinish->AddHandler(SXLevelEditor_ButtonAIBBFinish_Click, WM_LBUTTONUP);
+	SXLevelEditor::StatiAIBBDimensions = SXGUICrStatic("Bound box dimensions:", 5, 10, 120, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StatiAIBBDimensions->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StatiAIBBDimensions->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StatiAIBBDimensions->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StatiAIBBDimensions->setTransparentTextBk(true);
+	SXLevelEditor::StatiAIBBDimensions->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StatiAIBBDimensions->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StatiAIBBDimensions->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StatiAIBBDimensions->setVisible(false);
+
+	SXLevelEditor::StaticAIBBDimensionsWidth = SXGUICrStatic("Width:", 5, 30, 40, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBDimensionsWidth->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBDimensionsWidth->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBDimensionsWidth->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBDimensionsWidth->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBDimensionsWidth->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBDimensionsWidth->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBDimensionsWidth->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBDimensionsWidth->setVisible(false);
+
+	SXLevelEditor::EditAIBBDimensionsWidth = SXGUICrEdit("0", 50, 30, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIBBDimensionsWidth->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIBBDimensionsWidth->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIBBDimensionsWidth->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBDimensionsWidth->setTransparentTextBk(true);
+	SXLevelEditor::EditAIBBDimensionsWidth->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBDimensionsWidth->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIBBDimensionsWidth->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIBBDimensionsWidth->setVisible(false);
+	SXLevelEditor::EditAIBBDimensionsWidth->addHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditAIBBDimensionsWidth->addHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticAIBBDimensionsHeight = SXGUICrStatic("Height:", 5, 50, 40, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBDimensionsHeight->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBDimensionsHeight->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBDimensionsHeight->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBDimensionsHeight->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBDimensionsHeight->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBDimensionsHeight->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBDimensionsHeight->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBDimensionsHeight->setVisible(false);
+
+	SXLevelEditor::EditAIBBDimensionsHeight = SXGUICrEdit("0", 50, 50, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIBBDimensionsHeight->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIBBDimensionsHeight->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIBBDimensionsHeight->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBDimensionsHeight->setTransparentTextBk(true);
+	SXLevelEditor::EditAIBBDimensionsHeight->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBDimensionsHeight->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIBBDimensionsHeight->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIBBDimensionsHeight->setVisible(false);
+	SXLevelEditor::EditAIBBDimensionsHeight->addHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditAIBBDimensionsHeight->addHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticAIBBDimensionsDepth = SXGUICrStatic("Depth:", 5, 70, 40, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBDimensionsDepth->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBDimensionsDepth->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBDimensionsDepth->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBDimensionsDepth->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBDimensionsDepth->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBDimensionsDepth->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBDimensionsDepth->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBDimensionsDepth->setVisible(false);
+
+	SXLevelEditor::EditAIBBDimensionsDepth = SXGUICrEdit("0", 50, 70, 70, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIBBDimensionsDepth->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIBBDimensionsDepth->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIBBDimensionsDepth->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBDimensionsDepth->setTransparentTextBk(true);
+	SXLevelEditor::EditAIBBDimensionsDepth->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBDimensionsDepth->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIBBDimensionsDepth->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIBBDimensionsDepth->setVisible(false);
+	SXLevelEditor::EditAIBBDimensionsDepth->addHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditAIBBDimensionsDepth->addHandler(SXLevelEditor_EditAIBBDimensions_Enter, WM_KILLFOCUS);
+
+
+	SXLevelEditor::StaticAIBBPos = SXGUICrStatic("Bound box position:", 5, 95, 100, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBPos->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBPos->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBPos->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBPos->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBPos->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBPos->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBPos->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBPos->setVisible(false);
+
+	SXLevelEditor::StaticAIBBPosX = SXGUICrStatic("x:", 5, 115, 10, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBPosX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBPosX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBPosX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBPosX->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBPosX->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBPosX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBPosX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBPosX->setVisible(false);
+
+	SXLevelEditor::EditAIBBPosX = SXGUICrEdit("0", 15, 115, 65, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIBBPosX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIBBPosX->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIBBPosX->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBPosX->setTransparentTextBk(true);
+	SXLevelEditor::EditAIBBPosX->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBPosX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIBBPosX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIBBPosX->setVisible(false);
+	SXLevelEditor::EditAIBBPosX->addHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditAIBBPosX->addHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticAIBBPosY = SXGUICrStatic("y:", 85, 115, 10, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBPosY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBPosY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBPosY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBPosY->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBPosY->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBPosY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBPosY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBPosY->setVisible(false);
+
+	SXLevelEditor::EditAIBBPosY = SXGUICrEdit("0", 95, 115, 65, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIBBPosY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIBBPosY->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIBBPosY->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBPosY->setTransparentTextBk(true);
+	SXLevelEditor::EditAIBBPosY->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBPosY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIBBPosY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIBBPosY->setVisible(false);
+	SXLevelEditor::EditAIBBPosY->addHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditAIBBPosY->addHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::StaticAIBBPosZ = SXGUICrStatic("z:", 165, 115, 10, 15, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIBBPosZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIBBPosZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIBBPosZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIBBPosZ->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIBBPosZ->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIBBPosZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIBBPosZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIBBPosZ->setVisible(false);
+
+	SXLevelEditor::EditAIBBPosZ = SXGUICrEdit("0", 175, 115, 65, 15, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIBBPosZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIBBPosZ->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIBBPosZ->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBPosZ->setTransparentTextBk(true);
+	SXLevelEditor::EditAIBBPosZ->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIBBPosZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIBBPosZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIBBPosZ->setVisible(false);
+	SXLevelEditor::EditAIBBPosZ->addHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXLevelEditor::EditAIBBPosZ->addHandler(SXLevelEditor_EditAIBBPos_Enter, WM_KILLFOCUS);
+
+	SXLevelEditor::ButtonAIBBFinish = SXGUICrButton("Create bound box", 15, 140, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIBBFinish->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIBBFinish->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIBBFinish->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIBBFinish->setVisible(false);
+	SXLevelEditor::ButtonAIBBFinish->addHandler(SXLevelEditor_ButtonAIBBFinish_Click, WM_LBUTTONUP);
 	
 
-	SXLevelEditor::RadioButtonAIQuadAdd = SXGUICrRadioButton("AI quad add", 250, 10, 130, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonAIQuadAdd->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonAIQuadAdd->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonAIQuadAdd->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonAIQuadAdd->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonAIQuadAdd->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonAIQuadAdd->GAlign.left = true;
-	SXLevelEditor::RadioButtonAIQuadAdd->GAlign.top = true;
-	SXLevelEditor::RadioButtonAIQuadAdd->Visible(false);
-
-	SXLevelEditor::RadioButtonAIQuadsMSel = SXGUICrRadioButton("AI quads multi select", 250, 40, 130, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonAIQuadsMSel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonAIQuadsMSel->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonAIQuadsMSel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonAIQuadsMSel->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonAIQuadsMSel->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonAIQuadsMSel->GAlign.left = true;
-	SXLevelEditor::RadioButtonAIQuadsMSel->GAlign.top = true;
-	SXLevelEditor::RadioButtonAIQuadsMSel->Visible(false);
-
-	SXLevelEditor::RadioButtonAIQuadsSelDel = SXGUICrRadioButton("AI quads select->delete", 250, 70, 130, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonAIQuadsSelDel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonAIQuadsSelDel->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonAIQuadsSelDel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonAIQuadsSelDel->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonAIQuadsSelDel->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonAIQuadsSelDel->GAlign.left = true;
-	SXLevelEditor::RadioButtonAIQuadsSelDel->GAlign.top = true;
-	SXLevelEditor::RadioButtonAIQuadsSelDel->Visible(false);
-
-	SXLevelEditor::ButtonAIQuadsDelSel = SXGUICrButton("AI quads delete selected", 250, 100, 130, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIQuadsDelSel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIQuadsDelSel->GAlign.left = true;
-	SXLevelEditor::ButtonAIQuadsDelSel->GAlign.top = true;
-	SXLevelEditor::ButtonAIQuadsDelSel->Visible(false);
-	SXLevelEditor::ButtonAIQuadsDelSel->AddHandler(SXLevelEditor_ButtonAIQuadsDelSel_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonAIGridGen = SXGUICrButton("AI grid generation", 250, 130, 130, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIGridGen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIGridGen->GAlign.left = true;
-	SXLevelEditor::ButtonAIGridGen->GAlign.top = true;
-	SXLevelEditor::ButtonAIGridGen->Visible(false);
-	SXLevelEditor::ButtonAIGridGen->AddHandler(SXLevelEditor_ButtonAIGridGen_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonAIGridClear = SXGUICrButton("AI grid clear", 250, 160, 130, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIGridClear->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIGridClear->GAlign.left = true;
-	SXLevelEditor::ButtonAIGridClear->GAlign.top = true;
-	SXLevelEditor::ButtonAIGridClear->Visible(false);
-	SXLevelEditor::ButtonAIGridClear->AddHandler(SXLevelEditor_ButtonAIGridClear_Click, WM_LBUTTONUP);
+	SXLevelEditor::RadioButtonAIQuadAdd = SXGUICrRadioButton("AI quad add", 250, 10, 130, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonAIQuadAdd->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonAIQuadAdd->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonAIQuadAdd->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonAIQuadAdd->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonAIQuadAdd->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonAIQuadAdd->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonAIQuadAdd->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonAIQuadAdd->setVisible(false);
+
+	SXLevelEditor::RadioButtonAIQuadsMSel = SXGUICrRadioButton("AI quads multi select", 250, 40, 130, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonAIQuadsMSel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonAIQuadsMSel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonAIQuadsMSel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonAIQuadsMSel->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonAIQuadsMSel->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonAIQuadsMSel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonAIQuadsMSel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonAIQuadsMSel->setVisible(false);
+
+	SXLevelEditor::RadioButtonAIQuadsSelDel = SXGUICrRadioButton("AI quads select->delete", 250, 70, 130, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonAIQuadsSelDel->setVisible(false);
+
+	SXLevelEditor::ButtonAIQuadsDelSel = SXGUICrButton("AI quads delete selected", 250, 100, 130, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIQuadsDelSel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIQuadsDelSel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIQuadsDelSel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIQuadsDelSel->setVisible(false);
+	SXLevelEditor::ButtonAIQuadsDelSel->addHandler(SXLevelEditor_ButtonAIQuadsDelSel_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonAIGridGen = SXGUICrButton("AI grid generation", 250, 130, 130, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIGridGen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIGridGen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIGridGen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIGridGen->setVisible(false);
+	SXLevelEditor::ButtonAIGridGen->addHandler(SXLevelEditor_ButtonAIGridGen_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonAIGridClear = SXGUICrButton("AI grid clear", 250, 160, 130, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIGridClear->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIGridClear->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIGridClear->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIGridClear->setVisible(false);
+	SXLevelEditor::ButtonAIGridClear->addHandler(SXLevelEditor_ButtonAIGridClear_Click, WM_LBUTTONUP);
 	
 	
-	SXLevelEditor::RadioButtonAIGPAdd = SXGUICrRadioButton("Graph point add", 390, 10, 110, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonAIGPAdd->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonAIGPAdd->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonAIGPAdd->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonAIGPAdd->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonAIGPAdd->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonAIGPAdd->GAlign.left = true;
-	SXLevelEditor::RadioButtonAIGPAdd->GAlign.top = true;
-	SXLevelEditor::RadioButtonAIGPAdd->Visible(false);
-
-	SXLevelEditor::RadioButtonAIGPDel = SXGUICrRadioButton("Graph point delete", 390, 40, 110, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::RadioButtonAIGPDel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::RadioButtonAIGPDel->SetColorText(0, 0, 0);
-	SXLevelEditor::RadioButtonAIGPDel->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::RadioButtonAIGPDel->SetTransparentTextBk(true);
-	SXLevelEditor::RadioButtonAIGPDel->SetColorBrush(220, 220, 220);
-	SXLevelEditor::RadioButtonAIGPDel->GAlign.left = true;
-	SXLevelEditor::RadioButtonAIGPDel->GAlign.top = true;
-	SXLevelEditor::RadioButtonAIGPDel->Visible(false);
-
-	SXLevelEditor::ButtonAIGPGen = SXGUICrButton("Graph points generate", 390, 70, 110, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIGPGen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIGPGen->GAlign.left = true;
-	SXLevelEditor::ButtonAIGPGen->GAlign.top = true;
-	SXLevelEditor::ButtonAIGPGen->Visible(false);
-	SXLevelEditor::ButtonAIGPGen->AddHandler(SXLevelEditor_ButtonAIGPGen_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::ButtonAIGPClear = SXGUICrButton("Graph points clear", 390, 100, 110, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIGPClear->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIGPClear->GAlign.left = true;
-	SXLevelEditor::ButtonAIGPClear->GAlign.top = true;
-	SXLevelEditor::ButtonAIGPClear->Visible(false);
-	SXLevelEditor::ButtonAIGPClear->AddHandler(SXLevelEditor_ButtonAIGPClear_Click, WM_LBUTTONUP);
-
-
-	SXLevelEditor::ButtonAIGridValidation = SXGUICrButton("AI grid validation", 510, 10, 100, 20, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIGridValidation->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIGridValidation->GAlign.left = true;
-	SXLevelEditor::ButtonAIGridValidation->GAlign.top = true;
-	SXLevelEditor::ButtonAIGridValidation->Visible(false);
-	SXLevelEditor::ButtonAIGridValidation->AddHandler(SXLevelEditor_ButtonAIGridValidation_Click, WM_LBUTTONUP);
-
-	SXLevelEditor::CheckBoxAIGridMarkedSplits = SXGUICrCheckBox("Marked splits", 510, 40, 100, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0, false);
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->SetColorText(0, 0, 0);
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->SetTransparentTextBk(true);
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->SetColorBrush(220, 220, 220);
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->GAlign.left = true;
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->GAlign.top = true;
-	SXLevelEditor::CheckBoxAIGridMarkedSplits->Visible(false);
-
-	SXLevelEditor::StaticAIStatistics = SXGUICrStatic("Statistics:", 620, 10, 100, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIStatistics->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIStatistics->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIStatistics->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIStatistics->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIStatistics->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIStatistics->GAlign.left = true;
-	SXLevelEditor::StaticAIStatistics->GAlign.top = true;
-	SXLevelEditor::StaticAIStatistics->Visible(false);
-
-	SXLevelEditor::StaticAIStatsCountQuads = SXGUICrStatic("Count quads:", 620, 40, 100, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIStatsCountQuads->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIStatsCountQuads->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIStatsCountQuads->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIStatsCountQuads->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIStatsCountQuads->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIStatsCountQuads->GAlign.left = true;
-	SXLevelEditor::StaticAIStatsCountQuads->GAlign.top = true;
-	SXLevelEditor::StaticAIStatsCountQuads->Visible(false);
-
-	SXLevelEditor::StaticAIStatsCountGP = SXGUICrStatic("Count graph points:", 620, 70, 100, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIStatsCountGP->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIStatsCountGP->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIStatsCountGP->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIStatsCountGP->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIStatsCountGP->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIStatsCountGP->GAlign.left = true;
-	SXLevelEditor::StaticAIStatsCountGP->GAlign.top = true;
-	SXLevelEditor::StaticAIStatsCountGP->Visible(false);
-
-	SXLevelEditor::StaticAIStatsCountSplits = SXGUICrStatic("Count splits:", 620, 100, 100, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::StaticAIStatsCountSplits->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::StaticAIStatsCountSplits->SetColorText(0, 0, 0);
-	SXLevelEditor::StaticAIStatsCountSplits->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::StaticAIStatsCountSplits->SetTransparentTextBk(true);
-	SXLevelEditor::StaticAIStatsCountSplits->SetColorBrush(220, 220, 220);
-	SXLevelEditor::StaticAIStatsCountSplits->GAlign.left = true;
-	SXLevelEditor::StaticAIStatsCountSplits->GAlign.top = true;
-	SXLevelEditor::StaticAIStatsCountSplits->Visible(false);
-
-	SXLevelEditor::EditAIStatsCountQuads = SXGUICrEdit("0", 720, 40, 70, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIStatsCountQuads->ReadOnly(true);
-	SXLevelEditor::EditAIStatsCountQuads->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIStatsCountQuads->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIStatsCountQuads->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIStatsCountQuads->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIStatsCountQuads->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIStatsCountQuads->GAlign.left = true;
-	SXLevelEditor::EditAIStatsCountQuads->GAlign.top = true;
-	SXLevelEditor::EditAIStatsCountQuads->Visible(false);
-
-	SXLevelEditor::EditAIStatsCountGP = SXGUICrEdit("0", 720, 70, 70, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIStatsCountGP->ReadOnly(true);
-	SXLevelEditor::EditAIStatsCountGP->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIStatsCountGP->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIStatsCountGP->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIStatsCountGP->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIStatsCountGP->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIStatsCountGP->GAlign.left = true;
-	SXLevelEditor::EditAIStatsCountGP->GAlign.top = true;
-	SXLevelEditor::EditAIStatsCountGP->Visible(false);
-
-	SXLevelEditor::EditAIStatsCountSplits = SXGUICrEdit("0", 720, 100, 70, 20, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::EditAIStatsCountSplits->ReadOnly(true);
-	SXLevelEditor::EditAIStatsCountSplits->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::EditAIStatsCountSplits->SetColorText(0, 0, 0);
-	SXLevelEditor::EditAIStatsCountSplits->SetColorTextBk(255, 255, 255);
-	SXLevelEditor::EditAIStatsCountSplits->SetTransparentTextBk(true);
-	SXLevelEditor::EditAIStatsCountSplits->SetColorBrush(255, 255, 255);
-	SXLevelEditor::EditAIStatsCountSplits->GAlign.left = true;
-	SXLevelEditor::EditAIStatsCountSplits->GAlign.top = true;
-	SXLevelEditor::EditAIStatsCountSplits->Visible(false);
-
-	SXLevelEditor::ButtonAIClearAll = SXGUICrButton("Clear all", 660, 130, 130, 30, 0, SXLevelEditor::GroupBoxData->GetHWND(), 0, 0);
-	SXLevelEditor::ButtonAIClearAll->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXLevelEditor::ButtonAIClearAll->GAlign.left = true;
-	SXLevelEditor::ButtonAIClearAll->GAlign.top = true;
-	SXLevelEditor::ButtonAIClearAll->Visible(false);
-	SXLevelEditor::ButtonAIClearAll->AddHandler(SXLevelEditor_ButtonAIClearAll_Click, WM_LBUTTONUP);
+	SXLevelEditor::RadioButtonAIGPAdd = SXGUICrRadioButton("Graph point add", 390, 10, 110, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonAIGPAdd->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonAIGPAdd->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonAIGPAdd->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonAIGPAdd->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonAIGPAdd->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonAIGPAdd->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonAIGPAdd->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonAIGPAdd->setVisible(false);
+
+	SXLevelEditor::RadioButtonAIGPDel = SXGUICrRadioButton("Graph point delete", 390, 40, 110, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::RadioButtonAIGPDel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::RadioButtonAIGPDel->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::RadioButtonAIGPDel->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::RadioButtonAIGPDel->setTransparentTextBk(true);
+	SXLevelEditor::RadioButtonAIGPDel->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::RadioButtonAIGPDel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::RadioButtonAIGPDel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::RadioButtonAIGPDel->setVisible(false);
+
+	SXLevelEditor::ButtonAIGPGen = SXGUICrButton("Graph points generate", 390, 70, 110, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIGPGen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIGPGen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIGPGen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIGPGen->setVisible(false);
+	SXLevelEditor::ButtonAIGPGen->addHandler(SXLevelEditor_ButtonAIGPGen_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::ButtonAIGPClear = SXGUICrButton("Graph points clear", 390, 100, 110, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIGPClear->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIGPClear->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIGPClear->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIGPClear->setVisible(false);
+	SXLevelEditor::ButtonAIGPClear->addHandler(SXLevelEditor_ButtonAIGPClear_Click, WM_LBUTTONUP);
+
+
+	SXLevelEditor::ButtonAIGridValidation = SXGUICrButton("AI grid validation", 510, 10, 100, 20, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIGridValidation->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIGridValidation->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIGridValidation->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIGridValidation->setVisible(false);
+	SXLevelEditor::ButtonAIGridValidation->addHandler(SXLevelEditor_ButtonAIGridValidation_Click, WM_LBUTTONUP);
+
+	SXLevelEditor::CheckBoxAIGridMarkedSplits = SXGUICrCheckBox("Marked splits", 510, 40, 100, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0, false);
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setTransparentTextBk(true);
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::CheckBoxAIGridMarkedSplits->setVisible(false);
+
+	SXLevelEditor::StaticAIStatistics = SXGUICrStatic("Statistics:", 620, 10, 100, 20, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIStatistics->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIStatistics->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIStatistics->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIStatistics->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIStatistics->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIStatistics->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIStatistics->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIStatistics->setVisible(false);
+
+	SXLevelEditor::StaticAIStatsCountQuads = SXGUICrStatic("Count quads:", 620, 40, 100, 20, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIStatsCountQuads->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIStatsCountQuads->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIStatsCountQuads->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIStatsCountQuads->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIStatsCountQuads->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIStatsCountQuads->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIStatsCountQuads->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIStatsCountQuads->setVisible(false);
+
+	SXLevelEditor::StaticAIStatsCountGP = SXGUICrStatic("Count graph points:", 620, 70, 100, 20, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIStatsCountGP->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIStatsCountGP->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIStatsCountGP->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIStatsCountGP->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIStatsCountGP->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIStatsCountGP->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIStatsCountGP->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIStatsCountGP->setVisible(false);
+
+	SXLevelEditor::StaticAIStatsCountSplits = SXGUICrStatic("Count splits:", 620, 100, 100, 20, SXLevelEditor::GroupBoxData->getHWND(), 0);
+	SXLevelEditor::StaticAIStatsCountSplits->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::StaticAIStatsCountSplits->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::StaticAIStatsCountSplits->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::StaticAIStatsCountSplits->setTransparentTextBk(true);
+	SXLevelEditor::StaticAIStatsCountSplits->setColorBrush(RGB(220, 220, 220));
+	SXLevelEditor::StaticAIStatsCountSplits->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::StaticAIStatsCountSplits->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::StaticAIStatsCountSplits->setVisible(false);
+
+	SXLevelEditor::EditAIStatsCountQuads = SXGUICrEdit("0", 720, 40, 70, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIStatsCountQuads->setReadOnly(true);
+	SXLevelEditor::EditAIStatsCountQuads->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIStatsCountQuads->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIStatsCountQuads->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIStatsCountQuads->setTransparentTextBk(true);
+	SXLevelEditor::EditAIStatsCountQuads->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIStatsCountQuads->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIStatsCountQuads->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIStatsCountQuads->setVisible(false);
+
+	SXLevelEditor::EditAIStatsCountGP = SXGUICrEdit("0", 720, 70, 70, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIStatsCountGP->setReadOnly(true);
+	SXLevelEditor::EditAIStatsCountGP->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIStatsCountGP->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIStatsCountGP->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIStatsCountGP->setTransparentTextBk(true);
+	SXLevelEditor::EditAIStatsCountGP->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIStatsCountGP->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIStatsCountGP->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIStatsCountGP->setVisible(false);
+
+	SXLevelEditor::EditAIStatsCountSplits = SXGUICrEdit("0", 720, 100, 70, 20, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::EditAIStatsCountSplits->setReadOnly(true);
+	SXLevelEditor::EditAIStatsCountSplits->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::EditAIStatsCountSplits->setColorText(RGB(0, 0, 0));
+	SXLevelEditor::EditAIStatsCountSplits->setColorTextBk(RGB(255, 255, 255));
+	SXLevelEditor::EditAIStatsCountSplits->setTransparentTextBk(true);
+	SXLevelEditor::EditAIStatsCountSplits->setColorBrush(RGB(255, 255, 255));
+	SXLevelEditor::EditAIStatsCountSplits->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::EditAIStatsCountSplits->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::EditAIStatsCountSplits->setVisible(false);
+
+	SXLevelEditor::ButtonAIClearAll = SXGUICrButton("Clear all", 660, 130, 130, 30, SXGUI_BUTTON_IMAGE_NONE, SXLevelEditor::GroupBoxData->getHWND(), 0, 0);
+	SXLevelEditor::ButtonAIClearAll->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXLevelEditor::ButtonAIClearAll->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXLevelEditor::ButtonAIClearAll->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXLevelEditor::ButtonAIClearAll->setVisible(false);
+	SXLevelEditor::ButtonAIClearAll->addHandler(SXLevelEditor_ButtonAIClearAll_Click, WM_LBUTTONUP);
 	//}
 }
 
@@ -2006,22 +2042,22 @@ void SXLevelEditor::LevelEditorUpdate(DWORD timeDelta)
 
 	char text[256];
 	sprintf(text, "%s%d", "Level poly: ", count_poly_geom + count_poly_green);
-	SXLevelEditor::StatusBar1->SetTextParts(0, text);
+	SXLevelEditor::StatusBar1->setPartText(0, text);
 
 	sprintf(text, "%s%d", "Geom poly: ", count_poly_geom);
-	SXLevelEditor::StatusBar1->SetTextParts(1, text);
+	SXLevelEditor::StatusBar1->setPartText(1, text);
 
 	sprintf(text, "%s%d", "Green poly: ", count_poly_green);
-	SXLevelEditor::StatusBar1->SetTextParts(2, text);
+	SXLevelEditor::StatusBar1->setPartText(2, text);
 
 	sprintf(text, "%s%d", "Count game object: ", SXGame_EntGetCount());
-	SXLevelEditor::StatusBar1->SetTextParts(3, text);
+	SXLevelEditor::StatusBar1->setPartText(3, text);
 
 	if (SXLevelEditor::IdMtl >= 0)
 	{
 		//sprintf(text, "%s", EDITORS_LEVEL_STATUSBAR_GAME_COUNT, SXGame_EntGetCount());
 		SML_MtlGetTexture(SXLevelEditor::IdMtl, text);
-		SXLevelEditor::StatusBar1->SetTextParts(4, text);
+		SXLevelEditor::StatusBar1->setPartText(4, text);
 	}
 
 
@@ -2112,7 +2148,7 @@ void SXLevelEditor::LevelEditorUpdate(DWORD timeDelta)
 	SGCore_GetDXDevice()->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
 
 	if (SXLevelEditor::AIGQuad)
-		SAIG_RenderQuads(SRender_GetCamera()->ObjFrustum, &vCamPos, *r_far);
+		SAIG_RenderQuads(SRender_GetCamera()->getFrustum(), &vCamPos, *r_far);
 
 	if (SXLevelEditor::AIGGraphPoint)
 		SAIG_RenderGraphPoints(&vCamPos, *r_far);
diff --git a/source/sxleveleditor/level_editor.h b/source/sxleveleditor/level_editor.h
index 43d277750..05682de07 100644
--- a/source/sxleveleditor/level_editor.h
+++ b/source/sxleveleditor/level_editor.h
@@ -30,7 +30,7 @@
 namespace SXLevelEditor
 {
 	extern ISXGUIBaseWnd* JobWindow;
-	extern ISXGUIMenu* MainMenu;
+	extern ISXGUIMenuWindow* MainMenu;
 	extern ISXGUIBaseWnd* RenderWindow;
 
 	extern ISXGUIToolBar* ToolBar1;
diff --git a/source/sxleveleditor/model_callback.cpp b/source/sxleveleditor/model_callback.cpp
index d366d1db0..3d15d5112 100644
--- a/source/sxleveleditor/model_callback.cpp
+++ b/source/sxleveleditor/model_callback.cpp
@@ -9,47 +9,47 @@ void SXLevelEditor::GeomActivateAll(bool bf)
 
 void SXLevelEditor::GeomActivateCreate(bool bf)
 {
-	SXLevelEditor::StaticGeomName->Visible(bf);
-	SXLevelEditor::StaticGeomModel->Visible(bf);
-	SXLevelEditor::StaticGeomLod1->Visible(bf);
-	SXLevelEditor::EditGeomName->Visible(bf);
-	SXLevelEditor::EditGeomName->SetText("");
-	SXLevelEditor::EditGeomModel->Visible(bf);
-	SXLevelEditor::EditGeomModel->SetText("");
-	SXLevelEditor::EditGeomLod1->Visible(bf);
-	SXLevelEditor::EditGeomLod1->SetText("");
-	SXLevelEditor::ButtonGeomLod1->Visible(bf);
-	SXLevelEditor::ButtonGeomModel->Visible(bf);
-	SXLevelEditor::ButtonGeomFinish->Visible(bf);
+	SXLevelEditor::StaticGeomName->setVisible(bf);
+	SXLevelEditor::StaticGeomModel->setVisible(bf);
+	SXLevelEditor::StaticGeomLod1->setVisible(bf);
+	SXLevelEditor::EditGeomName->setVisible(bf);
+	SXLevelEditor::EditGeomName->setText("");
+	SXLevelEditor::EditGeomModel->setVisible(bf);
+	SXLevelEditor::EditGeomModel->setText("");
+	SXLevelEditor::EditGeomLod1->setVisible(bf);
+	SXLevelEditor::EditGeomLod1->setText("");
+	SXLevelEditor::ButtonGeomLod1->setVisible(bf);
+	SXLevelEditor::ButtonGeomModel->setVisible(bf);
+	SXLevelEditor::ButtonGeomFinish->setVisible(bf);
 }
 
 
 void SXLevelEditor::GeomActivateTrans(bool bf)
 {
-	SXLevelEditor::StaticGeomPos->Visible(bf);
-	SXLevelEditor::EditGeomPosX->Visible(bf);
-	SXLevelEditor::EditGeomPosY->Visible(bf);
-	SXLevelEditor::EditGeomPosZ->Visible(bf);
-	SXLevelEditor::RadioButtonGeomPosX->Visible(bf);
-	SXLevelEditor::RadioButtonGeomPosY->Visible(bf);
-	SXLevelEditor::RadioButtonGeomPosZ->Visible(bf);
-	SXLevelEditor::StaticGeomRot->Visible(bf);
-	SXLevelEditor::EditGeomRotX->Visible(bf);
-	SXLevelEditor::EditGeomRotY->Visible(bf);
-	SXLevelEditor::EditGeomRotZ->Visible(bf);
-	SXLevelEditor::RadioButtonGeomRotX->Visible(bf);
-	SXLevelEditor::RadioButtonGeomRotY->Visible(bf);
-	SXLevelEditor::RadioButtonGeomRotZ->Visible(bf);
-	SXLevelEditor::StaticGeomScale->Visible(bf);
-	SXLevelEditor::EditGeomScaleX->Visible(bf);
-	SXLevelEditor::EditGeomScaleY->Visible(bf);
-	SXLevelEditor::EditGeomScaleZ->Visible(bf);
-	SXLevelEditor::RadioButtonGeomScaleX->Visible(bf);
-	SXLevelEditor::RadioButtonGeomScaleY->Visible(bf);
-	SXLevelEditor::RadioButtonGeomScaleZ->Visible(bf);
-
-	SXLevelEditor::EditGeomModel->Enable(true);
-	SXLevelEditor::ButtonGeomModel->Enable(true);
+	SXLevelEditor::StaticGeomPos->setVisible(bf);
+	SXLevelEditor::EditGeomPosX->setVisible(bf);
+	SXLevelEditor::EditGeomPosY->setVisible(bf);
+	SXLevelEditor::EditGeomPosZ->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomPosX->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomPosY->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomPosZ->setVisible(bf);
+	SXLevelEditor::StaticGeomRot->setVisible(bf);
+	SXLevelEditor::EditGeomRotX->setVisible(bf);
+	SXLevelEditor::EditGeomRotY->setVisible(bf);
+	SXLevelEditor::EditGeomRotZ->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomRotX->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomRotY->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomRotZ->setVisible(bf);
+	SXLevelEditor::StaticGeomScale->setVisible(bf);
+	SXLevelEditor::EditGeomScaleX->setVisible(bf);
+	SXLevelEditor::EditGeomScaleY->setVisible(bf);
+	SXLevelEditor::EditGeomScaleZ->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomScaleX->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomScaleY->setVisible(bf);
+	SXLevelEditor::RadioButtonGeomScaleZ->setVisible(bf);
+
+	SXLevelEditor::EditGeomModel->setEnable(true);
+	SXLevelEditor::ButtonGeomModel->setEnable(true);
 }
 
 void SXLevelEditor::GeomSel(int sel)
@@ -61,8 +61,8 @@ void SXLevelEditor::GeomSel(int sel)
 
 		SXLevelEditor::GeomActivateTrans(true);
 
-		SXLevelEditor::EditGeomModel->SetText(SGeom_ModelsMGetPathName(sel));
-		SXLevelEditor::EditGeomLod1->SetText(SGeom_ModelsMGetLodPath(sel));
+		SXLevelEditor::EditGeomModel->setText(SGeom_ModelsMGetPathName(sel));
+		SXLevelEditor::EditGeomLod1->setText(SGeom_ModelsMGetLodPath(sel));
 		char* tmpname = SGeom_ModelsMGetName(sel);
 		float3* pos = SGeom_ModelsMGetPosition(sel);
 		float3* rot = SGeom_ModelsMGetRotation(sel);
@@ -78,51 +78,51 @@ void SXLevelEditor::GeomSel(int sel)
 		SXLevelEditor::ObjAxesHelper->SetRotation(*rot);
 		SXLevelEditor::ObjAxesHelper->SetScale(float3(1,1,1));
 
-		SXLevelEditor::EditGeomName->SetText(tmpname);
+		SXLevelEditor::EditGeomName->setText(tmpname);
 
 		char tmpval[64];
 
 		sprintf(tmpval, "%f", pos->x);
-		SXLevelEditor::EditGeomPosX->SetText(tmpval);
+		SXLevelEditor::EditGeomPosX->setText(tmpval);
 
 		sprintf(tmpval, "%f", pos->y);
-		SXLevelEditor::EditGeomPosY->SetText(tmpval);
+		SXLevelEditor::EditGeomPosY->setText(tmpval);
 
 		sprintf(tmpval, "%f", pos->z);
-		SXLevelEditor::EditGeomPosZ->SetText(tmpval);
+		SXLevelEditor::EditGeomPosZ->setText(tmpval);
 
 
 		sprintf(tmpval, "%f", rot->x);
-		SXLevelEditor::EditGeomRotX->SetText(tmpval);
+		SXLevelEditor::EditGeomRotX->setText(tmpval);
 
 		sprintf(tmpval, "%f", rot->y);
-		SXLevelEditor::EditGeomRotY->SetText(tmpval);
+		SXLevelEditor::EditGeomRotY->setText(tmpval);
 
 		sprintf(tmpval, "%f", rot->z);
-		SXLevelEditor::EditGeomRotZ->SetText(tmpval);
+		SXLevelEditor::EditGeomRotZ->setText(tmpval);
 
 
 		sprintf(tmpval, "%f", scale->x);
-		SXLevelEditor::EditGeomScaleX->SetText(tmpval);
+		SXLevelEditor::EditGeomScaleX->setText(tmpval);
 
 		sprintf(tmpval, "%f", scale->y);
-		SXLevelEditor::EditGeomScaleY->SetText(tmpval);
+		SXLevelEditor::EditGeomScaleY->setText(tmpval);
 
 		sprintf(tmpval, "%f", scale->z);
-		SXLevelEditor::EditGeomScaleZ->SetText(tmpval);
+		SXLevelEditor::EditGeomScaleZ->setText(tmpval);
 
-		SXLevelEditor::EditGeomModel->Enable(false);
-		SXLevelEditor::ButtonGeomModel->Enable(false);
-		SXLevelEditor::ButtonGeomFinish->Visible(false);
+		SXLevelEditor::EditGeomModel->setEnable(false);
+		SXLevelEditor::ButtonGeomModel->setEnable(false);
+		SXLevelEditor::ButtonGeomFinish->setVisible(false);
 	}
 }
 
 LRESULT SXLevelEditor_EditGeomName_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 	if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GEOM)
 	{
-		SXLevelEditor::EditGeomName->GetText(SGeom_ModelsMGetName(sel), 64);
+		SXLevelEditor::EditGeomName->getText(SGeom_ModelsMGetName(sel), 64);
 	}
 
 	return 0;
@@ -133,11 +133,11 @@ LRESULT SXLevelEditor_ButtonGeomModel_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutMesh(tmppath, tmpname);
-		SXLevelEditor::EditGeomModel->SetText(tmpname);
+		SXLevelEditor::EditGeomModel->setText(tmpname);
 	}
 	return 0;
 }
@@ -147,12 +147,12 @@ LRESULT SXLevelEditor_ButtonGeomLod1_Click(HWND hwnd, UINT msg, WPARAM wParam, L
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_MESHES), FILE_FILTER_MODEL);
 	if (def_str_validate(tmppath))
 	{
 		StrCutMesh(tmppath, tmpname);
-		SXLevelEditor::EditGeomLod1->SetText(tmpname);
-		int sel = SXLevelEditor::ListBoxList->GetSel();
+		SXLevelEditor::EditGeomLod1->setText(tmpname);
+		int sel = SXLevelEditor::ListBoxList->getSel();
 		if (SXLevelEditor::ActiveGroupType == EDITORS_LEVEL_GROUPTYPE_GEOM)
 		{
 			if (sel >= 0 && sel < SGeom_ModelsGetCount())
@@ -172,9 +172,9 @@ LRESULT SXLevelEditor_ButtonGeomFinish_Click(HWND hwnd, UINT msg, WPARAM wParam,
 
 	char model_name[256];
 	model_name[0] = 0;
-	SXLevelEditor::EditGeomName->GetText(model_name, 256);
-	SXLevelEditor::EditGeomModel->GetText(path_model, 1024);
-	SXLevelEditor::EditGeomLod1->GetText(path_model_lod, 1024);
+	SXLevelEditor::EditGeomName->getText(model_name, 256);
+	SXLevelEditor::EditGeomModel->getText(path_model, 1024);
+	SXLevelEditor::EditGeomLod1->getText(path_model_lod, 1024);
 
 	if (!def_str_validate(path_model))
 	{
@@ -222,14 +222,14 @@ LRESULT SXLevelEditor_ButtonGeomFinish_Click(HWND hwnd, UINT msg, WPARAM wParam,
 
 	char tmpnamecountpoly[1024];
 	sprintf(tmpnamecountpoly, "%s | %d", SGeom_ModelsMGetName(SGeom_ModelsGetCount() - 1), SGeom_ModelsMGetCountPoly(SGeom_ModelsGetCount() - 1));
-	SXLevelEditor::ListBoxList->AddItem(tmpnamecountpoly);
+	SXLevelEditor::ListBoxList->addItem(tmpnamecountpoly);
 
 	SXLevelEditor::GeomActivateTrans(true);
-	SXLevelEditor::ListBoxList->SetSel(SXLevelEditor::ListBoxList->GetCountItem() - 1);
-	SXLevelEditor::GeomSel(SXLevelEditor::ListBoxList->GetSel());
+	SXLevelEditor::ListBoxList->setSel(SXLevelEditor::ListBoxList->getItemCount() - 1);
+	SXLevelEditor::GeomSel(SXLevelEditor::ListBoxList->getSel());
 
 	SXLevelEditor::ActiveGroupType = EDITORS_LEVEL_GROUPTYPE_GEOM;
-	SXLevelEditor::ActiveElement = SXLevelEditor::ListBoxList->GetSel();
+	SXLevelEditor::ActiveElement = SXLevelEditor::ListBoxList->getSel();
 
 	return 0;
 }
@@ -238,22 +238,22 @@ LRESULT SXLevelEditor_EditTransformPos_Enter(HWND hwnd, UINT msg, WPARAM wParam,
 {
 	if (SXLevelEditor::ActiveGroupType != EDITORS_LEVEL_GROUPTYPE_GEOM)
 		return 0;
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 	float3* pos = SGeom_ModelsMGetPosition(sel);
 	char tmpstr[64];
-	if (hwnd == SXLevelEditor::EditGeomPosX->GetHWND())
+	if (hwnd == SXLevelEditor::EditGeomPosX->getHWND())
 	{
-		SXLevelEditor::EditGeomPosX->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomPosX->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(pos->x));
 	}
-	else if (hwnd == SXLevelEditor::EditGeomPosY->GetHWND())
+	else if (hwnd == SXLevelEditor::EditGeomPosY->getHWND())
 	{
-		SXLevelEditor::EditGeomPosY->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomPosY->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(pos->y));
 	}
-	else if (hwnd == SXLevelEditor::EditGeomPosZ->GetHWND())
+	else if (hwnd == SXLevelEditor::EditGeomPosZ->getHWND())
 	{
-		SXLevelEditor::EditGeomPosZ->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomPosZ->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(pos->z));
 	}
 
@@ -266,22 +266,22 @@ LRESULT SXLevelEditor_EditTransformRot_Enter(HWND hwnd, UINT msg, WPARAM wParam,
 {
 	if (SXLevelEditor::ActiveGroupType != EDITORS_LEVEL_GROUPTYPE_GEOM)
 		return 0;
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 	float3* rot = SGeom_ModelsMGetRotation(sel);
 	char tmpstr[64];
-	if (hwnd == SXLevelEditor::EditGeomRotX->GetHWND())
+	if (hwnd == SXLevelEditor::EditGeomRotX->getHWND())
 	{
-		SXLevelEditor::EditGeomRotX->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomRotX->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(rot->x));
 	}
-	else if (hwnd == SXLevelEditor::EditGeomRotY->GetHWND())
+	else if (hwnd == SXLevelEditor::EditGeomRotY->getHWND())
 	{
-		SXLevelEditor::EditGeomRotY->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomRotY->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(rot->y));
 	}
-	else if (hwnd == SXLevelEditor::EditGeomRotZ->GetHWND())
+	else if (hwnd == SXLevelEditor::EditGeomRotZ->getHWND())
 	{
-		SXLevelEditor::EditGeomRotZ->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomRotZ->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(rot->z));
 	}
 
@@ -294,22 +294,22 @@ LRESULT SXLevelEditor_EditTransformScale_Enter(HWND hwnd, UINT msg, WPARAM wPara
 {
 	if (SXLevelEditor::ActiveGroupType != EDITORS_LEVEL_GROUPTYPE_GEOM)
 		return 0;
-	int sel = SXLevelEditor::ListBoxList->GetSel();
+	int sel = SXLevelEditor::ListBoxList->getSel();
 	float3* scale = SGeom_ModelsMGetScale(sel);
 	char tmpstr[64];
-	if (hwnd == SXLevelEditor::EditGeomScaleX->GetHWND())
+	if (hwnd == SXLevelEditor::EditGeomScaleX->getHWND())
 	{
-		SXLevelEditor::EditGeomScaleX->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomScaleX->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(scale->x));
 	}
-	else if (hwnd == SXLevelEditor::EditGeomScaleY->GetHWND())
+	else if (hwnd == SXLevelEditor::EditGeomScaleY->getHWND())
 	{
-		SXLevelEditor::EditGeomScaleY->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomScaleY->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(scale->y));
 	}
-	else if (hwnd == SXLevelEditor::EditGeomScaleZ->GetHWND())
+	else if (hwnd == SXLevelEditor::EditGeomScaleZ->getHWND())
 	{
-		SXLevelEditor::EditGeomScaleZ->GetText(tmpstr, 64);
+		SXLevelEditor::EditGeomScaleZ->getText(tmpstr, 64);
 		sscanf(tmpstr, "%f", &(scale->z));
 	}
 
diff --git a/source/sxleveleditor/sxleveleditor.cpp b/source/sxleveleditor/sxleveleditor.cpp
index a9d6d0f37..67c1c75ca 100644
--- a/source/sxleveleditor/sxleveleditor.cpp
+++ b/source/sxleveleditor/sxleveleditor.cpp
@@ -204,43 +204,43 @@ CTRL + ЛКМ – вращение \n
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
 {
 	SkyXEngine_PreviewCreate();
-	SXGUIRegClass::RegGroupBox();
+	SXGUIinit();
 	SXLevelEditor::InitAllElements();
 
-	SkyXEngine_Init(SXLevelEditor::RenderWindow->GetHWND(), SXLevelEditor::JobWindow->GetHWND());
-	SRender_GetCamera()->SetPosition(&float3(0, 0.5, -2));
-	SXLevelEditor::MainMenu->InsertPopupItem(4, "Weather", 4, 0);
-	SXLevelEditor::MainMenu->InsertItem(4, "none", SX_LE_MMENU_WEATHER_BEGIN_ID, 4);
-	SXLevelEditor::MainMenu->CheckItem(SX_LE_MMENU_WEATHER_BEGIN_ID, true);
+	SkyXEngine_Init(SXLevelEditor::RenderWindow->getHWND(), SXLevelEditor::JobWindow->getHWND());
+	SRender_GetCamera()->setPosition(&float3(0, 0.5, -2));
+	SXLevelEditor::MainMenu->insertPopupItem(4, "Weather", 4, 0);
+	SXLevelEditor::MainMenu->insertItem(4, "none", SX_LE_MMENU_WEATHER_BEGIN_ID, 4);
+	SXLevelEditor::MainMenu->setCheckItem(SX_LE_MMENU_WEATHER_BEGIN_ID, true);
 
-	SXLevelEditor::CheckBoxTBAIGBound->SetCheck(false);
+	SXLevelEditor::CheckBoxTBAIGBound->setCheck(false);
 	SXLevelEditor::AIGBound = false;
-	SXLevelEditor::CheckBoxTBAIGQuad->SetCheck(true);
+	SXLevelEditor::CheckBoxTBAIGQuad->setCheck(true);
 	SXLevelEditor::AIGQuad = true;
-	SXLevelEditor::CheckBoxTBAIGGraphPoint->SetCheck(true);
+	SXLevelEditor::CheckBoxTBAIGGraphPoint->setCheck(true);
 	SXLevelEditor::AIGGraphPoint = true;
 
-	SXLevelEditor::CheckBoxTBGrid->SetCheck(true);
-	SXLevelEditor::CheckBoxTBAxes->SetCheck(true);
-	SXLevelEditor::MainMenu->CheckItem(ID_VIEW_GRID, true);
-	SXLevelEditor::MainMenu->CheckItem(ID_VIEW_AXES, true);
+	SXLevelEditor::CheckBoxTBGrid->setCheck(true);
+	SXLevelEditor::CheckBoxTBAxes->setCheck(true);
+	SXLevelEditor::MainMenu->setCheckItem(ID_VIEW_GRID, true);
+	SXLevelEditor::MainMenu->setCheckItem(ID_VIEW_AXES, true);
 
-	SXLevelEditor::CheckBoxTBRColor->SetCheck(true);
-	SXLevelEditor::MainMenu->CheckItem(ID_FINALIMAGE_COLOR, true);
+	SXLevelEditor::CheckBoxTBRColor->setCheck(true);
+	SXLevelEditor::MainMenu->setCheckItem(ID_FINALIMAGE_COLOR, true);
 	Core_0SetCVarInt("r_final_image", DS_RT_COLOR);
 
-	SXLevelEditor::CheckBoxTBSelS->SetCheck(true);
+	SXLevelEditor::CheckBoxTBSelS->setCheck(true);
 	SXLevelEditor::SelSelection = true;
-	SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_SELECTION, true);
+	SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_SELECTION, true);
 
-	SXLevelEditor::CheckBoxTBSelCullBack->SetCheck(true);
+	SXLevelEditor::CheckBoxTBSelCullBack->setCheck(true);
 	SXLevelEditor::SelBackFacesCull = true;
-	SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_BACKFACESCULL, true);
+	SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_BACKFACESCULL, true);
 	SXLevelEditor::SelZTest = false;
 
-	SXLevelEditor::CheckBoxTBSelMesh->SetCheck(true);
+	SXLevelEditor::CheckBoxTBSelMesh->setCheck(true);
 	SXLevelEditor::SelMesh = true;
-	SXLevelEditor::MainMenu->CheckItem(ID_SELECTIONSETTINGS_MESH, true);
+	SXLevelEditor::MainMenu->setCheckItem(ID_SELECTIONSETTINGS_MESH, true);
 
 	SRender_EditorSetRenderGrid(true);
 	SRender_EditorSetRenderAxesStatic(true);
@@ -257,7 +257,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 	hf = FindFirstFile(tpath, &FindFileData);
 	if (hf != INVALID_HANDLE_VALUE){
 		do{
-			SXLevelEditor::MainMenu->InsertItem(4, FindFileData.cFileName, SX_LE_MMENU_WEATHER_BEGIN_ID + SXLevelEditor::MenuWeatherCount, 4);
+			SXLevelEditor::MainMenu->insertItem(4, FindFileData.cFileName, SX_LE_MMENU_WEATHER_BEGIN_ID + SXLevelEditor::MenuWeatherCount, 4);
 			++SXLevelEditor::MenuWeatherCount;
 			SXLevelEditor::MenuWeatherArr.push_back(FindFileData.cFileName);
 		} while (FindNextFile(hf, &FindFileData) != 0);
@@ -272,13 +272,14 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 	SXGame_EntGetClassList(listgc, countgc);
 	for (int i = 0; i < countgc; ++i)
 	{
-		SXLevelEditor::ComboBoxGameClass->AddItem(listgc[i]);
+		SXLevelEditor::ComboBoxGameClass->addItem(listgc[i]);
 	}
 	mem_delete_a(listgc);
 
 
 	SkyXEngine_PreviewKill();
-	SXLevelEditor::JobWindow->Visible(true);
+	SXLevelEditor::JobWindow->setVisible(true);
+
 	int result = SkyXEngine_CycleMain();
 
 	SXLevelEditor::LEdeleteData();
diff --git a/source/sxmaterialeditor/buttons_callback.cpp b/source/sxmaterialeditor/buttons_callback.cpp
index 71b23e309..7f9f9b419 100644
--- a/source/sxmaterialeditor/buttons_callback.cpp
+++ b/source/sxmaterialeditor/buttons_callback.cpp
@@ -6,11 +6,11 @@ LRESULT SXMaterialEditor_ButtonSkyBox_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char* tmpname = 0;
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		tmpname = tmppath + strlen(Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES));
-		SXMaterialEditor::EditSkyBox->SetText(tmpname);
+		SXMaterialEditor::EditSkyBox->setText(tmpname);
 
 		SGCore_SkyBoxLoadTex(tmpname);
 	}
@@ -28,11 +28,11 @@ LRESULT SXMaterialEditor_ButtonTex_Click(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditTex->SetText(tmpname);
+		SXMaterialEditor::EditTex->setText(tmpname);
 		
 		SML_MtlSetTexture(SXMaterialEditor::IDMat, tmpname);
 	}
@@ -44,11 +44,11 @@ LRESULT SXMaterialEditor_ButtonVS_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_SHADERS), FILE_FILTER_VS);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_SHADERS), FILE_FILTER_VS);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditVS->SetText(tmpname);
+		SXMaterialEditor::EditVS->setText(tmpname);
 
 		SML_MtlSetVS(SXMaterialEditor::IDMat, tmpname);
 	}
@@ -60,11 +60,11 @@ LRESULT SXMaterialEditor_ButtonPS_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_SHADERS), FILE_FILTER_PS);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_SHADERS), FILE_FILTER_PS);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditPS->SetText(tmpname);
+		SXMaterialEditor::EditPS->setText(tmpname);
 
 		SML_MtlSetPS(SXMaterialEditor::IDMat, tmpname);
 	}
@@ -76,11 +76,11 @@ LRESULT SXMaterialEditor_ButtonTexLighting_Click(HWND hwnd, UINT msg, WPARAM wPa
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditTexLighting->SetText(tmpname);
+		SXMaterialEditor::EditTexLighting->setText(tmpname);
 
 		SML_MtlSetTextureLighting(SXMaterialEditor::IDMat, tmpname);
 	}
@@ -92,11 +92,11 @@ LRESULT SXMaterialEditor_ButtonMask_Click(HWND hwnd, UINT msg, WPARAM wParam, LP
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditMask->SetText(tmpname);
+		SXMaterialEditor::EditMask->setText(tmpname);
 
 		SML_MtlSetMaskTex(SXMaterialEditor::IDMat, tmpname);
 	}
@@ -108,11 +108,11 @@ LRESULT SXMaterialEditor_ButtonMR_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditMR->SetText(tmpname);
+		SXMaterialEditor::EditMR->setText(tmpname);
 
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 0, tmpname);
 	}
@@ -124,11 +124,11 @@ LRESULT SXMaterialEditor_ButtonMG_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditMG->SetText(tmpname);
+		SXMaterialEditor::EditMG->setText(tmpname);
 
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 1, tmpname);
 	}
@@ -140,11 +140,11 @@ LRESULT SXMaterialEditor_ButtonMB_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditMB->SetText(tmpname);
+		SXMaterialEditor::EditMB->setText(tmpname);
 
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 2, tmpname);
 	}
@@ -156,11 +156,11 @@ LRESULT SXMaterialEditor_ButtonMA_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditMA->SetText(tmpname);
+		SXMaterialEditor::EditMA->setText(tmpname);
 
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 3, tmpname);
 	}
@@ -173,11 +173,11 @@ LRESULT SXMaterialEditor_ButtonDR_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditDR->SetText(tmpname);
+		SXMaterialEditor::EditDR->setText(tmpname);
 
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 0, tmpname);
 	}
@@ -189,11 +189,11 @@ LRESULT SXMaterialEditor_ButtonDG_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditDG->SetText(tmpname);
+		SXMaterialEditor::EditDG->setText(tmpname);
 
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 1, tmpname);
 	}
@@ -205,11 +205,11 @@ LRESULT SXMaterialEditor_ButtonDB_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditDB->SetText(tmpname);
+		SXMaterialEditor::EditDB->setText(tmpname);
 
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 2, tmpname);
 	}
@@ -221,11 +221,11 @@ LRESULT SXMaterialEditor_ButtonDA_Click(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXMaterialEditor::EditDA->SetText(tmpname);
+		SXMaterialEditor::EditDA->setText(tmpname);
 
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 3, tmpname);
 	}
diff --git a/source/sxmaterialeditor/common_callback.cpp b/source/sxmaterialeditor/common_callback.cpp
index f40d5bfd5..2b6f1f464 100644
--- a/source/sxmaterialeditor/common_callback.cpp
+++ b/source/sxmaterialeditor/common_callback.cpp
@@ -14,16 +14,16 @@ void SXMaterialEditor::MtlOpen()
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
 		SML_MtlReloadMaterial(SRender_SimModelGetIDMtl(), tmpname);
-		SGCore_LoadTexLoadTextures();
+		SGCore_LoadTexAllLoad();
 
 		char headertest[1024];
 		sprintf(headertest, "SXMaterialEditor - %s", tmpname);
-		SXMaterialEditor::JobWindow->SetText(headertest);
+		SXMaterialEditor::JobWindow->setText(headertest);
 		SXMaterialEditor::InitMtl(SRender_SimModelGetIDMtl());
 	}
 }
@@ -60,42 +60,42 @@ LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_COLOR);
 		SXMaterialEditor::FinalImageUncheckedMenu();
-		SXMaterialEditor::MainMenu->CheckItem(id, !SXMaterialEditor::MainMenu->GetCheckedItem(id));
+		SXMaterialEditor::MainMenu->setCheckItem(id, !SXMaterialEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_NORMALS)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_NORMAL);
 		SXMaterialEditor::FinalImageUncheckedMenu();
-		SXMaterialEditor::MainMenu->CheckItem(id, !SXMaterialEditor::MainMenu->GetCheckedItem(id));
+		SXMaterialEditor::MainMenu->setCheckItem(id, !SXMaterialEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_PARAMETERS)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_PARAM);
 		SXMaterialEditor::FinalImageUncheckedMenu();
-		SXMaterialEditor::MainMenu->CheckItem(id, !SXMaterialEditor::MainMenu->GetCheckedItem(id));
+		SXMaterialEditor::MainMenu->setCheckItem(id, !SXMaterialEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_AMBIENTDIFFUSE)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_AMBIENTDIFF);
 		SXMaterialEditor::FinalImageUncheckedMenu();
-		SXMaterialEditor::MainMenu->CheckItem(id, !SXMaterialEditor::MainMenu->GetCheckedItem(id));
+		SXMaterialEditor::MainMenu->setCheckItem(id, !SXMaterialEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_SPECULAR)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_SPECULAR);
 		SXMaterialEditor::FinalImageUncheckedMenu();
-		SXMaterialEditor::MainMenu->CheckItem(id, !SXMaterialEditor::MainMenu->GetCheckedItem(id));
+		SXMaterialEditor::MainMenu->setCheckItem(id, !SXMaterialEditor::MainMenu->getCheckedItem(id));
 	}
 	//
 	else if (id == ID_FINALIMAGE_LIGHTINGSCENE)
 	{
 		Core_0SetCVarInt("r_final_image", DS_RT_SCENELIGHT);
 		SXMaterialEditor::FinalImageUncheckedMenu();
-		SXMaterialEditor::MainMenu->CheckItem(id, !SXMaterialEditor::MainMenu->GetCheckedItem(id));
+		SXMaterialEditor::MainMenu->setCheckItem(id, !SXMaterialEditor::MainMenu->getCheckedItem(id));
 	}
 
 
@@ -108,65 +108,65 @@ LRESULT SXMaterialEditor_ToolBar_CallWmCommand(HWND hwnd, UINT msg, WPARAM wPara
 	HWND handle_elem = (HWND)(lParam);
 	if (Notification == BN_CLICKED)
 	{
-		if (SXMaterialEditor::ButtonTBOpen->GetHWND() == handle_elem)
+		if (SXMaterialEditor::ButtonTBOpen->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::MtlOpen();
 		}
-		else if (SXMaterialEditor::ButtonTBSave->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ButtonTBSave->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::MtlSave();
 		}
 
-		else if (SXMaterialEditor::CheckBoxTBCam->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBCam->getHWND() == handle_elem)
 		{
-			SRender_EditorCameraSetMove(SXMaterialEditor::CheckBoxTBCam->GetCheck());
+			SRender_EditorCameraSetMove(SXMaterialEditor::CheckBoxTBCam->getCheck());
 		}
-		else if (SXMaterialEditor::ButtonTBView->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ButtonTBView->getHWND() == handle_elem)
 		{
-			SRender_GetCamera()->SetPosition(&float3(0, 0, -1.2 * 100));
-			SRender_GetCamera()->SetOrientation(SMQuaternion(float3(0, 0, 1), 0));
+			SRender_GetCamera()->setPosition(&float3(0, 0, -1.2 * 100));
+			SRender_GetCamera()->setOrientation(&SMQuaternion(float3(0, 0, 1), 0));
 		}
 
-		else if (SXMaterialEditor::CheckBoxTBRColor->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBRColor->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::FinalImageUncheckedMenu();
-			SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_COLOR, true);
-			SXMaterialEditor::CheckBoxTBRColor->SetCheck(true);
+			SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_COLOR, true);
+			SXMaterialEditor::CheckBoxTBRColor->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_COLOR);
 		}
-		else if (SXMaterialEditor::CheckBoxTBRNormal->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBRNormal->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::FinalImageUncheckedMenu();
-			SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_NORMALS, true);
-			SXMaterialEditor::CheckBoxTBRNormal->SetCheck(true);
+			SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_NORMALS, true);
+			SXMaterialEditor::CheckBoxTBRNormal->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_NORMAL);
 		}
-		else if (SXMaterialEditor::CheckBoxTBRParam->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBRParam->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::FinalImageUncheckedMenu();
-			SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_PARAMETERS, true);
-			SXMaterialEditor::CheckBoxTBRParam->SetCheck(true);
+			SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_PARAMETERS, true);
+			SXMaterialEditor::CheckBoxTBRParam->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_PARAM);
 		}
-		else if (SXMaterialEditor::CheckBoxTBRAmDiff->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBRAmDiff->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::FinalImageUncheckedMenu();
-			SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, true);
-			SXMaterialEditor::CheckBoxTBRAmDiff->SetCheck(true);
+			SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, true);
+			SXMaterialEditor::CheckBoxTBRAmDiff->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_AMBIENTDIFF);
 		}
-		else if (SXMaterialEditor::CheckBoxTBRSpecular->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBRSpecular->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::FinalImageUncheckedMenu();
-			SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_SPECULAR, true);
-			SXMaterialEditor::CheckBoxTBRSpecular->SetCheck(true);
+			SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_SPECULAR, true);
+			SXMaterialEditor::CheckBoxTBRSpecular->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_SPECULAR);
 		}
-		else if (SXMaterialEditor::CheckBoxTBRLighting->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTBRLighting->getHWND() == handle_elem)
 		{
 			SXMaterialEditor::FinalImageUncheckedMenu();
-			SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_LIGHTINGSCENE, true);
-			SXMaterialEditor::CheckBoxTBRLighting->SetCheck(true);
+			SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_LIGHTINGSCENE, true);
+			SXMaterialEditor::CheckBoxTBRLighting->setCheck(true);
 			Core_0SetCVarInt("r_final_image", DS_RT_SCENELIGHT);
 		}
 	}
@@ -190,161 +190,161 @@ LRESULT SXMaterialEditor_JobWindow_CallWmCommand(HWND hwnd, UINT msg, WPARAM wPa
 	if (Notification == BN_CLICKED)
 	{
 		HWND handle_elem = (HWND)(lParam);
-		if (SXMaterialEditor::CheckBoxLighting->GetHWND() == handle_elem)
+		if (SXMaterialEditor::CheckBoxLighting->getHWND() == handle_elem)
 		{
-			SML_MtlSetLighting(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxLighting->GetCheck());
+			SML_MtlSetLighting(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxLighting->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxTexLighting->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxTexLighting->getHWND() == handle_elem)
 		{
-			SML_MtlSetIsTextureLighting(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxTexLighting->GetCheck());
+			SML_MtlSetIsTextureLighting(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxTexLighting->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSVVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSVVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_VIEW, SXMaterialEditor::CheckBoxDoSVVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_VIEW, SXMaterialEditor::CheckBoxDoSVVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSWVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLD, SXMaterialEditor::CheckBoxDoSWVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLD, SXMaterialEditor::CheckBoxDoSWVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSWPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLD, SXMaterialEditor::CheckBoxDoSWPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLD, SXMaterialEditor::CheckBoxDoSWPS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSVPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSVPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_VIEW, SXMaterialEditor::CheckBoxDoSVPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_VIEW, SXMaterialEditor::CheckBoxDoSVPS->getCheck());
 		}
 
-		else if (SXMaterialEditor::CheckBoxDoSPVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSPVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_PROJECTION, SXMaterialEditor::CheckBoxDoSPVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_PROJECTION, SXMaterialEditor::CheckBoxDoSPVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSPPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSPPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_PROJECTION, SXMaterialEditor::CheckBoxDoSPPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_PROJECTION, SXMaterialEditor::CheckBoxDoSPPS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSWVVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWVVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEW, SXMaterialEditor::CheckBoxDoSWVVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEW, SXMaterialEditor::CheckBoxDoSWVVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSWVPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWVPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEW, SXMaterialEditor::CheckBoxDoSWVPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEW, SXMaterialEditor::CheckBoxDoSWVPS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSCamposVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSCamposVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_CAMPOS, SXMaterialEditor::CheckBoxDoSCamposVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_CAMPOS, SXMaterialEditor::CheckBoxDoSCamposVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSWVPVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWVPVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ, SXMaterialEditor::CheckBoxDoSWVPVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ, SXMaterialEditor::CheckBoxDoSWVPVS->getCheck());
 		}
 
-		else if (SXMaterialEditor::CheckBoxDoSWVPPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWVPPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ, SXMaterialEditor::CheckBoxDoSWVPPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ, SXMaterialEditor::CheckBoxDoSWVPPS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSCamposPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSCamposPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_CAMPOS, SXMaterialEditor::CheckBoxDoSCamposPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_CAMPOS, SXMaterialEditor::CheckBoxDoSCamposPS->getCheck());
 		}
 
-		else if (SXMaterialEditor::CheckBoxUDVSInPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxUDVSInPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetUDVS_InPS(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxUDVSInPS->GetCheck());
+			SML_MtlSetUDVS_InPS(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxUDVSInPS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSTimeDeltaVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSTimeDeltaVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_TIMEDELTA, SXMaterialEditor::CheckBoxDoSTimeDeltaVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_TIMEDELTA, SXMaterialEditor::CheckBoxDoSTimeDeltaVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSTimeDeltaPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSTimeDeltaPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_TIMEDELTA, SXMaterialEditor::CheckBoxDoSTimeDeltaPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_TIMEDELTA, SXMaterialEditor::CheckBoxDoSTimeDeltaPS->getCheck());
 		}
 
-		else if (SXMaterialEditor::CheckBoxDoSWinSizeVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWinSizeVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_WINSIZE, SXMaterialEditor::CheckBoxDoSWinSizeVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_WINSIZE, SXMaterialEditor::CheckBoxDoSWinSizeVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxDoSWinSizePS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxDoSWinSizePS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_WINSIZE, SXMaterialEditor::CheckBoxDoSWinSizePS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_WINSIZE, SXMaterialEditor::CheckBoxDoSWinSizePS->getCheck());
 		}
 
 
-		else if (SXMaterialEditor::CheckBoxUDPSInVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxUDPSInVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetUDPS_InVS(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxUDPSInVS->GetCheck());
+			SML_MtlSetUDPS_InVS(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxUDPSInVS->getCheck());
 		}
 
-		else if (SXMaterialEditor::CheckBoxUDVS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxUDVS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_USERDATA, SXMaterialEditor::CheckBoxUDVS->GetCheck());
+			SML_MtlSetSTDVS(SXMaterialEditor::IDMat, MTL_SHADERSTD_USERDATA, SXMaterialEditor::CheckBoxUDVS->getCheck());
 		}
-		else if (SXMaterialEditor::CheckBoxUDPS->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxUDPS->getHWND() == handle_elem)
 		{
-			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_USERDATA, SXMaterialEditor::CheckBoxUDPS->GetCheck());
+			SML_MtlSetSTDPS(SXMaterialEditor::IDMat, MTL_SHADERSTD_USERDATA, SXMaterialEditor::CheckBoxUDPS->getCheck());
 		}
 
-		else if (SXMaterialEditor::CheckBoxAlphaTest->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::CheckBoxAlphaTest->getHWND() == handle_elem)
 		{
-			SML_MtlSetUsingAlphaTest(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxAlphaTest->GetCheck());
+			SML_MtlSetUsingAlphaTest(SXMaterialEditor::IDMat, SXMaterialEditor::CheckBoxAlphaTest->getCheck());
 		}
 	}
 	else if (Notification == CBN_SELCHANGE)
 	{
 		HWND handle_elem = (HWND)(lParam);
-		if (SXMaterialEditor::ComboBoxTypeModel->GetHWND() == handle_elem)
+		if (SXMaterialEditor::ComboBoxTypeModel->getHWND() == handle_elem)
 		{
-			SRender_SimModelSetType((MTLTYPE_MODEL)SXMaterialEditor::ComboBoxTypeModel->GetSel());
-			SML_MtlSetTypeModel(SRender_SimModelGetIDMtl(), (MTLTYPE_MODEL)SXMaterialEditor::ComboBoxTypeModel->GetSel());
+			SRender_SimModelSetType((MTLTYPE_MODEL)SXMaterialEditor::ComboBoxTypeModel->getSel());
+			SML_MtlSetTypeModel(SRender_SimModelGetIDMtl(), (MTLTYPE_MODEL)SXMaterialEditor::ComboBoxTypeModel->getSel());
 		}
-		else if (SXMaterialEditor::ComboBoxTestModel->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ComboBoxTestModel->getHWND() == handle_elem)
 		{
-			SRender_SimModelSetNumCurrModel(SXMaterialEditor::ComboBoxTestModel->GetSel());
+			SRender_SimModelSetNumCurrModel(SXMaterialEditor::ComboBoxTestModel->getSel());
 		}
-		else if (SXMaterialEditor::ComboBoxTypeRefract->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ComboBoxTypeRefract->getHWND() == handle_elem)
 		{
-			SML_MtlSetTypeTransparency(SXMaterialEditor::IDMat, (MTLTYPE_TRANSPARENCY)SXMaterialEditor::ComboBoxTypeRefract->GetSel());
+			SML_MtlSetTypeTransparency(SXMaterialEditor::IDMat, (MTLTYPE_TRANSPARENCY)SXMaterialEditor::ComboBoxTypeRefract->getSel());
 		}
-		else if (SXMaterialEditor::ComboBoxTypeReflect->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ComboBoxTypeReflect->getHWND() == handle_elem)
 		{
-			SML_MtlSetTypeReflection(SXMaterialEditor::IDMat, (MTLTYPE_REFLECT)SXMaterialEditor::ComboBoxTypeReflect->GetSel());
+			SML_MtlSetTypeReflection(SXMaterialEditor::IDMat, (MTLTYPE_REFLECT)SXMaterialEditor::ComboBoxTypeReflect->getSel());
 		}
-		else if (SXMaterialEditor::ComboBoxPhysic->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ComboBoxPhysic->getHWND() == handle_elem)
 		{
-			SML_MtlSetPhysicMaterial(SXMaterialEditor::IDMat, (MTLTYPE_PHYSIC)SXMaterialEditor::ComboBoxPhysic->GetSel());
+			SML_MtlSetPhysicMaterial(SXMaterialEditor::IDMat, (MTLTYPE_PHYSIC)SXMaterialEditor::ComboBoxPhysic->getSel());
 		}
-		else if (SXMaterialEditor::ComboBoxShaders->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ComboBoxShaders->getHWND() == handle_elem)
 		{
-			int sel = SXMaterialEditor::ComboBoxShaders->GetSel();
+			int sel = SXMaterialEditor::ComboBoxShaders->getSel();
 			if (sel > 0)
 			{
 				sel -= 1;
 				SML_MtlSetVS(SXMaterialEditor::IDMat, SXMaterialEditor::Shaders->GetVS(sel));
-				SXMaterialEditor::EditVS->SetText(SXMaterialEditor::Shaders->GetVS(sel));
+				SXMaterialEditor::EditVS->setText(SXMaterialEditor::Shaders->GetVS(sel));
 
 				SML_MtlSetPS(SXMaterialEditor::IDMat, SXMaterialEditor::Shaders->GetPS(sel));
-				SXMaterialEditor::EditPS->SetText(SXMaterialEditor::Shaders->GetPS(sel));
+				SXMaterialEditor::EditPS->setText(SXMaterialEditor::Shaders->GetPS(sel));
 			}
 		}
-		else if (SXMaterialEditor::ComboBoxParamL->GetHWND() == handle_elem)
+		else if (SXMaterialEditor::ComboBoxParamL->getHWND() == handle_elem)
 		{
-			int sel = SXMaterialEditor::ComboBoxParamL->GetSel();
+			int sel = SXMaterialEditor::ComboBoxParamL->getSel();
 			if (sel > 0)
 			{
 				sel -= 1;
 				SML_MtlSetThickness(SXMaterialEditor::IDMat, SXMaterialEditor::ParamL->GetThickness(sel));
-				SXMaterialEditor::EditThickness->SetText(String(SXMaterialEditor::ParamL->GetThickness(sel)).c_str());
-				SXMaterialEditor::TrackBarThickness->SetPos(SXMaterialEditor::ParamL->GetThickness(sel)*100);
+				SXMaterialEditor::EditThickness->setText(String(SXMaterialEditor::ParamL->GetThickness(sel)).c_str());
+				SXMaterialEditor::TrackBarThickness->setPos(SXMaterialEditor::ParamL->GetThickness(sel)*100);
 
 				SML_MtlSetRoughness(SXMaterialEditor::IDMat, SXMaterialEditor::ParamL->GetRoughness(sel));
-				SXMaterialEditor::EditRoughness->SetText(String(SXMaterialEditor::ParamL->GetRoughness(sel)).c_str());
-				SXMaterialEditor::TrackBarRoughness->SetPos(SXMaterialEditor::ParamL->GetRoughness(sel) * 100);
+				SXMaterialEditor::EditRoughness->setText(String(SXMaterialEditor::ParamL->GetRoughness(sel)).c_str());
+				SXMaterialEditor::TrackBarRoughness->setPos(SXMaterialEditor::ParamL->GetRoughness(sel) * 100);
 
 				SML_MtlSetF0(SXMaterialEditor::IDMat, SXMaterialEditor::ParamL->GetF0(sel));
-				SXMaterialEditor::EditF0->SetText(String(SXMaterialEditor::ParamL->GetF0(sel)).c_str());
-				SXMaterialEditor::TrackBarF0->SetPos(SXMaterialEditor::ParamL->GetF0(sel) * 100);
+				SXMaterialEditor::EditF0->setText(String(SXMaterialEditor::ParamL->GetF0(sel)).c_str());
+				SXMaterialEditor::TrackBarF0->setPos(SXMaterialEditor::ParamL->GetF0(sel) * 100);
 			}
 		}
 	}
@@ -358,225 +358,225 @@ void SXMaterialEditor::Nulling()
 	SXMaterialEditor::ComboBoxTypeModel;
 	SXMaterialEditor::ComboBoxTestModel;
 
-	SXMaterialEditor::ComboBoxPhysic->SetSel(0);
+	SXMaterialEditor::ComboBoxPhysic->setSel(0);
 
-	SXMaterialEditor::EditTex->SetText("");
-	SXMaterialEditor::EditVS->SetText("");
-	SXMaterialEditor::EditPS->SetText("");
+	SXMaterialEditor::EditTex->setText("");
+	SXMaterialEditor::EditVS->setText("");
+	SXMaterialEditor::EditPS->setText("");
 	
-	SXMaterialEditor::CheckBoxAlphaTest->SetCheck(false);
-	SXMaterialEditor::EditRoughness->SetText("0");
-	SXMaterialEditor::EditThickness->SetText("1");
-	SXMaterialEditor::EditF0->SetText("0");
-	SXMaterialEditor::EditMR->SetText("");
-	SXMaterialEditor::CheckBoxLighting->SetCheck(true);
-	SXMaterialEditor::TrackBarRoughness->SetPos(0);
-	SXMaterialEditor::TrackBarThickness->SetPos(100);
-	SXMaterialEditor::TrackBarF0->SetPos(0);
-	SXMaterialEditor::TrackBarUDVSX->SetPos(0);
-	SXMaterialEditor::EditTexLighting->SetText("");
-	SXMaterialEditor::CheckBoxTexLighting->SetCheck(false);
-	SXMaterialEditor::ComboBoxTypeRefract->SetSel(0);
-	SXMaterialEditor::CheckBoxDoSVVS->SetCheck(false);
-	SXMaterialEditor::ComboBoxTypeReflect->SetSel(0);
-	SXMaterialEditor::ComboBoxPhysic->SetSel(0);
-	SXMaterialEditor::EditMask->SetText("");
-	SXMaterialEditor::EditMG->SetText("");
-	SXMaterialEditor::EditMB->SetText("");
-	SXMaterialEditor::EditMA->SetText("");
-	SXMaterialEditor::EditDR->SetText("");
-	SXMaterialEditor::EditDG->SetText("");
-	SXMaterialEditor::EditDB->SetText("");
-	SXMaterialEditor::EditDA->SetText("");
-
-	SXMaterialEditor::CheckBoxDoSWVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSWPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSVVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSVPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSPVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSPPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSWVVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSWVPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetCheck(false);
-
-
-	SXMaterialEditor::CheckBoxUDVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxUDPS->SetCheck(false);
-
-	SXMaterialEditor::CheckBoxUDVSInPS->SetCheck(false);
-
-	SXMaterialEditor::EditUDVSX->SetText("0");
-	SXMaterialEditor::EditUDVSY->SetText("0");
-	SXMaterialEditor::TrackBarUDVSY->SetPos(0);
-	SXMaterialEditor::EditUDVSZ->SetText("0");
-	SXMaterialEditor::TrackBarUDVSZ->SetPos(0);
-	SXMaterialEditor::EditUDVSW->SetText("0");
-	SXMaterialEditor::TrackBarUDVSW->SetPos(0);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetCheck(false);
-	SXMaterialEditor::CheckBoxUDPSInVS->SetCheck(false);
-	SXMaterialEditor::EditUDPSX->SetText("0");
-	SXMaterialEditor::EditUDPSY->SetText("0");
-	SXMaterialEditor::TrackBarUDPSX->SetPos(0);
-	SXMaterialEditor::TrackBarUDPSY->SetPos(0);
-	SXMaterialEditor::EditUDPSZ->SetText("0");
-	SXMaterialEditor::TrackBarUDPSZ->SetPos(0);
-	SXMaterialEditor::EditUDPSW->SetText("0");
-	SXMaterialEditor::TrackBarUDPSW->SetPos(0);
-
-	SXMaterialEditor::CheckBoxUDPSInVS->SetCheck(false);
-	SXMaterialEditor::CheckBoxUDVSInPS->SetCheck(false);
+	SXMaterialEditor::CheckBoxAlphaTest->setCheck(false);
+	SXMaterialEditor::EditRoughness->setText("0");
+	SXMaterialEditor::EditThickness->setText("1");
+	SXMaterialEditor::EditF0->setText("0");
+	SXMaterialEditor::EditMR->setText("");
+	SXMaterialEditor::CheckBoxLighting->setCheck(true);
+	SXMaterialEditor::TrackBarRoughness->setPos(0);
+	SXMaterialEditor::TrackBarThickness->setPos(100);
+	SXMaterialEditor::TrackBarF0->setPos(0);
+	SXMaterialEditor::TrackBarUDVSX->setPos(0);
+	SXMaterialEditor::EditTexLighting->setText("");
+	SXMaterialEditor::CheckBoxTexLighting->setCheck(false);
+	SXMaterialEditor::ComboBoxTypeRefract->setSel(0);
+	SXMaterialEditor::CheckBoxDoSVVS->setCheck(false);
+	SXMaterialEditor::ComboBoxTypeReflect->setSel(0);
+	SXMaterialEditor::ComboBoxPhysic->setSel(0);
+	SXMaterialEditor::EditMask->setText("");
+	SXMaterialEditor::EditMG->setText("");
+	SXMaterialEditor::EditMB->setText("");
+	SXMaterialEditor::EditMA->setText("");
+	SXMaterialEditor::EditDR->setText("");
+	SXMaterialEditor::EditDG->setText("");
+	SXMaterialEditor::EditDB->setText("");
+	SXMaterialEditor::EditDA->setText("");
+
+	SXMaterialEditor::CheckBoxDoSWVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSWPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSVVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSVPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSPVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSPPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSWVVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSWVPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSCamposVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSCamposPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSWVPVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSWVPPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setCheck(false);
+
+
+	SXMaterialEditor::CheckBoxUDVS->setCheck(false);
+	SXMaterialEditor::CheckBoxUDPS->setCheck(false);
+
+	SXMaterialEditor::CheckBoxUDVSInPS->setCheck(false);
+
+	SXMaterialEditor::EditUDVSX->setText("0");
+	SXMaterialEditor::EditUDVSY->setText("0");
+	SXMaterialEditor::TrackBarUDVSY->setPos(0);
+	SXMaterialEditor::EditUDVSZ->setText("0");
+	SXMaterialEditor::TrackBarUDVSZ->setPos(0);
+	SXMaterialEditor::EditUDVSW->setText("0");
+	SXMaterialEditor::TrackBarUDVSW->setPos(0);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setCheck(false);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setCheck(false);
+	SXMaterialEditor::CheckBoxUDPSInVS->setCheck(false);
+	SXMaterialEditor::EditUDPSX->setText("0");
+	SXMaterialEditor::EditUDPSY->setText("0");
+	SXMaterialEditor::TrackBarUDPSX->setPos(0);
+	SXMaterialEditor::TrackBarUDPSY->setPos(0);
+	SXMaterialEditor::EditUDPSZ->setText("0");
+	SXMaterialEditor::TrackBarUDPSZ->setPos(0);
+	SXMaterialEditor::EditUDPSW->setText("0");
+	SXMaterialEditor::TrackBarUDPSW->setPos(0);
+
+	SXMaterialEditor::CheckBoxUDPSInVS->setCheck(false);
+	SXMaterialEditor::CheckBoxUDVSInPS->setCheck(false);
 }
 
 void SXMaterialEditor::InitMtl(ID id)
 {
 	SRender_SimModelSetType(SML_MtlGetTypeModel(id));
-	SXMaterialEditor::ComboBoxTypeModel->SetSel(SML_MtlGetTypeModel(id));
+	SXMaterialEditor::ComboBoxTypeModel->setSel(SML_MtlGetTypeModel(id));
 	SXMaterialEditor::ComboBoxTestModel;
 
-	SXMaterialEditor::ComboBoxPhysic->SetSel(SML_MtlGetPhysicMaterial(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::ComboBoxPhysic->setSel(SML_MtlGetPhysicMaterial(SRender_SimModelGetIDMtl()));
 
 	char tmppath[1024];
 	SML_MtlGetTexture(SRender_SimModelGetIDMtl(), tmppath);
-	SXMaterialEditor::EditTex->SetText(tmppath);
+	SXMaterialEditor::EditTex->setText(tmppath);
 	SML_MtlGetVS(SRender_SimModelGetIDMtl(), tmppath);
-	SXMaterialEditor::EditVS->SetText(tmppath);
+	SXMaterialEditor::EditVS->setText(tmppath);
 	SML_MtlGetPS(SRender_SimModelGetIDMtl(), tmppath);
-	SXMaterialEditor::EditPS->SetText(tmppath);
+	SXMaterialEditor::EditPS->setText(tmppath);
 
-	SXMaterialEditor::CheckBoxAlphaTest->SetCheck(SML_MtlGetUsingAlphaTest(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::CheckBoxAlphaTest->setCheck(SML_MtlGetUsingAlphaTest(SRender_SimModelGetIDMtl()));
 
-	SXMaterialEditor::EditRoughness->SetText(String(SML_MtlGetRoughness(SRender_SimModelGetIDMtl())).c_str());
-	SXMaterialEditor::EditThickness->SetText(String(SML_MtlGetThickness(SRender_SimModelGetIDMtl())).c_str());
-	SXMaterialEditor::EditF0->SetText(String(SML_MtlGetF0(SRender_SimModelGetIDMtl())).c_str());
-	SXMaterialEditor::EditPenetration->SetText(String(SML_MtlGetPenetration(SRender_SimModelGetIDMtl())).c_str());
+	SXMaterialEditor::EditRoughness->setText(String(SML_MtlGetRoughness(SRender_SimModelGetIDMtl())).c_str());
+	SXMaterialEditor::EditThickness->setText(String(SML_MtlGetThickness(SRender_SimModelGetIDMtl())).c_str());
+	SXMaterialEditor::EditF0->setText(String(SML_MtlGetF0(SRender_SimModelGetIDMtl())).c_str());
+	SXMaterialEditor::EditPenetration->setText(String(SML_MtlGetPenetration(SRender_SimModelGetIDMtl())).c_str());
 	
-	SXMaterialEditor::CheckBoxLighting->SetCheck(SML_MtlGetLighting(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::CheckBoxLighting->setCheck(SML_MtlGetLighting(SRender_SimModelGetIDMtl()));
 
-	SXMaterialEditor::TrackBarRoughness->SetPos(SML_MtlGetRoughness(SRender_SimModelGetIDMtl())*100.f);
-	SXMaterialEditor::TrackBarThickness->SetPos(SML_MtlGetThickness(SRender_SimModelGetIDMtl())*100.f);
-	SXMaterialEditor::TrackBarF0->SetPos(SML_MtlGetF0(SRender_SimModelGetIDMtl()) * 100.f);
-	SXMaterialEditor::TrackBarPenetration->SetPos(SML_MtlGetPenetration(SRender_SimModelGetIDMtl()) * 100.f);
+	SXMaterialEditor::TrackBarRoughness->setPos(SML_MtlGetRoughness(SRender_SimModelGetIDMtl())*100.f);
+	SXMaterialEditor::TrackBarThickness->setPos(SML_MtlGetThickness(SRender_SimModelGetIDMtl())*100.f);
+	SXMaterialEditor::TrackBarF0->setPos(SML_MtlGetF0(SRender_SimModelGetIDMtl()) * 100.f);
+	SXMaterialEditor::TrackBarPenetration->setPos(SML_MtlGetPenetration(SRender_SimModelGetIDMtl()) * 100.f);
 
 	SML_MtlGetTextureLighting(SRender_SimModelGetIDMtl(), tmppath);
-	SXMaterialEditor::EditTexLighting->SetText(tmppath);
-	SXMaterialEditor::CheckBoxTexLighting->SetCheck(SML_MtlGetIsTextureLighting(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::EditTexLighting->setText(tmppath);
+	SXMaterialEditor::CheckBoxTexLighting->setCheck(SML_MtlGetIsTextureLighting(SRender_SimModelGetIDMtl()));
 	
-	SXMaterialEditor::ComboBoxTypeRefract->SetSel(SML_MtlGetTypeTransparency(SRender_SimModelGetIDMtl()));
-	SXMaterialEditor::ComboBoxTypeReflect->SetSel(SML_MtlGetTypeReflection(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::ComboBoxTypeRefract->setSel(SML_MtlGetTypeTransparency(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::ComboBoxTypeReflect->setSel(SML_MtlGetTypeReflection(SRender_SimModelGetIDMtl()));
 
-	SXMaterialEditor::ComboBoxPhysic->SetSel(0);
+	SXMaterialEditor::ComboBoxPhysic->setSel(0);
 
 	SML_MtlGetMaskTex(SRender_SimModelGetIDMtl(), tmppath);
-	SXMaterialEditor::EditMask->SetText(tmppath);
+	SXMaterialEditor::EditMask->setText(tmppath);
 
 	SML_MtlGetMRTex(SRender_SimModelGetIDMtl(), 0, tmppath);
-	SXMaterialEditor::EditMR->SetText(tmppath);
+	SXMaterialEditor::EditMR->setText(tmppath);
 	SML_MtlGetMRTex(SRender_SimModelGetIDMtl(), 1, tmppath);
-	SXMaterialEditor::EditMG->SetText(tmppath);
+	SXMaterialEditor::EditMG->setText(tmppath);
 	SML_MtlGetMRTex(SRender_SimModelGetIDMtl(), 2, tmppath);
-	SXMaterialEditor::EditMB->SetText(tmppath);
+	SXMaterialEditor::EditMB->setText(tmppath);
 	SML_MtlGetMRTex(SRender_SimModelGetIDMtl(), 3, tmppath);
-	SXMaterialEditor::EditMA->SetText(tmppath);
+	SXMaterialEditor::EditMA->setText(tmppath);
 
 	SML_MtlGetDTex(SRender_SimModelGetIDMtl(), 0, tmppath);
-	SXMaterialEditor::EditDR->SetText(tmppath);
+	SXMaterialEditor::EditDR->setText(tmppath);
 	SML_MtlGetDTex(SRender_SimModelGetIDMtl(), 1, tmppath);
-	SXMaterialEditor::EditDG->SetText(tmppath);
+	SXMaterialEditor::EditDG->setText(tmppath);
 	SML_MtlGetDTex(SRender_SimModelGetIDMtl(), 2, tmppath);
-	SXMaterialEditor::EditDB->SetText(tmppath);
+	SXMaterialEditor::EditDB->setText(tmppath);
 	SML_MtlGetDTex(SRender_SimModelGetIDMtl(), 3, tmppath);
-	SXMaterialEditor::EditDA->SetText(tmppath);
+	SXMaterialEditor::EditDA->setText(tmppath);
 
-	SXMaterialEditor::CheckBoxDoSWVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLD));
-	SXMaterialEditor::CheckBoxDoSWPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLD));
+	SXMaterialEditor::CheckBoxDoSWVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLD));
+	SXMaterialEditor::CheckBoxDoSWPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLD));
 
-	SXMaterialEditor::CheckBoxDoSVVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_VIEW));
-	SXMaterialEditor::CheckBoxDoSVPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_VIEW));
+	SXMaterialEditor::CheckBoxDoSVVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_VIEW));
+	SXMaterialEditor::CheckBoxDoSVPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_VIEW));
 
-	SXMaterialEditor::CheckBoxDoSPVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_PROJECTION));
-	SXMaterialEditor::CheckBoxDoSPPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_PROJECTION));
+	SXMaterialEditor::CheckBoxDoSPVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_PROJECTION));
+	SXMaterialEditor::CheckBoxDoSPPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_PROJECTION));
 
-	SXMaterialEditor::CheckBoxDoSWVVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEW));
-	SXMaterialEditor::CheckBoxDoSWVPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEW));
+	SXMaterialEditor::CheckBoxDoSWVVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEW));
+	SXMaterialEditor::CheckBoxDoSWVPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEW));
 
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_CAMPOS));
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_CAMPOS));
+	SXMaterialEditor::CheckBoxDoSCamposVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_CAMPOS));
+	SXMaterialEditor::CheckBoxDoSCamposPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_CAMPOS));
 
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_TIMEDELTA));
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_TIMEDELTA));
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_TIMEDELTA));
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_TIMEDELTA));
 
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ));
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ));
+	SXMaterialEditor::CheckBoxDoSWVPVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ));
+	SXMaterialEditor::CheckBoxDoSWVPPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_MATRIX_WORLDVIEWPROJ));
 
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_WINSIZE));
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_WINSIZE));
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_WINSIZE));
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_WINSIZE));
 
-	SXMaterialEditor::CheckBoxUDVS->SetCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_USERDATA));
-	SXMaterialEditor::CheckBoxUDPS->SetCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_USERDATA));
+	SXMaterialEditor::CheckBoxUDVS->setCheck(SML_MtlGetSTDVS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_USERDATA));
+	SXMaterialEditor::CheckBoxUDPS->setCheck(SML_MtlGetSTDPS(SRender_SimModelGetIDMtl(), MTL_SHADERSTD_USERDATA));
 
 	//
 
 	//
-	SXMaterialEditor::CheckBoxUDVSInPS->SetCheck(false);
+	SXMaterialEditor::CheckBoxUDVSInPS->setCheck(false);
 
-	SXMaterialEditor::TrackBarUDVSX->SetPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 0) * 100.f);
-	SXMaterialEditor::EditUDVSX->SetText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 0)).c_str());
+	SXMaterialEditor::TrackBarUDVSX->setPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 0) * 100.f);
+	SXMaterialEditor::EditUDVSX->setText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 0)).c_str());
 
-	SXMaterialEditor::TrackBarUDVSY->SetPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 1) * 100.f);
-	SXMaterialEditor::EditUDVSY->SetText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 1)).c_str());
+	SXMaterialEditor::TrackBarUDVSY->setPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 1) * 100.f);
+	SXMaterialEditor::EditUDVSY->setText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 1)).c_str());
 	
-	SXMaterialEditor::TrackBarUDVSZ->SetPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 2) * 100.f);
-	SXMaterialEditor::EditUDVSZ->SetText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 2)).c_str());
+	SXMaterialEditor::TrackBarUDVSZ->setPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 2) * 100.f);
+	SXMaterialEditor::EditUDVSZ->setText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 2)).c_str());
 	
-	SXMaterialEditor::TrackBarUDVSW->SetPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 3) * 100.f);
-	SXMaterialEditor::EditUDVSW->SetText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 3)).c_str());
+	SXMaterialEditor::TrackBarUDVSW->setPos(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 3) * 100.f);
+	SXMaterialEditor::EditUDVSW->setText(String(SML_MtlGetUDVS(SRender_SimModelGetIDMtl(), 3)).c_str());
 	
-	SXMaterialEditor::CheckBoxUDPSInVS->SetCheck(false);
+	SXMaterialEditor::CheckBoxUDPSInVS->setCheck(false);
 
-	SXMaterialEditor::TrackBarUDPSX->SetPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 0) * 100.f);
-	SXMaterialEditor::EditUDPSX->SetText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 0)).c_str());
+	SXMaterialEditor::TrackBarUDPSX->setPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 0) * 100.f);
+	SXMaterialEditor::EditUDPSX->setText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 0)).c_str());
 
-	SXMaterialEditor::TrackBarUDPSY->SetPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 1) * 100.f);
-	SXMaterialEditor::EditUDPSY->SetText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 1)).c_str());
+	SXMaterialEditor::TrackBarUDPSY->setPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 1) * 100.f);
+	SXMaterialEditor::EditUDPSY->setText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 1)).c_str());
 	
-	SXMaterialEditor::TrackBarUDPSZ->SetPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 2) * 100.f);
-	SXMaterialEditor::EditUDPSZ->SetText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 2)).c_str());
+	SXMaterialEditor::TrackBarUDPSZ->setPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 2) * 100.f);
+	SXMaterialEditor::EditUDPSZ->setText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 2)).c_str());
 	
-	SXMaterialEditor::TrackBarUDPSW->SetPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 3) * 100.f);
-	SXMaterialEditor::EditUDPSW->SetText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 3)).c_str());
+	SXMaterialEditor::TrackBarUDPSW->setPos(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 3) * 100.f);
+	SXMaterialEditor::EditUDPSW->setText(String(SML_MtlGetUDPS(SRender_SimModelGetIDMtl(), 3)).c_str());
 
-	SXMaterialEditor::CheckBoxUDPSInVS->SetCheck(SML_MtlGetUDPS_InVS(SRender_SimModelGetIDMtl()));
-	SXMaterialEditor::CheckBoxUDVSInPS->SetCheck(SML_MtlGetUDVS_InPS(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::CheckBoxUDPSInVS->setCheck(SML_MtlGetUDPS_InVS(SRender_SimModelGetIDMtl()));
+	SXMaterialEditor::CheckBoxUDVSInPS->setCheck(SML_MtlGetUDVS_InPS(SRender_SimModelGetIDMtl()));
 }
 
 void SXMaterialEditor::FinalImageUncheckedMenu()
 {
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_COLOR, false);
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_NORMALS, false);
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_PARAMETERS, false);
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, false);
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_SPECULAR, false);
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_LIGHTINGSCENE, false);
-
-	SXMaterialEditor::CheckBoxTBRColor->SetCheck(false);
-	SXMaterialEditor::CheckBoxTBRNormal->SetCheck(false);
-	SXMaterialEditor::CheckBoxTBRParam->SetCheck(false);
-	SXMaterialEditor::CheckBoxTBRAmDiff->SetCheck(false);
-	SXMaterialEditor::CheckBoxTBRSpecular->SetCheck(false);
-	SXMaterialEditor::CheckBoxTBRLighting->SetCheck(false);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_COLOR, false);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_NORMALS, false);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_PARAMETERS, false);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_AMBIENTDIFFUSE, false);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_SPECULAR, false);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_LIGHTINGSCENE, false);
+
+	SXMaterialEditor::CheckBoxTBRColor->setCheck(false);
+	SXMaterialEditor::CheckBoxTBRNormal->setCheck(false);
+	SXMaterialEditor::CheckBoxTBRParam->setCheck(false);
+	SXMaterialEditor::CheckBoxTBRAmDiff->setCheck(false);
+	SXMaterialEditor::CheckBoxTBRSpecular->setCheck(false);
+	SXMaterialEditor::CheckBoxTBRLighting->setCheck(false);
 }
\ No newline at end of file
diff --git a/source/sxmaterialeditor/edits_callback.cpp b/source/sxmaterialeditor/edits_callback.cpp
index 2fac7ac31..bfadb9bb5 100644
--- a/source/sxmaterialeditor/edits_callback.cpp
+++ b/source/sxmaterialeditor/edits_callback.cpp
@@ -6,14 +6,14 @@ LRESULT SXMaterialEditor_EditSkyBox_Enter(HWND hwnd, UINT msg, WPARAM wParam, LP
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditSkyBox->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditSkyBox->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SGCore_SkyBoxLoadTex(tmptextval);
 	else
 	{
 		SGCore_SkyBoxGetActiveTex(tmptextval);
-		SXMaterialEditor::EditSkyBox->SetText(tmptextval);
+		SXMaterialEditor::EditSkyBox->setText(tmptextval);
 
 		MessageBox(0,"texture not found",0,0);
 	}
@@ -26,13 +26,13 @@ LRESULT SXMaterialEditor_EditTex_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARA
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditTex->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditTex->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetTexture(SXMaterialEditor::IDMat, tmptextval);
 	else
 	{
 		SML_MtlGetTexture(SXMaterialEditor::IDMat, tmptextval);
-		SXMaterialEditor::EditTex->SetText(tmptextval);
+		SXMaterialEditor::EditTex->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -45,14 +45,14 @@ LRESULT SXMaterialEditor_EditVS_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_SHADER_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditVS->GetText(tmptextval, SXGC_SHADER_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditVS->getText(tmptextval, SXGC_SHADER_MAX_SIZE_DIRNAME);
 
 	if (SGCore_ShaderFileExists(tmptextval))
 		SML_MtlSetVS(SXMaterialEditor::IDMat, tmptextval);
 	else
 	{
 		SML_MtlGetVS(SXMaterialEditor::IDMat, tmptextval);
-		SXMaterialEditor::EditVS->SetText(tmptextval);
+		SXMaterialEditor::EditVS->setText(tmptextval);
 
 		MessageBox(0, "shader not found", 0, 0);
 	}
@@ -65,14 +65,14 @@ LRESULT SXMaterialEditor_EditPS_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_SHADER_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditPS->GetText(tmptextval, SXGC_SHADER_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditPS->getText(tmptextval, SXGC_SHADER_MAX_SIZE_DIRNAME);
 
 	if (SGCore_ShaderFileExists(tmptextval))
 		SML_MtlSetPS(SXMaterialEditor::IDMat, tmptextval);
 	else
 	{
 		SML_MtlGetPS(SXMaterialEditor::IDMat, tmptextval);
-		SXMaterialEditor::EditPS->SetText(tmptextval);
+		SXMaterialEditor::EditPS->setText(tmptextval);
 
 		MessageBox(0, "shader not found", 0, 0);
 	}
@@ -86,11 +86,11 @@ LRESULT SXMaterialEditor_EditPenetration_Enter(HWND hwnd, UINT msg, WPARAM wPara
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditPenetration->GetText(tmptextval, 256);
+	SXMaterialEditor::EditPenetration->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarPenetration->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarPenetration->setPos(tmpval * 100);
 	SML_MtlSetPenetration(SXMaterialEditor::IDMat, tmpval*0.01f);
 
 	return 0;
@@ -102,14 +102,14 @@ LRESULT SXMaterialEditor_EditTexLighting_Enter(HWND hwnd, UINT msg, WPARAM wPara
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 	
-	SXMaterialEditor::EditTexLighting->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditTexLighting->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetTextureLighting(SXMaterialEditor::IDMat, tmptextval);
 	else
 	{
 		SML_MtlGetTextureLighting(SXMaterialEditor::IDMat, tmptextval);
-		SXMaterialEditor::EditTexLighting->SetText(tmptextval);
+		SXMaterialEditor::EditTexLighting->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -123,14 +123,14 @@ LRESULT SXMaterialEditor_EditMask_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPAR
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 	
-	SXMaterialEditor::EditMask->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditMask->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetMaskTex(SXMaterialEditor::IDMat, tmptextval);
 	else
 	{
 		SML_MtlGetMaskTex(SXMaterialEditor::IDMat, tmptextval);
-		SXMaterialEditor::EditMask->SetText(tmptextval);
+		SXMaterialEditor::EditMask->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -143,14 +143,14 @@ LRESULT SXMaterialEditor_EditMR_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 	
-	SXMaterialEditor::EditMR->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditMR->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 0, tmptextval);
 	else
 	{
 		SML_MtlGetMRTex(SXMaterialEditor::IDMat, 0, tmptextval);
-		SXMaterialEditor::EditMR->SetText(tmptextval);
+		SXMaterialEditor::EditMR->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -163,14 +163,14 @@ LRESULT SXMaterialEditor_EditMG_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditMG->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditMG->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 1, tmptextval);
 	else
 	{
 		SML_MtlGetMRTex(SXMaterialEditor::IDMat, 1, tmptextval);
-		SXMaterialEditor::EditMG->SetText(tmptextval);
+		SXMaterialEditor::EditMG->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -183,14 +183,14 @@ LRESULT SXMaterialEditor_EditMB_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditMB->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditMB->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 2, tmptextval);
 	else
 	{
 		SML_MtlGetMRTex(SXMaterialEditor::IDMat, 2, tmptextval);
-		SXMaterialEditor::EditMB->SetText(tmptextval);
+		SXMaterialEditor::EditMB->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -203,14 +203,14 @@ LRESULT SXMaterialEditor_EditMA_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditMA->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditMA->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetMRTex(SXMaterialEditor::IDMat, 3, tmptextval);
 	else
 	{
 		SML_MtlGetMRTex(SXMaterialEditor::IDMat, 3, tmptextval);
-		SXMaterialEditor::EditMA->SetText(tmptextval);
+		SXMaterialEditor::EditMA->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -224,14 +224,14 @@ LRESULT SXMaterialEditor_EditDR_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditDR->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditDR->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 0, tmptextval);
 	else
 	{
 		SML_MtlGetDTex(SXMaterialEditor::IDMat, 0, tmptextval);
-		SXMaterialEditor::EditDR->SetText(tmptextval);
+		SXMaterialEditor::EditDR->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -244,14 +244,14 @@ LRESULT SXMaterialEditor_EditDG_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditDG->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditDG->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 1, tmptextval);
 	else
 	{
 		SML_MtlGetDTex(SXMaterialEditor::IDMat, 1, tmptextval);
-		SXMaterialEditor::EditDR->SetText(tmptextval);
+		SXMaterialEditor::EditDR->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -264,14 +264,14 @@ LRESULT SXMaterialEditor_EditDB_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditDB->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditDB->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 2, tmptextval);
 	else
 	{
 		SML_MtlGetDTex(SXMaterialEditor::IDMat, 2, tmptextval);
-		SXMaterialEditor::EditDR->SetText(tmptextval);
+		SXMaterialEditor::EditDR->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -284,14 +284,14 @@ LRESULT SXMaterialEditor_EditDA_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	char tmptextval[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	tmptextval[0] = 0;
 
-	SXMaterialEditor::EditDA->GetText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXMaterialEditor::EditDA->getText(tmptextval, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 	if (SGCore_LoadTexFileExists(tmptextval))
 		SML_MtlSetDTex(SXMaterialEditor::IDMat, 3, tmptextval);
 	else
 	{
 		SML_MtlGetDTex(SXMaterialEditor::IDMat, 3, tmptextval);
-		SXMaterialEditor::EditDR->SetText(tmptextval);
+		SXMaterialEditor::EditDR->setText(tmptextval);
 
 		MessageBox(0, "texture not found", 0, 0);
 	}
@@ -307,11 +307,11 @@ LRESULT SXMaterialEditor_EditRoughness_Enter(HWND hwnd, UINT msg, WPARAM wParam,
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditRoughness->GetText(tmptextval, 256);
+	SXMaterialEditor::EditRoughness->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarRoughness->SetPos(tmpval*100);
+	SXMaterialEditor::TrackBarRoughness->setPos(tmpval*100);
 	SML_MtlSetRoughness(SXMaterialEditor::IDMat, tmpval);
 
 	return 0;
@@ -323,11 +323,11 @@ LRESULT SXMaterialEditor_EditF0_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditF0->GetText(tmptextval, 256);
+	SXMaterialEditor::EditF0->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarF0->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarF0->setPos(tmpval * 100);
 	SML_MtlSetF0(SXMaterialEditor::IDMat, tmpval);
 	return 0;
 }
@@ -338,11 +338,11 @@ LRESULT SXMaterialEditor_EditThickness_Enter(HWND hwnd, UINT msg, WPARAM wParam,
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditThickness->GetText(tmptextval, 256);
+	SXMaterialEditor::EditThickness->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarThickness->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarThickness->setPos(tmpval * 100);
 	SML_MtlSetThickness(SXMaterialEditor::IDMat, tmpval);
 	return 0;
 }
@@ -355,11 +355,11 @@ LRESULT SXMaterialEditor_EditUDVSX_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDVSX->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDVSX->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDVSX->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDVSX->setPos(tmpval * 100);
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 0, tmpval);
 	return 0;
 }
@@ -370,11 +370,11 @@ LRESULT SXMaterialEditor_EditUDVSY_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDVSY->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDVSY->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDVSY->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDVSY->setPos(tmpval * 100);
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 1, tmpval);
 	return 0;
 }
@@ -385,11 +385,11 @@ LRESULT SXMaterialEditor_EditUDVSZ_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDVSZ->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDVSZ->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDVSZ->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDVSZ->setPos(tmpval * 100);
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 2, tmpval);
 	return 0;
 }
@@ -400,11 +400,11 @@ LRESULT SXMaterialEditor_EditUDVSW_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDVSW->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDVSW->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDVSW->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDVSW->setPos(tmpval * 100);
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 3, tmpval);
 	return 0;
 }
@@ -416,11 +416,11 @@ LRESULT SXMaterialEditor_EditUDPSX_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDPSX->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDPSX->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDPSX->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDPSX->setPos(tmpval * 100);
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 0, tmpval);
 	return 0;
 }
@@ -431,11 +431,11 @@ LRESULT SXMaterialEditor_EditUDPSY_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDPSY->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDPSY->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDPSY->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDPSY->setPos(tmpval * 100);
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 1, tmpval);
 	return 0;
 }
@@ -446,11 +446,11 @@ LRESULT SXMaterialEditor_EditUDPSZ_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDPSZ->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDPSZ->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDPSZ->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDPSZ->setPos(tmpval * 100);
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 2, tmpval);
 	return 0;
 }
@@ -461,11 +461,11 @@ LRESULT SXMaterialEditor_EditUDPSW_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPA
 	tmptextval[0] = 0;
 	float tmpval = 0;
 
-	SXMaterialEditor::EditUDPSW->GetText(tmptextval, 256);
+	SXMaterialEditor::EditUDPSW->getText(tmptextval, 256);
 
 	sscanf(tmptextval, "%f", &tmpval);
 
-	SXMaterialEditor::TrackBarUDPSW->SetPos(tmpval * 100);
+	SXMaterialEditor::TrackBarUDPSW->setPos(tmpval * 100);
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 3, tmpval);
 	return 0;
 }
\ No newline at end of file
diff --git a/source/sxmaterialeditor/material_editor.cpp b/source/sxmaterialeditor/material_editor.cpp
index 8a438eb02..44ee9742f 100644
--- a/source/sxmaterialeditor/material_editor.cpp
+++ b/source/sxmaterialeditor/material_editor.cpp
@@ -4,7 +4,7 @@
 namespace SXMaterialEditor
 {
 	ISXGUIBaseWnd* JobWindow;
-	ISXGUIMenu* MainMenu;
+	ISXGUIMenuWindow* MainMenu;
 	ISXGUIBaseWnd* WindowRender;
 
 	ISXGUIToolBar* ToolBar;
@@ -185,971 +185,985 @@ void SXMaterialEditor::InitAllElements()
 	int cx = (wrect.right - MAINWIN_SIZE_X) / 2;
 	int cy = (wrect.bottom - MAINWIN_SIZE_Y) / 2;
 
-	SXMaterialEditor::JobWindow = SXGUICrBaseWnd("SXMaterialEditor", "SXMaterialEditor", 0, 0, cx, cy, MAINWIN_SIZE_X, MAINWIN_SIZE_Y, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_DLGFRAME | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION, 0, WndProcAllDefault);
-	SXMaterialEditor::JobWindow->Visible(false);
-	SXGUIBaseHandlers::InitHandlerMsg(SXMaterialEditor::JobWindow);
-	SXMaterialEditor::JobWindow->AddHandler(SXMaterialEditor_JobWindow_CallWmCommand, WM_COMMAND);
+	SXMaterialEditor::JobWindow = SXGUICrBaseWndEx("SXMaterialEditor", "SXMaterialEditor", cx, cy, MAINWIN_SIZE_X, MAINWIN_SIZE_Y, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_DLGFRAME | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION, 0, WndProcAllDefault);
+	SXMaterialEditor::JobWindow->setVisible(false);
+	gui_func::base_handlers::InitHandlerMsg(SXMaterialEditor::JobWindow);
+	SXMaterialEditor::JobWindow->addHandler(SXMaterialEditor_JobWindow_CallWmCommand, WM_COMMAND);
 
-	SXMaterialEditor::JobWindow->AddHandler(ComMenuId, WM_COMMAND);
-	SXMaterialEditor::JobWindow->AddHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
-	SXMaterialEditor::JobWindow->AddHandler(MsgEditSize, WM_SIZE);
-	SXMaterialEditor::MainMenu = SXGUICrMenuEx(IDR_MENU1);
-	SXMaterialEditor::MainMenu->SetToWindow(SXMaterialEditor::JobWindow->GetHWND());
+	SXMaterialEditor::JobWindow->addHandler(ComMenuId, WM_COMMAND);
+	SXMaterialEditor::JobWindow->addHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
+	SXMaterialEditor::JobWindow->addHandler(MsgEditSize, WM_SIZE);
+	SXMaterialEditor::MainMenu = SXGUICrMenuWindowEx(IDR_MENU1);
+	SXMaterialEditor::MainMenu->setToWindow(SXMaterialEditor::JobWindow->getHWND());
 
-	SXMaterialEditor::WindowRender = SXGUICrBaseWnd("WindowRender","WindowRender",0,0,0,26,300,300,0,0,CreateSolidBrush(RGB(200,200,200)),0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER,SXMaterialEditor::JobWindow->GetHWND(),0);
-	SXMaterialEditor::WindowRender->GAlign.left = false;
+	SXMaterialEditor::WindowRender = SXGUICrBaseWndEx("WindowRender", "WindowRender",0,26,300,300,0,0,CreateSolidBrush(RGB(200,200,200)),0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER,SXMaterialEditor::JobWindow->getHWND(),0);
+	SXMaterialEditor::WindowRender->setStretchSides(false, false, false, false);
+	
+	/*SXMaterialEditor::WindowRender->GAlign.left = false;
 	SXMaterialEditor::WindowRender->GAlign.right = false;
 	SXMaterialEditor::WindowRender->GAlign.top = false;
-	SXMaterialEditor::WindowRender->GAlign.bottom = false;
+	SXMaterialEditor::WindowRender->GAlign.bottom = false;*/
+	
+	SXMaterialEditor::ToolBar = SXGUICrToolBar(0, 0, 645, 26, SXMaterialEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	SXMaterialEditor::ToolBar->setStretchSides(false, false, false, false);
 	
-	SXMaterialEditor::ToolBar = SXGUICrToolBar(0, 0, 645, 26, SXMaterialEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXMaterialEditor::ToolBar->GAlign.left = false;
+	/*SXMaterialEditor::ToolBar->GAlign.left = false;
 	SXMaterialEditor::ToolBar->GAlign.right = false;
 	SXMaterialEditor::ToolBar->GAlign.top = false;
-	SXMaterialEditor::ToolBar->GAlign.bottom = false;
-	SXMaterialEditor::ToolBar->AddHandler(SXMaterialEditor_ToolBar_CallWmCommand, WM_COMMAND);
-
-	SXMaterialEditor::ButtonTBOpen = SXGUICrButtonEx("", 2, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonTBOpen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonTBOpen->GAlign.left = true;
-	SXMaterialEditor::ButtonTBOpen->GAlign.top = true;
-	SXMaterialEditor::ButtonTBOpen->SetBmpInResourse(IDB_BITMAP1);
-
-	SXMaterialEditor::ButtonTBSave = SXGUICrButtonEx("", 26, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonTBSave->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonTBSave->GAlign.left = true;
-	SXMaterialEditor::ButtonTBSave->GAlign.top = true;
-	SXMaterialEditor::ButtonTBSave->SetBmpInResourse(IDB_BITMAP2);
-
-	SXMaterialEditor::CheckBoxTBCam = SXGUICrCheckBoxEx("", 54, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBCam->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBCam->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBCam->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBCam->SetBmpInResourse(IDB_BITMAP3);
-
-	SXMaterialEditor::ButtonTBView = SXGUICrButtonEx("", 78, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonTBView->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonTBView->GAlign.left = true;
-	SXMaterialEditor::ButtonTBView->GAlign.top = true;
-	SXMaterialEditor::ButtonTBView->SetBmpInResourse(IDB_BITMAP4);
-
-	SXMaterialEditor::CheckBoxTBRColor = SXGUICrCheckBoxEx("", 106, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBRColor->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBRColor->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBRColor->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBRColor->SetBmpInResourse(IDB_BITMAP5);
-
-	SXMaterialEditor::CheckBoxTBRNormal = SXGUICrCheckBoxEx("", 130, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBRNormal->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBRNormal->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBRNormal->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBRNormal->SetBmpInResourse(IDB_BITMAP6);
-
-	SXMaterialEditor::CheckBoxTBRParam = SXGUICrCheckBoxEx("", 154, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBRParam->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBRParam->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBRParam->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBRParam->SetBmpInResourse(IDB_BITMAP7);
-
-	SXMaterialEditor::CheckBoxTBRAmDiff = SXGUICrCheckBoxEx("", 178, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBRAmDiff->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBRAmDiff->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBRAmDiff->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBRAmDiff->SetBmpInResourse(IDB_BITMAP8);
-
-	SXMaterialEditor::CheckBoxTBRSpecular = SXGUICrCheckBoxEx("", 202, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBRSpecular->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBRSpecular->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBRSpecular->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBRSpecular->SetBmpInResourse(IDB_BITMAP9);
-
-	SXMaterialEditor::CheckBoxTBRLighting = SXGUICrCheckBoxEx("", 226, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->GetHWND(), 0, 0);
-	SXMaterialEditor::CheckBoxTBRLighting->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxTBRLighting->GAlign.left = true;
-	SXMaterialEditor::CheckBoxTBRLighting->GAlign.top = true;
-	SXMaterialEditor::CheckBoxTBRLighting->SetBmpInResourse(IDB_BITMAP10);
+	SXMaterialEditor::ToolBar->GAlign.bottom = false;*/
+	SXMaterialEditor::ToolBar->addHandler(SXMaterialEditor_ToolBar_CallWmCommand, WM_COMMAND);
+
+	SXMaterialEditor::ButtonTBOpen = SXGUICrButtonEx("", 2, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonTBOpen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonTBOpen->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::ButtonTBOpen->GAlign.left = true;
+	SXMaterialEditor::ButtonTBOpen->GAlign.top = true;*/
+	SXMaterialEditor::ButtonTBOpen->setBmpFromResourse(IDB_BITMAP1);
+
+	SXMaterialEditor::ButtonTBSave = SXGUICrButtonEx("", 26, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonTBSave->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonTBSave->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::ButtonTBSave->GAlign.left = true;
+	SXMaterialEditor::ButtonTBSave->GAlign.top = true;*/
+	SXMaterialEditor::ButtonTBSave->setBmpFromResourse(IDB_BITMAP2);
+
+	SXMaterialEditor::CheckBoxTBCam = SXGUICrCheckBoxEx("", 54, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBCam->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBCam->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBCam->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBCam->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBCam->setBmpFromResourse(IDB_BITMAP3);
+
+	SXMaterialEditor::ButtonTBView = SXGUICrButtonEx("", 78, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonTBView->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonTBView->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::ButtonTBView->GAlign.left = true;
+	SXMaterialEditor::ButtonTBView->GAlign.top = true;*/
+	SXMaterialEditor::ButtonTBView->setBmpFromResourse(IDB_BITMAP4);
+
+	SXMaterialEditor::CheckBoxTBRColor = SXGUICrCheckBoxEx("", 106, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBRColor->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBRColor->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBRColor->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBRColor->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBRColor->setBmpFromResourse(IDB_BITMAP5);
+
+	SXMaterialEditor::CheckBoxTBRNormal = SXGUICrCheckBoxEx("", 130, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBRNormal->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBRNormal->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBRNormal->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBRNormal->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBRNormal->setBmpFromResourse(IDB_BITMAP6);
+
+	SXMaterialEditor::CheckBoxTBRParam = SXGUICrCheckBoxEx("", 154, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBRParam->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBRParam->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBRParam->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBRParam->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBRParam->setBmpFromResourse(IDB_BITMAP7);
+
+	SXMaterialEditor::CheckBoxTBRAmDiff = SXGUICrCheckBoxEx("", 178, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBRAmDiff->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBRAmDiff->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBRAmDiff->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBRAmDiff->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBRAmDiff->setBmpFromResourse(IDB_BITMAP8);
+
+	SXMaterialEditor::CheckBoxTBRSpecular = SXGUICrCheckBoxEx("", 202, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBRSpecular->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBRSpecular->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBRSpecular->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBRSpecular->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBRSpecular->setBmpFromResourse(IDB_BITMAP9);
+
+	SXMaterialEditor::CheckBoxTBRLighting = SXGUICrCheckBoxEx("", 226, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXMaterialEditor::ToolBar->getHWND(), 0, 0);
+	SXMaterialEditor::CheckBoxTBRLighting->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxTBRLighting->setStretchSides(true, false, false, true);
+	/*SXMaterialEditor::CheckBoxTBRLighting->GAlign.left = true;
+	SXMaterialEditor::CheckBoxTBRLighting->GAlign.top = true;*/
+	SXMaterialEditor::CheckBoxTBRLighting->setBmpFromResourse(IDB_BITMAP10);
 
 
 	
 
 	
-	SXMaterialEditor::ButtonSkyBox = SXGUICrButton("...", 275, 330, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonSkyBox->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonSkyBox->AddHandler(SXMaterialEditor_ButtonSkyBox_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::EditSkyBox = SXGUICrEdit("0", 100, 330, 170, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::EditSkyBox->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::EditSkyBox->SetColorText(0, 0, 0);
-	SXMaterialEditor::EditSkyBox->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::EditSkyBox->SetTransparentTextBk(true);
-	SXMaterialEditor::EditSkyBox->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::EditSkyBox->AddHandler(SXMaterialEditor_EditSkyBox_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditSkyBox->AddHandler(SXMaterialEditor_EditSkyBox_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::CheckBoxModelRot = SXGUICrCheckBox("rotate", 5, 330, 50, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxModelRot->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxModelRot->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxModelRot->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxModelRot->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxModelRot->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::ButtonRotAngle0 = SXGUICrButton("0", 60, 330, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonRotAngle0->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonRotAngle0->AddHandler(SXMaterialEditor_ButtonRotAngle0_Click, WM_LBUTTONUP);
+	SXMaterialEditor::ButtonSkyBox = SXGUICrButton("...", 275, 330, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonSkyBox->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonSkyBox->addHandler(SXMaterialEditor_ButtonSkyBox_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::EditSkyBox = SXGUICrEdit("0", 100, 330, 170, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::EditSkyBox->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::EditSkyBox->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditSkyBox->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditSkyBox->setTransparentTextBk(true);
+	SXMaterialEditor::EditSkyBox->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditSkyBox->addHandler(SXMaterialEditor_EditSkyBox_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditSkyBox->addHandler(SXMaterialEditor_EditSkyBox_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::CheckBoxModelRot = SXGUICrCheckBox("rotate", 5, 330, 50, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxModelRot->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxModelRot->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxModelRot->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxModelRot->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxModelRot->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::ButtonRotAngle0 = SXGUICrButton("0", 60, 330, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonRotAngle0->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonRotAngle0->addHandler(SXMaterialEditor_ButtonRotAngle0_Click, WM_LBUTTONUP);
 	
-	SXMaterialEditor::StaticTypeModel = SXGUICrStatic("Type model:",5,350,70,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticTypeModel->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticTypeModel->SetColorText(0,0,0);
-	SXMaterialEditor::StaticTypeModel->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticTypeModel->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticTypeModel->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::ComboBoxTypeModel = SXGUICrComboBox("",100,347,200,100,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::ComboBoxTypeModel->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ComboBoxTypeModel->SetColorText(0,0,0);
-	SXMaterialEditor::ComboBoxTypeModel->SetColorTextBk(255,255,255);
-	SXMaterialEditor::ComboBoxTypeModel->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxTypeModel->SetColorBrush(255,255,255);
-	SXMaterialEditor::ComboBoxTypeModel->AddItem("geometry");
-	SXMaterialEditor::ComboBoxTypeModel->AddItem("grass");
-	SXMaterialEditor::ComboBoxTypeModel->AddItem("tree");
-	SXMaterialEditor::ComboBoxTypeModel->AddItem("skin");
-	SXMaterialEditor::ComboBoxTypeModel->SetSel(0);
-
-	SXMaterialEditor::StaticTestModel = SXGUICrStatic("Test model:",5,372,70,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticTestModel->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticTestModel->SetColorText(0,0,0);
-	SXMaterialEditor::StaticTestModel->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticTestModel->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticTestModel->SetColorBrush(220,220,220);
-	SXMaterialEditor::ComboBoxTestModel = SXGUICrComboBox("",100,370,200,70,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::ComboBoxTestModel->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ComboBoxTestModel->SetColorText(0,0,0);
-	SXMaterialEditor::ComboBoxTestModel->SetColorTextBk(255,255,255);
-	SXMaterialEditor::ComboBoxTestModel->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxTestModel->SetColorBrush(255,255,255);
-	SXMaterialEditor::ComboBoxTestModel->AddItem("sphere");
-	SXMaterialEditor::ComboBoxTestModel->AddItem("cube");
-	SXMaterialEditor::ComboBoxTestModel->AddItem("plane");
-	SXMaterialEditor::ComboBoxTestModel->SetSel(0);
-
-	SXMaterialEditor::StaticTex = SXGUICrStatic("Tex:",5,400,30,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticTex->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticTex->SetColorText(0,0,0);
-	SXMaterialEditor::StaticTex->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticTex->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticTex->SetColorBrush(220,220,220);
-	SXMaterialEditor::EditTex = SXGUICrEdit("0",40,400,230,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditTex->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditTex->SetColorText(0,0,0);
-	SXMaterialEditor::EditTex->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditTex->SetTransparentTextBk(true);
-	SXMaterialEditor::EditTex->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditTex->AddHandler(SXMaterialEditor_EditTex_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditTex->AddHandler(SXMaterialEditor_EditTex_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonTex = SXGUICrButton("...", 275, 400, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonTex->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonTex->AddHandler(SXMaterialEditor_ButtonTex_Click, WM_LBUTTONUP);
-
-
-	SXMaterialEditor::StaticShaders = SXGUICrStatic("Shaders^", 5, 420, 40, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticShaders->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticShaders->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticShaders->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticShaders->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticShaders->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::ComboBoxShaders = SXGUICrComboBoxEx("", 60, 418, 240, 150, 0, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ComboBoxShaders->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ComboBoxShaders->SetColorText(0, 0, 0);
-	SXMaterialEditor::ComboBoxShaders->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::ComboBoxShaders->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxShaders->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::ComboBoxShaders->AddItem("");
-
-
-	SXMaterialEditor::StaticVS = SXGUICrStatic("VS:",5,440,30,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticVS->SetColorText(0,0,0);
-	SXMaterialEditor::StaticVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticVS->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticVS->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditVS = SXGUICrEdit("0",40,440,230,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditVS->SetColorText(0,0,0);
-	SXMaterialEditor::EditVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditVS->SetTransparentTextBk(true);
-	SXMaterialEditor::EditVS->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditVS->AddHandler(SXMaterialEditor_EditVS_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditVS->AddHandler(SXMaterialEditor_EditVS_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonVS = SXGUICrButton("...", 275, 440, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonVS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonVS->AddHandler(SXMaterialEditor_ButtonVS_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::StaticPS = SXGUICrStatic("PS:",5,460,30,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticPS->SetColorText(0,0,0);
-	SXMaterialEditor::StaticPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticPS->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticPS->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditPS = SXGUICrEdit("0",40,460,230,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditPS->SetColorText(0,0,0);
-	SXMaterialEditor::EditPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditPS->SetTransparentTextBk(true);
-	SXMaterialEditor::EditPS->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditPS->AddHandler(SXMaterialEditor_EditPS_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditPS->AddHandler(SXMaterialEditor_EditPS_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonPS = SXGUICrButton("...", 275, 460, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonPS->AddHandler(SXMaterialEditor_ButtonPS_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::StaticPhysic = SXGUICrStatic("Physic material:", 5, 485, 80, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticPhysic->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticPhysic->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticPhysic->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticPhysic->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticPhysic->SetColorBrush(220, 220, 220);
-	SXMaterialEditor::ComboBoxPhysic = SXGUICrComboBox("", 100, 482, 200, 120, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ComboBoxPhysic->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ComboBoxPhysic->SetColorText(0, 0, 0);
-	SXMaterialEditor::ComboBoxPhysic->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::ComboBoxPhysic->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxPhysic->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::ComboBoxPhysic->AddItem("concrete (�����)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("metal (������)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("glass (������)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("plastic (�������)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("tree (������)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("flesh (�����)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("ground/sand (�����/�����)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("water (����)");
-	SXMaterialEditor::ComboBoxPhysic->AddItem("leaf/grass (������/�����)");
-	SXMaterialEditor::ComboBoxPhysic->SetSel(0);
-
-	SXMaterialEditor::StaticPenetration = SXGUICrStatic("Penetraion:", 5, 510, 60, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticPenetration->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticPenetration->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticPenetration->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticPenetration->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticPenetration->SetColorBrush(220, 220, 220);
-	SXMaterialEditor::EditPenetration = SXGUICrEdit("0", 60, 510, 65, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::EditPenetration->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::EditPenetration->SetColorText(0, 0, 0);
-	SXMaterialEditor::EditPenetration->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::EditPenetration->SetTransparentTextBk(true);
-	SXMaterialEditor::EditPenetration->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::EditPenetration->AddHandler(SXMaterialEditor_EditPenetration_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditPenetration->AddHandler(SXMaterialEditor_EditPenetration_Enter, WM_KILLFOCUS);
-	SXMaterialEditor::TrackBarPenetration = SXGUICrTrackBar("", 130, 510, 170, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarPenetration->SetMinMax(0, 100);
-	SXMaterialEditor::TrackBarPenetration->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarPenetration->AddHandler(SXMaterialEditor_TrackBarPenetration_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::CheckBoxLighting = SXGUICrCheckBox("Lighting", 5, 535, 55, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxLighting->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxLighting->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxLighting->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxLighting->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxLighting->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::CheckBoxAlphaTest = SXGUICrCheckBox("alphatest", 65, 535, 60, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxAlphaTest->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxAlphaTest->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxAlphaTest->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxAlphaTest->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxAlphaTest->SetColorBrush(220, 220, 220);
-
-
-	SXMaterialEditor::StaticTypeRefract = SXGUICrStatic("Refraction:", 5, 560, 60, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticTypeRefract->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticTypeRefract->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticTypeRefract->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticTypeRefract->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticTypeRefract->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::ComboBoxTypeRefract = SXGUICrComboBox("", 70, 558, 230, 115, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ComboBoxTypeRefract->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ComboBoxTypeRefract->SetColorText(0, 0, 0);
-	SXMaterialEditor::ComboBoxTypeRefract->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::ComboBoxTypeRefract->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxTypeRefract->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::ComboBoxTypeRefract->AddItem("none");
-	SXMaterialEditor::ComboBoxTypeRefract->AddItem("transparency lighting");
-	SXMaterialEditor::ComboBoxTypeRefract->SetSel(0);
-
-	SXMaterialEditor::StaticTypeReflect = SXGUICrStatic("Reflection:", 5, 580, 60, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticTypeReflect->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticTypeReflect->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticTypeReflect->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticTypeReflect->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticTypeReflect->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::ComboBoxTypeReflect = SXGUICrComboBox("", 70, 578, 230, 115, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ComboBoxTypeReflect->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ComboBoxTypeReflect->SetColorText(0, 0, 0);
-	SXMaterialEditor::ComboBoxTypeReflect->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::ComboBoxTypeReflect->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxTypeReflect->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::ComboBoxTypeReflect->AddItem("none");
-	SXMaterialEditor::ComboBoxTypeReflect->AddItem("reflect plane");
-	SXMaterialEditor::ComboBoxTypeReflect->AddItem("reflect cube dynamic");
-	SXMaterialEditor::ComboBoxTypeReflect->AddItem("reflect cube static");
-	SXMaterialEditor::ComboBoxTypeReflect->SetSel(0);
-
-
-	SXMaterialEditor::StaticMR = SXGUICrStatic("M R:",305,175,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticMR->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticMR->SetColorText(0,0,0);
-	SXMaterialEditor::StaticMR->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticMR->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticMR->SetColorBrush(220,220,220);
+	SXMaterialEditor::StaticTypeModel = SXGUICrStatic("Type model:",5,350,70,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticTypeModel->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticTypeModel->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticTypeModel->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticTypeModel->setTransparentTextBk(true);
+	SXMaterialEditor::StaticTypeModel->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::ComboBoxTypeModel = SXGUICrComboBox(100,347,200,100,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::ComboBoxTypeModel->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ComboBoxTypeModel->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxTypeModel->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTypeModel->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxTypeModel->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTypeModel->addItem("geometry");
+	SXMaterialEditor::ComboBoxTypeModel->addItem("grass");
+	SXMaterialEditor::ComboBoxTypeModel->addItem("tree");
+	SXMaterialEditor::ComboBoxTypeModel->addItem("skin");
+	SXMaterialEditor::ComboBoxTypeModel->setSel(0);
+
+	SXMaterialEditor::StaticTestModel = SXGUICrStatic("Test model:",5,372,70,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticTestModel->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticTestModel->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticTestModel->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticTestModel->setTransparentTextBk(true);
+	SXMaterialEditor::StaticTestModel->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::ComboBoxTestModel = SXGUICrComboBox(100,370,200,70,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::ComboBoxTestModel->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ComboBoxTestModel->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxTestModel->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTestModel->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxTestModel->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTestModel->addItem("sphere");
+	SXMaterialEditor::ComboBoxTestModel->addItem("cube");
+	SXMaterialEditor::ComboBoxTestModel->addItem("plane");
+	SXMaterialEditor::ComboBoxTestModel->setSel(0);
+
+	SXMaterialEditor::StaticTex = SXGUICrStatic("Tex:",5,400,30,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticTex->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticTex->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticTex->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticTex->setTransparentTextBk(true);
+	SXMaterialEditor::StaticTex->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::EditTex = SXGUICrEdit("0",40,400,230,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditTex->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditTex->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditTex->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditTex->setTransparentTextBk(true);
+	SXMaterialEditor::EditTex->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditTex->addHandler(SXMaterialEditor_EditTex_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditTex->addHandler(SXMaterialEditor_EditTex_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonTex = SXGUICrButton("...", 275, 400, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonTex->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonTex->addHandler(SXMaterialEditor_ButtonTex_Click, WM_LBUTTONUP);
+
+
+	SXMaterialEditor::StaticShaders = SXGUICrStatic("Shaders^", 5, 420, 40, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticShaders->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticShaders->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticShaders->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticShaders->setTransparentTextBk(true);
+	SXMaterialEditor::StaticShaders->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::ComboBoxShaders = SXGUICrComboBoxEx(60, 418, 240, 150, 0, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ComboBoxShaders->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ComboBoxShaders->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxShaders->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxShaders->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxShaders->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxShaders->addItem("");
+
+
+	SXMaterialEditor::StaticVS = SXGUICrStatic("VS:",5,440,30,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticVS->setTransparentTextBk(true);
+	SXMaterialEditor::StaticVS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditVS = SXGUICrEdit("0",40,440,230,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditVS->setTransparentTextBk(true);
+	SXMaterialEditor::EditVS->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditVS->addHandler(SXMaterialEditor_EditVS_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditVS->addHandler(SXMaterialEditor_EditVS_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonVS = SXGUICrButton("...", 275, 440, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonVS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonVS->addHandler(SXMaterialEditor_ButtonVS_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::StaticPS = SXGUICrStatic("PS:",5,460,30,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticPS->setTransparentTextBk(true);
+	SXMaterialEditor::StaticPS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditPS = SXGUICrEdit("0",40,460,230,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditPS->setTransparentTextBk(true);
+	SXMaterialEditor::EditPS->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditPS->addHandler(SXMaterialEditor_EditPS_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditPS->addHandler(SXMaterialEditor_EditPS_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonPS = SXGUICrButton("...", 275, 460, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonPS->addHandler(SXMaterialEditor_ButtonPS_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::StaticPhysic = SXGUICrStatic("Physic material:", 5, 485, 80, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticPhysic->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticPhysic->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticPhysic->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticPhysic->setTransparentTextBk(true);
+	SXMaterialEditor::StaticPhysic->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::ComboBoxPhysic = SXGUICrComboBox(100, 482, 200, 120, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ComboBoxPhysic->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ComboBoxPhysic->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxPhysic->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxPhysic->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxPhysic->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxPhysic->addItem("concrete (�����)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("metal (������)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("glass (������)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("plastic (�������)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("tree (������)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("flesh (�����)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("ground/sand (�����/�����)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("water (����)");
+	SXMaterialEditor::ComboBoxPhysic->addItem("leaf/grass (������/�����)");
+	SXMaterialEditor::ComboBoxPhysic->setSel(0);
+
+	SXMaterialEditor::StaticPenetration = SXGUICrStatic("Penetraion:", 5, 510, 60, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticPenetration->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticPenetration->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticPenetration->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticPenetration->setTransparentTextBk(true);
+	SXMaterialEditor::StaticPenetration->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::EditPenetration = SXGUICrEdit("0", 60, 510, 65, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::EditPenetration->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::EditPenetration->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditPenetration->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditPenetration->setTransparentTextBk(true);
+	SXMaterialEditor::EditPenetration->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditPenetration->addHandler(SXMaterialEditor_EditPenetration_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditPenetration->addHandler(SXMaterialEditor_EditPenetration_Enter, WM_KILLFOCUS);
+	SXMaterialEditor::TrackBarPenetration = SXGUICrTrackBar("", 130, 510, 170, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarPenetration->setMinMax(0, 100);
+	SXMaterialEditor::TrackBarPenetration->setTickFrequency(10);
+	SXMaterialEditor::TrackBarPenetration->addHandler(SXMaterialEditor_TrackBarPenetration_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::CheckBoxLighting = SXGUICrCheckBox("Lighting", 5, 535, 55, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxLighting->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxLighting->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxLighting->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxLighting->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxLighting->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::CheckBoxAlphaTest = SXGUICrCheckBox("alphatest", 65, 535, 60, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxAlphaTest->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxAlphaTest->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxAlphaTest->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxAlphaTest->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxAlphaTest->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::StaticTypeRefract = SXGUICrStatic("Refraction:", 5, 560, 60, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticTypeRefract->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticTypeRefract->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticTypeRefract->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticTypeRefract->setTransparentTextBk(true);
+	SXMaterialEditor::StaticTypeRefract->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::ComboBoxTypeRefract = SXGUICrComboBox(70, 558, 230, 115, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ComboBoxTypeRefract->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ComboBoxTypeRefract->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxTypeRefract->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTypeRefract->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxTypeRefract->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTypeRefract->addItem("none");
+	SXMaterialEditor::ComboBoxTypeRefract->addItem("transparency lighting");
+	SXMaterialEditor::ComboBoxTypeRefract->setSel(0);
+
+	SXMaterialEditor::StaticTypeReflect = SXGUICrStatic("Reflection:", 5, 580, 60, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticTypeReflect->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticTypeReflect->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticTypeReflect->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticTypeReflect->setTransparentTextBk(true);
+	SXMaterialEditor::StaticTypeReflect->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::ComboBoxTypeReflect = SXGUICrComboBox(70, 578, 230, 115, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ComboBoxTypeReflect->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ComboBoxTypeReflect->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxTypeReflect->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTypeReflect->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxTypeReflect->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxTypeReflect->addItem("none");
+	SXMaterialEditor::ComboBoxTypeReflect->addItem("reflect plane");
+	SXMaterialEditor::ComboBoxTypeReflect->addItem("reflect cube dynamic");
+	SXMaterialEditor::ComboBoxTypeReflect->addItem("reflect cube static");
+	SXMaterialEditor::ComboBoxTypeReflect->setSel(0);
+
+
+	SXMaterialEditor::StaticMR = SXGUICrStatic("M R:",305,175,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticMR->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticMR->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticMR->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticMR->setTransparentTextBk(true);
+	SXMaterialEditor::StaticMR->setColorBrush(RGB(220, 220, 220));
 	
-	SXMaterialEditor::StaticMG = SXGUICrStatic("M G:",305,195,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticMG->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticMG->SetColorText(0,0,0);
-	SXMaterialEditor::StaticMG->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticMG->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticMG->SetColorBrush(220,220,220);
-
-
-	SXMaterialEditor::StaticParamL = SXGUICrStatic("Parameters Lighting:", 305, 30, 100, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticParamL->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticParamL->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticParamL->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticParamL->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticParamL->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::ComboBoxParamL = SXGUICrComboBoxEx("", 400, 28, 230, 150, 0, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ComboBoxParamL->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ComboBoxParamL->SetColorText(0, 0, 0);
-	SXMaterialEditor::ComboBoxParamL->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::ComboBoxParamL->SetTransparentTextBk(true);
-	SXMaterialEditor::ComboBoxParamL->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::ComboBoxParamL->AddItem("");
-
-	SXMaterialEditor::StaticThickness = SXGUICrStatic("Thickness:", 305, 50, 70, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticThickness->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticThickness->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticThickness->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticThickness->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticThickness->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::EditThickness = SXGUICrEdit("0", 375, 50, 50, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::EditThickness->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::EditThickness->SetColorText(0, 0, 0);
-	SXMaterialEditor::EditThickness->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::EditThickness->SetTransparentTextBk(true);
-	SXMaterialEditor::EditThickness->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::EditThickness->AddHandler(SXMaterialEditor_EditThickness_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditThickness->AddHandler(SXMaterialEditor_EditThickness_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::TrackBarThickness = SXGUICrTrackBar("", 430, 50, 200, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarThickness->SetMinMax(0, 100);
-	SXMaterialEditor::TrackBarThickness->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarThickness->AddHandler(SXMaterialEditor_TrackBarThickness_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::StaticRoughness = SXGUICrStatic("Roughness:", 305, 70, 70, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticRoughness->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticRoughness->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticRoughness->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticRoughness->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticRoughness->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::EditRoughness = SXGUICrEdit("0",375,70,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditRoughness->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditRoughness->SetColorText(0,0,0);
-	SXMaterialEditor::EditRoughness->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditRoughness->SetTransparentTextBk(true);
-	SXMaterialEditor::EditRoughness->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditRoughness->AddHandler(SXMaterialEditor_EditRoughness_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditRoughness->AddHandler(SXMaterialEditor_EditRoughness_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::TrackBarRoughness = SXGUICrTrackBar("", 430, 70, 200, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarRoughness->SetMinMax(0, 100);
-	SXMaterialEditor::TrackBarRoughness->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarRoughness->AddHandler(SXMaterialEditor_TrackBarRoughness_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::StaticF0 = SXGUICrStatic("f0:", 305, 90, 70, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticF0->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticF0->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticF0->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticF0->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticF0->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::EditF0 = SXGUICrEdit("0",375,90,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditF0->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditF0->SetColorText(0,0,0);
-	SXMaterialEditor::EditF0->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditF0->SetTransparentTextBk(true);
-	SXMaterialEditor::EditF0->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditF0->AddHandler(SXMaterialEditor_EditF0_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditF0->AddHandler(SXMaterialEditor_EditF0_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::TrackBarF0 = SXGUICrTrackBar("",430,90,200,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::TrackBarF0->SetMinMax(0, 100);
-	SXMaterialEditor::TrackBarF0->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarF0->AddHandler(SXMaterialEditor_TrackBarF0_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::EditTexLighting = SXGUICrEdit("0",370,110,230,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditTexLighting->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditTexLighting->SetColorText(0,0,0);
-	SXMaterialEditor::EditTexLighting->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditTexLighting->SetTransparentTextBk(true);
-	SXMaterialEditor::EditTexLighting->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditTexLighting->AddHandler(SXMaterialEditor_EditTexLighting_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditTexLighting->AddHandler(SXMaterialEditor_EditTexLighting_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonTexLighting = SXGUICrButton("...", 605, 110, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonTexLighting->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonTexLighting->AddHandler(SXMaterialEditor_ButtonTexLighting_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::CheckBoxTexLighting = SXGUICrCheckBox("texture:", 305, 110, 60, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxTexLighting->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxTexLighting->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxTexLighting->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxTexLighting->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxTexLighting->SetColorBrush(220,220,220);
+	SXMaterialEditor::StaticMG = SXGUICrStatic("M G:",305,195,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticMG->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticMG->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticMG->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticMG->setTransparentTextBk(true);
+	SXMaterialEditor::StaticMG->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::StaticParamL = SXGUICrStatic("Parameters Lighting:", 305, 30, 100, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticParamL->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticParamL->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticParamL->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticParamL->setTransparentTextBk(true);
+	SXMaterialEditor::StaticParamL->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::ComboBoxParamL = SXGUICrComboBoxEx(400, 28, 230, 150, 0, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ComboBoxParamL->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ComboBoxParamL->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::ComboBoxParamL->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxParamL->setTransparentTextBk(true);
+	SXMaterialEditor::ComboBoxParamL->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::ComboBoxParamL->addItem("");
+
+	SXMaterialEditor::StaticThickness = SXGUICrStatic("Thickness:", 305, 50, 70, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticThickness->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticThickness->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticThickness->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticThickness->setTransparentTextBk(true);
+	SXMaterialEditor::StaticThickness->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditThickness = SXGUICrEdit("0", 375, 50, 50, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::EditThickness->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::EditThickness->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditThickness->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditThickness->setTransparentTextBk(true);
+	SXMaterialEditor::EditThickness->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditThickness->addHandler(SXMaterialEditor_EditThickness_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditThickness->addHandler(SXMaterialEditor_EditThickness_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::TrackBarThickness = SXGUICrTrackBar("", 430, 50, 200, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarThickness->setMinMax(0, 100);
+	SXMaterialEditor::TrackBarThickness->setTickFrequency(10);
+	SXMaterialEditor::TrackBarThickness->addHandler(SXMaterialEditor_TrackBarThickness_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::StaticRoughness = SXGUICrStatic("Roughness:", 305, 70, 70, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticRoughness->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticRoughness->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticRoughness->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticRoughness->setTransparentTextBk(true);
+	SXMaterialEditor::StaticRoughness->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditRoughness = SXGUICrEdit("0",375,70,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditRoughness->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditRoughness->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditRoughness->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditRoughness->setTransparentTextBk(true);
+	SXMaterialEditor::EditRoughness->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditRoughness->addHandler(SXMaterialEditor_EditRoughness_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditRoughness->addHandler(SXMaterialEditor_EditRoughness_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::TrackBarRoughness = SXGUICrTrackBar("", 430, 70, 200, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarRoughness->setMinMax(0, 100);
+	SXMaterialEditor::TrackBarRoughness->setTickFrequency(10);
+	SXMaterialEditor::TrackBarRoughness->addHandler(SXMaterialEditor_TrackBarRoughness_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::StaticF0 = SXGUICrStatic("f0:", 305, 90, 70, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticF0->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticF0->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticF0->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticF0->setTransparentTextBk(true);
+	SXMaterialEditor::StaticF0->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditF0 = SXGUICrEdit("0",375,90,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditF0->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditF0->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditF0->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditF0->setTransparentTextBk(true);
+	SXMaterialEditor::EditF0->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditF0->addHandler(SXMaterialEditor_EditF0_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditF0->addHandler(SXMaterialEditor_EditF0_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::TrackBarF0 = SXGUICrTrackBar("",430,90,200,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::TrackBarF0->setMinMax(0, 100);
+	SXMaterialEditor::TrackBarF0->setTickFrequency(10);
+	SXMaterialEditor::TrackBarF0->addHandler(SXMaterialEditor_TrackBarF0_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::EditTexLighting = SXGUICrEdit("0",370,110,230,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditTexLighting->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditTexLighting->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditTexLighting->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditTexLighting->setTransparentTextBk(true);
+	SXMaterialEditor::EditTexLighting->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditTexLighting->addHandler(SXMaterialEditor_EditTexLighting_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditTexLighting->addHandler(SXMaterialEditor_EditTexLighting_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonTexLighting = SXGUICrButton("...", 605, 110, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonTexLighting->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonTexLighting->addHandler(SXMaterialEditor_ButtonTexLighting_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::CheckBoxTexLighting = SXGUICrCheckBox("texture:", 305, 110, 60, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxTexLighting->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxTexLighting->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxTexLighting->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxTexLighting->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxTexLighting->setColorBrush(RGB(220, 220, 220));
 	
 
-	SXMaterialEditor::StaticMaD = SXGUICrStatic("Microrelief and detail", 305, 135, 100, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticMaD->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticMaD->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticMaD->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticMaD->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticMaD->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::EditMR = SXGUICrEdit("0", 360, 175, 240, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::EditMR->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::EditMR->SetColorText(0, 0, 0);
-	SXMaterialEditor::EditMR->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::EditMR->SetTransparentTextBk(true);
-	SXMaterialEditor::EditMR->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::EditMR->AddHandler(SXMaterialEditor_EditMR_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditMR->AddHandler(SXMaterialEditor_EditMR_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::CheckBoxDoSVVS = SXGUICrCheckBox("vs", 340, 390, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSVVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSVVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSVVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSVVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSVVS->SetColorBrush(220,220,220);
-
-
-	SXMaterialEditor::StaticMask = SXGUICrStatic("Mask:", 305, 152, 50, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticMask->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticMask->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticMask->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticMask->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticMask->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::EditMask = SXGUICrEdit("0", 360, 152, 240, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::EditMask->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::EditMask->SetColorText(0, 0, 0);
-	SXMaterialEditor::EditMask->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::EditMask->SetTransparentTextBk(true);
-	SXMaterialEditor::EditMask->SetColorBrush(255, 255, 255);
-	SXMaterialEditor::EditMask->AddHandler(SXMaterialEditor_EditMask_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditMask->AddHandler(SXMaterialEditor_EditMask_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonMask = SXGUICrButton("...", 605, 152, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonMask->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::ButtonMask->AddHandler(SXMaterialEditor_ButtonMask_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::ButtonMR = SXGUICrButton("...", 605, 175, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonMR->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonMR->AddHandler(SXMaterialEditor_ButtonMR_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::StaticMB = SXGUICrStatic("M B:",305,215,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticMB->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticMB->SetColorText(0,0,0);
-	SXMaterialEditor::StaticMB->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticMB->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticMB->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticMA = SXGUICrStatic("M A:",305,235,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticMA->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticMA->SetColorText(0,0,0);
-	SXMaterialEditor::StaticMA->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticMA->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticMA->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDR = SXGUICrStatic("D R:",305,260,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDR->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDR->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDR->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDR->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDR->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditMG = SXGUICrEdit("0",360,195,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditMG->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditMG->SetColorText(0,0,0);
-	SXMaterialEditor::EditMG->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditMG->SetTransparentTextBk(true);
-	SXMaterialEditor::EditMG->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditMG->AddHandler(SXMaterialEditor_EditMG_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditMG->AddHandler(SXMaterialEditor_EditMG_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditMB = SXGUICrEdit("0",360,215,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditMB->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditMB->SetColorText(0,0,0);
-	SXMaterialEditor::EditMB->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditMB->SetTransparentTextBk(true);
-	SXMaterialEditor::EditMB->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditMB->AddHandler(SXMaterialEditor_EditMB_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditMB->AddHandler(SXMaterialEditor_EditMB_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditMA = SXGUICrEdit("0",360,235,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditMA->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditMA->SetColorText(0,0,0);
-	SXMaterialEditor::EditMA->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditMA->SetTransparentTextBk(true);
-	SXMaterialEditor::EditMA->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditMA->AddHandler(SXMaterialEditor_EditMA_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditMA->AddHandler(SXMaterialEditor_EditMA_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditDR = SXGUICrEdit("0",360,260,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditDR->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditDR->SetColorText(0,0,0);
-	SXMaterialEditor::EditDR->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditDR->SetTransparentTextBk(true);
-	SXMaterialEditor::EditDR->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditDR->AddHandler(SXMaterialEditor_EditDR_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditDR->AddHandler(SXMaterialEditor_EditDR_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonMG = SXGUICrButton("...", 605, 195, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonMG->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonMG->AddHandler(SXMaterialEditor_ButtonMG_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::ButtonMB = SXGUICrButton("...", 605, 215, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonMB->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonMB->AddHandler(SXMaterialEditor_ButtonMB_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::ButtonMA = SXGUICrButton("...", 605, 235, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonMA->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonMA->AddHandler(SXMaterialEditor_ButtonMA_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::ButtonDR = SXGUICrButton("...", 605, 260, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonDR->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonDR->AddHandler(SXMaterialEditor_ButtonDR_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::StaticDG = SXGUICrStatic("D G:",305,280,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDG->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDG->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDG->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDG->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDG->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDB = SXGUICrStatic("D B:",305,300,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDB->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDB->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDB->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDB->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDB->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDA = SXGUICrStatic("D A:",305,320,50,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDA->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDA->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDA->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDA->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDA->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditDG = SXGUICrEdit("0",360,280,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditDG->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditDG->SetColorText(0,0,0);
-	SXMaterialEditor::EditDG->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditDG->SetTransparentTextBk(true);
-	SXMaterialEditor::EditDG->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditDG->AddHandler(SXMaterialEditor_EditDG_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditDG->AddHandler(SXMaterialEditor_EditDG_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditDB = SXGUICrEdit("0",360,300,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditDB->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditDB->SetColorText(0,0,0);
-	SXMaterialEditor::EditDB->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditDB->SetTransparentTextBk(true);
-	SXMaterialEditor::EditDB->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditDB->AddHandler(SXMaterialEditor_EditDB_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditDB->AddHandler(SXMaterialEditor_EditDB_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditDA = SXGUICrEdit("0",360,320,240,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditDA->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditDA->SetColorText(0,0,0);
-	SXMaterialEditor::EditDA->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditDA->SetTransparentTextBk(true);
-	SXMaterialEditor::EditDA->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditDA->AddHandler(SXMaterialEditor_EditDA_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditDA->AddHandler(SXMaterialEditor_EditDA_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::ButtonDG = SXGUICrButton("...", 605, 280, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonDG->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonDG->AddHandler(SXMaterialEditor_ButtonDG_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::ButtonDB = SXGUICrButton("...", 605, 300, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonDB->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonDB->AddHandler(SXMaterialEditor_ButtonDB_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::ButtonDA = SXGUICrButton("...", 605, 320, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::ButtonDA->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::ButtonDA->AddHandler(SXMaterialEditor_ButtonDA_Click, WM_LBUTTONUP);
-
-	SXMaterialEditor::StaticDoS = SXGUICrStatic("Data for shaders:",305,350,100,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDoS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDoS->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDoS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDoS->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoS->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDoSW = SXGUICrStatic("W mat:",305,370,35,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDoSW->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDoSW->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDoSW->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDoSW->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoSW->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSWVS = SXGUICrCheckBox("vs", 340, 370, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSWVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWVS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSWPS = SXGUICrCheckBox("ps", 373, 370, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSWPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSWPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSWPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWPS->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDoSV = SXGUICrStatic("V mat:",305,390,35,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDoSV->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDoSV->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDoSV->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDoSV->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoSV->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSVPS = SXGUICrCheckBox("ps", 373, 390, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSVPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSVPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSVPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSVPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSVPS->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDosP = SXGUICrStatic("P mat:",305,410,35,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDosP->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticDosP->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticDosP->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticDosP->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDosP->SetColorBrush(220, 220, 220);
-	SXMaterialEditor::CheckBoxDoSPVS = SXGUICrCheckBox("vs", 340, 410, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSPVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSPVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSPVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSPVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSPVS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSPPS = SXGUICrCheckBox("ps", 373, 410, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSPPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSPPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSPPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSPPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSPPS->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticBoxDoSWV = SXGUICrStatic("WV mat:",410,370,45,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticBoxDoSWV->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticBoxDoSWV->SetColorText(0,0,0);
-	SXMaterialEditor::StaticBoxDoSWV->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticBoxDoSWV->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticBoxDoSWV->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDoSWVP = SXGUICrStatic("WVP:",410,390,45,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDoSWVP->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDoSWVP->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDoSWVP->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDoSWVP->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoSWVP->SetColorBrush(220,220,220);
-	SXMaterialEditor::StaticDoSCampos = SXGUICrStatic("Campos:",410,410,45,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticDoSCampos->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticDoSCampos->SetColorText(0,0,0);
-	SXMaterialEditor::StaticDoSCampos->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticDoSCampos->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoSCampos->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSWVVS = SXGUICrCheckBox("vs", 455, 370, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWVVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSWVVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWVVS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSWVPS = SXGUICrCheckBox("ps", 488, 370, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWVPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSWVPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWVPS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSCamposVS = SXGUICrCheckBox("vs", 455, 410, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSCamposVS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSWVPVS = SXGUICrCheckBox("vs", 455, 390, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWVPVS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSWVPPS = SXGUICrCheckBox("ps", 488, 390, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWVPPS->SetColorBrush(220,220,220);
-	SXMaterialEditor::CheckBoxDoSCamposPS = SXGUICrCheckBox("ps", 488, 411, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSCamposPS->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::StaticDoSTimeDelta = SXGUICrStatic("count_td:", 525, 370, 45, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticDoSTimeDelta->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticDoSTimeDelta->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticDoSTimeDelta->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticDoSTimeDelta->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoSTimeDelta->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS = SXGUICrCheckBox("vs", 570, 370, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS = SXGUICrCheckBox("ps", 603, 370, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->SetColorBrush(220, 220, 220);
-
-
-	SXMaterialEditor::StaticDoSWinSize = SXGUICrStatic("win size:", 525, 390, 40, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::StaticDoSWinSize->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::StaticDoSWinSize->SetColorText(0, 0, 0);
-	SXMaterialEditor::StaticDoSWinSize->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::StaticDoSWinSize->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticDoSWinSize->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::CheckBoxDoSWinSizeVS = SXGUICrCheckBox("vs", 570, 390, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWinSizeVS->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::CheckBoxDoSWinSizePS = SXGUICrCheckBox("ps", 603, 390, 30, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxDoSWinSizePS->SetColorBrush(220, 220, 220);
-
-
-	SXMaterialEditor::CheckBoxUDVS = SXGUICrCheckBox("User data VS:", 305, 440, 100, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxUDVS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxUDVS->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxUDVS->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxUDVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxUDVS->SetColorBrush(220, 220, 220);
-
-	SXMaterialEditor::CheckBoxUDVSInPS = SXGUICrCheckBox("in PS", 445, 440, 100, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxUDVSInPS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxUDVSInPS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxUDVSInPS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxUDVSInPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxUDVSInPS->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditUDVSX = SXGUICrEdit("0",325,460,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDVSX->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDVSX->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDVSX->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDVSX->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDVSX->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDVSX->AddHandler(SXMaterialEditor_EditUDVSX_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDVSX->AddHandler(SXMaterialEditor_EditUDVSX_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditUDVSY = SXGUICrEdit("0",325,480,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDVSY->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDVSY->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDVSY->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDVSY->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDVSY->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDVSY->AddHandler(SXMaterialEditor_EditUDVSY_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDVSY->AddHandler(SXMaterialEditor_EditUDVSY_Enter, WM_KILLFOCUS);
+	SXMaterialEditor::StaticMaD = SXGUICrStatic("Microrelief and detail", 305, 135, 100, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticMaD->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticMaD->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticMaD->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticMaD->setTransparentTextBk(true);
+	SXMaterialEditor::StaticMaD->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditMR = SXGUICrEdit("0", 360, 175, 240, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::EditMR->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::EditMR->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditMR->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditMR->setTransparentTextBk(true);
+	SXMaterialEditor::EditMR->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditMR->addHandler(SXMaterialEditor_EditMR_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditMR->addHandler(SXMaterialEditor_EditMR_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::CheckBoxDoSVVS = SXGUICrCheckBox("vs", 340, 390, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSVVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSVVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSVVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSVVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSVVS->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::StaticMask = SXGUICrStatic("Mask:", 305, 152, 50, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticMask->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticMask->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticMask->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticMask->setTransparentTextBk(true);
+	SXMaterialEditor::StaticMask->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditMask = SXGUICrEdit("0", 360, 152, 240, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::EditMask->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::EditMask->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditMask->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditMask->setTransparentTextBk(true);
+	SXMaterialEditor::EditMask->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditMask->addHandler(SXMaterialEditor_EditMask_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditMask->addHandler(SXMaterialEditor_EditMask_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonMask = SXGUICrButton("...", 605, 152, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonMask->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::ButtonMask->addHandler(SXMaterialEditor_ButtonMask_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::ButtonMR = SXGUICrButton("...", 605, 175, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonMR->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonMR->addHandler(SXMaterialEditor_ButtonMR_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::StaticMB = SXGUICrStatic("M B:",305,215,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticMB->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticMB->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticMB->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticMB->setTransparentTextBk(true);
+	SXMaterialEditor::StaticMB->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticMA = SXGUICrStatic("M A:",305,235,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticMA->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticMA->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticMA->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticMA->setTransparentTextBk(true);
+	SXMaterialEditor::StaticMA->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDR = SXGUICrStatic("D R:",305,260,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDR->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDR->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDR->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDR->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDR->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditMG = SXGUICrEdit("0",360,195,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditMG->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditMG->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditMG->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditMG->setTransparentTextBk(true);
+	SXMaterialEditor::EditMG->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditMG->addHandler(SXMaterialEditor_EditMG_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditMG->addHandler(SXMaterialEditor_EditMG_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditMB = SXGUICrEdit("0",360,215,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditMB->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditMB->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditMB->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditMB->setTransparentTextBk(true);
+	SXMaterialEditor::EditMB->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditMB->addHandler(SXMaterialEditor_EditMB_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditMB->addHandler(SXMaterialEditor_EditMB_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditMA = SXGUICrEdit("0",360,235,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditMA->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditMA->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditMA->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditMA->setTransparentTextBk(true);
+	SXMaterialEditor::EditMA->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditMA->addHandler(SXMaterialEditor_EditMA_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditMA->addHandler(SXMaterialEditor_EditMA_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditDR = SXGUICrEdit("0",360,260,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditDR->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditDR->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditDR->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditDR->setTransparentTextBk(true);
+	SXMaterialEditor::EditDR->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditDR->addHandler(SXMaterialEditor_EditDR_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditDR->addHandler(SXMaterialEditor_EditDR_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonMG = SXGUICrButton("...", 605, 195, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonMG->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonMG->addHandler(SXMaterialEditor_ButtonMG_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::ButtonMB = SXGUICrButton("...", 605, 215, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonMB->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonMB->addHandler(SXMaterialEditor_ButtonMB_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::ButtonMA = SXGUICrButton("...", 605, 235, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonMA->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonMA->addHandler(SXMaterialEditor_ButtonMA_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::ButtonDR = SXGUICrButton("...", 605, 260, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonDR->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonDR->addHandler(SXMaterialEditor_ButtonDR_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::StaticDG = SXGUICrStatic("D G:",305,280,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDG->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDG->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDG->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDG->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDG->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDB = SXGUICrStatic("D B:",305,300,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDB->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDB->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDB->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDB->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDB->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDA = SXGUICrStatic("D A:",305,320,50,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDA->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDA->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDA->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDA->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDA->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditDG = SXGUICrEdit("0",360,280,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditDG->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditDG->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditDG->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditDG->setTransparentTextBk(true);
+	SXMaterialEditor::EditDG->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditDG->addHandler(SXMaterialEditor_EditDG_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditDG->addHandler(SXMaterialEditor_EditDG_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditDB = SXGUICrEdit("0",360,300,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditDB->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditDB->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditDB->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditDB->setTransparentTextBk(true);
+	SXMaterialEditor::EditDB->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditDB->addHandler(SXMaterialEditor_EditDB_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditDB->addHandler(SXMaterialEditor_EditDB_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditDA = SXGUICrEdit("0",360,320,240,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditDA->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditDA->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditDA->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditDA->setTransparentTextBk(true);
+	SXMaterialEditor::EditDA->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditDA->addHandler(SXMaterialEditor_EditDA_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditDA->addHandler(SXMaterialEditor_EditDA_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::ButtonDG = SXGUICrButton("...", 605, 280, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonDG->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonDG->addHandler(SXMaterialEditor_ButtonDG_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::ButtonDB = SXGUICrButton("...", 605, 300, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonDB->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonDB->addHandler(SXMaterialEditor_ButtonDB_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::ButtonDA = SXGUICrButton("...", 605, 320, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::ButtonDA->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::ButtonDA->addHandler(SXMaterialEditor_ButtonDA_Click, WM_LBUTTONUP);
+
+	SXMaterialEditor::StaticDoS = SXGUICrStatic("Data for shaders:",305,350,100,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDoS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDoS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoS->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDoSW = SXGUICrStatic("W mat:",305,370,35,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDoSW->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDoSW->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoSW->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoSW->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoSW->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSWVS = SXGUICrCheckBox("vs", 340, 370, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSWVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWVS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSWPS = SXGUICrCheckBox("ps", 373, 370, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSWPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWPS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDoSV = SXGUICrStatic("V mat:",305,390,35,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDoSV->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDoSV->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoSV->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoSV->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoSV->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSVPS = SXGUICrCheckBox("ps", 373, 390, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSVPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSVPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSVPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSVPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSVPS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDosP = SXGUICrStatic("P mat:",305,410,35,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDosP->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticDosP->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDosP->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDosP->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDosP->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSPVS = SXGUICrCheckBox("vs", 340, 410, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSPVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSPVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSPVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSPVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSPVS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSPPS = SXGUICrCheckBox("ps", 373, 410, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSPPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSPPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSPPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSPPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSPPS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticBoxDoSWV = SXGUICrStatic("WV mat:",410,370,45,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticBoxDoSWV->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticBoxDoSWV->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticBoxDoSWV->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticBoxDoSWV->setTransparentTextBk(true);
+	SXMaterialEditor::StaticBoxDoSWV->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDoSWVP = SXGUICrStatic("WVP:",410,390,45,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDoSWVP->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDoSWVP->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoSWVP->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoSWVP->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoSWVP->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::StaticDoSCampos = SXGUICrStatic("Campos:",410,410,45,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticDoSCampos->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticDoSCampos->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoSCampos->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoSCampos->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoSCampos->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSWVVS = SXGUICrCheckBox("vs", 455, 370, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWVVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSWVVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWVVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWVVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWVVS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSWVPS = SXGUICrCheckBox("ps", 488, 370, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWVPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSWVPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWVPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWVPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWVPS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSCamposVS = SXGUICrCheckBox("vs", 455, 410, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSCamposVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSCamposVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSCamposVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSCamposVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSCamposVS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSWVPVS = SXGUICrCheckBox("vs", 455, 390, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWVPVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSWVPVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWVPVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWVPVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWVPVS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSWVPPS = SXGUICrCheckBox("ps", 488, 390, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWVPPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSWVPPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWVPPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWVPPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWVPPS->setColorBrush(RGB(220, 220, 220));
+	SXMaterialEditor::CheckBoxDoSCamposPS = SXGUICrCheckBox("ps", 488, 411, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSCamposPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxDoSCamposPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSCamposPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSCamposPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSCamposPS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::StaticDoSTimeDelta = SXGUICrStatic("count_td:", 525, 370, 45, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticDoSTimeDelta->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticDoSTimeDelta->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoSTimeDelta->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoSTimeDelta->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoSTimeDelta->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS = SXGUICrCheckBox("vs", 570, 370, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaVS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS = SXGUICrCheckBox("ps", 603, 370, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSTimeDeltaPS->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::StaticDoSWinSize = SXGUICrStatic("win size:", 525, 390, 40, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::StaticDoSWinSize->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::StaticDoSWinSize->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticDoSWinSize->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticDoSWinSize->setTransparentTextBk(true);
+	SXMaterialEditor::StaticDoSWinSize->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::CheckBoxDoSWinSizeVS = SXGUICrCheckBox("vs", 570, 390, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWinSizeVS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::CheckBoxDoSWinSizePS = SXGUICrCheckBox("ps", 603, 390, 30, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxDoSWinSizePS->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::CheckBoxUDVS = SXGUICrCheckBox("User data VS:", 305, 440, 100, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxUDVS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxUDVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxUDVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxUDVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxUDVS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::CheckBoxUDVSInPS = SXGUICrCheckBox("in PS", 445, 440, 100, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxUDVSInPS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxUDVSInPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxUDVSInPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxUDVSInPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxUDVSInPS->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditUDVSX = SXGUICrEdit("0",325,460,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDVSX->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDVSX->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDVSX->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSX->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDVSX->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSX->addHandler(SXMaterialEditor_EditUDVSX_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDVSX->addHandler(SXMaterialEditor_EditUDVSX_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditUDVSY = SXGUICrEdit("0",325,480,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDVSY->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDVSY->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDVSY->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSY->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDVSY->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSY->addHandler(SXMaterialEditor_EditUDVSY_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDVSY->addHandler(SXMaterialEditor_EditUDVSY_Enter, WM_KILLFOCUS);
 
 	
-	SXMaterialEditor::StaticUDVSX = SXGUICrStatic("x:",305,460,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDVSX->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDVSX->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDVSX->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDVSX->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDVSX->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::StaticUDVSY = SXGUICrStatic("y:",305,480,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDVSY->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDVSY->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDVSY->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDVSY->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDVSY->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::StaticUDVSZ = SXGUICrStatic("z:",305,500,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDVSZ->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDVSZ->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDVSZ->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDVSZ->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDVSZ->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditUDVSZ = SXGUICrEdit("0",325,500,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDVSZ->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDVSZ->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDVSZ->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDVSZ->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDVSZ->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDVSZ->AddHandler(SXMaterialEditor_EditUDVSZ_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDVSZ->AddHandler(SXMaterialEditor_EditUDVSZ_Enter, WM_KILLFOCUS);
-
-
-	SXMaterialEditor::StaticUDVSW = SXGUICrStatic("w:",305,520,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDVSW->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDVSW->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDVSW->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDVSW->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDVSW->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::EditUDVSW = SXGUICrEdit("0",325,520,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDVSW->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDVSW->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDVSW->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDVSW->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDVSW->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDVSW->AddHandler(SXMaterialEditor_EditUDVSW_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDVSW->AddHandler(SXMaterialEditor_EditUDVSW_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::TrackBarUDVSX = SXGUICrTrackBar("", 410, 460, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDVSX->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDVSX->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDVSX->AddHandler(SXMaterialEditor_TrackBarUDVSX_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::TrackBarUDVSY = SXGUICrTrackBar("", 410, 480, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDVSY->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDVSY->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDVSY->AddHandler(SXMaterialEditor_TrackBarUDVSY_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::TrackBarUDVSZ = SXGUICrTrackBar("", 410, 500, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDVSZ->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDVSZ->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDVSZ->AddHandler(SXMaterialEditor_TrackBarUDVSZ_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::TrackBarUDVSW = SXGUICrTrackBar("",410,520,220,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::TrackBarUDVSW->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDVSW->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDVSW->AddHandler(SXMaterialEditor_TrackBarUDVSW_MouseMove, WM_MOUSEMOVE);
+	SXMaterialEditor::StaticUDVSX = SXGUICrStatic("x:",305,460,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDVSX->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDVSX->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDVSX->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDVSX->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDVSX->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::StaticUDVSY = SXGUICrStatic("y:",305,480,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDVSY->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDVSY->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDVSY->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDVSY->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDVSY->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::StaticUDVSZ = SXGUICrStatic("z:",305,500,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDVSZ->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDVSZ->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDVSZ->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDVSZ->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDVSZ->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditUDVSZ = SXGUICrEdit("0",325,500,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDVSZ->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDVSZ->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDVSZ->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSZ->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDVSZ->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSZ->addHandler(SXMaterialEditor_EditUDVSZ_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDVSZ->addHandler(SXMaterialEditor_EditUDVSZ_Enter, WM_KILLFOCUS);
+
+
+	SXMaterialEditor::StaticUDVSW = SXGUICrStatic("w:",305,520,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDVSW->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDVSW->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDVSW->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDVSW->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDVSW->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::EditUDVSW = SXGUICrEdit("0",325,520,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDVSW->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDVSW->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDVSW->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSW->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDVSW->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDVSW->addHandler(SXMaterialEditor_EditUDVSW_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDVSW->addHandler(SXMaterialEditor_EditUDVSW_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::TrackBarUDVSX = SXGUICrTrackBar("", 410, 460, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDVSX->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDVSX->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDVSX->addHandler(SXMaterialEditor_TrackBarUDVSX_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::TrackBarUDVSY = SXGUICrTrackBar("", 410, 480, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDVSY->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDVSY->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDVSY->addHandler(SXMaterialEditor_TrackBarUDVSY_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::TrackBarUDVSZ = SXGUICrTrackBar("", 410, 500, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDVSZ->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDVSZ->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDVSZ->addHandler(SXMaterialEditor_TrackBarUDVSZ_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::TrackBarUDVSW = SXGUICrTrackBar("",410,520,220,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::TrackBarUDVSW->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDVSW->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDVSW->addHandler(SXMaterialEditor_TrackBarUDVSW_MouseMove, WM_MOUSEMOVE);
 	
 
 
-	SXMaterialEditor::CheckBoxUDPS = SXGUICrCheckBox("User data PS:", 305, 550, 100, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxUDPS->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXMaterialEditor::CheckBoxUDPS->SetColorText(0, 0, 0);
-	SXMaterialEditor::CheckBoxUDPS->SetColorTextBk(255, 255, 255);
-	SXMaterialEditor::CheckBoxUDPS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxUDPS->SetColorBrush(220, 220, 220);
-
-
-	SXMaterialEditor::CheckBoxUDPSInVS = SXGUICrCheckBox("in VS", 445, 550, 100, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0, false);
-	SXMaterialEditor::CheckBoxUDPSInVS->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::CheckBoxUDPSInVS->SetColorText(0,0,0);
-	SXMaterialEditor::CheckBoxUDPSInVS->SetColorTextBk(255,255,255);
-	SXMaterialEditor::CheckBoxUDPSInVS->SetTransparentTextBk(true);
-	SXMaterialEditor::CheckBoxUDPSInVS->SetColorBrush(220,220,220);
-
-
-	SXMaterialEditor::StaticUDPSX = SXGUICrStatic("x:",305,570,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDPSX->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDPSX->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDPSX->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDPSX->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDPSX->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::StaticUDPSY = SXGUICrStatic("y:",305,590,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDPSY->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDPSY->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDPSY->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDPSY->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDPSY->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::StaticUDPSZ = SXGUICrStatic("z:",305,610,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDPSZ->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDPSZ->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDPSZ->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDPSZ->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDPSZ->SetColorBrush(220,220,220);
-
-	SXMaterialEditor::StaticUDPSW = SXGUICrStatic("w:",305,630,15,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::StaticUDPSW->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::StaticUDPSW->SetColorText(0,0,0);
-	SXMaterialEditor::StaticUDPSW->SetColorTextBk(255,255,255);
-	SXMaterialEditor::StaticUDPSW->SetTransparentTextBk(true);
-	SXMaterialEditor::StaticUDPSW->SetColorBrush(220,220,220);
-
-
-	SXMaterialEditor::EditUDPSX = SXGUICrEdit("0",325,570,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDPSX->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDPSX->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDPSX->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDPSX->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDPSX->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDPSX->AddHandler(SXMaterialEditor_EditUDPSX_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDPSX->AddHandler(SXMaterialEditor_EditUDPSX_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditUDPSY = SXGUICrEdit("0",325,590,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDPSY->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDPSY->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDPSY->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDPSY->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDPSY->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDPSY->AddHandler(SXMaterialEditor_EditUDPSY_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDPSY->AddHandler(SXMaterialEditor_EditUDPSY_Enter, WM_KILLFOCUS);
-
-	SXMaterialEditor::EditUDPSZ = SXGUICrEdit("0",325,610,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDPSZ->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDPSZ->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDPSZ->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDPSZ->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDPSZ->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDPSZ->AddHandler(SXMaterialEditor_EditUDPSZ_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDPSZ->AddHandler(SXMaterialEditor_EditUDPSZ_Enter, WM_KILLFOCUS);
+	SXMaterialEditor::CheckBoxUDPS = SXGUICrCheckBox("User data PS:", 305, 550, 100, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxUDPS->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXMaterialEditor::CheckBoxUDPS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxUDPS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxUDPS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxUDPS->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::CheckBoxUDPSInVS = SXGUICrCheckBox("in VS", 445, 550, 100, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0, false);
+	SXMaterialEditor::CheckBoxUDPSInVS->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::CheckBoxUDPSInVS->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::CheckBoxUDPSInVS->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::CheckBoxUDPSInVS->setTransparentTextBk(true);
+	SXMaterialEditor::CheckBoxUDPSInVS->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::StaticUDPSX = SXGUICrStatic("x:",305,570,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDPSX->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDPSX->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDPSX->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDPSX->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDPSX->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::StaticUDPSY = SXGUICrStatic("y:",305,590,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDPSY->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDPSY->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDPSY->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDPSY->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDPSY->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::StaticUDPSZ = SXGUICrStatic("z:",305,610,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDPSZ->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDPSZ->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDPSZ->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDPSZ->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDPSZ->setColorBrush(RGB(220, 220, 220));
+
+	SXMaterialEditor::StaticUDPSW = SXGUICrStatic("w:",305,630,15,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::StaticUDPSW->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::StaticUDPSW->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::StaticUDPSW->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::StaticUDPSW->setTransparentTextBk(true);
+	SXMaterialEditor::StaticUDPSW->setColorBrush(RGB(220, 220, 220));
+
+
+	SXMaterialEditor::EditUDPSX = SXGUICrEdit("0",325,570,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDPSX->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDPSX->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDPSX->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSX->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDPSX->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSX->addHandler(SXMaterialEditor_EditUDPSX_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDPSX->addHandler(SXMaterialEditor_EditUDPSX_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditUDPSY = SXGUICrEdit("0",325,590,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDPSY->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDPSY->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDPSY->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSY->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDPSY->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSY->addHandler(SXMaterialEditor_EditUDPSY_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDPSY->addHandler(SXMaterialEditor_EditUDPSY_Enter, WM_KILLFOCUS);
+
+	SXMaterialEditor::EditUDPSZ = SXGUICrEdit("0",325,610,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDPSZ->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDPSZ->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDPSZ->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSZ->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDPSZ->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSZ->addHandler(SXMaterialEditor_EditUDPSZ_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDPSZ->addHandler(SXMaterialEditor_EditUDPSZ_Enter, WM_KILLFOCUS);
 	
-	SXMaterialEditor::EditUDPSW = SXGUICrEdit("0",325,630,80,15,SXMaterialEditor::JobWindow->GetHWND(),0,0);
-	SXMaterialEditor::EditUDPSW->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXMaterialEditor::EditUDPSW->SetColorText(0,0,0);
-	SXMaterialEditor::EditUDPSW->SetColorTextBk(255,255,255);
-	SXMaterialEditor::EditUDPSW->SetTransparentTextBk(true);
-	SXMaterialEditor::EditUDPSW->SetColorBrush(255,255,255);
-	SXMaterialEditor::EditUDPSW->AddHandler(SXMaterialEditor_EditUDPSW_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXMaterialEditor::EditUDPSW->AddHandler(SXMaterialEditor_EditUDPSW_Enter, WM_KILLFOCUS);
-
-
-	SXMaterialEditor::TrackBarUDPSX = SXGUICrTrackBar("", 410, 570, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDPSX->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDPSX->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDPSX->AddHandler(SXMaterialEditor_TrackBarUDPSX_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::TrackBarUDPSY = SXGUICrTrackBar("", 410, 590, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDPSY->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDPSY->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDPSY->AddHandler(SXMaterialEditor_TrackBarUDPSY_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::TrackBarUDPSZ = SXGUICrTrackBar("", 410, 610, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDPSZ->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDPSZ->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDPSZ->AddHandler(SXMaterialEditor_TrackBarUDPSZ_MouseMove, WM_MOUSEMOVE);
-
-	SXMaterialEditor::TrackBarUDPSW = SXGUICrTrackBar("", 410, 630, 220, 15, SXMaterialEditor::JobWindow->GetHWND(), 0, 0);
-	SXMaterialEditor::TrackBarUDPSW->SetMinMax(-100, 100);
-	SXMaterialEditor::TrackBarUDPSW->SetTickFrequency(10);
-	SXMaterialEditor::TrackBarUDPSW->AddHandler(SXMaterialEditor_TrackBarUDPSW_MouseMove, WM_MOUSEMOVE);
+	SXMaterialEditor::EditUDPSW = SXGUICrEdit("0",325,630,80,15,SXMaterialEditor::JobWindow->getHWND(),0,0);
+	SXMaterialEditor::EditUDPSW->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXMaterialEditor::EditUDPSW->setColorText(RGB(0, 0, 0));
+	SXMaterialEditor::EditUDPSW->setColorTextBk(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSW->setTransparentTextBk(true);
+	SXMaterialEditor::EditUDPSW->setColorBrush(RGB(255, 255, 255));
+	SXMaterialEditor::EditUDPSW->addHandler(SXMaterialEditor_EditUDPSW_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMaterialEditor::EditUDPSW->addHandler(SXMaterialEditor_EditUDPSW_Enter, WM_KILLFOCUS);
+
+
+	SXMaterialEditor::TrackBarUDPSX = SXGUICrTrackBar("", 410, 570, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDPSX->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDPSX->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDPSX->addHandler(SXMaterialEditor_TrackBarUDPSX_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::TrackBarUDPSY = SXGUICrTrackBar("", 410, 590, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDPSY->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDPSY->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDPSY->addHandler(SXMaterialEditor_TrackBarUDPSY_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::TrackBarUDPSZ = SXGUICrTrackBar("", 410, 610, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDPSZ->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDPSZ->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDPSZ->addHandler(SXMaterialEditor_TrackBarUDPSZ_MouseMove, WM_MOUSEMOVE);
+
+	SXMaterialEditor::TrackBarUDPSW = SXGUICrTrackBar("", 410, 630, 220, 15, SXMaterialEditor::JobWindow->getHWND(), 0, 0);
+	SXMaterialEditor::TrackBarUDPSW->setMinMax(-100, 100);
+	SXMaterialEditor::TrackBarUDPSW->setTickFrequency(10);
+	SXMaterialEditor::TrackBarUDPSW->addHandler(SXMaterialEditor_TrackBarUDPSW_MouseMove, WM_MOUSEMOVE);
 	
 }
 void SXMaterialEditor::DeleteAllElements()
@@ -1289,7 +1303,7 @@ void SXMaterialEditor::MaterialEditorUpdate(DWORD timeDelta)
 {
 	ID skit = -1;
 
-	if (!SXMaterialEditor::ComboBoxShaders->Focus())
+	if (!SXMaterialEditor::ComboBoxShaders->getFocus())
 	{
 		char vs[1024];
 		char ps[1024];
@@ -1298,12 +1312,12 @@ void SXMaterialEditor::MaterialEditorUpdate(DWORD timeDelta)
 		SML_MtlGetPS(SXMaterialEditor::IDMat, ps);
 
 		if ((skit = SXMaterialEditor::Shaders->Find(vs, ps)) >= 0)
-			SXMaterialEditor::ComboBoxShaders->SetSel(skit + 1);
+			SXMaterialEditor::ComboBoxShaders->setSel(skit + 1);
 		else
-			SXMaterialEditor::ComboBoxShaders->SetSel(0);
+			SXMaterialEditor::ComboBoxShaders->setSel(0);
 	}
 
-	if (!SXMaterialEditor::ComboBoxParamL->Focus())
+	if (!SXMaterialEditor::ComboBoxParamL->getFocus())
 	{
 		float thikcness = SML_MtlGetThickness(SXMaterialEditor::IDMat);
 		float roughness = SML_MtlGetRoughness(SXMaterialEditor::IDMat);
@@ -1311,11 +1325,11 @@ void SXMaterialEditor::MaterialEditorUpdate(DWORD timeDelta)
 
 		skit = -1;
 		if ((skit = SXMaterialEditor::ParamL->Find(thikcness, roughness, f0)) >= 0)
-			SXMaterialEditor::ComboBoxParamL->SetSel(skit + 1);
+			SXMaterialEditor::ComboBoxParamL->setSel(skit + 1);
 		else
-			SXMaterialEditor::ComboBoxParamL->SetSel(0);
+			SXMaterialEditor::ComboBoxParamL->setSel(0);
 	}
 
-	if (SXMaterialEditor::CheckBoxModelRot->GetCheck())
+	if (SXMaterialEditor::CheckBoxModelRot->getCheck())
 		SRender_SimModelSetRotationY(SRender_SimModelGetRotationY() - float(timeDelta) * 0.001f * 0.25);
 }
\ No newline at end of file
diff --git a/source/sxmaterialeditor/material_editor.h b/source/sxmaterialeditor/material_editor.h
index 30c861ea5..c84912bc2 100644
--- a/source/sxmaterialeditor/material_editor.h
+++ b/source/sxmaterialeditor/material_editor.h
@@ -23,7 +23,7 @@
 namespace SXMaterialEditor
 {
 	extern ISXGUIBaseWnd* JobWindow;
-	extern ISXGUIMenu* MainMenu;
+	extern ISXGUIMenuWindow* MainMenu;
 	extern ISXGUIBaseWnd* WindowRender;
 
 	extern ISXGUIToolBar* ToolBar;
diff --git a/source/sxmaterialeditor/sxmaterialeditor.cpp b/source/sxmaterialeditor/sxmaterialeditor.cpp
index 8dd53bd83..baa720559 100644
--- a/source/sxmaterialeditor/sxmaterialeditor.cpp
+++ b/source/sxmaterialeditor/sxmaterialeditor.cpp
@@ -4,9 +4,9 @@ Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
 See the license in LICENSE
 ******************************************************/
 
-/*!
-\file
-Главный файл редактора материалов SXMaterialEditor
+/*!
+\file
+Главный файл редактора материалов SXMaterialEditor
 */
 
 /*!
@@ -422,21 +422,21 @@ ps - отправка в пиксельный шейдер \n
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
 {
 	SkyXEngine_PreviewCreate();
-	SXGUIRegClass::RegGroupBox();
+	SXGUIinit();
 	srand((unsigned int)time(0));
 
 	SXMaterialEditor::InitAllElements();
 	SXMaterialEditor::Nulling();
 	
 
-	SkyXEngine_Init(SXMaterialEditor::WindowRender->GetHWND(), SXMaterialEditor::JobWindow->GetHWND());
+	SkyXEngine_Init(SXMaterialEditor::WindowRender->getHWND(), SXMaterialEditor::JobWindow->getHWND());
 	Core_0SetCVarInt("r_final_image", DS_RT_SCENELIGHT);
 
-	SXMaterialEditor::MainMenu->CheckItem(ID_FINALIMAGE_LIGHTINGSCENE, true);
-	SXMaterialEditor::CheckBoxTBRLighting->SetCheck(true);
+	SXMaterialEditor::MainMenu->setCheckItem(ID_FINALIMAGE_LIGHTINGSCENE, true);
+	SXMaterialEditor::CheckBoxTBRLighting->setCheck(true);
 
-	SXMaterialEditor::CheckBoxTBCam->SetCheck(true);
-	SRender_EditorCameraSetMove(SXMaterialEditor::CheckBoxTBCam->GetCheck());
+	SXMaterialEditor::CheckBoxTBCam->setCheck(true);
+	SRender_EditorCameraSetMove(SXMaterialEditor::CheckBoxTBCam->getCheck());
 
 	char shaderskitpath[1024];
 	sprintf(shaderskitpath, "%s%s", Core_RStringGet(G_RI_STRING_PATH_EXE), "\\shaders_kit.cfg");
@@ -445,10 +445,10 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 
 	for (int i = 0; i < SXMaterialEditor::Shaders->GetCount(); ++i)
 	{
-		SXMaterialEditor::ComboBoxShaders->AddItem(SXMaterialEditor::Shaders->GetName(i));
+		SXMaterialEditor::ComboBoxShaders->addItem(SXMaterialEditor::Shaders->GetName(i));
 	}
 
-	SXMaterialEditor::ComboBoxShaders->SetSel(0);
+	SXMaterialEditor::ComboBoxShaders->setSel(0);
 
 
 	char paramlpath[1024];
@@ -458,16 +458,16 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 
 	for (int i = 0; i < SXMaterialEditor::ParamL->GetCount(); ++i)
 	{
-		SXMaterialEditor::ComboBoxParamL->AddItem(SXMaterialEditor::ParamL->GetName(i));
+		SXMaterialEditor::ComboBoxParamL->addItem(SXMaterialEditor::ParamL->GetName(i));
 	}
 
-	SXMaterialEditor::ComboBoxParamL->SetSel(0);
+	SXMaterialEditor::ComboBoxParamL->setSel(0);
 
 
 	SGCore_SkyBoxLoadTex("sky/sky_2_cube.dds");
-	SXMaterialEditor::EditSkyBox->SetText("sky/sky_2_cube.dds");
+	SXMaterialEditor::EditSkyBox->setText("sky/sky_2_cube.dds");
 		
-	SRender_GetCamera()->SetPosition(&float3(0, 0, -100));
+	SRender_GetCamera()->setPosition(&float3(0, 0, -100));
 
 	
 	SRender_SimModelAdd("sphere.dse");
@@ -483,13 +483,13 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 	SML_LigthsSetEnable(SML_LigthsGetCount() - 1, true);
 	SML_LigthsSetName(SML_LigthsGetCount() - 1, "sun");
 
-	SGCore_LoadTexLoadTextures();
+	SGCore_LoadTexAllLoad();
 
 	SXMaterialEditor::InitMtl(SRender_SimModelGetIDMtl());
 	SXMaterialEditor::IDMat = SRender_SimModelGetIDMtl();
 
 	SkyXEngine_PreviewKill();
-	SXMaterialEditor::JobWindow->Visible(true);
+	SXMaterialEditor::JobWindow->setVisible(true);
 	int result = SkyXEngine_CycleMain();
 	SkyXEngine_Kill();
 	SXMaterialEditor::DeleteAllElements();
diff --git a/source/sxmaterialeditor/trackbars_callback.cpp b/source/sxmaterialeditor/trackbars_callback.cpp
index 960d1e18e..f2a85ae51 100644
--- a/source/sxmaterialeditor/trackbars_callback.cpp
+++ b/source/sxmaterialeditor/trackbars_callback.cpp
@@ -6,9 +6,9 @@ LRESULT SXMaterialEditor_TrackBarPenetration_MouseMove(HWND hwnd, UINT msg, WPAR
 	char thickness[64];
 	thickness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarPenetration->GetPos();
+	int pos = SXMaterialEditor::TrackBarPenetration->getPos();
 	sprintf(thickness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditPenetration->SetText(thickness);
+	SXMaterialEditor::EditPenetration->setText(thickness);
 
 	SML_MtlSetPenetration(SXMaterialEditor::IDMat, float(pos)*0.01f);
 
@@ -20,9 +20,9 @@ LRESULT SXMaterialEditor_TrackBarRoughness_MouseMove(HWND hwnd, UINT msg, WPARAM
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarRoughness->GetPos();
+	int pos = SXMaterialEditor::TrackBarRoughness->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditRoughness->SetText(roughness);
+	SXMaterialEditor::EditRoughness->setText(roughness);
 
 	SML_MtlSetRoughness(SXMaterialEditor::IDMat, float(pos)*0.01f);
 
@@ -34,9 +34,9 @@ LRESULT SXMaterialEditor_TrackBarThickness_MouseMove(HWND hwnd, UINT msg, WPARAM
 	char thickness[64];
 	thickness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarThickness->GetPos();
+	int pos = SXMaterialEditor::TrackBarThickness->getPos();
 	sprintf(thickness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditThickness->SetText(thickness);
+	SXMaterialEditor::EditThickness->setText(thickness);
 
 	SML_MtlSetThickness(SXMaterialEditor::IDMat, float(pos)*0.01f);
 
@@ -48,9 +48,9 @@ LRESULT SXMaterialEditor_TrackBarF0_MouseMove(HWND hwnd, UINT msg, WPARAM wParam
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarF0->GetPos();
+	int pos = SXMaterialEditor::TrackBarF0->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditF0->SetText(roughness);
+	SXMaterialEditor::EditF0->setText(roughness);
 
 	SML_MtlSetF0(SXMaterialEditor::IDMat, float(pos)*0.01f);
 
@@ -64,9 +64,9 @@ LRESULT SXMaterialEditor_TrackBarUDVSX_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDVSX->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDVSX->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDVSX->SetText(roughness);
+	SXMaterialEditor::EditUDVSX->setText(roughness);
 
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 0, float(pos)*0.01f);
 
@@ -78,9 +78,9 @@ LRESULT SXMaterialEditor_TrackBarUDVSY_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDVSY->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDVSY->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDVSY->SetText(roughness);
+	SXMaterialEditor::EditUDVSY->setText(roughness);
 
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 1, float(pos)*0.01f);
 
@@ -92,9 +92,9 @@ LRESULT SXMaterialEditor_TrackBarUDVSZ_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDVSZ->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDVSZ->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDVSZ->SetText(roughness);
+	SXMaterialEditor::EditUDVSZ->setText(roughness);
 
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 2, float(pos)*0.01f);
 
@@ -106,9 +106,9 @@ LRESULT SXMaterialEditor_TrackBarUDVSW_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDVSW->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDVSW->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDVSW->SetText(roughness);
+	SXMaterialEditor::EditUDVSW->setText(roughness);
 
 	SML_MtlSetUDVS(SXMaterialEditor::IDMat, 3, float(pos)*0.01f);
 
@@ -122,9 +122,9 @@ LRESULT SXMaterialEditor_TrackBarUDPSX_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDPSX->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDPSX->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDPSX->SetText(roughness);
+	SXMaterialEditor::EditUDPSX->setText(roughness);
 
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 0, float(pos)*0.01f);
 
@@ -136,9 +136,9 @@ LRESULT SXMaterialEditor_TrackBarUDPSY_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDPSY->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDPSY->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDPSY->SetText(roughness);
+	SXMaterialEditor::EditUDPSY->setText(roughness);
 
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 1, float(pos)*0.01f);
 
@@ -150,9 +150,9 @@ LRESULT SXMaterialEditor_TrackBarUDPSZ_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDPSZ->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDPSZ->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDPSZ->SetText(roughness);
+	SXMaterialEditor::EditUDPSZ->setText(roughness);
 
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 2, float(pos)*0.01f);
 
@@ -164,9 +164,9 @@ LRESULT SXMaterialEditor_TrackBarUDPSW_MouseMove(HWND hwnd, UINT msg, WPARAM wPa
 	char roughness[64];
 	roughness[0] = '0';
 
-	int pos = SXMaterialEditor::TrackBarUDPSW->GetPos();
+	int pos = SXMaterialEditor::TrackBarUDPSW->getPos();
 	sprintf(roughness, "%.2f", float(pos)*0.01f);
-	SXMaterialEditor::EditUDPSW->SetText(roughness);
+	SXMaterialEditor::EditUDPSW->setText(roughness);
 
 	SML_MtlSetUDPS(SXMaterialEditor::IDMat, 3, float(pos)*0.01f);
 
diff --git a/source/sxparticleseditor/callback_common.cpp b/source/sxparticleseditor/callback_common.cpp
index 38c29fbd6..1ebdc8260 100644
--- a/source/sxparticleseditor/callback_common.cpp
+++ b/source/sxparticleseditor/callback_common.cpp
@@ -45,18 +45,18 @@ LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
 	else if (id == ID_VIEW_GRID)
 	{
-		SXParticlesEditor::MainMenu->CheckItem(id, !SXParticlesEditor::MainMenu->GetCheckedItem(id));
-		SRender_EditorSetRenderGrid(SXParticlesEditor::MainMenu->GetCheckedItem(id));
+		SXParticlesEditor::MainMenu->setCheckItem(id, !SXParticlesEditor::MainMenu->getCheckedItem(id));
+		SRender_EditorSetRenderGrid(SXParticlesEditor::MainMenu->getCheckedItem(id));
 	}
 	else if (id == ID_VIEW_AXES)
 	{
-		SXParticlesEditor::MainMenu->CheckItem(id, !SXParticlesEditor::MainMenu->GetCheckedItem(id));
-		SRender_EditorSetRenderAxesStatic(SXParticlesEditor::MainMenu->GetCheckedItem(id));
+		SXParticlesEditor::MainMenu->setCheckItem(id, !SXParticlesEditor::MainMenu->getCheckedItem(id));
+		SRender_EditorSetRenderAxesStatic(SXParticlesEditor::MainMenu->getCheckedItem(id));
 	}
 	else if (id == ID_VIEW_BOUND)
 	{
-		SXParticlesEditor::MainMenu->CheckItem(id, !SXParticlesEditor::MainMenu->GetCheckedItem(id));
-		SXParticlesEditor::canRenderBound = SXParticlesEditor::MainMenu->GetCheckedItem(id);
+		SXParticlesEditor::MainMenu->setCheckItem(id, !SXParticlesEditor::MainMenu->getCheckedItem(id));
+		SXParticlesEditor::canRenderBound = SXParticlesEditor::MainMenu->getCheckedItem(id);
 	}
 
 	return 0;
@@ -68,35 +68,35 @@ LRESULT SXParticlesEditor_ToolBar1_CallWmCommand(HWND hwnd, UINT msg, WPARAM wPa
 	HWND handle_elem = (HWND)(lParam);
 	if (Notification == BN_CLICKED)
 	{
-		if (SXParticlesEditor::ButtonTBReOpen->GetHWND() == handle_elem)
+		if (SXParticlesEditor::ButtonTBReOpen->getHWND() == handle_elem)
 		{
 			SXParticlesEditor::EffReOpen();
 		}
-		else if (SXParticlesEditor::ButtonTBSave->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ButtonTBSave->getHWND() == handle_elem)
 		{
 			SXParticlesEditor::EffSave();
 		}
 		
 
-		else if (SXParticlesEditor::CheckBoxTBGrid->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxTBGrid->getHWND() == handle_elem)
 		{
-			SXParticlesEditor::MainMenu->CheckItem(ID_VIEW_GRID, SXParticlesEditor::CheckBoxTBGrid->GetCheck());
-			SRender_EditorSetRenderGrid(SXParticlesEditor::CheckBoxTBGrid->GetCheck());
+			SXParticlesEditor::MainMenu->setCheckItem(ID_VIEW_GRID, SXParticlesEditor::CheckBoxTBGrid->getCheck());
+			SRender_EditorSetRenderGrid(SXParticlesEditor::CheckBoxTBGrid->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxTBAxes->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxTBAxes->getHWND() == handle_elem)
 		{
-			SXParticlesEditor::MainMenu->CheckItem(ID_VIEW_AXES, SXParticlesEditor::CheckBoxTBAxes->GetCheck());
-			SRender_EditorSetRenderAxesStatic(SXParticlesEditor::CheckBoxTBAxes->GetCheck());
+			SXParticlesEditor::MainMenu->setCheckItem(ID_VIEW_AXES, SXParticlesEditor::CheckBoxTBAxes->getCheck());
+			SRender_EditorSetRenderAxesStatic(SXParticlesEditor::CheckBoxTBAxes->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxTBBound->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxTBBound->getHWND() == handle_elem)
 		{
-			SXParticlesEditor::MainMenu->CheckItem(ID_VIEW_BOUND, SXParticlesEditor::CheckBoxTBBound->GetCheck());
-			SXParticlesEditor::canRenderBound = SXParticlesEditor::CheckBoxTBBound->GetCheck();
+			SXParticlesEditor::MainMenu->setCheckItem(ID_VIEW_BOUND, SXParticlesEditor::CheckBoxTBBound->getCheck());
+			SXParticlesEditor::canRenderBound = SXParticlesEditor::CheckBoxTBBound->getCheck();
 		}
 
-		else if (SXParticlesEditor::CheckBoxTBPlay->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxTBPlay->getHWND() == handle_elem)
 		{
-			Core_TimeWorkingSet(Core_RIntGet(G_RI_INT_TIMER_RENDER), SXParticlesEditor::CheckBoxTBPlay->GetCheck());
+			Core_TimeWorkingSet(Core_RIntGet(G_RI_INT_TIMER_RENDER), SXParticlesEditor::CheckBoxTBPlay->getCheck());
 			if (SXParticlesEditor::SelEffID >= 0)
 			{
 				if (SXParticlesEditor::SelEmitterID >= 0 && !SPE_EmitterEnableGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID))
@@ -105,29 +105,29 @@ LRESULT SXParticlesEditor_ToolBar1_CallWmCommand(HWND hwnd, UINT msg, WPARAM wPa
 					SXParticlesEditor_ListBoxEffects_Click(hwnd, msg, wParam, lParam);
 			}
 			else
-				SXParticlesEditor::CheckBoxTBPlay->SetCheck(false);
+				SXParticlesEditor::CheckBoxTBPlay->setCheck(false);
 
-			SXParticlesEditor::CheckBoxTBPause->SetCheck(false);
-			SXParticlesEditor::CheckBoxTBStop->SetCheck(false);
+			SXParticlesEditor::CheckBoxTBPause->setCheck(false);
+			SXParticlesEditor::CheckBoxTBStop->setCheck(false);
 		}
-		else if (SXParticlesEditor::CheckBoxTBPause->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxTBPause->getHWND() == handle_elem)
 		{
-			if (SXParticlesEditor::CheckBoxTBPlay->GetCheck())
-				Core_TimeWorkingSet(Core_RIntGet(G_RI_INT_TIMER_RENDER), !SXParticlesEditor::CheckBoxTBPause->GetCheck());
+			if (SXParticlesEditor::CheckBoxTBPlay->getCheck())
+				Core_TimeWorkingSet(Core_RIntGet(G_RI_INT_TIMER_RENDER), !SXParticlesEditor::CheckBoxTBPause->getCheck());
 			else
-				SXParticlesEditor::CheckBoxTBPause->SetCheck(false);
+				SXParticlesEditor::CheckBoxTBPause->setCheck(false);
 
-			SXParticlesEditor::CheckBoxTBPlay->SetCheck(false);
-			SXParticlesEditor::CheckBoxTBStop->SetCheck(false);
+			SXParticlesEditor::CheckBoxTBPlay->setCheck(false);
+			SXParticlesEditor::CheckBoxTBStop->setCheck(false);
 		}
-		else if (SXParticlesEditor::CheckBoxTBStop->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxTBStop->getHWND() == handle_elem)
 		{
 			Core_TimeWorkingSet(Core_RIntGet(G_RI_INT_TIMER_RENDER), true);
 			if (SXParticlesEditor::SelEffID >= 0)
 				SPE_EffectEnableSet(SXParticlesEditor::SelEffID, false);
 
-			SXParticlesEditor::CheckBoxTBPlay->SetCheck(false);
-			SXParticlesEditor::CheckBoxTBPause->SetCheck(false);
+			SXParticlesEditor::CheckBoxTBPlay->setCheck(false);
+			SXParticlesEditor::CheckBoxTBPause->setCheck(false);
 		}
 	}
 
@@ -172,11 +172,11 @@ LRESULT SXParticlesEditor_ButtonTextureSel_Click(HWND hwnd, UINT msg, WPARAM wPa
 	char tmppath[1024];
 	tmppath[0] = 0;
 	char tmpname[1024];
-	SXGUIDialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
+	gui_func::dialogs::SelectFile(SXGUI_DIALOG_FILE_OPEN, tmppath, 0, Core_RStringGet(G_RI_STRING_PATH_GS_TEXTURES), FILE_FILTER_TEXTURE);
 	if (def_str_validate(tmppath))
 	{
 		StrCutName(tmppath, tmpname);
-		SXParticlesEditor::EditTexture->SetText(tmpname);
+		SXParticlesEditor::EditTexture->setText(tmpname);
 
 		if (SXParticlesEditor::SelEffID >= 0 && SXParticlesEditor::SelEmitterID >= 0)
 			SPE_EmitterTextureSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, tmpname);
@@ -197,169 +197,169 @@ LRESULT SXParticlesEditor_GroupBoxData2_CallWmCommand(HWND hwnd, UINT msg, WPARA
 	{
 		HWND handle_elem = (HWND)(lParam);
 
-		if (SXParticlesEditor::CheckBoxTrack->GetHWND() == handle_elem)
+		if (SXParticlesEditor::CheckBoxTrack->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Track, SXParticlesEditor::CheckBoxTrack->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Track, SXParticlesEditor::CheckBoxTrack->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxAccelerationDispXNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxAccelerationDispXNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispXNeg, SXParticlesEditor::CheckBoxAccelerationDispXNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispXNeg, SXParticlesEditor::CheckBoxAccelerationDispXNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxAccelerationDispYNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxAccelerationDispYNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispYNeg, SXParticlesEditor::CheckBoxAccelerationDispYNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispYNeg, SXParticlesEditor::CheckBoxAccelerationDispYNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxAccelerationDispZNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxAccelerationDispZNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispZNeg, SXParticlesEditor::CheckBoxAccelerationDispZNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispZNeg, SXParticlesEditor::CheckBoxAccelerationDispZNeg->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxVelocityDispXNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxVelocityDispXNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispXNeg, SXParticlesEditor::CheckBoxVelocityDispXNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispXNeg, SXParticlesEditor::CheckBoxVelocityDispXNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxVelocityDispYNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxVelocityDispYNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispYNeg, SXParticlesEditor::CheckBoxVelocityDispYNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispYNeg, SXParticlesEditor::CheckBoxVelocityDispYNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxVelocityDispZNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxVelocityDispZNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispZNeg, SXParticlesEditor::CheckBoxVelocityDispZNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispZNeg, SXParticlesEditor::CheckBoxVelocityDispZNeg->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXNeg, SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXNeg, SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxSpawnOriginDispXPos->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxSpawnOriginDispXPos->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXPos, SXParticlesEditor::CheckBoxSpawnOriginDispXPos->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXPos, SXParticlesEditor::CheckBoxSpawnOriginDispXPos->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYNeg, SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYNeg, SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxSpawnOriginDispYPos->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxSpawnOriginDispYPos->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYPos, SXParticlesEditor::CheckBoxSpawnOriginDispYPos->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYPos, SXParticlesEditor::CheckBoxSpawnOriginDispYPos->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZNeg, SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZNeg, SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxSpawnOriginDispZPos->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxSpawnOriginDispZPos->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZPos, SXParticlesEditor::CheckBoxSpawnOriginDispZPos->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZPos, SXParticlesEditor::CheckBoxSpawnOriginDispZPos->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxLighting->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxLighting->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Lighting, SXParticlesEditor::CheckBoxLighting->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Lighting, SXParticlesEditor::CheckBoxLighting->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxFigureRotRand->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxFigureRotRand->getHWND() == handle_elem)
 		{
-			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureRotRand, SXParticlesEditor::CheckBoxFigureRotRand->GetCheck());
+			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureRotRand, SXParticlesEditor::CheckBoxFigureRotRand->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxFigureTapX->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxFigureTapX->getHWND() == handle_elem)
 		{
-			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapX, SXParticlesEditor::CheckBoxFigureTapX->GetCheck());
+			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapX, SXParticlesEditor::CheckBoxFigureTapX->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxFigureTapY->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxFigureTapY->getHWND() == handle_elem)
 		{
-			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapY, SXParticlesEditor::CheckBoxFigureTapY->GetCheck());
+			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapY, SXParticlesEditor::CheckBoxFigureTapY->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxFigureTapZ->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxFigureTapZ->getHWND() == handle_elem)
 		{
-			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapZ, SXParticlesEditor::CheckBoxFigureTapZ->GetCheck());
+			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapZ, SXParticlesEditor::CheckBoxFigureTapZ->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxCircle->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxCircle->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircle, SXParticlesEditor::CheckBoxCircle->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircle, SXParticlesEditor::CheckBoxCircle->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxCircleAngleDispNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxCircleAngleDispNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDispNeg, SXParticlesEditor::CheckBoxCircleAngleDispNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDispNeg, SXParticlesEditor::CheckBoxCircleAngleDispNeg->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxRotate->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxRotate->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotate, SXParticlesEditor::CheckBoxRotate->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotate, SXParticlesEditor::CheckBoxRotate->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxRotateAngleDispNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxRotateAngleDispNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDispNeg, SXParticlesEditor::CheckBoxRotateAngleDispNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDispNeg, SXParticlesEditor::CheckBoxRotateAngleDispNeg->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxDeviation->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxDeviation->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviation, SXParticlesEditor::CheckBoxDeviation->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviation, SXParticlesEditor::CheckBoxDeviation->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDispNeg, SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDispNeg, SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxDeviationTapX->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxDeviationTapX->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapX, SXParticlesEditor::CheckBoxDeviationTapX->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapX, SXParticlesEditor::CheckBoxDeviationTapX->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxDeviationTapY->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxDeviationTapY->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapY, SXParticlesEditor::CheckBoxDeviationTapY->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapY, SXParticlesEditor::CheckBoxDeviationTapY->getCheck());
 		}
-		else if (SXParticlesEditor::CheckBoxDeviationTapZ->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxDeviationTapZ->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapZ, SXParticlesEditor::CheckBoxDeviationTapZ->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapZ, SXParticlesEditor::CheckBoxDeviationTapZ->getCheck());
 		}
 
-		else if (SXParticlesEditor::CheckBoxCollisionDelete->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::CheckBoxCollisionDelete->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CollisionDelete, SXParticlesEditor::CheckBoxCollisionDelete->GetCheck());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CollisionDelete, SXParticlesEditor::CheckBoxCollisionDelete->getCheck());
 		}
 	}
 	else if (Notification == CBN_SELCHANGE)
 	{
 		HWND handle_elem = (HWND)(lParam);
 		
-		if (SXParticlesEditor::ComboBoxBoundType->GetHWND() == handle_elem)
+		if (SXParticlesEditor::ComboBoxBoundType->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundType, (PARTICLESTYPE_BOUND)SXParticlesEditor::ComboBoxBoundType->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundType, (PARTICLESTYPE_BOUND)SXParticlesEditor::ComboBoxBoundType->getSel());
 		}
-		else if (SXParticlesEditor::ComboBoxSpawnPosType->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxSpawnPosType->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnPosType, (PARTICLESTYPE_SPAWNPOS)SXParticlesEditor::ComboBoxSpawnPosType->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnPosType, (PARTICLESTYPE_SPAWNPOS)SXParticlesEditor::ComboBoxSpawnPosType->getSel());
 		}
-		else if (SXParticlesEditor::ComboBoxFigureType->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxFigureType->getHWND() == handle_elem)
 		{
-			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureType, (PARTICLESTYPE_FIGURE)SXParticlesEditor::ComboBoxFigureType->GetSel());
+			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureType, (PARTICLESTYPE_FIGURE)SXParticlesEditor::ComboBoxFigureType->getSel());
 		}
-		else if (SXParticlesEditor::ComboBoxAlphaBlendType->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxAlphaBlendType->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaBlendType, (PARTICLESTYPE_ALPHABLEND)SXParticlesEditor::ComboBoxAlphaBlendType->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaBlendType, (PARTICLESTYPE_ALPHABLEND)SXParticlesEditor::ComboBoxAlphaBlendType->getSel());
 		}
 
-		else if (SXParticlesEditor::ComboBoxAlphaDependAge->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxAlphaDependAge->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaDependAge, (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxAlphaDependAge->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaDependAge, (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxAlphaDependAge->getSel());
 		}
-		else if (SXParticlesEditor::ComboBoxSizeDependAge->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxSizeDependAge->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDependAge, (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxSizeDependAge->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDependAge, (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxSizeDependAge->getSel());
 		}
 
-		else if (SXParticlesEditor::ComboBoxCircleAxis->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxCircleAxis->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAxis, (PARTICLES_AXIS)SXParticlesEditor::ComboBoxCircleAxis->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAxis, (PARTICLES_AXIS)SXParticlesEditor::ComboBoxCircleAxis->getSel());
 		}
 
-		else if (SXParticlesEditor::ComboBoxDeviationType->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxDeviationType->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationType, (PARTICLESTYPE_DEVIATION)SXParticlesEditor::ComboBoxDeviationType->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationType, (PARTICLESTYPE_DEVIATION)SXParticlesEditor::ComboBoxDeviationType->getSel());
 		}
-		else if (SXParticlesEditor::ComboBoxDeviationAxis->GetHWND() == handle_elem)
+		else if (SXParticlesEditor::ComboBoxDeviationAxis->getHWND() == handle_elem)
 		{
-			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAxis, (PARTICLES_AXIS)SXParticlesEditor::ComboBoxDeviationAxis->GetSel());
+			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAxis, (PARTICLES_AXIS)SXParticlesEditor::ComboBoxDeviationAxis->getSel());
 		}
 	}
 	return 0;
@@ -377,12 +377,12 @@ LRESULT SXParticlesEditor_EditEffName_Enter(HWND hwnd, UINT msg, WPARAM wParam,
 	if (def_str_validate(ttext))
 	{
 		SPE_EffectNameSet(SXParticlesEditor::SelEffID, ttext);
-		SXParticlesEditor::ListBoxEffects->SetTextItem(SXParticlesEditor::ListBoxEffects->GetSel(), ttext);
+		SXParticlesEditor::ListBoxEffects->setItemText(SXParticlesEditor::ListBoxEffects->getSel(), ttext);
 	}
 	else
 	{
 		SPE_EffectNameGet(SXParticlesEditor::SelEffID, ttext);
-		SXParticlesEditor::EditEffName->SetText(ttext);
+		SXParticlesEditor::EditEffName->setText(ttext);
 		MessageBox(0, "unresolved name", 0, 0);
 	}
 	return 0;
@@ -401,22 +401,22 @@ LRESULT SXParticlesEditor_Edits_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 		return 0;
 	}
 
-	if (hwnd == SXParticlesEditor::EditName->GetHWND())
+	if (hwnd == SXParticlesEditor::EditName->getHWND())
 	{
 		if (def_str_validate(ttext))
 		{
 			SPE_EmitterNameSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ttext);
-			SXParticlesEditor::ListBoxEmitters->SetTextItem(SXParticlesEditor::ListBoxEmitters->GetSel(), ttext);
+			SXParticlesEditor::ListBoxEmitters->setItemText(SXParticlesEditor::ListBoxEmitters->getSel(), ttext);
 		}
 		else
 		{
 			SPE_EmitterNameGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ttext);
-			SXParticlesEditor::EditName->SetText(ttext);
+			SXParticlesEditor::EditName->setText(ttext);
 			MessageBox(0,"unresolved name",0,0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditCount->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditCount->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint > 0)
@@ -424,230 +424,230 @@ LRESULT SXParticlesEditor_Edits_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 		else
 		{
 			MessageBox(0, "unresolved count particles", 0, 0);
-			SXParticlesEditor::EditCount->SetText(String(SPE_EmitterCountGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID)).c_str());
+			SXParticlesEditor::EditCount->setText(String(SPE_EmitterCountGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID)).c_str());
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditColorCoef->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditColorCoef->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ColorCoef, String(ttext).ToDouble());
 	}
 
-	else if (hwnd == SXParticlesEditor::EditColorR->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditColorR->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.x, String(ttext).ToDouble());
 	}
-	else if (hwnd == SXParticlesEditor::EditColorG->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditColorG->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.y, String(ttext).ToDouble());
 	}
-	else if (hwnd == SXParticlesEditor::EditColorB->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditColorB->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.z, String(ttext).ToDouble());
 	}
-	else if (hwnd == SXParticlesEditor::EditColorA->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditColorA->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.w, String(ttext).ToDouble());
 	}
 
-	else if (hwnd == SXParticlesEditor::EditReCreateCount->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditReCreateCount->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ReCreateCount, String(ttext).ToInt());
 	}
 
-	else if (hwnd == SXParticlesEditor::EditSoftCoef->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSoftCoef->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SoftCoef, String(ttext).ToDouble());
 	}
-	else if (hwnd == SXParticlesEditor::EditRefractionCoef->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditRefractionCoef->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, RefractionCoef, String(ttext).ToDouble());
 	}
-	else if (hwnd == SXParticlesEditor::EditTransparencyCoef->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditTransparencyCoef->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TransparencyCoef, String(ttext).ToDouble());
 	}
 
-	else if (hwnd == SXParticlesEditor::EditFigureCountQuads->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditFigureCountQuads->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint > 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureCountQuads, tint)
 		else
 		{
-			SXParticlesEditor::EditFigureCountQuads->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureCountQuads)).c_str());
+			SXParticlesEditor::EditFigureCountQuads->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureCountQuads)).c_str());
 			MessageBox(0, "unresolved count quads", 0, 0);
 			return 0;
 		}
 	}
 
-	else if (hwnd == SXParticlesEditor::EditTimeLife->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditTimeLife->getHWND())
 	{
 		sscanf(ttext, "%d", &tlong);
 		if (tlong >= 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLife, tlong)
 		else
 		{
-			SXParticlesEditor::EditTimeLife->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLife)).c_str());
+			SXParticlesEditor::EditTimeLife->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLife)).c_str());
 			MessageBox(0, "unresolved time", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditTimeLifeDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditTimeLifeDisp->getHWND())
 	{
 		sscanf(ttext, "%d", &tlong);
 		if (tlong >= 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLifeDisp, tlong)
 		else
 		{
-			SXParticlesEditor::EditTimeLifeDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLifeDisp)).c_str());
+			SXParticlesEditor::EditTimeLifeDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLifeDisp)).c_str());
 			MessageBox(0, "unresolved dispersion", 0, 0);
 			return 0;
 		}
 	}
 
-	else if (hwnd == SXParticlesEditor::EditSizeX->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSizeX->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		if (tfloat > 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.x, tfloat)
 		else
 		{
-			SXParticlesEditor::EditSizeX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.x)).c_str());
+			SXParticlesEditor::EditSizeX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.x)).c_str());
 			MessageBox(0, "unresolved size", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditSizeY->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSizeY->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		if (tfloat > 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.y, tfloat)
 		else
 		{
-			SXParticlesEditor::EditSizeY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.y)).c_str());
+			SXParticlesEditor::EditSizeY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.y)).c_str());
 			MessageBox(0, "unresolved size", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditSizeDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSizeDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		if (tfloat >= 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDisp, tfloat)
 		else
 		{
-			SXParticlesEditor::EditSizeDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDisp)).c_str());
+			SXParticlesEditor::EditSizeDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDisp)).c_str());
 			MessageBox(0, "unresolved dispersion", 0, 0);
 			return 0;
 		}
 	}
 
-	else if (hwnd == SXParticlesEditor::EditTrackSize->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditTrackSize->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackSize, String(ttext).ToDouble());
 	}
-	else if (hwnd == SXParticlesEditor::EditTrackTime->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditTrackTime->getHWND())
 	{
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackTime, String(ttext).ToDouble());
 	}
 
-	else if (hwnd == SXParticlesEditor::EditAnimTexCountCadrsX->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAnimTexCountCadrsX->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint >= 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsX, tint)
 		else
 		{
-			SXParticlesEditor::EditAnimTexCountCadrsX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsX)).c_str());
+			SXParticlesEditor::EditAnimTexCountCadrsX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsX)).c_str());
 			MessageBox(0, "unresolved count cadrs", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditAnimTexCountCadrsY->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAnimTexCountCadrsY->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint >= 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsY, tint)
 		else
 		{
-			SXParticlesEditor::EditAnimTexCountCadrsY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsY)).c_str());
+			SXParticlesEditor::EditAnimTexCountCadrsY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsY)).c_str());
 			MessageBox(0, "unresolved count cadrs", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditAnimTexRate->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAnimTexRate->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint >= 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRate, tint)
 		else
 		{
-			SXParticlesEditor::EditAnimTexRate->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRate)).c_str());
+			SXParticlesEditor::EditAnimTexRate->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRate)).c_str());
 			MessageBox(0, "unresolved rate", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditAnimTexRateDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAnimTexRateDisp->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint >= 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRateDisp, tint)
 		else
 		{
-			SXParticlesEditor::EditAnimTexRateDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRateDisp)).c_str());
+			SXParticlesEditor::EditAnimTexRateDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRateDisp)).c_str());
 			MessageBox(0, "unresolved dispersion", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditAnimTexStartCadr->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAnimTexStartCadr->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint >= 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadr, tint)
 		else
 		{
-			SXParticlesEditor::EditAnimTexStartCadr->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadr)).c_str());
+			SXParticlesEditor::EditAnimTexStartCadr->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadr)).c_str());
 			MessageBox(0, "unresolved start cadr", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditAnimTexStartCadrDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAnimTexStartCadrDisp->getHWND())
 	{
 		sscanf(ttext, "%d", &tint);
 		if (tint >= 0)
 			SPE_EmitterSetR(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadrDisp, tint)
 		else
 		{
-			SXParticlesEditor::EditAnimTexStartCadrDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadrDisp)).c_str());
+			SXParticlesEditor::EditAnimTexStartCadrDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadrDisp)).c_str());
 			MessageBox(0, "unresolved dispersion", 0, 0);
 			return 0;
 		}
 	}
 
-	else if (hwnd == SXParticlesEditor::EditSpawnOriginX->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSpawnOriginX->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.x, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditSpawnOriginY->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSpawnOriginY->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.y, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditSpawnOriginZ->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSpawnOriginZ->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.z, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditSpawnOriginDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSpawnOriginDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		if (tfloat >= 0.f)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOriginDisp, tfloat)
 		else
 		{
-			SXParticlesEditor::EditSpawnOriginDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOriginDisp)).c_str());
+			SXParticlesEditor::EditSpawnOriginDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOriginDisp)).c_str());
 			MessageBox(0, "unresolved dispersion", 0, 0);
 			return 0;
 		}
@@ -655,147 +655,147 @@ LRESULT SXParticlesEditor_Edits_Enter(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
 		tfloat = SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOriginDisp);
 		int qwert = 0;
 	}
-	else if (hwnd == SXParticlesEditor::EditSpawnNextTime->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSpawnNextTime->getHWND())
 	{
 		sscanf(ttext, "%d", &tlong);
 		if (tlong >= 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTime, tlong)
 		else
 		{
-			SXParticlesEditor::EditSpawnNextTime->SetText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTime)).c_str());
+			SXParticlesEditor::EditSpawnNextTime->setText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTime)).c_str());
 			MessageBox(0, "unresolved time", 0, 0);
 			return 0;
 		}
 	}
-	else if (hwnd == SXParticlesEditor::EditSpawnNextTimeDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditSpawnNextTimeDisp->getHWND())
 	{
 		sscanf(ttext, "%d", &tlong);
 		if (tlong >= 0)
 			SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTimeDisp, tlong)
 		else
 		{
-			SXParticlesEditor::EditSpawnNextTimeDisp->SetText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTimeDisp)).c_str());
+			SXParticlesEditor::EditSpawnNextTimeDisp->setText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTimeDisp)).c_str());
 			MessageBox(0, "unresolved dispersion", 0, 0);
 			return 0;
 		}
 	}
 
-	else if (hwnd == SXParticlesEditor::EditBoundVec1X->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec1X->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.x, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec1Y->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec1Y->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.y, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec1Z->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec1Z->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.z, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec1W->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec1W->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.w, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec2X->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec2X->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.x, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec2Y->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec2Y->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.y, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec2Z->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec2Z->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.z, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditBoundVec2W->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditBoundVec2W->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.w, tfloat);
 	}
 
-	else if (hwnd == SXParticlesEditor::EditVelocityX->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditVelocityX->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.x, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditVelocityY->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditVelocityY->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.y, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditVelocityZ->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditVelocityZ->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.z, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditVelocityDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditVelocityDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDisp, tfloat);
 	}
 
-	else if (hwnd == SXParticlesEditor::EditAccelerationX->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAccelerationX->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.x, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditAccelerationY->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAccelerationY->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.y, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditAccelerationZ->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAccelerationZ->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.z, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditAccelerationDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditAccelerationDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDisp, tfloat);
 	}
 
-	else if (hwnd == SXParticlesEditor::EditCircleAngle->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditCircleAngle->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngle, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditCircleAngleDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditCircleAngleDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDisp, tfloat);
 	}
 
-	else if (hwnd == SXParticlesEditor::EditRotateAngle->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditRotateAngle->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngle, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditRotateAngleDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditRotateAngleDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDisp, tfloat);
 	}
 
-	else if (hwnd == SXParticlesEditor::EditDeviationAmplitude->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditDeviationAmplitude->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAmplitude, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditDeviationCoefAngle->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditDeviationCoefAngle->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngle, tfloat);
 	}
-	else if (hwnd == SXParticlesEditor::EditDeviationCoefAngleDisp->GetHWND())
+	else if (hwnd == SXParticlesEditor::EditDeviationCoefAngleDisp->getHWND())
 	{
 		sscanf(ttext, "%f", &tfloat);
 		SPE_EmitterSet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDisp, tfloat);
diff --git a/source/sxparticleseditor/callback_list.cpp b/source/sxparticleseditor/callback_list.cpp
index bc71b430f..eb5da9a69 100644
--- a/source/sxparticleseditor/callback_list.cpp
+++ b/source/sxparticleseditor/callback_list.cpp
@@ -3,14 +3,14 @@
 
 LRESULT SXParticlesEditor_ListBoxEffects_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int sel = SXParticlesEditor::ListBoxEffects->GetSel();
+	int sel = SXParticlesEditor::ListBoxEffects->getSel();
 	if (sel < 0)
 		return 0;
 
-	SXParticlesEditor::ListBoxEmitters->Clear();
+	SXParticlesEditor::ListBoxEmitters->clear();
 	if (SPE_EffectCountGet() == 0)
 	{
-		SXParticlesEditor::ListBoxEffects->Clear();
+		SXParticlesEditor::ListBoxEffects->clear();
 		SXParticlesEditor::EffVisible(true, true);
 		SXParticlesEditor::TabsVisible(false);
 		return 0;
@@ -26,10 +26,10 @@ LRESULT SXParticlesEditor_ListBoxEffects_Click(HWND hwnd, UINT msg, WPARAM wPara
 		SPE_EmitterNameGet(SXParticlesEditor::SelEffID, i, partname);
 		if (partname[0] == 0)
 			partname[0] = '!';
-		SXParticlesEditor::ListBoxEmitters->AddItem(partname);
+		SXParticlesEditor::ListBoxEmitters->addItem(partname);
 	}
 
-	SXParticlesEditor::StaticEmittersCount->SetText(String(partcount).c_str());
+	SXParticlesEditor::StaticEmittersCount->setText(String(partcount).c_str());
 
 	if (hwnd != 0)
 		SXParticlesEditor::TabsVisible(false);
@@ -58,7 +58,7 @@ LRESULT SXParticlesEditor_ListBoxEmitters_Click(HWND hwnd, UINT msg, WPARAM wPar
 	if (SXParticlesEditor::SelEffID < 0)
 		return 0;
 
-	SXParticlesEditor::SelEmitterID = SXParticlesEditor::ListBoxEmitters->GetSel();
+	SXParticlesEditor::SelEmitterID = SXParticlesEditor::ListBoxEmitters->getSel();
 	int countemitters = SPE_EmitterSCountGet(SXParticlesEditor::SelEffID);
 	if (SXParticlesEditor::SelEmitterID < 0 || countemitters <= 0 || SPE_EmitterSCountGet(SXParticlesEditor::SelEffID) <= SXParticlesEditor::SelEmitterID)
 		return 0;
@@ -113,16 +113,16 @@ LRESULT SXParticlesEditor_ButtonEffectsDelete_Click(HWND hwnd, UINT msg, WPARAM
 	SPE_EffectDelete(SXParticlesEditor::SelEffID);
 
 	SXParticlesEditor::SelEffID = -1;
-	SXParticlesEditor::ListBoxEmitters->Clear();
-	SXParticlesEditor::StaticEmittersCount->SetText("0");
+	SXParticlesEditor::ListBoxEmitters->clear();
+	SXParticlesEditor::StaticEmittersCount->setText("0");
 
-	int sel = SXParticlesEditor::ListBoxEffects->GetSel();
-	SXParticlesEditor::ListBoxEffects->DeleteItem(SXParticlesEditor::ListBoxEffects->GetSel());
-	SXParticlesEditor::StaticEffectsCount->SetText(String(SPE_EffectCountGet()).c_str());
+	int sel = SXParticlesEditor::ListBoxEffects->getSel();
+	SXParticlesEditor::ListBoxEffects->deleteItem(SXParticlesEditor::ListBoxEffects->getSel());
+	SXParticlesEditor::StaticEffectsCount->setText(String(SPE_EffectCountGet()).c_str());
 
 	if (SPE_EffectCountGet() > 0)
 	{
-		SXParticlesEditor::ListBoxEffects->SetSel((sel < SXParticlesEditor::ListBoxEffects->GetCountItem() ? sel : sel - 1));
+		SXParticlesEditor::ListBoxEffects->setSel((sel < SXParticlesEditor::ListBoxEffects->getItemCount() ? sel : sel - 1));
 		SXParticlesEditor_ListBoxEffects_Click(hwnd, msg, wParam, lParam);
 	}
 	else
@@ -186,13 +186,13 @@ LRESULT SXParticlesEditor_ButtonEmittersDelete_Click(HWND hwnd, UINT msg, WPARAM
 
 	SPE_EmitterDelete(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID);
 	SXParticlesEditor::SelEmitterID = -1;
-	int sel = SXParticlesEditor::ListBoxEmitters->GetSel();
-	SXParticlesEditor::ListBoxEmitters->DeleteItem(sel);
-	SXParticlesEditor::StaticEmittersCount->SetText(String(SPE_EmitterSCountGet(SXParticlesEditor::SelEffID)).c_str());
+	int sel = SXParticlesEditor::ListBoxEmitters->getSel();
+	SXParticlesEditor::ListBoxEmitters->deleteItem(sel);
+	SXParticlesEditor::StaticEmittersCount->setText(String(SPE_EmitterSCountGet(SXParticlesEditor::SelEffID)).c_str());
 
 	if (SPE_EmitterSCountGet(SXParticlesEditor::SelEffID))
 	{
-		SXParticlesEditor::ListBoxEmitters->SetSel((sel < SXParticlesEditor::ListBoxEmitters->GetCountItem() ? sel : sel - 1));
+		SXParticlesEditor::ListBoxEmitters->setSel((sel < SXParticlesEditor::ListBoxEmitters->getItemCount() ? sel : sel - 1));
 		SXParticlesEditor_ListBoxEmitters_Click(hwnd, msg, wParam, lParam);
 	}
 	else
@@ -214,13 +214,13 @@ LRESULT SXParticlesEditor_ButtonEffCreate_Click(HWND hwnd, UINT msg, WPARAM wPar
 	}
 
 	char effname[OBJECT_NAME_MAX_LEN];
-	SXParticlesEditor::EditEffName->GetText(effname, OBJECT_NAME_MAX_LEN);
+	SXParticlesEditor::EditEffName->getText(effname, OBJECT_NAME_MAX_LEN);
 
 	SXParticlesEditor::SelEffID = SPE_EffectAdd(effname);
 
-	SXParticlesEditor::ListBoxEffects->AddItem(effname);
-	SXParticlesEditor::ListBoxEffects->SetSel(SXParticlesEditor::ListBoxEffects->GetCountItem() - 1);
-	SXParticlesEditor::StaticEffectsCount->SetText(String(SPE_EffectCountGet()).c_str());
+	SXParticlesEditor::ListBoxEffects->addItem(effname);
+	SXParticlesEditor::ListBoxEffects->setSel(SXParticlesEditor::ListBoxEffects->getItemCount() - 1);
+	SXParticlesEditor::StaticEffectsCount->setText(String(SPE_EffectCountGet()).c_str());
 	SXParticlesEditor::EffVisible(true, false);
 
 	return 0;
@@ -231,7 +231,7 @@ LRESULT SXParticlesEditor_ButtonEffCreate_Click(HWND hwnd, UINT msg, WPARAM wPar
 LRESULT SXParticlesEditor_ButtonEmitterCreate_Click(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	char partname[OBJECT_NAME_MAX_LEN];
-	SXParticlesEditor::EditName->GetText(partname, OBJECT_NAME_MAX_LEN);
+	SXParticlesEditor::EditName->getText(partname, OBJECT_NAME_MAX_LEN);
 
 	if (!def_str_validate(partname))
 	{
@@ -246,171 +246,171 @@ LRESULT SXParticlesEditor_ButtonEmitterCreate_Click(HWND hwnd, UINT msg, WPARAM
 	}
 
 	char tmptex[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
-	SXParticlesEditor::EditTexture->GetText(tmptex, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
+	SXParticlesEditor::EditTexture->getText(tmptex, SXGC_LOADTEX_MAX_SIZE_DIRNAME);
 
 
 	char tmptxt[64];
 
 	ParticlesData pdata;
 
-	SXParticlesEditor::EditAccelerationX->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAccelerationX->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Acceleration.x));
-	SXParticlesEditor::EditAccelerationY->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAccelerationY->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Acceleration.y));
-	SXParticlesEditor::EditAccelerationZ->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAccelerationZ->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Acceleration.z));
 
-	SXParticlesEditor::EditAccelerationDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAccelerationDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.AccelerationDisp));
 
-	pdata.AccelerationDispXNeg = SXParticlesEditor::CheckBoxAccelerationDispXNeg->GetCheck();
-	pdata.AccelerationDispYNeg = SXParticlesEditor::CheckBoxAccelerationDispYNeg->GetCheck();
-	pdata.AccelerationDispZNeg = SXParticlesEditor::CheckBoxAccelerationDispZNeg->GetCheck();
+	pdata.AccelerationDispXNeg = SXParticlesEditor::CheckBoxAccelerationDispXNeg->getCheck();
+	pdata.AccelerationDispYNeg = SXParticlesEditor::CheckBoxAccelerationDispYNeg->getCheck();
+	pdata.AccelerationDispZNeg = SXParticlesEditor::CheckBoxAccelerationDispZNeg->getCheck();
 
 
-	SXParticlesEditor::EditVelocityX->GetText(tmptxt, 64);
+	SXParticlesEditor::EditVelocityX->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Velocity.x));
-	SXParticlesEditor::EditVelocityY->GetText(tmptxt, 64);
+	SXParticlesEditor::EditVelocityY->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Velocity.y));
-	SXParticlesEditor::EditVelocityZ->GetText(tmptxt, 64);
+	SXParticlesEditor::EditVelocityZ->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Velocity.z));
 
-	SXParticlesEditor::EditVelocityDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditVelocityDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.VelocityDisp));
 
-	pdata.VelocityDispXNeg = SXParticlesEditor::CheckBoxVelocityDispXNeg->GetCheck();
-	pdata.VelocityDispYNeg = SXParticlesEditor::CheckBoxVelocityDispYNeg->GetCheck();
-	pdata.VelocityDispZNeg = SXParticlesEditor::CheckBoxVelocityDispZNeg->GetCheck();
+	pdata.VelocityDispXNeg = SXParticlesEditor::CheckBoxVelocityDispXNeg->getCheck();
+	pdata.VelocityDispYNeg = SXParticlesEditor::CheckBoxVelocityDispYNeg->getCheck();
+	pdata.VelocityDispZNeg = SXParticlesEditor::CheckBoxVelocityDispZNeg->getCheck();
 
 
-	pdata.BoundType = (PARTICLESTYPE_BOUND)SXParticlesEditor::ComboBoxBoundType->GetSel();
+	pdata.BoundType = (PARTICLESTYPE_BOUND)SXParticlesEditor::ComboBoxBoundType->getSel();
 
-	SXParticlesEditor::EditBoundVec1X->GetText(tmptxt, 64);
+	SXParticlesEditor::EditBoundVec1X->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.BoundVec1.x));
-	SXParticlesEditor::EditBoundVec1Y->GetText(tmptxt, 64);
+	SXParticlesEditor::EditBoundVec1Y->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.BoundVec1.y));
-	SXParticlesEditor::EditBoundVec1Z->GetText(tmptxt, 64);
+	SXParticlesEditor::EditBoundVec1Z->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.BoundVec1.z));
 
-	SXParticlesEditor::EditBoundVec2X->GetText(tmptxt, 64);
+	SXParticlesEditor::EditBoundVec2X->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.BoundVec2.x));
-	SXParticlesEditor::EditBoundVec2Y->GetText(tmptxt, 64);
+	SXParticlesEditor::EditBoundVec2Y->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.BoundVec2.y));
-	SXParticlesEditor::EditBoundVec2Z->GetText(tmptxt, 64);
+	SXParticlesEditor::EditBoundVec2Z->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.BoundVec2.z));
 
 
-	pdata.SpawnPosType = (PARTICLESTYPE_SPAWNPOS)SXParticlesEditor::ComboBoxSpawnPosType->GetSel();
-	SXParticlesEditor::EditSpawnOriginX->GetText(tmptxt, 64);
+	pdata.SpawnPosType = (PARTICLESTYPE_SPAWNPOS)SXParticlesEditor::ComboBoxSpawnPosType->getSel();
+	SXParticlesEditor::EditSpawnOriginX->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.SpawnOrigin.x));
-	SXParticlesEditor::EditSpawnOriginY->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSpawnOriginY->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.SpawnOrigin.y));
-	SXParticlesEditor::EditSpawnOriginZ->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSpawnOriginZ->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.SpawnOrigin.z));
 
-	SXParticlesEditor::EditSpawnOriginDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSpawnOriginDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.SpawnOriginDisp));
 
-	pdata.SpawnBoundBindCreateXNeg = SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->GetCheck();
-	pdata.SpawnBoundBindCreateXPos = SXParticlesEditor::CheckBoxSpawnOriginDispXPos->GetCheck();
-	pdata.SpawnBoundBindCreateYNeg = SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->GetCheck();
-	pdata.SpawnBoundBindCreateYPos = SXParticlesEditor::CheckBoxSpawnOriginDispYPos->GetCheck();
-	pdata.SpawnBoundBindCreateZNeg = SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->GetCheck();
-	pdata.SpawnBoundBindCreateZPos = SXParticlesEditor::CheckBoxSpawnOriginDispZPos->GetCheck();
+	pdata.SpawnBoundBindCreateXNeg = SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->getCheck();
+	pdata.SpawnBoundBindCreateXPos = SXParticlesEditor::CheckBoxSpawnOriginDispXPos->getCheck();
+	pdata.SpawnBoundBindCreateYNeg = SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->getCheck();
+	pdata.SpawnBoundBindCreateYPos = SXParticlesEditor::CheckBoxSpawnOriginDispYPos->getCheck();
+	pdata.SpawnBoundBindCreateZNeg = SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->getCheck();
+	pdata.SpawnBoundBindCreateZPos = SXParticlesEditor::CheckBoxSpawnOriginDispZPos->getCheck();
 
-	SXParticlesEditor::EditSpawnNextTime->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSpawnNextTime->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.SpawnNextTime));
 
-	SXParticlesEditor::EditSpawnNextTimeDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSpawnNextTimeDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.SpawnNextTimeDisp));
 
 
-	SXParticlesEditor::EditAnimTexCountCadrsX->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAnimTexCountCadrsX->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.AnimTexCountCadrsX));
-	SXParticlesEditor::EditAnimTexCountCadrsY->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAnimTexCountCadrsY->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.AnimTexCountCadrsY));
 
-	SXParticlesEditor::EditAnimTexRate->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAnimTexRate->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.AnimTexRate));
-	SXParticlesEditor::EditAnimTexRateDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAnimTexRateDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.AnimTexRateDisp));
 
-	SXParticlesEditor::EditAnimTexStartCadr->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAnimTexStartCadr->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.AnimTexStartCadr));
-	SXParticlesEditor::EditAnimTexStartCadrDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.AnimTexStartCadrDisp));
 
 
-	SXParticlesEditor::EditReCreateCount->GetText(tmptxt, 64);
+	SXParticlesEditor::EditReCreateCount->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.ReCreateCount));
-	SXParticlesEditor::EditSoftCoef->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSoftCoef->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.SoftCoef));
-	SXParticlesEditor::EditRefractionCoef->GetText(tmptxt, 64);
+	SXParticlesEditor::EditRefractionCoef->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.RefractionCoef));
-	SXParticlesEditor::EditTransparencyCoef->GetText(tmptxt, 64);
+	SXParticlesEditor::EditTransparencyCoef->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.TransparencyCoef));
-	SXParticlesEditor::EditColorCoef->GetText(tmptxt, 64);
+	SXParticlesEditor::EditColorCoef->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.ColorCoef));
 
-	pdata.Lighting = SXParticlesEditor::CheckBoxLighting->GetCheck();
+	pdata.Lighting = SXParticlesEditor::CheckBoxLighting->getCheck();
 
-	pdata.FigureType = (PARTICLESTYPE_FIGURE)SXParticlesEditor::ComboBoxFigureType->GetSel();
-	SXParticlesEditor::EditFigureCountQuads->GetText(tmptxt, 64);
+	pdata.FigureType = (PARTICLESTYPE_FIGURE)SXParticlesEditor::ComboBoxFigureType->getSel();
+	SXParticlesEditor::EditFigureCountQuads->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.FigureCountQuads));
-	pdata.FigureRotRand = SXParticlesEditor::CheckBoxFigureRotRand->GetCheck();
-	pdata.FigureTapX = SXParticlesEditor::CheckBoxFigureTapX->GetCheck();
-	pdata.FigureTapY = SXParticlesEditor::CheckBoxFigureTapY->GetCheck();
-	pdata.FigureTapZ = SXParticlesEditor::CheckBoxFigureTapZ->GetCheck();
+	pdata.FigureRotRand = SXParticlesEditor::CheckBoxFigureRotRand->getCheck();
+	pdata.FigureTapX = SXParticlesEditor::CheckBoxFigureTapX->getCheck();
+	pdata.FigureTapY = SXParticlesEditor::CheckBoxFigureTapY->getCheck();
+	pdata.FigureTapZ = SXParticlesEditor::CheckBoxFigureTapZ->getCheck();
 
-	pdata.AlphaBlendType = (PARTICLESTYPE_ALPHABLEND)SXParticlesEditor::ComboBoxAlphaBlendType->GetSel();
+	pdata.AlphaBlendType = (PARTICLESTYPE_ALPHABLEND)SXParticlesEditor::ComboBoxAlphaBlendType->getSel();
 
-	SXParticlesEditor::EditTimeLife->GetText(tmptxt, 64);
+	SXParticlesEditor::EditTimeLife->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.TimeLife));
-	SXParticlesEditor::EditTimeLifeDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditTimeLifeDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%d", &(pdata.TimeLifeDisp));
 
-	pdata.AlphaDependAge = (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxAlphaDependAge->GetSel();
-	pdata.SizeDependAge = (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxSizeDependAge->GetSel();
-	pdata.CollisionDelete = (PARTICLESTYPE_DEPEND)SXParticlesEditor::CheckBoxCollisionDelete->GetCheck();
+	pdata.AlphaDependAge = (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxAlphaDependAge->getSel();
+	pdata.SizeDependAge = (PARTICLESTYPE_DEPEND)SXParticlesEditor::ComboBoxSizeDependAge->getSel();
+	pdata.CollisionDelete = (PARTICLESTYPE_DEPEND)SXParticlesEditor::CheckBoxCollisionDelete->getCheck();
 
-	SXParticlesEditor::EditSizeX->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSizeX->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Size.x));
-	SXParticlesEditor::EditSizeY->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSizeY->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.Size.y));
-	SXParticlesEditor::EditSizeDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditSizeDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.SizeDisp));
 
 
-	pdata.CharacterCircle = SXParticlesEditor::CheckBoxCircle->GetCheck();
-	pdata.CharacterCircleAxis = (PARTICLES_AXIS)SXParticlesEditor::ComboBoxCircleAxis->GetSel();
-	SXParticlesEditor::EditCircleAngle->GetText(tmptxt, 64);
+	pdata.CharacterCircle = SXParticlesEditor::CheckBoxCircle->getCheck();
+	pdata.CharacterCircleAxis = (PARTICLES_AXIS)SXParticlesEditor::ComboBoxCircleAxis->getSel();
+	SXParticlesEditor::EditCircleAngle->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterCircleAngle));
-	SXParticlesEditor::EditCircleAngleDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditCircleAngleDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterCircleAngleDisp));
-	pdata.CharacterCircleAngleDispNeg = SXParticlesEditor::CheckBoxCircleAngleDispNeg->GetCheck();
+	pdata.CharacterCircleAngleDispNeg = SXParticlesEditor::CheckBoxCircleAngleDispNeg->getCheck();
 
 
-	pdata.CharacterRotate = SXParticlesEditor::CheckBoxRotate->GetCheck();
-	SXParticlesEditor::EditRotateAngle->GetText(tmptxt, 64);
+	pdata.CharacterRotate = SXParticlesEditor::CheckBoxRotate->getCheck();
+	SXParticlesEditor::EditRotateAngle->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterRotateAngle));
-	SXParticlesEditor::EditRotateAngleDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditRotateAngleDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterRotateAngleDisp));
-	pdata.CharacterRotateAngleDispNeg = SXParticlesEditor::CheckBoxRotateAngleDispNeg->GetCheck();
+	pdata.CharacterRotateAngleDispNeg = SXParticlesEditor::CheckBoxRotateAngleDispNeg->getCheck();
 
 
-	pdata.CharacterDeviation = SXParticlesEditor::CheckBoxDeviation->GetCheck();
-	pdata.CharacterDeviationType = (PARTICLESTYPE_DEVIATION)SXParticlesEditor::ComboBoxDeviationType->GetSel();
-	SXParticlesEditor::EditDeviationAmplitude->GetText(tmptxt, 64);
+	pdata.CharacterDeviation = SXParticlesEditor::CheckBoxDeviation->getCheck();
+	pdata.CharacterDeviationType = (PARTICLESTYPE_DEVIATION)SXParticlesEditor::ComboBoxDeviationType->getSel();
+	SXParticlesEditor::EditDeviationAmplitude->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterDeviationAmplitude));
-	SXParticlesEditor::EditDeviationCoefAngle->GetText(tmptxt, 64);
+	SXParticlesEditor::EditDeviationCoefAngle->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterDeviationCoefAngle));
-	SXParticlesEditor::EditDeviationCoefAngleDisp->GetText(tmptxt, 64);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->getText(tmptxt, 64);
 	sscanf(tmptxt, "%f", &(pdata.CharacterDeviationCoefAngleDisp));
-	pdata.CharacterDeviationCoefAngleDispNeg = SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->GetCheck();
-	pdata.CharacterDeviationAxis = (PARTICLES_AXIS)SXParticlesEditor::ComboBoxDeviationAxis->GetSel();
-	pdata.CharacterDeviationTapX = SXParticlesEditor::CheckBoxDeviationTapX->GetCheck();
-	pdata.CharacterDeviationTapY = SXParticlesEditor::CheckBoxDeviationTapY->GetCheck();
-	pdata.CharacterDeviationTapZ = SXParticlesEditor::CheckBoxDeviationTapZ->GetCheck();
+	pdata.CharacterDeviationCoefAngleDispNeg = SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->getCheck();
+	pdata.CharacterDeviationAxis = (PARTICLES_AXIS)SXParticlesEditor::ComboBoxDeviationAxis->getSel();
+	pdata.CharacterDeviationTapX = SXParticlesEditor::CheckBoxDeviationTapX->getCheck();
+	pdata.CharacterDeviationTapY = SXParticlesEditor::CheckBoxDeviationTapY->getCheck();
+	pdata.CharacterDeviationTapZ = SXParticlesEditor::CheckBoxDeviationTapZ->getCheck();
 	
 
 	ID partid = SPE_EmitterAdd(SXParticlesEditor::SelEffID, &pdata);
@@ -418,13 +418,13 @@ LRESULT SXParticlesEditor_ButtonEmitterCreate_Click(HWND hwnd, UINT msg, WPARAM
 
 	SPE_EmitterTextureSet(SXParticlesEditor::SelEffID, partid, tmptex);
 
-	SXParticlesEditor::EditCount->GetText(tmptxt, 64);
+	SXParticlesEditor::EditCount->getText(tmptxt, 64);
 	int partcount;
 	sscanf(tmptxt, "%d", &partcount);
 	SPE_EmitterCountSet(SXParticlesEditor::SelEffID, partid, partcount);
 
-	SXParticlesEditor::ListBoxEmitters->AddItem(partname);
-	SXParticlesEditor::ListBoxEmitters->SetSel(SXParticlesEditor::ListBoxEmitters->GetCountItem() - 1);
+	SXParticlesEditor::ListBoxEmitters->addItem(partname);
+	SXParticlesEditor::ListBoxEmitters->setSel(SXParticlesEditor::ListBoxEmitters->getItemCount() - 1);
 	SXParticlesEditor_ListBoxEmitters_Click(hwnd, msg, wParam, lParam);
 
 	return 0;
diff --git a/source/sxparticleseditor/callback_tabs.cpp b/source/sxparticleseditor/callback_tabs.cpp
index 485873074..0d21c619f 100644
--- a/source/sxparticleseditor/callback_tabs.cpp
+++ b/source/sxparticleseditor/callback_tabs.cpp
@@ -6,7 +6,7 @@ LRESULT SXParticlesEditor_ButtonBase_Click(HWND hwnd, UINT msg, WPARAM wParam, L
 	SXParticlesEditor::AllInTabsVisible(false);
 	SXParticlesEditor::BaseVisible(true);
 	if (SXParticlesEditor::SelEmitterID < 0)
-		SXParticlesEditor::ButtonEmitterCreate->Visible(true);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(true);
 	//SXParticlesEditor::BaseNulling();
 	return 0;
 }
@@ -16,7 +16,7 @@ LRESULT SXParticlesEditor_ButtonTextureAnimTex_Click(HWND hwnd, UINT msg, WPARAM
 	SXParticlesEditor::AllInTabsVisible(false);
 	SXParticlesEditor::TexVisible(true);
 	if (SXParticlesEditor::SelEmitterID < 0)
-		SXParticlesEditor::ButtonEmitterCreate->Visible(true);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(true);
 	//SXParticlesEditor::TexNulling();
 	return 0;
 }
@@ -26,7 +26,7 @@ LRESULT SXParticlesEditor_ButtonSpawn_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	SXParticlesEditor::AllInTabsVisible(false);
 	SXParticlesEditor::SpawnVisible(true);
 	if (SXParticlesEditor::SelEmitterID < 0)
-		SXParticlesEditor::ButtonEmitterCreate->Visible(true);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(true);
 	//SXParticlesEditor::SpawnNulling();
 	return 0;
 }
@@ -36,7 +36,7 @@ LRESULT SXParticlesEditor_ButtonBound_Click(HWND hwnd, UINT msg, WPARAM wParam,
 	SXParticlesEditor::AllInTabsVisible(false);
 	SXParticlesEditor::BoundVisible(true);
 	if (SXParticlesEditor::SelEmitterID < 0)
-		SXParticlesEditor::ButtonEmitterCreate->Visible(true);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(true);
 	//SXParticlesEditor::BoundNulling();
 	return 0;
 }
@@ -46,7 +46,7 @@ LRESULT SXParticlesEditor_ButtonCharacters_Click(HWND hwnd, UINT msg, WPARAM wPa
 	SXParticlesEditor::AllInTabsVisible(false);
 	SXParticlesEditor::CharacterVisible(true);
 	if (SXParticlesEditor::SelEmitterID < 0)
-		SXParticlesEditor::ButtonEmitterCreate->Visible(true);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(true);
 	//SXParticlesEditor::CharacterNulling();
 	return 0;
 }
@@ -56,7 +56,7 @@ LRESULT SXParticlesEditor_ButtonVelocityAcceleration_Click(HWND hwnd, UINT msg,
 	SXParticlesEditor::AllInTabsVisible(false);
 	SXParticlesEditor::VelocityAccVisible(true);
 	if (SXParticlesEditor::SelEmitterID < 0)
-		SXParticlesEditor::ButtonEmitterCreate->Visible(true);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(true);
 	//SXParticlesEditor::VelocityAccNulling();
 	return 0;
 }
\ No newline at end of file
diff --git a/source/sxparticleseditor/particles_editor.cpp b/source/sxparticleseditor/particles_editor.cpp
index 36f86f2ad..68136f2ac 100644
--- a/source/sxparticleseditor/particles_editor.cpp
+++ b/source/sxparticleseditor/particles_editor.cpp
@@ -4,7 +4,7 @@
 namespace SXParticlesEditor
 {
 	ISXGUIBaseWnd* JobWindow;
-	ISXGUIMenu* MainMenu;
+	ISXGUIMenuWindow* MainMenu;
 	ISXGUIStatusBar* StatusBar1;
 	ISXGUIGroupBox* GroupBoxList;
 	ISXGUIGroupBox* GroupBoxTabs;
@@ -315,648 +315,647 @@ void SXParticlesEditor::InitAllElements()
 	int cx = (wrect.right - MAINWIN_SIZE_X) / 2;
 	int cy = (wrect.bottom - MAINWIN_SIZE_Y) / 2;
 
-	SXParticlesEditor::JobWindow = SXGUICrBaseWnd("JobWindow", "SXParticlesEditor", 0, 0, cx, cy, MAINWIN_SIZE_X, MAINWIN_SIZE_Y, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION, 0, WndProcAllDefault);
-	SXParticlesEditor::JobWindow->Visible(false);
-	SXGUIBaseHandlers::InitHandlerMsg(SXParticlesEditor::JobWindow);
+	SXParticlesEditor::JobWindow = SXGUICrBaseWndEx("JobWindow", "SXParticlesEditor", cx, cy, MAINWIN_SIZE_X, MAINWIN_SIZE_Y, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION, 0, WndProcAllDefault);
+	SXParticlesEditor::JobWindow->setVisible(false);
+	gui_func::base_handlers::InitHandlerMsg(SXParticlesEditor::JobWindow);
 
-	SXParticlesEditor::JobWindow->MinSizeX = MAINWIN_SIZE_X;
-	SXParticlesEditor::JobWindow->MinSizeY = MAINWIN_SIZE_Y;
+	SXParticlesEditor::JobWindow->setMixSize(MAINWIN_SIZE_X, MAINWIN_SIZE_Y);
 
-	SXParticlesEditor::JobWindow->AddHandler(ComMenuId, WM_COMMAND);
-	SXParticlesEditor::JobWindow->AddHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
-	SXParticlesEditor::JobWindow->AddHandler(MsgEditSize, WM_SIZE);
-	SXParticlesEditor::MainMenu = SXGUICrMenuEx(IDR_MENU1);
-	SXParticlesEditor::MainMenu->SetToWindow(SXParticlesEditor::JobWindow->GetHWND());
+	SXParticlesEditor::JobWindow->addHandler(ComMenuId, WM_COMMAND);
+	SXParticlesEditor::JobWindow->addHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
+	SXParticlesEditor::JobWindow->addHandler(MsgEditSize, WM_SIZE);
+	SXParticlesEditor::MainMenu = SXGUICrMenuWindowEx(IDR_MENU1);
+	SXParticlesEditor::MainMenu->setToWindow(SXParticlesEditor::JobWindow->getHWND());
 
-	SXParticlesEditor::StatusBar1 = SXGUICrStatusBar("StatusBar1", SXParticlesEditor::JobWindow->GetHWND(), 0, 0);
-	SXParticlesEditor::StatusBar1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StatusBar1 = SXGUICrStatusBar("StatusBar1", SXParticlesEditor::JobWindow->getHWND(), 0, 0);
+	SXParticlesEditor::StatusBar1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
 	int arrpart[5];
 	arrpart[0] = 300;
 	arrpart[1] = -1;
-	SXParticlesEditor::StatusBar1->SetCountParts(2, arrpart);
-	SXParticlesEditor::StatusBar1->SetTextParts(0, "Playing emitters: 0/0");
-	SXParticlesEditor::StatusBar1->SetTextParts(1, "Living particles: 0/0");
-
-	SXParticlesEditor::WindowRender = SXGUICrBaseWnd("WindowRender","Window1",0,0,0,27,600,400,0,0,CreateSolidBrush(RGB(200,200,200)),0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER,SXParticlesEditor::JobWindow->GetHWND(),0);
-	SXParticlesEditor::WindowRender->GAlign.left = true;
-	SXParticlesEditor::WindowRender->GAlign.right = true;
-	SXParticlesEditor::WindowRender->GAlign.top = true;
-	SXParticlesEditor::WindowRender->GAlign.bottom = true;
+	SXParticlesEditor::StatusBar1->setPartsCount(2, arrpart);
+	SXParticlesEditor::StatusBar1->setPartText(0, "Playing emitters: 0/0");
+	SXParticlesEditor::StatusBar1->setPartText(1, "Living particles: 0/0");
+
+	SXParticlesEditor::WindowRender = SXGUICrBaseWndEx("WindowRender","Window1",0,27,600,400,0,0,CreateSolidBrush(RGB(200,200,200)),0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER,SXParticlesEditor::JobWindow->getHWND(),0);
+	SXParticlesEditor::WindowRender->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::WindowRender->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXParticlesEditor::WindowRender->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::WindowRender->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
 	
-	SXParticlesEditor::ToolBar1 = SXGUICrToolBar(0, 0, 804, 27, SXParticlesEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXParticlesEditor::ToolBar1->GAlign.left = true;
-	SXParticlesEditor::ToolBar1->GAlign.right = true;
-	SXParticlesEditor::ToolBar1->GAlign.top = true;
-	SXParticlesEditor::ToolBar1->GAlign.bottom = false;
-	SXParticlesEditor::ToolBar1->AddHandler(SXParticlesEditor_ToolBar1_CallWmCommand, WM_COMMAND);
-
-	SXParticlesEditor::ButtonTBReOpen = SXGUICrButtonEx("", 2, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonTBReOpen->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonTBReOpen->GAlign.left = true;
-	SXParticlesEditor::ButtonTBReOpen->GAlign.top = true;
-	SXParticlesEditor::ButtonTBReOpen->SetBmpInResourse(IDB_BITMAP1);
-
-	SXParticlesEditor::ButtonTBSave = SXGUICrButtonEx("", 26, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonTBSave->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonTBSave->GAlign.left = true;
-	SXParticlesEditor::ButtonTBSave->GAlign.top = true;
-	SXParticlesEditor::ButtonTBSave->SetBmpInResourse(IDB_BITMAP2);
-
-	SXParticlesEditor::CheckBoxTBGrid = SXGUICrCheckBoxEx("", 54, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::CheckBoxTBGrid->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTBGrid->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTBGrid->GAlign.top = true;
-	SXParticlesEditor::CheckBoxTBGrid->SetBmpInResourse(IDB_BITMAP3);
-
-	SXParticlesEditor::CheckBoxTBAxes = SXGUICrCheckBoxEx("", 78, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::CheckBoxTBAxes->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTBAxes->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTBAxes->GAlign.top = true;
-	SXParticlesEditor::CheckBoxTBAxes->SetBmpInResourse(IDB_BITMAP4);
-
-	SXParticlesEditor::CheckBoxTBBound = SXGUICrCheckBoxEx("", 102, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::CheckBoxTBBound->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTBBound->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTBBound->GAlign.top = true;
-	SXParticlesEditor::CheckBoxTBBound->SetBmpInResourse(IDB_BITMAP5);
-
-	SXParticlesEditor::CheckBoxTBPlay = SXGUICrCheckBoxEx("", 130, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::CheckBoxTBPlay->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTBPlay->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTBPlay->GAlign.top = true;
-	SXParticlesEditor::CheckBoxTBPlay->SetBmpInResourse(IDB_BITMAP6);
-
-	SXParticlesEditor::CheckBoxTBPause = SXGUICrCheckBoxEx("", 154, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::CheckBoxTBPause->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTBPause->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTBPause->GAlign.top = true;
-	SXParticlesEditor::CheckBoxTBPause->SetBmpInResourse(IDB_BITMAP7);
-
-	SXParticlesEditor::CheckBoxTBStop = SXGUICrCheckBoxEx("", 178, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->GetHWND(), 0, 0);
-	SXParticlesEditor::CheckBoxTBStop->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTBStop->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTBStop->GAlign.top = true;
-	SXParticlesEditor::CheckBoxTBStop->SetBmpInResourse(IDB_BITMAP8);
+	SXParticlesEditor::ToolBar1 = SXGUICrToolBar(0, 0, 804, 27, SXParticlesEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	SXParticlesEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXParticlesEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ToolBar1->setFollowParentSide(SXGUI_SIDE_BOTTOM, false);
+	SXParticlesEditor::ToolBar1->addHandler(SXParticlesEditor_ToolBar1_CallWmCommand, WM_COMMAND);
+
+	SXParticlesEditor::ButtonTBReOpen = SXGUICrButtonEx("", 2, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonTBReOpen->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonTBReOpen->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonTBReOpen->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonTBReOpen->setBmpFromResourse(IDB_BITMAP1);
+
+	SXParticlesEditor::ButtonTBSave = SXGUICrButtonEx("", 26, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonTBSave->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonTBSave->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonTBSave->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonTBSave->setBmpFromResourse(IDB_BITMAP2);
+
+	SXParticlesEditor::CheckBoxTBGrid = SXGUICrCheckBoxEx("", 54, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::CheckBoxTBGrid->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTBGrid->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTBGrid->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxTBGrid->setBmpFromResourse(IDB_BITMAP3);
+
+	SXParticlesEditor::CheckBoxTBAxes = SXGUICrCheckBoxEx("", 78, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::CheckBoxTBAxes->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTBAxes->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTBAxes->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxTBAxes->setBmpFromResourse(IDB_BITMAP4);
+
+	SXParticlesEditor::CheckBoxTBBound = SXGUICrCheckBoxEx("", 102, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::CheckBoxTBBound->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTBBound->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTBBound->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxTBBound->setBmpFromResourse(IDB_BITMAP5);
+
+	SXParticlesEditor::CheckBoxTBPlay = SXGUICrCheckBoxEx("", 130, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::CheckBoxTBPlay->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTBPlay->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTBPlay->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxTBPlay->setBmpFromResourse(IDB_BITMAP6);
+
+	SXParticlesEditor::CheckBoxTBPause = SXGUICrCheckBoxEx("", 154, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::CheckBoxTBPause->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTBPause->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTBPause->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxTBPause->setBmpFromResourse(IDB_BITMAP7);
+
+	SXParticlesEditor::CheckBoxTBStop = SXGUICrCheckBoxEx("", 178, 1, 22, 22, 0, WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_BITMAP, SXParticlesEditor::ToolBar1->getHWND(), 0, 0);
+	SXParticlesEditor::CheckBoxTBStop->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTBStop->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTBStop->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxTBStop->setBmpFromResourse(IDB_BITMAP8);
 
 	
 	
-	SXParticlesEditor::GroupBoxList = SXGUICrGroupBox("", 601, 28, 204, 400, SXParticlesEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXGUIBaseHandlers::InitHandlerMsg(SXParticlesEditor::GroupBoxList);
-	SXParticlesEditor::GroupBoxList->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::GroupBoxList->SetColorText(0, 0, 0);
-	SXParticlesEditor::GroupBoxList->SetColorTextBk(220, 220, 220);
-	SXParticlesEditor::GroupBoxList->SetTransparentTextBk(true);
-	SXParticlesEditor::GroupBoxList->SetColorBrush(220, 220, 220);
-
-	SXParticlesEditor::GroupBoxList->GAlign.left = false;
-	SXParticlesEditor::GroupBoxList->GAlign.right = true;
-	SXParticlesEditor::GroupBoxList->GAlign.top = true;
-	SXParticlesEditor::GroupBoxList->GAlign.bottom = true;
-
-	SXParticlesEditor::StaticEffects = SXGUICrStatic("Effects:", 10, 10, 50, 15, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticEffects->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticEffects->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticEffects->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticEffects->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticEffects->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticEffects->GAlign.left = true;
-	SXParticlesEditor::StaticEffects->GAlign.top = true;
-
-	SXParticlesEditor::StaticEffectsCount = SXGUICrStatic("0", 70, 10, 100, 15, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticEffectsCount->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticEffectsCount->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticEffectsCount->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticEffectsCount->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticEffectsCount->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticEffectsCount->GAlign.left = true;
-	SXParticlesEditor::StaticEffectsCount->GAlign.top = true;
+	SXParticlesEditor::GroupBoxList = SXGUICrGroupBox("", 601, 28, 204, 400, SXParticlesEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	gui_func::base_handlers::InitHandlerMsg(SXParticlesEditor::GroupBoxList);
+	SXParticlesEditor::GroupBoxList->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::GroupBoxList->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::GroupBoxList->setColorTextBk(RGB(220, 220, 220));
+	SXParticlesEditor::GroupBoxList->setTransparentTextBk(true);
+	SXParticlesEditor::GroupBoxList->setColorBrush(RGB(220, 220, 220));
+
+	SXParticlesEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_LEFT, false);
+	SXParticlesEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXParticlesEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::GroupBoxList->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
+
+	SXParticlesEditor::StaticEffects = SXGUICrStatic("Effects:", 10, 10, 50, 15, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::StaticEffects->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticEffects->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticEffects->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticEffects->setTransparentTextBk(true);
+	SXParticlesEditor::StaticEffects->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticEffects->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticEffects->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticEffectsCount = SXGUICrStatic("0", 70, 10, 100, 15, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::StaticEffectsCount->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticEffectsCount->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticEffectsCount->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticEffectsCount->setTransparentTextBk(true);
+	SXParticlesEditor::StaticEffectsCount->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticEffectsCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticEffectsCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
 	
-	SXParticlesEditor::ListBoxEffects = SXGUICrListBox("", 2, 30, 200, 200, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0, false);
-	SXParticlesEditor::ListBoxEffects->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXParticlesEditor::ListBoxEffects->SetColorText(0,0,0);
-	SXParticlesEditor::ListBoxEffects->SetColorTextBk(255,255,255);
-	SXParticlesEditor::ListBoxEffects->SetTransparentTextBk(true);
-	SXParticlesEditor::ListBoxEffects->SetColorBrush(255,255,255);
-	SXParticlesEditor::ListBoxEffects->GAlign.left = true;
-	SXParticlesEditor::ListBoxEffects->GAlign.top = true;
-	SXParticlesEditor::ListBoxEffects->AddHandler(SXParticlesEditor_ListBoxEffects_Click,WM_LBUTTONUP);
-	SXParticlesEditor::ListBoxEffects->AddHandler(SXParticlesEditor_ListBoxEffects_Click, WM_KEYUP, VK_UP, true, 0, false, false);
-	SXParticlesEditor::ListBoxEffects->AddHandler(SXParticlesEditor_ListBoxEffects_Click, WM_KEYUP, VK_DOWN, true, 0, false, false);
-
-	SXParticlesEditor::ButtonEffectsCreate = SXGUICrButton("Create", 5, 225, 60, 15, 0, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEffectsCreate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEffectsCreate->GAlign.left = true;
-	SXParticlesEditor::ButtonEffectsCreate->GAlign.top = true;
-	SXParticlesEditor::ButtonEffectsCreate->AddHandler(SXParticlesEditor_ButtonEffectsCreate_Click, WM_LBUTTONUP);
-	/*SXParticlesEditor::ButtonEffectsEdit = SXGUICrButton("Edit", 70, 225, 60, 15, 0, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEffectsEdit->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEffectsEdit->GAlign.left = true;
-	SXParticlesEditor::ButtonEffectsEdit->GAlign.top = true;*/
-	SXParticlesEditor::ButtonEffectsDelete = SXGUICrButton("Delete", 135, 225, 60, 15, 0, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEffectsDelete->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEffectsDelete->GAlign.left = true;
-	SXParticlesEditor::ButtonEffectsDelete->GAlign.top = true;
-	SXParticlesEditor::ButtonEffectsDelete->AddHandler(SXParticlesEditor_ButtonEffectsDelete_Click, WM_LBUTTONUP);
-
-
-	SXParticlesEditor::StaticEmitters = SXGUICrStatic("Emitters:", 10, 250, 50, 15, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticEmitters->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticEmitters->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticEmitters->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticEmitters->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticEmitters->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticEmitters->GAlign.left = true;
-	SXParticlesEditor::StaticEmitters->GAlign.top = true;
-
-	SXParticlesEditor::StaticEmittersCount = SXGUICrStatic("0", 65, 250, 100, 15, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticEmittersCount->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticEmittersCount->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticEmittersCount->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticEmittersCount->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticEmittersCount->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticEmittersCount->GAlign.left = true;
-	SXParticlesEditor::StaticEmittersCount->GAlign.top = true;
-
-	SXParticlesEditor::ListBoxEmitters = SXGUICrListBox("", 2, 270, 200, 120, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0, false);
-	SXParticlesEditor::ListBoxEmitters->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXParticlesEditor::ListBoxEmitters->SetColorText(0,0,0);
-	SXParticlesEditor::ListBoxEmitters->SetColorTextBk(255,255,255);
-	SXParticlesEditor::ListBoxEmitters->SetTransparentTextBk(true);
-	SXParticlesEditor::ListBoxEmitters->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ListBoxEmitters->GAlign.left = true;
-	SXParticlesEditor::ListBoxEmitters->GAlign.top = true;
-	SXParticlesEditor::ListBoxEmitters->AddHandler(SXParticlesEditor_ListBoxEmitters_Click, WM_LBUTTONUP);
-	SXParticlesEditor::ListBoxEmitters->AddHandler(SXParticlesEditor_ListBoxEmitters_Click, WM_KEYUP, VK_UP, true, 0, false, false);
-	SXParticlesEditor::ListBoxEmitters->AddHandler(SXParticlesEditor_ListBoxEmitters_Click, WM_KEYUP, VK_DOWN, true, 0, false, false);
+	SXParticlesEditor::ListBoxEffects = SXGUICrListBox(2, 30, 200, 200, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0, false);
+	SXParticlesEditor::ListBoxEffects->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXParticlesEditor::ListBoxEffects->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ListBoxEffects->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ListBoxEffects->setTransparentTextBk(true);
+	SXParticlesEditor::ListBoxEffects->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ListBoxEffects->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ListBoxEffects->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ListBoxEffects->addHandler(SXParticlesEditor_ListBoxEffects_Click,WM_LBUTTONUP);
+	SXParticlesEditor::ListBoxEffects->addHandler(SXParticlesEditor_ListBoxEffects_Click, WM_KEYUP, VK_UP, true, 0, false, false);
+	SXParticlesEditor::ListBoxEffects->addHandler(SXParticlesEditor_ListBoxEffects_Click, WM_KEYUP, VK_DOWN, true, 0, false, false);
+
+	SXParticlesEditor::ButtonEffectsCreate = SXGUICrButton("Create", 5, 225, 60, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEffectsCreate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEffectsCreate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEffectsCreate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEffectsCreate->addHandler(SXParticlesEditor_ButtonEffectsCreate_Click, WM_LBUTTONUP);
+	/*SXParticlesEditor::ButtonEffectsEdit = SXGUICrButton("Edit", 70, 225, 60, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEffectsEdit->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEffectsEdit->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEffectsEdit->setFollowParentSide(SXGUI_SIDE_TOP, true);*/
+	SXParticlesEditor::ButtonEffectsDelete = SXGUICrButton("Delete", 135, 225, 60, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEffectsDelete->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEffectsDelete->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEffectsDelete->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEffectsDelete->addHandler(SXParticlesEditor_ButtonEffectsDelete_Click, WM_LBUTTONUP);
+
+
+	SXParticlesEditor::StaticEmitters = SXGUICrStatic("Emitters:", 10, 250, 50, 15, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::StaticEmitters->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticEmitters->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticEmitters->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticEmitters->setTransparentTextBk(true);
+	SXParticlesEditor::StaticEmitters->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticEmitters->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticEmitters->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticEmittersCount = SXGUICrStatic("0", 65, 250, 100, 15, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::StaticEmittersCount->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticEmittersCount->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticEmittersCount->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticEmittersCount->setTransparentTextBk(true);
+	SXParticlesEditor::StaticEmittersCount->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticEmittersCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticEmittersCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::ListBoxEmitters = SXGUICrListBox(2, 270, 200, 120, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0, false);
+	SXParticlesEditor::ListBoxEmitters->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXParticlesEditor::ListBoxEmitters->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ListBoxEmitters->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ListBoxEmitters->setTransparentTextBk(true);
+	SXParticlesEditor::ListBoxEmitters->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ListBoxEmitters->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ListBoxEmitters->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ListBoxEmitters->addHandler(SXParticlesEditor_ListBoxEmitters_Click, WM_LBUTTONUP);
+	SXParticlesEditor::ListBoxEmitters->addHandler(SXParticlesEditor_ListBoxEmitters_Click, WM_KEYUP, VK_UP, true, 0, false, false);
+	SXParticlesEditor::ListBoxEmitters->addHandler(SXParticlesEditor_ListBoxEmitters_Click, WM_KEYUP, VK_DOWN, true, 0, false, false);
 	
-	SXParticlesEditor::ButtonEmittersCreate = SXGUICrButton("Create", 5, 380, 60, 15, 0, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEmittersCreate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEmittersCreate->GAlign.left = true;
-	SXParticlesEditor::ButtonEmittersCreate->GAlign.top = true;
-	SXParticlesEditor::ButtonEmittersCreate->AddHandler(SXParticlesEditor_ButtonEmittersCreate_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::ButtonEmittersBasis = SXGUICrButton("basis", 70, 380, 60, 15, 0, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEmittersBasis->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEmittersBasis->GAlign.left = true;
-	SXParticlesEditor::ButtonEmittersBasis->GAlign.top = true;
-	SXParticlesEditor::ButtonEmittersBasis->AddHandler(SXParticlesEditor_ButtonEmittersBasis_Click, WM_LBUTTONUP);
-	SXParticlesEditor::ButtonEmittersDelete = SXGUICrButton("Delete", 135, 380, 60, 15, 0, SXParticlesEditor::GroupBoxList->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEmittersDelete->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEmittersDelete->GAlign.left = true;
-	SXParticlesEditor::ButtonEmittersDelete->GAlign.top = true;
-	SXParticlesEditor::ButtonEmittersDelete->AddHandler(SXParticlesEditor_ButtonEmittersDelete_Click, WM_LBUTTONUP);
-
-
-	SXParticlesEditor::GroupBoxData = SXGUICrGroupBox("", 0, 425, 803, 170, SXParticlesEditor::JobWindow->GetHWND(), WndProcAllDefault, 0);
-	SXGUIBaseHandlers::InitHandlerMsg(SXParticlesEditor::GroupBoxData);
-	//SXParticlesEditor::GroupBoxData->AddHandler(SXLevelEditor_GroupBoxLight_CallWmCommand, WM_COMMAND);
-	SXParticlesEditor::GroupBoxData->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::GroupBoxData->SetColorText(0, 0, 0);
-	SXParticlesEditor::GroupBoxData->SetColorTextBk(220, 220, 220);
-	SXParticlesEditor::GroupBoxData->SetTransparentTextBk(true);
-	SXParticlesEditor::GroupBoxData->SetColorBrush(220, 220, 220);
-
-	SXParticlesEditor::GroupBoxData->GAlign.left = true;
-	SXParticlesEditor::GroupBoxData->GAlign.right = true;
-	SXParticlesEditor::GroupBoxData->GAlign.top = false;
-	SXParticlesEditor::GroupBoxData->GAlign.bottom = true;
-
-	SXParticlesEditor::GroupBoxData2 = SXGUICrGroupBox("", 0, 25, 803, 145, SXParticlesEditor::GroupBoxData->GetHWND(), WndProcAllDefault, 0);
-	SXGUIBaseHandlers::InitHandlerMsg(SXParticlesEditor::GroupBoxData2);
-	//SXParticlesEditor::GroupBoxData->AddHandler(SXLevelEditor_GroupBoxLight_CallWmCommand, WM_COMMAND);
-	SXParticlesEditor::GroupBoxData2->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::GroupBoxData2->SetColorText(0, 0, 0);
-	SXParticlesEditor::GroupBoxData2->SetColorTextBk(220, 220, 220);
-	SXParticlesEditor::GroupBoxData2->SetTransparentTextBk(true);
-	SXParticlesEditor::GroupBoxData2->SetColorBrush(220, 220, 220);
-
-	SXParticlesEditor::GroupBoxData2->GAlign.left = true;
-	SXParticlesEditor::GroupBoxData2->GAlign.right = true;
-	SXParticlesEditor::GroupBoxData2->GAlign.top = false;
-	SXParticlesEditor::GroupBoxData2->GAlign.bottom = true;
-	SXParticlesEditor::GroupBoxData2->AddHandler(SXParticlesEditor_GroupBoxData2_CallWmCommand, WM_COMMAND);
-
-	SXParticlesEditor::GroupBoxTabs = SXGUICrGroupBox("", 0, 0, 655, 30, SXParticlesEditor::GroupBoxData->GetHWND(), WndProcAllDefault, 0);
-	SXGUIBaseHandlers::InitHandlerMsg(SXParticlesEditor::GroupBoxTabs);
-	SXParticlesEditor::GroupBoxTabs->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::GroupBoxTabs->SetColorText(0, 0, 0);
-	SXParticlesEditor::GroupBoxTabs->SetColorTextBk(220, 220, 220);
-	SXParticlesEditor::GroupBoxTabs->SetTransparentTextBk(true);
-	SXParticlesEditor::GroupBoxTabs->SetColorBrush(220, 220, 220);
-
-	SXParticlesEditor::GroupBoxTabs->GAlign.left = true;
-	SXParticlesEditor::GroupBoxTabs->GAlign.right = false;
-	SXParticlesEditor::GroupBoxTabs->GAlign.top = false;
-	SXParticlesEditor::GroupBoxTabs->GAlign.bottom = true;
-
-
-	SXParticlesEditor::ButtonBase = SXGUICrRadioButtonEx("Base", 10, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonBase->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonBase->GAlign.left = true;
-	SXParticlesEditor::ButtonBase->GAlign.top = true;
-	SXParticlesEditor::ButtonBase->AddHandler(SXParticlesEditor_ButtonBase_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::ButtonTextureAnimTex = SXGUICrRadioButtonEx("TextureAnimTex", 115, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonTextureAnimTex->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonTextureAnimTex->GAlign.left = true;
-	SXParticlesEditor::ButtonTextureAnimTex->GAlign.top = true;
-	SXParticlesEditor::ButtonTextureAnimTex->AddHandler(SXParticlesEditor_ButtonTextureAnimTex_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::ButtonSpawn = SXGUICrRadioButtonEx("Spawn", 220, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonSpawn->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonSpawn->GAlign.left = true;
-	SXParticlesEditor::ButtonSpawn->GAlign.top = true;
-	SXParticlesEditor::ButtonSpawn->AddHandler(SXParticlesEditor_ButtonSpawn_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::ButtonBound = SXGUICrRadioButtonEx("Bound", 325, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonBound->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonBound->GAlign.left = true;
-	SXParticlesEditor::ButtonBound->GAlign.top = true;
-	SXParticlesEditor::ButtonBound->AddHandler(SXParticlesEditor_ButtonBound_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::ButtonCharacters = SXGUICrRadioButtonEx("Charaters", 430, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonCharacters->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonCharacters->GAlign.left = true;
-	SXParticlesEditor::ButtonCharacters->GAlign.top = true;
-	SXParticlesEditor::ButtonCharacters->AddHandler(SXParticlesEditor_ButtonCharacters_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::ButtonVelocityAcceleration = SXGUICrRadioButtonEx("VelocityAcceleration", 535, 10, 110, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonVelocityAcceleration->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonVelocityAcceleration->GAlign.left = true;
-	SXParticlesEditor::ButtonVelocityAcceleration->GAlign.top = true;
-	SXParticlesEditor::ButtonVelocityAcceleration->AddHandler(SXParticlesEditor_ButtonVelocityAcceleration_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::StaticEffName = SXGUICrStatic("Name:", 5, 10, 40, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticEffName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticEffName->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticEffName->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticEffName->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticEffName->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticEffName->GAlign.left = true;
-	SXParticlesEditor::StaticEffName->GAlign.top = true;
-	SXParticlesEditor::EditEffName = SXGUICrEdit("0", 50, 10, 200, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditEffName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditEffName->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditEffName->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditEffName->SetTransparentTextBk(true);
-	SXParticlesEditor::EditEffName->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditEffName->GAlign.left = true;
-	SXParticlesEditor::EditEffName->GAlign.top = true;
-	SXParticlesEditor::EditEffName->AddHandler(SXParticlesEditor_EditEffName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-
-	SXParticlesEditor::ButtonEffCreate = SXGUICrButton("Create", 260, 10, 50, 15, 0, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEffCreate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEffCreate->GAlign.left = true;
-	SXParticlesEditor::ButtonEffCreate->GAlign.top = true;
-	SXParticlesEditor::ButtonEffCreate->AddHandler(SXParticlesEditor_ButtonEffCreate_Click, WM_LBUTTONUP);
+	SXParticlesEditor::ButtonEmittersCreate = SXGUICrButton("Create", 5, 380, 60, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEmittersCreate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEmittersCreate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEmittersCreate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEmittersCreate->addHandler(SXParticlesEditor_ButtonEmittersCreate_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::ButtonEmittersBasis = SXGUICrButton("basis", 70, 380, 60, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEmittersBasis->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEmittersBasis->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEmittersBasis->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEmittersBasis->addHandler(SXParticlesEditor_ButtonEmittersBasis_Click, WM_LBUTTONUP);
+	SXParticlesEditor::ButtonEmittersDelete = SXGUICrButton("Delete", 135, 380, 60, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxList->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEmittersDelete->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEmittersDelete->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEmittersDelete->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEmittersDelete->addHandler(SXParticlesEditor_ButtonEmittersDelete_Click, WM_LBUTTONUP);
+
+
+	SXParticlesEditor::GroupBoxData = SXGUICrGroupBox("", 0, 425, 803, 170, SXParticlesEditor::JobWindow->getHWND(), WndProcAllDefault, 0);
+	gui_func::base_handlers::InitHandlerMsg(SXParticlesEditor::GroupBoxData);
+	//SXParticlesEditor::GroupBoxData->addHandler(SXLevelEditor_GroupBoxLight_CallWmCommand, WM_COMMAND);
+	SXParticlesEditor::GroupBoxData->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::GroupBoxData->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::GroupBoxData->setColorTextBk(RGB(220, 220, 220));
+	SXParticlesEditor::GroupBoxData->setTransparentTextBk(true);
+	SXParticlesEditor::GroupBoxData->setColorBrush(RGB(220, 220, 220));
+
+	SXParticlesEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXParticlesEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_TOP, false);
+	SXParticlesEditor::GroupBoxData->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
+
+	SXParticlesEditor::GroupBoxData2 = SXGUICrGroupBox("", 0, 25, 803, 145, SXParticlesEditor::GroupBoxData->getHWND(), WndProcAllDefault, 0);
+	gui_func::base_handlers::InitHandlerMsg(SXParticlesEditor::GroupBoxData2);
+	//SXParticlesEditor::GroupBoxData->addHandler(SXLevelEditor_GroupBoxLight_CallWmCommand, WM_COMMAND);
+	SXParticlesEditor::GroupBoxData2->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::GroupBoxData2->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::GroupBoxData2->setColorTextBk(RGB(220, 220, 220));
+	SXParticlesEditor::GroupBoxData2->setTransparentTextBk(true);
+	SXParticlesEditor::GroupBoxData2->setColorBrush(RGB(220, 220, 220));
+
+	SXParticlesEditor::GroupBoxData2->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::GroupBoxData2->setFollowParentSide(SXGUI_SIDE_RIGHT, true);
+	SXParticlesEditor::GroupBoxData2->setFollowParentSide(SXGUI_SIDE_TOP, false);
+	SXParticlesEditor::GroupBoxData2->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
+	SXParticlesEditor::GroupBoxData2->addHandler(SXParticlesEditor_GroupBoxData2_CallWmCommand, WM_COMMAND);
+
+	SXParticlesEditor::GroupBoxTabs = SXGUICrGroupBox("", 0, 0, 655, 30, SXParticlesEditor::GroupBoxData->getHWND(), WndProcAllDefault, 0);
+	gui_func::base_handlers::InitHandlerMsg(SXParticlesEditor::GroupBoxTabs);
+	SXParticlesEditor::GroupBoxTabs->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::GroupBoxTabs->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::GroupBoxTabs->setColorTextBk(RGB(220, 220, 220));
+	SXParticlesEditor::GroupBoxTabs->setTransparentTextBk(true);
+	SXParticlesEditor::GroupBoxTabs->setColorBrush(RGB(220, 220, 220));
+
+	SXParticlesEditor::GroupBoxTabs->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::GroupBoxTabs->setFollowParentSide(SXGUI_SIDE_RIGHT, false);
+	SXParticlesEditor::GroupBoxTabs->setFollowParentSide(SXGUI_SIDE_TOP, false);
+	SXParticlesEditor::GroupBoxTabs->setFollowParentSide(SXGUI_SIDE_BOTTOM, true);
+
+
+	SXParticlesEditor::ButtonBase = SXGUICrRadioButtonEx("Base", 10, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonBase->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonBase->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonBase->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonBase->addHandler(SXParticlesEditor_ButtonBase_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::ButtonTextureAnimTex = SXGUICrRadioButtonEx("TextureAnimTex", 115, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonTextureAnimTex->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonTextureAnimTex->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonTextureAnimTex->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonTextureAnimTex->addHandler(SXParticlesEditor_ButtonTextureAnimTex_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::ButtonSpawn = SXGUICrRadioButtonEx("Spawn", 220, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonSpawn->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonSpawn->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonSpawn->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonSpawn->addHandler(SXParticlesEditor_ButtonSpawn_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::ButtonBound = SXGUICrRadioButtonEx("Bound", 325, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonBound->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonBound->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonBound->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonBound->addHandler(SXParticlesEditor_ButtonBound_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::ButtonCharacters = SXGUICrRadioButtonEx("Charaters", 430, 10, 100, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonCharacters->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonCharacters->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonCharacters->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonCharacters->addHandler(SXParticlesEditor_ButtonCharacters_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::ButtonVelocityAcceleration = SXGUICrRadioButtonEx("VelocityAcceleration", 535, 10, 110, 15, 0, WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | BS_PUSHLIKE, SXParticlesEditor::GroupBoxTabs->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonVelocityAcceleration->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonVelocityAcceleration->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonVelocityAcceleration->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonVelocityAcceleration->addHandler(SXParticlesEditor_ButtonVelocityAcceleration_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::StaticEffName = SXGUICrStatic("Name:", 5, 10, 40, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticEffName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticEffName->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticEffName->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticEffName->setTransparentTextBk(true);
+	SXParticlesEditor::StaticEffName->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticEffName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticEffName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditEffName = SXGUICrEdit("0", 50, 10, 200, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditEffName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditEffName->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditEffName->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditEffName->setTransparentTextBk(true);
+	SXParticlesEditor::EditEffName->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditEffName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditEffName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditEffName->addHandler(SXParticlesEditor_EditEffName_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+
+	SXParticlesEditor::ButtonEffCreate = SXGUICrButton("Create", 260, 10, 50, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEffCreate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEffCreate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEffCreate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEffCreate->addHandler(SXParticlesEditor_ButtonEffCreate_Click, WM_LBUTTONUP);
 
 
 	//base
 	//{
-	SXParticlesEditor::StaticName = SXGUICrStatic("Name:", 5, 10, 40, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticName->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticName->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticName->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticName->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticName->GAlign.left = true;
-	SXParticlesEditor::StaticName->GAlign.top = true;
-	SXParticlesEditor::EditName = SXGUICrEdit("0", 50, 10, 200, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditName->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditName->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditName->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditName->SetTransparentTextBk(true);
-	SXParticlesEditor::EditName->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditName->GAlign.left = true;
-	SXParticlesEditor::EditName->GAlign.top = true;
-	SXParticlesEditor::EditName->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditName->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticCount = SXGUICrStatic("Count:", 5, 30, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticCount->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticCount->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticCount->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticCount->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticCount->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticCount->GAlign.left = true;
-	SXParticlesEditor::StaticCount->GAlign.top = true;
-	SXParticlesEditor::EditCount = SXGUICrEdit("0", 50, 30, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditCount->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditCount->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditCount->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditCount->SetTransparentTextBk(true);
-	SXParticlesEditor::EditCount->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditCount->GAlign.left = true;
-	SXParticlesEditor::EditCount->GAlign.top = true;
-	SXParticlesEditor::EditCount->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditCount->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticColorCoef = SXGUICrStatic("ColorCoef:", 130, 30, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticColorCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticColorCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticColorCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticColorCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticColorCoef->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticColorCoef->GAlign.left = true;
-	SXParticlesEditor::StaticColorCoef->GAlign.top = true;
-	SXParticlesEditor::EditColorCoef = SXGUICrEdit("0", 180, 30, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditColorCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditColorCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditColorCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditColorCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::EditColorCoef->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditColorCoef->GAlign.left = true;
-	SXParticlesEditor::EditColorCoef->GAlign.top = true;
-	SXParticlesEditor::EditColorCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditColorCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::ButtonEmitterCreate = SXGUICrButton("CREATE", 725, 120, 70, 20, 0, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonEmitterCreate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonEmitterCreate->SetColorText(0, 0, 0);
-	SXParticlesEditor::ButtonEmitterCreate->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ButtonEmitterCreate->SetTransparentTextBk(true);
-	SXParticlesEditor::ButtonEmitterCreate->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::ButtonEmitterCreate->GAlign.left = true;
-	SXParticlesEditor::ButtonEmitterCreate->GAlign.top = true;
-	SXParticlesEditor::ButtonEmitterCreate->AddHandler(SXParticlesEditor_ButtonEmitterCreate_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::StaticReCreateCount = SXGUICrStatic("ReCreateCount:", 5, 50, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticReCreateCount->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticReCreateCount->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticReCreateCount->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticReCreateCount->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticReCreateCount->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticReCreateCount->GAlign.left = true;
-	SXParticlesEditor::StaticReCreateCount->GAlign.top = true;
-	SXParticlesEditor::EditReCreateCount = SXGUICrEdit("0", 100, 50, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditReCreateCount->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditReCreateCount->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditReCreateCount->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditReCreateCount->SetTransparentTextBk(true);
-	SXParticlesEditor::EditReCreateCount->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditReCreateCount->GAlign.left = true;
-	SXParticlesEditor::EditReCreateCount->GAlign.top = true;
-	SXParticlesEditor::EditReCreateCount->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditReCreateCount->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSoftCoef = SXGUICrStatic("SoftCoef:", 5, 70, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSoftCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSoftCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSoftCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSoftCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSoftCoef->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSoftCoef->GAlign.left = true;
-	SXParticlesEditor::StaticSoftCoef->GAlign.top = true;
-	SXParticlesEditor::EditSoftCoef = SXGUICrEdit("0", 100, 70, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSoftCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSoftCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSoftCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSoftCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSoftCoef->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSoftCoef->GAlign.left = true;
-	SXParticlesEditor::EditSoftCoef->GAlign.top = true;
-	SXParticlesEditor::EditSoftCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSoftCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticRefractionCoef = SXGUICrStatic("RefractionCoef:", 5, 90, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticRefractionCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticRefractionCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticRefractionCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticRefractionCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticRefractionCoef->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticRefractionCoef->GAlign.left = true;
-	SXParticlesEditor::StaticRefractionCoef->GAlign.top = true;
-	SXParticlesEditor::EditRefractionCoef = SXGUICrEdit("0", 100, 90, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditRefractionCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditRefractionCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditRefractionCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditRefractionCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::EditRefractionCoef->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditRefractionCoef->GAlign.left = true;
-	SXParticlesEditor::EditRefractionCoef->GAlign.top = true;
-	SXParticlesEditor::EditRefractionCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditRefractionCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticTransparencyCoef = SXGUICrStatic("TransparencyCoef:", 5, 110, 90, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticTransparencyCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticTransparencyCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticTransparencyCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticTransparencyCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticTransparencyCoef->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticTransparencyCoef->GAlign.left = true;
-	SXParticlesEditor::StaticTransparencyCoef->GAlign.top = true;
-	SXParticlesEditor::EditTransparencyCoef = SXGUICrEdit("0", 100, 110, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditTransparencyCoef->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditTransparencyCoef->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditTransparencyCoef->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditTransparencyCoef->SetTransparentTextBk(true);
-	SXParticlesEditor::EditTransparencyCoef->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditTransparencyCoef->GAlign.left = true;
-	SXParticlesEditor::EditTransparencyCoef->GAlign.top = true;
-	SXParticlesEditor::EditTransparencyCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditTransparencyCoef->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxLighting = SXGUICrCheckBox("Lighting", 180, 50, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxLighting->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxLighting->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxLighting->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxLighting->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxLighting->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxLighting->GAlign.left = true;
-	SXParticlesEditor::CheckBoxLighting->GAlign.top = true;
-
-	SXParticlesEditor::CheckBoxCollisionDelete = SXGUICrCheckBox("CollisionDelete", 180, 70, 90, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxCollisionDelete->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxCollisionDelete->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxCollisionDelete->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxCollisionDelete->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxCollisionDelete->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxCollisionDelete->GAlign.left = true;
-	SXParticlesEditor::CheckBoxCollisionDelete->GAlign.top = true;
-
-
-	SXParticlesEditor::StaticFigureType = SXGUICrStatic("FigureType:", 270, 12, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticFigureType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticFigureType->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticFigureType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticFigureType->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticFigureType->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticFigureType->GAlign.left = true;
-	SXParticlesEditor::StaticFigureType->GAlign.top = true;
-	SXParticlesEditor::ComboBoxFigureType = SXGUICrComboBox("", 335, 10, 170, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxFigureType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxFigureType->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxFigureType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxFigureType->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxFigureType->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxFigureType->AddItem("quad");
-	SXParticlesEditor::ComboBoxFigureType->AddItem("billboard");
-	SXParticlesEditor::ComboBoxFigureType->AddItem("quad_composite");
-	SXParticlesEditor::ComboBoxFigureType->SetSel(0);
-	SXParticlesEditor::ComboBoxFigureType->GAlign.left = true;
-	SXParticlesEditor::ComboBoxFigureType->GAlign.top = true;
-
-	SXParticlesEditor::StaticFigureCountQuads = SXGUICrStatic("FigureCountQuads:", 270, 35, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticFigureCountQuads->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticFigureCountQuads->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticFigureCountQuads->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticFigureCountQuads->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticFigureCountQuads->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticFigureCountQuads->GAlign.left = true;
-	SXParticlesEditor::StaticFigureCountQuads->GAlign.top = true;
-	SXParticlesEditor::EditFigureCountQuads = SXGUICrEdit("0", 375, 35, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditFigureCountQuads->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditFigureCountQuads->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditFigureCountQuads->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditFigureCountQuads->SetTransparentTextBk(true);
-	SXParticlesEditor::EditFigureCountQuads->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditFigureCountQuads->GAlign.left = true;
-	SXParticlesEditor::EditFigureCountQuads->GAlign.top = true;
-	SXParticlesEditor::EditFigureCountQuads->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditFigureCountQuads->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxFigureRotRand = SXGUICrCheckBox("FigureRotRand", 270, 55, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxFigureRotRand->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureRotRand->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureRotRand->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxFigureRotRand->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxFigureRotRand->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxFigureRotRand->GAlign.left = true;
-	SXParticlesEditor::CheckBoxFigureRotRand->GAlign.top = true;
-	SXParticlesEditor::CheckBoxFigureTapX = SXGUICrCheckBox("FigureTapX", 270, 75, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxFigureTapX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureTapX->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureTapX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxFigureTapX->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxFigureTapX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxFigureTapX->GAlign.left = true;
-	SXParticlesEditor::CheckBoxFigureTapX->GAlign.top = true;
-	SXParticlesEditor::CheckBoxFigureTapY = SXGUICrCheckBox("FigureTapY", 350, 75, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxFigureTapY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureTapY->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureTapY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxFigureTapY->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxFigureTapY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxFigureTapY->GAlign.left = true;
-	SXParticlesEditor::CheckBoxFigureTapY->GAlign.top = true;
-	SXParticlesEditor::CheckBoxFigureTapZ = SXGUICrCheckBox("FigureTapZ", 430, 75, 75, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxFigureTapZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureTapZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxFigureTapZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxFigureTapZ->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxFigureTapZ->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxFigureTapZ->GAlign.left = true;
-	SXParticlesEditor::CheckBoxFigureTapZ->GAlign.top = true;
-
-	SXParticlesEditor::StaticAlphaBlendType = SXGUICrStatic("AlphaBlendType:", 270, 97, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAlphaBlendType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAlphaBlendType->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAlphaBlendType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAlphaBlendType->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAlphaBlendType->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAlphaBlendType->GAlign.left = true;
-	SXParticlesEditor::StaticAlphaBlendType->GAlign.top = true;
-	SXParticlesEditor::ComboBoxAlphaBlendType = SXGUICrComboBox("", 355, 95, 150, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxAlphaBlendType->AddItem("pabt_alpha");
-	SXParticlesEditor::ComboBoxAlphaBlendType->AddItem("pabt_add");
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetSel(0);
-	SXParticlesEditor::ComboBoxAlphaBlendType->GAlign.left = true;
-	SXParticlesEditor::ComboBoxAlphaBlendType->GAlign.top = true;
-
-
-	SXParticlesEditor::StaticColor = SXGUICrStatic("Color:", 270, 120, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticColor->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticColor->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticColor->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticColor->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticColor->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticColor->GAlign.left = true;
-	SXParticlesEditor::StaticColor->GAlign.top = true;
-
-	SXParticlesEditor::StaticColorR = SXGUICrStatic("r:", 302, 120, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticColorR->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticColorR->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticColorR->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticColorR->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticColorR->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticColorR->GAlign.left = true;
-	SXParticlesEditor::StaticColorR->GAlign.top = true;
-
-	SXParticlesEditor::EditColorR = SXGUICrEdit("0", 310, 120, 45, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditColorR->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditColorR->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditColorR->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditColorR->SetTransparentTextBk(true);
-	SXParticlesEditor::EditColorR->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditColorR->GAlign.left = true;
-	SXParticlesEditor::EditColorR->GAlign.top = true;
-	SXParticlesEditor::EditColorR->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditColorR->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticColorG = SXGUICrStatic("g:", 356, 120, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticColorG->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticColorG->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticColorG->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticColorG->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticColorG->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticColorG->GAlign.left = true;
-	SXParticlesEditor::StaticColorG->GAlign.top = true;
-
-	SXParticlesEditor::EditColorG = SXGUICrEdit("0", 365, 120, 45, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditColorG->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditColorG->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditColorG->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditColorG->SetTransparentTextBk(true);
-	SXParticlesEditor::EditColorG->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditColorG->GAlign.left = true;
-	SXParticlesEditor::EditColorG->GAlign.top = true;
-	SXParticlesEditor::EditColorG->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditColorG->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticColorB = SXGUICrStatic("b:", 411, 120, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticColorB->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticColorB->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticColorB->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticColorB->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticColorB->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticColorB->GAlign.left = true;
-	SXParticlesEditor::StaticColorB->GAlign.top = true;
-
-	SXParticlesEditor::EditColorB = SXGUICrEdit("0", 420, 120, 45, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditColorB->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditColorB->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditColorB->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditColorB->SetTransparentTextBk(true);
-	SXParticlesEditor::EditColorB->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditColorB->GAlign.left = true;
-	SXParticlesEditor::EditColorB->GAlign.top = true;
-	SXParticlesEditor::EditColorB->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditColorB->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticColorA = SXGUICrStatic("a:", 466, 120, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticColorA->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticColorA->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticColorA->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticColorA->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticColorA->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticColorA->GAlign.left = true;
-	SXParticlesEditor::StaticColorA->GAlign.top = true;
-
-	SXParticlesEditor::EditColorA = SXGUICrEdit("0", 475, 120, 45, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditColorA->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditColorA->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditColorA->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditColorA->SetTransparentTextBk(true);
-	SXParticlesEditor::EditColorA->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditColorA->GAlign.left = true;
-	SXParticlesEditor::EditColorA->GAlign.top = true;
-	SXParticlesEditor::EditColorA->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditColorA->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+	SXParticlesEditor::StaticName = SXGUICrStatic("Name:", 5, 10, 40, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticName->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticName->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticName->setTransparentTextBk(true);
+	SXParticlesEditor::StaticName->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditName = SXGUICrEdit("0", 50, 10, 200, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditName->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditName->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditName->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditName->setTransparentTextBk(true);
+	SXParticlesEditor::EditName->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditName->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditName->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditName->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditName->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticCount = SXGUICrStatic("Count:", 5, 30, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticCount->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticCount->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticCount->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticCount->setTransparentTextBk(true);
+	SXParticlesEditor::StaticCount->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditCount = SXGUICrEdit("0", 50, 30, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditCount->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditCount->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditCount->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditCount->setTransparentTextBk(true);
+	SXParticlesEditor::EditCount->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditCount->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditCount->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticColorCoef = SXGUICrStatic("ColorCoef:", 130, 30, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticColorCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticColorCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticColorCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticColorCoef->setTransparentTextBk(true);
+	SXParticlesEditor::StaticColorCoef->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticColorCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticColorCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditColorCoef = SXGUICrEdit("0", 180, 30, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditColorCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditColorCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditColorCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorCoef->setTransparentTextBk(true);
+	SXParticlesEditor::EditColorCoef->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditColorCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditColorCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditColorCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::ButtonEmitterCreate = SXGUICrButton("CREATE", 725, 120, 70, 20, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonEmitterCreate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonEmitterCreate->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ButtonEmitterCreate->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ButtonEmitterCreate->setTransparentTextBk(true);
+	SXParticlesEditor::ButtonEmitterCreate->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::ButtonEmitterCreate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonEmitterCreate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonEmitterCreate->addHandler(SXParticlesEditor_ButtonEmitterCreate_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::StaticReCreateCount = SXGUICrStatic("ReCreateCount:", 5, 50, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticReCreateCount->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticReCreateCount->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticReCreateCount->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticReCreateCount->setTransparentTextBk(true);
+	SXParticlesEditor::StaticReCreateCount->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticReCreateCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticReCreateCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditReCreateCount = SXGUICrEdit("0", 100, 50, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditReCreateCount->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditReCreateCount->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditReCreateCount->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditReCreateCount->setTransparentTextBk(true);
+	SXParticlesEditor::EditReCreateCount->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditReCreateCount->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditReCreateCount->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditReCreateCount->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditReCreateCount->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSoftCoef = SXGUICrStatic("SoftCoef:", 5, 70, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSoftCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSoftCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSoftCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSoftCoef->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSoftCoef->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSoftCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSoftCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSoftCoef = SXGUICrEdit("0", 100, 70, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSoftCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSoftCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSoftCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSoftCoef->setTransparentTextBk(true);
+	SXParticlesEditor::EditSoftCoef->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSoftCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSoftCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSoftCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSoftCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticRefractionCoef = SXGUICrStatic("RefractionCoef:", 5, 90, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticRefractionCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticRefractionCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticRefractionCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticRefractionCoef->setTransparentTextBk(true);
+	SXParticlesEditor::StaticRefractionCoef->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticRefractionCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticRefractionCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditRefractionCoef = SXGUICrEdit("0", 100, 90, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditRefractionCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditRefractionCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditRefractionCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditRefractionCoef->setTransparentTextBk(true);
+	SXParticlesEditor::EditRefractionCoef->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditRefractionCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditRefractionCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditRefractionCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditRefractionCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticTransparencyCoef = SXGUICrStatic("TransparencyCoef:", 5, 110, 90, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticTransparencyCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticTransparencyCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticTransparencyCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticTransparencyCoef->setTransparentTextBk(true);
+	SXParticlesEditor::StaticTransparencyCoef->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticTransparencyCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticTransparencyCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTransparencyCoef = SXGUICrEdit("0", 100, 110, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditTransparencyCoef->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditTransparencyCoef->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditTransparencyCoef->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditTransparencyCoef->setTransparentTextBk(true);
+	SXParticlesEditor::EditTransparencyCoef->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditTransparencyCoef->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditTransparencyCoef->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTransparencyCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditTransparencyCoef->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxLighting = SXGUICrCheckBox("Lighting", 180, 50, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxLighting->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxLighting->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxLighting->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxLighting->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxLighting->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxLighting->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxLighting->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::CheckBoxCollisionDelete = SXGUICrCheckBox("CollisionDelete", 180, 70, 90, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxCollisionDelete->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxCollisionDelete->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxCollisionDelete->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxCollisionDelete->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxCollisionDelete->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxCollisionDelete->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxCollisionDelete->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+
+	SXParticlesEditor::StaticFigureType = SXGUICrStatic("FigureType:", 270, 12, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticFigureType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticFigureType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticFigureType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticFigureType->setTransparentTextBk(true);
+	SXParticlesEditor::StaticFigureType->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticFigureType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticFigureType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxFigureType = SXGUICrComboBox(335, 10, 170, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxFigureType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxFigureType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxFigureType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxFigureType->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxFigureType->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxFigureType->addItem("quad");
+	SXParticlesEditor::ComboBoxFigureType->addItem("billboard");
+	SXParticlesEditor::ComboBoxFigureType->addItem("quad_composite");
+	SXParticlesEditor::ComboBoxFigureType->setSel(0);
+	SXParticlesEditor::ComboBoxFigureType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxFigureType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticFigureCountQuads = SXGUICrStatic("FigureCountQuads:", 270, 35, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticFigureCountQuads->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticFigureCountQuads->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticFigureCountQuads->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticFigureCountQuads->setTransparentTextBk(true);
+	SXParticlesEditor::StaticFigureCountQuads->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticFigureCountQuads->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticFigureCountQuads->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditFigureCountQuads = SXGUICrEdit("0", 375, 35, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditFigureCountQuads->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditFigureCountQuads->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditFigureCountQuads->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditFigureCountQuads->setTransparentTextBk(true);
+	SXParticlesEditor::EditFigureCountQuads->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditFigureCountQuads->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditFigureCountQuads->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditFigureCountQuads->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditFigureCountQuads->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxFigureRotRand = SXGUICrCheckBox("FigureRotRand", 270, 55, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxFigureRotRand->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxFigureRotRand->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxFigureRotRand->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxFigureRotRand->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxFigureRotRand->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxFigureRotRand->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxFigureRotRand->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxFigureTapX = SXGUICrCheckBox("FigureTapX", 270, 75, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxFigureTapX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxFigureTapX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxFigureTapX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxFigureTapX->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxFigureTapX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxFigureTapX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxFigureTapX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxFigureTapY = SXGUICrCheckBox("FigureTapY", 350, 75, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxFigureTapY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxFigureTapY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxFigureTapY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxFigureTapY->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxFigureTapY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxFigureTapY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxFigureTapY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxFigureTapZ = SXGUICrCheckBox("FigureTapZ", 430, 75, 75, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxFigureTapZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxFigureTapZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxFigureTapZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxFigureTapZ->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxFigureTapZ->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxFigureTapZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxFigureTapZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticAlphaBlendType = SXGUICrStatic("AlphaBlendType:", 270, 97, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAlphaBlendType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAlphaBlendType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAlphaBlendType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAlphaBlendType->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAlphaBlendType->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAlphaBlendType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAlphaBlendType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxAlphaBlendType = SXGUICrComboBox(355, 95, 150, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxAlphaBlendType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxAlphaBlendType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxAlphaBlendType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxAlphaBlendType->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxAlphaBlendType->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxAlphaBlendType->addItem("pabt_alpha");
+	SXParticlesEditor::ComboBoxAlphaBlendType->addItem("pabt_add");
+	SXParticlesEditor::ComboBoxAlphaBlendType->setSel(0);
+	SXParticlesEditor::ComboBoxAlphaBlendType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxAlphaBlendType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+
+	SXParticlesEditor::StaticColor = SXGUICrStatic("Color:", 270, 120, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticColor->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticColor->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticColor->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticColor->setTransparentTextBk(true);
+	SXParticlesEditor::StaticColor->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticColor->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticColor->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticColorR = SXGUICrStatic("r:", 302, 120, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticColorR->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticColorR->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticColorR->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticColorR->setTransparentTextBk(true);
+	SXParticlesEditor::StaticColorR->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticColorR->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticColorR->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::EditColorR = SXGUICrEdit("0", 310, 120, 45, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditColorR->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditColorR->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditColorR->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorR->setTransparentTextBk(true);
+	SXParticlesEditor::EditColorR->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorR->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditColorR->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditColorR->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditColorR->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticColorG = SXGUICrStatic("g:", 356, 120, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticColorG->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticColorG->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticColorG->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticColorG->setTransparentTextBk(true);
+	SXParticlesEditor::StaticColorG->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticColorG->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticColorG->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::EditColorG = SXGUICrEdit("0", 365, 120, 45, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditColorG->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditColorG->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditColorG->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorG->setTransparentTextBk(true);
+	SXParticlesEditor::EditColorG->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorG->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditColorG->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditColorG->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditColorG->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticColorB = SXGUICrStatic("b:", 411, 120, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticColorB->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticColorB->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticColorB->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticColorB->setTransparentTextBk(true);
+	SXParticlesEditor::StaticColorB->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticColorB->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticColorB->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::EditColorB = SXGUICrEdit("0", 420, 120, 45, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditColorB->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditColorB->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditColorB->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorB->setTransparentTextBk(true);
+	SXParticlesEditor::EditColorB->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorB->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditColorB->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditColorB->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditColorB->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticColorA = SXGUICrStatic("a:", 466, 120, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticColorA->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticColorA->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticColorA->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticColorA->setTransparentTextBk(true);
+	SXParticlesEditor::StaticColorA->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticColorA->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticColorA->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::EditColorA = SXGUICrEdit("0", 475, 120, 45, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditColorA->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditColorA->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditColorA->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorA->setTransparentTextBk(true);
+	SXParticlesEditor::EditColorA->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditColorA->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditColorA->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditColorA->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditColorA->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
 
 	/*ISXGUIStatic* StaticColorG;
 	ISXGUIEdit* EditColorG;
@@ -966,1238 +965,1238 @@ void SXParticlesEditor::InitAllElements()
 	ISXGUIEdit* EditColorA;*/
 
 
-	SXParticlesEditor::StaticTimeLife = SXGUICrStatic("TimeLife:", 530, 10, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticTimeLife->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticTimeLife->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticTimeLife->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticTimeLife->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticTimeLife->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticTimeLife->GAlign.left = true;
-	SXParticlesEditor::StaticTimeLife->GAlign.top = true;
-	SXParticlesEditor::EditTimeLife = SXGUICrEdit("0", 585, 10, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditTimeLife->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditTimeLife->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditTimeLife->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditTimeLife->SetTransparentTextBk(true);
-	SXParticlesEditor::EditTimeLife->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditTimeLife->GAlign.left = true;
-	SXParticlesEditor::EditTimeLife->GAlign.top = true;
-	SXParticlesEditor::EditTimeLife->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditTimeLife->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticTimeLifeDisp = SXGUICrStatic("TimeLifeDisp:", 660, 10, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticTimeLifeDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticTimeLifeDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticTimeLifeDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticTimeLifeDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticTimeLifeDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticTimeLifeDisp->GAlign.left = true;
-	SXParticlesEditor::StaticTimeLifeDisp->GAlign.top = true;
-	SXParticlesEditor::EditTimeLifeDisp = SXGUICrEdit("0", 730, 10, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditTimeLifeDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditTimeLifeDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditTimeLifeDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditTimeLifeDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditTimeLifeDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditTimeLifeDisp->GAlign.left = true;
-	SXParticlesEditor::EditTimeLifeDisp->GAlign.top = true;
-	SXParticlesEditor::EditTimeLifeDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditTimeLifeDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAlphaAgeDepend = SXGUICrStatic("AlphaAgeDepend:", 530, 32, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAlphaAgeDepend->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAlphaAgeDepend->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAlphaAgeDepend->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAlphaAgeDepend->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAlphaAgeDepend->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAlphaAgeDepend->GAlign.left = true;
-	SXParticlesEditor::StaticAlphaAgeDepend->GAlign.top = true;
-	SXParticlesEditor::ComboBoxAlphaDependAge = SXGUICrComboBox("", 630, 30, 170, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxAlphaDependAge->AddItem("none");
-	SXParticlesEditor::ComboBoxAlphaDependAge->AddItem("direct");
-	SXParticlesEditor::ComboBoxAlphaDependAge->AddItem("inverse");
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetSel(0);
-	SXParticlesEditor::ComboBoxAlphaDependAge->GAlign.left = true;
-	SXParticlesEditor::ComboBoxAlphaDependAge->GAlign.top = true;
-
-	SXParticlesEditor::StaticSize = SXGUICrStatic("Size:", 530, 55, 25, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSize->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSize->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSize->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSize->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSize->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSize->GAlign.left = true;
-	SXParticlesEditor::StaticSize->GAlign.top = true;
-	SXParticlesEditor::StaticSizeX = SXGUICrStatic("x:", 555, 55, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSizeX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSizeX->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSizeX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSizeX->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSizeX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSizeX->GAlign.left = true;
-	SXParticlesEditor::StaticSizeX->GAlign.top = true;
-	SXParticlesEditor::EditSizeX = SXGUICrEdit("0", 565, 55, 65, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSizeX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSizeX->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSizeX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSizeX->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSizeX->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSizeX->GAlign.left = true;
-	SXParticlesEditor::EditSizeX->GAlign.top = true;
-	SXParticlesEditor::EditSizeX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSizeX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSizeY = SXGUICrStatic("y:", 635, 55, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSizeY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSizeY->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSizeY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSizeY->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSizeY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSizeY->GAlign.left = true;
-	SXParticlesEditor::StaticSizeY->GAlign.top = true;
-	SXParticlesEditor::EditSizeY = SXGUICrEdit("0", 645, 55, 65, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSizeY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSizeY->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSizeY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSizeY->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSizeY->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSizeY->GAlign.left = true;
-	SXParticlesEditor::EditSizeY->GAlign.top = true;
-	SXParticlesEditor::EditSizeY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSizeY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSizeDisp = SXGUICrStatic("Disp:", 710, 55, 25, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSizeDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSizeDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSizeDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSizeDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSizeDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSizeDisp->GAlign.left = true;
-	SXParticlesEditor::StaticSizeDisp->GAlign.top = true;
-	SXParticlesEditor::EditSizeDisp = SXGUICrEdit("0", 735, 55, 65, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSizeDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSizeDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSizeDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSizeDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSizeDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSizeDisp->GAlign.left = true;
-	SXParticlesEditor::EditSizeDisp->GAlign.top = true;
-	SXParticlesEditor::EditSizeDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSizeDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSizeDependAge = SXGUICrStatic("SizeDependAge:", 530, 77, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSizeDependAge->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSizeDependAge->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSizeDependAge->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSizeDependAge->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSizeDependAge->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSizeDependAge->GAlign.left = true;
-	SXParticlesEditor::StaticSizeDependAge->GAlign.top = true;
-	SXParticlesEditor::ComboBoxSizeDependAge = SXGUICrComboBox("", 630, 75, 170, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxSizeDependAge->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxSizeDependAge->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxSizeDependAge->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxSizeDependAge->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxSizeDependAge->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxSizeDependAge->AddItem("none");
-	SXParticlesEditor::ComboBoxSizeDependAge->AddItem("direct");
-	SXParticlesEditor::ComboBoxSizeDependAge->AddItem("inverse");
-	SXParticlesEditor::ComboBoxSizeDependAge->SetSel(0);
-	SXParticlesEditor::ComboBoxSizeDependAge->GAlign.left = true;
-	SXParticlesEditor::ComboBoxSizeDependAge->GAlign.top = true;
-
-
-	SXParticlesEditor::CheckBoxTrack = SXGUICrCheckBox("Track", 530, 100, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxTrack->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxTrack->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxTrack->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxTrack->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxTrack->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxTrack->GAlign.left = true;
-	SXParticlesEditor::CheckBoxTrack->GAlign.top = true;
-
-	SXParticlesEditor::StaticTrackSize = SXGUICrStatic("Size:", 580, 100, 25, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticTrackSize->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticTrackSize->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticTrackSize->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticTrackSize->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticTrackSize->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticTrackSize->GAlign.left = true;
-	SXParticlesEditor::StaticTrackSize->GAlign.top = true;
-
-	SXParticlesEditor::EditTrackSize = SXGUICrEdit("0", 605, 100, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditTrackSize->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditTrackSize->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditTrackSize->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditTrackSize->SetTransparentTextBk(true);
-	SXParticlesEditor::EditTrackSize->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditTrackSize->GAlign.left = true;
-	SXParticlesEditor::EditTrackSize->GAlign.top = true;
-	SXParticlesEditor::EditTrackSize->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditTrackSize->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticTrackTime = SXGUICrStatic("Time:", 670, 100, 25, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticTrackTime->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticTrackTime->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticTrackTime->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticTrackTime->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticTrackTime->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticTrackTime->GAlign.left = true;
-	SXParticlesEditor::StaticTrackTime->GAlign.top = true;
-
-	SXParticlesEditor::EditTrackTime = SXGUICrEdit("0", 700, 100, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditTrackTime->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditTrackTime->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditTrackTime->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditTrackTime->SetTransparentTextBk(true);
-	SXParticlesEditor::EditTrackTime->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditTrackTime->GAlign.left = true;
-	SXParticlesEditor::EditTrackTime->GAlign.top = true;
-	SXParticlesEditor::EditTrackTime->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditTrackTime->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+	SXParticlesEditor::StaticTimeLife = SXGUICrStatic("TimeLife:", 530, 10, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticTimeLife->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticTimeLife->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticTimeLife->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticTimeLife->setTransparentTextBk(true);
+	SXParticlesEditor::StaticTimeLife->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticTimeLife->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticTimeLife->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTimeLife = SXGUICrEdit("0", 585, 10, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditTimeLife->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditTimeLife->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditTimeLife->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditTimeLife->setTransparentTextBk(true);
+	SXParticlesEditor::EditTimeLife->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditTimeLife->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditTimeLife->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTimeLife->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditTimeLife->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticTimeLifeDisp = SXGUICrStatic("TimeLifeDisp:", 660, 10, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticTimeLifeDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticTimeLifeDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticTimeLifeDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticTimeLifeDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticTimeLifeDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticTimeLifeDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticTimeLifeDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTimeLifeDisp = SXGUICrEdit("0", 730, 10, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditTimeLifeDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditTimeLifeDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditTimeLifeDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditTimeLifeDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditTimeLifeDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditTimeLifeDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditTimeLifeDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTimeLifeDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditTimeLifeDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAlphaAgeDepend = SXGUICrStatic("AlphaAgeDepend:", 530, 32, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAlphaAgeDepend->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAlphaAgeDepend->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAlphaAgeDepend->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAlphaAgeDepend->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAlphaAgeDepend->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAlphaAgeDepend->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAlphaAgeDepend->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxAlphaDependAge = SXGUICrComboBox(630, 30, 170, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxAlphaDependAge->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxAlphaDependAge->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxAlphaDependAge->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxAlphaDependAge->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxAlphaDependAge->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxAlphaDependAge->addItem("none");
+	SXParticlesEditor::ComboBoxAlphaDependAge->addItem("direct");
+	SXParticlesEditor::ComboBoxAlphaDependAge->addItem("inverse");
+	SXParticlesEditor::ComboBoxAlphaDependAge->setSel(0);
+	SXParticlesEditor::ComboBoxAlphaDependAge->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxAlphaDependAge->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticSize = SXGUICrStatic("Size:", 530, 55, 25, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSize->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSize->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSize->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSize->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSize->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSize->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSize->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticSizeX = SXGUICrStatic("x:", 555, 55, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSizeX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSizeX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSizeX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSizeX->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSizeX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSizeX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSizeX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSizeX = SXGUICrEdit("0", 565, 55, 65, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSizeX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSizeX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSizeX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSizeX->setTransparentTextBk(true);
+	SXParticlesEditor::EditSizeX->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSizeX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSizeX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSizeX->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSizeX->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSizeY = SXGUICrStatic("y:", 635, 55, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSizeY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSizeY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSizeY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSizeY->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSizeY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSizeY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSizeY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSizeY = SXGUICrEdit("0", 645, 55, 65, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSizeY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSizeY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSizeY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSizeY->setTransparentTextBk(true);
+	SXParticlesEditor::EditSizeY->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSizeY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSizeY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSizeY->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSizeY->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSizeDisp = SXGUICrStatic("Disp:", 710, 55, 25, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSizeDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSizeDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSizeDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSizeDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSizeDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSizeDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSizeDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSizeDisp = SXGUICrEdit("0", 735, 55, 65, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSizeDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSizeDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSizeDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSizeDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditSizeDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSizeDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSizeDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSizeDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSizeDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSizeDependAge = SXGUICrStatic("SizeDependAge:", 530, 77, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSizeDependAge->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSizeDependAge->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSizeDependAge->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSizeDependAge->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSizeDependAge->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSizeDependAge->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSizeDependAge->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxSizeDependAge = SXGUICrComboBox(630, 75, 170, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxSizeDependAge->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxSizeDependAge->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxSizeDependAge->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxSizeDependAge->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxSizeDependAge->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxSizeDependAge->addItem("none");
+	SXParticlesEditor::ComboBoxSizeDependAge->addItem("direct");
+	SXParticlesEditor::ComboBoxSizeDependAge->addItem("inverse");
+	SXParticlesEditor::ComboBoxSizeDependAge->setSel(0);
+	SXParticlesEditor::ComboBoxSizeDependAge->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxSizeDependAge->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+
+	SXParticlesEditor::CheckBoxTrack = SXGUICrCheckBox("Track", 530, 100, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxTrack->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxTrack->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxTrack->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxTrack->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxTrack->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxTrack->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxTrack->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::StaticTrackSize = SXGUICrStatic("Size:", 580, 100, 25, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticTrackSize->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticTrackSize->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticTrackSize->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticTrackSize->setTransparentTextBk(true);
+	SXParticlesEditor::StaticTrackSize->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticTrackSize->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticTrackSize->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::EditTrackSize = SXGUICrEdit("0", 605, 100, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditTrackSize->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditTrackSize->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditTrackSize->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditTrackSize->setTransparentTextBk(true);
+	SXParticlesEditor::EditTrackSize->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditTrackSize->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditTrackSize->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTrackSize->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditTrackSize->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticTrackTime = SXGUICrStatic("Time:", 670, 100, 25, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticTrackTime->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticTrackTime->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticTrackTime->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticTrackTime->setTransparentTextBk(true);
+	SXParticlesEditor::StaticTrackTime->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticTrackTime->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticTrackTime->setFollowParentSide(SXGUI_SIDE_TOP, true);
+
+	SXParticlesEditor::EditTrackTime = SXGUICrEdit("0", 700, 100, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditTrackTime->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditTrackTime->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditTrackTime->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditTrackTime->setTransparentTextBk(true);
+	SXParticlesEditor::EditTrackTime->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditTrackTime->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditTrackTime->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTrackTime->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditTrackTime->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
 	//}
 
 	//bound
 	//{
-	SXParticlesEditor::StaticBoundType = SXGUICrStatic("Bound type:", 5, 12, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundType->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundType->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundType->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundType->GAlign.left = true;
-	SXParticlesEditor::StaticBoundType->GAlign.top = true;
-	SXParticlesEditor::ComboBoxBoundType = SXGUICrComboBox("", 80, 10, 140, 100, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxBoundType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxBoundType->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxBoundType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxBoundType->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxBoundType->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxBoundType->AddItem("none");
-	SXParticlesEditor::ComboBoxBoundType->AddItem("sphere");
-	SXParticlesEditor::ComboBoxBoundType->AddItem("box");
-	SXParticlesEditor::ComboBoxBoundType->AddItem("cone");
-	SXParticlesEditor::ComboBoxBoundType->SetSel(0);
-	SXParticlesEditor::ComboBoxBoundType->GAlign.left = true;
-	SXParticlesEditor::ComboBoxBoundType->GAlign.top = true;
-	SXParticlesEditor::StaticBoundVec1 = SXGUICrStatic("Vector1:", 5, 40, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec1->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec1->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec1->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec1->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec1->GAlign.top = true;
-	SXParticlesEditor::StaticBoundVec1X = SXGUICrStatic("x:", 60, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec1X->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1X->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1X->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec1X->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec1X->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec1X->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec1X->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1X = SXGUICrEdit("0", 70, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec1X->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1X->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec1X->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1X->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec1X->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1X->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec1X->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1X->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1X->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec1Y = SXGUICrStatic("y:", 150, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec1Y->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1Y->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1Y->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec1Y->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec1Y->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec1Y->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec1Y->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1Y = SXGUICrEdit("0", 160, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec1Y->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1Y->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec1Y->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1Y->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec1Y->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1Y->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec1Y->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1Y->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1Y->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec1Z = SXGUICrStatic("z:", 235, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec1Z->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1Z->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1Z->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec1Z->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec1Z->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec1Z->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec1Z->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1Z = SXGUICrEdit("0", 245, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec1Z->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1Z->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec1Z->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1Z->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec1Z->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1Z->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec1Z->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1Z->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1Z->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec1W = SXGUICrStatic("w:", 320, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec1W->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1W->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec1W->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec1W->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec1W->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec1W->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec1W->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1W = SXGUICrEdit("0", 330, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec1W->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1W->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec1W->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1W->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec1W->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec1W->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec1W->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec1W->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec1W->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec2 = SXGUICrStatic("Vector2:", 5, 60, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec2->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec2->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec2->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec2->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec2->GAlign.top = true;
-	SXParticlesEditor::StaticBoundVec2X = SXGUICrStatic("x:", 60, 60, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec2X->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2X->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2X->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec2X->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec2X->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec2X->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec2X->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2X = SXGUICrEdit("0", 70, 60, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec2X->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2X->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec2X->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2X->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec2X->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2X->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec2X->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2X->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2X->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec2Y = SXGUICrStatic("y:", 150, 60, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec2Y->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2Y->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2Y->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec2Y->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec2Y->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec2Y->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec2Y->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2Y = SXGUICrEdit("0", 160, 60, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec2Y->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2Y->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec2Y->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2Y->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec2Y->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2Y->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec2Y->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2Y->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2Y->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec2Z = SXGUICrStatic("z:", 235, 60, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec2Z->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2Z->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2Z->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec2Z->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec2Z->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec2Z->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec2Z->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2Z = SXGUICrEdit("0", 245, 60, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec2Z->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2Z->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec2Z->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2Z->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec2Z->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2Z->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec2Z->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2Z->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2Z->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticBoundVec2W = SXGUICrStatic("w:", 320, 60, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticBoundVec2W->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2W->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticBoundVec2W->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticBoundVec2W->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticBoundVec2W->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticBoundVec2W->GAlign.left = true;
-	SXParticlesEditor::StaticBoundVec2W->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2W = SXGUICrEdit("0", 330, 60, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditBoundVec2W->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2W->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditBoundVec2W->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2W->SetTransparentTextBk(true);
-	SXParticlesEditor::EditBoundVec2W->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditBoundVec2W->GAlign.left = true;
-	SXParticlesEditor::EditBoundVec2W->GAlign.top = true;
-	SXParticlesEditor::EditBoundVec2W->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditBoundVec2W->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+	SXParticlesEditor::StaticBoundType = SXGUICrStatic("Bound type:", 5, 12, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundType->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundType->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxBoundType = SXGUICrComboBox(80, 10, 140, 100, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxBoundType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxBoundType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxBoundType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxBoundType->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxBoundType->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxBoundType->addItem("none");
+	SXParticlesEditor::ComboBoxBoundType->addItem("sphere");
+	SXParticlesEditor::ComboBoxBoundType->addItem("box");
+	SXParticlesEditor::ComboBoxBoundType->addItem("cone");
+	SXParticlesEditor::ComboBoxBoundType->setSel(0);
+	SXParticlesEditor::ComboBoxBoundType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxBoundType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticBoundVec1 = SXGUICrStatic("Vector1:", 5, 40, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec1->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec1->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec1->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec1->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec1->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec1->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec1->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticBoundVec1X = SXGUICrStatic("x:", 60, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec1X->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec1X->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec1X->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec1X->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec1X->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec1X->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec1X->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1X = SXGUICrEdit("0", 70, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec1X->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1X->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec1X->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1X->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec1X->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1X->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec1X->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1X->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1X->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec1Y = SXGUICrStatic("y:", 150, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec1Y->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec1Y->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec1Y->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec1Y->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec1Y->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec1Y->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec1Y->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1Y = SXGUICrEdit("0", 160, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec1Y->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1Y->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec1Y->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1Y->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec1Y->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1Y->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec1Y->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1Y->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1Y->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec1Z = SXGUICrStatic("z:", 235, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec1Z->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec1Z->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec1Z->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec1Z->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec1Z->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec1Z->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec1Z->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1Z = SXGUICrEdit("0", 245, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec1Z->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1Z->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec1Z->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1Z->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec1Z->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1Z->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec1Z->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1Z->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1Z->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec1W = SXGUICrStatic("w:", 320, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec1W->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec1W->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec1W->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec1W->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec1W->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec1W->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec1W->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1W = SXGUICrEdit("0", 330, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec1W->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1W->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec1W->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1W->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec1W->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec1W->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec1W->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec1W->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec1W->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec2 = SXGUICrStatic("Vector2:", 5, 60, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec2->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec2->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec2->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec2->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec2->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec2->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec2->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticBoundVec2X = SXGUICrStatic("x:", 60, 60, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec2X->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec2X->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec2X->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec2X->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec2X->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec2X->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec2X->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2X = SXGUICrEdit("0", 70, 60, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec2X->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2X->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec2X->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2X->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec2X->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2X->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec2X->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2X->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2X->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec2Y = SXGUICrStatic("y:", 150, 60, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec2Y->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec2Y->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec2Y->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec2Y->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec2Y->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec2Y->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec2Y->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2Y = SXGUICrEdit("0", 160, 60, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec2Y->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2Y->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec2Y->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2Y->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec2Y->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2Y->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec2Y->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2Y->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2Y->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec2Z = SXGUICrStatic("z:", 235, 60, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec2Z->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec2Z->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec2Z->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec2Z->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec2Z->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec2Z->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec2Z->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2Z = SXGUICrEdit("0", 245, 60, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec2Z->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2Z->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec2Z->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2Z->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec2Z->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2Z->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec2Z->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2Z->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2Z->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticBoundVec2W = SXGUICrStatic("w:", 320, 60, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticBoundVec2W->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticBoundVec2W->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticBoundVec2W->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticBoundVec2W->setTransparentTextBk(true);
+	SXParticlesEditor::StaticBoundVec2W->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticBoundVec2W->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticBoundVec2W->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2W = SXGUICrEdit("0", 330, 60, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditBoundVec2W->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2W->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditBoundVec2W->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2W->setTransparentTextBk(true);
+	SXParticlesEditor::EditBoundVec2W->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditBoundVec2W->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditBoundVec2W->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditBoundVec2W->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditBoundVec2W->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
 
 	//}
 
 	//character
 	//{
-	SXParticlesEditor::CheckBoxCircle = SXGUICrCheckBox("Circle", 5, 10, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxCircle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxCircle->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxCircle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxCircle->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxCircle->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxCircle->GAlign.left = true;
-	SXParticlesEditor::CheckBoxCircle->GAlign.top = true;
-	SXParticlesEditor::StaticCircleAxis = SXGUICrStatic("CircleAxis:", 5, 32, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticCircleAxis->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticCircleAxis->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticCircleAxis->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticCircleAxis->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticCircleAxis->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticCircleAxis->GAlign.left = true;
-	SXParticlesEditor::StaticCircleAxis->GAlign.top = true;
-	SXParticlesEditor::ComboBoxCircleAxis = SXGUICrComboBox("", 60, 30, 100, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxCircleAxis->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxCircleAxis->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxCircleAxis->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxCircleAxis->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxCircleAxis->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxCircleAxis->AddItem("x");
-	SXParticlesEditor::ComboBoxCircleAxis->AddItem("y");
-	SXParticlesEditor::ComboBoxCircleAxis->AddItem("z");
-	SXParticlesEditor::ComboBoxCircleAxis->SetSel(0);
-	SXParticlesEditor::ComboBoxCircleAxis->GAlign.left = true;
-	SXParticlesEditor::ComboBoxCircleAxis->GAlign.top = true;
-	SXParticlesEditor::StaticCircleAngle = SXGUICrStatic("CircleAngle:", 5, 55, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticCircleAngle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticCircleAngle->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticCircleAngle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticCircleAngle->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticCircleAngle->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticCircleAngle->GAlign.left = true;
-	SXParticlesEditor::StaticCircleAngle->GAlign.top = true;
-	SXParticlesEditor::EditCircleAngle = SXGUICrEdit("0", 90, 55, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditCircleAngle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditCircleAngle->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditCircleAngle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditCircleAngle->SetTransparentTextBk(true);
-	SXParticlesEditor::EditCircleAngle->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditCircleAngle->GAlign.left = true;
-	SXParticlesEditor::EditCircleAngle->GAlign.top = true;
-	SXParticlesEditor::EditCircleAngle->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditCircleAngle->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticCircleAngleDisp = SXGUICrStatic("CircleAngleDisp:", 6, 75, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticCircleAngleDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticCircleAngleDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticCircleAngleDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticCircleAngleDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticCircleAngleDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticCircleAngleDisp->GAlign.left = true;
-	SXParticlesEditor::StaticCircleAngleDisp->GAlign.top = true;
-	SXParticlesEditor::EditCircleAngleDisp = SXGUICrEdit("0", 90, 75, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditCircleAngleDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditCircleAngleDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditCircleAngleDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditCircleAngleDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditCircleAngleDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditCircleAngleDisp->GAlign.left = true;
-	SXParticlesEditor::EditCircleAngleDisp->GAlign.top = true;
-	SXParticlesEditor::EditCircleAngleDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditCircleAngleDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxRotate = SXGUICrCheckBox("Rotate", 175, 10, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxRotate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxRotate->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxRotate->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxRotate->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxRotate->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxRotate->GAlign.left = true;
-	SXParticlesEditor::CheckBoxRotate->GAlign.top = true;
-	SXParticlesEditor::StaticRotateAngle = SXGUICrStatic("RotateAngle:", 175, 30, 85, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticRotateAngle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticRotateAngle->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticRotateAngle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticRotateAngle->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticRotateAngle->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticRotateAngle->GAlign.left = true;
-	SXParticlesEditor::StaticRotateAngle->GAlign.top = true;
-	SXParticlesEditor::EditRotateAngle = SXGUICrEdit("0", 265, 30, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditRotateAngle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditRotateAngle->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditRotateAngle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditRotateAngle->SetTransparentTextBk(true);
-	SXParticlesEditor::EditRotateAngle->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditRotateAngle->GAlign.left = true;
-	SXParticlesEditor::EditRotateAngle->GAlign.top = true;
-	SXParticlesEditor::EditRotateAngle->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditRotateAngle->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticRotateAngleDisp = SXGUICrStatic("RotateAngleDisp:", 175, 50, 85, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticRotateAngleDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticRotateAngleDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticRotateAngleDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticRotateAngleDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticRotateAngleDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticRotateAngleDisp->GAlign.left = true;
-	SXParticlesEditor::StaticRotateAngleDisp->GAlign.top = true;
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg = SXGUICrCheckBox("CircleAngleDispNeg", 5, 95, 120, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->GAlign.top = true;
-	SXParticlesEditor::EditRotateAngleDisp = SXGUICrEdit("0", 265, 50, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditRotateAngleDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditRotateAngleDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditRotateAngleDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditRotateAngleDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditRotateAngleDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditRotateAngleDisp->GAlign.left = true;
-	SXParticlesEditor::EditRotateAngleDisp->GAlign.top = true;
-	SXParticlesEditor::EditRotateAngleDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditRotateAngleDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg = SXGUICrCheckBox("RotateAngleDispNeg", 175, 70, 120, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxDeviation = SXGUICrCheckBox("Deviation", 350, 10, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxDeviation->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviation->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviation->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxDeviation->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxDeviation->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxDeviation->GAlign.left = true;
-	SXParticlesEditor::CheckBoxDeviation->GAlign.top = true;
-	SXParticlesEditor::StaticDeviationType = SXGUICrStatic("DeviationType:", 350, 30, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticDeviationType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticDeviationType->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticDeviationType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticDeviationType->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticDeviationType->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticDeviationType->GAlign.left = true;
-	SXParticlesEditor::StaticDeviationType->GAlign.top = true;
-	SXParticlesEditor::ComboBoxDeviationType = SXGUICrComboBox("", 455, 25, 130, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxDeviationType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxDeviationType->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxDeviationType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxDeviationType->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxDeviationType->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxDeviationType->AddItem("rnd");
-	SXParticlesEditor::ComboBoxDeviationType->AddItem("along");
-	SXParticlesEditor::ComboBoxDeviationType->AddItem("wave");
-	SXParticlesEditor::ComboBoxDeviationType->SetSel(0);
-	SXParticlesEditor::ComboBoxDeviationType->GAlign.left = true;
-	SXParticlesEditor::ComboBoxDeviationType->GAlign.top = true;
-	SXParticlesEditor::StaticDeviationAmplitude = SXGUICrStatic("DeviationAmplitude:", 350, 50, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticDeviationAmplitude->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticDeviationAmplitude->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticDeviationAmplitude->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticDeviationAmplitude->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticDeviationAmplitude->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticDeviationAmplitude->GAlign.left = true;
-	SXParticlesEditor::StaticDeviationAmplitude->GAlign.top = true;
-	SXParticlesEditor::StaticDeviationCoefAngle = SXGUICrStatic("DeviationCoefAngle:", 350, 70, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticDeviationCoefAngle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticDeviationCoefAngle->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticDeviationCoefAngle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticDeviationCoefAngle->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticDeviationCoefAngle->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticDeviationCoefAngle->GAlign.left = true;
-	SXParticlesEditor::StaticDeviationCoefAngle->GAlign.top = true;
-	SXParticlesEditor::EditDeviationAmplitude = SXGUICrEdit("0", 490, 50, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditDeviationAmplitude->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditDeviationAmplitude->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditDeviationAmplitude->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditDeviationAmplitude->SetTransparentTextBk(true);
-	SXParticlesEditor::EditDeviationAmplitude->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditDeviationAmplitude->GAlign.left = true;
-	SXParticlesEditor::EditDeviationAmplitude->GAlign.top = true;
-	SXParticlesEditor::EditDeviationAmplitude->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditDeviationAmplitude->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::EditDeviationCoefAngle = SXGUICrEdit("0", 490, 70, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngle->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngle->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngle->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditDeviationCoefAngle->SetTransparentTextBk(true);
-	SXParticlesEditor::EditDeviationCoefAngle->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditDeviationCoefAngle->GAlign.left = true;
-	SXParticlesEditor::EditDeviationCoefAngle->GAlign.top = true;
-	SXParticlesEditor::EditDeviationCoefAngle->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngle->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticDeviationAxis = SXGUICrStatic("DeviationAxis:", 590, 25, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticDeviationAxis->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticDeviationAxis->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticDeviationAxis->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticDeviationAxis->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticDeviationAxis->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticDeviationAxis->GAlign.left = true;
-	SXParticlesEditor::StaticDeviationAxis->GAlign.top = true;
-	SXParticlesEditor::ComboBoxDeviationAxis = SXGUICrComboBox("", 665, 20, 130, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxDeviationAxis->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxDeviationAxis->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxDeviationAxis->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxDeviationAxis->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxDeviationAxis->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxDeviationAxis->AddItem("x");
-	SXParticlesEditor::ComboBoxDeviationAxis->AddItem("y");
-	SXParticlesEditor::ComboBoxDeviationAxis->AddItem("z");
-	SXParticlesEditor::ComboBoxDeviationAxis->SetSel(0);
-	SXParticlesEditor::ComboBoxDeviationAxis->GAlign.left = true;
-	SXParticlesEditor::ComboBoxDeviationAxis->GAlign.top = true;
-	SXParticlesEditor::StaticDeviationCountDelayMls = SXGUICrStatic("DeviationCountDelayMls:", 590, 45, 120, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticDeviationCountDelayMls->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticDeviationCountDelayMls->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticDeviationCountDelayMls->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticDeviationCountDelayMls->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticDeviationCountDelayMls->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticDeviationCountDelayMls->GAlign.left = true;
-	SXParticlesEditor::StaticDeviationCountDelayMls->GAlign.top = true;
-	SXParticlesEditor::EditDeviationCountDelayMls = SXGUICrEdit("0", 715, 45, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditDeviationCountDelayMls->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditDeviationCountDelayMls->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditDeviationCountDelayMls->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditDeviationCountDelayMls->SetTransparentTextBk(true);
-	SXParticlesEditor::EditDeviationCountDelayMls->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditDeviationCountDelayMls->GAlign.left = true;
-	SXParticlesEditor::EditDeviationCountDelayMls->GAlign.top = true;
-	SXParticlesEditor::EditDeviationCountDelayMls->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditDeviationCountDelayMls->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticDeviationCoefAngleDisp = SXGUICrStatic("DeviationCoefAngleDisp:", 350, 90, 120, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->GAlign.left = true;
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->GAlign.top = true;
-	SXParticlesEditor::EditDeviationCoefAngleDisp = SXGUICrEdit("0", 490, 90, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->GAlign.left = true;
-	SXParticlesEditor::EditDeviationCoefAngleDisp->GAlign.top = true;
-	SXParticlesEditor::EditDeviationCoefAngleDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg = SXGUICrCheckBox("DeviationCoefAngleDispNeg", 350, 110, 160, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxDeviationTapX = SXGUICrCheckBox("DeviationTapX", 590, 65, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxDeviationTapX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationTapX->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationTapX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxDeviationTapX->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxDeviationTapX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxDeviationTapX->GAlign.left = true;
-	SXParticlesEditor::CheckBoxDeviationTapX->GAlign.top = true;
-	SXParticlesEditor::CheckBoxDeviationTapY = SXGUICrCheckBox("DeviationTapY", 590, 85, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxDeviationTapY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationTapY->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationTapY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxDeviationTapY->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxDeviationTapY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxDeviationTapY->GAlign.left = true;
-	SXParticlesEditor::CheckBoxDeviationTapY->GAlign.top = true;
-	SXParticlesEditor::CheckBoxDeviationTapZ = SXGUICrCheckBox("DeviationTapZ", 590, 105, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxDeviationTapZ->GAlign.left = true;
-	SXParticlesEditor::CheckBoxDeviationTapZ->GAlign.top = true;
+	SXParticlesEditor::CheckBoxCircle = SXGUICrCheckBox("Circle", 5, 10, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxCircle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxCircle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxCircle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxCircle->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxCircle->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxCircle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxCircle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticCircleAxis = SXGUICrStatic("CircleAxis:", 5, 32, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticCircleAxis->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticCircleAxis->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticCircleAxis->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticCircleAxis->setTransparentTextBk(true);
+	SXParticlesEditor::StaticCircleAxis->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticCircleAxis->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticCircleAxis->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxCircleAxis = SXGUICrComboBox(60, 30, 100, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxCircleAxis->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxCircleAxis->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxCircleAxis->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxCircleAxis->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxCircleAxis->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxCircleAxis->addItem("x");
+	SXParticlesEditor::ComboBoxCircleAxis->addItem("y");
+	SXParticlesEditor::ComboBoxCircleAxis->addItem("z");
+	SXParticlesEditor::ComboBoxCircleAxis->setSel(0);
+	SXParticlesEditor::ComboBoxCircleAxis->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxCircleAxis->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticCircleAngle = SXGUICrStatic("CircleAngle:", 5, 55, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticCircleAngle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticCircleAngle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticCircleAngle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticCircleAngle->setTransparentTextBk(true);
+	SXParticlesEditor::StaticCircleAngle->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticCircleAngle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticCircleAngle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditCircleAngle = SXGUICrEdit("0", 90, 55, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditCircleAngle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditCircleAngle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditCircleAngle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditCircleAngle->setTransparentTextBk(true);
+	SXParticlesEditor::EditCircleAngle->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditCircleAngle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditCircleAngle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditCircleAngle->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditCircleAngle->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticCircleAngleDisp = SXGUICrStatic("CircleAngleDisp:", 6, 75, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticCircleAngleDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticCircleAngleDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticCircleAngleDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticCircleAngleDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticCircleAngleDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticCircleAngleDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticCircleAngleDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditCircleAngleDisp = SXGUICrEdit("0", 90, 75, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditCircleAngleDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditCircleAngleDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditCircleAngleDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditCircleAngleDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditCircleAngleDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditCircleAngleDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditCircleAngleDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditCircleAngleDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditCircleAngleDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxRotate = SXGUICrCheckBox("Rotate", 175, 10, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxRotate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxRotate->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxRotate->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxRotate->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxRotate->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxRotate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxRotate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticRotateAngle = SXGUICrStatic("RotateAngle:", 175, 30, 85, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticRotateAngle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticRotateAngle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticRotateAngle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticRotateAngle->setTransparentTextBk(true);
+	SXParticlesEditor::StaticRotateAngle->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticRotateAngle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticRotateAngle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditRotateAngle = SXGUICrEdit("0", 265, 30, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditRotateAngle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditRotateAngle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditRotateAngle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditRotateAngle->setTransparentTextBk(true);
+	SXParticlesEditor::EditRotateAngle->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditRotateAngle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditRotateAngle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditRotateAngle->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditRotateAngle->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticRotateAngleDisp = SXGUICrStatic("RotateAngleDisp:", 175, 50, 85, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticRotateAngleDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticRotateAngleDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticRotateAngleDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticRotateAngleDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticRotateAngleDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticRotateAngleDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticRotateAngleDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg = SXGUICrCheckBox("CircleAngleDispNeg", 5, 95, 120, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditRotateAngleDisp = SXGUICrEdit("0", 265, 50, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditRotateAngleDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditRotateAngleDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditRotateAngleDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditRotateAngleDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditRotateAngleDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditRotateAngleDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditRotateAngleDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditRotateAngleDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditRotateAngleDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg = SXGUICrCheckBox("RotateAngleDispNeg", 175, 70, 120, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxDeviation = SXGUICrCheckBox("Deviation", 350, 10, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxDeviation->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxDeviation->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxDeviation->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxDeviation->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxDeviation->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxDeviation->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxDeviation->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticDeviationType = SXGUICrStatic("DeviationType:", 350, 30, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticDeviationType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticDeviationType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticDeviationType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticDeviationType->setTransparentTextBk(true);
+	SXParticlesEditor::StaticDeviationType->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticDeviationType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticDeviationType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxDeviationType = SXGUICrComboBox(455, 25, 130, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxDeviationType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxDeviationType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxDeviationType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxDeviationType->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxDeviationType->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxDeviationType->addItem("rnd");
+	SXParticlesEditor::ComboBoxDeviationType->addItem("along");
+	SXParticlesEditor::ComboBoxDeviationType->addItem("wave");
+	SXParticlesEditor::ComboBoxDeviationType->setSel(0);
+	SXParticlesEditor::ComboBoxDeviationType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxDeviationType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticDeviationAmplitude = SXGUICrStatic("DeviationAmplitude:", 350, 50, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticDeviationAmplitude->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticDeviationAmplitude->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticDeviationAmplitude->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticDeviationAmplitude->setTransparentTextBk(true);
+	SXParticlesEditor::StaticDeviationAmplitude->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticDeviationAmplitude->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticDeviationAmplitude->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticDeviationCoefAngle = SXGUICrStatic("DeviationCoefAngle:", 350, 70, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticDeviationCoefAngle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticDeviationCoefAngle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticDeviationCoefAngle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticDeviationCoefAngle->setTransparentTextBk(true);
+	SXParticlesEditor::StaticDeviationCoefAngle->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticDeviationCoefAngle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticDeviationCoefAngle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationAmplitude = SXGUICrEdit("0", 490, 50, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditDeviationAmplitude->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditDeviationAmplitude->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditDeviationAmplitude->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationAmplitude->setTransparentTextBk(true);
+	SXParticlesEditor::EditDeviationAmplitude->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationAmplitude->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditDeviationAmplitude->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationAmplitude->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditDeviationAmplitude->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::EditDeviationCoefAngle = SXGUICrEdit("0", 490, 70, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditDeviationCoefAngle->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditDeviationCoefAngle->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditDeviationCoefAngle->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationCoefAngle->setTransparentTextBk(true);
+	SXParticlesEditor::EditDeviationCoefAngle->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationCoefAngle->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditDeviationCoefAngle->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationCoefAngle->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditDeviationCoefAngle->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticDeviationAxis = SXGUICrStatic("DeviationAxis:", 590, 25, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticDeviationAxis->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticDeviationAxis->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticDeviationAxis->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticDeviationAxis->setTransparentTextBk(true);
+	SXParticlesEditor::StaticDeviationAxis->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticDeviationAxis->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticDeviationAxis->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxDeviationAxis = SXGUICrComboBox(665, 20, 130, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxDeviationAxis->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxDeviationAxis->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxDeviationAxis->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxDeviationAxis->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxDeviationAxis->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxDeviationAxis->addItem("x");
+	SXParticlesEditor::ComboBoxDeviationAxis->addItem("y");
+	SXParticlesEditor::ComboBoxDeviationAxis->addItem("z");
+	SXParticlesEditor::ComboBoxDeviationAxis->setSel(0);
+	SXParticlesEditor::ComboBoxDeviationAxis->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxDeviationAxis->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticDeviationCountDelayMls = SXGUICrStatic("DeviationCountDelayMls:", 590, 45, 120, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticDeviationCountDelayMls->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticDeviationCountDelayMls->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticDeviationCountDelayMls->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticDeviationCountDelayMls->setTransparentTextBk(true);
+	SXParticlesEditor::StaticDeviationCountDelayMls->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticDeviationCountDelayMls->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticDeviationCountDelayMls->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationCountDelayMls = SXGUICrEdit("0", 715, 45, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditDeviationCountDelayMls->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditDeviationCountDelayMls->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditDeviationCountDelayMls->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationCountDelayMls->setTransparentTextBk(true);
+	SXParticlesEditor::EditDeviationCountDelayMls->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationCountDelayMls->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditDeviationCountDelayMls->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationCountDelayMls->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditDeviationCountDelayMls->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticDeviationCoefAngleDisp = SXGUICrStatic("DeviationCoefAngleDisp:", 350, 90, 120, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationCoefAngleDisp = SXGUICrEdit("0", 490, 90, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg = SXGUICrCheckBox("DeviationCoefAngleDispNeg", 350, 110, 160, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxDeviationTapX = SXGUICrCheckBox("DeviationTapX", 590, 65, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxDeviationTapX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxDeviationTapX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxDeviationTapX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxDeviationTapX->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxDeviationTapX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxDeviationTapX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxDeviationTapX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxDeviationTapY = SXGUICrCheckBox("DeviationTapY", 590, 85, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxDeviationTapY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxDeviationTapY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxDeviationTapY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxDeviationTapY->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxDeviationTapY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxDeviationTapY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxDeviationTapY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxDeviationTapZ = SXGUICrCheckBox("DeviationTapZ", 590, 105, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxDeviationTapZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxDeviationTapZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxDeviationTapZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxDeviationTapZ->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxDeviationTapZ->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxDeviationTapZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxDeviationTapZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
 	//}
 
 	//spawn
 	//{
-	SXParticlesEditor::StaticSpawnPosType = SXGUICrStatic("SpawnPosType:", 5, 12, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnPosType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnPosType->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnPosType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnPosType->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnPosType->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnPosType->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnPosType->GAlign.top = true;
-	SXParticlesEditor::ComboBoxSpawnPosType = SXGUICrComboBox("", 90, 10, 140, 75, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ComboBoxSpawnPosType->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ComboBoxSpawnPosType->SetColorText(0, 0, 0);
-	SXParticlesEditor::ComboBoxSpawnPosType->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::ComboBoxSpawnPosType->SetTransparentTextBk(true);
-	SXParticlesEditor::ComboBoxSpawnPosType->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::ComboBoxSpawnPosType->AddItem("strictly");
-	SXParticlesEditor::ComboBoxSpawnPosType->AddItem("bound");
-	SXParticlesEditor::ComboBoxSpawnPosType->SetSel(0);
-	SXParticlesEditor::ComboBoxSpawnPosType->GAlign.left = true;
-	SXParticlesEditor::ComboBoxSpawnPosType->GAlign.top = true;
-	SXParticlesEditor::StaticSpawnOrigin = SXGUICrStatic("SpawnOrigin:", 5, 40, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnOrigin->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnOrigin->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnOrigin->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnOrigin->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnOrigin->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnOrigin->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnOrigin->GAlign.top = true;
-	SXParticlesEditor::StaticSpawnOriginX = SXGUICrStatic("x:", 90, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnOriginX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginX->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnOriginX->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnOriginX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnOriginX->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnOriginX->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginX = SXGUICrEdit("0", 100, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSpawnOriginX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginX->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginX->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSpawnOriginX->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginX->GAlign.left = true;
-	SXParticlesEditor::EditSpawnOriginX->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSpawnOriginY = SXGUICrStatic("y:", 180, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnOriginY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginY->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnOriginY->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnOriginY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnOriginY->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnOriginY->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginY = SXGUICrEdit("0", 190, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSpawnOriginY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginY->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginY->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSpawnOriginY->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginY->GAlign.left = true;
-	SXParticlesEditor::EditSpawnOriginY->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSpawnOriginZ = SXGUICrStatic("z:", 270, 40, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnOriginZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnOriginZ->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnOriginZ->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnOriginZ->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnOriginZ->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginZ = SXGUICrEdit("0", 280, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSpawnOriginZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginZ->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSpawnOriginZ->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginZ->GAlign.left = true;
-	SXParticlesEditor::EditSpawnOriginZ->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginZ->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginZ->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSpawnOriginDisp = SXGUICrStatic("SpawnOriginDisp:", 370, 40, 85, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnOriginDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnOriginDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnOriginDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnOriginDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnOriginDisp->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnOriginDisp->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginDisp = SXGUICrEdit("0", 455, 40, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSpawnOriginDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSpawnOriginDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSpawnOriginDisp->GAlign.left = true;
-	SXParticlesEditor::EditSpawnOriginDisp->GAlign.top = true;
-	SXParticlesEditor::EditSpawnOriginDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSpawnOriginDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos = SXGUICrCheckBox("x+", 90, 60, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->GAlign.left = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->GAlign.top = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg = SXGUICrCheckBox("x-", 140, 60, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos = SXGUICrCheckBox("y+", 180, 60, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->GAlign.left = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->GAlign.top = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg = SXGUICrCheckBox("y-", 230, 60, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos = SXGUICrCheckBox("z+", 270, 60, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->GAlign.left = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->GAlign.top = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg = SXGUICrCheckBox("z-", 320, 59, 30, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->GAlign.top = true;
-	SXParticlesEditor::StaticSpawnNextTime = SXGUICrStatic("SpawnNextTime:", 5, 90, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnNextTime->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnNextTime->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnNextTime->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnNextTime->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnNextTime->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnNextTime->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnNextTime->GAlign.top = true;
-	SXParticlesEditor::EditSpawnNextTime = SXGUICrEdit("0", 90, 90, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSpawnNextTime->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSpawnNextTime->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSpawnNextTime->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSpawnNextTime->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSpawnNextTime->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSpawnNextTime->GAlign.left = true;
-	SXParticlesEditor::EditSpawnNextTime->GAlign.top = true;
-	SXParticlesEditor::EditSpawnNextTime->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSpawnNextTime->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticSpawnNextTimeDisp = SXGUICrStatic("SpawnNextTimeDisp:", 175, 90, 105, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->GAlign.left = true;
-	SXParticlesEditor::StaticSpawnNextTimeDisp->GAlign.top = true;
-	SXParticlesEditor::EditSpawnNextTimeDisp = SXGUICrEdit("0", 280, 90, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditSpawnNextTimeDisp->GAlign.left = true;
-	SXParticlesEditor::EditSpawnNextTimeDisp->GAlign.top = true;
-	SXParticlesEditor::EditSpawnNextTimeDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditSpawnNextTimeDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+	SXParticlesEditor::StaticSpawnPosType = SXGUICrStatic("SpawnPosType:", 5, 12, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnPosType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnPosType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnPosType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnPosType->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnPosType->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnPosType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnPosType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ComboBoxSpawnPosType = SXGUICrComboBox(90, 10, 140, 75, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ComboBoxSpawnPosType->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ComboBoxSpawnPosType->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::ComboBoxSpawnPosType->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxSpawnPosType->setTransparentTextBk(true);
+	SXParticlesEditor::ComboBoxSpawnPosType->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::ComboBoxSpawnPosType->addItem("strictly");
+	SXParticlesEditor::ComboBoxSpawnPosType->addItem("bound");
+	SXParticlesEditor::ComboBoxSpawnPosType->setSel(0);
+	SXParticlesEditor::ComboBoxSpawnPosType->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ComboBoxSpawnPosType->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticSpawnOrigin = SXGUICrStatic("SpawnOrigin:", 5, 40, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnOrigin->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnOrigin->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnOrigin->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnOrigin->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnOrigin->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnOrigin->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnOrigin->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticSpawnOriginX = SXGUICrStatic("x:", 90, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnOriginX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnOriginX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnOriginX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnOriginX->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnOriginX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnOriginX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnOriginX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginX = SXGUICrEdit("0", 100, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSpawnOriginX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSpawnOriginX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginX->setTransparentTextBk(true);
+	SXParticlesEditor::EditSpawnOriginX->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSpawnOriginX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginX->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginX->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSpawnOriginY = SXGUICrStatic("y:", 180, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnOriginY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnOriginY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnOriginY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnOriginY->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnOriginY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnOriginY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnOriginY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginY = SXGUICrEdit("0", 190, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSpawnOriginY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSpawnOriginY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginY->setTransparentTextBk(true);
+	SXParticlesEditor::EditSpawnOriginY->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSpawnOriginY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginY->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginY->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSpawnOriginZ = SXGUICrStatic("z:", 270, 40, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnOriginZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnOriginZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnOriginZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnOriginZ->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnOriginZ->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnOriginZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnOriginZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginZ = SXGUICrEdit("0", 280, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSpawnOriginZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSpawnOriginZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginZ->setTransparentTextBk(true);
+	SXParticlesEditor::EditSpawnOriginZ->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSpawnOriginZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginZ->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginZ->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSpawnOriginDisp = SXGUICrStatic("SpawnOriginDisp:", 370, 40, 85, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnOriginDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnOriginDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnOriginDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnOriginDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnOriginDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnOriginDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnOriginDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginDisp = SXGUICrEdit("0", 455, 40, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSpawnOriginDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSpawnOriginDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditSpawnOriginDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnOriginDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSpawnOriginDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnOriginDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSpawnOriginDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos = SXGUICrCheckBox("x+", 90, 60, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg = SXGUICrCheckBox("x-", 140, 60, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos = SXGUICrCheckBox("y+", 180, 60, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg = SXGUICrCheckBox("y-", 230, 60, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos = SXGUICrCheckBox("z+", 270, 60, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg = SXGUICrCheckBox("z-", 320, 59, 30, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticSpawnNextTime = SXGUICrStatic("SpawnNextTime:", 5, 90, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnNextTime->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnNextTime->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnNextTime->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnNextTime->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnNextTime->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnNextTime->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnNextTime->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnNextTime = SXGUICrEdit("0", 90, 90, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSpawnNextTime->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSpawnNextTime->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSpawnNextTime->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnNextTime->setTransparentTextBk(true);
+	SXParticlesEditor::EditSpawnNextTime->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnNextTime->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSpawnNextTime->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnNextTime->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSpawnNextTime->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticSpawnNextTimeDisp = SXGUICrStatic("SpawnNextTimeDisp:", 175, 90, 105, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnNextTimeDisp = SXGUICrEdit("0", 280, 90, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditSpawnNextTimeDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditSpawnNextTimeDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditSpawnNextTimeDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnNextTimeDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditSpawnNextTimeDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditSpawnNextTimeDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditSpawnNextTimeDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditSpawnNextTimeDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditSpawnNextTimeDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
 
 	//}
 
 	//tex
 	//{
-	SXParticlesEditor::StaticTexture = SXGUICrStatic("Texture:", 5, 10, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticTexture->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticTexture->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticTexture->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticTexture->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticTexture->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticTexture->GAlign.left = true;
-	SXParticlesEditor::StaticTexture->GAlign.top = true;
-	SXParticlesEditor::EditTexture = SXGUICrEdit("0", 60, 10, 290, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditTexture->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditTexture->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditTexture->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditTexture->SetTransparentTextBk(true);
-	SXParticlesEditor::EditTexture->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditTexture->GAlign.left = true;
-	SXParticlesEditor::EditTexture->GAlign.top = true;
-	SXParticlesEditor::EditTexture->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditTexture->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-
-	SXParticlesEditor::ButtonTextureSel = SXGUICrButton("...", 355, 10, 25, 15, 0, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::ButtonTextureSel->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::ButtonTextureSel->GAlign.left = true;
-	SXParticlesEditor::ButtonTextureSel->GAlign.top = true;
-	SXParticlesEditor::ButtonTextureSel->AddHandler(SXParticlesEditor_ButtonTextureSel_Click, WM_LBUTTONUP);
-
-	SXParticlesEditor::StaticAnimTexCountCadrsX = SXGUICrStatic("AnimTexCountCadrsX:", 5, 35, 110, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->GAlign.left = true;
-	SXParticlesEditor::StaticAnimTexCountCadrsX->GAlign.top = true;
-	SXParticlesEditor::StaticAnimTexCountCadrsY = SXGUICrStatic("AnimTexCountCadrsY:", 200, 35, 110, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->GAlign.left = true;
-	SXParticlesEditor::StaticAnimTexCountCadrsY->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexCountCadrsX = SXGUICrEdit("0", 115, 35, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAnimTexCountCadrsX->GAlign.left = true;
-	SXParticlesEditor::EditAnimTexCountCadrsX->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexCountCadrsX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::EditAnimTexCountCadrsY = SXGUICrEdit("0", 310, 35, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAnimTexCountCadrsY->GAlign.left = true;
-	SXParticlesEditor::EditAnimTexCountCadrsY->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexCountCadrsY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexCountCadrsY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAnimTexRate = SXGUICrStatic("AnimTexRate:", 5, 55, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAnimTexRate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAnimTexRate->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAnimTexRate->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAnimTexRate->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAnimTexRate->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAnimTexRate->GAlign.left = true;
-	SXParticlesEditor::StaticAnimTexRate->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexRate = SXGUICrEdit("0", 115, 55, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAnimTexRate->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexRate->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAnimTexRate->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAnimTexRate->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAnimTexRate->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAnimTexRate->GAlign.left = true;
-	SXParticlesEditor::EditAnimTexRate->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexRate->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexRate->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAnimTexRateDisp = SXGUICrStatic("AnimTexRateDisp:", 200, 55, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAnimTexRateDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAnimTexRateDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAnimTexRateDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAnimTexRateDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAnimTexRateDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAnimTexRateDisp->GAlign.left = true;
-	SXParticlesEditor::StaticAnimTexRateDisp->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexRateDisp = SXGUICrEdit("0", 310, 55, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAnimTexRateDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexRateDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAnimTexRateDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAnimTexRateDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAnimTexRateDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAnimTexRateDisp->GAlign.left = true;
-	SXParticlesEditor::EditAnimTexRateDisp->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexRateDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexRateDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAnimTexStartCadr = SXGUICrStatic("AnimTexStartCadr:", 5, 75, 100, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAnimTexStartCadr->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAnimTexStartCadr->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAnimTexStartCadr->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAnimTexStartCadr->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAnimTexStartCadr->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAnimTexStartCadr->GAlign.left = true;
-	SXParticlesEditor::StaticAnimTexStartCadr->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexStartCadr = SXGUICrEdit("0", 115, 75, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadr->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadr->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadr->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAnimTexStartCadr->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAnimTexStartCadr->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAnimTexStartCadr->GAlign.left = true;
-	SXParticlesEditor::EditAnimTexStartCadr->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexStartCadr->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadr->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAnimTexStartCadrDisp = SXGUICrStatic("AnimTexStartCadrDisp:", 200, 75, 110, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->GAlign.left = true;
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexStartCadrDisp = SXGUICrEdit("0", 310, 75, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->GAlign.left = true;
-	SXParticlesEditor::EditAnimTexStartCadrDisp->GAlign.top = true;
-	SXParticlesEditor::EditAnimTexStartCadrDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+	SXParticlesEditor::StaticTexture = SXGUICrStatic("Texture:", 5, 10, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticTexture->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticTexture->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticTexture->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticTexture->setTransparentTextBk(true);
+	SXParticlesEditor::StaticTexture->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticTexture->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticTexture->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTexture = SXGUICrEdit("0", 60, 10, 290, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditTexture->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditTexture->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditTexture->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditTexture->setTransparentTextBk(true);
+	SXParticlesEditor::EditTexture->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditTexture->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditTexture->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditTexture->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditTexture->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+
+	SXParticlesEditor::ButtonTextureSel = SXGUICrButton("...", 355, 10, 25, 15, SXGUI_BUTTON_IMAGE_NONE, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::ButtonTextureSel->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::ButtonTextureSel->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::ButtonTextureSel->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::ButtonTextureSel->addHandler(SXParticlesEditor_ButtonTextureSel_Click, WM_LBUTTONUP);
+
+	SXParticlesEditor::StaticAnimTexCountCadrsX = SXGUICrStatic("AnimTexCountCadrsX:", 5, 35, 110, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticAnimTexCountCadrsY = SXGUICrStatic("AnimTexCountCadrsY:", 200, 35, 110, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexCountCadrsX = SXGUICrEdit("0", 115, 35, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAnimTexCountCadrsX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexCountCadrsX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAnimTexCountCadrsX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexCountCadrsX->setTransparentTextBk(true);
+	SXParticlesEditor::EditAnimTexCountCadrsX->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexCountCadrsX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAnimTexCountCadrsX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexCountCadrsX->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexCountCadrsX->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::EditAnimTexCountCadrsY = SXGUICrEdit("0", 310, 35, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAnimTexCountCadrsY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexCountCadrsY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAnimTexCountCadrsY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexCountCadrsY->setTransparentTextBk(true);
+	SXParticlesEditor::EditAnimTexCountCadrsY->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexCountCadrsY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAnimTexCountCadrsY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexCountCadrsY->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexCountCadrsY->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAnimTexRate = SXGUICrStatic("AnimTexRate:", 5, 55, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAnimTexRate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAnimTexRate->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAnimTexRate->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAnimTexRate->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAnimTexRate->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAnimTexRate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAnimTexRate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexRate = SXGUICrEdit("0", 115, 55, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAnimTexRate->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexRate->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAnimTexRate->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexRate->setTransparentTextBk(true);
+	SXParticlesEditor::EditAnimTexRate->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexRate->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAnimTexRate->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexRate->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexRate->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAnimTexRateDisp = SXGUICrStatic("AnimTexRateDisp:", 200, 55, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAnimTexRateDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAnimTexRateDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAnimTexRateDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAnimTexRateDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAnimTexRateDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAnimTexRateDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAnimTexRateDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexRateDisp = SXGUICrEdit("0", 310, 55, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAnimTexRateDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexRateDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAnimTexRateDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexRateDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditAnimTexRateDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexRateDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAnimTexRateDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexRateDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexRateDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAnimTexStartCadr = SXGUICrStatic("AnimTexStartCadr:", 5, 75, 100, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAnimTexStartCadr->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAnimTexStartCadr->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAnimTexStartCadr->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAnimTexStartCadr->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAnimTexStartCadr->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAnimTexStartCadr->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAnimTexStartCadr->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexStartCadr = SXGUICrEdit("0", 115, 75, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAnimTexStartCadr->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexStartCadr->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAnimTexStartCadr->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexStartCadr->setTransparentTextBk(true);
+	SXParticlesEditor::EditAnimTexStartCadr->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexStartCadr->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAnimTexStartCadr->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexStartCadr->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexStartCadr->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAnimTexStartCadrDisp = SXGUICrStatic("AnimTexStartCadrDisp:", 200, 75, 110, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexStartCadrDisp = SXGUICrEdit("0", 310, 75, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
 
 	//}
 
 	//velocity/acceleration
 	//{
-	SXParticlesEditor::StaticVelocity = SXGUICrStatic("Velocity:", 5, 15, 50, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticVelocity->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticVelocity->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticVelocity->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticVelocity->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticVelocity->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticVelocity->GAlign.left = true;
-	SXParticlesEditor::StaticVelocity->GAlign.top = true;
-	SXParticlesEditor::StaticVelocityX = SXGUICrStatic("x:", 80, 15, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticVelocityX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticVelocityX->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticVelocityX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticVelocityX->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticVelocityX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticVelocityX->GAlign.left = true;
-	SXParticlesEditor::StaticVelocityX->GAlign.top = true;
-	SXParticlesEditor::EditVelocityX = SXGUICrEdit("0", 90, 15, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditVelocityX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditVelocityX->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditVelocityX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditVelocityX->SetTransparentTextBk(true);
-	SXParticlesEditor::EditVelocityX->SetColorBrush(250, 250, 250);
-	SXParticlesEditor::EditVelocityX->GAlign.left = true;
-	SXParticlesEditor::EditVelocityX->GAlign.top = true;
-	SXParticlesEditor::EditVelocityX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditVelocityX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticVelocityY = SXGUICrStatic("y:", 170, 15, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticVelocityY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticVelocityY->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticVelocityY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticVelocityY->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticVelocityY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticVelocityY->GAlign.left = true;
-	SXParticlesEditor::StaticVelocityY->GAlign.top = true;
-	SXParticlesEditor::EditVelocityY = SXGUICrEdit("0", 180, 15, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditVelocityY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditVelocityY->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditVelocityY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditVelocityY->SetTransparentTextBk(true);
-	SXParticlesEditor::EditVelocityY->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditVelocityY->GAlign.left = true;
-	SXParticlesEditor::EditVelocityY->GAlign.top = true;
-	SXParticlesEditor::EditVelocityY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditVelocityY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxVelocityDispXNeg = SXGUICrCheckBox("XDispNeg", 80, 35, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->GAlign.top = true;
-	SXParticlesEditor::StaticVelocityZ = SXGUICrStatic("z:", 260, 15, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticVelocityZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticVelocityZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticVelocityZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticVelocityZ->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticVelocityZ->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticVelocityZ->GAlign.left = true;
-	SXParticlesEditor::StaticVelocityZ->GAlign.top = true;
-	SXParticlesEditor::EditVelocityZ = SXGUICrEdit("0", 270, 15, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditVelocityZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditVelocityZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditVelocityZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditVelocityZ->SetTransparentTextBk(true);
-	SXParticlesEditor::EditVelocityZ->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditVelocityZ->GAlign.left = true;
-	SXParticlesEditor::EditVelocityZ->GAlign.top = true;
-	SXParticlesEditor::EditVelocityZ->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditVelocityZ->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticVelocityDisp = SXGUICrStatic("Dispersion:", 355, 15, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticVelocityDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticVelocityDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticVelocityDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticVelocityDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticVelocityDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticVelocityDisp->GAlign.left = true;
-	SXParticlesEditor::StaticVelocityDisp->GAlign.top = true;
-	SXParticlesEditor::EditVelocityDisp = SXGUICrEdit("0", 420, 15, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditVelocityDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditVelocityDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditVelocityDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditVelocityDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditVelocityDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditVelocityDisp->GAlign.left = true;
-	SXParticlesEditor::EditVelocityDisp->GAlign.top = true;
-	SXParticlesEditor::EditVelocityDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditVelocityDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxVelocityDispYNeg = SXGUICrCheckBox("YDispNeg", 170, 35, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxVelocityDispZNeg = SXGUICrCheckBox("ZDispNeg", 260, 35, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->GAlign.top = true;
-	SXParticlesEditor::StaticAcceleration = SXGUICrStatic("Acceleration:", 5, 65, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAcceleration->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAcceleration->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAcceleration->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAcceleration->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAcceleration->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAcceleration->GAlign.left = true;
-	SXParticlesEditor::StaticAcceleration->GAlign.top = true;
-	SXParticlesEditor::StaticAccelerationX = SXGUICrStatic("x:", 80, 65, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAccelerationX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAccelerationX->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAccelerationX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAccelerationX->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAccelerationX->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAccelerationX->GAlign.left = true;
-	SXParticlesEditor::StaticAccelerationX->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationX = SXGUICrEdit("0", 90, 65, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAccelerationX->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationX->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAccelerationX->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAccelerationX->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAccelerationX->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAccelerationX->GAlign.left = true;
-	SXParticlesEditor::EditAccelerationX->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationX->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAccelerationY = SXGUICrStatic("y:", 170, 65, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAccelerationY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAccelerationY->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAccelerationY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAccelerationY->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAccelerationY->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAccelerationY->GAlign.left = true;
-	SXParticlesEditor::StaticAccelerationY->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationY = SXGUICrEdit("0", 180, 65, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAccelerationY->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationY->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAccelerationY->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAccelerationY->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAccelerationY->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAccelerationY->GAlign.left = true;
-	SXParticlesEditor::EditAccelerationY->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationY->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAccelerationZ = SXGUICrStatic("z:", 260, 65, 10, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAccelerationZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAccelerationZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAccelerationZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAccelerationZ->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAccelerationZ->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAccelerationZ->GAlign.left = true;
-	SXParticlesEditor::StaticAccelerationZ->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationZ = SXGUICrEdit("0", 270, 65, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAccelerationZ->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationZ->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAccelerationZ->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAccelerationZ->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAccelerationZ->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAccelerationZ->GAlign.left = true;
-	SXParticlesEditor::EditAccelerationZ->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationZ->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationZ->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::StaticAccelerationDisp = SXGUICrStatic("Dispersion:", 355, 65, 60, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::StaticAccelerationDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::StaticAccelerationDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::StaticAccelerationDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::StaticAccelerationDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::StaticAccelerationDisp->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::StaticAccelerationDisp->GAlign.left = true;
-	SXParticlesEditor::StaticAccelerationDisp->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationDisp = SXGUICrEdit("0", 420, 65, 70, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0);
-	SXParticlesEditor::EditAccelerationDisp->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationDisp->SetColorText(0, 0, 0);
-	SXParticlesEditor::EditAccelerationDisp->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::EditAccelerationDisp->SetTransparentTextBk(true);
-	SXParticlesEditor::EditAccelerationDisp->SetColorBrush(255, 255, 255);
-	SXParticlesEditor::EditAccelerationDisp->GAlign.left = true;
-	SXParticlesEditor::EditAccelerationDisp->GAlign.top = true;
-	SXParticlesEditor::EditAccelerationDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
-	SXParticlesEditor::EditAccelerationDisp->AddHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
-
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg = SXGUICrCheckBox("XDispNeg", 80, 85, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg = SXGUICrCheckBox("YDispNeg", 170, 85, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->GAlign.top = true;
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg = SXGUICrCheckBox("ZDispNeg", 260, 85, 80, 15, SXParticlesEditor::GroupBoxData2->GetHWND(), 0, 0, false);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetColorText(0, 0, 0);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetColorTextBk(255, 255, 255);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetTransparentTextBk(true);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetColorBrush(220, 220, 220);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->GAlign.left = true;
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->GAlign.top = true;
+	SXParticlesEditor::StaticVelocity = SXGUICrStatic("Velocity:", 5, 15, 50, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticVelocity->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticVelocity->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticVelocity->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticVelocity->setTransparentTextBk(true);
+	SXParticlesEditor::StaticVelocity->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticVelocity->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticVelocity->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticVelocityX = SXGUICrStatic("x:", 80, 15, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticVelocityX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticVelocityX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticVelocityX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticVelocityX->setTransparentTextBk(true);
+	SXParticlesEditor::StaticVelocityX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticVelocityX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticVelocityX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityX = SXGUICrEdit("0", 90, 15, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditVelocityX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditVelocityX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditVelocityX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityX->setTransparentTextBk(true);
+	SXParticlesEditor::EditVelocityX->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditVelocityX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityX->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditVelocityX->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticVelocityY = SXGUICrStatic("y:", 170, 15, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticVelocityY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticVelocityY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticVelocityY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticVelocityY->setTransparentTextBk(true);
+	SXParticlesEditor::StaticVelocityY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticVelocityY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticVelocityY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityY = SXGUICrEdit("0", 180, 15, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditVelocityY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditVelocityY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditVelocityY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityY->setTransparentTextBk(true);
+	SXParticlesEditor::EditVelocityY->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditVelocityY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityY->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditVelocityY->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxVelocityDispXNeg = SXGUICrCheckBox("XDispNeg", 80, 35, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticVelocityZ = SXGUICrStatic("z:", 260, 15, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticVelocityZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticVelocityZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticVelocityZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticVelocityZ->setTransparentTextBk(true);
+	SXParticlesEditor::StaticVelocityZ->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticVelocityZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticVelocityZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityZ = SXGUICrEdit("0", 270, 15, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditVelocityZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditVelocityZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditVelocityZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityZ->setTransparentTextBk(true);
+	SXParticlesEditor::EditVelocityZ->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditVelocityZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityZ->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditVelocityZ->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticVelocityDisp = SXGUICrStatic("Dispersion:", 355, 15, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticVelocityDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticVelocityDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticVelocityDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticVelocityDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticVelocityDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticVelocityDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticVelocityDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityDisp = SXGUICrEdit("0", 420, 15, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditVelocityDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditVelocityDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditVelocityDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditVelocityDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditVelocityDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditVelocityDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditVelocityDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditVelocityDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxVelocityDispYNeg = SXGUICrCheckBox("YDispNeg", 170, 35, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg = SXGUICrCheckBox("ZDispNeg", 260, 35, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticAcceleration = SXGUICrStatic("Acceleration:", 5, 65, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAcceleration->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAcceleration->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAcceleration->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAcceleration->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAcceleration->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAcceleration->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAcceleration->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::StaticAccelerationX = SXGUICrStatic("x:", 80, 65, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAccelerationX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAccelerationX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAccelerationX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAccelerationX->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAccelerationX->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAccelerationX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAccelerationX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationX = SXGUICrEdit("0", 90, 65, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAccelerationX->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationX->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAccelerationX->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationX->setTransparentTextBk(true);
+	SXParticlesEditor::EditAccelerationX->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationX->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAccelerationX->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationX->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationX->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAccelerationY = SXGUICrStatic("y:", 170, 65, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAccelerationY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAccelerationY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAccelerationY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAccelerationY->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAccelerationY->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAccelerationY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAccelerationY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationY = SXGUICrEdit("0", 180, 65, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAccelerationY->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationY->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAccelerationY->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationY->setTransparentTextBk(true);
+	SXParticlesEditor::EditAccelerationY->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationY->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAccelerationY->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationY->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationY->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAccelerationZ = SXGUICrStatic("z:", 260, 65, 10, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAccelerationZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAccelerationZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAccelerationZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAccelerationZ->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAccelerationZ->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAccelerationZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAccelerationZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationZ = SXGUICrEdit("0", 270, 65, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAccelerationZ->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationZ->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAccelerationZ->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationZ->setTransparentTextBk(true);
+	SXParticlesEditor::EditAccelerationZ->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationZ->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAccelerationZ->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationZ->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationZ->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::StaticAccelerationDisp = SXGUICrStatic("Dispersion:", 355, 65, 60, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::StaticAccelerationDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::StaticAccelerationDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::StaticAccelerationDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::StaticAccelerationDisp->setTransparentTextBk(true);
+	SXParticlesEditor::StaticAccelerationDisp->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::StaticAccelerationDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::StaticAccelerationDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationDisp = SXGUICrEdit("0", 420, 65, 70, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0);
+	SXParticlesEditor::EditAccelerationDisp->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationDisp->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::EditAccelerationDisp->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationDisp->setTransparentTextBk(true);
+	SXParticlesEditor::EditAccelerationDisp->setColorBrush(RGB(255, 255, 255));
+	SXParticlesEditor::EditAccelerationDisp->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::EditAccelerationDisp->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::EditAccelerationDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXParticlesEditor::EditAccelerationDisp->addHandler(SXParticlesEditor_Edits_Enter, WM_KILLFOCUS);
+
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg = SXGUICrCheckBox("XDispNeg", 80, 85, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg = SXGUICrCheckBox("YDispNeg", 170, 85, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg = SXGUICrCheckBox("ZDispNeg", 260, 85, 80, 15, SXParticlesEditor::GroupBoxData2->getHWND(), 0, 0, false);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setFont("MS Shell Dlg", -11, 0, 400, 0, 0, 0);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setColorText(RGB(0, 0, 0));
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setColorTextBk(RGB(255, 255, 255));
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setTransparentTextBk(true);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setColorBrush(RGB(220, 220, 220));
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setFollowParentSide(SXGUI_SIDE_LEFT, true);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setFollowParentSide(SXGUI_SIDE_TOP, true);
 	//}
 }
 
@@ -2395,9 +2394,9 @@ void SXParticlesEditor::ParticlesEditorUpdate(DWORD timeDelta)
 	{
 		if (SPE_EffectEnableGet(SPE_EffectIdOfKey(i)))
 		{
-			SXParticlesEditor::CheckBoxTBPlay->SetCheck(true);
-			SXParticlesEditor::CheckBoxTBPause->SetCheck(false);
-			SXParticlesEditor::CheckBoxTBStop->SetCheck(false);
+			SXParticlesEditor::CheckBoxTBPlay->setCheck(true);
+			SXParticlesEditor::CheckBoxTBPause->setCheck(false);
+			SXParticlesEditor::CheckBoxTBStop->setCheck(false);
 			whyplay = true;
 			break;
 		}
@@ -2405,9 +2404,9 @@ void SXParticlesEditor::ParticlesEditorUpdate(DWORD timeDelta)
 
 	if (!whyplay)
 	{
-		SXParticlesEditor::CheckBoxTBPlay->SetCheck(false);
-		SXParticlesEditor::CheckBoxTBPause->SetCheck(false);
-		SXParticlesEditor::CheckBoxTBStop->SetCheck(true);
+		SXParticlesEditor::CheckBoxTBPlay->setCheck(false);
+		SXParticlesEditor::CheckBoxTBPause->setCheck(false);
+		SXParticlesEditor::CheckBoxTBStop->setCheck(true);
 	}
 
 	int emitters_count = 0;
@@ -2441,10 +2440,10 @@ void SXParticlesEditor::ParticlesEditorUpdate(DWORD timeDelta)
 	char ttext[256];
 
 	sprintf(ttext, "Playing emitters: %d/%d", emitters_all_count, emitters_count);
-	SXParticlesEditor::StatusBar1->SetTextParts(0, ttext);
+	SXParticlesEditor::StatusBar1->setPartText(0, ttext);
 
 	sprintf(ttext, "Living particles: %d/%d", particles_all_count, particles_life_count);
-	SXParticlesEditor::StatusBar1->SetTextParts(1, ttext);
+	SXParticlesEditor::StatusBar1->setPartText(1, ttext);
 
 
 	IDirect3DDevice9 *pDXdevice = SGCore_GetDXDevice();
diff --git a/source/sxparticleseditor/particles_editor.h b/source/sxparticleseditor/particles_editor.h
index bf6644222..83bc1eada 100644
--- a/source/sxparticleseditor/particles_editor.h
+++ b/source/sxparticleseditor/particles_editor.h
@@ -20,7 +20,7 @@
 namespace SXParticlesEditor
 {
 	extern ISXGUIBaseWnd* JobWindow;
-	extern ISXGUIMenu* MainMenu;
+	extern ISXGUIMenuWindow* MainMenu;
 	extern ISXGUIStatusBar* StatusBar1;
 	extern ISXGUIGroupBox* GroupBoxList;
 	extern ISXGUIGroupBox* GroupBoxTabs;
diff --git a/source/sxparticleseditor/particles_editor_op.cpp b/source/sxparticleseditor/particles_editor_op.cpp
index 85946db49..5247e246f 100644
--- a/source/sxparticleseditor/particles_editor_op.cpp
+++ b/source/sxparticleseditor/particles_editor_op.cpp
@@ -3,8 +3,8 @@
 
 void SXParticlesEditor::EffInitList()
 {
-	SXParticlesEditor::ListBoxEffects->Clear();
-	SXParticlesEditor::ListBoxEmitters->Clear();
+	SXParticlesEditor::ListBoxEffects->clear();
+	SXParticlesEditor::ListBoxEmitters->clear();
 	int effcount = SPE_EffectCountGet();
 	char effname[OBJECT_NAME_MAX_LEN];
 	for (int i = 0; i < effcount; ++i)
@@ -12,13 +12,13 @@ void SXParticlesEditor::EffInitList()
 		effname[0] = '!';
 		effname[1] = 0;
 		SPE_EffectNameGet(SPE_EffectIdOfKey(i), effname);
-		SXParticlesEditor::ListBoxEffects->AddItem(effname);
+		SXParticlesEditor::ListBoxEffects->addItem(effname);
 		if (effname[0] == 0)
 			effname[0] = '!';
 	}
 
-	SXParticlesEditor::StaticEffectsCount->SetText(String(effcount).c_str());
-	SXParticlesEditor::StaticEmittersCount->SetText("0");
+	SXParticlesEditor::StaticEffectsCount->setText(String(effcount).c_str());
+	SXParticlesEditor::StaticEmittersCount->setText("0");
 	SXParticlesEditor::TabsVisible(false);
 
 	SXParticlesEditor::SelEffID = SXParticlesEditor::SelEmitterID = -1;
@@ -26,32 +26,32 @@ void SXParticlesEditor::EffInitList()
 
 void SXParticlesEditor::EffVisible(bool visible, bool iscreate)
 {
-	StaticEffName->Visible(visible);
-	EditEffName->Visible(visible);
-	ButtonEffCreate->Visible(iscreate);
+	StaticEffName->setVisible(visible);
+	EditEffName->setVisible(visible);
+	ButtonEffCreate->setVisible(iscreate);
 }
 
 void SXParticlesEditor::EffNulling()
 {
-	EditEffName->SetText("0");
+	EditEffName->setText("0");
 }
 
 void SXParticlesEditor::EffDataInit()
 {
 	char effname[OBJECT_NAME_MAX_LEN];
 	SPE_EffectNameGet(SXParticlesEditor::SelEffID, effname);
-	SXParticlesEditor::EditEffName->SetText(effname);
+	SXParticlesEditor::EditEffName->setText(effname);
 }
 
 void SXParticlesEditor::TabsVisible(bool visible)
 {
-	SXParticlesEditor::GroupBoxTabs->Visible(visible);
+	SXParticlesEditor::GroupBoxTabs->setVisible(visible);
 
 	if (visible == false)
 	{
 		AllInTabsVisible(false);
 	}
-	else if (!(SXParticlesEditor::GroupBoxTabs->Visible()) && visible)
+	else if (!(SXParticlesEditor::GroupBoxTabs->getVisible()) && visible)
 	{
 		SXParticlesEditor::BaseVisible(true);
 	}
@@ -68,13 +68,13 @@ void SXParticlesEditor::AllInTabsVisible(bool visible)
 
 	if (!visible)
 	{
-		SXParticlesEditor::ButtonBase->SetCheck(false);
-		SXParticlesEditor::ButtonBound->SetCheck(false);
-		SXParticlesEditor::ButtonCharacters->SetCheck(false);
-		SXParticlesEditor::ButtonSpawn->SetCheck(false);
-		SXParticlesEditor::ButtonTextureAnimTex->SetCheck(false);
-		SXParticlesEditor::ButtonVelocityAcceleration->SetCheck(false);
-		SXParticlesEditor::ButtonEmitterCreate->Visible(false);
+		SXParticlesEditor::ButtonBase->setCheck(false);
+		SXParticlesEditor::ButtonBound->setCheck(false);
+		SXParticlesEditor::ButtonCharacters->setCheck(false);
+		SXParticlesEditor::ButtonSpawn->setCheck(false);
+		SXParticlesEditor::ButtonTextureAnimTex->setCheck(false);
+		SXParticlesEditor::ButtonVelocityAcceleration->setCheck(false);
+		SXParticlesEditor::ButtonEmitterCreate->setVisible(false);
 	}
 }
 
@@ -90,69 +90,69 @@ void SXParticlesEditor::AllInTabsNulling()
 
 void SXParticlesEditor::EmitterCreateVisible(bool visible)
 {
-	SXParticlesEditor::ButtonEmitterCreate->Visible(visible);
+	SXParticlesEditor::ButtonEmitterCreate->setVisible(visible);
 }
 
 void SXParticlesEditor::BaseVisible(bool visible)
 {
-	StaticName->Visible(visible);
-	EditName->Visible(visible);
+	StaticName->setVisible(visible);
+	EditName->setVisible(visible);
 	
-	StaticReCreateCount->Visible(visible);
-	EditReCreateCount->Visible(visible);
-	StaticCount->Visible(visible);
-	EditCount->Visible(visible);
-	StaticColorCoef->Visible(visible);
-	EditColorCoef->Visible(visible);
-	StaticSoftCoef->Visible(visible);
-	EditSoftCoef->Visible(visible);
-	StaticRefractionCoef->Visible(visible);
-	EditRefractionCoef->Visible(visible);
-	StaticTransparencyCoef->Visible(visible);
-	EditTransparencyCoef->Visible(visible);
-	CheckBoxLighting->Visible(visible);
-	StaticFigureType->Visible(visible);
-	ComboBoxFigureType->Visible(visible);
-	StaticFigureCountQuads->Visible(visible);
-	EditFigureCountQuads->Visible(visible);
-	CheckBoxFigureRotRand->Visible(visible);
-	CheckBoxFigureTapX->Visible(visible);
-	CheckBoxFigureTapY->Visible(visible);
-	CheckBoxFigureTapZ->Visible(visible);
-	StaticAlphaBlendType->Visible(visible);
-	ComboBoxAlphaBlendType->Visible(visible);
-	StaticTimeLife->Visible(visible);
-	EditTimeLife->Visible(visible);
-	StaticTimeLifeDisp->Visible(visible);
-	EditTimeLifeDisp->Visible(visible);
-	StaticAlphaAgeDepend->Visible(visible);
-	ComboBoxAlphaDependAge->Visible(visible);
-	StaticSize->Visible(visible);
-	StaticSizeX->Visible(visible);
-	EditSizeX->Visible(visible);
-	StaticSizeY->Visible(visible);
-	EditSizeY->Visible(visible);
-	StaticSizeDisp->Visible(visible);
-	EditSizeDisp->Visible(visible);
-	StaticSizeDependAge->Visible(visible);
-	ComboBoxSizeDependAge->Visible(visible);
-	CheckBoxCollisionDelete->Visible(visible);
-
-	SXParticlesEditor::StaticColor->Visible(visible);
-	SXParticlesEditor::StaticColorR->Visible(visible);
-	SXParticlesEditor::EditColorR->Visible(visible);
-	SXParticlesEditor::StaticColorG->Visible(visible);
-	SXParticlesEditor::EditColorG->Visible(visible);
-	SXParticlesEditor::StaticColorB->Visible(visible);
-	SXParticlesEditor::EditColorB->Visible(visible);
-	SXParticlesEditor::StaticColorA->Visible(visible);
-	SXParticlesEditor::EditColorA->Visible(visible);
-
-	SXParticlesEditor::CheckBoxTrack->Visible(visible);
-	SXParticlesEditor::StaticTrackSize->Visible(visible);
-	SXParticlesEditor::EditTrackSize->Visible(visible);
-	SXParticlesEditor::StaticTrackTime->Visible(visible);
-	SXParticlesEditor::EditTrackTime->Visible(visible);
+	StaticReCreateCount->setVisible(visible);
+	EditReCreateCount->setVisible(visible);
+	StaticCount->setVisible(visible);
+	EditCount->setVisible(visible);
+	StaticColorCoef->setVisible(visible);
+	EditColorCoef->setVisible(visible);
+	StaticSoftCoef->setVisible(visible);
+	EditSoftCoef->setVisible(visible);
+	StaticRefractionCoef->setVisible(visible);
+	EditRefractionCoef->setVisible(visible);
+	StaticTransparencyCoef->setVisible(visible);
+	EditTransparencyCoef->setVisible(visible);
+	CheckBoxLighting->setVisible(visible);
+	StaticFigureType->setVisible(visible);
+	ComboBoxFigureType->setVisible(visible);
+	StaticFigureCountQuads->setVisible(visible);
+	EditFigureCountQuads->setVisible(visible);
+	CheckBoxFigureRotRand->setVisible(visible);
+	CheckBoxFigureTapX->setVisible(visible);
+	CheckBoxFigureTapY->setVisible(visible);
+	CheckBoxFigureTapZ->setVisible(visible);
+	StaticAlphaBlendType->setVisible(visible);
+	ComboBoxAlphaBlendType->setVisible(visible);
+	StaticTimeLife->setVisible(visible);
+	EditTimeLife->setVisible(visible);
+	StaticTimeLifeDisp->setVisible(visible);
+	EditTimeLifeDisp->setVisible(visible);
+	StaticAlphaAgeDepend->setVisible(visible);
+	ComboBoxAlphaDependAge->setVisible(visible);
+	StaticSize->setVisible(visible);
+	StaticSizeX->setVisible(visible);
+	EditSizeX->setVisible(visible);
+	StaticSizeY->setVisible(visible);
+	EditSizeY->setVisible(visible);
+	StaticSizeDisp->setVisible(visible);
+	EditSizeDisp->setVisible(visible);
+	StaticSizeDependAge->setVisible(visible);
+	ComboBoxSizeDependAge->setVisible(visible);
+	CheckBoxCollisionDelete->setVisible(visible);
+
+	SXParticlesEditor::StaticColor->setVisible(visible);
+	SXParticlesEditor::StaticColorR->setVisible(visible);
+	SXParticlesEditor::EditColorR->setVisible(visible);
+	SXParticlesEditor::StaticColorG->setVisible(visible);
+	SXParticlesEditor::EditColorG->setVisible(visible);
+	SXParticlesEditor::StaticColorB->setVisible(visible);
+	SXParticlesEditor::EditColorB->setVisible(visible);
+	SXParticlesEditor::StaticColorA->setVisible(visible);
+	SXParticlesEditor::EditColorA->setVisible(visible);
+
+	SXParticlesEditor::CheckBoxTrack->setVisible(visible);
+	SXParticlesEditor::StaticTrackSize->setVisible(visible);
+	SXParticlesEditor::EditTrackSize->setVisible(visible);
+	SXParticlesEditor::StaticTrackTime->setVisible(visible);
+	SXParticlesEditor::EditTrackTime->setVisible(visible);
 }
 
 void SXParticlesEditor::BaseDataInit()
@@ -169,99 +169,99 @@ void SXParticlesEditor::BaseDataInit()
 
 	char tmpname[OBJECT_NAME_MAX_LEN];
 	SPE_EmitterNameGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, tmpname);
-	SXParticlesEditor::EditName->SetText(tmpname);
-	SXParticlesEditor::EditCount->SetText(String(SPE_EmitterCountGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID)).c_str());
-	SXParticlesEditor::EditReCreateCount->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ReCreateCount)).c_str());
-	SXParticlesEditor::EditColorCoef->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ColorCoef)).c_str());
-	SXParticlesEditor::EditSoftCoef->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SoftCoef)).c_str());
-	SXParticlesEditor::EditRefractionCoef->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, RefractionCoef)).c_str());
-	SXParticlesEditor::EditTransparencyCoef->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TransparencyCoef)).c_str());
-	SXParticlesEditor::CheckBoxLighting->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Lighting));
-	SXParticlesEditor::ComboBoxFigureType->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureType));
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaBlendType));
-	SXParticlesEditor::EditFigureCountQuads->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureCountQuads)).c_str());
-	SXParticlesEditor::CheckBoxFigureRotRand->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureRotRand));
-	SXParticlesEditor::CheckBoxFigureTapX->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapX));
-	SXParticlesEditor::CheckBoxFigureTapY->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapY));
-	SXParticlesEditor::CheckBoxFigureTapZ->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapZ));
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaBlendType));
-	SXParticlesEditor::EditTimeLife->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLife)).c_str());
-	SXParticlesEditor::EditTimeLifeDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLifeDisp)).c_str());
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaDependAge));
-	SXParticlesEditor::EditSizeX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.x)).c_str());
-	SXParticlesEditor::EditSizeY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.y)).c_str());
-	SXParticlesEditor::EditSizeDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDisp)).c_str());
-	SXParticlesEditor::ComboBoxSizeDependAge->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDependAge));
-	SXParticlesEditor::CheckBoxCollisionDelete->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CollisionDelete));
-
-	SXParticlesEditor::EditColorR->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.x)).c_str());
-	SXParticlesEditor::EditColorG->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.y)).c_str());
-	SXParticlesEditor::EditColorB->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.z)).c_str());
-	SXParticlesEditor::EditColorA->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.w)).c_str());
-
-	SXParticlesEditor::CheckBoxTrack->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Track));
-	SXParticlesEditor::EditTrackSize->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackSize)).c_str());
-	SXParticlesEditor::EditTrackTime->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackTime)).c_str());
+	SXParticlesEditor::EditName->setText(tmpname);
+	SXParticlesEditor::EditCount->setText(String(SPE_EmitterCountGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID)).c_str());
+	SXParticlesEditor::EditReCreateCount->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ReCreateCount)).c_str());
+	SXParticlesEditor::EditColorCoef->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, ColorCoef)).c_str());
+	SXParticlesEditor::EditSoftCoef->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SoftCoef)).c_str());
+	SXParticlesEditor::EditRefractionCoef->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, RefractionCoef)).c_str());
+	SXParticlesEditor::EditTransparencyCoef->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TransparencyCoef)).c_str());
+	SXParticlesEditor::CheckBoxLighting->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Lighting));
+	SXParticlesEditor::ComboBoxFigureType->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureType));
+	SXParticlesEditor::ComboBoxAlphaBlendType->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaBlendType));
+	SXParticlesEditor::EditFigureCountQuads->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureCountQuads)).c_str());
+	SXParticlesEditor::CheckBoxFigureRotRand->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureRotRand));
+	SXParticlesEditor::CheckBoxFigureTapX->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapX));
+	SXParticlesEditor::CheckBoxFigureTapY->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapY));
+	SXParticlesEditor::CheckBoxFigureTapZ->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, FigureTapZ));
+	SXParticlesEditor::ComboBoxAlphaBlendType->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaBlendType));
+	SXParticlesEditor::EditTimeLife->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLife)).c_str());
+	SXParticlesEditor::EditTimeLifeDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TimeLifeDisp)).c_str());
+	SXParticlesEditor::ComboBoxAlphaDependAge->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AlphaDependAge));
+	SXParticlesEditor::EditSizeX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.x)).c_str());
+	SXParticlesEditor::EditSizeY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Size.y)).c_str());
+	SXParticlesEditor::EditSizeDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDisp)).c_str());
+	SXParticlesEditor::ComboBoxSizeDependAge->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SizeDependAge));
+	SXParticlesEditor::CheckBoxCollisionDelete->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CollisionDelete));
+
+	SXParticlesEditor::EditColorR->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.x)).c_str());
+	SXParticlesEditor::EditColorG->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.y)).c_str());
+	SXParticlesEditor::EditColorB->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.z)).c_str());
+	SXParticlesEditor::EditColorA->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Color.w)).c_str());
+
+	SXParticlesEditor::CheckBoxTrack->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Track));
+	SXParticlesEditor::EditTrackSize->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackSize)).c_str());
+	SXParticlesEditor::EditTrackTime->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, TrackTime)).c_str());
 }
 
 void SXParticlesEditor::BaseNulling()
 {
-	SXParticlesEditor::EditName->SetText("");
-	SXParticlesEditor::EditCount->SetText("0");
-	SXParticlesEditor::EditReCreateCount->SetText("0");
-	SXParticlesEditor::EditColorCoef->SetText("1");
-	SXParticlesEditor::EditSoftCoef->SetText("0");
-	SXParticlesEditor::EditRefractionCoef->SetText("0");
-	SXParticlesEditor::EditTransparencyCoef->SetText("1");
-	SXParticlesEditor::CheckBoxLighting->SetCheck(false);
-	SXParticlesEditor::ComboBoxFigureType->SetSel(0);
-	SXParticlesEditor::EditFigureCountQuads->SetText("1");
-	SXParticlesEditor::CheckBoxFigureRotRand->SetCheck(false);
-	SXParticlesEditor::CheckBoxFigureTapX->SetCheck(false);
-	SXParticlesEditor::CheckBoxFigureTapY->SetCheck(false);
-	SXParticlesEditor::CheckBoxFigureTapZ->SetCheck(false);
-	SXParticlesEditor::ComboBoxAlphaBlendType->SetSel(0);
-	SXParticlesEditor::EditTimeLife->SetText("0");
-	SXParticlesEditor::EditTimeLifeDisp->SetText("0");
-	SXParticlesEditor::ComboBoxAlphaDependAge->SetSel(0);
-	SXParticlesEditor::EditSizeX->SetText("0.5");
-	SXParticlesEditor::EditSizeY->SetText("0.5");
-	SXParticlesEditor::EditSizeDisp->SetText("0");
-	SXParticlesEditor::ComboBoxSizeDependAge->SetSel(0);
-	SXParticlesEditor::CheckBoxCollisionDelete->SetCheck(false);
-
-	SXParticlesEditor::EditColorR->SetText("1");
-	SXParticlesEditor::EditColorG->SetText("1");
-	SXParticlesEditor::EditColorB->SetText("1");
-	SXParticlesEditor::EditColorA->SetText("0");
-
-	SXParticlesEditor::CheckBoxTrack->SetCheck(false);
-	SXParticlesEditor::EditTrackSize->SetText("0");
-	SXParticlesEditor::EditTrackTime->SetText("0");
+	SXParticlesEditor::EditName->setText("");
+	SXParticlesEditor::EditCount->setText("0");
+	SXParticlesEditor::EditReCreateCount->setText("0");
+	SXParticlesEditor::EditColorCoef->setText("1");
+	SXParticlesEditor::EditSoftCoef->setText("0");
+	SXParticlesEditor::EditRefractionCoef->setText("0");
+	SXParticlesEditor::EditTransparencyCoef->setText("1");
+	SXParticlesEditor::CheckBoxLighting->setCheck(false);
+	SXParticlesEditor::ComboBoxFigureType->setSel(0);
+	SXParticlesEditor::EditFigureCountQuads->setText("1");
+	SXParticlesEditor::CheckBoxFigureRotRand->setCheck(false);
+	SXParticlesEditor::CheckBoxFigureTapX->setCheck(false);
+	SXParticlesEditor::CheckBoxFigureTapY->setCheck(false);
+	SXParticlesEditor::CheckBoxFigureTapZ->setCheck(false);
+	SXParticlesEditor::ComboBoxAlphaBlendType->setSel(0);
+	SXParticlesEditor::EditTimeLife->setText("0");
+	SXParticlesEditor::EditTimeLifeDisp->setText("0");
+	SXParticlesEditor::ComboBoxAlphaDependAge->setSel(0);
+	SXParticlesEditor::EditSizeX->setText("0.5");
+	SXParticlesEditor::EditSizeY->setText("0.5");
+	SXParticlesEditor::EditSizeDisp->setText("0");
+	SXParticlesEditor::ComboBoxSizeDependAge->setSel(0);
+	SXParticlesEditor::CheckBoxCollisionDelete->setCheck(false);
+
+	SXParticlesEditor::EditColorR->setText("1");
+	SXParticlesEditor::EditColorG->setText("1");
+	SXParticlesEditor::EditColorB->setText("1");
+	SXParticlesEditor::EditColorA->setText("0");
+
+	SXParticlesEditor::CheckBoxTrack->setCheck(false);
+	SXParticlesEditor::EditTrackSize->setText("0");
+	SXParticlesEditor::EditTrackTime->setText("0");
 }
 
 void SXParticlesEditor::BoundVisible(bool visible)
 {
-	SXParticlesEditor::StaticBoundType->Visible(visible);
-	SXParticlesEditor::ComboBoxBoundType->Visible(visible);
-	SXParticlesEditor::StaticBoundVec1->Visible(visible);
-	SXParticlesEditor::StaticBoundVec1X->Visible(visible);
-	SXParticlesEditor::EditBoundVec1X->Visible(visible);
-	SXParticlesEditor::StaticBoundVec1Y->Visible(visible);
-	SXParticlesEditor::EditBoundVec1Y->Visible(visible);
-	SXParticlesEditor::StaticBoundVec1Z->Visible(visible);
-	SXParticlesEditor::EditBoundVec1Z->Visible(visible);
-	SXParticlesEditor::StaticBoundVec1W->Visible(visible);
-	SXParticlesEditor::EditBoundVec1W->Visible(visible);
-	SXParticlesEditor::StaticBoundVec2->Visible(visible);
-	SXParticlesEditor::StaticBoundVec2X->Visible(visible);
-	SXParticlesEditor::EditBoundVec2X->Visible(visible);
-	SXParticlesEditor::StaticBoundVec2Y->Visible(visible);
-	SXParticlesEditor::EditBoundVec2Y->Visible(visible);
-	SXParticlesEditor::StaticBoundVec2Z->Visible(visible);
-	SXParticlesEditor::EditBoundVec2Z->Visible(visible);
-	SXParticlesEditor::StaticBoundVec2W->Visible(visible);
-	SXParticlesEditor::EditBoundVec2W->Visible(visible);
+	SXParticlesEditor::StaticBoundType->setVisible(visible);
+	SXParticlesEditor::ComboBoxBoundType->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec1->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec1X->setVisible(visible);
+	SXParticlesEditor::EditBoundVec1X->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec1Y->setVisible(visible);
+	SXParticlesEditor::EditBoundVec1Y->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec1Z->setVisible(visible);
+	SXParticlesEditor::EditBoundVec1Z->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec1W->setVisible(visible);
+	SXParticlesEditor::EditBoundVec1W->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec2->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec2X->setVisible(visible);
+	SXParticlesEditor::EditBoundVec2X->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec2Y->setVisible(visible);
+	SXParticlesEditor::EditBoundVec2Y->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec2Z->setVisible(visible);
+	SXParticlesEditor::EditBoundVec2Z->setVisible(visible);
+	SXParticlesEditor::StaticBoundVec2W->setVisible(visible);
+	SXParticlesEditor::EditBoundVec2W->setVisible(visible);
 }
 
 void SXParticlesEditor::BoundDataInit()
@@ -276,63 +276,63 @@ void SXParticlesEditor::BoundDataInit()
 		return;
 	}
 
-	SXParticlesEditor::ComboBoxBoundType->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundType));
-	SXParticlesEditor::EditBoundVec1X->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.x)).c_str());
-	SXParticlesEditor::EditBoundVec1Y->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.y)).c_str());
-	SXParticlesEditor::EditBoundVec1Z->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.z)).c_str());
-	SXParticlesEditor::EditBoundVec1W->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.w)).c_str());
-	SXParticlesEditor::EditBoundVec2X->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.x)).c_str());
-	SXParticlesEditor::EditBoundVec2Y->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.y)).c_str());
-	SXParticlesEditor::EditBoundVec2Z->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.z)).c_str());
-	SXParticlesEditor::EditBoundVec2W->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.w)).c_str());
+	SXParticlesEditor::ComboBoxBoundType->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundType));
+	SXParticlesEditor::EditBoundVec1X->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.x)).c_str());
+	SXParticlesEditor::EditBoundVec1Y->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.y)).c_str());
+	SXParticlesEditor::EditBoundVec1Z->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.z)).c_str());
+	SXParticlesEditor::EditBoundVec1W->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec1.w)).c_str());
+	SXParticlesEditor::EditBoundVec2X->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.x)).c_str());
+	SXParticlesEditor::EditBoundVec2Y->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.y)).c_str());
+	SXParticlesEditor::EditBoundVec2Z->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.z)).c_str());
+	SXParticlesEditor::EditBoundVec2W->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, BoundVec2.w)).c_str());
 }
 
 void SXParticlesEditor::BoundNulling()
 {
-	SXParticlesEditor::ComboBoxBoundType->SetSel(0);
-	SXParticlesEditor::EditBoundVec1X->SetText("0");
-	SXParticlesEditor::EditBoundVec1Y->SetText("0");
-	SXParticlesEditor::EditBoundVec1Z->SetText("0");
-	SXParticlesEditor::EditBoundVec1W->SetText("0");
-	SXParticlesEditor::EditBoundVec2X->SetText("0");
-	SXParticlesEditor::EditBoundVec2Y->SetText("0");
-	SXParticlesEditor::EditBoundVec2Z->SetText("0");
-	SXParticlesEditor::EditBoundVec2W->SetText("0");
+	SXParticlesEditor::ComboBoxBoundType->setSel(0);
+	SXParticlesEditor::EditBoundVec1X->setText("0");
+	SXParticlesEditor::EditBoundVec1Y->setText("0");
+	SXParticlesEditor::EditBoundVec1Z->setText("0");
+	SXParticlesEditor::EditBoundVec1W->setText("0");
+	SXParticlesEditor::EditBoundVec2X->setText("0");
+	SXParticlesEditor::EditBoundVec2Y->setText("0");
+	SXParticlesEditor::EditBoundVec2Z->setText("0");
+	SXParticlesEditor::EditBoundVec2W->setText("0");
 }
 
 void SXParticlesEditor::CharacterVisible(bool visible)
 {
-	SXParticlesEditor::CheckBoxCircle->Visible(visible);
-	SXParticlesEditor::StaticCircleAxis->Visible(visible);
-	SXParticlesEditor::ComboBoxCircleAxis->Visible(visible);
-	SXParticlesEditor::StaticCircleAngle->Visible(visible);
-	SXParticlesEditor::EditCircleAngle->Visible(visible);
-	SXParticlesEditor::StaticCircleAngleDisp->Visible(visible);
-	SXParticlesEditor::EditCircleAngleDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxRotate->Visible(visible);
-	SXParticlesEditor::StaticRotateAngle->Visible(visible);
-	SXParticlesEditor::EditRotateAngle->Visible(visible);
-	SXParticlesEditor::StaticRotateAngleDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->Visible(visible);
-	SXParticlesEditor::EditRotateAngleDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxDeviation->Visible(visible);
-	SXParticlesEditor::StaticDeviationType->Visible(visible);
-	SXParticlesEditor::ComboBoxDeviationType->Visible(visible);
-	SXParticlesEditor::StaticDeviationAmplitude->Visible(visible);
-	SXParticlesEditor::StaticDeviationCoefAngle->Visible(visible);
-	SXParticlesEditor::EditDeviationAmplitude->Visible(visible);
-	SXParticlesEditor::EditDeviationCoefAngle->Visible(visible);
-	SXParticlesEditor::StaticDeviationAxis->Visible(visible);
-	SXParticlesEditor::ComboBoxDeviationAxis->Visible(visible);
-	SXParticlesEditor::StaticDeviationCountDelayMls->Visible(visible);
-	SXParticlesEditor::EditDeviationCountDelayMls->Visible(visible);
-	SXParticlesEditor::StaticDeviationCoefAngleDisp->Visible(visible);
-	SXParticlesEditor::EditDeviationCoefAngleDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxDeviationTapX->Visible(visible);
-	SXParticlesEditor::CheckBoxDeviationTapY->Visible(visible);
-	SXParticlesEditor::CheckBoxDeviationTapZ->Visible(visible);
+	SXParticlesEditor::CheckBoxCircle->setVisible(visible);
+	SXParticlesEditor::StaticCircleAxis->setVisible(visible);
+	SXParticlesEditor::ComboBoxCircleAxis->setVisible(visible);
+	SXParticlesEditor::StaticCircleAngle->setVisible(visible);
+	SXParticlesEditor::EditCircleAngle->setVisible(visible);
+	SXParticlesEditor::StaticCircleAngleDisp->setVisible(visible);
+	SXParticlesEditor::EditCircleAngleDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxRotate->setVisible(visible);
+	SXParticlesEditor::StaticRotateAngle->setVisible(visible);
+	SXParticlesEditor::EditRotateAngle->setVisible(visible);
+	SXParticlesEditor::StaticRotateAngleDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setVisible(visible);
+	SXParticlesEditor::EditRotateAngleDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxDeviation->setVisible(visible);
+	SXParticlesEditor::StaticDeviationType->setVisible(visible);
+	SXParticlesEditor::ComboBoxDeviationType->setVisible(visible);
+	SXParticlesEditor::StaticDeviationAmplitude->setVisible(visible);
+	SXParticlesEditor::StaticDeviationCoefAngle->setVisible(visible);
+	SXParticlesEditor::EditDeviationAmplitude->setVisible(visible);
+	SXParticlesEditor::EditDeviationCoefAngle->setVisible(visible);
+	SXParticlesEditor::StaticDeviationAxis->setVisible(visible);
+	SXParticlesEditor::ComboBoxDeviationAxis->setVisible(visible);
+	SXParticlesEditor::StaticDeviationCountDelayMls->setVisible(visible);
+	SXParticlesEditor::EditDeviationCountDelayMls->setVisible(visible);
+	SXParticlesEditor::StaticDeviationCoefAngleDisp->setVisible(visible);
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxDeviationTapX->setVisible(visible);
+	SXParticlesEditor::CheckBoxDeviationTapY->setVisible(visible);
+	SXParticlesEditor::CheckBoxDeviationTapZ->setVisible(visible);
 }
 
 void SXParticlesEditor::CharacterDataInit()
@@ -347,75 +347,75 @@ void SXParticlesEditor::CharacterDataInit()
 		return;
 	}
 
-	SXParticlesEditor::CheckBoxCircle->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircle));
-	SXParticlesEditor::ComboBoxCircleAxis->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAxis));
-	SXParticlesEditor::EditCircleAngle->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngle)).c_str());
-	SXParticlesEditor::EditCircleAngleDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDisp)).c_str());
-	SXParticlesEditor::CheckBoxRotate->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotate));
-	SXParticlesEditor::EditRotateAngle->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngle)).c_str());
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDispNeg));
-	SXParticlesEditor::EditRotateAngleDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDisp)).c_str());
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDispNeg));
-	SXParticlesEditor::CheckBoxDeviation->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviation));
-	SXParticlesEditor::ComboBoxDeviationType->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationType));
-	SXParticlesEditor::EditDeviationAmplitude->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAmplitude)).c_str());
-	SXParticlesEditor::EditDeviationCoefAngle->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngle)).c_str());
-	SXParticlesEditor::ComboBoxDeviationAxis->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAxis));
-	SXParticlesEditor::EditDeviationCountDelayMls->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCountDelayMls)).c_str());
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDisp)).c_str());
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDispNeg));
-	SXParticlesEditor::CheckBoxDeviationTapX->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapX));
-	SXParticlesEditor::CheckBoxDeviationTapY->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapY));
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapZ));
+	SXParticlesEditor::CheckBoxCircle->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircle));
+	SXParticlesEditor::ComboBoxCircleAxis->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAxis));
+	SXParticlesEditor::EditCircleAngle->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngle)).c_str());
+	SXParticlesEditor::EditCircleAngleDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDisp)).c_str());
+	SXParticlesEditor::CheckBoxRotate->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotate));
+	SXParticlesEditor::EditRotateAngle->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngle)).c_str());
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterCircleAngleDispNeg));
+	SXParticlesEditor::EditRotateAngleDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDisp)).c_str());
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterRotateAngleDispNeg));
+	SXParticlesEditor::CheckBoxDeviation->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviation));
+	SXParticlesEditor::ComboBoxDeviationType->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationType));
+	SXParticlesEditor::EditDeviationAmplitude->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAmplitude)).c_str());
+	SXParticlesEditor::EditDeviationCoefAngle->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngle)).c_str());
+	SXParticlesEditor::ComboBoxDeviationAxis->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationAxis));
+	SXParticlesEditor::EditDeviationCountDelayMls->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCountDelayMls)).c_str());
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDisp)).c_str());
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationCoefAngleDispNeg));
+	SXParticlesEditor::CheckBoxDeviationTapX->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapX));
+	SXParticlesEditor::CheckBoxDeviationTapY->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapY));
+	SXParticlesEditor::CheckBoxDeviationTapZ->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, CharacterDeviationTapZ));
 }
 
 void SXParticlesEditor::CharacterNulling()
 {
-	SXParticlesEditor::CheckBoxCircle->SetCheck(false);
-	SXParticlesEditor::ComboBoxCircleAxis->SetSel(0);
-	SXParticlesEditor::EditCircleAngle->SetText("0");
-	SXParticlesEditor::EditCircleAngleDisp->SetText("0");
-	SXParticlesEditor::CheckBoxRotate->SetCheck(false);
-	SXParticlesEditor::EditRotateAngle->SetText("0");
-	SXParticlesEditor::CheckBoxCircleAngleDispNeg->SetCheck(false);
-	SXParticlesEditor::EditRotateAngleDisp->SetText("0");
-	SXParticlesEditor::CheckBoxRotateAngleDispNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxDeviation->SetCheck(false);
-	SXParticlesEditor::ComboBoxDeviationType->SetSel(0);
-	SXParticlesEditor::EditDeviationAmplitude->SetText("0");
-	SXParticlesEditor::EditDeviationCoefAngle->SetText("0");
-	SXParticlesEditor::ComboBoxDeviationAxis->SetSel(0);
-	SXParticlesEditor::EditDeviationCountDelayMls->SetText("0");
-	SXParticlesEditor::EditDeviationCoefAngleDisp->SetText("0");
-	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxDeviationTapX->SetCheck(false);
-	SXParticlesEditor::CheckBoxDeviationTapY->SetCheck(false);
-	SXParticlesEditor::CheckBoxDeviationTapZ->SetCheck(false);
+	SXParticlesEditor::CheckBoxCircle->setCheck(false);
+	SXParticlesEditor::ComboBoxCircleAxis->setSel(0);
+	SXParticlesEditor::EditCircleAngle->setText("0");
+	SXParticlesEditor::EditCircleAngleDisp->setText("0");
+	SXParticlesEditor::CheckBoxRotate->setCheck(false);
+	SXParticlesEditor::EditRotateAngle->setText("0");
+	SXParticlesEditor::CheckBoxCircleAngleDispNeg->setCheck(false);
+	SXParticlesEditor::EditRotateAngleDisp->setText("0");
+	SXParticlesEditor::CheckBoxRotateAngleDispNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxDeviation->setCheck(false);
+	SXParticlesEditor::ComboBoxDeviationType->setSel(0);
+	SXParticlesEditor::EditDeviationAmplitude->setText("0");
+	SXParticlesEditor::EditDeviationCoefAngle->setText("0");
+	SXParticlesEditor::ComboBoxDeviationAxis->setSel(0);
+	SXParticlesEditor::EditDeviationCountDelayMls->setText("0");
+	SXParticlesEditor::EditDeviationCoefAngleDisp->setText("0");
+	SXParticlesEditor::CheckBoxDeviationCoefAngleDispNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxDeviationTapX->setCheck(false);
+	SXParticlesEditor::CheckBoxDeviationTapY->setCheck(false);
+	SXParticlesEditor::CheckBoxDeviationTapZ->setCheck(false);
 }
 
 void SXParticlesEditor::SpawnVisible(bool visible)
 {
-	SXParticlesEditor::StaticSpawnPosType->Visible(visible);
-	SXParticlesEditor::ComboBoxSpawnPosType->Visible(visible);
-	SXParticlesEditor::StaticSpawnOrigin->Visible(visible);
-	SXParticlesEditor::StaticSpawnOriginX->Visible(visible);
-	SXParticlesEditor::EditSpawnOriginX->Visible(visible);
-	SXParticlesEditor::StaticSpawnOriginY->Visible(visible);
-	SXParticlesEditor::EditSpawnOriginY->Visible(visible);
-	SXParticlesEditor::StaticSpawnOriginZ->Visible(visible);
-	SXParticlesEditor::EditSpawnOriginZ->Visible(visible);
-	SXParticlesEditor::StaticSpawnOriginDisp->Visible(visible);
-	SXParticlesEditor::EditSpawnOriginDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->Visible(visible);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->Visible(visible);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->Visible(visible);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->Visible(visible);
-	SXParticlesEditor::StaticSpawnNextTime->Visible(visible);
-	SXParticlesEditor::EditSpawnNextTime->Visible(visible);
-	SXParticlesEditor::StaticSpawnNextTimeDisp->Visible(visible);
-	SXParticlesEditor::EditSpawnNextTimeDisp->Visible(visible);
+	SXParticlesEditor::StaticSpawnPosType->setVisible(visible);
+	SXParticlesEditor::ComboBoxSpawnPosType->setVisible(visible);
+	SXParticlesEditor::StaticSpawnOrigin->setVisible(visible);
+	SXParticlesEditor::StaticSpawnOriginX->setVisible(visible);
+	SXParticlesEditor::EditSpawnOriginX->setVisible(visible);
+	SXParticlesEditor::StaticSpawnOriginY->setVisible(visible);
+	SXParticlesEditor::EditSpawnOriginY->setVisible(visible);
+	SXParticlesEditor::StaticSpawnOriginZ->setVisible(visible);
+	SXParticlesEditor::EditSpawnOriginZ->setVisible(visible);
+	SXParticlesEditor::StaticSpawnOriginDisp->setVisible(visible);
+	SXParticlesEditor::EditSpawnOriginDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setVisible(visible);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setVisible(visible);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setVisible(visible);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setVisible(visible);
+	SXParticlesEditor::StaticSpawnNextTime->setVisible(visible);
+	SXParticlesEditor::EditSpawnNextTime->setVisible(visible);
+	SXParticlesEditor::StaticSpawnNextTimeDisp->setVisible(visible);
+	SXParticlesEditor::EditSpawnNextTimeDisp->setVisible(visible);
 }
 
 void SXParticlesEditor::SpawnDataInit()
@@ -430,55 +430,55 @@ void SXParticlesEditor::SpawnDataInit()
 		return;
 	}
 
-	SXParticlesEditor::ComboBoxSpawnPosType->SetSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnPosType));
-	SXParticlesEditor::EditSpawnOriginX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.x)).c_str());
-	SXParticlesEditor::EditSpawnOriginY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.y)).c_str());
-	SXParticlesEditor::EditSpawnOriginZ->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.z)).c_str());
-	SXParticlesEditor::EditSpawnOriginDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOriginDisp)).c_str());
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXPos));
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXNeg));
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYPos));
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYNeg));
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZPos));
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZNeg));
-	SXParticlesEditor::EditSpawnNextTime->SetText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTime)).c_str());
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTimeDisp)).c_str());
+	SXParticlesEditor::ComboBoxSpawnPosType->setSel(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnPosType));
+	SXParticlesEditor::EditSpawnOriginX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.x)).c_str());
+	SXParticlesEditor::EditSpawnOriginY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.y)).c_str());
+	SXParticlesEditor::EditSpawnOriginZ->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOrigin.z)).c_str());
+	SXParticlesEditor::EditSpawnOriginDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnOriginDisp)).c_str());
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXPos));
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateXNeg));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYPos));
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateYNeg));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZPos));
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnBoundBindCreateZNeg));
+	SXParticlesEditor::EditSpawnNextTime->setText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTime)).c_str());
+	SXParticlesEditor::EditSpawnNextTimeDisp->setText(String((DWORD)SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, SpawnNextTimeDisp)).c_str());
 }
 
 void SXParticlesEditor::SpawnNulling()
 {
-	SXParticlesEditor::ComboBoxSpawnPosType->SetSel(0);
-	SXParticlesEditor::EditSpawnOriginX->SetText("0");
-	SXParticlesEditor::EditSpawnOriginY->SetText("0");
-	SXParticlesEditor::EditSpawnOriginZ->SetText("0");
-	SXParticlesEditor::EditSpawnOriginDisp->SetText("0");
-	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->SetCheck(false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->SetCheck(false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->SetCheck(false);
-	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->SetCheck(false);
-	SXParticlesEditor::EditSpawnNextTime->SetText("0");
-	SXParticlesEditor::EditSpawnNextTimeDisp->SetText("0");
+	SXParticlesEditor::ComboBoxSpawnPosType->setSel(0);
+	SXParticlesEditor::EditSpawnOriginX->setText("0");
+	SXParticlesEditor::EditSpawnOriginY->setText("0");
+	SXParticlesEditor::EditSpawnOriginZ->setText("0");
+	SXParticlesEditor::EditSpawnOriginDisp->setText("0");
+	SXParticlesEditor::CheckBoxSpawnOriginDispXPos->setCheck(false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispXNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYPos->setCheck(false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispYNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZPos->setCheck(false);
+	SXParticlesEditor::CheckBoxSpawnOriginDispZNeg->setCheck(false);
+	SXParticlesEditor::EditSpawnNextTime->setText("0");
+	SXParticlesEditor::EditSpawnNextTimeDisp->setText("0");
 }
 
 void SXParticlesEditor::TexVisible(bool visible)
 {
-	SXParticlesEditor::StaticTexture->Visible(visible);
-	SXParticlesEditor::EditTexture->Visible(visible);
-	SXParticlesEditor::ButtonTextureSel->Visible(visible);
-	SXParticlesEditor::StaticAnimTexCountCadrsX->Visible(visible);
-	SXParticlesEditor::StaticAnimTexCountCadrsY->Visible(visible);
-	SXParticlesEditor::EditAnimTexCountCadrsX->Visible(visible);
-	SXParticlesEditor::EditAnimTexCountCadrsY->Visible(visible);
-	SXParticlesEditor::StaticAnimTexRate->Visible(visible);
-	SXParticlesEditor::EditAnimTexRate->Visible(visible);
-	SXParticlesEditor::StaticAnimTexRateDisp->Visible(visible);
-	SXParticlesEditor::EditAnimTexRateDisp->Visible(visible);
-	SXParticlesEditor::StaticAnimTexStartCadr->Visible(visible);
-	SXParticlesEditor::EditAnimTexStartCadr->Visible(visible);
-	SXParticlesEditor::StaticAnimTexStartCadrDisp->Visible(visible);
-	SXParticlesEditor::EditAnimTexStartCadrDisp->Visible(visible);
+	SXParticlesEditor::StaticTexture->setVisible(visible);
+	SXParticlesEditor::EditTexture->setVisible(visible);
+	SXParticlesEditor::ButtonTextureSel->setVisible(visible);
+	SXParticlesEditor::StaticAnimTexCountCadrsX->setVisible(visible);
+	SXParticlesEditor::StaticAnimTexCountCadrsY->setVisible(visible);
+	SXParticlesEditor::EditAnimTexCountCadrsX->setVisible(visible);
+	SXParticlesEditor::EditAnimTexCountCadrsY->setVisible(visible);
+	SXParticlesEditor::StaticAnimTexRate->setVisible(visible);
+	SXParticlesEditor::EditAnimTexRate->setVisible(visible);
+	SXParticlesEditor::StaticAnimTexRateDisp->setVisible(visible);
+	SXParticlesEditor::EditAnimTexRateDisp->setVisible(visible);
+	SXParticlesEditor::StaticAnimTexStartCadr->setVisible(visible);
+	SXParticlesEditor::EditAnimTexStartCadr->setVisible(visible);
+	SXParticlesEditor::StaticAnimTexStartCadrDisp->setVisible(visible);
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setVisible(visible);
 }
 
 void SXParticlesEditor::TexDataInit()
@@ -496,52 +496,52 @@ void SXParticlesEditor::TexDataInit()
 	char tmptex[SXGC_LOADTEX_MAX_SIZE_DIRNAME];
 	SPE_EmitterTextureGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, tmptex);
 
-	SXParticlesEditor::EditTexture->SetText(tmptex);
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsX)).c_str());
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsY)).c_str());
-	SXParticlesEditor::EditAnimTexRate->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRate)).c_str());
-	SXParticlesEditor::EditAnimTexRateDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRateDisp)).c_str());
-	SXParticlesEditor::EditAnimTexStartCadr->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadr)).c_str());
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadrDisp)).c_str());
+	SXParticlesEditor::EditTexture->setText(tmptex);
+	SXParticlesEditor::EditAnimTexCountCadrsX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsX)).c_str());
+	SXParticlesEditor::EditAnimTexCountCadrsY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexCountCadrsY)).c_str());
+	SXParticlesEditor::EditAnimTexRate->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRate)).c_str());
+	SXParticlesEditor::EditAnimTexRateDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexRateDisp)).c_str());
+	SXParticlesEditor::EditAnimTexStartCadr->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadr)).c_str());
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AnimTexStartCadrDisp)).c_str());
 }
 
 void SXParticlesEditor::TexNulling()
 {
-	SXParticlesEditor::EditTexture->SetText("");
-	SXParticlesEditor::EditAnimTexCountCadrsX->SetText("0");
-	SXParticlesEditor::EditAnimTexCountCadrsY->SetText("0");
-	SXParticlesEditor::EditAnimTexRate->SetText("0");
-	SXParticlesEditor::EditAnimTexRateDisp->SetText("0");
-	SXParticlesEditor::EditAnimTexStartCadr->SetText("0");
-	SXParticlesEditor::EditAnimTexStartCadrDisp->SetText("0");
+	SXParticlesEditor::EditTexture->setText("");
+	SXParticlesEditor::EditAnimTexCountCadrsX->setText("0");
+	SXParticlesEditor::EditAnimTexCountCadrsY->setText("0");
+	SXParticlesEditor::EditAnimTexRate->setText("0");
+	SXParticlesEditor::EditAnimTexRateDisp->setText("0");
+	SXParticlesEditor::EditAnimTexStartCadr->setText("0");
+	SXParticlesEditor::EditAnimTexStartCadrDisp->setText("0");
 }
 
 void SXParticlesEditor::VelocityAccVisible(bool visible)
 {
-	SXParticlesEditor::StaticVelocity->Visible(visible);
-	SXParticlesEditor::StaticVelocityX->Visible(visible);
-	SXParticlesEditor::EditVelocityX->Visible(visible);
-	SXParticlesEditor::StaticVelocityY->Visible(visible);
-	SXParticlesEditor::EditVelocityY->Visible(visible);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->Visible(visible);
-	SXParticlesEditor::StaticVelocityZ->Visible(visible);
-	SXParticlesEditor::EditVelocityZ->Visible(visible);
-	SXParticlesEditor::StaticVelocityDisp->Visible(visible);
-	SXParticlesEditor::EditVelocityDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->Visible(visible);
-	SXParticlesEditor::StaticAcceleration->Visible(visible);
-	SXParticlesEditor::StaticAccelerationX->Visible(visible);
-	SXParticlesEditor::EditAccelerationX->Visible(visible);
-	SXParticlesEditor::StaticAccelerationY->Visible(visible);
-	SXParticlesEditor::EditAccelerationY->Visible(visible);
-	SXParticlesEditor::StaticAccelerationZ->Visible(visible);
-	SXParticlesEditor::EditAccelerationZ->Visible(visible);
-	SXParticlesEditor::StaticAccelerationDisp->Visible(visible);
-	SXParticlesEditor::EditAccelerationDisp->Visible(visible);
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->Visible(visible);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->Visible(visible);
+	SXParticlesEditor::StaticVelocity->setVisible(visible);
+	SXParticlesEditor::StaticVelocityX->setVisible(visible);
+	SXParticlesEditor::EditVelocityX->setVisible(visible);
+	SXParticlesEditor::StaticVelocityY->setVisible(visible);
+	SXParticlesEditor::EditVelocityY->setVisible(visible);
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setVisible(visible);
+	SXParticlesEditor::StaticVelocityZ->setVisible(visible);
+	SXParticlesEditor::EditVelocityZ->setVisible(visible);
+	SXParticlesEditor::StaticVelocityDisp->setVisible(visible);
+	SXParticlesEditor::EditVelocityDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setVisible(visible);
+	SXParticlesEditor::StaticAcceleration->setVisible(visible);
+	SXParticlesEditor::StaticAccelerationX->setVisible(visible);
+	SXParticlesEditor::EditAccelerationX->setVisible(visible);
+	SXParticlesEditor::StaticAccelerationY->setVisible(visible);
+	SXParticlesEditor::EditAccelerationY->setVisible(visible);
+	SXParticlesEditor::StaticAccelerationZ->setVisible(visible);
+	SXParticlesEditor::EditAccelerationZ->setVisible(visible);
+	SXParticlesEditor::StaticAccelerationDisp->setVisible(visible);
+	SXParticlesEditor::EditAccelerationDisp->setVisible(visible);
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setVisible(visible);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setVisible(visible);
 }
 
 void SXParticlesEditor::VelocityDataInit()
@@ -556,36 +556,36 @@ void SXParticlesEditor::VelocityDataInit()
 		return;
 	}
 
-	SXParticlesEditor::EditVelocityX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.x)).c_str());
-	SXParticlesEditor::EditVelocityY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.y)).c_str());
-	SXParticlesEditor::EditVelocityZ->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.z)).c_str());
-	SXParticlesEditor::EditVelocityDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDisp)).c_str());
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispYNeg));
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispZNeg));
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispXNeg));
-	SXParticlesEditor::EditAccelerationX->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.x)).c_str());
-	SXParticlesEditor::EditAccelerationY->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.y)).c_str());
-	SXParticlesEditor::EditAccelerationZ->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.z)).c_str());
-	SXParticlesEditor::EditAccelerationDisp->SetText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDisp)).c_str());
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispXNeg));
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispYNeg));
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispZNeg));
+	SXParticlesEditor::EditVelocityX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.x)).c_str());
+	SXParticlesEditor::EditVelocityY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.y)).c_str());
+	SXParticlesEditor::EditVelocityZ->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Velocity.z)).c_str());
+	SXParticlesEditor::EditVelocityDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDisp)).c_str());
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispYNeg));
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispZNeg));
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, VelocityDispXNeg));
+	SXParticlesEditor::EditAccelerationX->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.x)).c_str());
+	SXParticlesEditor::EditAccelerationY->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.y)).c_str());
+	SXParticlesEditor::EditAccelerationZ->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, Acceleration.z)).c_str());
+	SXParticlesEditor::EditAccelerationDisp->setText(String(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDisp)).c_str());
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispXNeg));
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispYNeg));
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setCheck(SPE_EmitterGet(SXParticlesEditor::SelEffID, SXParticlesEditor::SelEmitterID, AccelerationDispZNeg));
 }
 
 void SXParticlesEditor::VelocityAccNulling()
 {
-	SXParticlesEditor::EditVelocityX->SetText("0");
-	SXParticlesEditor::EditVelocityY->SetText("0");
-	SXParticlesEditor::EditVelocityZ->SetText("0");
-	SXParticlesEditor::EditVelocityDisp->SetText("0");
-	SXParticlesEditor::CheckBoxVelocityDispYNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxVelocityDispZNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxVelocityDispXNeg->SetCheck(false);
-	SXParticlesEditor::EditAccelerationX->SetText("0");
-	SXParticlesEditor::EditAccelerationY->SetText("0");
-	SXParticlesEditor::EditAccelerationZ->SetText("0");
-	SXParticlesEditor::EditAccelerationDisp->SetText("0");
-	SXParticlesEditor::CheckBoxAccelerationDispXNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxAccelerationDispYNeg->SetCheck(false);
-	SXParticlesEditor::CheckBoxAccelerationDispZNeg->SetCheck(false);
+	SXParticlesEditor::EditVelocityX->setText("0");
+	SXParticlesEditor::EditVelocityY->setText("0");
+	SXParticlesEditor::EditVelocityZ->setText("0");
+	SXParticlesEditor::EditVelocityDisp->setText("0");
+	SXParticlesEditor::CheckBoxVelocityDispYNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxVelocityDispZNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxVelocityDispXNeg->setCheck(false);
+	SXParticlesEditor::EditAccelerationX->setText("0");
+	SXParticlesEditor::EditAccelerationY->setText("0");
+	SXParticlesEditor::EditAccelerationZ->setText("0");
+	SXParticlesEditor::EditAccelerationDisp->setText("0");
+	SXParticlesEditor::CheckBoxAccelerationDispXNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxAccelerationDispYNeg->setCheck(false);
+	SXParticlesEditor::CheckBoxAccelerationDispZNeg->setCheck(false);
 }
\ No newline at end of file
diff --git a/source/sxparticleseditor/sxparticleseditor.cpp b/source/sxparticleseditor/sxparticleseditor.cpp
index 8c71d40c0..5ab35d024 100644
--- a/source/sxparticleseditor/sxparticleseditor.cpp
+++ b/source/sxparticleseditor/sxparticleseditor.cpp
@@ -4,9 +4,9 @@ Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017
 See the license in LICENSE
 ******************************************************/
 
-/*!
-\file
-Главный файл редактора партиклов SXParticlesEditor
+/*!
+\file
+Главный файл редактора партиклов SXParticlesEditor
 */
 
 /*!
@@ -238,8 +238,7 @@ Cone: Vector1 x y z – нижняя точка конуса, w – радиус
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
 {
 	SkyXEngine_PreviewCreate();
-	SXGUIRegClass::RegGroupBox();
-	SXGUIRegClass::RegButtonImg();
+	SXGUIinit();
 	srand((unsigned int)time(0));
 
 	SXParticlesEditor::InitAllElements();
@@ -253,15 +252,15 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 	GData::WinSize.x = winrndrect.right;
 	GData::WinSize.y = winrndrect.bottom;*/
 
-	SkyXEngine_Init(SXParticlesEditor::WindowRender->GetHWND(), SXParticlesEditor::JobWindow->GetHWND());
+	SkyXEngine_Init(SXParticlesEditor::WindowRender->getHWND(), SXParticlesEditor::JobWindow->getHWND());
 	Core_0SetCVarInt("r_final_image",DS_RT_COLOR);
-	SRender_GetCamera()->SetPosition(&float3(0, 0.5, -2));
-	SXParticlesEditor::MainMenu->CheckItem(ID_VIEW_GRID, true);
-	SXParticlesEditor::MainMenu->CheckItem(ID_VIEW_AXES, true);
-	SXParticlesEditor::MainMenu->CheckItem(ID_VIEW_BOUND, true);
-	SXParticlesEditor::CheckBoxTBGrid->SetCheck(true);
-	SXParticlesEditor::CheckBoxTBAxes->SetCheck(true);
-	SXParticlesEditor::CheckBoxTBBound->SetCheck(true);
+	SRender_GetCamera()->setPosition(&float3(0, 0.5, -2));
+	SXParticlesEditor::MainMenu->setCheckItem(ID_VIEW_GRID, true);
+	SXParticlesEditor::MainMenu->setCheckItem(ID_VIEW_AXES, true);
+	SXParticlesEditor::MainMenu->setCheckItem(ID_VIEW_BOUND, true);
+	SXParticlesEditor::CheckBoxTBGrid->setCheck(true);
+	SXParticlesEditor::CheckBoxTBAxes->setCheck(true);
+	SXParticlesEditor::CheckBoxTBBound->setCheck(true);
 	SRender_EditorSetRenderGrid(true);
 	SRender_EditorSetRenderAxesStatic(true);
 	SXParticlesEditor::canRenderBound = true;
@@ -269,12 +268,12 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLin
 
 	SXParticlesEditor::PEcreateData();
 
-	SGCore_LoadTexLoadTextures();
+	SGCore_LoadTexAllLoad();
 
 	SXParticlesEditor::EffInitList();
 
 	SkyXEngine_PreviewKill();
-	SXParticlesEditor::JobWindow->Visible(true);
+	SXParticlesEditor::JobWindow->setVisible(true);
 	int result = SkyXEngine_CycleMain();
 	SkyXEngine_Kill();
 
diff --git a/source/sxwincreator/WindowOutput.cpp b/source/sxwincreator/WindowOutput.cpp
index 5328af1c4..20d56a821 100644
--- a/source/sxwincreator/WindowOutput.cpp
+++ b/source/sxwincreator/WindowOutput.cpp
@@ -1,7 +1,5 @@
 
-extern LRESULT MinimuzeWinInsteadClose(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-extern void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constructors,bool destructors,bool comments,bool include);
-
+#include "WindowOutput.h"
 
 namespace SXNameSapce
 {
@@ -27,26 +25,26 @@ namespace SXNameSapce
 LRESULT StartButClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	char PathForFile[1024];
-	SXNameSapce::PathForFile->GetText(PathForFile,1024);
+	SXNameSapce::PathForFile->getText(PathForFile,1024);
 		if(strstr(PathForFile,":\\"))
 		{
 			char name_space[64];
 			bool in_ns,constructors,destructors,comments,include;
-			SXNameSapce::SXNameSpace->GetText(name_space,64);
-			in_ns = SXNameSapce::DetectedNameSpace->GetCheck() == 1 ? true : false;
-			constructors = SXNameSapce::Constructors->GetCheck() == 1 ? true : false;
-			destructors = SXNameSapce::Destructors->GetCheck() == 1 ? true : false;
-			comments = SXNameSapce::Comments->GetCheck() == 1 ? true : false;
-			include = SXNameSapce::Inlude->GetCheck() == 1 ? true : false;
+			SXNameSapce::SXNameSpace->getText(name_space,64);
+			in_ns = SXNameSapce::DetectedNameSpace->getCheck() == 1 ? true : false;
+			constructors = SXNameSapce::Constructors->getCheck() == 1 ? true : false;
+			destructors = SXNameSapce::Destructors->getCheck() == 1 ? true : false;
+			comments = SXNameSapce::Comments->getCheck() == 1 ? true : false;
+			include = SXNameSapce::Inlude->getCheck() == 1 ? true : false;
 
 			OutputInFile(PathForFile,name_space,in_ns,constructors,destructors,comments,include);
 			MessageBox(0,"Output in file is completed! Check result","Completed",MB_TASKMODAL);
-			SXNameSapce::OutputGUIInFile->Visible(false);
-			SXMainWndElem::MainWnd->Enable(true);
-			SXMainWndElem::JobMainWnd->Enable(true);
-			SXMainWndElem::ParamWnd->Enable(true);
-			SXMainWndElem::WndLog->Enable(true);
-			SetActiveWindow(SXMainWndElem::MainWnd->GetHWND());
+			SXNameSapce::OutputGUIInFile->setVisible(false);
+			SXMainWndElem::MainWnd->setEnable(true);
+			SXMainWndElem::JobMainWnd->setEnable(true);
+			SXMainWndElem::ParamWnd->setEnable(true);
+			SXMainWndElem::WndLog->setEnable(true);
+			SetActiveWindow(SXMainWndElem::MainWnd->getHWND());
 		}
 		else
 			MessageBox(0,"Make sure the path to the output file!",0,MB_TASKMODAL);
@@ -77,19 +75,19 @@ LRESULT SelectButClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	ofn.Flags		= OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
 
 	//InLog("%s","������������ ���� � ����� ����������� ���� ���������� ����� ...");
-	/*SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);*/
+	/*SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);*/
 		if(GetSaveFileName(&ofn) == TRUE)
 		{
-			SXNameSapce::PathForFile->SetText(szFileName);
+			SXNameSapce::PathForFile->setText(szFileName);
 		}
-	/*SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
-	SetActiveWindow(SXMainWndElem::MainWnd->GetHWND());*/
+	/*SXMainWndElem::MainWnd->setEnable(true);
+	SXMainWndElem::JobMainWnd->setEnable(true);
+	SXMainWndElem::ParamWnd->setEnable(true);
+	SXMainWndElem::WndLog->setEnable(true);
+	SetActiveWindow(SXMainWndElem::MainWnd->getHWND());*/
 	//InLog("%s","����� ����������� ���� ���������� ����� ������� ��������, ��������� ����");
 		
 	return 0;
@@ -98,11 +96,11 @@ LRESULT SelectButClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 LRESULT HideSettingsWndClose(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	ShowWindow(hwnd,SW_HIDE);
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
-	SetActiveWindow(SXMainWndElem::MainWnd->GetHWND());
+	SXMainWndElem::MainWnd->setEnable(true);
+	SXMainWndElem::JobMainWnd->setEnable(true);
+	SXMainWndElem::ParamWnd->setEnable(true);
+	SXMainWndElem::WndLog->setEnable(true);
+	SetActiveWindow(SXMainWndElem::MainWnd->getHWND());
 	return 0;
 }
 
@@ -111,72 +109,72 @@ void SXNameSapce::InitAllElements()
 	RECT wrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
 	
-	SXNameSapce::OutputGUIInFile = SXGUICrBaseWnd("OutputGUIInFile", "OutputGUIInFile", 0, 0, ((wrect.right / 2) - 170), ((wrect.bottom / 2) - 115), 340, 230, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED, 0, WndProcAllDefault);
-	SXGUIBaseHandlers::InitHandlerMsg(SXNameSapce::OutputGUIInFile);
-	SXNameSapce::OutputGUIInFile->AddHandler(HideSettingsWndClose,WM_CLOSE,0,0,0,0,true);
-	SXNameSapce::NameSpace = SXGUICrStatic("NameSpace", 13, 13, 100, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0);
-	SXNameSapce::NameSpace->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::NameSpace->SetColorText(0,0,0);
-	SXNameSapce::NameSpace->SetColorTextBk(255,255,255);
-	SXNameSapce::NameSpace->SetTransparentTextBk(true);
-	SXNameSapce::NameSpace->SetColorBrush(220,220,220);
-	SXNameSapce::SXNameSpace = SXGUICrEdit("SXNameSpace", 119, 11, 199, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0);
-	SXNameSapce::SXNameSpace->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::SXNameSpace->SetColorText(0,0,0);
-	SXNameSapce::SXNameSpace->SetColorTextBk(255,255,255);
-	SXNameSapce::SXNameSpace->SetTransparentTextBk(true);
-	SXNameSapce::SXNameSpace->SetColorBrush(255,255,255);
-	SXNameSapce::Constructors = SXGUICrCheckBox("Constructors", 15, 60, 100, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0, false);
-	SXNameSapce::Constructors->SetCheck(SXGUI_CHECKBOX_CHECKED);
-	SXNameSapce::Constructors->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::Constructors->SetColorText(0,0,0);
-	SXNameSapce::Constructors->SetColorTextBk(255,255,255);
-	SXNameSapce::Constructors->SetTransparentTextBk(true);
-	SXNameSapce::Constructors->SetColorBrush(220,220,220);
-	SXNameSapce::Destructors = SXGUICrCheckBox("Destructors", 15, 80, 100, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0, false);
-	SXNameSapce::Destructors->SetCheck(SXGUI_CHECKBOX_CHECKED);
-	SXNameSapce::Destructors->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::Destructors->SetColorText(0,0,0);
-	SXNameSapce::Destructors->SetColorTextBk(255,255,255);
-	SXNameSapce::Destructors->SetTransparentTextBk(true);
-	SXNameSapce::Destructors->SetColorBrush(220,220,220);
-	SXNameSapce::Comments = SXGUICrCheckBox("Comments", 15, 100, 100, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0, false);
-	SXNameSapce::Comments->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::Comments->SetColorText(0,0,0);
-	SXNameSapce::Comments->SetColorTextBk(255,255,255);
-	SXNameSapce::Comments->SetTransparentTextBk(true);
-	SXNameSapce::Comments->SetColorBrush(220,220,220);
-	SXNameSapce::Inlude = SXGUICrCheckBox("Inlude", 15, 120, 125, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0, false);
-	SXNameSapce::Inlude->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::Inlude->SetColorText(0,0,0);
-	SXNameSapce::Inlude->SetColorTextBk(255,255,255);
-	SXNameSapce::Inlude->SetTransparentTextBk(true);
-	SXNameSapce::Inlude->SetColorBrush(220,220,220);
-	SXNameSapce::DetectedNameSpace = SXGUICrCheckBox("In Name Space", 15, 40, 100, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0, false);
-	SXNameSapce::DetectedNameSpace->SetCheck(SXGUI_CHECKBOX_CHECKED);
-	SXNameSapce::DetectedNameSpace->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::DetectedNameSpace->SetColorText(0,0,0);
-	SXNameSapce::DetectedNameSpace->SetColorTextBk(255,255,255);
-	SXNameSapce::DetectedNameSpace->SetTransparentTextBk(true);
-	SXNameSapce::DetectedNameSpace->SetColorBrush(220,220,220);
-	SXNameSapce::SaveFile = SXGUICrStatic("SaveFile", 7, 161, 58, 16, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0);
-	SXNameSapce::SaveFile->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::SaveFile->SetColorText(0,0,0);
-	SXNameSapce::SaveFile->SetColorTextBk(255,255,255);
-	SXNameSapce::SaveFile->SetTransparentTextBk(true);
-	SXNameSapce::SaveFile->SetColorBrush(220,220,220);
-	SXNameSapce::PathForFile = SXGUICrEdit("PathForFile", 61, 159, 233, 20, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0);
-	SXNameSapce::PathForFile->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::PathForFile->SetColorText(0,0,0);
-	SXNameSapce::PathForFile->SetColorTextBk(255,255,255);
-	SXNameSapce::PathForFile->SetTransparentTextBk(true);
-	SXNameSapce::PathForFile->SetColorBrush(255,255,255);
-	SXNameSapce::ButtonSelectFile = SXGUICrButton("...", 298, 159, 23, 19, SXGUI_BUTTON_IMAGE_NONE, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0);
-	SXNameSapce::ButtonSelectFile->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::ButtonSelectFile->AddHandler(SelectButClick,WM_LBUTTONUP);
-	SXNameSapce::StartOutput = SXGUICrButton("Start output", 160, 51, 134, 77, SXGUI_BUTTON_IMAGE_NONE, SXNameSapce::OutputGUIInFile->GetHWND(), 0, 0);
-	SXNameSapce::StartOutput->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	SXNameSapce::StartOutput->AddHandler(StartButClick,WM_LBUTTONUP);
+	SXNameSapce::OutputGUIInFile = SXGUICrBaseWndEx("OutputGUIInFile", "OutputGUIInFile", ((wrect.right / 2) - 170), ((wrect.bottom / 2) - 115), 340, 230, 0, 0, CreateSolidBrush(RGB(220, 220, 220)), 0, CS_HREDRAW | CS_VREDRAW, WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED, 0, WndProcAllDefault);
+	gui_func::base_handlers::InitHandlerMsg(SXNameSapce::OutputGUIInFile);
+	SXNameSapce::OutputGUIInFile->addHandler(HideSettingsWndClose,WM_CLOSE,0,0,0,0,true);
+	SXNameSapce::NameSpace = SXGUICrStatic("NameSpace", 13, 13, 100, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0);
+	SXNameSapce::NameSpace->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::NameSpace->setColorText(RGB(0, 0, 0));
+	SXNameSapce::NameSpace->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::NameSpace->setTransparentTextBk(true);
+	SXNameSapce::NameSpace->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::SXNameSpace = SXGUICrEdit("SXNameSpace", 119, 11, 199, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0);
+	SXNameSapce::SXNameSpace->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::SXNameSpace->setColorText(RGB(0, 0, 0));
+	SXNameSapce::SXNameSpace->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::SXNameSpace->setTransparentTextBk(true);
+	SXNameSapce::SXNameSpace->setColorBrush(RGB(255, 255, 255));
+	SXNameSapce::Constructors = SXGUICrCheckBox("Constructors", 15, 60, 100, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0, false);
+	SXNameSapce::Constructors->setCheck(SXGUI_CHECKBOX_STATE_CHECKED);
+	SXNameSapce::Constructors->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::Constructors->setColorText(RGB(0, 0, 0));
+	SXNameSapce::Constructors->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::Constructors->setTransparentTextBk(true);
+	SXNameSapce::Constructors->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::Destructors = SXGUICrCheckBox("Destructors", 15, 80, 100, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0, false);
+	SXNameSapce::Destructors->setCheck(SXGUI_CHECKBOX_STATE_CHECKED);
+	SXNameSapce::Destructors->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::Destructors->setColorText(RGB(0, 0, 0));
+	SXNameSapce::Destructors->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::Destructors->setTransparentTextBk(true);
+	SXNameSapce::Destructors->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::Comments = SXGUICrCheckBox("Comments", 15, 100, 100, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0, false);
+	SXNameSapce::Comments->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::Comments->setColorText(RGB(0, 0, 0));
+	SXNameSapce::Comments->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::Comments->setTransparentTextBk(true);
+	SXNameSapce::Comments->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::Inlude = SXGUICrCheckBox("Inlude", 15, 120, 125, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0, false);
+	SXNameSapce::Inlude->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::Inlude->setColorText(RGB(0, 0, 0));
+	SXNameSapce::Inlude->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::Inlude->setTransparentTextBk(true);
+	SXNameSapce::Inlude->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::DetectedNameSpace = SXGUICrCheckBox("In Name Space", 15, 40, 100, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0, false);
+	SXNameSapce::DetectedNameSpace->setCheck(SXGUI_CHECKBOX_STATE_CHECKED);
+	SXNameSapce::DetectedNameSpace->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::DetectedNameSpace->setColorText(RGB(0, 0, 0));
+	SXNameSapce::DetectedNameSpace->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::DetectedNameSpace->setTransparentTextBk(true);
+	SXNameSapce::DetectedNameSpace->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::SaveFile = SXGUICrStatic("SaveFile", 7, 161, 58, 16, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0);
+	SXNameSapce::SaveFile->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::SaveFile->setColorText(RGB(0, 0, 0));
+	SXNameSapce::SaveFile->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::SaveFile->setTransparentTextBk(true);
+	SXNameSapce::SaveFile->setColorBrush(RGB(220, 220, 220));
+	SXNameSapce::PathForFile = SXGUICrEdit("PathForFile", 61, 159, 233, 20, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0);
+	SXNameSapce::PathForFile->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::PathForFile->setColorText(RGB(0, 0, 0));
+	SXNameSapce::PathForFile->setColorTextBk(RGB(255, 255, 255));
+	SXNameSapce::PathForFile->setTransparentTextBk(true);
+	SXNameSapce::PathForFile->setColorBrush(RGB(255,255,255));
+	SXNameSapce::ButtonSelectFile = SXGUICrButton("...", 298, 159, 23, 19, SXGUI_BUTTON_IMAGE_NONE, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0);
+	SXNameSapce::ButtonSelectFile->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::ButtonSelectFile->addHandler(SelectButClick,WM_LBUTTONUP);
+	SXNameSapce::StartOutput = SXGUICrButton("Start output", 160, 51, 134, 77, SXGUI_BUTTON_IMAGE_NONE, SXNameSapce::OutputGUIInFile->getHWND(), 0, 0);
+	SXNameSapce::StartOutput->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	SXNameSapce::StartOutput->addHandler(StartButClick,WM_LBUTTONUP);
 }
 void SXNameSapce::DeleteAllElements()
 {
diff --git a/source/sxwincreator/WindowOutput.h b/source/sxwincreator/WindowOutput.h
new file mode 100644
index 000000000..e43de9453
--- /dev/null
+++ b/source/sxwincreator/WindowOutput.h
@@ -0,0 +1,37 @@
+
+#ifndef __WINDOW_OUTPUT_H
+#define __WINDOW_OUTPUT_H
+
+#include <windows.h>
+#include <SXGUIWinApi/sxgui.h>
+#include "sxwincreator.h"
+#include "sx_param_wnd_data.h"
+
+namespace SXNameSapce
+{
+	extern ISXGUIBaseWnd* OutputGUIInFile;
+	extern ISXGUIStatic* NameSpace;
+	extern ISXGUIEdit* SXNameSpace;
+	extern ISXGUICheckBox* Constructors;
+	extern ISXGUICheckBox* Destructors;
+	extern ISXGUICheckBox* Comments;
+	extern ISXGUICheckBox* Inlude;
+	extern ISXGUICheckBox* DetectedNameSpace;
+	extern ISXGUIStatic* SaveFile;
+	extern ISXGUIEdit* PathForFile;
+	extern ISXGUIButton* ButtonSelectFile;
+	extern ISXGUIButton* StartOutput;
+
+	void InitAllElements();
+
+	void DeleteAllElements();
+
+};
+
+LRESULT StartButClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT SelectButClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT HideSettingsWndClose(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+#endif
\ No newline at end of file
diff --git a/source/sxwincreator/about_sxwincreator.cpp b/source/sxwincreator/about_sxwincreator.cpp
index 340127925..94339a235 100644
--- a/source/sxwincreator/about_sxwincreator.cpp
+++ b/source/sxwincreator/about_sxwincreator.cpp
@@ -1,4 +1,6 @@
 
+#include "about_sxwincreator.h"
+
 namespace AboutSXWinCreator
 {
 	ISXGUIBaseWnd* JobWindow;
@@ -18,11 +20,11 @@ namespace AboutSXWinCreator
 LRESULT HideAboutWndClose(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	ShowWindow(hwnd,SW_HIDE);
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
-	SetActiveWindow(SXMainWndElem::MainWnd->GetHWND());
+	SXMainWndElem::MainWnd->setEnable(true);
+	SXMainWndElem::JobMainWnd->setEnable(true);
+	SXMainWndElem::ParamWnd->setEnable(true);
+	SXMainWndElem::WndLog->setEnable(true);
+	SetActiveWindow(SXMainWndElem::MainWnd->getHWND());
 	return 0;
 }
 
@@ -31,53 +33,53 @@ void AboutSXWinCreator::InitAllElements()
 	RECT wrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
 
-	AboutSXWinCreator::JobWindow = SXGUICrBaseWnd("About_SXWinCreator","About_SXWinCreator",0,0,((wrect.right/2) - 160),((wrect.bottom/2) - 100),320,200,0,0,CreateSolidBrush(RGB(220,220,220)),0,CS_HREDRAW | CS_VREDRAW,WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED,0,WndProcAllDefault);
-	SXGUIBaseHandlers::InitHandlerMsg(AboutSXWinCreator::JobWindow);
-	AboutSXWinCreator::JobWindow->AddHandler(HideAboutWndClose,WM_CLOSE,0,0,0,0,true);
-	AboutSXWinCreator::StaticVerWinCreatorText = SXGUICrStatic("Current version of SXWinCreator: ", 20, 54, 163, 15, AboutSXWinCreator::JobWindow->GetHWND(), 0, 0);
-	AboutSXWinCreator::StaticVerWinCreatorText->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	AboutSXWinCreator::StaticVerWinCreatorText->SetColorText(0,0,0);
-	AboutSXWinCreator::StaticVerWinCreatorText->SetColorTextBk(255,255,255);
-	AboutSXWinCreator::StaticVerWinCreatorText->SetTransparentTextBk(true);
-	AboutSXWinCreator::StaticVerWinCreatorText->SetColorBrush(220,220,220);
-	AboutSXWinCreator::StaticThisIs = SXGUICrStatic("SXWinCreator - program for the creation of elements WinAPI with library SXGUIWinApi", 48, 10, 210, 30, AboutSXWinCreator::JobWindow->GetHWND(), 0, 0);
-	AboutSXWinCreator::StaticThisIs->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	AboutSXWinCreator::StaticThisIs->SetColorText(0,0,0);
-	AboutSXWinCreator::StaticThisIs->SetColorTextBk(255,255,255);
-	AboutSXWinCreator::StaticThisIs->SetTransparentTextBk(true);
-	AboutSXWinCreator::StaticThisIs->SetColorBrush(220,220,220);
-	AboutSXWinCreator::StaticVerGuiWinApiText = SXGUICrStatic("Current version of SXGUIWinapi:", 20, 74, 162, 15, AboutSXWinCreator::JobWindow->GetHWND(), 0, 0);
-	AboutSXWinCreator::StaticVerGuiWinApiText->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	AboutSXWinCreator::StaticVerGuiWinApiText->SetColorText(0,0,0);
-	AboutSXWinCreator::StaticVerGuiWinApiText->SetColorTextBk(255,255,255);
-	AboutSXWinCreator::StaticVerGuiWinApiText->SetTransparentTextBk(true);
-	AboutSXWinCreator::StaticVerGuiWinApiText->SetColorBrush(220,220,220);
-	AboutSXWinCreator::DevelodepBy = SXGUICrStatic("Developed by the Project S.I.P", 46, 121, 222, 26, AboutSXWinCreator::JobWindow->GetHWND(), 0, 0);
-	AboutSXWinCreator::DevelodepBy->SetFont("Microsoft Sans Serif",-16,0,400,0,0,0);
-	AboutSXWinCreator::DevelodepBy->SetColorText(0,0,0);
-	AboutSXWinCreator::DevelodepBy->SetColorTextBk(220,220,220);
-	AboutSXWinCreator::DevelodepBy->SetTransparentTextBk(true);
-	AboutSXWinCreator::DevelodepBy->SetColorBrush(220,220,220);
-	AboutSXWinCreator::StaticVerWinCreatorVer = SXGUICrStatic("0.9.0", 185, 54, 100, 15, AboutSXWinCreator::JobWindow->GetHWND(), 0, 0);
-	AboutSXWinCreator::StaticVerWinCreatorVer->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	AboutSXWinCreator::StaticVerWinCreatorVer->SetColorText(0,0,0);
-	AboutSXWinCreator::StaticVerWinCreatorVer->SetColorTextBk(255,255,255);
-	AboutSXWinCreator::StaticVerWinCreatorVer->SetTransparentTextBk(true);
-	AboutSXWinCreator::StaticVerWinCreatorVer->SetColorBrush(220,220,220);
-	AboutSXWinCreator::StaticVerGUIWinApiVer = SXGUICrStatic("0.9.81", 185, 74, 100, 15, AboutSXWinCreator::JobWindow->GetHWND(), 0, 0);
-	AboutSXWinCreator::StaticVerGUIWinApiVer->SetFont("MS Shell Dlg",-11,0,400,0,0,0);
-	AboutSXWinCreator::StaticVerGUIWinApiVer->SetColorText(0,0,0);
-	AboutSXWinCreator::StaticVerGUIWinApiVer->SetColorTextBk(255,255,255);
-	AboutSXWinCreator::StaticVerGUIWinApiVer->SetTransparentTextBk(true);
-	AboutSXWinCreator::StaticVerGUIWinApiVer->SetColorBrush(220,220,220);
+	AboutSXWinCreator::JobWindow = SXGUICrBaseWndEx("About_SXWinCreator","About_SXWinCreator",((wrect.right/2) - 160),((wrect.bottom/2) - 100),320,200,0,0,CreateSolidBrush(RGB(220,220,220)),0,CS_HREDRAW | CS_VREDRAW,WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED,0,WndProcAllDefault);
+	gui_func::base_handlers::InitHandlerMsg(AboutSXWinCreator::JobWindow);
+	AboutSXWinCreator::JobWindow->addHandler(HideAboutWndClose,WM_CLOSE,0,0,0,0,true);
+	AboutSXWinCreator::StaticVerWinCreatorText = SXGUICrStatic("Current version of SXWinCreator: ", 20, 54, 163, 15, AboutSXWinCreator::JobWindow->getHWND(), 0, 0);
+	AboutSXWinCreator::StaticVerWinCreatorText->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	AboutSXWinCreator::StaticVerWinCreatorText->setColorText(RGB(0, 0, 0));
+	AboutSXWinCreator::StaticVerWinCreatorText->setColorTextBk(RGB(255, 255, 255));
+	AboutSXWinCreator::StaticVerWinCreatorText->setTransparentTextBk(true);
+	AboutSXWinCreator::StaticVerWinCreatorText->setColorBrush(RGB(220, 220, 220));
+	AboutSXWinCreator::StaticThisIs = SXGUICrStatic("SXWinCreator - program for the creation of elements WinAPI with library SXGUIWinApi", 48, 10, 210, 30, AboutSXWinCreator::JobWindow->getHWND(), 0, 0);
+	AboutSXWinCreator::StaticThisIs->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	AboutSXWinCreator::StaticThisIs->setColorText(RGB(0, 0, 0));
+	AboutSXWinCreator::StaticThisIs->setColorTextBk(RGB(255, 255, 255));
+	AboutSXWinCreator::StaticThisIs->setTransparentTextBk(true);
+	AboutSXWinCreator::StaticThisIs->setColorBrush(RGB(220, 220, 220));
+	AboutSXWinCreator::StaticVerGuiWinApiText = SXGUICrStatic("Current version of SXGUIWinapi:", 20, 74, 162, 15, AboutSXWinCreator::JobWindow->getHWND(), 0, 0);
+	AboutSXWinCreator::StaticVerGuiWinApiText->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	AboutSXWinCreator::StaticVerGuiWinApiText->setColorText(RGB(0, 0, 0));
+	AboutSXWinCreator::StaticVerGuiWinApiText->setColorTextBk(RGB(255, 255, 255));
+	AboutSXWinCreator::StaticVerGuiWinApiText->setTransparentTextBk(true);
+	AboutSXWinCreator::StaticVerGuiWinApiText->setColorBrush(RGB(220, 220, 220));
+	AboutSXWinCreator::DevelodepBy = SXGUICrStatic("Developed by the Project S.I.P", 46, 121, 222, 26, AboutSXWinCreator::JobWindow->getHWND(), 0, 0);
+	AboutSXWinCreator::DevelodepBy->setFont("Microsoft Sans Serif",-16,0,400,0,0,0);
+	AboutSXWinCreator::DevelodepBy->setColorText(RGB(0, 0, 0));
+	AboutSXWinCreator::DevelodepBy->setColorTextBk(RGB(220, 220, 220));
+	AboutSXWinCreator::DevelodepBy->setTransparentTextBk(true);
+	AboutSXWinCreator::DevelodepBy->setColorBrush(RGB(220, 220, 220));
+	AboutSXWinCreator::StaticVerWinCreatorVer = SXGUICrStatic("0.9.0", 185, 54, 100, 15, AboutSXWinCreator::JobWindow->getHWND(), 0, 0);
+	AboutSXWinCreator::StaticVerWinCreatorVer->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	AboutSXWinCreator::StaticVerWinCreatorVer->setColorText(RGB(0, 0, 0));
+	AboutSXWinCreator::StaticVerWinCreatorVer->setColorTextBk(RGB(255, 255, 255));
+	AboutSXWinCreator::StaticVerWinCreatorVer->setTransparentTextBk(true);
+	AboutSXWinCreator::StaticVerWinCreatorVer->setColorBrush(RGB(220, 220, 220));
+	AboutSXWinCreator::StaticVerGUIWinApiVer = SXGUICrStatic("0.9.81", 185, 74, 100, 15, AboutSXWinCreator::JobWindow->getHWND(), 0, 0);
+	AboutSXWinCreator::StaticVerGUIWinApiVer->setFont("MS Shell Dlg",-11,0,400,0,0,0);
+	AboutSXWinCreator::StaticVerGUIWinApiVer->setColorText(RGB(0, 0, 0));
+	AboutSXWinCreator::StaticVerGUIWinApiVer->setColorTextBk(RGB(255, 255, 255));
+	AboutSXWinCreator::StaticVerGUIWinApiVer->setTransparentTextBk(true);
+	AboutSXWinCreator::StaticVerGUIWinApiVer->setColorBrush(RGB(220,220,220));
 }
 void AboutSXWinCreator::DeleteAllElements()
 {
-	SX_SAFE_DELETE(AboutSXWinCreator::JobWindow);
-	SX_SAFE_DELETE(AboutSXWinCreator::StaticVerWinCreatorText);
-	SX_SAFE_DELETE(AboutSXWinCreator::StaticThisIs);
-	SX_SAFE_DELETE(AboutSXWinCreator::StaticVerGuiWinApiText);
-	SX_SAFE_DELETE(AboutSXWinCreator::DevelodepBy);
-	SX_SAFE_DELETE(AboutSXWinCreator::StaticVerWinCreatorVer);
-	SX_SAFE_DELETE(AboutSXWinCreator::StaticVerGUIWinApiVer);
+	mem_delete(AboutSXWinCreator::JobWindow);
+	mem_delete(AboutSXWinCreator::StaticVerWinCreatorText);
+	mem_delete(AboutSXWinCreator::StaticThisIs);
+	mem_delete(AboutSXWinCreator::StaticVerGuiWinApiText);
+	mem_delete(AboutSXWinCreator::DevelodepBy);
+	mem_delete(AboutSXWinCreator::StaticVerWinCreatorVer);
+	mem_delete(AboutSXWinCreator::StaticVerGUIWinApiVer);
 }
diff --git a/source/sxwincreator/about_sxwincreator.h b/source/sxwincreator/about_sxwincreator.h
new file mode 100644
index 000000000..d6bd9fe09
--- /dev/null
+++ b/source/sxwincreator/about_sxwincreator.h
@@ -0,0 +1,29 @@
+
+#ifndef __ABOUT_SXWINCREATOR_H
+#define __ABOUT_SXWINCREATOR_H
+
+#include <SXGUIWinApi/sxgui.h>
+#include "sxwincreator.h"
+
+namespace AboutSXWinCreator
+{
+	extern ISXGUIBaseWnd* JobWindow;
+	extern ISXGUIStatic* StaticVerWinCreatorText;
+	extern ISXGUIStatic* StaticThisIs;
+	extern ISXGUIStatic* StaticVerGuiWinApiText;
+	extern ISXGUIStatic* DevelodepBy;
+	extern ISXGUIStatic* StaticVerWinCreatorVer;
+	extern ISXGUIStatic* StaticVerGUIWinApiVer;
+
+	void InitAllElements();
+
+	void DeleteAllElements();
+};
+
+LRESULT HideAboutWndClose(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+void AboutSXWinCreator::InitAllElements();
+
+void AboutSXWinCreator::DeleteAllElements();
+
+#endif
\ No newline at end of file
diff --git a/source/sxwincreator/callbacks.cpp b/source/sxwincreator/callbacks.cpp
index 22362fd8a..e87cd4a2c 100644
--- a/source/sxwincreator/callbacks.cpp
+++ b/source/sxwincreator/callbacks.cpp
@@ -1,5 +1,5 @@
 
-#pragma once
+#include "callbacks.h"
 
 LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
@@ -34,12 +34,12 @@ LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
 			}*/
 		
 		//���� ����� ������������ � ������ ������ ������ ��� �����������
-		if(msg == WM_MOUSEMOVE && SXMainWndElem::NumActiveElement != -1 && SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND() == hwnd)
+		if(msg == WM_MOUSEMOVE && SXMainWndElem::NumActiveElement != -1 && SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND() == hwnd)
 		{
 			POINT global_pos_cursor;
 			GetCursorPos(&global_pos_cursor);
 			RECT grect;
-			Component->GetWinRect(&grect);
+			Component->getWinRect(&grect);
 				//���� �� ��������� �������� �����������
 				if(HowComDown != 0 && WhereResize == -1)
 				{
@@ -126,7 +126,7 @@ LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
 						else
 						{
 							RECT rect;
-							Component->GetClientRect(&rect);
+							Component->getClientRect(&rect);
 								
 								if(HowComDown == 1)
 								{
@@ -205,7 +205,7 @@ LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
 									rect.left += moveX;
 									rect.right += moveX;									
 								}
-							bool bf = Component->SetClientRect(&rect,true);
+							bool bf = Component->setClientRect(&rect,true);
 							LastPosCursor = global_pos_cursor;
 							InvalidateRect(hwnd,0,1);
 
@@ -238,13 +238,13 @@ LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
 		{
 				for(int i=0;i<SXMainWndElem::CreateElements.size();i++)
 				{
-						if(hwnd == SXMainWndElem::CreateElements[i]->Object->GetHWND())
+						if(hwnd == SXMainWndElem::CreateElements[i]->Object->getHWND())
 						{
 							SXMainWndElem::NumActiveElement = i;
-							SXMainWndElem::ListBoxAllElements->SetSel(i);
+							SXMainWndElem::ListBoxAllElements->setSel(i);
 							//break;
 						}
-					InvalidateRect(SXMainWndElem::CreateElements[i]->Object->GetHWND(),0,1);
+					InvalidateRect(SXMainWndElem::CreateElements[i]->Object->getHWND(),0,1);
 				}
 			
 				if (SXMainWndElem::NumActiveElement != -1)
@@ -260,14 +260,14 @@ LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
 		//� ���� �������� �������
 		//� ��� ���� ������ ��� ��������� � ���� ��������� �������
 		//�� ������������ ��� �����
-		else if(msg == WM_PAINT && SXMainWndElem::NumActiveElement != -1 && SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND() == hwnd)
+		else if(msg == WM_PAINT && SXMainWndElem::NumActiveElement != -1 && SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND() == hwnd)
 		{
 			if (strcmp(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName, "SXGUIButtonImg") == 0)
 				WndProcButtonImgDefault(hwnd, msg, wParam, lParam);
 			else if (strcmp(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName, "SXGUIGroupBox") == 0)
 				WndProcGroupBoxPaint(hwnd, msg, wParam, lParam);
 			else
-					CallWindowProc(Component->OldProc,hwnd, msg, wParam, lParam);
+					CallWindowProc(Component->getPrevWndProc(),hwnd, msg, wParam, lParam);
 
 			HDC hdcp = GetDC(hwnd);
 			RECT clrect;
@@ -298,11 +298,11 @@ LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
 				else if (strcmp(ClassName, "SXGUIGROUPBOX") == 0)
 					WndProcGroupBoxPaint(hwnd, msg, wParam, lParam);
 				else
-					CallWindowProc(Component->OldProc, hwnd, msg, wParam, lParam);
+					CallWindowProc(Component->getPrevWndProc(), hwnd, msg, wParam, lParam);
 			return 1;
 		}
 
-	return CallWindowProc(Component->OldProc, hwnd, msg, wParam, lParam);
+	return CallWindowProc(Component->getPrevWndProc(), hwnd, msg, wParam, lParam);
 }
 
 LRESULT WndProcChildJob2(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -329,7 +329,7 @@ BOOL CALLBACK GroupBoxLButtonDown(HWND hwnd,LPARAM lParam)
 
 				if(((p.x >= rect.left && p.x <= rect.right) && (p.y >= rect.top && p.y <= rect.bottom)))
 				{
-					SendMessage(Component->GetHWND(),WM_LBUTTONDOWN,0,lParam);
+					SendMessage(Component->getHWND(),WM_LBUTTONDOWN,0,lParam);
 					IsFindGroupBox = true;
 				}
 		}
@@ -347,7 +347,7 @@ LRESULT AddElement(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 			WORD yPos   = HIWORD(lParam);
 				for(int i=0;i<SX_WINCREATOR_COUNT_ELEMENT;i++)
 				{
-						if (SXMainWndElem::Elements[i].Object->GetEnable())
+						if (SXMainWndElem::Elements[i].Object->getEnable())
 						{
 							SXCreateElement* Object = new SXCreateElement();
 							Object->SysClassName[0] = 0;
@@ -357,115 +357,115 @@ LRESULT AddElement(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 								if(strcmp(SXMainWndElem::Elements[i].Name,"Button") == 0)
 								{
 									Object->Object = SXGUICrButton(NameElem, xPos, yPos, 100, 20, SXGUI_BUTTON_IMAGE_NONE, hwnd, WndProcChildJob, 0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIButton");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"ImgButton") == 0)
 								{
 									ISXGUIButtonImg* tmpButtonImg = SXGUICrButtonImgLoad("",xPos,yPos,24,24,RGB(0,0,0),RGB(100,100,100),hwnd,WndProcChildJob,0);
-									tmpButtonImg->SetColorFrame(100, 100, 100);
-									tmpButtonImg->SetEnable(true);
-									tmpButtonImg->SetEnableActive(true);
+									tmpButtonImg->setColorFrame(RGB(100, 100, 100));
+									tmpButtonImg->setEnable(true);
+									tmpButtonImg->setActive(true);
 
 									Object->Object = tmpButtonImg;
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIButtonImg");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"Edit") == 0)
 								{
 									Object->Object = SXGUICrEdit(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIEdit");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"CheckBox") == 0)
 								{
 									Object->Object = SXGUICrCheckBox(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0,true);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUICheckBox");
 								}
 
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"ComboBox") == 0)
 								{
-									Object->Object = SXGUICrComboBox(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									Object->Object = SXGUICrComboBox(xPos,yPos,100,20,hwnd,WndProcChildJob,0);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIComboBox");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"GroupBox") == 0)
 								{
 									Object->Object = SXGUICrGroupBox(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIGroupBox");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"ListBox") == 0)
 								{
-									Object->Object = SXGUICrListBox(NameElem,xPos,yPos,100,100,hwnd,WndProcChildJob,0,true);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									Object->Object = SXGUICrListBox(xPos,yPos,100,100,hwnd,WndProcChildJob,0,true);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIListBox");
-									SendMessage(Object->Object->GetHWND(),LB_SETITEMHEIGHT,0,1);
+									SendMessage(Object->Object->getHWND(),LB_SETITEMHEIGHT,0,1);
 								}
 								else if (strcmp(SXMainWndElem::Elements[i].Name, "ListView") == 0)
 								{
-									Object->Object = SXGUICrListView(NameElem, xPos, yPos, 200, 100, hwnd, WndProcChildJob, 0);
-									GetClassName(Object->Object->GetHWND(), Object->SysClassName, 64);
+									Object->Object = SXGUICrListView(xPos, yPos, 200, 100, hwnd, WndProcChildJob, 0);
+									GetClassName(Object->Object->getHWND(), Object->SysClassName, 64);
 									sprintf(Object->SXClassName, "%s", "SXGUIListView");
-									SendMessage(Object->Object->GetHWND(), LB_SETITEMHEIGHT, 0, 1);
+									SendMessage(Object->Object->getHWND(), LB_SETITEMHEIGHT, 0, 1);
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"Memo") == 0)
 								{
 									Object->Object = SXGUICrMemo(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIMemo");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"ProgressBar") == 0)
 								{
 									Object->Object = SXGUICrProgressBar(xPos,yPos,100,20,hwnd,WndProcChildJob,0,true,true);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIProgressBar");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"RadioButton") == 0)
 								{
 									Object->Object = SXGUICrRadioButton(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIRadioButton");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"Static") == 0)
 								{
 									Object->Object = SXGUICrStatic(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIStatic");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"TrackBar") == 0)
 								{
 									Object->Object = SXGUICrTrackBar(NameElem,xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUITrackBar");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"StatusBar") == 0)
 								{
 									Object->Object = SXGUICrStatusBar(NameElem,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIStatusBar");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"ToolBar") == 0)
 								{
 									Object->Object = SXGUICrToolBar(xPos,yPos,100,20,hwnd,WndProcChildJob,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIToolBar");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"UpDown") == 0)
 								{
 									Object->Object = SXGUICrUpDown(xPos,yPos,100,20,hwnd,WndProcChildJob,0,0,0);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIUpDown");
 								}
 								else if(strcmp(SXMainWndElem::Elements[i].Name,"Window") == 0)
 								{
-									Object->Object = SXGUICrBaseWnd(NameElem,NameElem,0,
-																	0,xPos,yPos,200,200,
+									Object->Object = SXGUICrBaseWndEx(NameElem,NameElem,
+																	xPos,yPos,200,200,
 																	0,0,CreateSolidBrush(RGB(200,200,200)),
 																	0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER /*| WS_CAPTION | WS_MAXIMIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX | WS_THICKFRAME*/,
 																	hwnd,WndProcChildJob);
-									GetClassName(Object->Object->GetHWND(),Object->SysClassName,64);
+									GetClassName(Object->Object->getHWND(),Object->SysClassName,64);
 									sprintf(Object->SXClassName,"%s","SXGUIBaseWnd");
 								}
 
@@ -484,7 +484,7 @@ LRESULT AddElement(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 										//������ ������������ ��� ��������� ��������
 										for(int e=0;e<SXMainWndElem::CreateElements.size();e++)
 										{
-											InvalidateRect(SXMainWndElem::CreateElements[e]->Object->GetHWND(),0,1);
+											InvalidateRect(SXMainWndElem::CreateElements[e]->Object->getHWND(),0,1);
 										}
 									IsCreateNewObject = true;
 									
@@ -496,16 +496,16 @@ LRESULT AddElement(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 									//������������ � �������� ������ ���������� ����� ���������� ��������
 									char tmpAddItem[256];
 									sprintf(tmpAddItem,"%s%s%s%s%s",NameElem, " - ",Object->SXClassName," : ",Object->SysClassName);
-									SXMainWndElem::ListBoxAllElements->AddItem(tmpAddItem);
+									SXMainWndElem::ListBoxAllElements->addItem(tmpAddItem);
 
-									int countitem = SXMainWndElem::ListBoxAllElements->GetCountItem();
-									SXMainWndElem::ListBoxAllElements->SetItemData(SXMainWndElem::ListBoxAllElements->GetCountItem()-1,(LPARAM)SXMainWndElem::CreateElements.size()-1);
-									SXMainWndElem::ListBoxAllElements->SetSel(SXMainWndElem::NumActiveElement);
+									int countitem = SXMainWndElem::ListBoxAllElements->getItemCount();
+									SXMainWndElem::ListBoxAllElements->setItemData(SXMainWndElem::ListBoxAllElements->getItemCount() - 1, (LPARAM)SXMainWndElem::CreateElements.size() - 1);
+									SXMainWndElem::ListBoxAllElements->setSel(SXMainWndElem::NumActiveElement);
 
 									//��������� ��� ������
 									//SXUpdateParam::PosSize();
 									InLog("%s","Parameters ParamWnd overwritten, serial number of elements writed (userdata32)");
-									SendMessage(SXMainWndElem::ButtonArrow->GetHWND(),WM_LBUTTONUP,0,0);
+									SendMessage(SXMainWndElem::ButtonArrow->getHWND(),WM_LBUTTONUP,0,0);
 
 									SXMainWndElem::IsCreatedEl = true;
 								}
@@ -518,7 +518,7 @@ LRESULT AddElement(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 				{
 					int tmptmp = SXMainWndElem::NumActiveElement;
 					SXMainWndElem::NumActiveElement = -1;
-					InvalidateRect(SXMainWndElem::CreateElements[tmptmp]->Object->GetHWND(),0,1);
+					InvalidateRect(SXMainWndElem::CreateElements[tmptmp]->Object->getHWND(),0,1);
 					InLog("%s","Elements of job window deactivated (AddElement)");
 				}
 		}
@@ -545,7 +545,7 @@ BOOL CALLBACK GroupBoxMouseMove(HWND hwnd,LPARAM lParam)
 
 				if(((p.x >= rect.left && p.x <= rect.right) && (p.y >= rect.top && p.y <= rect.bottom)))
 				{
-					SendMessage(Component->GetHWND(),WM_MOUSEMOVE,lParam,0);
+					SendMessage(Component->getHWND(),WM_MOUSEMOVE,lParam,0);
 				}
 		}
 	return TRUE;
@@ -560,7 +560,7 @@ BOOL CALLBACK GroupBoxRButtonUp(HWND hwnd,LPARAM lParam)
 		{
 			int Style;
 			Style = GetWindowLong(hwnd,GWL_STYLE);
-			SendMessage(Component->GetHWND(),WM_RBUTTONUP,0,lParam);
+			SendMessage(Component->getHWND(),WM_RBUTTONUP,0,lParam);
 		}
 	return TRUE;
 }
@@ -584,20 +584,20 @@ LRESULT RButtonUp(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
 LRESULT ListBoxAllElementsDBLClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
-	int tmpNumSel = SXMainWndElem::ListBoxAllElements->GetSel();
+	int tmpNumSel = SXMainWndElem::ListBoxAllElements->getSel();
 		if(tmpNumSel != -1)
 		{
-			int tmpNumElem = (SXMainWndElem::ListBoxAllElements->GetItemData(tmpNumSel));
+			int tmpNumElem = (SXMainWndElem::ListBoxAllElements->getItemData(tmpNumSel));
 			SXMainWndElem::NumActiveElement = tmpNumElem;
 
 				for(int i=0;i<SXMainWndElem::CreateElements.size();i++)
-					InvalidateRect(SXMainWndElem::CreateElements[i]->Object->GetHWND(),0,1);
+					InvalidateRect(SXMainWndElem::CreateElements[i]->Object->getHWND(),0,1);
 
-			InvalidateRect(SXMainWndElem::JobMainWnd->GetHWND(),0,1);
+			InvalidateRect(SXMainWndElem::JobMainWnd->getHWND(),0,1);
 			SXUpdateParam::UpdateAll();
 		}
 
-	return CallWindowProc(SXMainWndElem::ListBoxAllElements->OldProc,hwnd, msg, wParam, lParam);
+	return CallWindowProc(SXMainWndElem::ListBoxAllElements->getPrevWndProc(),hwnd, msg, wParam, lParam);
 }
 
 LRESULT InitColorText(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -609,23 +609,23 @@ LRESULT InitColorText(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	COLORREF cust_colors[16];
 	cc.lpCustColors = cust_colors;
 	char bufr[160],bufg[160],bufb[160];
-		if(hwnd == SXMainWndElem::EditParamColorTextR->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextG->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextB->GetHWND())
+		if(hwnd == SXMainWndElem::EditParamColorTextR->getHWND() || hwnd == SXMainWndElem::EditParamColorTextG->getHWND() || hwnd == SXMainWndElem::EditParamColorTextB->getHWND())
 		{
-			SXMainWndElem::EditParamColorTextR->GetText(bufr,4);
-			SXMainWndElem::EditParamColorTextG->GetText(bufg,4);
-			SXMainWndElem::EditParamColorTextB->GetText(bufb,4);
+			SXMainWndElem::EditParamColorTextR->getText(bufr,4);
+			SXMainWndElem::EditParamColorTextG->getText(bufg,4);
+			SXMainWndElem::EditParamColorTextB->getText(bufb,4);
 		}
-		else if(hwnd == SXMainWndElem::EditParamColorTextBKR->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextBKG->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextBKB->GetHWND())
+		else if(hwnd == SXMainWndElem::EditParamColorTextBKR->getHWND() || hwnd == SXMainWndElem::EditParamColorTextBKG->getHWND() || hwnd == SXMainWndElem::EditParamColorTextBKB->getHWND())
 		{
-			SXMainWndElem::EditParamColorTextBKR->GetText(bufr,4);
-			SXMainWndElem::EditParamColorTextBKG->GetText(bufg,4);
-			SXMainWndElem::EditParamColorTextBKB->GetText(bufb,4);
+			SXMainWndElem::EditParamColorTextBKR->getText(bufr,4);
+			SXMainWndElem::EditParamColorTextBKG->getText(bufg,4);
+			SXMainWndElem::EditParamColorTextBKB->getText(bufb,4);
 		}
-		else if(hwnd == SXMainWndElem::EditParamColorBKR->GetHWND() || hwnd == SXMainWndElem::EditParamColorBKG->GetHWND() || hwnd == SXMainWndElem::EditParamColorBKB->GetHWND())
+		else if(hwnd == SXMainWndElem::EditParamColorBKR->getHWND() || hwnd == SXMainWndElem::EditParamColorBKG->getHWND() || hwnd == SXMainWndElem::EditParamColorBKB->getHWND())
 		{
-			SXMainWndElem::EditParamColorBKR->GetText(bufr,4);
-			SXMainWndElem::EditParamColorBKG->GetText(bufg,4);
-			SXMainWndElem::EditParamColorBKB->GetText(bufb,4);
+			SXMainWndElem::EditParamColorBKR->getText(bufr,4);
+			SXMainWndElem::EditParamColorBKG->getText(bufg,4);
+			SXMainWndElem::EditParamColorBKB->getText(bufb,4);
 		}
 	int tmpr=0,tmpg=0,tmpb=0;
 	sscanf(bufr,"%d",&tmpr);
@@ -634,10 +634,10 @@ LRESULT InitColorText(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	cc.rgbResult = RGB(tmpr,tmpg,tmpb);
 	cc.Flags = CC_FULLOPEN | CC_RGBINIT;
  
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
 		if(ChooseColor(&cc)) 
 		{
 				if(cc.rgbResult != RGB(tmpr,tmpg,tmpb))
@@ -649,33 +649,33 @@ LRESULT InitColorText(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 					sprintf(bufg,"%d",tmpg);
 					sprintf(bufb,"%d",tmpb);
 
-						if(hwnd == SXMainWndElem::EditParamColorTextR->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextG->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextB->GetHWND())
+						if(hwnd == SXMainWndElem::EditParamColorTextR->getHWND() || hwnd == SXMainWndElem::EditParamColorTextG->getHWND() || hwnd == SXMainWndElem::EditParamColorTextB->getHWND())
 						{
-							SXMainWndElem::EditParamColorTextR->SetText(bufr);
-							SXMainWndElem::EditParamColorTextG->SetText(bufg);
-							SXMainWndElem::EditParamColorTextB->SetText(bufb);
+							SXMainWndElem::EditParamColorTextR->setText(bufr);
+							SXMainWndElem::EditParamColorTextG->setText(bufg);
+							SXMainWndElem::EditParamColorTextB->setText(bufb);
 							SXUpdateParam::SetColorText();
 						}
-						else if(hwnd == SXMainWndElem::EditParamColorTextBKR->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextBKG->GetHWND() || hwnd == SXMainWndElem::EditParamColorTextBKB->GetHWND())
+						else if(hwnd == SXMainWndElem::EditParamColorTextBKR->getHWND() || hwnd == SXMainWndElem::EditParamColorTextBKG->getHWND() || hwnd == SXMainWndElem::EditParamColorTextBKB->getHWND())
 						{
-							SXMainWndElem::EditParamColorTextBKR->SetText(bufr);
-							SXMainWndElem::EditParamColorTextBKG->SetText(bufg);
-							SXMainWndElem::EditParamColorTextBKB->SetText(bufb);
+							SXMainWndElem::EditParamColorTextBKR->setText(bufr);
+							SXMainWndElem::EditParamColorTextBKG->setText(bufg);
+							SXMainWndElem::EditParamColorTextBKB->setText(bufb);
 							SXUpdateParam::SetColorTextBK();
 						}
-						else if(hwnd == SXMainWndElem::EditParamColorBKR->GetHWND() || hwnd == SXMainWndElem::EditParamColorBKG->GetHWND() || hwnd == SXMainWndElem::EditParamColorBKB->GetHWND())
+						else if(hwnd == SXMainWndElem::EditParamColorBKR->getHWND() || hwnd == SXMainWndElem::EditParamColorBKG->getHWND() || hwnd == SXMainWndElem::EditParamColorBKB->getHWND())
 						{
-							SXMainWndElem::EditParamColorBKR->SetText(bufr);
-							SXMainWndElem::EditParamColorBKG->SetText(bufg);
-							SXMainWndElem::EditParamColorBKB->SetText(bufb);
+							SXMainWndElem::EditParamColorBKR->setText(bufr);
+							SXMainWndElem::EditParamColorBKG->setText(bufg);
+							SXMainWndElem::EditParamColorBKB->setText(bufb);
 							SXUpdateParam::SetColorBK();
 						}
 				}
 		}
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
+	SXMainWndElem::MainWnd->setEnable(true);
+	SXMainWndElem::JobMainWnd->setEnable(true);
+	SXMainWndElem::ParamWnd->setEnable(true);
+	SXMainWndElem::WndLog->setEnable(true);
 
 	return 1;
 }
@@ -686,75 +686,75 @@ LRESULT InputInfoEdit(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 		if(wParam == VK_RETURN)
 		{
 			bool is_execute = false;
-				if(hwnd == SXMainWndElem::EditParamPosX->GetHWND())
+				if(hwnd == SXMainWndElem::EditParamPosX->getHWND())
 				{
 					//InLog("%s","��� ������, ������ ����� ...");
 					SXUpdateParam::SetPosX();
 					is_execute = true;
 				}
-				else if(hwnd == SXMainWndElem::EditParamPosY->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamPosY->getHWND())
 				{
 					SXUpdateParam::SetPosY();
 					is_execute = true;
 				}
-				else if(hwnd == SXMainWndElem::EditParamWidth->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamWidth->getHWND())
 				{
 					SXUpdateParam::SetWidth();
 					is_execute = true;
 				}
-				else if(hwnd == SXMainWndElem::EditParamHeight->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamHeight->getHWND())
 				{
 					SXUpdateParam::SetHeight();
 					is_execute = true;
 				}
-				else if(hwnd == SXMainWndElem::EditParamHintText->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamHintText->getHWND())
 				{
 					SXUpdateParam::SetHintText();
 				}
-				else if(hwnd == SXMainWndElem::EditParamCaption->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamCaption->getHWND())
 				{
 					SXUpdateParam::SetCaption();
 				}
-				else if(hwnd == SXMainWndElem::EditParamVarName->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamVarName->getHWND())
 				{
 					SXUpdateParam::SetVarName();
 				}
 
-				else if(hwnd == SXMainWndElem::EditParamColorBKR->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorBKR->getHWND())
 				{
 					SXUpdateParam::SetColorBK();
 				}
-				else if(hwnd == SXMainWndElem::EditParamColorBKG->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorBKG->getHWND())
 				{
 					SXUpdateParam::SetColorBK();
 				}
-				else if(hwnd == SXMainWndElem::EditParamColorBKB->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorBKB->getHWND())
 				{
 					SXUpdateParam::SetColorBK();
 				}
 
-				else if(hwnd == SXMainWndElem::EditParamColorTextR->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorTextR->getHWND())
 				{
 					SXUpdateParam::SetColorText();
 				}
-				else if(hwnd == SXMainWndElem::EditParamColorTextG->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorTextG->getHWND())
 				{
 					SXUpdateParam::SetColorText();
 				}
-				else if(hwnd == SXMainWndElem::EditParamColorTextB->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorTextB->getHWND())
 				{
 					SXUpdateParam::SetColorText();
 				}
 
-				else if(hwnd == SXMainWndElem::EditParamColorTextBKR->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorTextBKR->getHWND())
 				{
 					SXUpdateParam::SetColorTextBK();
 				}
-				else if(hwnd == SXMainWndElem::EditParamColorTextBKG->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorTextBKG->getHWND())
 				{
 					SXUpdateParam::SetColorTextBK();
 				}
-				else if(hwnd == SXMainWndElem::EditParamColorTextBKB->GetHWND())
+				else if(hwnd == SXMainWndElem::EditParamColorTextBKB->getHWND())
 				{
 					SXUpdateParam::SetColorTextBK();
 				}
@@ -770,27 +770,27 @@ LRESULT InputInfoEdit(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 LRESULT InputInfoComboBox(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	bool is_execute = false;
-		if(hwnd == SXMainWndElem::ComboBoxParamEnabled->GetHWND())
+		if(hwnd == SXMainWndElem::ComboBoxParamEnabled->getHWND())
 		{
 			SXUpdateParam::SetEnable();
 			is_execute = true;
 		}
-		else if(hwnd == SXMainWndElem::ComboBoxParamVisible->GetHWND())
+		else if(hwnd == SXMainWndElem::ComboBoxParamVisible->getHWND())
 		{
 			SXUpdateParam::SetVisible();
 			is_execute = true;
 		}
-		else if(hwnd == SXMainWndElem::ComboBoxParamHintVisible->GetHWND())
+		else if(hwnd == SXMainWndElem::ComboBoxParamHintVisible->getHWND())
 		{
 			SXUpdateParam::SetVisibleHint();
 			is_execute = true;
 		}
-		else if(hwnd == SXMainWndElem::ComboBoxParamTransparentText->GetHWND())
+		else if(hwnd == SXMainWndElem::ComboBoxParamTransparentText->getHWND())
 		{
 			SXUpdateParam::SetTransparentTextBk();
 			is_execute = true;
 		}
-		else if(hwnd == SXMainWndElem::ComboBoxParamParentFont->GetHWND())
+		else if(hwnd == SXMainWndElem::ComboBoxParamParentFont->getHWND())
 		{
 			SXUpdateParam::SetParentFont();
 			is_execute = true;
@@ -811,13 +811,13 @@ LRESULT InputToEditColor(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
 	ISXGUIEdit *Component = dynamic_cast<ISXGUIEdit*>((ISXGUIComponent*)GetWindowLong(hwnd, GWL_USERDATA));// (ISXGUIEdit*)GetWindowLong(hwnd, GWL_USERDATA);
 	char buf[32];
-	Component->GetText(buf,32);
+	Component->getText(buf,32);
 	int numbuf;
 	sscanf(buf,"%d",&numbuf);
 		if(numbuf > 255 || strlen(buf) > 3)
-			Component->SetText("255");
+			Component->setText("255");
 		else if(numbuf < 0 )
-			Component->SetText("0");
+			Component->setText("0");
 	InvalidateRect(hwnd,0,1);
 	return 0;
 }
@@ -842,7 +842,7 @@ LRESULT CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 		if(Notification == BN_CLICKED)
 		{
 			HWND handle_elem = (HWND)(lParam);
-				if(handle_elem == SXMainWndElem::CheckBoxParamWinMenu->GetHWND())
+				if(handle_elem == SXMainWndElem::CheckBoxParamWinMenu->getHWND())
 					SXUpdateParam::SetMenuWindow();
 		}
 			
@@ -873,21 +873,21 @@ void SaveResult()
 	ofn.Flags		= OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
 
 	InLog("%s","Deactivation windows and a dialog box to save the file ...");
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
 		if(GetSaveFileName(&ofn) == TRUE)
 		{
 				if(ofn.nFileExtension == 0 || strcmp(szFileName+ofn.nFileExtension,"bin") != 0)
 					sprintf(szFileName+strlen(szFileName),"%s",".bin");
 			SaveFile(szFileName);
 		}
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
-	SetActiveWindow(SXMainWndElem::MainWnd->GetHWND());
+		SXMainWndElem::MainWnd->setEnable(true);
+		SXMainWndElem::JobMainWnd->setEnable(true);
+		SXMainWndElem::ParamWnd->setEnable(true);
+		SXMainWndElem::WndLog->setEnable(true);
+	SetActiveWindow(SXMainWndElem::MainWnd->getHWND());
 	InLog("%s","Call dialog box to save the file successfully completed, activation window");
 }
 
@@ -916,21 +916,21 @@ void LoadResult()
 	ofn.Flags		= OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
 
 	InLog("%s","Deactivation windows and a dialog box to open the file ...");
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
 		if(GetOpenFileName(&ofn) == TRUE)
 		{
 			CreateNew(false);
 			LoadFile(szFileName);
 			SXMainWndElem::IsLoadedEl = true;
 		}
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
-	SetActiveWindow(SXMainWndElem::MainWnd->GetHWND());
+		SXMainWndElem::MainWnd->setEnable(true);
+		SXMainWndElem::JobMainWnd->setEnable(true);
+		SXMainWndElem::ParamWnd->setEnable(true);
+		SXMainWndElem::WndLog->setEnable(true);
+	SetActiveWindow(SXMainWndElem::MainWnd->getHWND());
 	InLog("%s","Call dialog box to open the file successfully completed, activation window");
 }
 
@@ -947,22 +947,22 @@ void CallLoadResult()
 
 void CallOutputWnd()
 {
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
 
-	SXNameSapce::OutputGUIInFile->Enable(true);
-	SXNameSapce::OutputGUIInFile->Visible(true);
+	SXNameSapce::OutputGUIInFile->setEnable(true);
+	SXNameSapce::OutputGUIInFile->setVisible(true);
 }
 
 void CallAboutSXWinCreator()
 {	
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
-	AboutSXWinCreator::JobWindow->Visible(true);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
+	AboutSXWinCreator::JobWindow->setVisible(true);
 }
 
 LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
@@ -973,42 +973,42 @@ LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 	 //{
 		if(id == ID_VIEW_JOB)
 		{
-				if(!SXMainWndElem::MainMenu->GetCheckedItem(id))
+				if(!SXMainWndElem::MainMenu->getCheckedItem(id))
 				{
-					ShowWindow(SXMainWndElem::JobMainWnd->GetHWND(),SW_SHOW);
-					SetActiveWindow(SXMainWndElem::JobMainWnd->GetHWND());
-					SXMainWndElem::MainMenu->CheckItem(id,true);
+					ShowWindow(SXMainWndElem::JobMainWnd->getHWND(),SW_SHOW);
+					SetActiveWindow(SXMainWndElem::JobMainWnd->getHWND());
+					SXMainWndElem::MainMenu->setCheckItem(id,true);
 				}
 				else
 				{
-					ShowWindow(SXMainWndElem::JobMainWnd->GetHWND(),SW_HIDE);
-					SXMainWndElem::MainMenu->CheckItem(id,false);
+					ShowWindow(SXMainWndElem::JobMainWnd->getHWND(),SW_HIDE);
+					SXMainWndElem::MainMenu->setCheckItem(id,false);
 				}
 		}
 		else if(id == ID_VIEW_PARAM)
 		{
-				if(!SXMainWndElem::MainMenu->GetCheckedItem(id))
+				if(!SXMainWndElem::MainMenu->getCheckedItem(id))
 				{
-					ShowWindow(SXMainWndElem::ParamWnd->GetHWND(),SW_SHOW);
-					SetActiveWindow(SXMainWndElem::ParamWnd->GetHWND());
+					ShowWindow(SXMainWndElem::ParamWnd->getHWND(),SW_SHOW);
+					SetActiveWindow(SXMainWndElem::ParamWnd->getHWND());
 				}
 				else
 				{
-					ShowWindow(SXMainWndElem::ParamWnd->GetHWND(),SW_HIDE);
-					SXMainWndElem::MainMenu->CheckItem(id,false);
+					ShowWindow(SXMainWndElem::ParamWnd->getHWND(),SW_HIDE);
+					SXMainWndElem::MainMenu->setCheckItem(id, false);
 				}
 		}
 		else if(id == ID_VIEW_LOGWINDOW)
 		{
-				if(!SXMainWndElem::MainMenu->GetCheckedItem(id))
+				if(!SXMainWndElem::MainMenu->getCheckedItem(id))
 				{
-					ShowWindow(SXMainWndElem::WndLog->GetHWND(),SW_SHOW);
-					SetActiveWindow(SXMainWndElem::WndLog->GetHWND());
+					ShowWindow(SXMainWndElem::WndLog->getHWND(),SW_SHOW);
+					SetActiveWindow(SXMainWndElem::WndLog->getHWND());
 				}
 				else
 				{
-					ShowWindow(SXMainWndElem::WndLog->GetHWND(),SW_HIDE);
-					SXMainWndElem::MainMenu->CheckItem(id,false);
+					ShowWindow(SXMainWndElem::WndLog->getHWND(),SW_HIDE);
+					SXMainWndElem::MainMenu->setCheckItem(id, false);
 				}
 		}
 	//}
diff --git a/source/sxwincreator/callbacks.h b/source/sxwincreator/callbacks.h
new file mode 100644
index 000000000..773fd7e40
--- /dev/null
+++ b/source/sxwincreator/callbacks.h
@@ -0,0 +1,77 @@
+
+
+#ifndef __CALLBACKS_H
+#define __CALLBACKS_H
+
+#include <windows.h>
+#include <SXGUIWinApi/sxgui.h>
+#include "sxwincreator.h"
+#include "sx_param_wnd_data.h"
+
+LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT WndProcChildJob2(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+//������ �� ���� �� ���� groupbox ��� static
+//bool IsFindGroupBox = false;
+
+BOOL CALLBACK GroupBoxLButtonDown(HWND hwnd, LPARAM lParam);
+
+//��������� ����� ����� ������� ���� �� �������� ����
+LRESULT AddElement(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+BOOL CALLBACK GroupBoxMouseMove(HWND hwnd, LPARAM lParam);
+
+BOOL CALLBACK GroupBoxRButtonUp(HWND hwnd, LPARAM lParam);
+
+
+
+LRESULT MouseMove(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT RButtonUp(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT ListBoxAllElementsDBLClick(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT InitColorText(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+
+LRESULT InputInfoEdit(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT InputInfoComboBox(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT InputToEditColor(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT InitFont(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT InitImageForButtonImg(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT CallWmCommand(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+void SaveResult();
+
+
+
+void LoadResult();
+
+void CallLoadResult();
+
+void CallOutputWnd();
+
+void CallAboutSXWinCreator();
+
+LRESULT ComMenuId(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT MinimuzeWinInsteadClose(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+
+LRESULT TrueExit(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT CallImgNew(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT CallImgSave(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT CallImgLoad(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+LRESULT CallImgBuild(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+#endif
\ No newline at end of file
diff --git a/source/sxwincreator/create_current_gui.cpp b/source/sxwincreator/create_current_gui.cpp
index 77ed85c4c..1744c2f74 100644
--- a/source/sxwincreator/create_current_gui.cpp
+++ b/source/sxwincreator/create_current_gui.cpp
@@ -1,5 +1,5 @@
 
-
+/*
 void CreateCursor()
 {
 	SXMainWndElem::CurSE = LoadCursor(0,IDC_SIZENWSE);
@@ -8,4 +8,4 @@ void CreateCursor()
 
 	SXMainWndElem::CurNS = LoadCursor(0,IDC_SIZENS);
 	SXMainWndElem::CurWE = LoadCursor(0,IDC_SIZEWE);
-}
\ No newline at end of file
+}*/
\ No newline at end of file
diff --git a/source/sxwincreator/sx_param_wnd_data.cpp b/source/sxwincreator/sx_param_wnd_data.cpp
index d57fdd61f..834aa6175 100644
--- a/source/sxwincreator/sx_param_wnd_data.cpp
+++ b/source/sxwincreator/sx_param_wnd_data.cpp
@@ -1,61 +1,5 @@
 
-extern LRESULT CALLBACK WndProcChildJob(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-extern void InLog(const char* format, ...);
-
-namespace SXUpdateParam
-{
-	//��������� ���������� ��������� ��������
-	void PosSize();	// ������� � �������� (x,y width,height)
-	void Caption();
-	void VarName();
-	void Enable();
-	void Visible();
-	void VisibleHint();
-	void HintText();
-	void ColorText();
-	void ColorTextBK();
-	void ColorBK();
-	void TransparentTextBk();
-	void ParentFont();
-	void Font();
-	void MenuWindow();
-
-	void UpdateAll();
-
-	void SetPosX();
-	void SetPosY();
-	void SetWidth();
-	void SetHeight();
-	void SetVisible();
-	void SetEnable();
-	void SetCaption();
-	void SetVarName();
-	void SetVisibleHint();
-	void SetHintText();
-	void SetColorText();
-	void SetColorTextBK();
-	void SetColorBK();
-	void SetTransparentTextBk();
-	void SetParentFont();
-	void SetFont();
-	void SetImgButton();
-	void SetMenuWindow();
-
-	void LockPosSizeBlock();
-	void LockFontBlock();
-	void LockColorBlock();
-	void LockColorTextBlock();
-	void LockImgButton();
-
-	void UnLockPosSizeBlock();
-	void UnLockFontBlock();
-	void UnLockColorBlock();
-	void UnLockColorTextBlock();
-	void UnlockAll();
-	void UnLockImgButton();
-
-	void SetDefaultValue();
-}
+#include "sx_param_wnd_data.h"
 
 void SXUpdateParam::SetDefaultValue()
 {
@@ -64,134 +8,134 @@ void SXUpdateParam::SetDefaultValue()
 
 void SXUpdateParam::LockColorBlock()
 {
-	SXMainWndElem::StaticParamColorText->Enable(false);
-	SXMainWndElem::StaticParamColorBK->Enable(false);
-	SXMainWndElem::StaticParamColorBKText->Enable(false);
-	SXMainWndElem::StaticParamTransparentText->Enable(false);
+	SXMainWndElem::StaticParamColorText->setEnable(false);
+	SXMainWndElem::StaticParamColorBK->setEnable(false);
+	SXMainWndElem::StaticParamColorBKText->setEnable(false);
+	SXMainWndElem::StaticParamTransparentText->setEnable(false);
 
-	SXMainWndElem::EditParamColorTextR->Enable(false);
-	SXMainWndElem::EditParamColorTextG->Enable(false);
-	SXMainWndElem::EditParamColorTextB->Enable(false);
+	SXMainWndElem::EditParamColorTextR->setEnable(false);
+	SXMainWndElem::EditParamColorTextG->setEnable(false);
+	SXMainWndElem::EditParamColorTextB->setEnable(false);
 
-	SXMainWndElem::EditParamColorTextBKR->Enable(false);
-	SXMainWndElem::EditParamColorTextBKG->Enable(false);
-	SXMainWndElem::EditParamColorTextBKB->Enable(false);
+	SXMainWndElem::EditParamColorTextBKR->setEnable(false);
+	SXMainWndElem::EditParamColorTextBKG->setEnable(false);
+	SXMainWndElem::EditParamColorTextBKB->setEnable(false);
 
-	SXMainWndElem::EditParamColorBKR->Enable(false);
-	SXMainWndElem::EditParamColorBKG->Enable(false);
-	SXMainWndElem::EditParamColorBKB->Enable(false);
+	SXMainWndElem::EditParamColorBKR->setEnable(false);
+	SXMainWndElem::EditParamColorBKG->setEnable(false);
+	SXMainWndElem::EditParamColorBKB->setEnable(false);
 
-	SXMainWndElem::ComboBoxParamTransparentText->Enable(false);
+	SXMainWndElem::ComboBoxParamTransparentText->setEnable(false);
 }
 
 void SXUpdateParam::UnLockColorBlock()
 {
-	SXMainWndElem::StaticParamColorText->Enable(true);
-	SXMainWndElem::StaticParamColorBK->Enable(true);
-	SXMainWndElem::StaticParamColorBKText->Enable(true);
-	SXMainWndElem::StaticParamTransparentText->Enable(true);
+	SXMainWndElem::StaticParamColorText->setEnable(true);
+	SXMainWndElem::StaticParamColorBK->setEnable(true);
+	SXMainWndElem::StaticParamColorBKText->setEnable(true);
+	SXMainWndElem::StaticParamTransparentText->setEnable(true);
 
-	SXMainWndElem::EditParamColorTextR->Enable(true);
-	SXMainWndElem::EditParamColorTextG->Enable(true);
-	SXMainWndElem::EditParamColorTextB->Enable(true);
+	SXMainWndElem::EditParamColorTextR->setEnable(true);
+	SXMainWndElem::EditParamColorTextG->setEnable(true);
+	SXMainWndElem::EditParamColorTextB->setEnable(true);
 
-	SXMainWndElem::EditParamColorTextBKR->Enable(true);
-	SXMainWndElem::EditParamColorTextBKG->Enable(true);
-	SXMainWndElem::EditParamColorTextBKB->Enable(true);
+	SXMainWndElem::EditParamColorTextBKR->setEnable(true);
+	SXMainWndElem::EditParamColorTextBKG->setEnable(true);
+	SXMainWndElem::EditParamColorTextBKB->setEnable(true);
 
-	SXMainWndElem::EditParamColorBKR->Enable(true);
-	SXMainWndElem::EditParamColorBKG->Enable(true);
-	SXMainWndElem::EditParamColorBKB->Enable(true);
+	SXMainWndElem::EditParamColorBKR->setEnable(true);
+	SXMainWndElem::EditParamColorBKG->setEnable(true);
+	SXMainWndElem::EditParamColorBKB->setEnable(true);
 
-	SXMainWndElem::ComboBoxParamTransparentText->Enable(true);
+	SXMainWndElem::ComboBoxParamTransparentText->setEnable(true);
 }
 
 void SXUpdateParam::LockColorTextBlock()
 {
-	SXMainWndElem::StaticParamColorText->Enable(false);
-	SXMainWndElem::StaticParamColorBKText->Enable(false);
-	SXMainWndElem::StaticParamTransparentText->Enable(false);
+	SXMainWndElem::StaticParamColorText->setEnable(false);
+	SXMainWndElem::StaticParamColorBKText->setEnable(false);
+	SXMainWndElem::StaticParamTransparentText->setEnable(false);
 
-	SXMainWndElem::EditParamColorTextR->Enable(false);
-	SXMainWndElem::EditParamColorTextG->Enable(false);
-	SXMainWndElem::EditParamColorTextB->Enable(false);
+	SXMainWndElem::EditParamColorTextR->setEnable(false);
+	SXMainWndElem::EditParamColorTextG->setEnable(false);
+	SXMainWndElem::EditParamColorTextB->setEnable(false);
 
-	SXMainWndElem::EditParamColorTextBKR->Enable(false);
-	SXMainWndElem::EditParamColorTextBKG->Enable(false);
-	SXMainWndElem::EditParamColorTextBKB->Enable(false);
+	SXMainWndElem::EditParamColorTextBKR->setEnable(false);
+	SXMainWndElem::EditParamColorTextBKG->setEnable(false);
+	SXMainWndElem::EditParamColorTextBKB->setEnable(false);
 
-	SXMainWndElem::ComboBoxParamTransparentText->Enable(false);
+	SXMainWndElem::ComboBoxParamTransparentText->setEnable(false);
 }
 
 void SXUpdateParam::UnLockColorTextBlock()
 {
-	SXMainWndElem::StaticParamColorText->Enable(true);
-	SXMainWndElem::StaticParamColorBKText->Enable(true);
-	SXMainWndElem::StaticParamTransparentText->Enable(true);
+	SXMainWndElem::StaticParamColorText->setEnable(true);
+	SXMainWndElem::StaticParamColorBKText->setEnable(true);
+	SXMainWndElem::StaticParamTransparentText->setEnable(true);
 
-	SXMainWndElem::EditParamColorTextR->Enable(true);
-	SXMainWndElem::EditParamColorTextG->Enable(true);
-	SXMainWndElem::EditParamColorTextB->Enable(true);
+	SXMainWndElem::EditParamColorTextR->setEnable(true);
+	SXMainWndElem::EditParamColorTextG->setEnable(true);
+	SXMainWndElem::EditParamColorTextB->setEnable(true);
 
-	SXMainWndElem::EditParamColorTextBKR->Enable(true);
-	SXMainWndElem::EditParamColorTextBKG->Enable(true);
-	SXMainWndElem::EditParamColorTextBKB->Enable(true);
+	SXMainWndElem::EditParamColorTextBKR->setEnable(true);
+	SXMainWndElem::EditParamColorTextBKG->setEnable(true);
+	SXMainWndElem::EditParamColorTextBKB->setEnable(true);
 
-	SXMainWndElem::ComboBoxParamTransparentText->Enable(true);
+	SXMainWndElem::ComboBoxParamTransparentText->setEnable(true);
 }
 
 void SXUpdateParam::LockFontBlock()
 {
-	SXMainWndElem::StaticParamFont->Enable(false);
-	SXMainWndElem::StaticParamFontParent->Enable(false);
-	SXMainWndElem::ComboBoxParamParentFont->Enable(false);
-	SXMainWndElem::ButtonParamSelectFont->Enable(false);
+	SXMainWndElem::StaticParamFont->setEnable(false);
+	SXMainWndElem::StaticParamFontParent->setEnable(false);
+	SXMainWndElem::ComboBoxParamParentFont->setEnable(false);
+	SXMainWndElem::ButtonParamSelectFont->setEnable(false);
 }
 
 void SXUpdateParam::UnLockFontBlock()
 {
-	SXMainWndElem::StaticParamFont->Enable(true);
-	SXMainWndElem::StaticParamFontParent->Enable(true);
-	SXMainWndElem::ComboBoxParamParentFont->Enable(true);
-	SXMainWndElem::ButtonParamSelectFont->Enable(true);
+	SXMainWndElem::StaticParamFont->setEnable(true);
+	SXMainWndElem::StaticParamFontParent->setEnable(true);
+	SXMainWndElem::ComboBoxParamParentFont->setEnable(true);
+	SXMainWndElem::ButtonParamSelectFont->setEnable(true);
 }
 
 void SXUpdateParam::LockPosSizeBlock()
 {
-	SXMainWndElem::StaticParamPosX->Enable(false);
-	SXMainWndElem::StaticParamPosY->Enable(false);
-	SXMainWndElem::StaticParamWidth->Enable(false);
-	SXMainWndElem::StaticParamHeight->Enable(false);
-
-	SXMainWndElem::EditParamPosX->Enable(false);
-	SXMainWndElem::EditParamPosY->Enable(false);
-	SXMainWndElem::EditParamWidth->Enable(false);
-	SXMainWndElem::EditParamHeight->Enable(false);
+	SXMainWndElem::StaticParamPosX->setEnable(false);
+	SXMainWndElem::StaticParamPosY->setEnable(false);
+	SXMainWndElem::StaticParamWidth->setEnable(false);
+	SXMainWndElem::StaticParamHeight->setEnable(false);
+
+	SXMainWndElem::EditParamPosX->setEnable(false);
+	SXMainWndElem::EditParamPosY->setEnable(false);
+	SXMainWndElem::EditParamWidth->setEnable(false);
+	SXMainWndElem::EditParamHeight->setEnable(false);
 }
 
 void SXUpdateParam::UnLockPosSizeBlock()
 {
-	SXMainWndElem::StaticParamPosX->Enable(true);
-	SXMainWndElem::StaticParamPosY->Enable(true);
-	SXMainWndElem::StaticParamWidth->Enable(true);
-	SXMainWndElem::StaticParamHeight->Enable(true);
-
-	SXMainWndElem::EditParamPosX->Enable(true);
-	SXMainWndElem::EditParamPosY->Enable(true);
-	SXMainWndElem::EditParamWidth->Enable(true);
-	SXMainWndElem::EditParamHeight->Enable(true);
+	SXMainWndElem::StaticParamPosX->setEnable(true);
+	SXMainWndElem::StaticParamPosY->setEnable(true);
+	SXMainWndElem::StaticParamWidth->setEnable(true);
+	SXMainWndElem::StaticParamHeight->setEnable(true);
+
+	SXMainWndElem::EditParamPosX->setEnable(true);
+	SXMainWndElem::EditParamPosY->setEnable(true);
+	SXMainWndElem::EditParamWidth->setEnable(true);
+	SXMainWndElem::EditParamHeight->setEnable(true);
 }
 
 void SXUpdateParam::LockImgButton()
 {
-	SXMainWndElem::StaticParamImgBLoadImg->Enable(false);
-	SXMainWndElem::ButtomParamImgBLoadImg->Enable(false);
+	SXMainWndElem::StaticParamImgBLoadImg->setEnable(false);
+	SXMainWndElem::ButtomParamImgBLoadImg->setEnable(false);
 }
 
 void SXUpdateParam::UnLockImgButton()
 {
-	SXMainWndElem::StaticParamImgBLoadImg->Enable(true);
-	SXMainWndElem::ButtomParamImgBLoadImg->Enable(true);
+	SXMainWndElem::StaticParamImgBLoadImg->setEnable(true);
+	SXMainWndElem::ButtomParamImgBLoadImg->setEnable(true);
 }
 
 void SXUpdateParam::UnlockAll()
@@ -208,9 +152,9 @@ void SXUpdateParam::UpdateAll()
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
 			char ClassName[256];
-			int error = GetClassName(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND(),ClassName,256);
+			int error = GetClassName(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND(),ClassName,256);
 				//������� ������
-				if (strcmp(ClassName, "SXGUIGROUPBOX") == 0) //strcmp(ClassName, "Button") == 0 && !(GetWindowLong(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND(), GWL_STYLE) & BS_GROUPBOX))
+				if (strcmp(ClassName, "SXGUIGROUPBOX") == 0) //strcmp(ClassName, "Button") == 0 && !(GetWindowLong(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND(), GWL_STYLE) & BS_GROUPBOX))
 				{
 					SXUpdateParam::UnlockAll();
 					//SXUpdateParam::LockColorBlock();
@@ -231,7 +175,7 @@ void SXUpdateParam::UpdateAll()
 				}
 				else if(
 						strcmp(ClassName,"Static") == 0 || 
-						(strcmp(ClassName,"Button") == 0 && GetWindowLong(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND(),GWL_STYLE) & BS_GROUPBOX) ||
+						(strcmp(ClassName,"Button") == 0 && GetWindowLong(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND(),GWL_STYLE) & BS_GROUPBOX) ||
 						strcmp(ClassName,"ListBox") == 0 || 
 						strcmp(ClassName,"Edit") == 0 ||
 						strcmp(ClassName,"ComboBox") == 0
@@ -285,20 +229,20 @@ void SXUpdateParam::PosSize()
 {
 	RECT cr;
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetClientRect(&cr);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getClientRect(&cr);
 		else
-			SXMainWndElem::JobMainWnd->GetClientRect(&cr);
-	//GetWindowRect(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement].Object->GetHWND(),&gr);
+			SXMainWndElem::JobMainWnd->getClientRect(&cr);
+	//GetWindowRect(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement].Object->getHWND(),&gr);
 	char tmp[32];
 	sprintf(tmp,"%d",cr.right - cr.left);
-	SXMainWndElem::EditParamWidth->SetText(tmp);
+	SXMainWndElem::EditParamWidth->setText(tmp);
 	sprintf(tmp,"%d",cr.bottom - cr.top);
-	SXMainWndElem::EditParamHeight->SetText(tmp);
+	SXMainWndElem::EditParamHeight->setText(tmp);
 
 	sprintf(tmp,"%d",cr.left);
-	SXMainWndElem::EditParamPosX->SetText(tmp);
+	SXMainWndElem::EditParamPosX->setText(tmp);
 	sprintf(tmp,"%d",cr.top);
-	SXMainWndElem::EditParamPosY->SetText(tmp);
+	SXMainWndElem::EditParamPosY->setText(tmp);
 }
 
 void SXUpdateParam::Caption()
@@ -307,15 +251,15 @@ void SXUpdateParam::Caption()
 	str[0] = 0;
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
-			SXGUIFuctinon::GetText(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object,str,256);
+			gui_func::text::GetText(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object,str,256);
 				if(str[0] == 0)
 				{
 					sprintf(str,"%s",SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Name);
 				}
 		}
 		else
-			SXMainWndElem::JobMainWnd->GetText(str,256);
-	SXMainWndElem::EditParamCaption->SetText(str);
+			SXMainWndElem::JobMainWnd->getText(str,256);
+	SXMainWndElem::EditParamCaption->setText(str);
 }
 
 void SXUpdateParam::VarName()
@@ -331,51 +275,50 @@ void SXUpdateParam::VarName()
 		}
 		else
 			sprintf(str,"%s",SXMainWndElem::NameJobWnd);
-	SXMainWndElem::EditParamVarName->SetText(str);
+	SXMainWndElem::EditParamVarName->setText(str);
 }
 
 void SXUpdateParam::Enable()
 {
 	bool enable;
 		if(SXMainWndElem::NumActiveElement != -1)
-			enable = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->Enable();
+			enable = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getEnable();
 		else
-			enable = SXMainWndElem::JobMainWnd->Enable();
+			enable = SXMainWndElem::JobMainWnd->getEnable();
 	
-	SXMainWndElem::ComboBoxParamEnabled->SetSel((enable ? 0 : 1));
+	SXMainWndElem::ComboBoxParamEnabled->setSel((enable ? 0 : 1));
 }
 
 void SXUpdateParam::Visible()
 {
 	bool visible;
 		if(SXMainWndElem::NumActiveElement != -1)
-			visible = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->Visible();
+			visible = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getVisible();
 		else
-			visible = SXMainWndElem::JobMainWnd->Visible();
+			visible = SXMainWndElem::JobMainWnd->getVisible();
 	
-	SXMainWndElem::ComboBoxParamVisible->SetSel((visible ? 0 : 1));
+	SXMainWndElem::ComboBoxParamVisible->setSel((visible ? 0 : 1));
 }
 
 void SXUpdateParam::VisibleHint()
 {
 	bool visible;
 		if(SXMainWndElem::NumActiveElement != -1)
-			visible = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->ShowHint();
+			visible = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getShowHint();
 		else
-			visible = SXMainWndElem::JobMainWnd->ShowHint();
+			visible = SXMainWndElem::JobMainWnd->getShowHint();
 	
-	SXMainWndElem::ComboBoxParamHintVisible->SetSel((visible ? 0 : 1));
+	SXMainWndElem::ComboBoxParamHintVisible->setSel((visible ? 0 : 1));
 }
 
 void SXUpdateParam::HintText()
 {
-	char str[1024];
-	str[0] = 0;
+	const char *str = 0;
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHintText(str);
+			str = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHintText();
 		else
-			SXMainWndElem::JobMainWnd->GetHintText(str);
-	SXMainWndElem::EditParamHintText->SetText(str);
+			str = SXMainWndElem::JobMainWnd->getHintText();
+	SXMainWndElem::EditParamHintText->setText(str);
 }
 
 void SXUpdateParam::ColorText()
@@ -383,13 +326,13 @@ void SXUpdateParam::ColorText()
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
 			char bufr[16],bufg[16],bufb[16];
-			DWORD color = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetColorText();
+			DWORD color = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getColorText();
 			sprintf(bufr, "%d", GetRValue(color));
 			sprintf(bufg, "%d", GetGValue(color));
 			sprintf(bufb, "%d", GetBValue(color));
-			SXMainWndElem::EditParamColorTextR->SetText(bufr);
-			SXMainWndElem::EditParamColorTextG->SetText(bufg);
-			SXMainWndElem::EditParamColorTextB->SetText(bufb);
+			SXMainWndElem::EditParamColorTextR->setText(bufr);
+			SXMainWndElem::EditParamColorTextG->setText(bufg);
+			SXMainWndElem::EditParamColorTextB->setText(bufb);
 		}
 }
 
@@ -398,13 +341,13 @@ void SXUpdateParam::ColorTextBK()
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
 			char bufr[16],bufg[16],bufb[16];
-			DWORD color = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetColorTextBk();
+			DWORD color = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getColorTextBk();
 			sprintf(bufr, "%d", GetRValue(color));
 			sprintf(bufg, "%d", GetGValue(color));
 			sprintf(bufb, "%d", GetBValue(color));
-			SXMainWndElem::EditParamColorTextBKR->SetText(bufr);
-			SXMainWndElem::EditParamColorTextBKG->SetText(bufg);
-			SXMainWndElem::EditParamColorTextBKB->SetText(bufb);
+			SXMainWndElem::EditParamColorTextBKR->setText(bufr);
+			SXMainWndElem::EditParamColorTextBKG->setText(bufg);
+			SXMainWndElem::EditParamColorTextBKB->setText(bufb);
 		}
 }
 
@@ -414,27 +357,27 @@ void SXUpdateParam::ColorBK()
 	DWORD color;
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
-			color = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetColorBrush();
+			color = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getColorBrush();
 		}
 		else
 		{
-			color = SXMainWndElem::JobMainWnd->GetColorBrush();
+			color = SXMainWndElem::JobMainWnd->getColorBrush();
 		}
 		sprintf(bufr, "%d", GetRValue(color));
 		sprintf(bufg, "%d", GetGValue(color));
 		sprintf(bufb, "%d", GetBValue(color));
-	SXMainWndElem::EditParamColorBKR->SetText(bufr);
-	SXMainWndElem::EditParamColorBKG->SetText(bufg);
-	SXMainWndElem::EditParamColorBKB->SetText(bufb);
+	SXMainWndElem::EditParamColorBKR->setText(bufr);
+	SXMainWndElem::EditParamColorBKG->setText(bufg);
+	SXMainWndElem::EditParamColorBKB->setText(bufb);
 }
 
 void SXUpdateParam::TransparentTextBk()
 {
 	bool ttbk = false;
 		if(SXMainWndElem::NumActiveElement != -1)
-			ttbk = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetTransparentTextBk();
+			ttbk = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getTransparentTextBk();
 	
-	SXMainWndElem::ComboBoxParamTransparentText->SetSel((ttbk ? 0 : 1));
+	SXMainWndElem::ComboBoxParamTransparentText->setSel((ttbk ? 0 : 1));
 }
 
 /*void SXUpdateParam::ParentFont()
@@ -443,7 +386,7 @@ void SXUpdateParam::TransparentTextBk()
 		if(SXMainWndElem::NumActiveElement != -1)
 			pf = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->IsParentFont();
 	
-	SXMainWndElem::ComboBoxParamParentFont->SetSel((pf ? 0 : 1));
+	SXMainWndElem::ComboBoxParamParentFont->setSel((pf ? 0 : 1));
 }*/
 
 void SXUpdateParam::Font()
@@ -451,10 +394,10 @@ void SXUpdateParam::Font()
 	
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
-			HFONT hfont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetFont();
+			HFONT hfont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHFont();
 				if(hfont == 0)
 				{
-					SXMainWndElem::ButtonParamSelectFont->SetText("System font ...");
+					SXMainWndElem::ButtonParamSelectFont->setText("System font ...");
 				}
 				else
 				{
@@ -467,7 +410,7 @@ void SXUpdateParam::Font()
 					font_size = (font_size < 0) ? - font_size : font_size;
 					ReleaseDC(NULL, hDC);
 					sprintf(buf,"%s%s%d",lf.lfFaceName,", ",font_size);
-					SXMainWndElem::ButtonParamSelectFont->SetText(buf);
+					SXMainWndElem::ButtonParamSelectFont->setText(buf);
 				}
 		}
 }
@@ -477,7 +420,7 @@ void SXUpdateParam::ParentFont()
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
 			HFONT defgui = (HFONT)GetStockObject(/*ANSI_VAR_FONT*/ANSI_VAR_FONT);
-			HFONT hfont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetFont();
+			HFONT hfont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHFont();
 			
 			/*LOGFONT LogFontDefGUI,LogFontCurrent;
 			ZeroMemory(&LogFontDefGUI,sizeof(&LogFontDefGUI));
@@ -486,7 +429,7 @@ void SXUpdateParam::ParentFont()
 			GetObject(hfont, sizeof(LOGFONT), &LogFontCurrent);*/
 				if(hfont == 0)
 				{
-					SXMainWndElem::ComboBoxParamParentFont->SetSel(0);
+					SXMainWndElem::ComboBoxParamParentFont->setSel(0);
 				}
 				else if(defgui == hfont
 							/*strcmp(LogFontDefGUI.lfFaceName,LogFontCurrent.lfFaceName) == 0 &&
@@ -498,11 +441,11 @@ void SXUpdateParam::ParentFont()
 							LogFontDefGUI.lfStrikeOut == LogFontCurrent.lfStrikeOut*/
 							)
 				{
-					SXMainWndElem::ComboBoxParamParentFont->SetSel(1);
+					SXMainWndElem::ComboBoxParamParentFont->setSel(1);
 				}
 				else
 				{
-					SXMainWndElem::ComboBoxParamParentFont->SetSel(2);
+					SXMainWndElem::ComboBoxParamParentFont->setSel(2);
 				}
 			//DeleteObject(hfont);
 			DeleteObject(defgui);
@@ -520,13 +463,13 @@ void SXUpdateParam::SetPosX()
 {
 	RECT cr;
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetClientRect(&cr);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getClientRect(&cr);
 		else
-			SXMainWndElem::JobMainWnd->GetClientRect(&cr);
+			SXMainWndElem::JobMainWnd->getClientRect(&cr);
 	RECT dtrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &dtrect, 0);
 	char posxtext[16];
-	SXMainWndElem::EditParamPosX->GetText(posxtext,16);
+	SXMainWndElem::EditParamPosX->getText(posxtext,16);
 	int posxnum = 0;
 	sscanf(posxtext,"%d",&posxnum);
 	int tmpright = (cr.right - cr.left) + posxnum;
@@ -540,22 +483,22 @@ void SXUpdateParam::SetPosX()
 	cr.left = tmpleft;
 
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetClientRect(&cr,true);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setClientRect(&cr,true);
 		else
-			SXMainWndElem::JobMainWnd->SetClientRect(&cr,true);
+			SXMainWndElem::JobMainWnd->setClientRect(&cr,true);
 }
 
 void SXUpdateParam::SetPosY()
 {
 	RECT cr;
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetClientRect(&cr);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getClientRect(&cr);
 		else
-			SXMainWndElem::JobMainWnd->GetClientRect(&cr);
+			SXMainWndElem::JobMainWnd->getClientRect(&cr);
 	RECT dtrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &dtrect, 0);
 	char posytext[16];
-	SXMainWndElem::EditParamPosY->GetText(posytext,16);
+	SXMainWndElem::EditParamPosY->getText(posytext,16);
 	int posynum = 0;
 	sscanf(posytext,"%d",&posynum);
 	int tmpbottom = (cr.bottom - cr.top) + posynum;
@@ -569,22 +512,22 @@ void SXUpdateParam::SetPosY()
 	cr.top = tmptop;
 
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetClientRect(&cr,true);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setClientRect(&cr,true);
 		else
-			SXMainWndElem::JobMainWnd->SetClientRect(&cr,true);
+			SXMainWndElem::JobMainWnd->setClientRect(&cr,true);
 }
 
 void SXUpdateParam::SetWidth()
 {
 	RECT cr;
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetClientRect(&cr);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getClientRect(&cr);
 		else
-			SXMainWndElem::JobMainWnd->GetClientRect(&cr);
+			SXMainWndElem::JobMainWnd->getClientRect(&cr);
 	RECT dtrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &dtrect, 0);
 	char widthtext[16];
-	SXMainWndElem::EditParamWidth->GetText(widthtext,16);
+	SXMainWndElem::EditParamWidth->getText(widthtext,16);
 	int widthnum = 0;
 	sscanf(widthtext,"%d",&widthnum);
 		if(widthnum + cr.left > dtrect.right)
@@ -592,22 +535,22 @@ void SXUpdateParam::SetWidth()
 	cr.right = widthnum + cr.left;
 
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetClientRect(&cr,true);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setClientRect(&cr,true);
 		else
-			SXMainWndElem::JobMainWnd->SetClientRect(&cr,true);
+			SXMainWndElem::JobMainWnd->setClientRect(&cr,true);
 }
 
 void SXUpdateParam::SetHeight()
 {
 	RECT cr;
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetClientRect(&cr);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getClientRect(&cr);
 		else
-			SXMainWndElem::JobMainWnd->GetClientRect(&cr);
+			SXMainWndElem::JobMainWnd->getClientRect(&cr);
 	RECT dtrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &dtrect, 0);
 	char heighttext[16];
-	SXMainWndElem::EditParamHeight->GetText(heighttext,16);
+	SXMainWndElem::EditParamHeight->getText(heighttext,16);
 	int heightnum = 0;
 	sscanf(heighttext,"%d",&heightnum);
 		if(heightnum + cr.top > dtrect.bottom)
@@ -615,34 +558,34 @@ void SXUpdateParam::SetHeight()
 	cr.bottom = heightnum + cr.top;
 
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetClientRect(&cr,true);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setClientRect(&cr,true);
 		else
-			SXMainWndElem::JobMainWnd->SetClientRect(&cr,true);
+			SXMainWndElem::JobMainWnd->setClientRect(&cr,true);
 }
 
 void SXUpdateParam::SetVisible()
 {
-	int sel = SXMainWndElem::ComboBoxParamVisible->GetSel();
+	int sel = SXMainWndElem::ComboBoxParamVisible->getSel();
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->Visible(sel==0 ? true : false);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setVisible(sel==0 ? true : false);
 		else
-			SXMainWndElem::JobMainWnd->Visible(sel==0 ? true : false);
+			SXMainWndElem::JobMainWnd->setVisible(sel==0 ? true : false);
 }
 
 void SXUpdateParam::SetEnable()
 {
-	int sel = SXMainWndElem::ComboBoxParamEnabled->GetSel();
+	int sel = SXMainWndElem::ComboBoxParamEnabled->getSel();
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->Enable(sel==0 ? true : false);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setEnable(sel==0 ? true : false);
 		else
-			SXMainWndElem::JobMainWnd->Enable(sel==0 ? true : false);
+			SXMainWndElem::JobMainWnd->setEnable(sel==0 ? true : false);
 }
 
 void SXUpdateParam::SetCaption()
 {
 	char str[256];
 	str[0] = 0;
-	SXMainWndElem::EditParamCaption->GetText(str,256);
+	SXMainWndElem::EditParamCaption->getText(str,256);
 		//���� ���� ������ ��� ������� �� ��������
 		//�� ������ ����������� �����
 		//�� ����������� ������ ���
@@ -652,15 +595,15 @@ void SXUpdateParam::SetCaption()
 		{
 				if(SXMainWndElem::NumActiveElement != -1)
 				{
-					SXGUIFuctinon::SetText(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object,str);
+					gui_func::text::SetText(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object, str);
 					/*sprintf(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Name,"%s",str);
 					char tmpAddItem[256];
 					sprintf(tmpAddItem,"%s%s%s%s%s",str, " - ",SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName," : ",SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SysClassName);
-					SXMainWndElem::ListBoxAllElements->SetTextItem(SXMainWndElem::NumActiveElement,tmpAddItem);
-					SXMainWndElem::ListBoxAllElements->SetSel(SXMainWndElem::NumActiveElement);*/
+					SXMainWndElem::ListBoxAllElements->setTextItem(SXMainWndElem::NumActiveElement,tmpAddItem);
+					SXMainWndElem::ListBoxAllElements->setSel(SXMainWndElem::NumActiveElement);*/
 				}
 				else
-					SXMainWndElem::JobMainWnd->SetText(str);
+					SXMainWndElem::JobMainWnd->setText(str);
 		}
 }
 
@@ -668,7 +611,7 @@ void SXUpdateParam::SetVarName()
 {
 	char str[256];
 	str[0] = 0;
-	SXMainWndElem::EditParamVarName->GetText(str,256);
+	SXMainWndElem::EditParamVarName->getText(str,256);
 		//���� ���� ������ ��� ������� �� ��������
 		//�� ������ ����������� �����
 		//�� ����������� ������ ���
@@ -678,41 +621,41 @@ void SXUpdateParam::SetVarName()
 		{
 				if(SXMainWndElem::NumActiveElement != -1)
 				{
-					//SXGUIFuctinon::SetText(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object,str);
+					//gui_func::text::SetText(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object,str);
 					sprintf(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Name,"%s",str);
 					char tmpAddItem[256];
 					sprintf(tmpAddItem,"%s%s%s%s%s",str, " - ",SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName," : ",SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SysClassName);
-					SXMainWndElem::ListBoxAllElements->SetTextItem(SXMainWndElem::NumActiveElement,tmpAddItem);
-					SXMainWndElem::ListBoxAllElements->SetSel(SXMainWndElem::NumActiveElement);
+					SXMainWndElem::ListBoxAllElements->setItemText(SXMainWndElem::NumActiveElement, tmpAddItem);
+					SXMainWndElem::ListBoxAllElements->setSel(SXMainWndElem::NumActiveElement);
 				}
 				else
-					sprintf(SXMainWndElem::NameJobWnd,"%s",str);//SXMainWndElem::JobMainWnd->SetText(str);
+					sprintf(SXMainWndElem::NameJobWnd,"%s",str);//SXMainWndElem::JobMainWnd->setText(str);
 		}
 }
 
 void SXUpdateParam::SetVisibleHint()
 {
-	int sel = SXMainWndElem::ComboBoxParamHintVisible->GetSel();
+	int sel = SXMainWndElem::ComboBoxParamHintVisible->getSel();
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->ShowHint(sel==0 ? true : false);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setShowHint(sel==0 ? true : false);
 		else
-			SXMainWndElem::JobMainWnd->ShowHint(sel==0 ? true : false);
+			SXMainWndElem::JobMainWnd->setShowHint(sel==0 ? true : false);
 }
 
 void SXUpdateParam::SetHintText()
 {
 	char str[1024];
-	SXMainWndElem::EditParamHintText->GetText(str,1024);
-	int sel = SXMainWndElem::ComboBoxParamHintVisible->GetSel();
+	SXMainWndElem::EditParamHintText->getText(str,1024);
+	int sel = SXMainWndElem::ComboBoxParamHintVisible->getSel();
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetHintText(str);
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->ShowHint(sel==0 ? true : false);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setHintText(str);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setShowHint(sel==0 ? true : false);
 		}
 		else
 		{
-			SXMainWndElem::JobMainWnd->SetHintText(str);
-			SXMainWndElem::JobMainWnd->ShowHint(sel==0 ? true : false);
+			SXMainWndElem::JobMainWnd->setHintText(str);
+			SXMainWndElem::JobMainWnd->setShowHint(sel==0 ? true : false);
 		}
 }
 
@@ -720,37 +663,37 @@ void SXUpdateParam::SetColorText()
 {
 	char bufr[16],bufg[16],bufb[16];
 	int numr,numg,numb;
-	SXMainWndElem::EditParamColorTextR->GetText(bufr,4);
-	SXMainWndElem::EditParamColorTextG->GetText(bufg,4);
-	SXMainWndElem::EditParamColorTextB->GetText(bufb,4);
+	SXMainWndElem::EditParamColorTextR->getText(bufr,4);
+	SXMainWndElem::EditParamColorTextG->getText(bufg,4);
+	SXMainWndElem::EditParamColorTextB->getText(bufb,4);
 	sscanf(bufr,"%d",&numr);
 	sscanf(bufg,"%d",&numg);
 	sscanf(bufb,"%d",&numb);
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetColorText(numr,numg,numb);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setColorText(RGB(numr, numg, numb));
 }
 
 void SXUpdateParam::SetColorTextBK()
 {
 	char bufr[16],bufg[16],bufb[16];
 	int numr,numg,numb;
-	SXMainWndElem::EditParamColorTextBKR->GetText(bufr,4);
-	SXMainWndElem::EditParamColorTextBKG->GetText(bufg,4);
-	SXMainWndElem::EditParamColorTextBKB->GetText(bufb,4);
+	SXMainWndElem::EditParamColorTextBKR->getText(bufr,4);
+	SXMainWndElem::EditParamColorTextBKG->getText(bufg,4);
+	SXMainWndElem::EditParamColorTextBKB->getText(bufb,4);
 	sscanf(bufr,"%d",&numr);
 	sscanf(bufg,"%d",&numg);
 	sscanf(bufb,"%d",&numb);
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetColorTextBk(numr,numg,numb);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setColorTextBk(RGB(numr, numg, numb));
 }
 
 void SXUpdateParam::SetColorBK()
 {
 	char bufr[16],bufg[16],bufb[16];
 	int numr,numg,numb;
-	SXMainWndElem::EditParamColorBKR->GetText(bufr,4);
-	SXMainWndElem::EditParamColorBKG->GetText(bufg,4);
-	SXMainWndElem::EditParamColorBKB->GetText(bufb,4);
+	SXMainWndElem::EditParamColorBKR->getText(bufr,4);
+	SXMainWndElem::EditParamColorBKG->getText(bufg,4);
+	SXMainWndElem::EditParamColorBKB->getText(bufb,4);
 	sscanf(bufr,"%d",&numr);
 	sscanf(bufg,"%d",&numg);
 	sscanf(bufb,"%d",&numb);
@@ -758,29 +701,29 @@ void SXUpdateParam::SetColorBK()
 		if(SXMainWndElem::NumActiveElement != -1)
 		{
 				if(strcmp(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName,"SXGUIBaseWnd") == 0)
-					dynamic_cast<ISXGUIBaseWnd*>(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object)->SetColorBrush(numr, numg, numb);
+					dynamic_cast<ISXGUIBaseWnd*>(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object)->setColorBrush(RGB(numr, numg, numb));
 				else
-					SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetColorBrush(numr,numg,numb);
+					SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setColorBrush(RGB(numr, numg, numb));
 		}
 		else
-			SXMainWndElem::JobMainWnd->SetColorBrush(numr,numg,numb);
+			SXMainWndElem::JobMainWnd->setColorBrush(RGB(numr, numg, numb));
 }
 
 void SXUpdateParam::SetTransparentTextBk()
 {
-	int sel = SXMainWndElem::ComboBoxParamTransparentText->GetSel();
+	int sel = SXMainWndElem::ComboBoxParamTransparentText->getSel();
 		if(SXMainWndElem::NumActiveElement != -1)
-			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetTransparentTextBk(sel==0 ? true : false);
+			SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setTransparentTextBk(sel==0 ? true : false);
 }
 
 void SXUpdateParam::SetParentFont()
 {
-	int sel = SXMainWndElem::ComboBoxParamParentFont->GetSel();
+	int sel = SXMainWndElem::ComboBoxParamParentFont->getSel();
 		if(SXMainWndElem::NumActiveElement != -1 && sel == 0)
 		{	
-			HFONT ParentFont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->ParentFont();
+			HFONT ParentFont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getParentHFont();
 
-			SendMessage(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND(),WM_SETFONT,WPARAM(ParentFont),1);
+			SendMessage(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND(),WM_SETFONT,WPARAM(ParentFont),1);
 			DeleteObject(ParentFont);
 
 			SXUpdateParam::Font();
@@ -789,7 +732,7 @@ void SXUpdateParam::SetParentFont()
 		{
 			HFONT DefaultFont = (HFONT) GetStockObject(ANSI_VAR_FONT);
 
-			SendMessage(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND(),WM_SETFONT,WPARAM(DefaultFont),1);
+			SendMessage(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND(),WM_SETFONT,WPARAM(DefaultFont),1);
 			DeleteObject(DefaultFont);
 
 			SXUpdateParam::Font();
@@ -804,7 +747,7 @@ void SXUpdateParam::SetFont()
 {
 	HFONT hfont;
 		if(SXMainWndElem::NumActiveElement != -1)
-			hfont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetFont();
+			hfont = SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHFont();
 	
 	CHOOSEFONT cf;
 
@@ -818,26 +761,26 @@ void SXUpdateParam::SetFont()
 	cf.lpLogFont = &lf;
 	cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
 
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
 		if(ChooseFont(&cf))
 		{
 				if(SXMainWndElem::NumActiveElement != -1)
-					SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->SetFont(lf.lfFaceName,lf.lfHeight,lf.lfWidth,lf.lfWeight,lf.lfItalic,lf.lfUnderline,lf.lfStrikeOut);
+					SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->setFont(lf.lfFaceName,lf.lfHeight,lf.lfWidth,lf.lfWeight,lf.lfItalic,lf.lfUnderline,lf.lfStrikeOut);
 			char buf[256];
 			HDC hDC = ::GetDC(NULL);
 			int font_size = -MulDiv(lf.lfHeight, 72, GetDeviceCaps(hDC, LOGPIXELSY));
 			font_size = (font_size < 0) ? - font_size : font_size;
 			ReleaseDC(NULL, hDC);
 			sprintf(buf,"%s%s%d",lf.lfFaceName,", ",font_size);
-			SXMainWndElem::ButtonParamSelectFont->SetText(buf);
+			SXMainWndElem::ButtonParamSelectFont->setText(buf);
 		}
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
+	SXMainWndElem::MainWnd->setEnable(true);
+	SXMainWndElem::JobMainWnd->setEnable(true);
+	SXMainWndElem::ParamWnd->setEnable(true);
+	SXMainWndElem::WndLog->setEnable(true);
 }
 
 void SXUpdateParam::SetImgButton()
@@ -862,35 +805,35 @@ void SXUpdateParam::SetImgButton()
 
 	ofn.Flags		= OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
 
-	SXMainWndElem::MainWnd->Enable(false);
-	SXMainWndElem::JobMainWnd->Enable(false);
-	SXMainWndElem::ParamWnd->Enable(false);
-	SXMainWndElem::WndLog->Enable(false);
+	SXMainWndElem::MainWnd->setEnable(false);
+	SXMainWndElem::JobMainWnd->setEnable(false);
+	SXMainWndElem::ParamWnd->setEnable(false);
+	SXMainWndElem::WndLog->setEnable(false);
 		if(GetOpenFileName(&ofn) == TRUE)
 		{
 				if(SXMainWndElem::NumActiveElement != -1 && strcmp(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName,"SXGUIButtonImg") == 0)
 				{
 					ISXGUIButtonImg* bimg = dynamic_cast<ISXGUIButtonImg*>(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object);
-					bimg->ReInitImage(szFileName);
-					InvalidateRect(bimg->GetHWND(),0,1);
-					SXMainWndElem::ButtomParamImgBLoadImg->SetText(szFileTitle);
+					bimg->reInitImage(szFileName);
+					InvalidateRect(bimg->getHWND(),0,1);
+					SXMainWndElem::ButtomParamImgBLoadImg->setText(szFileTitle);
 				}
 		}
-	SXMainWndElem::MainWnd->Enable(true);
-	SXMainWndElem::JobMainWnd->Enable(true);
-	SXMainWndElem::ParamWnd->Enable(true);
-	SXMainWndElem::WndLog->Enable(true);
+	SXMainWndElem::MainWnd->setEnable(true);
+	SXMainWndElem::JobMainWnd->setEnable(true);
+	SXMainWndElem::ParamWnd->setEnable(true);
+	SXMainWndElem::WndLog->setEnable(true);
 }
 
 void SXUpdateParam::SetMenuWindow()
 {
-	int check = SXMainWndElem::CheckBoxParamWinMenu->GetCheck();
+	int check = SXMainWndElem::CheckBoxParamWinMenu->getCheck();
 		if(check == 1)
 		{
-			SXMainWndElem::MenuWindow->SetToWindow(SXMainWndElem::JobMainWnd->GetHWND());
+			SXMainWndElem::MenuWindow->setToWindow(SXMainWndElem::JobMainWnd->getHWND());
 		}
 		else
-			SetMenu(SXMainWndElem::JobMainWnd->GetHWND(),0);
+			SetMenu(SXMainWndElem::JobMainWnd->getHWND(),0);
 }
 
 void SaveFile(const char* path)
@@ -904,11 +847,11 @@ void SaveFile(const char* path)
 	//{
 	fprintf(file, "[JobWindow]\n");
 	char classname[32];
-	GetClassName(SXMainWndElem::JobMainWnd->GetHWND(),classname,31);
+	GetClassName(SXMainWndElem::JobMainWnd->getHWND(),classname,31);
 	fprintf(file, "SysClassName = %s\n", classname);
 	fprintf(file, "Name = %s\n", SXMainWndElem::NameJobWnd);
 	char textwnd[256];
-	SXMainWndElem::JobMainWnd->GetText(textwnd,255);
+	SXMainWndElem::JobMainWnd->getText(textwnd,255);
 	fprintf(file, "CaptionElement = %s\n", textwnd);
 	
 	//}
@@ -917,7 +860,7 @@ void SaveFile(const char* path)
 	//{
 	RECT GClientRect;
 	long Width,Height;
-	SXMainWndElem::JobMainWnd->GetClientRect(&GClientRect);
+	SXMainWndElem::JobMainWnd->getClientRect(&GClientRect);
 
 	fprintf(file, "left = %d\n", GClientRect.left);
 	fprintf(file, "top = %d\n", GClientRect.top);
@@ -937,28 +880,28 @@ void SaveFile(const char* path)
 
 	//���������� ������ ���
 	//{
-	ColorBK = SXMainWndElem::JobMainWnd->GetColorBrush();
+	ColorBK = SXMainWndElem::JobMainWnd->getColorBrush();
 	fprintf(file, "ColorBK = %d\n", ColorBK);
 	//}
 
 	//���������� ������������� ����
-	bool MenuWindow = (SXMainWndElem::CheckBoxParamWinMenu->GetCheck() == 1) ? true : false;
+	bool MenuWindow = (SXMainWndElem::CheckBoxParamWinMenu->getCheck() == 1) ? true : false;
 	fprintf(file, "MenuWindow = %d\n", MenuWindow);
 
 	//���������� ���������� � ����������
 	//{
-	bool HintVisible = SXMainWndElem::JobMainWnd->ShowHint();
+	bool HintVisible = SXMainWndElem::JobMainWnd->getShowHint();
 	fprintf(file, "HintVisible = %d\n", HintVisible);
-	char HintText[1024];
-	HintText[0] = 0;
-	SXMainWndElem::JobMainWnd->GetHintText(HintText);
+	/*char HintText[1024];
+	HintText[0] = 0;*/
+	const char *HintText = SXMainWndElem::JobMainWnd->getHintText();
 	fprintf(file, "HintText = %s\n", HintText);
 	//}
 
 	//��������� ��������� � ����������������
-	bool Visible = SXMainWndElem::JobMainWnd->Visible();
+	bool Visible = SXMainWndElem::JobMainWnd->getVisible();
 	fprintf(file, "Visible = %d\n", Visible);
-	bool Enable = SXMainWndElem::JobMainWnd->Enable();
+	bool Enable = SXMainWndElem::JobMainWnd->getEnable();
 	fprintf(file, "Enable = %d\n", Enable);
 
 		for(int i=0;i<CountSave;i++)
@@ -985,7 +928,7 @@ void SaveFile(const char* path)
 				{
 					//char* tmptxt = SXMainWndElem::CreateElements[i]->SysClassName;
 					ISXGUITextual* textual = dynamic_cast<ISXGUITextual*>(SXMainWndElem::CreateElements[i]->Object);
-					textual->GetText(CaptionElement,256);
+					textual->getText(CaptionElement,256);
 					fprintf(file, "CaptionElement = %s\n", CaptionElement);
 			}
 
@@ -994,7 +937,7 @@ void SaveFile(const char* path)
 			memset(&GClientRect,0,sizeof(RECT));
 			Width = Height = 0;
 
-			SXMainWndElem::CreateElements[i]->Object->GetClientRect(&GClientRect);
+			SXMainWndElem::CreateElements[i]->Object->getClientRect(&GClientRect);
 
 			fprintf(file, "left = %d\n", GClientRect.left);
 			fprintf(file, "top = %d\n", GClientRect.top);
@@ -1016,7 +959,7 @@ void SaveFile(const char* path)
 					strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIButton") != 0
 					)
 				{
-					HFONT hfont = SXMainWndElem::CreateElements[i]->Object->GetFont();
+					HFONT hfont = SXMainWndElem::CreateElements[i]->Object->getHFont();
 					LOGFONT LogFont;
 						if(hfont == 0)
 						{
@@ -1067,12 +1010,12 @@ void SaveFile(const char* path)
 					strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIBaseWnd") != 0
 					)
 				{
-					ColorText = SXMainWndElem::CreateElements[i]->Object->GetColorText();
-					ColorTextBK = SXMainWndElem::CreateElements[i]->Object->GetColorTextBk();
+					ColorText = SXMainWndElem::CreateElements[i]->Object->getColorText();
+					ColorTextBK = SXMainWndElem::CreateElements[i]->Object->getColorTextBk();
 
 					fprintf(file, "ColorText = %d\n", ColorText);
 					fprintf(file, "ColorTextBK = %d\n", ColorTextBK);
-					TransparentTextBK = SXMainWndElem::CreateElements[i]->Object->GetTransparentTextBk();
+					TransparentTextBK = SXMainWndElem::CreateElements[i]->Object->getTransparentTextBk();
 					fprintf(file, "TransparentTextBK = %d\n", TransparentTextBK);
 				}
 
@@ -1088,25 +1031,25 @@ void SaveFile(const char* path)
 					strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIButtonImg")
 					)
 				{
-					ColorBK = SXMainWndElem::CreateElements[i]->Object->GetColorBrush();
+					ColorBK = SXMainWndElem::CreateElements[i]->Object->getColorBrush();
 					fprintf(file, "ColorBK = %d\n", ColorBK);
 				}
 			//}
 
 			//���������� ���������� � ����������
 			//{
-			bool HintVisible = SXMainWndElem::CreateElements[i]->Object->ShowHint();
+			bool HintVisible = SXMainWndElem::CreateElements[i]->Object->getShowHint();
 			fprintf(file, "HintVisible = %d\n", HintVisible);
-			char HintText[1024];
-			HintText[0] = 0;
-			SXMainWndElem::CreateElements[i]->Object->GetHintText(HintText);
+			/*char HintText[1024];
+			HintText[0] = 0;*/
+			const char *HintText = SXMainWndElem::CreateElements[i]->Object->getHintText();
 			fprintf(file, "HintText = %s\n", HintText);
 			//}
 
 			//��������� ��������� � ����������������
-			bool Visible = SXMainWndElem::CreateElements[i]->Object->Visible();
+			bool Visible = SXMainWndElem::CreateElements[i]->Object->getVisible();
 			fprintf(file, "Visible = %d\n", Visible);
-			bool Enable = SXMainWndElem::CreateElements[i]->Object->Enable();
+			bool Enable = SXMainWndElem::CreateElements[i]->Object->getEnable();
 			fprintf(file, "Enable = %d\n", Enable);
 
 				if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIButtonImg") == 0)
@@ -1114,7 +1057,7 @@ void SaveFile(const char* path)
 					char PathForImg[1024];
 					PathForImg[0] = 0;
 					ISXGUIButtonImg* tmpImgButton = dynamic_cast<ISXGUIButtonImg*>(SXMainWndElem::CreateElements[i]->Object);
-					tmpImgButton->GetPathForImg(PathForImg);
+					tmpImgButton->getPathForImg(PathForImg);
 					fprintf(file, "PathForImg = %s\n", PathForImg);
 				}
 		}
@@ -1137,7 +1080,7 @@ void LoadFile(const char* path)
 	sprintf(SXMainWndElem::NameJobWnd, "%s", tmpconfig->getKey("JobWindow", "Name"));
 	sprintf(CaptionElement, "%s", tmpconfig->getKey("JobWindow", "CaptionElement"));
 
-	SXMainWndElem::JobMainWnd->SetText(CaptionElement);
+	SXMainWndElem::JobMainWnd->setText(CaptionElement);
 	RECT GClientRect;
 	long Width,Height;
 	
@@ -1152,34 +1095,34 @@ void LoadFile(const char* path)
 
 	GClientRect.right = Width + GClientRect.left;
 	GClientRect.bottom = Height + GClientRect.top;
-	SXMainWndElem::JobMainWnd->SetClientRect(&GClientRect,false);
+	SXMainWndElem::JobMainWnd->setClientRect(&GClientRect,false);
 
 	DWORD ColorText,ColorTextBK,ColorBK;
 	BOOL TransparentTextBK;
 
 	sscanf(tmpconfig->getKey("JobWindow", "ColorBK"), "%d", &ColorBK);
-	SXMainWndElem::JobMainWnd->SetColorBrush(ColorBK);
+	SXMainWndElem::JobMainWnd->setColorBrush(ColorBK);
 
 	BOOL MenuWindow;
 	sscanf(tmpconfig->getKey("JobWindow", "MenuWindow"), "%d", &MenuWindow);
-	SXMainWndElem::CheckBoxParamWinMenu->SetCheck(MenuWindow ? SXGUI_CHECKBOX_CHECKED : SXGUI_CHECKBOX_UNCHECKED);
-	InvalidateRect(SXMainWndElem::CheckBoxParamWinMenu->GetHWND(),0,1);
+	SXMainWndElem::CheckBoxParamWinMenu->setCheck(MenuWindow ? SXGUI_CHECKBOX_STATE_CHECKED : SXGUI_CHECKBOX_STATE_UNCHECKED);
+	InvalidateRect(SXMainWndElem::CheckBoxParamWinMenu->getHWND(),0,1);
 	SXUpdateParam::SetMenuWindow();
 
 	BOOL HintVisible;
 	sscanf(tmpconfig->getKey("JobWindow", "HintVisible"), "%d", &HintVisible);
-	SXMainWndElem::JobMainWnd->ShowHint(HintVisible);
+	SXMainWndElem::JobMainWnd->setShowHint(HintVisible);
 	char HintText[1024];
 	HintText[0] = 0;
 	sprintf(HintText, "%s", tmpconfig->getKey("JobWindow", "HintText"));
-	SXMainWndElem::JobMainWnd->SetHintText(HintText);
+	SXMainWndElem::JobMainWnd->setHintText(HintText);
 
 	BOOL Visible;
 	sscanf(tmpconfig->getKey("JobWindow", "Visible"), "%d", &Visible);
-	SXMainWndElem::JobMainWnd->Visible(Visible);
+	SXMainWndElem::JobMainWnd->setVisible(Visible);
 	BOOL Enable;
 	sscanf(tmpconfig->getKey("JobWindow", "Enable"), "%d", &Enable);
-	SXMainWndElem::JobMainWnd->Enable(Enable);
+	SXMainWndElem::JobMainWnd->setEnable(Enable);
 
 	int CountObject = 0;
 	WORD CountSave = tmpconfig->getSectionCount() - 1;
@@ -1226,97 +1169,97 @@ void LoadFile(const char* path)
 				if(strcmp(Object->SXClassName,"SXGUIButton") == 0)
 				{
 					CountObject = 0;
-					Object->Object = SXGUICrButton(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXGUI_BUTTON_IMAGE_NONE, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrButton(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXGUI_BUTTON_IMAGE_NONE, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIButtonImg") == 0)
 				{
 					CountObject = 1;
-					ISXGUIButtonImg* tmpButtonImg = SXGUICrButtonImgLoad("",GClientRect.left,GClientRect.top,Width,Height,RGB(0,0,0),RGB(100,100,100),SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
-					tmpButtonImg->SetColorFrame(100, 100, 100);
-					tmpButtonImg->SetEnable(true);
-					tmpButtonImg->SetEnableActive(true);
+					ISXGUIButtonImg* tmpButtonImg = SXGUICrButtonImgLoad("",GClientRect.left,GClientRect.top,Width,Height,RGB(0,0,0),RGB(100,100,100),SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
+					tmpButtonImg->setColorFrame(RGB(100, 100, 100));
+					tmpButtonImg->setEnable(true);
+					tmpButtonImg->setActive(true);
 
 					Object->Object = tmpButtonImg;
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIEdit") == 0)
 				{
 					CountObject = 2;
-					Object->Object = SXGUICrEdit(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrEdit(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUICheckBox") == 0)
 				{
 					CountObject = 3;
-					Object->Object = SXGUICrCheckBox(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0, true);
+					Object->Object = SXGUICrCheckBox(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0, true);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIComboBox") == 0)
 				{
 					CountObject = 4;
-					Object->Object = SXGUICrComboBox(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrComboBox(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIGroupBox") == 0)
 				{
 					CountObject = 5;
-					Object->Object = SXGUICrGroupBox(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrGroupBox(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIListBox") == 0)
 				{
 					CountObject = 6;
-					Object->Object = SXGUICrListBox(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0, true);
-					SendMessage(Object->Object->GetHWND(),LB_SETITEMHEIGHT,0,1);
+					Object->Object = SXGUICrListBox(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0, true);
+					SendMessage(Object->Object->getHWND(),LB_SETITEMHEIGHT,0,1);
 				}
 				else if (strcmp(Object->SXClassName, "SXGUIListView") == 0)
 				{
 					CountObject = 7;
-					Object->Object = SXGUICrListView(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrListView(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIMemo") == 0)
 				{
 					CountObject = 8;
-					Object->Object = SXGUICrMemo(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrMemo(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIProgressBar") == 0)
 				{
 					CountObject = 9;
-					Object->Object = SXGUICrProgressBar(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0, true, true);
+					Object->Object = SXGUICrProgressBar(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0, true, true);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIRadioButton") == 0)
 				{
 					CountObject = 10;
-					Object->Object = SXGUICrRadioButton(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrRadioButton(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIStatic") == 0)
 				{
 					CountObject = 11;
-					Object->Object = SXGUICrStatic(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrStatic(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUITrackBar") == 0)
 				{
 					CountObject = 12;
-					Object->Object = SXGUICrTrackBar(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrTrackBar(CaptionElement, GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIStatusBar") == 0)
 				{
 					CountObject = 13;
-					Object->Object = SXGUICrStatusBar(CaptionElement, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrStatusBar(CaptionElement, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIToolBar") == 0)
 				{
 					CountObject = 14;
-					Object->Object = SXGUICrToolBar(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
+					Object->Object = SXGUICrToolBar(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIUpDown") == 0)
 				{
 					CountObject = 15;
-					Object->Object = SXGUICrUpDown(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0, 0, 0);
+					Object->Object = SXGUICrUpDown(GClientRect.left, GClientRect.top, Width, Height, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0, 0, 0);
 				}
 				else if(strcmp(Object->SXClassName,"SXGUIBaseWnd") == 0)
 				{
 					CountObject = 16;
-					Object->Object = SXGUICrBaseWnd(Object->Name, CaptionElement, 0,
-													0,GClientRect.left,GClientRect.top,Width,Height,
+					Object->Object = SXGUICrBaseWndEx(Object->Name, CaptionElement,
+													GClientRect.left,GClientRect.top,Width,Height,
 													0,0,CreateSolidBrush(RGB(200,200,200)),
 													0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER,
-													SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob);
+													SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob);
 				}
 				//}
 
@@ -1342,7 +1285,7 @@ void LoadFile(const char* path)
 						//���� ������ ������ ����� ������ �� ���������� ��������� �����
 						if(FontName[0] == 0)
 						{
-							Object->Object->SetFont(0);
+							Object->Object->setHFont(0);
 						}
 						else
 						{
@@ -1354,7 +1297,7 @@ void LoadFile(const char* path)
 							sscanf(tmpconfig->getKey(sectname, "Underline"), "%d", &Underline);
 							sscanf(tmpconfig->getKey(sectname, "StrikeOut"), "%d", &StrikeOut);
 
-							Object->Object->SetFont(FontName,HeightFont,WidthFont,WeightFont,Italic,Underline,StrikeOut);
+							Object->Object->setFont(FontName,HeightFont,WidthFont,WeightFont,Italic,Underline,StrikeOut);
 						}
 				}
 				//}
@@ -1379,9 +1322,9 @@ void LoadFile(const char* path)
 					sscanf(tmpconfig->getKey(sectname, "ColorTextBK"), "%d", &ColorTextBK);
 					sscanf(tmpconfig->getKey(sectname, "TransparentTextBK"), "%d", &TransparentTextBK);
 
-					Object->Object->SetColorText(ColorText);
-					Object->Object->SetColorTextBk(ColorTextBK);
-					Object->Object->SetTransparentTextBk(TransparentTextBK);
+					Object->Object->setColorText(ColorText);
+					Object->Object->setColorTextBk(ColorTextBK);
+					Object->Object->setTransparentTextBk(TransparentTextBK);
 				}
 				//}
 
@@ -1398,24 +1341,24 @@ void LoadFile(const char* path)
 					)
 				{
 					sscanf(tmpconfig->getKey(sectname, "ColorBK"), "%d", &ColorBK);
-					Object->Object->SetColorBrush(ColorBK);
+					Object->Object->setColorBrush(ColorBK);
 				}
 			//}
 
 			BOOL HintVisible;
 			sscanf(tmpconfig->getKey(sectname, "HintVisible"), "%d", &HintVisible);
-			Object->Object->ShowHint(HintVisible);
+			Object->Object->setShowHint(HintVisible);
 			char HintText[1024];
 			HintText[0] = 0;
 			sprintf(HintText, "%s", tmpconfig->getKey(sectname, "HintText"));
-			Object->Object->SetHintText(HintText);
+			Object->Object->setHintText(HintText);
 
 			BOOL Visible;
 			sscanf(tmpconfig->getKey(sectname, "Visible"), "%d", &Visible);
-			Object->Object->Visible(Visible);
+			Object->Object->setVisible(Visible);
 			BOOL Enable;
 			sscanf(tmpconfig->getKey(sectname, "Enable"), "%d", &Enable);
-			Object->Object->Enable(Enable);
+			Object->Object->setEnable(Enable);
 
 				if(strcmp(Object->SXClassName,"SXGUIButtonImg") == 0)
 				{
@@ -1424,7 +1367,7 @@ void LoadFile(const char* path)
 
 					sprintf(PathForImg, "%s", tmpconfig->getKey(sectname, "PathForImg"));
 					ISXGUIButtonImg* tmpImgButton = dynamic_cast<ISXGUIButtonImg*>(Object->Object);
-					tmpImgButton->ReInitImage(PathForImg);
+					tmpImgButton->reInitImage(PathForImg);
 				}
 
 			SXMainWndElem::CountCreateNewElem++;
@@ -1438,21 +1381,21 @@ void LoadFile(const char* path)
 			//������������ � �������� ������ ���������� ����� ���������� ��������
 			char tmpAddItem[256];
 			sprintf(tmpAddItem,"%s%s%s%s%s",Object->Name, " - ",Object->SXClassName," : ",Object->SysClassName);
-			SXMainWndElem::ListBoxAllElements->AddItem(tmpAddItem);
+			SXMainWndElem::ListBoxAllElements->addItem(tmpAddItem);
 
-			int countitem = SXMainWndElem::ListBoxAllElements->GetCountItem();
-			SXMainWndElem::ListBoxAllElements->SetItemData(SXMainWndElem::ListBoxAllElements->GetCountItem()-1,(LPARAM)SXMainWndElem::CreateElements.size()-1);
-			SXMainWndElem::ListBoxAllElements->SetSel(SXMainWndElem::NumActiveElement);
+			int countitem = SXMainWndElem::ListBoxAllElements->getItemCount();
+			SXMainWndElem::ListBoxAllElements->setItemData(SXMainWndElem::ListBoxAllElements->getItemCount() - 1, (LPARAM)SXMainWndElem::CreateElements.size() - 1);
+			SXMainWndElem::ListBoxAllElements->setSel(SXMainWndElem::NumActiveElement);
 
 			InLog("%s","Parameters ParamWnd overwritten, serial number of elements writed (userdata32)");
 		}
 
 		for(int e=0;e<SXMainWndElem::CreateElements.size();e++)
 		{
-			InvalidateRect(SXMainWndElem::CreateElements[e]->Object->GetHWND(),0,1);
+			InvalidateRect(SXMainWndElem::CreateElements[e]->Object->getHWND(),0,1);
 		}
 		
-	InvalidateRect(SXMainWndElem::JobMainWnd->GetHWND(),0,TRUE);
+	InvalidateRect(SXMainWndElem::JobMainWnd->getHWND(),0,TRUE);
 }
 
 
@@ -1466,7 +1409,7 @@ void CreateNew(bool reestablish)
 		{
 			InLog("%s%s%s","Deletion of object [",SXMainWndElem::CreateElements[0]->Name,"] ...");
 			SXMainWndElem::CountDeleteElem++;
-			SXMainWndElem::ListBoxAllElements->DeleteItem(0);
+			SXMainWndElem::ListBoxAllElements->deleteItem(0);
 			delete SXMainWndElem::CreateElements[0]->Object;
 			SXMainWndElem::CreateElements.erase(0);
 			InLog("%s","Deleting of object completed");
@@ -1477,13 +1420,13 @@ void CreateNew(bool reestablish)
 		{
 			RECT wrect;
 			SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
-			SXMainWndElem::JobMainWnd->SetText("JobWindow");
+			SXMainWndElem::JobMainWnd->setText("JobWindow");
 			RECT rc;// = {100,250,wrect.right - 456,wrect.bottom-350};
 			rc.left = 100;
 			rc.top = 250;
 			rc.right = rc.left + (wrect.right - 456);
 			rc.bottom = rc.top + (wrect.bottom - 350);
-			SXMainWndElem::JobMainWnd->SetClientRect(&rc,true);
+			SXMainWndElem::JobMainWnd->setClientRect(&rc,true);
 		}
 	//������� ��� ������ ������
 	SXMainWndElem::IsCreatedEl = SXMainWndElem::IsLoadedEl = false;
@@ -1534,7 +1477,7 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 		}
 
 	char NameJobWnd[256];
-	SXMainWndElem::JobMainWnd->GetText(NameJobWnd,256);
+	SXMainWndElem::JobMainWnd->getText(NameJobWnd,256);
 		for(int i=0;i<strlen(NameJobWnd);i++)
 		{
 				if(NameJobWnd[i] == ' ')
@@ -1576,7 +1519,7 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 			long Width,Height;
 
 			fprintf(file,"\t%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd," = SXGUICrBaseWnd(");
-			SXMainWndElem::JobMainWnd->GetClientRect(&GClientRect);
+			SXMainWndElem::JobMainWnd->getClientRect(&GClientRect);
 			Width = GClientRect.right - GClientRect.left;
 			Height = GClientRect.bottom - GClientRect.top;
 
@@ -1593,7 +1536,7 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 
 			ISXGUIBaseWnd* tmpwnd = dynamic_cast<ISXGUIBaseWnd*>(SXMainWndElem::JobMainWnd);
 			DWORD SXColorBK;
-			SXColorBK = tmpwnd->GetColorBrush();
+			SXColorBK = tmpwnd->getColorBrush();
 			fprintf(file, "%s%d%s%d%s%d%s", "CreateSolidBrush(RGB(", GetRValue(SXColorBK), ",", GetGValue(SXColorBK), ",", GetBValue(SXColorBK), ")),"); //CreateSolidBrush(RGB(200,200,200))
 
 			fprintf(file,"%d%s",0,",");
@@ -1623,12 +1566,12 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							//char* tmpstr = 0;
 							//tmpstr = SXMainWndElem::CreateElements[i]->SysClassName;
 							ISXGUITextual* textual = dynamic_cast<ISXGUITextual*>(SXMainWndElem::CreateElements[i]->Object);
-							textual->GetText(CaptionElement,256);
+							textual->getText(CaptionElement,256);
 						}
 
 					fprintf(file,"%s%s%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name," = SXGUICr",SXMainWndElem::CreateElements[i]->SXClassName+5,"(");
 					
-					SXMainWndElem::CreateElements[i]->Object->GetClientRect(&GClientRect);
+					SXMainWndElem::CreateElements[i]->Object->getClientRect(&GClientRect);
 					Width = GClientRect.right - GClientRect.left;
 					Height = GClientRect.bottom - GClientRect.top;
 
@@ -1640,7 +1583,7 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
 							fprintf(file,"%d%s",0,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
 							
@@ -1649,7 +1592,7 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 						{
 							ISXGUIButtonImg* tmpButtonImg = dynamic_cast<ISXGUIButtonImg*>(SXMainWndElem::CreateElements[i]->Object);
 							char path[1024];
-							tmpButtonImg->GetPathForImg(path);
+							tmpButtonImg->getPathForImg(path);
 							fprintf(file,"%s%s%s","\"",path,"\",");
 							fprintf(file,"%d%s",GClientRect.left,",");
 							fprintf(file,"%d%s",GClientRect.top,",");
@@ -1657,12 +1600,12 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",Height,",");
 							fprintf(file,"%s%s","RGB(0,0,0)",",");
 							fprintf(file,"%s%s","RGB(100,100,100)",",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,");\n");
 
 							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->SetColorFrame(100,100,100);\n");
 							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->SetEnableActive(true);\n");
-							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->SetEnable(true);\n");
+							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->SetsetEnable(true);\n");
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIEdit") == 0)
 						{
@@ -1671,11 +1614,11 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
 							
-							//Object->Object = new SXGUIEdit(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIEdit(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUICheckBox") == 0)
 						{
@@ -1684,11 +1627,11 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%s%s","true",");\n");
-							//Object->Object = new SXGUICheckBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0,true);
+							//Object->Object = new SXGUICheckBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0,true);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIComboBox") == 0)
 						{
@@ -1697,10 +1640,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIComboBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIComboBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIGroupBox") == 0)
 						{
@@ -1709,10 +1652,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIGroupBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIGroupBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIListBox") == 0)
 						{
@@ -1721,12 +1664,12 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%s%s","true",");\n");
-							//Object->Object = new SXGUIListBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0,true);
-							//SendMessage(Object->Object->GetHWND(),LB_SETITEMHEIGHT,0,1);
+							//Object->Object = new SXGUIListBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0,true);
+							//SendMessage(Object->Object->getHWND(),LB_SETITEMHEIGHT,0,1);
 						}
 						else if (strcmp(SXMainWndElem::CreateElements[i]->SXClassName, "SXGUIListView") == 0)
 						{
@@ -1735,11 +1678,11 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file, "%d%s", GClientRect.top, ",");
 							fprintf(file, "%d%s", Width, ",");
 							fprintf(file, "%d%s", Height, ",");
-							fprintf(file, "%s%s%s", NameSpacePP, SXMainWndElem::NameJobWnd, "->GetHWND(),");
+							fprintf(file, "%s%s%s", NameSpacePP, SXMainWndElem::NameJobWnd, "->getHWND(),");
 							fprintf(file, "%d%s", 0, ",");
 							fprintf(file, "%d%s", 0, ");\n");
-							//Object->Object = new SXGUIListBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0,true);
-							//SendMessage(Object->Object->GetHWND(),LB_SETITEMHEIGHT,0,1);
+							//Object->Object = new SXGUIListBox(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0,true);
+							//SendMessage(Object->Object->getHWND(),LB_SETITEMHEIGHT,0,1);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIMemo") == 0)
 						{
@@ -1748,10 +1691,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIMemo(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIMemo(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIProgressBar") == 0)
 						{
@@ -1760,12 +1703,12 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%s%s","true",",");
 							fprintf(file,"%s%s","true",");\n");
-							//Object->Object = new SXGUIProgressBar(GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0,true,true);
+							//Object->Object = new SXGUIProgressBar(GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0,true,true);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIRadioButton") == 0)
 						{
@@ -1774,10 +1717,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIRadioButton(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIRadioButton(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIStatic") == 0)
 						{
@@ -1786,10 +1729,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIStatic(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIStatic(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUITrackBar") == 0)
 						{
@@ -1798,18 +1741,18 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUITrackBar(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUITrackBar(Object->Name,GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIStatusBar") == 0)
 						{
 							fprintf(file,"%s%s%s","\"",CaptionElement,"\",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIStatusBar(Object->Name,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIStatusBar(Object->Name,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIToolBar") == 0)
 						{
@@ -1820,10 +1763,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",Height,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIToolBar(Object->Name,GClientRect.left,GClientRect.top,Width,Height,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0);
+							//Object->Object = new SXGUIToolBar(Object->Name,GClientRect.left,GClientRect.top,Width,Height,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIUpDown") == 0)
 						{
@@ -1831,10 +1774,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",GClientRect.top,",");
 							fprintf(file,"%d%s",Width,",");
 							fprintf(file,"%d%s",Height,",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%d%s",0,");\n");
-							//Object->Object = new SXGUIUpDown(GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob,0,0,0);
+							//Object->Object = new SXGUIUpDown(GClientRect.left,GClientRect.top,Width,Height,SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob,0,0,0);
 						}
 						else if(strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIBaseWnd") == 0)
 						{
@@ -1850,18 +1793,18 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							fprintf(file,"%d%s",0,",");
 
 							ISXGUIBaseWnd* tmpwnd = dynamic_cast<ISXGUIBaseWnd*>(SXMainWndElem::CreateElements[i]->Object);
-							DWORD SXColorBK = tmpwnd->GetColorBrush();
+							DWORD SXColorBK = tmpwnd->getColorBrush();
 							fprintf(file, "%s%d%s%d%s%d%s", "CreateSolidBrush(RGB(", GetRValue(SXColorBK), ",", GetGValue(SXColorBK), ",", GetBValue(SXColorBK), ")),"); //CreateSolidBrush(RGB(200,200,200))
 
 							fprintf(file,"%d%s",0,",");
 							fprintf(file,"%s%s","CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER",",");
-							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->GetHWND(),");
+							fprintf(file,"%s%s%s",NameSpacePP,SXMainWndElem::NameJobWnd,"->getHWND(),");
 							fprintf(file,"%d%s",0,");\n");
 							/*Object->Object = new SXGUIBaseWnd(Object->Name,Object->Name,0,
 															0,GClientRect.left,GClientRect.top,Width,Height,
 															0,0,CreateSolidBrush(RGB(200,200,200)),
 															0,CS_HREDRAW | CS_VREDRAW,WS_CHILD | WS_VISIBLE | WS_BORDER,
-															SXMainWndElem::JobMainWnd->GetHWND(),WndProcChildJob);*/
+															SXMainWndElem::JobMainWnd->getHWND(),WndProcChildJob);*/
 						}
 
 
@@ -1874,7 +1817,7 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIBaseWnd") != 0
 							)
 						{
-							HFONT hfont = SXMainWndElem::CreateElements[i]->Object->GetFont();
+							HFONT hfont = SXMainWndElem::CreateElements[i]->Object->getHFont();
 
 								if(hfont != 0)
 								{
@@ -1896,10 +1839,10 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIBaseWnd") != 0
 							)
 						{
-							DWORD SXColorText = SXMainWndElem::CreateElements[i]->Object->GetColorText();
-							DWORD SXColorTextBK = SXMainWndElem::CreateElements[i]->Object->GetColorTextBk();
+							DWORD SXColorText = SXMainWndElem::CreateElements[i]->Object->getColorText();
+							DWORD SXColorTextBK = SXMainWndElem::CreateElements[i]->Object->getColorTextBk();
 
-							bool TransparentTextBK = SXMainWndElem::CreateElements[i]->Object->GetTransparentTextBk();
+							bool TransparentTextBK = SXMainWndElem::CreateElements[i]->Object->getTransparentTextBk();
 
 							fprintf(file, "%s%s%s%s%d%s%d%s%d%s", "\t", NameSpacePP, SXMainWndElem::CreateElements[i]->Name, "->SetColorText(", GetRValue(SXColorText), ",", GetGValue(SXColorText), ",", GetBValue(SXColorText), ");\n");
 							fprintf(file, "%s%s%s%s%d%s%d%s%d%s", "\t", NameSpacePP, SXMainWndElem::CreateElements[i]->Name, "->SetColorTextBk(", GetRValue(SXColorTextBK), ",", GetGValue(SXColorTextBK), ",", GetBValue(SXColorTextBK), ");\n");
@@ -1919,25 +1862,25 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 							strcmp(SXMainWndElem::CreateElements[i]->SXClassName,"SXGUIBaseWnd") != 0
 							)
 						{
-							DWORD SXColorBrush = SXMainWndElem::CreateElements[i]->Object->GetColorBrush();
-							fprintf(file, "%s%s%s%s%d%s%d%s%d%s", "\t", NameSpacePP, SXMainWndElem::CreateElements[i]->Name, "->SetColorBrush(", GetRValue(SXColorBrush), ",", GetGValue(SXColorBrush), ",", GetBValue(SXColorBrush), ");\n");
+							DWORD SXColorBrush = SXMainWndElem::CreateElements[i]->Object->getColorBrush();
+							fprintf(file, "%s%s%s%s%d%s%d%s%d%s", "\t", NameSpacePP, SXMainWndElem::CreateElements[i]->Name, "->setColorBrush(", GetRValue(SXColorBrush), ",", GetGValue(SXColorBrush), ",", GetBValue(SXColorBrush), ");\n");
 						}
 					//}
 
 					//{
-						if(SXMainWndElem::CreateElements[i]->Object->ShowHint())
+						if(SXMainWndElem::CreateElements[i]->Object->getShowHint())
 						{
 							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->ShowHint(true);\n");
-							char HintText[1024];
-							HintText[0] = 0;
-							SXMainWndElem::CreateElements[i]->Object->GetHintText(HintText);
+							/*char HintText[1024];
+							HintText[0] = 0;*/
+							const char *HintText = SXMainWndElem::CreateElements[i]->Object->getHintText();
 							fprintf(file,"%s%s%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->SetHintText(",HintText,");\n");
 						}
 						else
 						{
-							char HintText[1024];
-							HintText[0] = 0;
-							SXMainWndElem::CreateElements[i]->Object->GetHintText(HintText);
+							/*char HintText[1024];
+							HintText[0] = 0;*/
+							const char *HintText = SXMainWndElem::CreateElements[i]->Object->getHintText();
 								if(HintText[0] != 0)
 								{
 									fprintf(file,"%s%s%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->SetHintText(",HintText,");\n");
@@ -1947,14 +1890,14 @@ void OutputInFile(const char* path,const char* name_space,bool in_ns,bool constr
 					
 					//}
 
-						if(!SXMainWndElem::CreateElements[i]->Object->Visible())
+						if(!SXMainWndElem::CreateElements[i]->Object->getVisible())
 						{
 							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->Visible(false);\n");
 						}
 
-						if(!SXMainWndElem::CreateElements[i]->Object->Enable())
+						if(!SXMainWndElem::CreateElements[i]->Object->getEnable())
 						{
-							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->Enable(false);\n");
+							fprintf(file,"%s%s%s%s","\t",NameSpacePP,SXMainWndElem::CreateElements[i]->Name,"->setEnable(false);\n");
 						}
 				}
 
diff --git a/source/sxwincreator/sx_param_wnd_data.h b/source/sxwincreator/sx_param_wnd_data.h
new file mode 100644
index 000000000..df3f58800
--- /dev/null
+++ b/source/sxwincreator/sx_param_wnd_data.h
@@ -0,0 +1,76 @@
+
+#ifndef __PARAM_WND_DATA_H
+#define __PARAM_WND_DATA_H
+
+#include <windows.h>
+#include <SXGUIWinApi/sxgui.h>
+#include "sxwincreator.h"
+
+namespace SXUpdateParam
+{
+	//��������� ���������� ��������� ��������
+	void PosSize();	// ������� � �������� (x,y width,height)
+	void Caption();
+	void VarName();
+	void Enable();
+	void Visible();
+	void VisibleHint();
+	void HintText();
+	void ColorText();
+	void ColorTextBK();
+	void ColorBK();
+	void TransparentTextBk();
+	void ParentFont();
+	void Font();
+	void MenuWindow();
+
+	void UpdateAll();
+
+	void SetPosX();
+	void SetPosY();
+	void SetWidth();
+	void SetHeight();
+	void SetVisible();
+	void SetEnable();
+	void SetCaption();
+	void SetVarName();
+	void SetVisibleHint();
+	void SetHintText();
+	void SetColorText();
+	void SetColorTextBK();
+	void SetColorBK();
+	void SetTransparentTextBk();
+	void SetParentFont();
+	void SetFont();
+	void SetImgButton();
+	void SetMenuWindow();
+
+	void LockPosSizeBlock();
+	void LockFontBlock();
+	void LockColorBlock();
+	void LockColorTextBlock();
+	void LockImgButton();
+
+	void UnLockPosSizeBlock();
+	void UnLockFontBlock();
+	void UnLockColorBlock();
+	void UnLockColorTextBlock();
+	void UnlockAll();
+	void UnLockImgButton();
+
+	void SetDefaultValue();
+}
+
+void SaveFile(const char* path);
+
+void LoadFile(const char* path);
+
+
+
+void CreateNew(bool reestablish);
+
+void CallCreateNew();
+
+void OutputInFile(const char* path, const char* name_space, bool in_ns, bool constructors, bool destructors, bool comments, bool include);
+
+#endif
\ No newline at end of file
diff --git a/source/sxwincreator/sxwincreator.cpp b/source/sxwincreator/sxwincreator.cpp
index 7bef348d7..e08be146a 100644
--- a/source/sxwincreator/sxwincreator.cpp
+++ b/source/sxwincreator/sxwincreator.cpp
@@ -1,52 +1,6 @@
 
-#define SX_EXE
 
-//����������� � ������� �������� ����
-//��� ������� ������� ��� ��� �� ������ ���� ������������ lduttonup
-//���� ������� ������ �� ��� � �����
-#include <windows.h>
-#include <gdefines.h>
-
-#include <Shlwapi.h>
-#include <Shellapi.h>
-#pragma comment(lib, "Shlwapi.lib")
-#pragma comment(lib, "Comctl32.lib")
-
-#if defined(_DEBUG)
-#pragma comment(lib, "sxcore_d.lib")
-#else
-#pragma comment(lib, "sxcore.lib")
-#endif
-#include <core/sxcore.h>
-
-
-#if defined(_DEBUG)
-#pragma comment(lib, "sxguiwinapi_d.lib")
-#else
-#pragma comment(lib, "sxguiwinapi.lib")
-#endif
-#include <SXGUIWinApi/sxgui.h>
-
-#include <common/Array.h>
-#include <SXWinCreator/resource.h>
-
-
-#define SX_SAFE_DELETE_A
-#define SX_SAFE_DELETE
-
-#define SX_WINCREATOR_COUNT_ELEMENT 17
-
-#define SX_WINCREATOR_STAT_CUR_TEXT "Statistic for cursor:"
-#define SX_WINCREATOR_STAT_CUR_G "desktop:\t"
-#define SX_WINCREATOR_STAT_CUR_PARENT "parent:\t\t"
-#define SX_WINCREATOR_STAT_CUR_CLIENT "element:\t"
-
-#define SX_WINCREATOR_STAT_ALL_ELEM_TEXT "Statistic for all elements:"
-#define SX_WINCREATOR_STAT_ALL_ELEM_COUNT_CREATE "Create:\t"
-#define SX_WINCREATOR_STAT_ALL_ELEM_COUNT_DELETE "Delete:\t"
-#define SX_WINCREATOR_STAT_ALL_ELEM_COUNT_CURRENT "Current:\t"
-
-#define SXWINCREATORVERSION "0.9.0"
+#include "sxwincreator.h"
 
 namespace SXEngine
 {
@@ -54,20 +8,6 @@ namespace SXEngine
 	HINSTANCE			Hinstance = 0;
 };
 
-struct SXElement
-{
-	ISXGUIButtonImg* Object;
-	char Name[256];
-};
-
-struct SXCreateElement
-{
-	SXCreateElement(){ Object = 0; Name[0] = SysClassName[0] = SXClassName[0] = 0; }
-	ISXGUIComponent* Object;
-	char Name[256];
-	char SysClassName[64];
-	char SXClassName[64];
-};
 
 namespace SXMainWndElem
 {
@@ -225,9 +165,9 @@ namespace SXMainWndElem
 	//������� ���������� ���������
 	int CountCurrentElem = 0;
 
-	ISXGUIMenu* MainMenu;
+	ISXGUIMenuWindow* MainMenu;
 
-	ISXGUIMenu* MenuWindow;
+	ISXGUIMenuWindow* MenuWindow;
 
 	HCURSOR CurRePos, CurSW, CurSE, CurE, CurS, CurNS, CurWE;
 
@@ -244,10 +184,6 @@ namespace SXMainWndElem
 	bool IsLoadedEl;
 };
 
-#include <sxwincreator\about_sxwincreator.cpp>
-#include <sxwincreator\windowoutput.cpp>
-#include <sxwincreator\sx_param_wnd_data.cpp>
-
 void InLog(const char* format, ...)
 {
 	va_list va;
@@ -258,17 +194,27 @@ void InLog(const char* format, ...)
 
 	if (SXMainWndElem::ListBoxLog)
 	{
-		SXMainWndElem::ListBoxLog->AddItem(buf);
-		SXMainWndElem::ListBoxLog->ScrollLine(SXGUI_SCROLL_TYPE_VERT, SXGUI_SCROLL_DIR_DOWN, SXMainWndElem::ListBoxLog->GetCountItem());
+		SXMainWndElem::ListBoxLog->addItem(buf);
+		gui_func::scrollbar::ScrollLine(SXMainWndElem::ListBoxLog, SXGUI_SCROLL_TYPE_V, SXGUI_SCROLL_DIR_DOWN, SXMainWndElem::ListBoxLog->getItemCount());
 	}
 }
 
+void CreateCursor()
+{
+	SXMainWndElem::CurSE = LoadCursor(0, IDC_SIZENWSE);
+	SXMainWndElem::CurSW = LoadCursor(0, IDC_SIZENESW);
+	SXMainWndElem::CurRePos = LoadCursor(0, IDC_SIZEALL);
+
+	SXMainWndElem::CurNS = LoadCursor(0, IDC_SIZENS);
+	SXMainWndElem::CurWE = LoadCursor(0, IDC_SIZEWE);
+}
+
 bool Render()
 {
 	RECT rect_main_wnd;
-	GetClientRect(SXMainWndElem::MainWnd->GetHWND(), &rect_main_wnd);
+	GetClientRect(SXMainWndElem::MainWnd->getHWND(), &rect_main_wnd);
 
-	GetClientRect(SXMainWndElem::MainWnd->GetHWND(), SXMainWndElem::MainWndOldRect);
+	GetClientRect(SXMainWndElem::MainWnd->getHWND(), SXMainWndElem::MainWndOldRect);
 
 	//���� ������ ������ delete � ���� �������� ������� �� ������� ���
 	//� ������ ���������� ����� ��������� �������� -1
@@ -276,11 +222,11 @@ bool Render()
 	{
 		InLog("%s%s%s", "Deletion of the elements [", SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Name, "] ...");
 		SXMainWndElem::CountDeleteElem++;
-		SXMainWndElem::ListBoxAllElements->DeleteItem(SXMainWndElem::NumActiveElement);
-		for (int i = SXMainWndElem::NumActiveElement; i<SXMainWndElem::ListBoxAllElements->GetCountItem(); i++)
+		SXMainWndElem::ListBoxAllElements->deleteItem(SXMainWndElem::NumActiveElement);
+		for (int i = SXMainWndElem::NumActiveElement; i<SXMainWndElem::ListBoxAllElements->getItemCount(); i++)
 		{
-			int ud = SXMainWndElem::ListBoxAllElements->GetItemData(i);
-			SXMainWndElem::ListBoxAllElements->SetItemData(i, (LPARAM)(ud - 1));
+			int ud = SXMainWndElem::ListBoxAllElements->getItemData(i);
+			SXMainWndElem::ListBoxAllElements->setItemData(i, (LPARAM)(ud - 1));
 		}
 		if (strcmp(SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->SXClassName, "SXGUIBaseWnd") == 0)
 		{
@@ -306,34 +252,34 @@ bool Render()
 	//SXMainWndElem::StaticStatisticMouseGlobal->GetText(CurPos,256);
 	sprintf(CurPos, "%s%d%s%d", SX_WINCREATOR_STAT_CUR_G, global_pos_cursor.x, " | ", global_pos_cursor.y);
 	//InLog("%s",CurPos);
-	SXMainWndElem::StaticStatisticMouseGlobal->SetText(CurPos);
-	MapWindowPoints(0, SXMainWndElem::JobMainWnd->GetHWND(), &global_pos_cursor, 1);
+	SXMainWndElem::StaticStatisticMouseGlobal->setText(CurPos);
+	MapWindowPoints(0, SXMainWndElem::JobMainWnd->getHWND(), &global_pos_cursor, 1);
 	sprintf(CurPos, "%s%d%s%d", SX_WINCREATOR_STAT_CUR_PARENT, global_pos_cursor.x, " | ", global_pos_cursor.y);
-	SXMainWndElem::StaticStatisticMouseParent->SetText(CurPos);
+	SXMainWndElem::StaticStatisticMouseParent->setText(CurPos);
 	if (SXMainWndElem::NumActiveElement != -1)
 	{
-		MapWindowPoints(SXMainWndElem::JobMainWnd->GetHWND(), SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->GetHWND(), &global_pos_cursor, 1);
+		MapWindowPoints(SXMainWndElem::JobMainWnd->getHWND(), SXMainWndElem::CreateElements[SXMainWndElem::NumActiveElement]->Object->getHWND(), &global_pos_cursor, 1);
 		sprintf(CurPos, "%s%d%s%d", SX_WINCREATOR_STAT_CUR_CLIENT, global_pos_cursor.x, " | ", global_pos_cursor.y);
-		SXMainWndElem::StaticStatisticMouseClient->SetText(CurPos);
+		SXMainWndElem::StaticStatisticMouseClient->setText(CurPos);
 	}
 	else
 	{
 		sprintf(CurPos, "%s%d%s%d", SX_WINCREATOR_STAT_CUR_CLIENT, -1, " | ", -1);
-		SXMainWndElem::StaticStatisticMouseClient->SetText(CurPos);
+		SXMainWndElem::StaticStatisticMouseClient->setText(CurPos);
 	}
 	//SXMainWndElem::GlobalCurPos = global_pos_cursor;
 	//}
 
 	char ElemStat[256];
 	sprintf(ElemStat, "%s%d", SX_WINCREATOR_STAT_ALL_ELEM_COUNT_CREATE, SXMainWndElem::CountCreateNewElem);
-	SXMainWndElem::StaticStatisticElemCreate->SetText(ElemStat);
+	SXMainWndElem::StaticStatisticElemCreate->setText(ElemStat);
 
 	sprintf(ElemStat, "%s%d", SX_WINCREATOR_STAT_ALL_ELEM_COUNT_DELETE, SXMainWndElem::CountDeleteElem);
-	SXMainWndElem::StaticStatisticElemDelete->SetText(ElemStat);
+	SXMainWndElem::StaticStatisticElemDelete->setText(ElemStat);
 
 	SXMainWndElem::CountCurrentElem = SXMainWndElem::CreateElements.size();
 	sprintf(ElemStat, "%s%d", SX_WINCREATOR_STAT_ALL_ELEM_COUNT_CURRENT, SXMainWndElem::CountCurrentElem);
-	SXMainWndElem::StaticStatisticElemCurrent->SetText(ElemStat);
+	SXMainWndElem::StaticStatisticElemCurrent->setText(ElemStat);
 
 
 	//����� ���� ���� �� �������� ����
@@ -371,9 +317,6 @@ bool Render()
 };
 
 
-#include <sxwincreator\callbacks.cpp>
-#include <sxwincreator\create_current_gui.cpp>
-
 int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd)
 {
 	SXEngine::Hinstance = hinstance;
@@ -384,476 +327,448 @@ int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE prevInstance, PSTR cmdLine, in
 
 	CreateCursor();
 
-	SXGUIRegClass::RegButtonImg();
-	SXGUIRegClass::RegGroupBox();
-
-	INITCOMMONCONTROLSEX icex;
-
-	icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
-	icex.dwICC = ICC_BAR_CLASSES;
-	InitCommonControlsEx(&icex);
+	SXGUIinit();
 
 	RECT wrect;
 	SystemParametersInfo(SPI_GETWORKAREA, 0, &wrect, 0);
 
-	SXMainWndElem::MainWnd = SXGUICrBaseWnd(
-		"SkyX Windows Creator", "SkyX Windows Creator", 0,
-		0,
+	SXMainWndElem::MainWnd = SXGUICrBaseWndEx(
+		"SkyX Windows Creator", "SkyX Windows Creator",
 		wrect.left, wrect.top, wrect.right, 150,
 		0, 0, CreateSolidBrush(RGB(220, 220, 220)),
 		0, CS_HREDRAW | CS_VREDRAW, WS_DLGFRAME | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION,
 		0, WndProcAllDefault);
 
-	SXGUIBaseHandlers::InitHandlerMsg(SXMainWndElem::MainWnd);
-	SXMainWndElem::MainWnd->AddHandler(ComMenuId, WM_COMMAND);
-	SXMainWndElem::MainWnd->AddHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
-
-	SXMainWndElem::MainWnd->MinSizeX = wrect.right;
-	SXMainWndElem::MainWnd->MinSizeY = 150;
+	gui_func::base_handlers::InitHandlerMsg(SXMainWndElem::MainWnd);
+	SXMainWndElem::MainWnd->addHandler(ComMenuId, WM_COMMAND);
+	SXMainWndElem::MainWnd->addHandler(TrueExit, WM_CLOSE, 0, 0, 0, 0, true);
 
-	SXMainWndElem::MainWnd->BFSizingChangeLeft = true;
-	SXMainWndElem::MainWnd->BFSizingChangeTop = true;
+	SXMainWndElem::MainWnd->setMixSize(wrect.right, 150);
 
-	SXMainWndElem::MainWnd->BFSizingChangeRight = true;
-	SXMainWndElem::MainWnd->BFSizingChangeBottom = true;
+	SXMainWndElem::MainWnd->setStretchSides(true, true, true, true);
 
-	SXMainWndElem::MainMenu = SXGUICrMenuEx(IDR_MENU1);
-	SXMainWndElem::MainMenu->SetToWindow(SXMainWndElem::MainWnd->GetHWND());
+	SXMainWndElem::MainMenu = SXGUICrMenuWindowEx(IDR_MENU1);
+	SXMainWndElem::MainMenu->setToWindow(SXMainWndElem::MainWnd->getHWND());
 
-	SXMainWndElem::MenuWindow = SXGUICrMenuEx(IDR_MENU2);
+	SXMainWndElem::MenuWindow = SXGUICrMenuWindowEx(IDR_MENU2);
 
-	SXMainWndElem::ParamWnd = SXGUICrBaseWnd(
-		"ParamWnd", "ParamWnd", 0,
-		0, wrect.right - 256, wrect.top + 160, 256, wrect.bottom - 160,
+	SXMainWndElem::ParamWnd = SXGUICrBaseWndEx(
+		"ParamWnd", "ParamWnd", 
+		wrect.right - 256, wrect.top + 160, 256, wrect.bottom - 160,
 		0, 0, CreateSolidBrush(RGB(220, 220, 220)),
 		WS_EX_TOOLWINDOW, CS_HREDRAW | CS_VREDRAW, WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED,
 		0, WndProcAllDefault);
 
-	SXGUIBaseHandlers::InitHandlerMsg(SXMainWndElem::ParamWnd);
-	SXMainWndElem::ParamWnd->AddHandler(MinimuzeWinInsteadClose, WM_CLOSE, 0, 0, 0, 0, true);
-	SXMainWndElem::ParamWnd->AddHandler(CallWmCommand, WM_COMMAND, 0, 0, 0, 0, true);
+	gui_func::base_handlers::InitHandlerMsg(SXMainWndElem::ParamWnd);
+	SXMainWndElem::ParamWnd->addHandler(MinimuzeWinInsteadClose, WM_CLOSE, 0, 0, 0, 0, true);
+	SXMainWndElem::ParamWnd->addHandler(CallWmCommand, WM_COMMAND, 0, 0, 0, 0, true);
 
-	SXMainWndElem::ListBoxAllElements = SXGUICrListBox("ListBoxAllElements", 5, 5, 240, 150, SXMainWndElem::ParamWnd->GetHWND(), 0, 0, false);
-	SXMainWndElem::ListBoxAllElements->AddHandler(ListBoxAllElementsDBLClick, WM_LBUTTONDBLCLK);
+	SXMainWndElem::ListBoxAllElements = SXGUICrListBox(5, 5, 240, 150, SXMainWndElem::ParamWnd->getHWND(), 0, 0, false);
+	SXMainWndElem::ListBoxAllElements->addHandler(ListBoxAllElementsDBLClick, WM_LBUTTONDBLCLK);
 
 
 	RECT rect_main_wnd;
-	GetClientRect(SXMainWndElem::MainWnd->GetHWND(), &rect_main_wnd);
+	GetClientRect(SXMainWndElem::MainWnd->getHWND(), &rect_main_wnd);
 
 	SXMainWndElem::MainWndOldRect = new RECT;
-	GetClientRect(SXMainWndElem::MainWnd->GetHWND(), SXMainWndElem::MainWndOldRect);
+	GetClientRect(SXMainWndElem::MainWnd->getHWND(), SXMainWndElem::MainWndOldRect);
 
-	SXMainWndElem::SettingsPanel = SXGUICrToolBar(0, 0, SXMainWndElem::MainWndOldRect->right, 26, SXMainWndElem::MainWnd->GetHWND(), 0, 123);
-	SXMainWndElem::SettingsPanel->GAlign.top = true;
-	SXMainWndElem::SettingsPanel->GAlign.left = true;
-	SXMainWndElem::SettingsPanel->GAlign.bottom = false;
-	SXMainWndElem::SettingsPanel->GAlign.right = true;
+	SXMainWndElem::SettingsPanel = SXGUICrToolBar(0, 0, SXMainWndElem::MainWndOldRect->right, 26, SXMainWndElem::MainWnd->getHWND(), 0, 123);
+	SXMainWndElem::SettingsPanel->setFollowParentSides(true, false, true, true);
 
-	ISXGUIButtonImg* ImgNew = SXGUICrButtonImgRes(IDB_BITMAP1, 3, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->GetHWND(), 0, 0);
-	ImgNew->InitCallBack();
-	ImgNew->AddHandler(CallImgNew, WM_LBUTTONUP);
+	ISXGUIButtonImg* ImgNew = SXGUICrButtonImgRes(IDB_BITMAP1, 3, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->getHWND(), 0, 0);
+	ImgNew->initCallBack();
+	ImgNew->addHandler(CallImgNew, WM_LBUTTONUP);
 	//ImgNew->ShowHint(true);
-	//ImgNew->SetHintText(SXMainWndElem::NameElements[i]);
+	//ImgNew->setHintText(SXMainWndElem::NameElements[i]);
 
-	ISXGUIButtonImg* ImgLoad = SXGUICrButtonImgRes(IDB_BITMAP2, 30, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->GetHWND(), 0, 0);
-	ImgLoad->InitCallBack();
-	ImgLoad->AddHandler(CallImgLoad, WM_LBUTTONUP);
+	ISXGUIButtonImg* ImgLoad = SXGUICrButtonImgRes(IDB_BITMAP2, 30, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->getHWND(), 0, 0);
+	ImgLoad->initCallBack();
+	ImgLoad->addHandler(CallImgLoad, WM_LBUTTONUP);
 
 	//ImgNew->ShowHint(true);
-	//ImgNew->SetHintText(SXMainWndElem::NameElements[i]);
+	//ImgNew->setHintText(SXMainWndElem::NameElements[i]);
 
-	ISXGUIButtonImg* ImgSave = SXGUICrButtonImgRes(IDB_BITMAP4, 57, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->GetHWND(), 0, 0);
-	ImgSave->InitCallBack();
-	ImgSave->AddHandler(CallImgSave, WM_LBUTTONUP);
+	ISXGUIButtonImg* ImgSave = SXGUICrButtonImgRes(IDB_BITMAP4, 57, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->getHWND(), 0, 0);
+	ImgSave->initCallBack();
+	ImgSave->addHandler(CallImgSave, WM_LBUTTONUP);
 
 	//ImgNew->ShowHint(true);
-	//ImgNew->SetHintText(SXMainWndElem::NameElements[i]);
+	//ImgNew->setHintText(SXMainWndElem::NameElements[i]);
 
-	ISXGUIButtonImg* ImgBuild = SXGUICrButtonImgRes(IDB_BITMAP3, 84, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->GetHWND(), 0, 0);
-	ImgBuild->InitCallBack();
-	ImgBuild->AddHandler(CallImgBuild, WM_LBUTTONUP);
+	ISXGUIButtonImg* ImgBuild = SXGUICrButtonImgRes(IDB_BITMAP3, 84, 1, 20, 20, RGB(255, 0, 110), RGB(220, 220, 220), SXMainWndElem::SettingsPanel->getHWND(), 0, 0);
+	ImgBuild->initCallBack();
+	ImgBuild->addHandler(CallImgBuild, WM_LBUTTONUP);
 
 	//ImgNew->ShowHint(true);
-	//ImgNew->SetHintText(SXMainWndElem::NameElements[i]);
+	//ImgNew->setHintText(SXMainWndElem::NameElements[i]);
 
 
-	SXMainWndElem::ToolsPanel = SXGUICrToolBar(0, 25, SXMainWndElem::MainWndOldRect->right, 31, SXMainWndElem::MainWnd->GetHWND(), 0, 123);
-	SXMainWndElem::ToolsPanel->GAlign.top = true;
-	SXMainWndElem::ToolsPanel->GAlign.left = true;
-	SXMainWndElem::ToolsPanel->GAlign.bottom = false;
-	SXMainWndElem::ToolsPanel->GAlign.right = true;
+	SXMainWndElem::ToolsPanel = SXGUICrToolBar(0, 25, SXMainWndElem::MainWndOldRect->right, 31, SXMainWndElem::MainWnd->getHWND(), 0, 123);
+	SXMainWndElem::ToolsPanel->setFollowParentSides(true, false, true, true);
 
 	int tmpX, tmpY, tmpAddition;
 	tmpX = 30;
 	tmpY = 1;
 	tmpAddition = 27;
 
-	SXMainWndElem::ButtonArrow = SXGUICrButtonImgRes(IDB_BITMAP5, 3, tmpY, 24, 24, RGB(0, 0, 0), RGB(0, 0, 0), SXMainWndElem::ToolsPanel->GetHWND(), 0, 0);
-	SXMainWndElem::ButtonArrow->SetColorFrame(100, 100, 100);
-	SXMainWndElem::ButtonArrow->InitCallBack();
+	SXMainWndElem::ButtonArrow = SXGUICrButtonImgRes(IDB_BITMAP5, 3, tmpY, 24, 24, RGB(0, 0, 0), RGB(0, 0, 0), SXMainWndElem::ToolsPanel->getHWND(), 0, 0);
+	SXMainWndElem::ButtonArrow->setColorFrame(RGB(100, 100, 100));
+	SXMainWndElem::ButtonArrow->initCallBack();
 
-	SXMainWndElem::ButtonArrow->GAlign.top = true;
-	SXMainWndElem::ButtonArrow->GAlign.left = true;
-	SXMainWndElem::ButtonArrow->GAlign.bottom = false;
-	SXMainWndElem::ButtonArrow->GAlign.right = false;
+	SXMainWndElem::ButtonArrow->setFollowParentSides(true, false, false, true);
 
-	SXMainWndElem::ButtonArrow->SetEnableActive(true);
-	SXMainWndElem::ButtonArrow->SetParentGroup(true);
+	SXMainWndElem::ButtonArrow->setActive(true);
+	SXMainWndElem::ButtonArrow->setParentGroup(true);
 
 	for (int i = 0; i<SX_WINCREATOR_COUNT_ELEMENT; i++)
 	{
 		sprintf(SXMainWndElem::Elements[i].Name, "%s", SXMainWndElem::NameElements[i]);
-		SXMainWndElem::Elements[i].Object = SXGUICrButtonImgRes(SXMainWndElem::ArrNumResource[i], tmpX, tmpY, 24, 24, RGB(0, 0, 0), RGB(0, 0, 0), SXMainWndElem::ToolsPanel->GetHWND(), 0, 0);
-
-		SXMainWndElem::Elements[i].Object->InitCallBack();
+		SXMainWndElem::Elements[i].Object = SXGUICrButtonImgRes(SXMainWndElem::ArrNumResource[i], tmpX, tmpY, 24, 24, RGB(0, 0, 0), RGB(0, 0, 0), SXMainWndElem::ToolsPanel->getHWND(), 0, 0);
 
-		SXMainWndElem::Elements[i].Object->SetColorFrame(100, 100, 100);
-		SXMainWndElem::Elements[i].Object->GAlign.top = true;
-		SXMainWndElem::Elements[i].Object->GAlign.left = true;
-		SXMainWndElem::Elements[i].Object->GAlign.bottom = false;
-		SXMainWndElem::Elements[i].Object->GAlign.right = false;
+		SXMainWndElem::Elements[i].Object->initCallBack();
 
-		ISXGUIButtonImg* tmptmp = dynamic_cast<ISXGUIButtonImg*>(SXMainWndElem::Elements[i].Object);
-		tmptmp->GAlign.top;
+		SXMainWndElem::Elements[i].Object->setColorFrame(RGB(100, 100, 100));
+		SXMainWndElem::Elements[i].Object->setFollowParentSides(true, false, false, true);
 
-		SXMainWndElem::Elements[i].Object->ShowHint(true);
-		SXMainWndElem::Elements[i].Object->SetHintText(SXMainWndElem::NameElements[i]);
+		SXMainWndElem::Elements[i].Object->setShowHint(true);
+		SXMainWndElem::Elements[i].Object->setHintText(SXMainWndElem::NameElements[i]);
 
-		SXMainWndElem::Elements[i].Object->SetEnableActive(true);
-		SXMainWndElem::Elements[i].Object->SetParentGroup(true);
+		SXMainWndElem::Elements[i].Object->setActive(true);
+		SXMainWndElem::Elements[i].Object->setParentGroup(true);
 		tmpX += tmpAddition;
 	}
 
 
 	sprintf(SXMainWndElem::NameJobWnd, "%s", "JobWindow");
-	SXMainWndElem::JobMainWnd = SXGUICrBaseWnd(
-		SXMainWndElem::NameJobWnd, SXMainWndElem::NameJobWnd, 0,
-		0, 100, 250, wrect.right - 456, wrect.bottom - 350,
+	SXMainWndElem::JobMainWnd = SXGUICrBaseWndEx(
+		SXMainWndElem::NameJobWnd, SXMainWndElem::NameJobWnd, 
+		100, 250, wrect.right - 456, wrect.bottom - 350,
 		0, 0, CreateSolidBrush(RGB(220, 220, 220)),
 		0, CS_HREDRAW | CS_VREDRAW, WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION,
 		0, WndProcAllDefault);
-	SXGUIBaseHandlers::InitHandlerMsg(SXMainWndElem::JobMainWnd);
-	SXMainWndElem::JobMainWnd->AddHandler(AddElement, WM_LBUTTONUP);
-	SXMainWndElem::JobMainWnd->AddHandler(MouseMove, WM_MOUSEMOVE);
-	SXMainWndElem::JobMainWnd->AddHandler(RButtonUp, WM_RBUTTONUP);
-	SXMainWndElem::JobMainWnd->AddHandler(MinimuzeWinInsteadClose, WM_CLOSE, 0, 0, 0, 0, true);
+	gui_func::base_handlers::InitHandlerMsg(SXMainWndElem::JobMainWnd);
+	SXMainWndElem::JobMainWnd->addHandler(AddElement, WM_LBUTTONUP);
+	SXMainWndElem::JobMainWnd->addHandler(MouseMove, WM_MOUSEMOVE);
+	SXMainWndElem::JobMainWnd->addHandler(RButtonUp, WM_RBUTTONUP);
+	SXMainWndElem::JobMainWnd->addHandler(MinimuzeWinInsteadClose, WM_CLOSE, 0, 0, 0, 0, true);
 
-	//ISXGUIButton* tmpbutton = SXGUICrButton("NameElem", 100, 100, 100, 20, 0, SXMainWndElem::JobMainWnd->GetHWND(), WndProcChildJob, 0);
-	//int cerr = SetWindowLong(tmpbutton->GetHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIButton*>(tmpbutton));
-	//SXMainWndElem::JobMainWnd->AddHandler(LButtonDown,WM_LBUTTONDOWN);
-	//SXMainWndElem::JobMainWnd->AddHandler(ActivateAllWindows,WM_ACTIVATE/*,0,false,0,false,true*/);
+	//ISXGUIButton* tmpbutton = SXGUICrButton("NameElem", 100, 100, 100, 20, 0, SXMainWndElem::JobMainWnd->getHWND(), WndProcChildJob, 0);
+	//int cerr = SetWindowLong(tmpbutton->getHWND(), GWL_USERDATA, (LONG)dynamic_cast<ISXGUIButton*>(tmpbutton));
+	//SXMainWndElem::JobMainWnd->addHandler(LButtonDown,WM_LBUTTONDOWN);
+	//SXMainWndElem::JobMainWnd->addHandler(ActivateAllWindows,WM_ACTIVATE/*,0,false,0,false,true*/);
 
 
 	//��������� ���������� �������
-	SXMainWndElem::StaticStatisticMouseText = SXGUICrStatic(SX_WINCREATOR_STAT_CUR_TEXT, 10, 73, 110, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticMouseText->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticMouseText->SetFont(0, 14, 0, 0, 0, 0, 0);
-	SXMainWndElem::StaticStatisticMouseGlobal = SXGUICrStatic("", 120, 58, 150, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticMouseGlobal->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticMouseGlobal->SetFont(0, 14, 0, 0, 0, 0, 0);
-	SXMainWndElem::StaticStatisticMouseParent = SXGUICrStatic("", 120, 73, 150, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticMouseParent->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticMouseParent->SetFont(0, 14, 0, 0, 0, 0, 0);
-	SXMainWndElem::StaticStatisticMouseClient = SXGUICrStatic("", 120, 88, 150, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticMouseClient->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticMouseClient->SetFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticMouseText = SXGUICrStatic(SX_WINCREATOR_STAT_CUR_TEXT, 10, 73, 110, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticMouseText->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticMouseText->setFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticMouseGlobal = SXGUICrStatic("", 120, 58, 150, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticMouseGlobal->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticMouseGlobal->setFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticMouseParent = SXGUICrStatic("", 120, 73, 150, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticMouseParent->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticMouseParent->setFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticMouseClient = SXGUICrStatic("", 120, 88, 150, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticMouseClient->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticMouseClient->setFont(0, 14, 0, 0, 0, 0, 0);
 
 	//��������� ���������� ���������
-	SXMainWndElem::StaticStatisticElemText = SXGUICrStatic(SX_WINCREATOR_STAT_ALL_ELEM_TEXT, 280, 73, 130, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticElemText->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticElemText->SetFont(0, 14, 0, 0, 0, 0, 0);
-	SXMainWndElem::StaticStatisticElemCreate = SXGUICrStatic("", 410, 58, 250, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticElemCreate->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticElemCreate->SetFont(0, 14, 0, 0, 0, 0, 0);
-	SXMainWndElem::StaticStatisticElemDelete = SXGUICrStatic("", 410, 73, 250, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticElemDelete->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticElemDelete->SetFont(0, 14, 0, 0, 0, 0, 0);
-	SXMainWndElem::StaticStatisticElemCurrent = SXGUICrStatic("", 410, 88, 250, 15, SXMainWndElem::MainWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticStatisticElemCurrent->SetColorBrush(220, 220, 220);
-	SXMainWndElem::StaticStatisticElemCurrent->SetFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticElemText = SXGUICrStatic(SX_WINCREATOR_STAT_ALL_ELEM_TEXT, 280, 73, 130, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticElemText->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticElemText->setFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticElemCreate = SXGUICrStatic("", 410, 58, 250, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticElemCreate->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticElemCreate->setFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticElemDelete = SXGUICrStatic("", 410, 73, 250, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticElemDelete->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticElemDelete->setFont(0, 14, 0, 0, 0, 0, 0);
+	SXMainWndElem::StaticStatisticElemCurrent = SXGUICrStatic("", 410, 88, 250, 15, SXMainWndElem::MainWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticStatisticElemCurrent->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::StaticStatisticElemCurrent->setFont(0, 14, 0, 0, 0, 0, 0);
 
 
 	int tmpPosX = 5;
 	int tmpPosY = 160;
 
 	//��������� �������� ��� ����������� ����������
-	SXMainWndElem::StaticParamPosX = SXGUICrStatic("PosX:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamPosX->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamPosX = SXGUICrStatic("PosX:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamPosX->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamPosX->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamPosX = SXGUICrEdit("PosX:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamPosX = SXGUICrEdit("PosX:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamPosX->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamPosX->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamPosX->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamPosX->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamPosX->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
 
-	SXMainWndElem::StaticParamPosY = SXGUICrStatic("PosY:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamPosY->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamPosY = SXGUICrStatic("PosY:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamPosY->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamPosY->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamPosY = SXGUICrEdit("PosY:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamPosY = SXGUICrEdit("PosY:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamPosY->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamPosY->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamPosY->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamPosY->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamPosY->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamWidth = SXGUICrStatic("Width:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamWidth->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamWidth = SXGUICrStatic("Width:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamWidth->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamWidth->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamWidth = SXGUICrEdit("Width:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamWidth = SXGUICrEdit("Width:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamWidth->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamWidth->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamWidth->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamWidth->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamWidth->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamHeight = SXGUICrStatic("Height:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamHeight->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamHeight = SXGUICrStatic("Height:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamHeight->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamHeight->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamHeight = SXGUICrEdit("Height:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamHeight = SXGUICrEdit("Height:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamHeight->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamHeight->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamHeight->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamHeight->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamHeight->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamCaption = SXGUICrStatic("Caption:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamCaption->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamCaption = SXGUICrStatic("Caption:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamCaption->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamCaption->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamCaption = SXGUICrEdit("Caption:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamCaption = SXGUICrEdit("Caption:", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamCaption->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamCaption->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamCaption->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamVarName = SXGUICrStatic("Variable name:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamVarName->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamVarName = SXGUICrStatic("Variable name:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamVarName->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamCaption->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamVarName = SXGUICrEdit("name", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamVarName = SXGUICrEdit("name", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamCaption->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamVarName->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamVarName->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamColorText = SXGUICrStatic("Color text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamColorText->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamColorText = SXGUICrStatic("Color text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamColorText->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamColorText->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamColorTextR = SXGUICrEdit("0", 90, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorTextR = SXGUICrEdit("0", 90, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorTextR->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorTextR->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorTextR->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextR->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorTextR->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextR->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorTextR->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorTextR->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextR->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorTextR->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextR->addHandler(InputToEditColor, WM_KEYUP);
 
-	SXMainWndElem::EditParamColorTextG = SXGUICrEdit("0", 145, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorTextG = SXGUICrEdit("0", 145, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorTextG->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorTextG->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorTextG->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextG->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorTextG->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextG->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorTextG->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorTextG->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextG->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorTextG->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextG->addHandler(InputToEditColor, WM_KEYUP);
 
-	SXMainWndElem::EditParamColorTextB = SXGUICrEdit("0", 200, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorTextB = SXGUICrEdit("0", 200, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorTextB->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorTextB->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorTextB->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextB->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorTextB->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextB->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorTextB->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorTextB->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextB->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorTextB->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextB->addHandler(InputToEditColor, WM_KEYUP);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamColorBKText = SXGUICrStatic("Color bk text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamColorBKText->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamColorBKText = SXGUICrStatic("Color bk text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamColorBKText->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamColorBKText->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamColorTextBKR = SXGUICrEdit("0", 90, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorTextBKR = SXGUICrEdit("0", 90, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorTextBKR->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorTextBKR->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorTextBKR->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextBKR->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorTextBKR->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextBKR->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorTextBKR->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorTextBKR->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextBKR->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorTextBKR->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextBKR->addHandler(InputToEditColor, WM_KEYUP);
 
-	SXMainWndElem::EditParamColorTextBKG = SXGUICrEdit("0", 145, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorTextBKG = SXGUICrEdit("0", 145, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorTextBKG->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorTextBKG->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorTextBKG->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextBKG->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorTextBKG->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextBKG->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorTextBKG->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorTextBKG->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextBKG->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorTextBKG->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextBKG->addHandler(InputToEditColor, WM_KEYUP);
 
-	SXMainWndElem::EditParamColorTextBKB = SXGUICrEdit("0", 200, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorTextBKB = SXGUICrEdit("0", 200, tmpPosY, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorTextBKB->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorTextBKB->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorTextBKB->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextBKB->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorTextBKB->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorTextBKB->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorTextBKB->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorTextBKB->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextBKB->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorTextBKB->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorTextBKB->addHandler(InputToEditColor, WM_KEYUP);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamTransparentText = SXGUICrStatic("Alpha bk text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamTransparentText->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamTransparentText = SXGUICrStatic("Alpha bk text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamTransparentText->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamTransparentText->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::ComboBoxParamTransparentText = SXGUICrComboBox("ComboBoxParamTransparentText", 90, tmpPosY - 2, 155, 70, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::ComboBoxParamTransparentText = SXGUICrComboBox(90, tmpPosY - 2, 155, 70, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::ComboBoxParamTransparentText->Font(0,15,0,0,0,0);
-	SendMessage(SXMainWndElem::ComboBoxParamTransparentText->GetHWND(), CB_SETITEMHEIGHT, -1, 14);
-	SXMainWndElem::ComboBoxParamTransparentText->AddItem("true");
-	SXMainWndElem::ComboBoxParamTransparentText->AddItem("false");
-	SXMainWndElem::ComboBoxParamTransparentText->SetSel(1);
-	//SXMainWndElem::ComboBoxParamTransparentText->AddHandler(InputInfoComboBox,WM_LBUTTONUP);
-	SXMainWndElem::ComboBoxParamTransparentText->AddHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SendMessage(SXMainWndElem::ComboBoxParamTransparentText->getHWND(), CB_SETITEMHEIGHT, -1, 14);
+	SXMainWndElem::ComboBoxParamTransparentText->addItem("true");
+	SXMainWndElem::ComboBoxParamTransparentText->addItem("false");
+	SXMainWndElem::ComboBoxParamTransparentText->setSel(1);
+	//SXMainWndElem::ComboBoxParamTransparentText->addHandler(InputInfoComboBox,WM_LBUTTONUP);
+	SXMainWndElem::ComboBoxParamTransparentText->addHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamColorBK = SXGUICrStatic("Color bk:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamColorBK->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamColorBK = SXGUICrStatic("Color bk:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamColorBK->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamColorBK->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::EditParamColorBKR = SXGUICrEdit("0", 90, tmpPosY + 1, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorBKR = SXGUICrEdit("0", 90, tmpPosY + 1, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorBKR->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorBKR->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorBKR->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorBKR->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorBKR->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorBKR->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorBKR->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorBKR->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorBKR->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorBKR->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorBKR->addHandler(InputToEditColor, WM_KEYUP);
 
-	SXMainWndElem::EditParamColorBKG = SXGUICrEdit("0", 145, tmpPosY + 1, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorBKG = SXGUICrEdit("0", 145, tmpPosY + 1, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorBKG->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorBKG->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorBKG->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorBKG->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorBKG->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorBKG->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorBKG->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorBKG->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorBKG->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorBKG->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorBKG->addHandler(InputToEditColor, WM_KEYUP);
 
-	SXMainWndElem::EditParamColorBKB = SXGUICrEdit("0", 200, tmpPosY + 1, 45, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamColorBKB = SXGUICrEdit("0", 200, tmpPosY + 1, 45, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamColorBKB->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamColorBKB->ModifyStyle(ES_NUMBER, 0);
-	SXMainWndElem::EditParamColorBKB->AddHandler(InputInfoEdit, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorBKB->AddHandler(InitColorText, WM_LBUTTONDBLCLK);
-	SXMainWndElem::EditParamColorBKB->AddHandler(InputToEditColor, WM_KEYDOWN);
-	SXMainWndElem::EditParamColorBKB->AddHandler(InputToEditColor, WM_KEYUP);
+	SXMainWndElem::EditParamColorBKB->modifyStyle(ES_NUMBER, 0);
+	SXMainWndElem::EditParamColorBKB->addHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorBKB->addHandler(InitColorText, WM_LBUTTONDBLCLK);
+	SXMainWndElem::EditParamColorBKB->addHandler(InputToEditColor, WM_KEYDOWN);
+	SXMainWndElem::EditParamColorBKB->addHandler(InputToEditColor, WM_KEYUP);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamFont = SXGUICrStatic("Font:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamFont->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamFont = SXGUICrStatic("Font:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamFont->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamFont->Font(0,15,0,0,0,0);
-	SXMainWndElem::ButtonParamSelectFont = SXGUICrButton("View font", 90, tmpPosY, 155, 15, SXGUI_BUTTON_IMAGE_NONE, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::ButtonParamSelectFont = SXGUICrButton("View font", 90, tmpPosY, 155, 15, SXGUI_BUTTON_IMAGE_NONE, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::ButtonParamSelectFont->Font(0,13,0,0,0,0);
-	SXMainWndElem::ButtonParamSelectFont->AddHandler(InitFont, WM_LBUTTONUP);
+	SXMainWndElem::ButtonParamSelectFont->addHandler(InitFont, WM_LBUTTONUP);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamFontParent = SXGUICrStatic("Regulation Font:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamFontParent->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamFontParent = SXGUICrStatic("Regulation Font:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamFontParent->setColorBrush(RGB(220, 220, 220));
 
-	SXMainWndElem::ComboBoxParamParentFont = SXGUICrComboBox("Parent", 90, tmpPosY - 1, 155, 70, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SendMessage(SXMainWndElem::ComboBoxParamParentFont->GetHWND(), CB_SETITEMHEIGHT, -1, 15);
-	SXMainWndElem::ComboBoxParamParentFont->AddItem("Parent");
-	SXMainWndElem::ComboBoxParamParentFont->AddItem("Default gui");
-	SXMainWndElem::ComboBoxParamParentFont->AddItem("User selected");
-	SXMainWndElem::ComboBoxParamParentFont->SetSel(1);
-	SXMainWndElem::ComboBoxParamParentFont->AddHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMainWndElem::ComboBoxParamParentFont = SXGUICrComboBox(90, tmpPosY - 1, 155, 70, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SendMessage(SXMainWndElem::ComboBoxParamParentFont->getHWND(), CB_SETITEMHEIGHT, -1, 15);
+	SXMainWndElem::ComboBoxParamParentFont->addItem("Parent");
+	SXMainWndElem::ComboBoxParamParentFont->addItem("Default gui");
+	SXMainWndElem::ComboBoxParamParentFont->addItem("User selected");
+	SXMainWndElem::ComboBoxParamParentFont->setSel(1);
+	SXMainWndElem::ComboBoxParamParentFont->addHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamHintText = SXGUICrStatic("Hint text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamHintText->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamHintText = SXGUICrStatic("Hint text:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamHintText->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamHintText->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamHintText = SXGUICrEdit("", 90, tmpPosY + 2, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::EditParamHintText = SXGUICrEdit("", 90, tmpPosY + 2, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::EditParamHintText->Font(0,15,0,0,0,0);
-	SXMainWndElem::EditParamHintText->AddHandler(InputInfoEdit, WM_KEYDOWN);
+	SXMainWndElem::EditParamHintText->addHandler(InputInfoEdit, WM_KEYDOWN);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamHintVisible = SXGUICrStatic("Hint visible:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamHintVisible->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamHintVisible = SXGUICrStatic("Hint visible:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamHintVisible->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamHintVisible->Font(0,15,0,0,0,0);
 
-	SXMainWndElem::ComboBoxParamHintVisible = SXGUICrComboBox("ComboBoxParamHintVisible", 90, tmpPosY, 155, 70, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::ComboBoxParamHintVisible = SXGUICrComboBox(90, tmpPosY, 155, 70, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::ComboBoxParamHintVisible->Font(0,15,0,0,0,0);
-	SendMessage(SXMainWndElem::ComboBoxParamHintVisible->GetHWND(), CB_SETITEMHEIGHT, -1, 15);
-	SXMainWndElem::ComboBoxParamHintVisible->AddItem("true");
-	SXMainWndElem::ComboBoxParamHintVisible->AddItem("false");
-	SXMainWndElem::ComboBoxParamHintVisible->SetSel(1);
-	SXMainWndElem::ComboBoxParamHintVisible->AddHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SendMessage(SXMainWndElem::ComboBoxParamHintVisible->getHWND(), CB_SETITEMHEIGHT, -1, 15);
+	SXMainWndElem::ComboBoxParamHintVisible->addItem("true");
+	SXMainWndElem::ComboBoxParamHintVisible->addItem("false");
+	SXMainWndElem::ComboBoxParamHintVisible->setSel(1);
+	SXMainWndElem::ComboBoxParamHintVisible->addHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamVisible = SXGUICrStatic("Visible:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamVisible->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamVisible = SXGUICrStatic("Visible:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamVisible->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamVisible->Font(0,15,0,0,0,0);
-	SXMainWndElem::ComboBoxParamVisible = SXGUICrComboBox("ComboBoxParamVisible", 90, tmpPosY, 155, 70, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::ComboBoxParamVisible = SXGUICrComboBox(90, tmpPosY, 155, 70, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::ComboBoxParamVisible->Font(0,15,0,0,0,0);
-	SendMessage(SXMainWndElem::ComboBoxParamVisible->GetHWND(), CB_SETITEMHEIGHT, -1, 15);
-	SXMainWndElem::ComboBoxParamVisible->AddItem("true");
-	SXMainWndElem::ComboBoxParamVisible->AddItem("false");
-	SXMainWndElem::ComboBoxParamVisible->SetSel(0);
-	SXMainWndElem::ComboBoxParamVisible->AddHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SendMessage(SXMainWndElem::ComboBoxParamVisible->getHWND(), CB_SETITEMHEIGHT, -1, 15);
+	SXMainWndElem::ComboBoxParamVisible->addItem("true");
+	SXMainWndElem::ComboBoxParamVisible->addItem("false");
+	SXMainWndElem::ComboBoxParamVisible->setSel(0);
+	SXMainWndElem::ComboBoxParamVisible->addHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamEnabled = SXGUICrStatic("Enabled:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamEnabled->SetColorBrush(220, 220, 220);
+	SXMainWndElem::StaticParamEnabled = SXGUICrStatic("Enabled:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamEnabled->setColorBrush(RGB(220, 220, 220));
 	//SXMainWndElem::StaticParamEnabled->Font(0,15,0,0,0,0);
-	SXMainWndElem::ComboBoxParamEnabled = SXGUICrComboBox("ComboBoxParamEnabled", 90, tmpPosY, 155, 70, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
+	SXMainWndElem::ComboBoxParamEnabled = SXGUICrComboBox(90, tmpPosY, 155, 70, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
 	//SXMainWndElem::ComboBoxParamEnabled->Font(0,15,0,0,0,0);
-	SXMainWndElem::ComboBoxParamEnabled->AddItem("true");
-	SXMainWndElem::ComboBoxParamEnabled->AddItem("false");
-	SXMainWndElem::ComboBoxParamEnabled->SetSel(0);
-	SXMainWndElem::ComboBoxParamEnabled->AddHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
+	SXMainWndElem::ComboBoxParamEnabled->addItem("true");
+	SXMainWndElem::ComboBoxParamEnabled->addItem("false");
+	SXMainWndElem::ComboBoxParamEnabled->setSel(0);
+	SXMainWndElem::ComboBoxParamEnabled->addHandler(InputInfoComboBox, WM_KEYDOWN, VK_RETURN, 1, 0, 0, 0);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamImgBLoadImg = SXGUICrStatic("Image:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamImgBLoadImg->SetColorBrush(220, 220, 220);
-	SXMainWndElem::ButtomParamImgBLoadImg = SXGUICrButton("LoadImg", 90, tmpPosY, 155, 15, SXGUI_BUTTON_IMAGE_NONE, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::ButtomParamImgBLoadImg->AddHandler(InitImageForButtonImg, WM_LBUTTONUP);
+	SXMainWndElem::StaticParamImgBLoadImg = SXGUICrStatic("Image:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamImgBLoadImg->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::ButtomParamImgBLoadImg = SXGUICrButton("LoadImg", 90, tmpPosY, 155, 15, SXGUI_BUTTON_IMAGE_NONE, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::ButtomParamImgBLoadImg->addHandler(InitImageForButtonImg, WM_LBUTTONUP);
 
 	tmpPosY += 20;
 
-	SXMainWndElem::StaticParamWinMenu = SXGUICrStatic("Menu window:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0);
-	SXMainWndElem::StaticParamWinMenu->SetColorBrush(220, 220, 220);
-	SXMainWndElem::CheckBoxParamWinMenu = SXGUICrCheckBox("Enable", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->GetHWND(), 0, 0, false);
-	SXMainWndElem::CheckBoxParamWinMenu->SetColorBrush(220, 220, 220);
-	//SXMainWndElem::CheckBoxParamWinMenu->AddHandler(InitWindowMenu,WM_LBUTTONUP);
+	SXMainWndElem::StaticParamWinMenu = SXGUICrStatic("Menu window:", 5, tmpPosY, 80, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0);
+	SXMainWndElem::StaticParamWinMenu->setColorBrush(RGB(220, 220, 220));
+	SXMainWndElem::CheckBoxParamWinMenu = SXGUICrCheckBox("Enable", 90, tmpPosY, 155, 15, SXMainWndElem::ParamWnd->getHWND(), 0, 0, false);
+	SXMainWndElem::CheckBoxParamWinMenu->setColorBrush(RGB(220, 220, 220));
+	//SXMainWndElem::CheckBoxParamWinMenu->addHandler(InitWindowMenu,WM_LBUTTONUP);
 
-	SXMainWndElem::WndLog = SXGUICrBaseWnd(
-		"WndLog", "WndLog", 0,
-		0, 0, wrect.bottom - 220, 500, 220,
+	SXMainWndElem::WndLog = SXGUICrBaseWndEx(
+		"WndLog", "WndLog",  
+		0, wrect.bottom - 220, 500, 220,
 		0, 0, CreateSolidBrush(RGB(220, 220, 220)),
 		WS_EX_TOOLWINDOW, CS_HREDRAW | CS_VREDRAW, WS_CAPTION | WS_MINIMIZEBOX | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_OVERLAPPED,
 		0, WndProcAllDefault);
-	SXMainWndElem::WndLog->AddHandler(MinimuzeWinInsteadClose, WM_CLOSE, 0, 0, 0, 0, true);
+	SXMainWndElem::WndLog->addHandler(MinimuzeWinInsteadClose, WM_CLOSE, 0, 0, 0, 0, true);
 	RECT crWndLog;
-	GetClientRect(SXMainWndElem::WndLog->GetHWND(), &crWndLog);
-	SXMainWndElem::ListBoxLog = SXGUICrListBox("ListBoxLog", crWndLog.left, crWndLog.top, crWndLog.right, crWndLog.bottom, SXMainWndElem::WndLog->GetHWND(), 0, 0, false);
+	GetClientRect(SXMainWndElem::WndLog->getHWND(), &crWndLog);
+	SXMainWndElem::ListBoxLog = SXGUICrListBox( crWndLog.left, crWndLog.top, crWndLog.right, crWndLog.bottom, SXMainWndElem::WndLog->getHWND(), 0, 0, false);
 	//SXMainWndElem::ListBoxLog->Font(0,14,0,0,0,0);
 	InLog("%s", "Log created, run cycle ...");
 
-	//SXMainWndElem::JobMainWnd->GetHWND();
+	//SXMainWndElem::JobMainWnd->getHWND();
 
-	SXMainWndElem::ArrMainWnd[0] = SXMainWndElem::MainWnd->GetHWND();
-	SXMainWndElem::ArrMainWnd[1] = SXMainWndElem::JobMainWnd->GetHWND();
-	SXMainWndElem::ArrMainWnd[2] = SXMainWndElem::ParamWnd->GetHWND();
-	SXMainWndElem::ArrMainWnd[3] = SXMainWndElem::WndLog->GetHWND();
+	SXMainWndElem::ArrMainWnd[0] = SXMainWndElem::MainWnd->getHWND();
+	SXMainWndElem::ArrMainWnd[1] = SXMainWndElem::JobMainWnd->getHWND();
+	SXMainWndElem::ArrMainWnd[2] = SXMainWndElem::ParamWnd->getHWND();
+	SXMainWndElem::ArrMainWnd[3] = SXMainWndElem::WndLog->getHWND();
 
 	SXNameSapce::InitAllElements();
-	SXNameSapce::OutputGUIInFile->Visible(false);
+	SXNameSapce::OutputGUIInFile->setVisible(false);
 	AboutSXWinCreator::InitAllElements();
-	AboutSXWinCreator::JobWindow->Visible(false);
+	AboutSXWinCreator::JobWindow->setVisible(false);
 
 	MSG msg;
 	ZeroMemory(&msg, sizeof(MSG));
diff --git a/source/sxwincreator/sxwincreator.h b/source/sxwincreator/sxwincreator.h
new file mode 100644
index 000000000..e32a02b1f
--- /dev/null
+++ b/source/sxwincreator/sxwincreator.h
@@ -0,0 +1,224 @@
+
+#ifndef __SXWINCREATOR_H
+#define __SXWINCREATOR_H
+
+//����������� � ������� �������� ����
+//��� ������� ������� ��� ��� �� ������ ���� ������������ lduttonup
+//���� ������� ������ �� ��� � �����
+
+#include <windows.h>
+#include <gdefines.h>
+
+#include <Shlwapi.h>
+#include <Shellapi.h>
+#pragma comment(lib, "Shlwapi.lib")
+#pragma comment(lib, "Comctl32.lib")
+
+#if defined(_DEBUG)
+#pragma comment(lib, "sxcore_d.lib")
+#else
+#pragma comment(lib, "sxcore.lib")
+#endif
+#include <core/sxcore.h>
+
+
+#if defined(_DEBUG)
+#pragma comment(lib, "sxguiwinapi_d.lib")
+#else
+#pragma comment(lib, "sxguiwinapi.lib")
+#endif
+#include <SXGUIWinApi/sxgui.h>
+
+#include <common/Array.h>
+#include <SXWinCreator/resource.h>
+
+#include <sxwincreator\about_sxwincreator.h>
+#include <sxwincreator\windowoutput.h>
+#include <sxwincreator\sx_param_wnd_data.h>
+#include <sxwincreator\callbacks.h>
+
+
+#define SX_SAFE_DELETE_A
+#define SX_SAFE_DELETE
+
+#define SX_WINCREATOR_COUNT_ELEMENT 17
+
+#define SX_WINCREATOR_STAT_CUR_TEXT "Statistic for cursor:"
+#define SX_WINCREATOR_STAT_CUR_G "desktop:\t"
+#define SX_WINCREATOR_STAT_CUR_PARENT "parent:\t\t"
+#define SX_WINCREATOR_STAT_CUR_CLIENT "element:\t"
+
+#define SX_WINCREATOR_STAT_ALL_ELEM_TEXT "Statistic for all elements:"
+#define SX_WINCREATOR_STAT_ALL_ELEM_COUNT_CREATE "Create:\t"
+#define SX_WINCREATOR_STAT_ALL_ELEM_COUNT_DELETE "Delete:\t"
+#define SX_WINCREATOR_STAT_ALL_ELEM_COUNT_CURRENT "Current:\t"
+
+#define SXWINCREATORVERSION "0.9.0"
+
+namespace SXEngine
+{
+	extern HWND Hwnd;
+	extern HINSTANCE Hinstance;
+};
+
+struct SXElement
+{
+	ISXGUIButtonImg* Object;
+	char Name[256];
+};
+
+struct SXCreateElement
+{
+	SXCreateElement(){ Object = 0; Name[0] = SysClassName[0] = SXClassName[0] = 0; }
+	ISXGUIComponent* Object;
+	char Name[256];
+	char SysClassName[64];
+	char SXClassName[64];
+};
+
+namespace SXMainWndElem
+{
+	extern HWND ArrMainWnd[4];
+	//������� ����
+	extern ISXGUIBaseWnd* MainWnd;
+	extern ISXGUIBaseWnd* WndLog;
+	extern ISXGUIListBox* ListBoxLog;
+	extern ISXGUIBaseWnd* ParamWnd;
+	extern ISXGUIListBox* ListBoxAllElements;
+
+	extern ISXGUIButtonImg* ButtonArrow;
+
+	extern ISXGUIStatic* StaticParamImgBLoadImg;
+	extern ISXGUIButton* ButtomParamImgBLoadImg;
+
+	extern ISXGUIStatic* StaticParamWinMenu;
+	extern ISXGUICheckBox* CheckBoxParamWinMenu;
+
+	extern ISXGUIStatic* StaticParamPosX;
+	extern ISXGUIStatic* StaticParamPosY;
+	extern ISXGUIStatic* StaticParamWidth;
+	extern ISXGUIStatic* StaticParamHeight;
+
+	extern ISXGUIEdit* EditParamPosX;
+	extern ISXGUIEdit* EditParamPosY;
+	extern ISXGUIEdit* EditParamWidth;
+	extern ISXGUIEdit* EditParamHeight;
+
+
+	extern ISXGUIStatic* StaticParamCaption;
+	extern ISXGUIEdit* EditParamCaption;
+
+	extern ISXGUIStatic* StaticParamVarName;
+	extern ISXGUIEdit* EditParamVarName;
+
+
+	extern ISXGUIStatic* StaticParamColorText;
+	extern ISXGUIStatic* StaticParamColorBK;
+	extern ISXGUIStatic* StaticParamColorBKText;
+	extern ISXGUIStatic* StaticParamTransparentText;
+
+	extern ISXGUIEdit* EditParamColorTextR;
+	extern ISXGUIEdit* EditParamColorTextG;
+	extern ISXGUIEdit* EditParamColorTextB;
+
+
+	extern ISXGUIEdit* EditParamColorTextBKR;
+	extern ISXGUIEdit* EditParamColorTextBKG;
+	extern ISXGUIEdit* EditParamColorTextBKB;
+
+
+	extern ISXGUIEdit* EditParamColorBKR;
+	extern ISXGUIEdit* EditParamColorBKG;
+	extern ISXGUIEdit* EditParamColorBKB;
+
+
+	extern ISXGUIComboBox* ComboBoxParamTransparentText;
+
+
+	extern ISXGUIStatic* StaticParamFont;
+	extern ISXGUIStatic* StaticParamFontParent;
+	extern ISXGUIComboBox* ComboBoxParamParentFont;
+	extern ISXGUIButton* ButtonParamSelectFont;
+
+	extern ISXGUIStatic* StaticParamHintText;
+	extern ISXGUIEdit* EditParamHintText;
+
+	extern ISXGUIStatic* StaticParamHintVisible;
+	extern ISXGUIComboBox* ComboBoxParamHintVisible;
+
+
+	extern ISXGUIStatic* StaticParamVisible;
+	extern ISXGUIComboBox* ComboBoxParamVisible;
+
+	extern ISXGUIStatic* StaticParamEnabled;
+	extern ISXGUIComboBox* ComboBoxParamEnabled;
+	//SXGUIComboBox* ComboBoxParamEnabled = 0;
+
+	extern RECT* MainWndOldRect;
+
+	extern ISXGUIToolBar* SettingsPanel;
+	extern ISXGUIToolBar* ToolsPanel;
+
+	//�����  ���� ����������� ������� ����� �������
+	extern char* NameElements[];
+	extern DWORD ArrNumResource[];
+	//���������� ����� ������������ ��������
+	//����� ��� �����
+	extern int NumSourceElements[SX_WINCREATOR_COUNT_ELEMENT];
+	extern Array<SXCreateElement*> CreateElements;
+	//������ ������ � ������������ �������� ����������� ���������
+	extern SXElement Elements[SX_WINCREATOR_COUNT_ELEMENT];
+
+	//������ ���� ��������� ���������
+	//Array<SXElement*> tmparr;
+	//Array<SXCreateElement*> CreateElements;
+
+	//���������� ����� ��������� ��������, ���� -1 ������ ������ �� ��������
+	extern int NumActiveElement;
+
+	//������� ��� ����������
+	extern ISXGUIStatic* StaticStatisticMouseText;
+	extern ISXGUIStatic* StaticStatisticMouseGlobal;
+	extern ISXGUIStatic* StaticStatisticMouseParent;
+	extern ISXGUIStatic* StaticStatisticMouseClient;
+
+	extern ISXGUIStatic* StaticStatisticElemText;
+	extern ISXGUIStatic* StaticStatisticElemCreate;
+	extern ISXGUIStatic* StaticStatisticElemDelete;
+	extern ISXGUIStatic* StaticStatisticElemCurrent;
+
+	//���������� ��������� ���������
+	extern int CountCreateNewElem;
+	//���������� ��������� ���������
+	extern int CountDeleteElem;
+	//������� ���������� ���������
+	extern int CountCurrentElem;
+
+	extern ISXGUIMenuWindow* MainMenu;
+
+	extern ISXGUIMenuWindow* MenuWindow;
+
+	extern HCURSOR CurRePos, CurSW, CurSE, CurE, CurS, CurNS, CurWE;
+
+	//
+	extern ISXGUIBaseWnd* JobMainWnd;
+	extern char NameJobWnd[256];
+
+	extern POINT GlobalCurPos;
+
+	//����� �� ����������� ����������� �����������
+	//������� �� ���� ����� ��� ��� ������ ������
+	extern bool IsCreatedEl;
+	//���������� ���� �� ���� ������
+	extern bool IsLoadedEl;
+};
+
+//##########################################################################
+
+void InLog(const char* format, ...);
+
+void CreateCursor();
+
+bool Render();
+
+#endif
\ No newline at end of file
-- 
GitLab