diff options
444 files changed, 30445 insertions, 21907 deletions
@@ -258,8 +258,10 @@ iup_sbox.c \ iup_normalizer.c \ iup_tree.c \ iup_oldmask.c \ +iup_split.c \ iupmot_common.c \ iupmot_color.c \ +iupmot_draw.c \ iupmot_focus.c \ iupmot_font.c \ iupmot_key.c \ @@ -356,6 +358,7 @@ il_tabs.c \ il_fontdlg.c \ il_tree.c \ il_progressbar.c \ +il_split.c \ iuplua_cd.c \ iuplua_controls.c \ il_mask.c \ diff --git a/Makefile.mingw32 b/Makefile.mingw32 index f4c7fd8..48a1e79 100644 --- a/Makefile.mingw32 +++ b/Makefile.mingw32 @@ -246,6 +246,7 @@ iup_getparam.c \ iup_sbox.c \ iup_normalizer.c \ iup_tree.c \ +iup_split.c \ iupwin_brush.c \ iupwin_button.c \ iupwin_canvas.c \ @@ -411,6 +412,7 @@ il_tabs.c \ il_fontdlg.c \ il_tree.c \ il_progressbar.c \ +il_split.c \ iuplua_cd.c \ iuplua_controls.c \ il_mask.c \ diff --git a/iup/COPYRIGHT b/iup/COPYRIGHT index dd31d6c..0061f2d 100755 --- a/iup/COPYRIGHT +++ b/iup/COPYRIGHT @@ -7,7 +7,7 @@ and commercial purposes at absolutely no cost. =============================================================================== -Copyright (C) 1994-2009 Tecgraf, PUC-Rio. +Copyright (C) 1994-2010 Tecgraf, PUC-Rio. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/iup/etc/iup.rc b/iup/etc/iup.rc index eab8cf5..49c324d 100755 --- a/iup/etc/iup.rc +++ b/iup/etc/iup.rc @@ -12,7 +12,7 @@ BEGIN VALUE "CompanyName", "Tecgraf/PUC-Rio\0" VALUE "FileDescription", "IUP - Portable User Interface\0" VALUE "FileVersion", "3.0.0\0" - VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0" + VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0" VALUE "OriginalFilename", "iup.dll\0" VALUE "ProductName", "IUP for Windows\0" VALUE "ProductVersion", "3.0.0\0" diff --git a/iup/include/iup.h b/iup/include/iup.h index 9913329..2d33b98 100755 --- a/iup/include/iup.h +++ b/iup/include/iup.h @@ -19,11 +19,11 @@ extern "C" { #define IUP_NAME "IUP - Portable User Interface" -#define IUP_COPYRIGHT "Copyright (C) 1994-2009 Tecgraf, PUC-Rio." +#define IUP_COPYRIGHT "Copyright (C) 1994-2010 Tecgraf, PUC-Rio." #define IUP_DESCRIPTION "Portable toolkit for building graphical user interfaces." -#define IUP_VERSION "3.0" /* bug fixes are reported only by IupVersion functions */ -#define IUP_VERSION_NUMBER 300000 -#define IUP_VERSION_DATE "2009/10/02" +#define IUP_VERSION "3.1" /* bug fixes are reported only by IupVersion functions */ +#define IUP_VERSION_NUMBER 301000 +#define IUP_VERSION_DATE "2010/04/22" typedef struct Ihandle_ Ihandle; typedef int (*Icallback)(Ihandle*); @@ -38,6 +38,7 @@ void IupImageLibOpen (void); int IupMainLoop (void); int IupLoopStep (void); +int IupLoopStepWait (void); int IupMainLoopLevel (void); void IupFlush (void); void IupExitLoop (void); @@ -148,6 +149,7 @@ Ihandle* IupNormalizerv(Ihandle* *ih_list); Ihandle* IupCbox (Ihandle* child, ...); Ihandle* IupCboxv (Ihandle* *children); Ihandle* IupSbox (Ihandle *child); +Ihandle* IupSplit (Ihandle* child1, Ihandle* child2); Ihandle* IupFrame (Ihandle* child); @@ -197,12 +199,13 @@ int IupTreeSetUserId(Ihandle* ih, int id, void* userid); void* IupTreeGetUserId(Ihandle* ih, int id); int IupTreeGetId(Ihandle* ih, void *userid); -void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, char* value); -void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, char* value); +void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, const char* value); +void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, const char* value); char* IupTreeGetAttribute (Ihandle* ih, const char* name, int id); int IupTreeGetInt (Ihandle* ih, const char* name, int id); float IupTreeGetFloat (Ihandle* ih, const char* name, int id); -void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, char* format, ...); +void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, const char* format, ...); +void IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named); /************************************************************************/ @@ -338,7 +341,7 @@ int IupMain (int argc, char** argv); /* In C++ we have to declare the prototype #endif /****************************************************************************** -* Copyright (C) 1994-2009 Tecgraf, PUC-Rio. +* Copyright (C) 1994-2010 Tecgraf, PUC-Rio. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the diff --git a/iup/include/iupcbs.h b/iup/include/iupcbs.h index f33166b..70d117f 100755 --- a/iup/include/iupcbs.h +++ b/iup/include/iupcbs.h @@ -24,7 +24,7 @@ typedef int (*IFnnii)(Ihandle*, Ihandle*, int, int); /* drop_cb */ typedef int (*IFnnn)(Ihandle*, Ihandle*, Ihandle*); /* tabchange_cb */ typedef int (*IFnss)(Ihandle*, char *, char *); /* file_cb */ typedef int (*IFns)(Ihandle*, char *); /* multiselect_cb */ -typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, renamenode_cb, rename_cb */ +typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, rename_cb */ typedef int (*IFnsii)(Ihandle*, char*, int, int); /* list_action */ typedef int (*IFnsiii)(Ihandle*, char*, int, int, int); /* dropfiles_cb */ typedef int (*IFniis)(Ihandle*, int, int, char*); /* motion_cb, click_cb, value_edit_cb */ diff --git a/iup/include/iupcontrols.h b/iup/include/iupcontrols.h index c7bc566..a30d407 100755 --- a/iup/include/iupcontrols.h +++ b/iup/include/iupcontrols.h @@ -15,9 +15,6 @@ extern "C" { int IupControlsOpen(void); void IupControlsClose(void); /* for backward compatibility only, does nothing since IUP 3 */ -void IupOldValOpen(void); -void IupOldTabsOpen(void); - Ihandle* IupColorbar(void); Ihandle* IupCells(void); Ihandle *IupColorBrowser(void); diff --git a/iup/include/iuplua.h b/iup/include/iuplua.h index dc660b5..854a858 100755 --- a/iup/include/iuplua.h +++ b/iup/include/iuplua.h @@ -23,7 +23,7 @@ int iuplua_dofile (char *filename); #ifdef LUA_TNONE /* Lua 5 */ int iuplua_open(lua_State *L); -int iupkey_open(lua_State *L); +int iupkey_open(lua_State *L); /* does nothing, kept for backward compatibility */ int iuplua_close(lua_State * L); /* utilities */ diff --git a/iup/mak.vc8/iupgtk.vcproj b/iup/mak.vc8/iupgtk.vcproj index 5d0a8e2..9fccbb2 100755 --- a/iup/mak.vc8/iupgtk.vcproj +++ b/iup/mak.vc8/iupgtk.vcproj @@ -143,6 +143,10 @@ > </File> <File + RelativePath="..\src\gtk\iupgtk_clipboard.c" + > + </File> + <File RelativePath="..\src\gtk\iupgtk_colordlg.c" > </File> diff --git a/iup/mak.vc8/iuplua5.vcproj b/iup/mak.vc8/iuplua5.vcproj index 0c62f76..1245e86 100755 --- a/iup/mak.vc8/iuplua5.vcproj +++ b/iup/mak.vc8/iuplua5.vcproj @@ -123,6 +123,10 @@ > </File> <File + RelativePath="..\srclua5\il_clipboard.c" + > + </File> + <File RelativePath="..\srclua5\il_colordlg.c" > </File> @@ -307,6 +311,10 @@ > </File> <File + RelativePath="..\srclua5\clipboard.lua" + > + </File> + <File RelativePath="..\srclua5\colordlg.lua" > </File> diff --git a/iup/mak.vc8/iupmot.vcproj b/iup/mak.vc8/iupmot.vcproj index aedd67e..d2d1780 100755 --- a/iup/mak.vc8/iupmot.vcproj +++ b/iup/mak.vc8/iupmot.vcproj @@ -161,6 +161,10 @@ > </File> <File + RelativePath="..\src\mot\iupmot_clipboard.c" + > + </File> + <File RelativePath="..\src\mot\iupmot_colordlg.c" > </File> diff --git a/iup/mak.vc8/iupsample.vcproj b/iup/mak.vc8/iupsample.vcproj index bddc4f6..dde33fd 100755 --- a/iup/mak.vc8/iupsample.vcproj +++ b/iup/mak.vc8/iupsample.vcproj @@ -616,6 +616,13 @@ <File RelativePath="..\html\examples\C\sample.c" > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> </File> <File RelativePath="..\html\examples\C\sbox1.c" diff --git a/iup/mak.vc8/iupsamplegtk.vcproj b/iup/mak.vc8/iupsamplegtk.vcproj index b4792dd..290a86e 100755 --- a/iup/mak.vc8/iupsamplegtk.vcproj +++ b/iup/mak.vc8/iupsamplegtk.vcproj @@ -435,6 +435,14 @@ <File RelativePath="..\html\examples\C\list1.c" > + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> </File> <File RelativePath="..\html\examples\C\list2.c" @@ -777,7 +785,6 @@ > <FileConfiguration Name="Debug|Win32" - ExcludedFromBuild="true" > <Tool Name="VCCLCompilerTool" diff --git a/iup/mak.vc8/iuptest.vcproj b/iup/mak.vc8/iuptest.vcproj index 375d83f..b539677 100755 --- a/iup/mak.vc8/iuptest.vcproj +++ b/iup/mak.vc8/iuptest.vcproj @@ -159,6 +159,10 @@ > </File> <File + RelativePath="..\test\clipboard.c" + > + </File> + <File RelativePath="..\test\colorbar.c" > </File> @@ -255,6 +259,14 @@ > </File> <File + RelativePath="..\test\sbox.c" + > + </File> + <File + RelativePath="..\test\scanf.c" + > + </File> + <File RelativePath="..\test\spin.c" > </File> @@ -298,6 +310,10 @@ RelativePath="..\test\vbox.c" > </File> + <File + RelativePath="..\test\zbox.c" + > + </File> </Files> <Globals> </Globals> diff --git a/iup/mak.vc8/iuptestgtk.vcproj b/iup/mak.vc8/iuptestgtk.vcproj index 46d9e49..017bb69 100755 --- a/iup/mak.vc8/iuptestgtk.vcproj +++ b/iup/mak.vc8/iuptestgtk.vcproj @@ -154,6 +154,10 @@ > </File> <File + RelativePath="..\test\clipboard.c" + > + </File> + <File RelativePath="..\test\colorbar.c" > </File> @@ -246,6 +250,14 @@ > </File> <File + RelativePath="..\test\sbox.c" + > + </File> + <File + RelativePath="..\test\scanf.c" + > + </File> + <File RelativePath="..\test\spin.c" > </File> @@ -289,6 +301,10 @@ RelativePath="..\test\vbox.c" > </File> + <File + RelativePath="..\test\zbox.c" + > + </File> </Files> <Globals> </Globals> diff --git a/iup/mak.vc8/iupwin.vcproj b/iup/mak.vc8/iupwin.vcproj index c1e2434..cf53df8 100755 --- a/iup/mak.vc8/iupwin.vcproj +++ b/iup/mak.vc8/iupwin.vcproj @@ -176,6 +176,10 @@ > </File> <File + RelativePath="..\src\win\iupwin_clipboard.c" + > + </File> + <File RelativePath="..\src\win\iupwin_colordlg.c" > </File> diff --git a/iup/mak.vc9/iup.sln b/iup/mak.vc9/iup.sln index 898c75f..47e2076 100755 --- a/iup/mak.vc9/iup.sln +++ b/iup/mak.vc9/iup.sln @@ -95,6 +95,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5_exe", "iupluaexe5.v {1EBC7A53-4677-AAAA-1234-49D301F17D85} = {1EBC7A53-4677-AAAA-1234-49D301F17D85} {1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1EBC7A53-4677-75D7-8D4A-49D301F17D85} {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} + {1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1EBC7A53-4677-FFFF-1234-49D301F17D85} {B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {B4823266-DF8C-4EFB-91C0-C7688C234EAC} {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} @@ -196,6 +197,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5gtk_exe", "iupluaexe {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA} = {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA} EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B24D8E0A-2EB5-4C49-A146-C0AABEF81788}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -285,7 +288,6 @@ Global {2F92EC58-D94C-40BF-8C82-77607C72E1E3} = {FC52B7B5-744E-45D6-815C-3502F9D965E7} {9462FDEA-3E53-4250-8710-DD50AF48607C} = {FC52B7B5-744E-45D6-815C-3502F9D965E7} {C684B76D-52EC-49CE-84F2-B031509419A5} = {FC52B7B5-744E-45D6-815C-3502F9D965E7} - {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {11041D08-354A-4300-9624-41277E67DE34} {1EBC7A53-4677-4C3A-8DFF-269001F17D85} = {11041D08-354A-4300-9624-41277E67DE34} {1EBC7A53-4677-4C3A-8DFF-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34} {1EBC7A53-33FF-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34} @@ -293,7 +295,6 @@ Global {1EBC7A53-4677-1234-DDDD-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34} {B4823266-DF8C-4EFB-91C0-C7E78C234EAC} = {11041D08-354A-4300-9624-41277E67DE34} {1EBC7A53-4677-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34} - {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} {1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} {1EBC7A53-4677-4C3A-8D4A-49D301157985} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} @@ -302,7 +303,12 @@ Global {B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} {1EBC7A53-4677-4C3A-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} {1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} - {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {1CBEAA34-BA34-497D-A775-B9AF6F905696} + {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788} + {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788} + {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788} + {2F92EC58-D94C-40BF-4444-77607C72E1E3} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788} + {E7D19356-B0AB-44AD-ACCB-5FFFCC4837BE} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788} + {0F789DF8-22CC-4392-98DB-AC3960FAD4EA} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788} EndGlobalSection GlobalSection(DevPartner) = postSolution EndGlobalSection diff --git a/iup/mak.vc9/iupcontrols.vcproj b/iup/mak.vc9/iupcontrols.vcproj index 6a452af..2a7875c 100755 --- a/iup/mak.vc9/iupcontrols.vcproj +++ b/iup/mak.vc9/iupcontrols.vcproj @@ -311,14 +311,6 @@ > </File> <File - RelativePath="..\srccontrols\iup_oldtabs.c" - > - </File> - <File - RelativePath="..\srccontrols\iup_oldval.c" - > - </File> - <File RelativePath="..\srccontrols\iupcontrols.def" > <FileConfiguration diff --git a/iup/mak.vc9/iupcore.vcproj b/iup/mak.vc9/iupcore.vcproj index fbe0017..851395e 100755 --- a/iup/mak.vc9/iupcore.vcproj +++ b/iup/mak.vc9/iupcore.vcproj @@ -475,6 +475,10 @@ > </File> <File + RelativePath="..\src\iup_split.c" + > + </File> + <File RelativePath="..\src\iup_tabs.c" > </File> @@ -583,17 +587,6 @@ > </File> </Filter> - <File - RelativePath="..\src\iup.def" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - </File> </Files> <Globals> </Globals> diff --git a/iup/mak.vc9/iupgtk.vcproj b/iup/mak.vc9/iupgtk.vcproj index 17281f1..a84dd4a 100755 --- a/iup/mak.vc9/iupgtk.vcproj +++ b/iup/mak.vc9/iupgtk.vcproj @@ -95,6 +95,10 @@ > </File> <File + RelativePath="..\src\gtk\iupgtk_draw.c" + > + </File> + <File RelativePath="..\src\gtk\iupgtk_focus.c" > </File> diff --git a/iup/mak.vc9/iuplua3.vcproj b/iup/mak.vc9/iuplua3.vcproj index 9993c1c..e46f316 100755 --- a/iup/mak.vc9/iuplua3.vcproj +++ b/iup/mak.vc9/iuplua3.vcproj @@ -116,6 +116,10 @@ > </File> <File + RelativePath="..\srclua3\il_split.c" + > + </File> + <File RelativePath="..\srclua3\il_tabs.c" > </File> @@ -164,6 +168,10 @@ > </File> <File + RelativePath="..\srclua3\split.lua" + > + </File> + <File RelativePath="..\srclua3\tabs.lua" > </File> diff --git a/iup/mak.vc9/iuplua5.vcproj b/iup/mak.vc9/iuplua5.vcproj index 17d9a55..ad13650 100755 --- a/iup/mak.vc9/iuplua5.vcproj +++ b/iup/mak.vc9/iuplua5.vcproj @@ -231,6 +231,10 @@ > </File> <File + RelativePath="..\srclua5\il_split.c" + > + </File> + <File RelativePath="..\srclua5\il_submenu.c" > </File> @@ -407,6 +411,10 @@ > </File> <File + RelativePath="..\srclua5\split.lua" + > + </File> + <File RelativePath="..\srclua5\submenu.lua" > </File> diff --git a/iup/mak.vc9/iupluaexe5.vcproj b/iup/mak.vc9/iupluaexe5.vcproj index db6804a..39d15f2 100755 --- a/iup/mak.vc9/iupluaexe5.vcproj +++ b/iup/mak.vc9/iupluaexe5.vcproj @@ -72,7 +72,7 @@ OutputFile="$(OutDir)/iuplua51.exe" LinkIncremental="1" SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static" + AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static;..\..\lfs\lib\vc9" GenerateManifest="false" GenerateDebugInformation="true" SubSystem="1" diff --git a/iup/mak.vc9/iupmot.vcproj b/iup/mak.vc9/iupmot.vcproj index 9bbfa5c..5c40695 100755 --- a/iup/mak.vc9/iupmot.vcproj +++ b/iup/mak.vc9/iupmot.vcproj @@ -109,6 +109,10 @@ > </File> <File + RelativePath="..\src\mot\iupmot_draw.c" + > + </File> + <File RelativePath="..\src\mot\iupmot_focus.c" > </File> diff --git a/iup/mak.vc9/iupsample.vcproj b/iup/mak.vc9/iupsample.vcproj index 144f3ba..0e10bb6 100755 --- a/iup/mak.vc9/iupsample.vcproj +++ b/iup/mak.vc9/iupsample.vcproj @@ -45,7 +45,7 @@ Optimization="0" AdditionalIncludeDirectories="..\include;..\..\cd\include" PreprocessorDefinitions="WIN32;_DEBUG;_WIN32_WINNT=0x0500;_WIN32_IE=0x0500;_CRT_SECURE_NO_DEPRECATE;__IUPDEF_H" - ExceptionHandling="0" + ExceptionHandling="1" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" diff --git a/iup/mak.vc9/iupsamplegtk.vcproj b/iup/mak.vc9/iupsamplegtk.vcproj index 24da672..485b773 100755 --- a/iup/mak.vc9/iupsamplegtk.vcproj +++ b/iup/mak.vc9/iupsamplegtk.vcproj @@ -617,7 +617,6 @@ > <FileConfiguration Name="Debug|Win32" - ExcludedFromBuild="true" > <Tool Name="VCCLCompilerTool" @@ -785,6 +784,7 @@ > <FileConfiguration Name="Debug|Win32" + ExcludedFromBuild="true" > <Tool Name="VCCLCompilerTool" diff --git a/iup/mak.vc9/iuptest.vcproj b/iup/mak.vc9/iuptest.vcproj index 213431c..ac8f359 100755 --- a/iup/mak.vc9/iuptest.vcproj +++ b/iup/mak.vc9/iuptest.vcproj @@ -271,6 +271,10 @@ > </File> <File + RelativePath="..\test\split.c" + > + </File> + <File RelativePath="..\test\sysinfo.c" > </File> diff --git a/iup/mak.vc9/iuptestgtk.vcproj b/iup/mak.vc9/iuptestgtk.vcproj index 4cbc9da..d8c092c 100755 --- a/iup/mak.vc9/iuptestgtk.vcproj +++ b/iup/mak.vc9/iuptestgtk.vcproj @@ -73,6 +73,7 @@ LinkIncremental="1" SuppressStartupBanner="true" AdditionalLibraryDirectories="..\lib;d:\lng\gtk\lib;..\..\cd\lib;D:\LNG\vld\lib" + GenerateManifest="false" GenerateDebugInformation="true" ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb" SubSystem="1" @@ -262,6 +263,10 @@ > </File> <File + RelativePath="..\test\split.c" + > + </File> + <File RelativePath="..\test\sysinfo.c" > </File> diff --git a/iup/mak.vc9/iupwin.vcproj b/iup/mak.vc9/iupwin.vcproj index 15578a9..94ef390 100755 --- a/iup/mak.vc9/iupwin.vcproj +++ b/iup/mak.vc9/iupwin.vcproj @@ -248,6 +248,10 @@ > </File> </Filter> + <File + RelativePath="..\src\iup.def" + > + </File> </Files> <Globals> </Globals> diff --git a/iup/src/Makefile b/iup/src/Makefile index 028047f..e666555 100755 --- a/iup/src/Makefile +++ b/iup/src/Makefile @@ -1,9 +1,12 @@ -.PHONY: do_all iup iupgtk -do_all: iup iupgtk +.PHONY: do_all iup iupgtk iupmot +do_all: iup iup: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak iupgtk: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes + @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes + +iupmot: + @$(MAKE) --no-print-directory -f ../tecmake.mak USE_MOTIF=Yes diff --git a/iup/src/config.mak b/iup/src/config.mak index e857643..82b8452 100755 --- a/iup/src/config.mak +++ b/iup/src/config.mak @@ -2,9 +2,31 @@ PROJNAME = iup LIBNAME = iup OPT = YES -#ifdef DBG +ifdef GTK_DEFAULT + ifdef USE_MOTIF + # Build Motif version in Linux,Darwin,FreeBSD + LIBNAME = iupmot + else + ifeq ($(findstring Win, $(TEC_SYSNAME)), ) + # Force definition if not in Windows + USE_GTK = Yes + endif + endif +else + ifdef USE_GTK + # Build GTK version in IRIX,SunOS,AIX,Win32 + LIBNAME = iupgtk + else + ifeq ($(findstring Win, $(TEC_SYSNAME)), ) + # Force definition if not in Windows + USE_MOTIF = Yes + endif + endif +endif + +ifdef DBG DEFINES += IUP_ASSERT -#endif +endif INCLUDES = ../include . @@ -17,19 +39,14 @@ SRC = iup_array.c iup_callback.c iup_dlglist.c iup_attrib.c iup_focus.c iup_font iup_user.c iup_button.c iup_radio.c iup_toggle.c iup_progressbar.c iup_text.c iup_val.c \ iup_box.c iup_hbox.c iup_vbox.c iup_cbox.c iup_class.c iup_classbase.c iup_maskmatch.c \ iup_mask.c iup_maskparse.c iup_tabs.c iup_spin.c iup_list.c iup_getparam.c \ - iup_sbox.c iup_normalizer.c iup_tree.c + iup_sbox.c iup_normalizer.c iup_tree.c iup_split.c ifdef USE_GTK - ifndef GTK_DEFAULT - # Build GTK version in IRIX,SunOS,AIX,Win32 - LIBNAME := iupgtk - endif - DEFINES += GTK_DISABLE_DEPRECATED INCLUDES += gtk SRC += gtk/iupgtk_common.c gtk/iupgtk_focus.c gtk/iupgtk_font.c gtk/iupgtk_clipboard.c \ gtk/iupgtk_globalattrib.c gtk/iupgtk_key.c gtk/iupgtk_tips.c \ - gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c \ + gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c gtk/iupgtk_draw.c \ gtk/iupgtk_dialog.c gtk/iupgtk_timer.c gtk/iupgtk_image.c gtk/iupgtk_label.c \ gtk/iupgtk_colordlg.c gtk/iupgtk_fontdlg.c gtk/iupgtk_filedlg.c \ gtk/iupgtk_button.c gtk/iupgtk_toggle.c gtk/iupgtk_progressbar.c \ @@ -40,7 +57,11 @@ ifdef USE_GTK DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c else - SRC += gtk/iupgtk_help.c mot/iupunix_info.c + ifdef GTK_MAC + SRC += gtk/iupmac_help.c gtk/iupmac_info.c + else + SRC += gtk/iupgtk_help.c mot/iupunix_info.c + endif endif ifdef USE_HILDON @@ -49,42 +70,35 @@ ifdef USE_GTK LIBS += hildon-1 endif else - ifneq ($(findstring Win, $(TEC_SYSNAME)), ) - - SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \ - win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \ - win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \ - win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \ - win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \ - win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \ - win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \ - win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \ - win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c - - SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c - - INCLUDES += win - DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW - else - ifdef GTK_DEFAULT - # Build Motif version in Linux,Darwin,FreeBSD - LIBNAME := iupmot - endif - - SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \ - mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \ - mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c \ - mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \ - mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \ - mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \ - mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \ - mot/iupmot_list.c mot/iupmot_tree.c - - SRC += mot/iupunix_help.c mot/iupunix_info.c - - INCLUDES += mot - USE_MOTIF=Yes - endif +ifdef USE_MOTIF + SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \ + mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \ + mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c mot/iupmot_draw.c \ + mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \ + mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \ + mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \ + mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \ + mot/iupmot_list.c mot/iupmot_tree.c + + SRC += mot/iupunix_help.c mot/iupunix_info.c + + INCLUDES += mot +else + SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \ + win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \ + win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \ + win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \ + win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \ + win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \ + win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \ + win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \ + win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c + + SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c + + INCLUDES += win + DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW +endif endif ifeq "$(TEC_SYSNAME)" "SunOS" @@ -113,6 +127,6 @@ ifeq "$(TEC_UNAME)" "dll" endif ifeq "$(TEC_UNAME)" "owc1" - # Necessary or IUP will not work in Open Watcom + # Necessary or IUP 3 will not work in Open Watcom DBG=Yes endif diff --git a/iup/src/gtk/iupgtk_button.c b/iup/src/gtk/iupgtk_button.c index 18be87c..f8474ae 100755 --- a/iup/src/gtk/iupgtk_button.c +++ b/iup/src/gtk/iupgtk_button.c @@ -150,8 +150,10 @@ static int gtkButtonSetPaddingAttrib(Ihandle* ih, const char* value) gtk_alignment_set_padding(alignment, ih->data->vert_padding, ih->data->vert_padding, ih->data->horiz_padding, ih->data->horiz_padding); } + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } #ifdef WIN32 @@ -366,12 +368,12 @@ static int gtkButtonMapMethod(Ihandle* ih) ih->data->type = IUP_BUTTON_IMAGE; value = iupAttribGet(ih, "TITLE"); - if (value) + if (value && *value!=0) { GtkSettings* settings = gtk_widget_get_settings(ih->handle); g_object_set(settings, "gtk-button-images", (int)TRUE, NULL); - gtk_button_set_label((GtkButton*)ih->handle, value); + gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(value)); ih->data->type |= IUP_BUTTON_TEXT; #if GTK_CHECK_VERSION(2, 10, 0) @@ -397,7 +399,7 @@ static int gtkButtonMapMethod(Ihandle* ih) #endif } else - gtk_button_set_label((GtkButton*)ih->handle, title); + gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(title)); ih->data->type = IUP_BUTTON_TEXT; } diff --git a/iup/src/gtk/iupgtk_canvas.c b/iup/src/gtk/iupgtk_canvas.c index daae4ad..3af48a4 100755 --- a/iup/src/gtk/iupgtk_canvas.c +++ b/iup/src/gtk/iupgtk_canvas.c @@ -537,8 +537,8 @@ static int gtkCanvasMapMethod(Ihandle* ih) /* To receive mouse events on a drawing area, you will need to enable them. */ gtk_widget_add_events(ih->handle, GDK_EXPOSURE_MASK| - GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK| - GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK| + GDK_POINTER_MOTION_MASK|GDK_POINTER_MOTION_HINT_MASK| + GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|GDK_BUTTON_MOTION_MASK| GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK| GDK_ENTER_NOTIFY_MASK|GDK_LEAVE_NOTIFY_MASK| GDK_FOCUS_CHANGE_MASK|GDK_STRUCTURE_MASK); @@ -611,14 +611,15 @@ void iupdrvCanvasInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "YAUTOHIDE", NULL, gtkCanvasSetYAutoHideAttrib, "YES", NULL, IUPAF_DEFAULT); /* force new default value */ iupClassRegisterAttribute(ic, "DRAWABLE", gtkCanvasGetDrawableAttrib, NULL, NULL, NULL, IUPAF_NO_STRING); - //iupClassRegisterAttribute(ic, "CD_GDK", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); /* IupCanvas Windows or X only */ -#ifdef WIN32 - iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT); -#else - iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING); - iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); +#ifndef GTK_MAC + #ifdef WIN32 + iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT); + #else + iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING); + iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); + #endif #endif } diff --git a/iup/src/gtk/iupgtk_common.c b/iup/src/gtk/iupgtk_common.c index 40368f2..d84c1c8 100755 --- a/iup/src/gtk/iupgtk_common.c +++ b/iup/src/gtk/iupgtk_common.c @@ -91,13 +91,13 @@ void iupdrvBaseUnMapMethod(Ihandle* ih) gtk_widget_destroy(widget); /* To match the call to gtk_*****_new */ } -void iupdrvDisplayUpdate(Ihandle *ih) +void iupdrvPostRedraw(Ihandle *ih) { /* Post a REDRAW */ gtk_widget_queue_draw(ih->handle); } -void iupdrvDisplayRedraw(Ihandle *ih) +void iupdrvRedrawNow(Ihandle *ih) { GdkWindow* window = ih->handle->window; /* Post a REDRAW */ @@ -202,7 +202,11 @@ void iupdrvSetVisible(Ihandle* ih, int visible) int iupdrvIsVisible(Ihandle* ih) { +#if GTK_CHECK_VERSION(2, 18, 0) + if (gtk_widget_get_visible(ih->handle)) +#else if (GTK_WIDGET_VISIBLE(ih->handle)) +#endif { /* if marked as visible, since we use gtk_widget_hide and NOT gtk_widget_hide_all must check its parents. */ @@ -211,7 +215,11 @@ int iupdrvIsVisible(Ihandle* ih) { if (parent->iclass->nativetype != IUP_TYPEVOID) { +#if GTK_CHECK_VERSION(2, 18, 0) + if (!gtk_widget_get_visible(parent->handle)) +#else if (!GTK_WIDGET_VISIBLE(parent->handle)) +#endif return 0; } @@ -225,7 +233,11 @@ int iupdrvIsVisible(Ihandle* ih) int iupdrvIsActive(Ihandle *ih) { - return (GTK_WIDGET_IS_SENSITIVE(ih->handle)); +#if GTK_CHECK_VERSION(2, 18, 0) + return gtk_widget_is_sensitive(ih->handle); +#else + return GTK_WIDGET_IS_SENSITIVE(ih->handle); +#endif } void iupdrvSetActive(Ihandle* ih, int enable) @@ -424,9 +436,11 @@ static GdkCursor* gtkGetCursor(Ihandle* ih, const char* name) { "RESIZE_N", GDK_TOP_SIDE}, { "RESIZE_S", GDK_BOTTOM_SIDE}, { "RESIZE_NS", GDK_SB_V_DOUBLE_ARROW}, + { "SPLITTER_HORIZ", GDK_SB_V_DOUBLE_ARROW}, { "RESIZE_W", GDK_LEFT_SIDE}, { "RESIZE_E", GDK_RIGHT_SIDE}, { "RESIZE_WE", GDK_SB_H_DOUBLE_ARROW}, + { "SPLITTER_VERT", GDK_SB_H_DOUBLE_ARROW}, { "RESIZE_NE", GDK_TOP_RIGHT_CORNER}, { "RESIZE_SE", GDK_BOTTOM_RIGHT_CORNER}, { "RESIZE_NW", GDK_TOP_LEFT_CORNER}, @@ -571,18 +585,24 @@ void iupdrvDrawFocusRect(Ihandle* ih, void* _gc, int x, int y, int w, int h) { GdkWindow* window = ih->handle->window; GtkStyle *style = gtk_widget_get_style(ih->handle); +#if GTK_CHECK_VERSION(2, 18, 0) + GtkStateType state = gtk_widget_get_state(ih->handle); +#else + GtkStateType state = GTK_WIDGET_STATE(ih->handle); +#endif + gtk_paint_focus(style, window, state, NULL, ih->handle, NULL, x, y, w, h); (void)_gc; - - gtk_paint_focus(style, window, GTK_WIDGET_STATE(ih->handle), NULL, ih->handle, NULL, x, y, w, h); } void iupdrvBaseRegisterCommonAttrib(Iclass* ic) { +#ifndef GTK_MAC #ifdef WIN32 iupClassRegisterAttribute(ic, "HFONT", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); #else iupClassRegisterAttribute(ic, "XFONTID", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); #endif +#endif iupClassRegisterAttribute(ic, "PANGOFONTDESC", iupgtkGetPangoFontDescAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); } @@ -789,7 +809,17 @@ char* iupgtkStrConvertFromFilename(const char* str) /* From Filename to IUP */ gboolean iupgtkMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *evt, Ihandle *ih) { - IFniis cb = (IFniis)IupGetCallback(ih,"MOTION_CB"); + IFniis cb; + + if (evt->is_hint) + { + int x, y; + gdk_window_get_pointer(widget->window, &x, &y, NULL); + evt->x = x; + evt->y = y; + } + + cb = (IFniis)IupGetCallback(ih,"MOTION_CB"); if (cb) { char status[IUPKEY_STATUS_SIZE] = IUPKEY_STATUS_INIT; @@ -818,6 +848,23 @@ gboolean iupgtkButtonEvent(GtkWidget *widget, GdkEventButton *evt, Ihandle *ih) iupgtkButtonKeySetStatus(evt->state, evt->button, status, doubleclick); + if (doubleclick) + { + /* Must compensate the fact that in GTK there is an extra button press event + when occours a double click, we compensate that completing the event + with a button release before the double click. */ + + status[5] = ' '; /* clear double click */ + + ret = cb(ih, b, 0, (int)evt->x, (int)evt->y, status); /* release */ + if (ret==IUP_CLOSE) + IupExitLoop(); + else if (ret==IUP_IGNORE) + return TRUE; + + status[5] = 'D'; /* restore double click */ + } + ret = cb(ih, b, press, (int)evt->x, (int)evt->y, status); if (ret==IUP_CLOSE) IupExitLoop(); diff --git a/iup/src/gtk/iupgtk_dialog.c b/iup/src/gtk/iupgtk_dialog.c index 46c0ce1..ff0d8f2 100755 --- a/iup/src/gtk/iupgtk_dialog.c +++ b/iup/src/gtk/iupgtk_dialog.c @@ -120,12 +120,13 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu static int native_border = 0; static int native_caption = 0; - int has_caption = iupAttribGetBoolean(ih, "MAXBOX") || - iupAttribGetBoolean(ih, "MINBOX") || - iupAttribGetBoolean(ih, "MENUBOX") || - IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ + int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */ + iupAttribGetBoolean(ih, "MAXBOX") || + iupAttribGetBoolean(ih, "MINBOX") || + iupAttribGetBoolean(ih, "MENUBOX") || + IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ - int has_border = has_caption || + int has_border = has_titlebar || iupAttribGetBoolean(ih, "RESIZE") || iupAttribGetBoolean(ih, "BORDER"); @@ -147,7 +148,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu *border = win_border; *caption = 0; - if (has_caption) + if (has_titlebar) *caption = win_caption; if (!native_border && *border) @@ -171,7 +172,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu } *caption = 0; - if (has_caption) + if (has_titlebar) { if (native_caption) *caption = native_caption; @@ -429,6 +430,7 @@ static int gtkDialogMapMethod(Ihandle* ih) int functions = 0; InativeHandle* parent; GtkWidget* fixed; + int has_titlebar = 0; #ifdef HILDON if (iupAttribGetBoolean(ih, "HILDONWINDOW")) @@ -494,33 +496,41 @@ static int gtkDialogMapMethod(Ihandle* ih) iupAttribSetStr(ih, "MINBOX", "NO"); } - if (IupGetAttribute(ih, "TITLE")) { /* must use IupGetAttribute to check from the native implementation */ - functions |= GDK_FUNC_MOVE; - decorations |= GDK_DECOR_TITLE; - } - - if (iupAttribGetBoolean(ih, "MENUBOX")) { + if (iupAttribGet(ih, "TITLE")) + has_titlebar = 1; + if (iupAttribGetBoolean(ih, "MENUBOX")) + { functions |= GDK_FUNC_CLOSE; decorations |= GDK_DECOR_MENU; + has_titlebar = 1; } - - if (iupAttribGetBoolean(ih, "MINBOX")) { + if (iupAttribGetBoolean(ih, "MINBOX")) + { functions |= GDK_FUNC_MINIMIZE; decorations |= GDK_DECOR_MINIMIZE; + has_titlebar = 1; } - - if (iupAttribGetBoolean(ih, "MAXBOX")) { + if (iupAttribGetBoolean(ih, "MAXBOX")) + { functions |= GDK_FUNC_MAXIMIZE; decorations |= GDK_DECOR_MAXIMIZE; + has_titlebar = 1; } - - if (iupAttribGetBoolean(ih, "RESIZE")) { + if (iupAttribGetBoolean(ih, "RESIZE")) + { functions |= GDK_FUNC_RESIZE; decorations |= GDK_DECOR_RESIZEH; - } - if (iupAttribGetBoolean(ih, "BORDER")) - decorations |= GDK_DECOR_BORDER; + decorations |= GDK_DECOR_BORDER; /* has_border */ + } + if (has_titlebar) + { + functions |= GDK_FUNC_MOVE; + decorations |= GDK_DECOR_TITLE; + gtk_window_set_title((GtkWindow*)ih->handle, ""); + } + if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar) + decorations |= GDK_DECOR_BORDER; /* has_border */ if (decorations == 0) gtk_window_set_decorated((GtkWindow*)ih->handle, FALSE); @@ -980,11 +990,12 @@ void iupdrvDialogInitClass(Iclass* ic) iupClassRegisterCallback(ic, "TRAYCLICK_CB", "iii"); /* Driver Dependent Attribute functions */ - -#ifdef WIN32 - iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT); -#else - iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING); +#ifndef GTK_MAC + #ifdef WIN32 + iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT); + #else + iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING); + #endif #endif /* Visual */ diff --git a/iup/src/gtk/iupgtk_draw.c b/iup/src/gtk/iupgtk_draw.c new file mode 100644 index 0000000..4390c66 --- /dev/null +++ b/iup/src/gtk/iupgtk_draw.c @@ -0,0 +1,161 @@ +/** \file + * \brief Draw Functions + * + * See Copyright Notice in "iup.h" + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <memory.h> + +#include <gtk/gtk.h> + +#include "iup.h" + +#include "iup_attrib.h" +#include "iup_class.h" +#include "iup_str.h" +#include "iup_object.h" +#include "iup_image.h" +#include "iup_draw.h" + +#include "iupgtk_drv.h" + + +struct _IdrawCanvas{ + Ihandle* ih; + int w, h; + + GdkDrawable* wnd; + GdkPixmap* pixmap; + GdkGC *gc, *pixmap_gc; +}; + +IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih) +{ + IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas)); + + dc->wnd = ih->handle->window; + dc->gc = gdk_gc_new(dc->wnd); + + gdk_drawable_get_size(dc->wnd, &dc->w, &dc->h); + + dc->pixmap = gdk_pixmap_new(dc->wnd, dc->w, dc->h, gdk_drawable_get_depth(dc->wnd)); + dc->pixmap_gc = gdk_gc_new(dc->pixmap); + + return dc; +} + +void iupDrawKillCanvas(IdrawCanvas* dc) +{ + g_object_unref(dc->pixmap_gc); + g_object_unref(dc->pixmap); + g_object_unref(dc->gc); + + free(dc); +} + +void iupDrawUpdateSize(IdrawCanvas* dc) +{ + int w, h; + gdk_drawable_get_size(dc->wnd, &w, &h); + + if (w != dc->w || h != dc->h) + { + g_object_unref(dc->pixmap_gc); + g_object_unref(dc->pixmap); + + dc->pixmap = gdk_pixmap_new(dc->wnd, dc->w, dc->h, gdk_drawable_get_depth(dc->wnd)); + dc->pixmap_gc = gdk_gc_new(dc->pixmap); + } +} + +void iupDrawFlush(IdrawCanvas* dc) +{ + gdk_draw_drawable(dc->wnd, dc->gc, dc->pixmap, 0, 0, 0, 0, dc->w, dc->h); +} + +void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h) +{ + if (w) *w = dc->w; + if (h) *h = dc->h; +} + +void iupDrawParentBackground(IdrawCanvas* dc) +{ + unsigned char r=0, g=0, b=0; + char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih); + iupStrToRGB(color, &r, &g, &b); + iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1); +} + +void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + GdkColor color; + iupgdkColorSet(&color, r, g, b); + gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); + gdk_draw_rectangle(dc->pixmap, dc->pixmap_gc, filled, x1, y1, x2-x1+1, y2-y1+1); +} + +void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b) +{ + GdkColor color; + iupgdkColorSet(&color, r, g, b); + gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); + gdk_draw_line(dc->pixmap, dc->pixmap_gc, x1, y1, x2, y2); +} + +void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + GdkColor color; + iupgdkColorSet(&color, r, g, b); + gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); + gdk_draw_arc(dc->pixmap, dc->pixmap_gc, filled, x1, y1, x2-x1+1, y2-y1+1, iupROUND(a1*64), iupROUND((a2 - a1)*64)); +} + +void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + GdkColor color; + iupgdkColorSet(&color, r, g, b); + gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); + gdk_draw_polygon(dc->pixmap, dc->pixmap_gc, filled, (GdkPoint*)points, count); +} + +void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2) +{ + GdkRectangle rect; + rect.x = x1; + rect.y = y1; + rect.width = x2-x1+1; + rect.height = y2-y1+1; + gdk_gc_set_clip_rectangle(dc->pixmap_gc, &rect); +} + +void iupDrawResetClip(IdrawCanvas* dc) +{ + gdk_gc_set_clip_region(dc->pixmap_gc, NULL); +} + +void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b) +{ + PangoLayout* fontlayout = (PangoLayout*)IupGetAttribute(dc->ih, "PANGOLAYOUT"); + GdkColor color; + iupgdkColorSet(&color, r, g, b); + gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); + pango_layout_set_text(fontlayout, iupgtkStrConvertToUTF8(text), len); + gdk_draw_layout(dc->pixmap, dc->pixmap_gc, x, y, fontlayout); +} + +void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y) +{ + int img_w, img_h, bpp; + GdkPixbuf* pixbuf = iupImageGetImage(name, dc->ih, make_inactive); + if (!pixbuf) + return; + + /* must use this info, since image can be a driver image loaded from resources */ + iupdrvImageGetInfo(pixbuf, &img_w, &img_h, &bpp); + + gdk_draw_pixbuf(dc->pixmap, dc->pixmap_gc, pixbuf, 0, 0, x, y, img_w, img_h, GDK_RGB_DITHER_NORMAL, 0, 0); +} diff --git a/iup/src/gtk/iupgtk_drv.h b/iup/src/gtk/iupgtk_drv.h index ade2a4a..bf567d6 100755 --- a/iup/src/gtk/iupgtk_drv.h +++ b/iup/src/gtk/iupgtk_drv.h @@ -59,8 +59,8 @@ void iupgtkFontUpdateObjectPangoLayout(Ihandle* ih, gpointer object); /* There are PANGO_SCALE Pango units in one device unit. For an output backend where a device unit is a pixel, a size value of 10 * PANGO_SCALE gives 10 pixels. */ -#define IUPGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE) -#define IUPGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE) +#define iupGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE) +#define iupGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE) /* open */ diff --git a/iup/src/gtk/iupgtk_filedlg.c b/iup/src/gtk/iupgtk_filedlg.c index 5426910..a326c72 100755 --- a/iup/src/gtk/iupgtk_filedlg.c +++ b/iup/src/gtk/iupgtk_filedlg.c @@ -77,6 +77,8 @@ static void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list) cur_len = iupArrayCount(names_array); all_names = iupArrayAdd(names_array, dir_len+1); memcpy(all_names+cur_len, filename, dir_len); + all_names[cur_len+dir_len] = '0'; + iupAttribStoreStr(ih, "DIRECTORY", all_names); all_names[cur_len+dir_len] = '|'; dir_len++; /* skip separator */ @@ -101,10 +103,14 @@ static void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list) iupArrayDestroy(names_array); } -#ifdef WIN32 -#include <gdk/gdkwin32.h> +#ifdef GTK_MAC + #include <gdk/gdk.h> #else -#include <gdk/gdkx.h> + #ifdef WIN32 + #include <gdk/gdkwin32.h> + #else + #include <gdk/gdkx.h> + #endif #endif static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih) @@ -112,10 +118,12 @@ static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih) Ihandle* glcanvas = IupGetAttributeHandle(ih, "PREVIEWGLCANVAS"); if (glcanvas) { -#ifdef WIN32 - iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND")); -#else - iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW")); +#ifndef GTK_MAC + #ifdef WIN32 + iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND")); + #else + iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW")); + #endif #endif glcanvas->iclass->Map(glcanvas); } @@ -126,12 +134,15 @@ static void gtkFileDlgPreviewRealize(GtkWidget *widget, Ihandle *ih) iupAttribSetStr(ih, "PREVIEWDC", iupgtkGetNativeGraphicsContext(widget)); iupAttribSetStr(ih, "WID", (char*)widget); -#ifdef WIN32 - iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window)); -#else - iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window)); - iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay()); +#ifndef GTK_MAC + #ifdef WIN32 + iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window)); + #else + iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window)); + iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay()); + #endif #endif + gtkFileDlgUpdatePreviewGLCanvas(ih); } @@ -174,11 +185,11 @@ static void gtkFileDlgUpdatePreview(GtkFileChooser *file_chooser, Ihandle* ih) { char *filename = gtk_file_chooser_get_preview_filename(file_chooser); + IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB"); if (iupdrvIsFile(filename)) - { - IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB"); cb(ih, iupgtkStrConvertFromFilename(filename), "SELECT"); - } + else + cb(ih, iupgtkStrConvertFromFilename(filename), "OTHER"); g_free (filename); @@ -469,6 +480,13 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y) char* filename = (char*)file_list->data; iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename)); g_free(filename); + + /* store the DIRECTORY */ + { + char* dir = iupStrFileGetPath(iupAttribGet(ih, "VALUE")); + iupAttribStoreStr(ih, "DIRECTORY", dir); + free(dir); + } } g_slist_free(file_list); @@ -481,6 +499,14 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y) iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename)); file_exist = iupdrvIsFile(filename); dir_exist = iupdrvIsDirectory(filename); + + if (file_exist) + { + char* dir = iupStrFileGetPath(filename); + iupAttribStoreStr(ih, "DIRECTORY", dir); + free(dir); + } + g_free(filename); } @@ -507,8 +533,11 @@ static int gtkFileDlgPopup(Ihandle* ih, int x, int y) { /* GtkFileChooser does not change the current directory */ char* dir = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog)); - if (dir) iupdrvSetCurrentDirectory(dir); - g_free(dir); + if (dir) + { + iupdrvSetCurrentDirectory(dir); + g_free(dir); + } } } else diff --git a/iup/src/gtk/iupgtk_font.c b/iup/src/gtk/iupgtk_font.c index f7ff348..1139f62 100755 --- a/iup/src/gtk/iupgtk_font.c +++ b/iup/src/gtk/iupgtk_font.c @@ -132,9 +132,9 @@ static IgtkFont* gtkFindFont(const char *standardfont) metrics = pango_context_get_metrics(gtk_fonts_context, fontdesc, pango_context_get_language(gtk_fonts_context)); fonts[i].charheight = pango_font_metrics_get_ascent(metrics) + pango_font_metrics_get_descent(metrics); - fonts[i].charheight = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charheight); + fonts[i].charheight = iupGTK_PANGOUNITS2PIXELS(fonts[i].charheight); fonts[i].charwidth = pango_font_metrics_get_approximate_char_width(metrics); - fonts[i].charwidth = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charwidth); + fonts[i].charwidth = iupGTK_PANGOUNITS2PIXELS(fonts[i].charwidth); pango_font_metrics_unref(metrics); gtkFontUpdate(&(fonts[i])); diff --git a/iup/src/gtk/iupgtk_fontdlg.c b/iup/src/gtk/iupgtk_fontdlg.c index 5769cbc..dca0232 100755 --- a/iup/src/gtk/iupgtk_fontdlg.c +++ b/iup/src/gtk/iupgtk_fontdlg.c @@ -24,7 +24,7 @@ static int gtkFontDlgPopup(Ihandle* ih, int x, int y) InativeHandle* parent = iupDialogGetNativeParent(ih); GtkFontSelectionDialog* dialog; int response; - char* preview_text; + char* preview_text, *standardfont; iupAttribSetInt(ih, "_IUPDLG_X", x); /* used in iupDialogUpdatePosition */ iupAttribSetInt(ih, "_IUPDLG_Y", y); @@ -36,7 +36,10 @@ static int gtkFontDlgPopup(Ihandle* ih, int x, int y) if (parent) gtk_window_set_transient_for((GtkWindow*)dialog, (GtkWindow*)parent); - gtk_font_selection_dialog_set_font_name(dialog, iupAttribGet(ih, "VALUE")); + standardfont = iupAttribGet(ih, "VALUE"); + if (!standardfont) + standardfont = IupGetGlobal("DEFAULTFONT"); + gtk_font_selection_dialog_set_font_name(dialog, standardfont); preview_text = iupAttribGet(ih, "PREVIEWTEXT"); if (preview_text) diff --git a/iup/src/gtk/iupgtk_frame.c b/iup/src/gtk/iupgtk_frame.c index 022c6c7..25595be 100755 --- a/iup/src/gtk/iupgtk_frame.c +++ b/iup/src/gtk/iupgtk_frame.c @@ -41,8 +41,11 @@ static char* gtkFrameGetTitleAttrib(Ihandle* ih) static int gtkFrameSetTitleAttrib(Ihandle* ih, const char* value) { - GtkFrame* frame = (GtkFrame*)ih->handle; - gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value)); + if (iupAttribGetStr(ih, "_IUPFRAME_HAS_TITLE")) + { + GtkFrame* frame = (GtkFrame*)ih->handle; + gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value)); + } return 0; } @@ -57,7 +60,11 @@ static int gtkFrameSetBgColorAttrib(Ihandle* ih, const char* value) if (label) iupgtkBaseSetBgColor(label, r, g, b); - iupgtkBaseSetBgColor(ih->handle, r, g, b); + if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) + { + GtkWidget* fixed = gtk_bin_get_child((GtkBin*)ih->handle); + iupgtkBaseSetBgColor(fixed, r, g, b); + } return 1; } @@ -120,10 +127,19 @@ static int gtkFrameMapMethod(Ihandle* ih) gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_IN); else gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_ETCHED_IN); + + if (iupAttribGet(ih, "BGCOLOR")) + iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1"); } /* the container that will receive the child element. */ fixed = gtk_fixed_new(); + if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) +#if GTK_CHECK_VERSION(2, 18, 0) + gtk_widget_set_has_window(fixed, TRUE); +#else + gtk_fixed_set_has_window((GtkFixed*)fixed, TRUE); +#endif gtk_container_add((GtkContainer*)ih->handle, fixed); gtk_widget_show(fixed); diff --git a/iup/src/gtk/iupgtk_key.c b/iup/src/gtk/iupgtk_key.c index 5aec919..ed485a7 100755 --- a/iup/src/gtk/iupgtk_key.c +++ b/iup/src/gtk/iupgtk_key.c @@ -316,9 +316,9 @@ gboolean iupgtkKeyPressEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih) if (code == 0) return FALSE; - /* Avoid duplicate calls if a child of the dialog contains the focus. - GTK will call the callback for the child and for the dialog */ - if (ih->iclass->nativetype == IUP_TYPEDIALOG && ih != IupGetFocus()) + /* Avoid duplicate calls if a child of a native container contains the focus. + GTK will call the callback for the child and for the container. */ + if (ih->iclass->childtype != IUP_CHILDNONE && ih != IupGetFocus()) return FALSE; result = iupKeyCallKeyCb(ih, code); @@ -390,33 +390,33 @@ gboolean iupgtkKeyReleaseEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih) void iupgtkButtonKeySetStatus(guint state, unsigned int but, char* status, int doubleclick) { if (state & GDK_SHIFT_MASK) - iupKEYSETSHIFT(status); + iupKEY_SETSHIFT(status); if (state & GDK_CONTROL_MASK) - iupKEYSETCONTROL(status); + iupKEY_SETCONTROL(status); if ((state & GDK_BUTTON1_MASK) || but==1) - iupKEYSETBUTTON1(status); + iupKEY_SETBUTTON1(status); if ((state & GDK_BUTTON2_MASK) || but==2) - iupKEYSETBUTTON2(status); + iupKEY_SETBUTTON2(status); if ((state & GDK_BUTTON3_MASK) || but==3) - iupKEYSETBUTTON3(status); + iupKEY_SETBUTTON3(status); if ((state & GDK_BUTTON4_MASK) || but==4) - iupKEYSETBUTTON4(status); + iupKEY_SETBUTTON4(status); if ((state & GDK_BUTTON5_MASK) || but==5) - iupKEYSETBUTTON5(status); + iupKEY_SETBUTTON5(status); if (state & GDK_MOD1_MASK || state & GDK_MOD5_MASK) /* Alt */ - iupKEYSETALT(status); + iupKEY_SETALT(status); if (state & GDK_MOD4_MASK) /* Apple/Win */ - iupKEYSETSYS(status); + iupKEY_SETSYS(status); if (doubleclick) - iupKEYSETDOUBLE(status); + iupKEY_SETDOUBLE(status); } diff --git a/iup/src/gtk/iupgtk_label.c b/iup/src/gtk/iupgtk_label.c index 49d5c6d..f95f576 100755 --- a/iup/src/gtk/iupgtk_label.c +++ b/iup/src/gtk/iupgtk_label.c @@ -133,8 +133,10 @@ static int gtkLabelSetPaddingAttrib(Ihandle* ih, const char* value) { GtkMisc* misc = (GtkMisc*)ih->handle; gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static char* gtkLabelGetPangoLayoutAttrib(Ihandle* ih) diff --git a/iup/src/gtk/iupgtk_list.c b/iup/src/gtk/iupgtk_list.c index 80f6cce..48fa88e 100755 --- a/iup/src/gtk/iupgtk_list.c +++ b/iup/src/gtk/iupgtk_list.c @@ -113,6 +113,8 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value) GtkTreeIter iter; gtk_list_store_insert(GTK_LIST_STORE(model), &iter, pos); gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, iupgtkStrConvertToUTF8(value), -1); + + iupListUpdateOldValue(ih, pos, 0); } void iupdrvListRemoveItem(Ihandle* ih, int pos) @@ -127,14 +129,24 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos) int curpos = gtk_combo_box_get_active((GtkComboBox*)ih->handle); if (pos == curpos) { - if (curpos > 0) curpos--; - else curpos++; + if (curpos > 0) + curpos--; + else + { + curpos=1; + if (iupdrvListGetCount(ih)==1) + curpos = -1; /* remove the selection */ + } + g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih); gtk_combo_box_set_active((GtkComboBox*)ih->handle, curpos); + g_signal_handlers_unblock_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih); } } gtk_list_store_remove(GTK_LIST_STORE(model), &iter); + + iupListUpdateOldValue(ih, pos, 1); } } @@ -177,7 +189,7 @@ static int gtkListSetStandardFontAttrib(Ihandle* ih, const char* value) static char* gtkListGetIdValueAttrib(Ihandle* ih, const char* name_id) { int pos = iupListGetPos(ih, name_id); - if (pos != -1) + if (pos >= 0) { GtkTreeIter iter; GtkTreeModel* model = gtkListGetModel(ih); @@ -349,7 +361,7 @@ static int gtkListSetValueAttrib(Ihandle* ih, const char* value) GtkTreeModel *model = gtkListGetModel(ih); g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih); if (iupStrToInt(value, &pos)==1 && - (pos>0 && pos<gtk_tree_model_iter_n_children(model, NULL))) + (pos>0 && pos<=gtk_tree_model_iter_n_children(model, NULL))) { gtk_combo_box_set_active((GtkComboBox*)ih->handle, pos-1); /* IUP starts at 1 */ iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", pos); @@ -788,9 +800,10 @@ static int gtkListSetNCAttrib(Ihandle* ih, const char* value) { GtkEntry* entry = (GtkEntry*)iupAttribGet(ih, "_IUPGTK_ENTRY"); gtk_entry_set_max_length(entry, ih->data->nc); + return 0; } - - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int gtkListSetClipboardAttrib(Ihandle *ih, const char *value) @@ -1364,9 +1377,9 @@ static int gtkListMapMethod(Ihandle* ih) if (!ih->data->has_editbox && ih->data->is_multiple) { gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); -#if GTK_CHECK_VERSION(2, 10, 0) + #if GTK_CHECK_VERSION(2, 10, 0) gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE); -#endif + #endif } else gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE); diff --git a/iup/src/gtk/iupgtk_loop.c b/iup/src/gtk/iupgtk_loop.c index e349a45..704923e 100755 --- a/iup/src/gtk/iupgtk_loop.c +++ b/iup/src/gtk/iupgtk_loop.c @@ -69,6 +69,13 @@ int IupMainLoop(void) return IUP_NOERROR; } +int IupLoopStepWait(void) +{ + if (gtk_main_iteration_do(TRUE)) + return IUP_CLOSE; + return IUP_DEFAULT; +} + int IupLoopStep(void) { if (gtk_main_iteration_do(FALSE)) diff --git a/iup/src/gtk/iupgtk_menu.c b/iup/src/gtk/iupgtk_menu.c index c12fbea..772f4cf 100755 --- a/iup/src/gtk/iupgtk_menu.c +++ b/iup/src/gtk/iupgtk_menu.c @@ -245,11 +245,19 @@ static int gtkMenuMapMethod(Ihandle* ih) return IUP_NOERROR; } +static void gtkMenuUnMapMethod(Ihandle* ih) +{ + if (iupMenuIsMenuBar(ih)) + ih->parent = NULL; + + iupdrvBaseUnMapMethod(ih); +} + void iupdrvMenuInitClass(Iclass* ic) { /* Driver Dependent Class functions */ ic->Map = gtkMenuMapMethod; - ic->UnMap = iupdrvBaseUnMapMethod; + ic->UnMap = gtkMenuUnMapMethod; /* Used by iupdrvMenuGetMenuBarSize */ iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, NULL, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_DEFAULT); /* use inheritance to retrieve standard fonts */ @@ -337,15 +345,10 @@ static int gtkItemSetValueAttrib(Ihandle* ih, const char* value) static char* gtkItemGetValueAttrib(Ihandle* ih) { - if (GTK_IS_CHECK_MENU_ITEM(ih->handle)) - { - if (gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle)) - return "ON"; - else - return "OFF"; - } + if (GTK_IS_CHECK_MENU_ITEM(ih->handle) && gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle)) + return "ON"; else - return NULL; + return "OFF"; } static int gtkItemMapMethod(Ihandle* ih) diff --git a/iup/src/gtk/iupgtk_open.c b/iup/src/gtk/iupgtk_open.c index 66e46e8..962f760 100755 --- a/iup/src/gtk/iupgtk_open.c +++ b/iup/src/gtk/iupgtk_open.c @@ -20,7 +20,52 @@ #include "iupgtk_drv.h" +#ifdef GTK_MAC +#include <gdk/gdk.h> +char* iupgtkGetNativeWindowHandle(Ihandle* ih) +{ + GdkWindow* window = ih->handle->window; + if (window) + return (char*)window; + else + return NULL; +} + +void* iupgtkGetNativeGraphicsContext(GtkWidget* widget) +{ + return (void*)gdk_gc_new((GdkDrawable*)widget->window); +} + +void iupgtkReleaseNativeGraphicsContext(GtkWidget* widget, void* gc) +{ + g_object_unref(gc); + (void)widget; +} + +void* iupdrvGetDisplay(void) +{ + GdkDisplay* display = gdk_display_get_default(); + return display; +} + +void iupgtkPushVisualAndColormap(void* visual, void* colormap) +{ + GdkColormap* gdk_colormap; + GdkVisual *gdk_visual = gdk_visual_get_best(); + + gdk_colormap = gdk_colormap_new(gdk_visual, FALSE); + + gtk_widget_push_colormap(gdk_colormap); + + /* gtk_widget_push_visual is now deprecated */ +} + +static void gtkSetDrvGlobalAttrib(void) +{ +} + +#else #ifdef WIN32 /******************************** WIN32 ************************************/ #include <gdk/gdkwin32.h> @@ -115,6 +160,8 @@ static void gtkSetDrvGlobalAttrib(void) #endif +#endif + static void gtkSetGlobalColorAttrib(const char* name, GdkColor *color) { iupGlobalSetDefaultColorAttrib(name, (int)iupCOLOR16TO8(color->red), diff --git a/iup/src/gtk/iupgtk_tabs.c b/iup/src/gtk/iupgtk_tabs.c index 8029826..6b5aa66 100755 --- a/iup/src/gtk/iupgtk_tabs.c +++ b/iup/src/gtk/iupgtk_tabs.c @@ -76,13 +76,13 @@ static void gtkTabsUpdatePageBgColor(Ihandle* ih, unsigned char r, unsigned char for (child = ih->firstchild; child; child = child->brother) { - GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER"); - if (tab_page) + GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER"); + if (tab_container) { GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL"); if (tab_label) iupgtkBaseSetBgColor(tab_label, r, g, b); - iupgtkBaseSetBgColor(tab_page, r, g, b); + iupgtkBaseSetBgColor(tab_container, r, g, b); } } } @@ -121,15 +121,18 @@ static int gtkTabsSetPaddingAttrib(Ihandle* ih, const char* value) iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); if (ih->handle) + { gtkTabsUpdatePagePadding(ih); - return 0; + return 0; + } + else + return 1; /* store until not mapped, when mapped will be set again */ } static void gtkTabsUpdateTabType(Ihandle* ih) { - GtkNotebook* tab_page = (GtkNotebook*)ih->handle; int iup2gtk[4] = {GTK_POS_TOP, GTK_POS_BOTTOM, GTK_POS_LEFT, GTK_POS_RIGHT}; - gtk_notebook_set_tab_pos(tab_page, iup2gtk[ih->data->type]); + gtk_notebook_set_tab_pos((GtkNotebook*)ih->handle, iup2gtk[ih->data->type]); } static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value) @@ -144,7 +147,7 @@ static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value) ih->data->type = ITABS_TOP; if (ih->handle) - gtkTabsUpdateTabType(ih); + gtkTabsUpdateTabType(ih); /* for this to work must be updated in map */ return 0; } @@ -171,7 +174,7 @@ static int gtkTabsSetTabTitleAttrib(Ihandle* ih, const char* name_id, const char GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL"); if (tab_label) { - GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER"); + GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE"); gtk_label_set_text((GtkLabel*)tab_label, iupgtkStrConvertToUTF8(value)); gtk_notebook_set_menu_label_text((GtkNotebook*)ih->handle, tab_page, gtk_label_get_text((GtkLabel*)tab_label)); } @@ -238,8 +241,10 @@ void gtkTabSwitchPage(GtkNotebook* notebook, GtkNotebookPage *page, int pos, Iha IFnnn cb; Ihandle* child = IupGetChild(ih, pos); Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih)); - IupSetAttribute(child, "VISIBLE", "YES"); - IupSetAttribute(prev_child, "VISIBLE", "NO"); + GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER"); + GtkWidget* prev_tab_container = (GtkWidget*)iupAttribGet(prev_child, "_IUPTAB_CONTAINER"); + if (tab_container) gtk_widget_show(tab_container); + if (prev_tab_container) gtk_widget_hide(prev_tab_container); if (iupAttribGet(ih, "_IUPGTK_IGNORE_CHANGE")) return; @@ -263,7 +268,7 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child) if (ih->handle) { - GtkWidget* tab_page; + GtkWidget *tab_page, *tab_container; GtkWidget *tab_label = NULL, *tab_image = NULL; char *tabtitle, *tabimage; int pos; @@ -271,9 +276,13 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child) pos = IupGetChildPos(ih, child); - tab_page = gtk_fixed_new(); + tab_page = gtk_vbox_new(FALSE, 0); gtk_widget_show(tab_page); + tab_container = gtk_fixed_new(); + gtk_widget_show(tab_container); + gtk_container_add((GtkContainer*)tab_page, tab_container); + tabtitle = iupAttribGet(child, "TABTITLE"); if (!tabtitle) tabtitle = iupTabsAttribGetStrId(ih, "TABTITLE", pos); tabimage = iupAttribGet(child, "TABIMAGE"); @@ -327,9 +336,10 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child) iupAttribSetStr(child, "_IUPGTK_TABIMAGE", (char*)tab_image); /* store it even if its NULL */ iupAttribSetStr(child, "_IUPGTK_TABLABEL", (char*)tab_label); - iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_page); + iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_container); + iupAttribSetStr(child, "_IUPTAB_PAGE", (char*)tab_page); iupStrToRGB(IupGetAttribute(ih, "BGCOLOR"), &r, &g, &b); - iupgtkBaseSetBgColor(tab_page, r, g, b); + iupgtkBaseSetBgColor(tab_container, r, g, b); if (tabtitle) { @@ -354,10 +364,8 @@ static void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child) iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", NULL); - if (pos == iupdrvTabsGetCurrentTab(ih)) - IupSetAttribute(child, "VISIBLE", "YES"); - else - IupSetAttribute(child, "VISIBLE", "NO"); + if (pos != iupdrvTabsGetCurrentTab(ih)) + gtk_widget_hide(tab_container); } } @@ -365,10 +373,11 @@ static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child) { if (ih->handle) { - GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER"); + GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE"); if (tab_page) { int pos = gtk_notebook_page_num((GtkNotebook*)ih->handle, tab_page); + iupTabsTestRemoveTab(ih, pos); iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", "1"); gtk_notebook_remove_page((GtkNotebook*)ih->handle, pos); @@ -377,6 +386,7 @@ static void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child) iupAttribSetStr(child, "_IUPGTK_TABIMAGE", NULL); iupAttribSetStr(child, "_IUPGTK_TABLABEL", NULL); iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL); + iupAttribSetStr(child, "_IUPTAB_PAGE", NULL); } } } @@ -440,5 +450,5 @@ void iupdrvTabsInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, gtkTabsSetTabOrientationAttrib, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TABTITLE", NULL, gtkTabsSetTabTitleAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, gtkTabsSetTabImageAttrib, IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); + iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); } diff --git a/iup/src/gtk/iupgtk_text.c b/iup/src/gtk/iupgtk_text.c index 4c2906a..d0909d7 100755 --- a/iup/src/gtk/iupgtk_text.c +++ b/iup/src/gtk/iupgtk_text.c @@ -101,7 +101,7 @@ static void gtkTextParseParagraphFormat(Ihandle* formattag, GtkTextTag* tag) align = PANGO_TAB_LEFT; free(str); - pango_tab_array_set_tab(tabs, i, align, IUPGTK_PIXELS2PANGOUNITS(pos)); + pango_tab_array_set_tab(tabs, i, align, iupGTK_PIXELS2PANGOUNITS(pos)); i++; if (i == 32) break; } @@ -171,7 +171,7 @@ static void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag) else iupStrToInt(format, &val); - val = IUPGTK_PIXELS2PANGOUNITS(val); + val = iupGTK_PIXELS2PANGOUNITS(val); g_object_set(G_OBJECT(tag), "rise", val, NULL); } @@ -214,7 +214,7 @@ static void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag) { if (val < 0) /* in pixels */ { - val = IUPGTK_PIXELS2PANGOUNITS(-val); + val = iupGTK_PIXELS2PANGOUNITS(-val); g_object_set(G_OBJECT(tag), "size", val, NULL); } else /* in points */ @@ -387,8 +387,8 @@ static int gtkTextConvertXYToPos(Ihandle* ih, int x, int y) /* transform to Layout coordinates */ gtk_entry_get_layout_offsets(GTK_ENTRY(ih->handle), &off_x, &off_y); - x = IUPGTK_PIXELS2PANGOUNITS(x - off_x); - y = IUPGTK_PIXELS2PANGOUNITS(y - off_y); + x = iupGTK_PIXELS2PANGOUNITS(x - off_x); + y = iupGTK_PIXELS2PANGOUNITS(y - off_y); pango_layout_xy_to_index(gtk_entry_get_layout(GTK_ENTRY(ih->handle)), x, y, &pos, &trailing); return pos; @@ -851,7 +851,7 @@ static char* gtkTextGetValueAttrib(Ihandle* ih) static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!value) return 0; @@ -875,7 +875,8 @@ static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value) static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value) { - if (!ih->handle) /* do not store the action before map */ + gint pos; + if (!ih->handle) /* do not do the action before map */ return 0; /* disable callbacks */ iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", "1"); @@ -884,13 +885,18 @@ static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value) GtkTextIter iter; GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ih->handle)); gtk_text_buffer_get_end_iter(buffer, &iter); - if (ih->data->append_newline) + pos = gtk_text_buffer_get_char_count(buffer); + if (ih->data->append_newline && pos!=0) gtk_text_buffer_insert(buffer, &iter, "\n", 1); gtk_text_buffer_insert(buffer, &iter, iupgtkStrConvertToUTF8(value), -1); } else { - gint pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1; +#if GTK_CHECK_VERSION(2, 14, 0) + pos = gtk_entry_get_text_length(GTK_ENTRY(ih->handle))+1; +#else + pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1; +#endif gtk_editable_insert_text(GTK_EDITABLE(ih->handle), iupgtkStrConvertToUTF8(value), -1, &pos); } iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", NULL); @@ -946,8 +952,10 @@ static int gtkTextSetPaddingAttrib(Ihandle* ih, const char* value) gtk_entry_set_inner_border(GTK_ENTRY(ih->handle), &border); #endif } + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int gtkTextSetNCAttrib(Ihandle* ih, const char* value) @@ -955,10 +963,14 @@ static int gtkTextSetNCAttrib(Ihandle* ih, const char* value) if (!iupStrToInt(value, &ih->data->nc)) ih->data->nc = INT_MAX; - if (!ih->data->is_multiline && ih->handle) - gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc); - - return 0; + if (ih->handle) + { + if (!ih->data->is_multiline) + gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc); + return 0; + } + else + return 1; /* store until not mapped, when mapped will be set again */ } static int gtkTextSetClipboardAttrib(Ihandle *ih, const char *value) diff --git a/iup/src/gtk/iupgtk_toggle.c b/iup/src/gtk/iupgtk_toggle.c index 8ff7df5..040beda 100755 --- a/iup/src/gtk/iupgtk_toggle.c +++ b/iup/src/gtk/iupgtk_toggle.c @@ -213,8 +213,10 @@ static int gtkToggleSetPaddingAttrib(Ihandle* ih, const char* value) GtkButton* button = (GtkButton*)ih->handle; GtkMisc* misc = (GtkMisc*)gtk_button_get_image(button); gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int gtkToggleSetFgColorAttrib(Ihandle* ih, const char* value) diff --git a/iup/src/gtk/iupgtk_tree.c b/iup/src/gtk/iupgtk_tree.c index d408f27..9595ada 100755 --- a/iup/src/gtk/iupgtk_tree.c +++ b/iup/src/gtk/iupgtk_tree.c @@ -31,33 +31,50 @@ #include "iup_drvinfo.h" #include "iupgtk_drv.h" + +/* IMPORTANT: + + GtkTreeStore uses the "user_data" field of the GtkTreeIter + to store the node pointer that is position independent. + So we use it as a reference to the node in the cache, just like in Motif and Windows. + + BUT if GTK change its implementation this must be changed also. See "gtk_tree_store.c". + + ABOUT SELECTIONS: + + From the GTK documentation on GtkTreeSelection + + "Additionally, you cannot change the selection of a row on the model + that is not currently displayed by the view without expanding its parents first." +*/ + enum { - IUPGTK_TREE_IMAGE, + IUPGTK_TREE_IMAGE, /* "pixbuf", "pixbuf-expander-closed" */ IUPGTK_TREE_HAS_IMAGE, - IUPGTK_TREE_IMAGE_EXPANDED, + IUPGTK_TREE_IMAGE_EXPANDED, /* "pixbuf-expander-open" */ IUPGTK_TREE_HAS_IMAGE_EXPANDED, - IUPGTK_TREE_TITLE, - IUPGTK_TREE_KIND, - IUPGTK_TREE_COLOR, - IUPGTK_TREE_FONT, - IUPGTK_TREE_USERDATA + IUPGTK_TREE_TITLE, /* "text" */ + IUPGTK_TREE_KIND, /* "is-expander" */ + IUPGTK_TREE_COLOR, /* "foreground-gdk" */ + IUPGTK_TREE_FONT, /* "font-desc" */ + IUPGTK_TREE_SELECT, + IUPGTK_TREE_LAST_DATA /* used as a count */ }; -static GtkTreeIter gtkTreeInvalidIter = {0,0,0,0}; +static void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem); /*****************************************************************************/ /* COPYING ITEMS (Branches and its children) */ /*****************************************************************************/ /* Insert the copied item in a new location. Returns the new item. */ -static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem, int full_copy) +static void gtkTreeCopyItem(Ihandle* ih, GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem) { GtkTreeStore* store = GTK_TREE_STORE(model); int kind; char* title; gboolean has_image, has_image_expanded; PangoFontDescription* font; - void* userdata; GdkColor *color; GdkPixbuf* image, *image_expanded; @@ -69,9 +86,10 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI IUPGTK_TREE_KIND, &kind, IUPGTK_TREE_COLOR, &color, IUPGTK_TREE_FONT, &font, - IUPGTK_TREE_USERDATA, &userdata, -1); + /* Add the new node */ + ih->data->node_count++; if (position == 2) gtk_tree_store_append(store, iterNewItem, iterParent); else if (position == 1) /* copy as first child of expanded branch */ @@ -79,9 +97,6 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI else /* copy as next brother of item or collapsed branch */ gtk_tree_store_insert_after(store, iterNewItem, NULL, iterParent); /* iterParent is sibling of the new item */ - if (full_copy) /* during a full copy the userdata reference is not copied */ - userdata = NULL; - gtk_tree_store_set(store, iterNewItem, IUPGTK_TREE_IMAGE, image, IUPGTK_TREE_HAS_IMAGE, has_image, IUPGTK_TREE_IMAGE_EXPANDED, image_expanded, @@ -90,21 +105,21 @@ static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI IUPGTK_TREE_KIND, kind, IUPGTK_TREE_COLOR, color, IUPGTK_TREE_FONT, font, - IUPGTK_TREE_USERDATA, userdata, + IUPGTK_TREE_SELECT, 0, -1); } -static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, int full_copy) +static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst) { GtkTreeIter iterChildSrc; int hasItem = gtk_tree_model_iter_children(model, &iterChildSrc, iterItemSrc); /* get the firstchild */ while(hasItem) { GtkTreeIter iterNewItem; - gtkTreeCopyItem(model, &iterChildSrc, iterItemDst, 2, &iterNewItem, full_copy); /* append always */ + gtkTreeCopyItem(ih, model, &iterChildSrc, iterItemDst, 2, &iterNewItem); /* append always */ /* Recursively transfer all the items */ - gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem, full_copy); + gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem); /* Go to next sibling item */ hasItem = gtk_tree_model_iter_next(model, &iterChildSrc); @@ -112,9 +127,17 @@ static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *i } /* Copies all items in a branch to a new location. Returns the new branch node. */ -static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int full_copy) +static void gtkTreeCopyMoveNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int is_copy) { int kind, position = 0; /* insert after iterItemDst */ + int id_new, count, id_src, id_dst; + + int old_count = ih->data->node_count; + + id_src = iupTreeFindNodeId(ih, iterItemSrc); + id_dst = iupTreeFindNodeId(ih, iterItemDst); + id_new = id_dst+1; /* contains the position for a copy operation */ + gtk_tree_model_get(model, iterItemDst, IUPGTK_TREE_KIND, &kind, -1); if (kind == ITREE_BRANCH) @@ -122,346 +145,311 @@ static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterI GtkTreePath* path = gtk_tree_model_get_path(model, iterItemDst); if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path)) position = 1; /* insert as first child of iterItemDst */ + else + { + int child_count = iupdrvTreeTotalChildCount(ih, iterItemDst); + id_new += child_count; + } gtk_tree_path_free(path); } - gtkTreeCopyItem(model, iterItemSrc, iterItemDst, position, iterNewItem, full_copy); + /* move to the same place does nothing */ + if (!is_copy && id_new == id_src) + { + iterNewItem->stamp = 0; + return; + } - gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem, full_copy); -} + gtkTreeCopyItem(ih, model, iterItemSrc, iterItemDst, position, iterNewItem); -/*****************************************************************************/ -/* FINDING ITEMS */ -/*****************************************************************************/ + gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem); -static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter* iterItem) -{ - GtkTreeIter iterChild; - int hasItem = TRUE; + count = ih->data->node_count - old_count; + iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy); - while(hasItem) + if (!is_copy) { - if(gtk_tree_selection_iter_is_selected(selection, iterItem)) - gtk_tree_selection_unselect_iter(selection, iterItem); - else - gtk_tree_selection_select_iter(selection, iterItem); + /* Deleting the node of its old position */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + gtk_tree_store_remove(GTK_TREE_STORE(model), iterItemSrc); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); - /* Check whether we have child items */ - if(gtk_tree_model_iter_has_child(model, iterItem)) - { - gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */ - gtkTreeInvertAllNodeMarking(ih, model, selection, &iterChild); - } + /* restore count, because we remove src */ + ih->data->node_count = old_count; - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, iterItem); + /* compensate position for a move */ + if (id_new > id_src) + id_new -= count; } + + gtkTreeRebuildNodeCache(ih, id_new, *iterNewItem); } -static GtkTreeIter gtkTreeFindVisibleNodeId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode) +/*****************************************************************************/ +/* FINDING ITEMS */ +/*****************************************************************************/ + +static void gtkTreeIterInit(Ihandle* ih, GtkTreeIter* iterItem, InodeHandle* node_handle) { - GtkTreeIter iterChild; - GtkTreePath* path; - int hasItem = TRUE; + iterItem->stamp = ih->data->stamp; + iterItem->user_data = node_handle; + iterItem->user_data2 = NULL; + iterItem->user_data3 = NULL; +} - while(hasItem) - { - /* ID control to traverse items */ - ih->data->id_control++; /* not the real id since it counts only the visible ones */ +static int gtkTreeIsNodeSelected(GtkTreeModel* model, GtkTreeIter *iterItem) +{ + gboolean selected = 0; + gtk_tree_model_get(model, iterItem, IUPGTK_TREE_SELECT, &selected, -1); + return selected; +} - /* StateID founded! */ - if(iterItem.user_data == iterNode.user_data) - return iterItem; +static void gtkTreeSelectNodeRaw(GtkTreeModel* model, GtkTreeIter *iterItem, int select) +{ + /* Cannot change the selection of a row on the model that is not currently displayed. + So we store the selection state here. And update the actual state when the node becames visible. */ + gtk_tree_store_set(GTK_TREE_STORE(model), iterItem, IUPGTK_TREE_SELECT, select, -1); +} - path = gtk_tree_model_get_path(model, &iterItem); +static void gtkTreeSelectNode(GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem, int select) +{ + if (select == -1) + select = !gtkTreeIsNodeSelected(model, iterItem); /* toggle */ - /* Check whether we have child items and it is expanded (visible) */ - if (gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path)) - { - gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */ - iterChild = gtkTreeFindVisibleNodeId(ih, model, iterChild, iterNode); + gtkTreeSelectNodeRaw(model, iterItem, select); - /* StateID founded! */ - if(iterChild.user_data) - { - gtk_tree_path_free(path); - return iterChild; - } - } + if (select) + gtk_tree_selection_select_iter(selection, iterItem); + else + gtk_tree_selection_unselect_iter(selection, iterItem); +} - gtk_tree_path_free(path); - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterItem); +static void gtkTreeSelectAll(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, int selected) +{ + int i; + GtkTreeIter iterItem; + + for (i = 0; i < ih->data->node_count; i++) + { + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + gtkTreeSelectNodeRaw(model, &iterItem, selected); } - return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */ + if (selected) + gtk_tree_selection_select_all(selection); + else + gtk_tree_selection_unselect_all(selection); } -static GtkTreeIter gtkTreeFindVisibleNodeFromId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem) +static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection) { - GtkTreeIter iterChild; - GtkTreePath* path; - int hasItem = TRUE; + int i; + GtkTreeIter iterItem; - while(hasItem) + for (i = 0; i < ih->data->node_count; i++) { - /* ID control to traverse items */ - ih->data->id_control--; /* not the real id since it counts only the visible ones */ + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + gtkTreeSelectNode(model, selection, &iterItem, -1); + } +} - /* StateID founded! */ - if(ih->data->id_control < 0) - return iterItem; +static void gtkTreeSelectRange(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem1, GtkTreeIter *iterItem2, int clear) +{ + int i; + int id1 = iupTreeFindNodeId(ih, iterItem1->user_data); + int id2 = iupTreeFindNodeId(ih, iterItem2->user_data); + GtkTreeIter iterItem; - path = gtk_tree_model_get_path(model, &iterItem); + if (id1 > id2) + { + int tmp = id1; + id1 = id2; + id2 = tmp; + } - /* Check whether we have child items and it is expanded (visible) */ - if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path)) + for (i = 0; i < ih->data->node_count; i++) + { + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + if (i < id1 || i > id2) { - gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */ - iterChild = gtkTreeFindVisibleNodeFromId(ih, model, iterChild); - - /* StateID founded! */ - if(ih->data->id_control < 0) - { - gtk_tree_path_free(path); - return iterChild; - } + if (clear) + gtkTreeSelectNode(model, selection, &iterItem, 0); } - - gtk_tree_path_free(path); - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterItem); + else + gtkTreeSelectNode(model, selection, &iterItem, 1); } - - return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */ } -static GtkTreeIter gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem) +static int gtkTreeIsNodeVisible(Ihandle* ih, GtkTreeModel* model, InodeHandle* node_handle, InodeHandle* *nodeLastParent) { - GtkTreeIter iterChild, iterPrev = gtkTreeInvalidIter; - GtkTreePath* path = gtk_tree_model_get_path(model, &iterItem); - - /* Check whether we have child items and it is expanded (visible) */ - if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path)) - { - int hasItem = TRUE; - gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */ + GtkTreeIter iterItem, iterParent; + GtkTreePath* path; + int is_visible; - while(hasItem) - { - iterPrev = iterChild; + gtkTreeIterInit(ih, &iterItem, node_handle); - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterChild); - } + if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem) || + iterParent.user_data == *nodeLastParent) + return 1; - iterItem = gtkTreeGetLastVisibleNode(ih, model, iterPrev); - } + path = gtk_tree_model_get_path(model, &iterParent); + is_visible = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path); gtk_tree_path_free(path); - return iterItem; + if (!is_visible) + return 0; + + /* save last parent */ + *nodeLastParent = iterParent.user_data; + return 1; } -static GtkTreeIter gtkTreeFindNodeID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode) +static void gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem) { - GtkTreeIter iterChild; - int hasItem = TRUE; + int i; + InodeHandle* nodeLastParent = NULL; - while(hasItem) + for (i = ih->data->node_count-1; i >= 0; i--) { - /* ID control to traverse items */ - ih->data->id_control++; - - /* StateID founded! */ - if (iterItem.user_data == iterNode.user_data) - return iterItem; - - /* Check whether we have child items */ - if (gtk_tree_model_iter_has_child(model, &iterItem)) + if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent)) { - gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */ - iterChild = gtkTreeFindNodeID(ih, model, iterChild, iterNode); - - /* StateID founded! */ - if(iterChild.user_data) - return iterChild; + gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle); + return; } - - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterItem); } - return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */ + gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */ } -static int gtkTreeGetNodeId(Ihandle* ih, GtkTreeIter iterItem) +static void gtkTreeGetNextVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count) { - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterRoot; - gtk_tree_model_get_iter_first(model, &iterRoot); - - ih->data->id_control = -1; - iterItem = gtkTreeFindNodeID(ih, model, iterRoot, iterItem); - if (iterItem.user_data) - return ih->data->id_control; - else - return -1; -} + int i, id; + InodeHandle* nodeLastParent = NULL; -static GtkTreeIter gtkTreeFindUserData(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, void* userdata) -{ - GtkTreeIter iterChild; - int hasItem = TRUE; - void* node_userdata; + id = iupTreeFindNodeId(ih, iterItem->user_data); + id += count; - while(hasItem) + for (i = id; i < ih->data->node_count; i++) { - /* ID control to traverse items */ - ih->data->id_control++; + if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent)) + { + gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle); + return; + } + } - gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1); + gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */ +} - /* userdata founded! */ - if (node_userdata == userdata) - return iterItem; +static void gtkTreeGetPreviousVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count) +{ + int i, id; + InodeHandle* nodeLastParent = NULL; - /* Check whether we have child items */ - if (gtk_tree_model_iter_has_child(model, &iterItem)) - { - gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */ - iterChild = gtkTreeFindUserData(ih, model, iterChild, userdata); + id = iupTreeFindNodeId(ih, iterItem->user_data); + id -= count; - /* userdata founded! */ - if (iterChild.user_data) - return iterChild; + for (i = id; i >= 0; i--) + { + if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent)) + { + gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle); + return; } - - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterItem); } - return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */ + gtkTreeGetLastVisibleNode(ih, model, iterItem); } -static int gtkTreeGetUserDataId(Ihandle* ih, GtkTreeModel* model, void* userdata) +static int gtkTreeFindNodeId(Ihandle* ih, GtkTreeIter* iterItem) { - GtkTreeIter iterRoot, iterItem; - gtk_tree_model_get_iter_first(model, &iterRoot); - - ih->data->id_control = -1; - iterItem = gtkTreeFindUserData(ih, model, iterRoot, userdata); - if (iterItem.user_data) - return ih->data->id_control; - else - return -1; + return iupTreeFindNodeId(ih, iterItem->user_data); } -static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, IFnis cb) +static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, IFns cb, int *id) { GtkTreeIter iterChild; - int hasItem = TRUE; - void* node_userdata; + int hasItem; + int old_id = *id; + /* Check whether we have child items */ + /* remove from children first */ + hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */ while(hasItem) { - /* ID control to traverse items */ - ih->data->id_control++; - - gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1); - - cb(ih, ih->data->id_control, (char*)node_userdata); - - /* Check whether we have child items */ - if (gtk_tree_model_iter_has_child(model, &iterItem)) - { - gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */ - gtkTreeCallNodeRemovedRec(ih, model, iterChild, cb); - } + /* go recursive to children */ + gtkTreeCallNodeRemovedRec(ih, model, &iterChild, cb, id); /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterItem); + hasItem = gtk_tree_model_iter_next(model, &iterChild); } + + /* actually do it for the node */ + ih->data->node_count--; + (*id)++; + + cb(ih, (char*)ih->data->node_cache[old_id].userdata); } static void gtkTreeCallNodeRemoved(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem) { - IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB"); + int old_count = ih->data->node_count; + int id = iupTreeFindNodeId(ih, iterItem->user_data); + int old_id = id; + + IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB"); if (cb) + gtkTreeCallNodeRemovedRec(ih, model, iterItem, cb, &id); + else { - ih->data->id_control = gtkTreeGetNodeId(ih, *iterItem)-1; - gtkTreeCallNodeRemovedRec(ih, model, *iterItem, cb); + int removed_count = iupdrvTreeTotalChildCount(ih, iterItem->user_data)+1; + ih->data->node_count -= removed_count; } + + iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count); } -static gboolean gtkTreeFindNodeFromID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int *id) +static void gtkTreeCallNodeRemovedAll(Ihandle* ih) { - GtkTreeIter iterChild; - int hasItem = TRUE; + IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB"); + int i, old_count = ih->data->node_count; - while(hasItem) + if (cb) { - /* ID control to traverse items */ - (*id)--; - - /* StateID founded! */ - if (*id < 0) - return TRUE; - - /* Check whether we have child items */ - if (gtk_tree_model_iter_has_child(model, iterItem)) + for (i = 0; i < ih->data->node_count; i++) { - gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */ - - if (gtkTreeFindNodeFromID(ih, model, &iterChild, id)) - { - *iterItem = iterChild; - return TRUE; - } + cb(ih, (char*)ih->data->node_cache[i].userdata); } - - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, iterItem); } - return FALSE; + ih->data->node_count = 0; + + iupTreeDelFromCache(ih, 0, old_count); } -static gboolean gtkTreeFindNodeFromString(Ihandle* ih, GtkTreeModel* model, const char* name_id, GtkTreeIter *iterItem) +static gboolean gtkTreeFindNodeFromString(Ihandle* ih, const char* name_id, GtkTreeIter *iterItem) { - if (name_id[0]) - { - int id; - if (iupStrToInt(name_id, &id)) - { - gtk_tree_model_get_iter_first(model, iterItem); - return gtkTreeFindNodeFromID(ih, model, iterItem, &id); - } - } - else - { - GtkTreePath* path = NULL; - gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL); - if (path) - { - gtk_tree_model_get_iter(model, iterItem, path); - gtk_tree_path_free(path); - return TRUE; - } - } - return FALSE; + InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id); + if (!node_handle) + return FALSE; + + gtkTreeIterInit(ih, iterItem, node_handle); + return TRUE; } /*****************************************************************************/ /* MANIPULATING IMAGES */ /*****************************************************************************/ -static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, int mode) +static void gtkTreeUpdateImages(Ihandle* ih, int mode) { - GtkTreeIter iterChild; - int hasItem = TRUE; - int kind; + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + GtkTreeIter iterItem; + int i, kind; - while(hasItem) + for (i=0; i<ih->data->node_count; i++) { + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1); if (kind == ITREE_BRANCH) @@ -480,14 +468,6 @@ static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it if (!has_image) gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed, -1); } - - if (gtk_tree_model_iter_has_child(model, &iterItem)) - { - - /* Recursively traverse child items */ - gtk_tree_model_iter_children(model, &iterChild, &iterItem); - gtkTreeUpdateImages(ih, model, iterChild, mode); - } } else { @@ -499,9 +479,6 @@ static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1); } } - - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterItem); } } @@ -536,26 +513,49 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t GtkTreeIter iterPrev, iterNewItem, iterParent; GtkTreePath* path; GdkColor color = {0L,0,0,0}; - int kindPrev; - - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterPrev)) - return; + int kindPrev = -1; - gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1); + if (!gtkTreeFindNodeFromString(ih, name_id, &iterPrev)) + { + /* check if the root was really specified */ + int id = 0; + if (!iupStrToInt(name_id, &id) || id != -1) + return; + } + else + gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1); - if (kindPrev == ITREE_BRANCH && add) - gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */ + if (kindPrev != -1) + { + /* Add the new node */ + if (kindPrev == ITREE_BRANCH && add) + gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */ + else + gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */ + iupTreeAddToCache(ih, add, kindPrev, iterPrev.user_data, iterNewItem.user_data); + } else - gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */ + { + gtk_tree_store_append(store, &iterNewItem, NULL); /* root node */ + iupTreeAddToCache(ih, 0, 0, NULL, iterNewItem.user_data); + + /* store the stamp for the tree */ + ih->data->stamp = iterNewItem.stamp; + } iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color); + if (!title) + title = ""; + /* set the attributes of the new node */ gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_HAS_IMAGE, FALSE, IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE, IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(title), IUPGTK_TREE_KIND, kind, - IUPGTK_TREE_COLOR, &color, -1); + IUPGTK_TREE_COLOR, &color, + IUPGTK_TREE_SELECT, 0, + -1); if (kind == ITREE_LEAF) gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1); @@ -563,56 +563,113 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed, IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded, -1); - if (kindPrev == ITREE_BRANCH && add) - iterParent = iterPrev; - else - gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem); + if (kindPrev != -1) + { + if (kindPrev == ITREE_BRANCH && add) + iterParent = iterPrev; + else if (!gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem)) + return; - /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */ - if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1) + /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */ + if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1) + { + path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1"); + if (ih->data->add_expanded) + gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE); + else + gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL); + gtk_tree_path_free(path); + } + } + else { - int depth; - path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent); - depth = gtk_tree_path_get_depth(path)-1; - if (ih->data->add_expanded || depth==0) /* if this is the first child of the root, expand always */ + if (ih->data->node_count == 1) { - iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", "1"); - gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE); + /* MarkStart node */ + iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterNewItem.user_data); + + /* Set the default VALUE */ + path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterNewItem); + gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE); + gtk_tree_path_free(path); } - else - gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path); - gtk_tree_path_free(path); } } -static void gtkTreeAddRootNode(Ihandle* ih) + +/*****************************************************************************/ +/* AUXILIAR FUNCTIONS */ +/*****************************************************************************/ + + +static void gtkTreeChildRebuildCacheRec(Ihandle* ih, GtkTreeModel *model, GtkTreeIter *iterItem, int *id) { - GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); - GtkTreePath* path; - GtkTreeIter iterRoot; - GdkColor color = {0L,0,0,0}; + GtkTreeIter iterChild; + int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */ + while(hasItem) + { + (*id)++; + ih->data->node_cache[*id].node_handle = iterChild.user_data; - iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color); + /* go recursive to children */ + gtkTreeChildRebuildCacheRec(ih, model, &iterChild, id); + + /* Go to next sibling item */ + hasItem = gtk_tree_model_iter_next(model, &iterChild); + } +} - gtk_tree_store_append(store, &iterRoot, NULL); /* root node */ - gtk_tree_store_set(store, &iterRoot, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed, - IUPGTK_TREE_HAS_IMAGE, FALSE, - IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded, - IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE, - IUPGTK_TREE_KIND, ITREE_BRANCH, - IUPGTK_TREE_COLOR, &color, -1); +static void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem) +{ + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + ih->data->node_cache[id].node_handle = iterItem.user_data; + gtkTreeChildRebuildCacheRec(ih, model, &iterItem, &id); +} + +static void gtkTreeChildCountRec(GtkTreeModel *model, GtkTreeIter *iterItem, int *count) +{ + GtkTreeIter iterChild; + int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */ + while(hasItem) + { + (*count)++; - path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterRoot); - /* MarkStart node */ - iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)path); + /* go recursive to children */ + gtkTreeChildCountRec(model, &iterChild, count); - /* Set the default VALUE */ - gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE); + /* Go to next sibling item */ + hasItem = gtk_tree_model_iter_next(model, &iterChild); + } +} + +int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle) +{ + int count = 0; + GtkTreeIter iterItem; + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + gtkTreeIterInit(ih, &iterItem, node_handle); + gtkTreeChildCountRec(model, &iterItem, &count); + return count; +} + +InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih) +{ + GtkTreePath* path = NULL; + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL); + if (path) + { + GtkTreeIter iterItem; + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + gtk_tree_model_get_iter(model, &iterItem, path); + gtk_tree_path_free(path); + return iterItem.user_data; + } + + return NULL; } -/*****************************************************************************/ -/* AUXILIAR FUNCTIONS */ -/*****************************************************************************/ static void gtkTreeOpenCloseEvent(Ihandle* ih) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); @@ -620,7 +677,7 @@ static void gtkTreeOpenCloseEvent(Ihandle* ih) GtkTreePath* path; int kind; - if (!gtkTreeFindNodeFromString(ih, model, "", &iterItem)) + if (!gtkTreeFindNodeFromString(ih, "", &iterItem)) return; path = gtk_tree_model_get_path(model, &iterItem); @@ -637,27 +694,22 @@ static void gtkTreeOpenCloseEvent(Ihandle* ih) } } -static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list) +typedef struct _gtkTreeSelectMinMax { - GtkTreeRowReference *rowref; - - rowref = gtk_tree_row_reference_new(model, path); - *rowref_list = g_list_append(*rowref_list, rowref); + Ihandle* ih; + int id1, id2; +} gtkTreeSelectMinMax; - (void)iter; - return FALSE; /* do not stop walking the store, call us with next row */ -} - -static gboolean gtkTreeSelected_Iter_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list) +static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iterItem, gtkTreeSelectMinMax *minmax) { - GtkTreeRowReference *rowref; - GtkTreeIter iterParent; - if (!gtk_tree_model_iter_parent(model, &iterParent, iter)) /* the root node can't be deleted */ - return FALSE; /* do not stop walking the store, call us with next row */ - - rowref = gtk_tree_row_reference_new(model, path); - *rowref_list = g_list_append(*rowref_list, rowref); + int id = iupTreeFindNodeId(minmax->ih, iterItem->user_data); + if (id < minmax->id1) + minmax->id1 = id; + if (id > minmax->id2) + minmax->id2 = id; + (void)model; + (void)path; return FALSE; /* do not stop walking the store, call us with next row */ } @@ -672,45 +724,48 @@ static void gtkTreeCallMultiSelectionCb(Ihandle* ih) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterRoot; - GList *rr_list = NULL; - GList *node; - int* id_rowItem; - int count_selected_rows, i = 0; + GtkTreeIter iterItem; + int i = 0, countItems; + gtkTreeSelectMinMax minmax; - gtk_tree_model_get_iter_first(model, &iterRoot); + minmax.ih = ih; + minmax.id1 = ih->data->node_count; + minmax.id2 = -1; - gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &rr_list); - count_selected_rows = g_list_length(rr_list); - id_rowItem = malloc(sizeof(int) * count_selected_rows); + gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &minmax); + if (minmax.id2 == -1) + return; - for(node = rr_list; node != NULL; node = node->next) + /* interactive selection of several nodes will NOT select hidden nodes, + so make sure that they are selected. */ + for(i = minmax.id1; i <= minmax.id2; i++) { - GtkTreePath* path = gtk_tree_row_reference_get_path(node->data); - if (path) - { - GtkTreeIter iterItem; - gtk_tree_model_get_iter(model, &iterItem, path); - - id_rowItem[i] = gtkTreeGetNodeId(ih, iterItem); - i++; - - gtk_tree_path_free(path); - } + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + if (!gtkTreeIsNodeSelected(model, &iterItem)) + gtkTreeSelectNodeRaw(model, &iterItem, 1); } - g_list_foreach(rr_list, (GFunc) gtk_tree_row_reference_free, NULL); - g_list_free(rr_list); + /* if last selected item is a branch, then select its children */ + iupTreeSelectLastCollapsedBranch(ih, &(minmax.id2)); + + countItems = minmax.id2-minmax.id1+1; if (cbMulti) - cbMulti(ih, id_rowItem, count_selected_rows); - else { - for (i=0; i<count_selected_rows; i++) - cbSelec(ih, id_rowItem[i], 1); - } + int* id_rowItem = malloc(sizeof(int) * countItems); + + for(i = 0; i < countItems; i++) + id_rowItem[i] = minmax.id1+i; - free(id_rowItem); + cbMulti(ih, id_rowItem, countItems); + + free(id_rowItem); + } + else if (cbSelec) + { + for (i=0; i<countItems; i++) + cbSelec(ih, minmax.id1+i, 1); + } } } @@ -747,14 +802,22 @@ static int gtkTreeSetTopItemAttrib(Ihandle* ih, const char* value) GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); GtkTreeIter iterItem; GtkTreePath* path; + int kind; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), value, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, value, &iterItem)) return 0; path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterItem); - if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path)) + gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1); + if (kind == ITREE_LEAF) + gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path); + else + { + int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path); + if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path); + } gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */ @@ -788,34 +851,23 @@ static int gtkTreeSetExpandAllAttrib(Ihandle* ih, const char* value) if (iupStrBoolean(value)) gtk_tree_view_expand_all(GTK_TREE_VIEW(ih->handle)); else - { - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterRoot; - GtkTreePath* pathRoot; - gtk_tree_view_collapse_all(GTK_TREE_VIEW(ih->handle)); - /* The root node is always expanded */ - gtk_tree_model_get_iter_first(model, &iterRoot); - pathRoot = gtk_tree_model_get_path(model, &iterRoot); - gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), pathRoot, FALSE); - gtk_tree_path_free(pathRoot); - } - return 0; } static char* gtkTreeGetDepthAttrib(Ihandle* ih, const char* name_id) { - char* depth; + char* str; GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) + + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; - depth = iupStrGetMemory(10); - sprintf(depth, "%d", gtk_tree_store_iter_depth(store, &iterItem)); - return depth; + str = iupStrGetMemory(10); + sprintf(str, "%d", gtk_tree_store_iter_depth(store, &iterItem)); + return str; } static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value) @@ -824,14 +876,14 @@ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char GtkTreeIter iterItemSrc, iterItemDst, iterNewItem; GtkTreeIter iterParent, iterNextParent; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc)) return 0; - if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst)) + if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst)) return 0; /* If Drag item is an ancestor of Drop item then return */ @@ -843,12 +895,8 @@ static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char iterParent = iterNextParent; } - /* Copying the node and its children to the new position */ - gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0); /* not a full copy, preserve user data */ - - /* Deleting the node of its old position */ - /* do not delete the user data, we copy the references in CopyNode */ - gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItemSrc); + /* Move the node and its children to the new position */ + gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0); return 0; } @@ -859,14 +907,14 @@ static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char GtkTreeIter iterItemSrc, iterItemDst, iterNewItem; GtkTreeIter iterParent, iterNextParent; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc)) return 0; - if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst)) + if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst)) return 0; /* If Drag item is an ancestor of Drop item then return */ @@ -878,8 +926,8 @@ static int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char iterParent = iterNextParent; } - /* Copying the node and its children to the new position */ - gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1); + /* Copy the node and its children to the new position */ + gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1); return 0; } @@ -891,7 +939,7 @@ static char* gtkTreeGetColorAttrib(Ihandle* ih, const char* name_id) GtkTreeIter iterItem; GdkColor *color; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_COLOR, &color, -1); @@ -912,7 +960,7 @@ static int gtkTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v GdkColor color; unsigned char r, g, b; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; if (!iupStrToRGB(value, &r, &g, &b)) @@ -931,14 +979,14 @@ static char* gtkTreeGetParentAttrib(Ihandle* ih, const char* name_id) GtkTreeIter iterParent; char* str; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem)) return NULL; str = iupStrGetMemory(10); - sprintf(str, "%d", gtkTreeGetNodeId(ih, iterParent)); + sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterParent)); return str; } @@ -948,7 +996,7 @@ static char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id) GtkTreeIter iterItem; char* str; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; str = iupStrGetMemory(10); @@ -956,40 +1004,13 @@ static char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id) return str; } -static int gtkTreeCount(GtkTreeModel* model, GtkTreeIter iterBranch) -{ - GtkTreeIter iterChild; - int count = 0; - int hasItem = gtk_tree_model_iter_children(model, &iterChild, &iterBranch); /* get the firstchild */ - count++; - while(hasItem) - { - count += gtkTreeCount(model, iterChild); - - /* Go to next sibling item */ - hasItem = gtk_tree_model_iter_next(model, &iterChild); - } - - return count; -} - -static char* gtkTreeGetCountAttrib(Ihandle* ih) -{ - GtkTreeIter iterRoot; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - char* str = iupStrGetMemory(10); - gtk_tree_model_get_iter_first(model, &iterRoot); - sprintf(str, "%d", gtkTreeCount(model, iterRoot)); - return str; -} - static char* gtkTreeGetKindAttrib(Ihandle* ih, const char* name_id) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; int kind; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1); @@ -1005,7 +1026,7 @@ static char* gtkTreeGetStateAttrib(Ihandle* ih, const char* name_id) GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; if (gtk_tree_model_iter_has_child(model, &iterItem)) @@ -1028,13 +1049,20 @@ static int gtkTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* v GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; GtkTreePath* path; + int kind; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; - path = gtk_tree_model_get_path(model, &iterItem); - gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED")); - gtk_tree_path_free(path); + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1); + if (kind == ITREE_BRANCH) + { + path = gtk_tree_model_get_path(model, &iterItem); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1"); + gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED")); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL); + gtk_tree_path_free(path); + } return 0; } @@ -1050,7 +1078,7 @@ static char* gtkTreeGetTitleAttrib(Ihandle* ih, const char* name_id) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; return gtkTreeGetTitle(model, iterItem); } @@ -1059,8 +1087,10 @@ static int gtkTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v { GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; + if (!value) + value = ""; gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(value), -1); return 0; } @@ -1070,7 +1100,7 @@ static int gtkTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha PangoFontDescription* fontdesc = NULL; GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; if (value) fontdesc = iupgtkGetPangoFontDesc(value); @@ -1083,49 +1113,12 @@ static char* gtkTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id) PangoFontDescription* fontdesc; GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return NULL; gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1); return pango_font_description_to_string(fontdesc); } -static char* gtkTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id) -{ - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - int id; - char* str = (char*)(name_id+1); /* skip ':' */ - void* userdata = NULL; - if (sscanf(str, "%p", &userdata)!=1) - return NULL; - id = gtkTreeGetUserDataId(ih, model, userdata); - if (id == -1) - return NULL; - str = iupStrGetMemory(16); - sprintf(str, "%d", id); - return str; -} - -static char* gtkTreeGetUserDataAttrib(Ihandle* ih, const char* name_id) -{ - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterItem; - char* userdata; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) - return NULL; - gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &userdata, -1); - return userdata; -} - -static int gtkTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value) -{ - GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); - GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) - return 0; - gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_USERDATA, value, -1); - return 0; -} - static char* gtkTreeGetValueAttrib(Ihandle* ih) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); @@ -1140,67 +1133,117 @@ static char* gtkTreeGetValueAttrib(Ihandle* ih) gtk_tree_path_free(path); str = iupStrGetMemory(16); - sprintf(str, "%d", gtkTreeGetNodeId(ih, iterItem)); + sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterItem)); return str; } - return "0"; /* default VALUE is root */ + if (ih->data->node_count) + return "0"; /* default VALUE is root */ + else + return "-1"; +} + +static char* gtkTreeGetMarkedNodesAttrib(Ihandle* ih) +{ + char* str = iupStrGetMemory(ih->data->node_count+1); + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + GtkTreeIter iterItem; + int i; + + for (i=0; i<ih->data->node_count; i++) + { + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + if (gtkTreeIsNodeSelected(model, &iterItem)) + str[i] = '+'; + else + str[i] = '-'; + } + + str[ih->data->node_count] = 0; + return str; +} + +static int gtkTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value) +{ + int count, i; + GtkTreeModel* model; + GtkTreeIter iterItem; + GtkTreeSelection* selection; + + if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value) + return 0; + + count = strlen(value); + if (count > ih->data->node_count) + count = ih->data->node_count; + + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + + for (i=0; i<count; i++) + { + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + if (value[i] == '+') + gtkTreeSelectNode(model, selection, &iterItem, 1); + else + gtkTreeSelectNode(model, selection, &iterItem, 0); + } + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + + return 0; } static int gtkTreeSetMarkAttrib(Ihandle* ih, const char* value) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterRoot; if (ih->data->mark_mode==ITREE_MARK_SINGLE) return 0; - gtk_tree_model_get_iter_first(model, &iterRoot); - if(iupStrEqualNoCase(value, "BLOCK")) { + GtkTreeIter iterItem1, iterItem2; GtkTreePath* pathFocus; gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); - gtk_tree_selection_select_range(selection, (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), pathFocus); + gtk_tree_model_get_iter(model, &iterItem1, pathFocus); gtk_tree_path_free(pathFocus); + + gtkTreeIterInit(ih, &iterItem2, iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE")); + + gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0); } else if(iupStrEqualNoCase(value, "CLEARALL")) - gtk_tree_selection_unselect_all(selection); + gtkTreeSelectAll(ih, model, selection, 0); else if(iupStrEqualNoCase(value, "MARKALL")) - gtk_tree_selection_select_all(selection); + gtkTreeSelectAll(ih, model, selection, 1); else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */ - gtkTreeInvertAllNodeMarking(ih, model, selection, &iterRoot); + gtkTreeInvertAllNodeMarking(ih, model, selection); else if(iupStrEqualPartial(value, "INVERT")) { /* iupStrEqualPartial allows the use of "INVERTid" form */ GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, &value[strlen("INVERT")], &iterItem)) + if (!gtkTreeFindNodeFromString(ih, &value[strlen("INVERT")], &iterItem)) return 0; - if(gtk_tree_selection_iter_is_selected(selection, &iterItem)) - gtk_tree_selection_unselect_iter(selection, &iterItem); - else - gtk_tree_selection_select_iter(selection, &iterItem); + gtkTreeSelectNode(model, selection, &iterItem, -1); /* toggle */ } else { - GtkTreePath *path1, *path2; GtkTreeIter iterItem1, iterItem2; char str1[50], str2[50]; if (iupStrToStrStr(value, str1, str2, '-')!=2) return 0; - if (!gtkTreeFindNodeFromString(ih, model, str1, &iterItem1)) + if (!gtkTreeFindNodeFromString(ih, str1, &iterItem1)) return 0; - if (!gtkTreeFindNodeFromString(ih, model, str2, &iterItem2)) + if (!gtkTreeFindNodeFromString(ih, str2, &iterItem2)) return 0; - path1 = gtk_tree_model_get_path(model, &iterItem1); - path2 = gtk_tree_model_get_path(model, &iterItem2); - gtk_tree_selection_select_range(selection, path1, path2); - gtk_tree_path_free(path1); - gtk_tree_path_free(path2); + gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0); } return 1; @@ -1210,148 +1253,112 @@ static int gtkTreeSetValueAttrib(Ihandle* ih, const char* value) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterRoot, iterItem; + GtkTreeIter iterItem; GtkTreePath* path; + int kind; if (gtkTreeSetMarkAttrib(ih, value)) return 0; - gtk_tree_model_get_iter_first(model, &iterRoot); - - if (iupStrEqualNoCase(value, "ROOT")) - iterItem = iterRoot; + if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST")) + gtk_tree_model_get_iter_first(model, &iterItem); else if(iupStrEqualNoCase(value, "LAST")) - iterItem = gtkTreeGetLastVisibleNode(ih, model, iterRoot); + gtkTreeGetLastVisibleNode(ih, model, &iterItem); else if(iupStrEqualNoCase(value, "PGUP")) { - GtkTreeIter iterPrev; - GtkTreePath* pathFocus; gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); - gtk_tree_model_get_iter(model, &iterPrev, pathFocus); + gtk_tree_model_get_iter(model, &iterItem, pathFocus); gtk_tree_path_free(pathFocus); - ih->data->id_control = -1; - gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev); - ih->data->id_control -= 10; /* less 10 visible nodes */ - - if(ih->data->id_control < 0) - ih->data->id_control = 0; /* Begin of tree = Root id */ - - iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot); + gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 10); } else if(iupStrEqualNoCase(value, "PGDN")) { - GtkTreeIter iterNext; - GtkTreePath* pathFocus; gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); - gtk_tree_model_get_iter(model, &iterNext, pathFocus); + gtk_tree_model_get_iter(model, &iterItem, pathFocus); gtk_tree_path_free(pathFocus); - ih->data->id_control = -1; - gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext); - ih->data->id_control += 10; /* more 10 visible nodes */ - - iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot); - - if (ih->data->id_control >= 0) - iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot); - - iterItem = iterNext; + gtkTreeGetNextVisibleNode(ih, model, &iterItem, 10); } else if(iupStrEqualNoCase(value, "NEXT")) { - GtkTreeIter iterNext; - GtkTreePath* pathFocus; gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); - gtk_tree_model_get_iter(model, &iterNext, pathFocus); + gtk_tree_model_get_iter(model, &iterItem, pathFocus); gtk_tree_path_free(pathFocus); - ih->data->id_control = -1; - gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext); - ih->data->id_control++; /* more 1 visible node */ - - iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot); - - if (ih->data->id_control >= 0) - iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot); - - iterItem = iterNext; + gtkTreeGetNextVisibleNode(ih, model, &iterItem, 1); } else if(iupStrEqualNoCase(value, "PREVIOUS")) { - GtkTreeIter iterPrev; - GtkTreePath* pathFocus; gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); - gtk_tree_model_get_iter(model, &iterPrev, pathFocus); + gtk_tree_model_get_iter(model, &iterItem, pathFocus); gtk_tree_path_free(pathFocus); - ih->data->id_control = -1; - gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev); - ih->data->id_control--; /* less 1 visible node */ - - if (ih->data->id_control < 0) - ih->data->id_control = 0; - - iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot); - if (!iterItem.user_data) - return 0; + gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 1); } else { - if (!gtkTreeFindNodeFromString(ih, model, value, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, value, &iterItem)) return 0; } /* select */ if (ih->data->mark_mode==ITREE_MARK_SINGLE) { - iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1"); - gtk_tree_selection_select_iter(selection, &iterItem); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + gtkTreeSelectNode(model, selection, &iterItem, 1); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); } path = gtk_tree_model_get_path(model, &iterItem); + + /* make it visible */ + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1); + if (kind == ITREE_LEAF) + gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path); + else + { + int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path); + gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path); + if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path); + } + gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE); /* set focus */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + gtk_tree_path_free(path); - iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeGetNodeId(ih, iterItem)); + iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeFindNodeId(ih, &iterItem)); return 0; } static int gtkTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id) { - GtkTreePath *pathMarkStart, *pathMarkStartPrev; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; - pathMarkStart = gtk_tree_model_get_path(model, &iterItem); - - pathMarkStartPrev = (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"); - if (pathMarkStartPrev) - gtk_tree_path_free(pathMarkStartPrev); - - iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)pathMarkStart); + iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterItem.user_data); return 1; } static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id) { - GtkTreeSelection* selection; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + GtkTreeModel* model; GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); - if (gtk_tree_selection_iter_is_selected(selection, &iterItem)) + model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + if (gtkTreeIsNodeSelected(model, &iterItem)) return "YES"; else return "NO"; @@ -1359,87 +1366,99 @@ static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id) static int gtkTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value) { + GtkTreeModel* model; GtkTreeSelection* selection; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; - iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1"); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); if (iupStrBoolean(value)) - gtk_tree_selection_select_iter(selection, &iterItem); + gtkTreeSelectNode(model, selection, &iterItem, 1); else - gtk_tree_selection_unselect_iter(selection, &iterItem); + gtkTreeSelectNode(model, selection, &iterItem, 0); + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); return 0; } static int gtkTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */ + if (iupStrEqualNoCase(value, "ALL")) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - GtkTreeIter iterItem; - GtkTreeIter iterParent; + gtkTreeCallNodeRemovedAll(ih); - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) - return 0; + /* deleting the reference node (and it's children) */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + gtk_tree_store_clear(GTK_TREE_STORE(model)); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + return 0; + } + if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */ + { + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + GtkTreeIter iterItem; - if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem)) /* the root node can't be deleted */ + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; gtkTreeCallNodeRemoved(ih, model, &iterItem); - /* deleting the specified node (and it's children) */ + /* deleting the reference node (and it's children) */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); } - else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */ + else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */ { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); GtkTreeIter iterItem, iterChild; int hasChildren; - if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; hasChildren = gtk_tree_model_iter_children(model, &iterChild, &iterItem); - /* deleting the selected node's children */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + + /* deleting the reference node children */ while(hasChildren) { gtkTreeCallNodeRemoved(ih, model, &iterChild); hasChildren = gtk_tree_store_remove(GTK_TREE_STORE(model), &iterChild); } + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); } else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */ { + int i; GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); - GList *rr_list = NULL; - GList *node; + GtkTreeIter iterItem; - gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Iter_Func, &rr_list); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); - for(node = rr_list; node != NULL; node = node->next) + for(i = 1; i < ih->data->node_count; /* increment only if not removed */) { - GtkTreePath* path = gtk_tree_row_reference_get_path(node->data); - if (path) + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + if (gtkTreeIsNodeSelected(model, &iterItem)) { - GtkTreeIter iterItem; - if (gtk_tree_model_get_iter(model, &iterItem, path)) - { - gtkTreeCallNodeRemoved(ih, model, &iterItem); - gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem); - } - gtk_tree_path_free(path); + gtkTreeCallNodeRemoved(ih, model, &iterItem); + gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem); } - gtk_tree_row_reference_free(node->data); + else + i++; } - g_list_free(rr_list); + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); } return 0; @@ -1450,36 +1469,11 @@ static int gtkTreeSetRenameAttrib(Ihandle* ih, const char* value) if (ih->data->show_rename) { GtkTreePath* path; - IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB"); GtkTreeViewColumn *focus_column; - gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, &focus_column); - - if (cbShowRename) - { - GtkTreeIter iterItem; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - gtk_tree_model_get_iter(model, &iterItem, path); - cbShowRename(ih, gtkTreeGetNodeId(ih, iterItem)); - } - gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, focus_column, TRUE); gtk_tree_path_free(path); } - else - { - IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB"); - if (cbRenameNode) - { - GtkTreePath* path; - GtkTreeIter iterItem; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL); - gtk_tree_model_get_iter(model, &iterItem, path); - gtk_tree_path_free(path); - cbRenameNode(ih, gtkTreeGetNodeId(ih, iterItem), gtkTreeGetTitle(model, iterItem)); - } - } (void)value; return 0; @@ -1491,7 +1485,7 @@ static int gtkTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); GdkPixbuf* pixExpand = iupImageGetImage(value, ih, 0); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1); @@ -1514,7 +1508,7 @@ static int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle))); GdkPixbuf* pixImage = iupImageGetImage(value, ih, 0); GtkTreeIter iterItem; - if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem)) + if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem)) return 0; if (pixImage) @@ -1539,42 +1533,30 @@ static int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v static int gtkTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value) { - GtkTreeIter iterRoot; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); ih->data->def_image_expanded = iupImageGetImage(value, ih, 0); - gtk_tree_model_get_iter_first(model, &iterRoot); - - /* Update all images, starting at root node */ - gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_EXPANDED); + /* Update all images */ + gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED); return 1; } static int gtkTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value) { - GtkTreeIter iterRoot; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0); - gtk_tree_model_get_iter_first(model, &iterRoot); - - /* Update all images, starting at root node */ - gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_COLLAPSED); + /* Update all images */ + gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED); return 1; } static int gtkTreeSetImageLeafAttrib(Ihandle* ih, const char* value) { - GtkTreeIter iterRoot; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); ih->data->def_image_leaf = iupImageGetImage(value, ih, 0); - gtk_tree_model_get_iter_first(model, &iterRoot); - - /* Update all images, starting at root node */ - gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_LEAF); + /* Update all images */ + gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF); return 1; } @@ -1655,6 +1637,7 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih) if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && !ih->data->show_dragdrop) { #if GTK_CHECK_VERSION(2, 10, 0) + if (iupAttribGetInt(ih, "RUBBERBAND")) gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE); #endif } @@ -1704,6 +1687,19 @@ static void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable PangoFontDescription* fontdesc = NULL; GdkColor *color = NULL; GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + IFni cbShowRename; + + gtk_tree_model_get_iter_from_string(model, &iterItem, path_string); + + cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB"); + if (cbShowRename && cbShowRename(ih, gtkTreeFindNodeId(ih, &iterItem))==IUP_IGNORE) + { + /* TODO: non of these worked: + gtk_cell_renderer_stop_editing(cell, TRUE); + gtk_cell_editable_editing_done(editable); */ + gtk_editable_set_editable(GTK_EDITABLE(editable), FALSE); + return; + } value = iupAttribGetStr(ih, "RENAMECARET"); if (value) @@ -1713,7 +1709,6 @@ static void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable if (value) gtkTreeSetRenameSelectionPos(editable, value); - gtk_tree_model_get_iter_from_string(model, &iterItem, path_string); gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1); if (fontdesc) gtk_widget_modify_font(GTK_WIDGET(editable), fontdesc); @@ -1732,7 +1727,7 @@ static void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string, IFnis cbRename; if (!new_text) - return; + new_text = ""; model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); if (!gtk_tree_model_get_iter_from_string(model, &iterItem, path_string)) @@ -1741,7 +1736,7 @@ static void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string, cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB"); if (cbRename) { - if (cbRename(ih, gtkTreeGetNodeId(ih, iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE) + if (cbRename(ih, gtkTreeFindNodeId(ih, &iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE) return; } @@ -1766,8 +1761,8 @@ static int gtkTreeCallDragDropCb(Ihandle* ih, GtkTreeIter *iterDrag, GtkTreeIter if (cbDragDrop) { - int drag_id = gtkTreeGetNodeId(ih, *iterDrag); - int drop_id = gtkTreeGetNodeId(ih, *iterDrop); + int drag_id = gtkTreeFindNodeId(ih, iterDrag); + int drop_id = gtkTreeFindNodeId(ih, iterDrop); return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl); } @@ -1804,22 +1799,17 @@ static void gtkTreeDragDataReceived(GtkWidget *widget, GdkDragContext *context, { GtkTreeIter iterNewItem; - /* Copy the dragged item to the new position. */ - gtkTreeCopyNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl); - - if (!is_ctrl) - { - /* do not delete the user data, we copy the references in CopyNode */ - gtk_tree_store_remove(GTK_TREE_STORE(model), &iterDrag); - } + /* Copy or move the dragged item to the new position. */ + gtkTreeCopyMoveNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl); /* set focus and selection */ + if (iterNewItem.stamp) { GtkTreePath *pathNew; GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); pathNew = gtk_tree_model_get_path(model, &iterNewItem); - gtk_tree_selection_select_path(selection, pathNew); + gtkTreeSelectNode(model, selection, &iterNewItem, 1); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE, 0, 0); gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE); @@ -1927,10 +1917,24 @@ static void gtkTreeDragBegin(GtkWidget *widget, GdkDragContext *context, Ihandle (void)widget; } +static gboolean gtkTreeSelectionFunc(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean selected, Ihandle* ih) +{ + GtkTreeIter iterItem; + gtk_tree_model_get_iter(model, &iterItem, path); + gtkTreeSelectNodeRaw(model, &iterItem, !selected); + (void)ih; + (void)selection; + return TRUE; +} + static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih) { IFnii cbSelec; int is_ctrl = 0; + (void)selection; + + if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB")) + return; if (ih->data->mark_mode == ITREE_MARK_MULTIPLE) { @@ -1953,25 +1957,17 @@ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih) if (cbSelec) { int curpos = -1, is_selected = 0; + GtkTreeIter iterFocus; + GtkTreePath* pathFocus; + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - if (iupAttribGet(ih, "_IUP_IGNORE_SELECTION")) - { - iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", NULL); - return; - } - + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); + if (pathFocus) { - GtkTreeIter iterFocus; - GtkTreePath* pathFocus; - GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); - gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL); - if (pathFocus) - { - gtk_tree_model_get_iter(model, &iterFocus, pathFocus); - gtk_tree_path_free(pathFocus); - curpos = gtkTreeGetNodeId(ih, iterFocus); - is_selected = gtk_tree_selection_iter_is_selected(selection, &iterFocus); - } + gtk_tree_model_get_iter(model, &iterFocus, pathFocus); + gtk_tree_path_free(pathFocus); + curpos = gtkTreeFindNodeId(ih, &iterFocus); + is_selected = gtkTreeIsNodeSelected(model, &iterFocus); } if (curpos == -1) @@ -1993,18 +1989,52 @@ static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih) } } +static void gtkTreeUpdateSelectionChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem) +{ + int expanded; + GtkTreeIter iterChild; + int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */ + while(hasItem) + { + if (gtkTreeIsNodeSelected(model, &iterChild)) + gtk_tree_selection_select_iter(selection, &iterChild); + + expanded = 0; + if (gtk_tree_model_iter_has_child(model, &iterChild)) + { + GtkTreePath* path = gtk_tree_model_get_path(model, &iterChild); + expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path); + gtk_tree_path_free(path); + } + + /* Recursive only if expanded */ + if (expanded) + gtkTreeUpdateSelectionChildren(ih, model, selection, &iterChild); + + /* Go to next sibling item */ + hasItem = gtk_tree_model_iter_next(model, &iterChild); + } +} + +static void gtkTreeRowExpanded(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih) +{ + GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view); + GtkTreeModel* model = gtk_tree_view_get_model(tree_view); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + gtkTreeUpdateSelectionChildren(ih, model, selection, iterItem); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + (void)path; +} + static gboolean gtkTreeTestExpandRow(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih) { IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB"); if (cbBranchOpen) { - if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB")) - { - iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", NULL); + if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB")) return FALSE; - } - if (cbBranchOpen(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE) + if (cbBranchOpen(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE) return TRUE; /* prevent the change */ } @@ -2018,7 +2048,10 @@ static gboolean gtkTreeTestCollapseRow(GtkTreeView* tree_view, GtkTreeIter *iter IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB"); if (cbBranchClose) { - if (cbBranchClose(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE) + if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB")) + return FALSE; + + if (cbBranchClose(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE) return TRUE; } @@ -2042,7 +2075,7 @@ static void gtkTreeRowActived(GtkTreeView* tree_view, GtkTreePath *path, GtkTree /* just to leaf nodes */ if(gtk_tree_model_iter_has_child(model, &iterItem) == 0 && kind == ITREE_LEAF) - cbExecuteLeaf(ih, gtkTreeGetNodeId(ih, iterItem)); + cbExecuteLeaf(ih, gtkTreeFindNodeId(ih, &iterItem)); (void)column; (void)tree_view; @@ -2057,11 +2090,57 @@ static int gtkTreeConvertXYToPos(Ihandle* ih, int x, int y) GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); gtk_tree_model_get_iter(model, &iterItem, path); gtk_tree_path_free (path); - return gtkTreeGetNodeId(ih, iterItem); + return gtkTreeFindNodeId(ih, &iterItem); } return -1; } +static Iarray* gtkTreeGetSelectedArrayId(Ihandle* ih) +{ + Iarray* selarray = iupArrayCreate(1, sizeof(int)); + int i; + GtkTreeIter iterItem; + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)); + + for (i = 0; i < ih->data->node_count; i++) + { + gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle); + if (gtkTreeIsNodeSelected(model, &iterItem)) + { + int* id_hitem = (int*)iupArrayInc(selarray); + int j = iupArrayCount(selarray); + id_hitem[j-1] = i; + } + } + + return selarray; +} + +static void gtkTreeCallMultiUnSelectionCb(Ihandle* ih) +{ + IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB"); + IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB"); + if (cbSelec || cbMulti) + { + Iarray* markedArray = gtkTreeGetSelectedArrayId(ih); + int* id_hitem = (int*)iupArrayGetData(markedArray); + int i, count = iupArrayCount(markedArray); + + if (count > 1) + { + if (cbMulti) + cbMulti(ih, id_hitem, iupArrayCount(markedArray)); + else + { + for (i=0; i<count; i++) + cbSelec(ih, id_hitem[i], 0); + } + } + + iupArrayDestroy(markedArray); + } +} + static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Ihandle* ih) { if (iupgtkButtonEvent(treeview, evt, ih) == TRUE) @@ -2097,6 +2176,18 @@ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha gtk_tree_path_free(path); } } + else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */ + { + iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x); + iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y); + + if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && + !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK)) + { + gtkTreeCallMultiUnSelectionCb(ih); + iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1"); + } + } else if (evt->type == GDK_BUTTON_RELEASE && evt->button == 1) /* left single release */ { if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && (evt->state & GDK_SHIFT_MASK)) @@ -2109,16 +2200,7 @@ static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "2"); } } - else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */ - { - iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x); - iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y); - if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && - !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK)) - iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1"); - } - return FALSE; } @@ -2159,29 +2241,14 @@ static void gtkTreeEnableDragDrop(Ihandle* ih) { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 } }; - if (iupAttribGetBoolean(ih, "AUTODRAGDROP")) - { - gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW(ih->handle), - GDK_BUTTON1_MASK, - row_targets, - G_N_ELEMENTS(row_targets), - GDK_ACTION_MOVE|GDK_ACTION_COPY); - gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW(ih->handle), - row_targets, - G_N_ELEMENTS(row_targets), - GDK_ACTION_MOVE|GDK_ACTION_COPY); - } - else - { - gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY); - gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY); + gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY); + gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY); - g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih); - g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih); - g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL); - g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih); - g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih); - } + g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih); + g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih); + g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL); + g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih); + g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih); } /*****************************************************************************/ @@ -2194,8 +2261,16 @@ static int gtkTreeMapMethod(Ihandle* ih) GtkTreeSelection* selection; GtkTreeViewColumn *column; - store = gtk_tree_store_new(9, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, - G_TYPE_STRING, G_TYPE_INT, GDK_TYPE_COLOR, PANGO_TYPE_FONT_DESCRIPTION, G_TYPE_POINTER); + store = gtk_tree_store_new(IUPGTK_TREE_LAST_DATA, + GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE */ + G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE */ + GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE_EXPANDED */ + G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE_EXPANDED */ + G_TYPE_STRING, /* IUPGTK_TREE_TITLE */ + G_TYPE_INT, /* IUPGTK_TREE_KIND */ + GDK_TYPE_COLOR, /* IUPGTK_TREE_COLOR */ + PANGO_TYPE_FONT_DESCRIPTION, /* IUPGTK_TREE_FONT */ + G_TYPE_BOOLEAN); /* IUPGTK_TREE_SELECT */ ih->handle = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); @@ -2262,8 +2337,9 @@ static int gtkTreeMapMethod(Ihandle* ih) gtk_scrolled_window_set_policy(scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle)); - gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); + gtk_tree_selection_set_select_function(selection, (GtkTreeSelectionFunc)gtkTreeSelectionFunc, ih, NULL); + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(ih->handle), FALSE); /* callbacks */ @@ -2279,6 +2355,7 @@ static int gtkTreeMapMethod(Ihandle* ih) g_signal_connect(G_OBJECT(ih->handle), "show-help", G_CALLBACK(iupgtkShowHelp), ih); g_signal_connect(G_OBJECT(ih->handle), "motion-notify-event",G_CALLBACK(iupgtkMotionNotifyEvent), ih); + g_signal_connect(G_OBJECT(ih->handle), "row-expanded", G_CALLBACK(gtkTreeRowExpanded), ih); g_signal_connect(G_OBJECT(ih->handle), "test-expand-row", G_CALLBACK(gtkTreeTestExpandRow), ih); g_signal_connect(G_OBJECT(ih->handle), "test-collapse-row", G_CALLBACK(gtkTreeTestCollapseRow), ih); g_signal_connect(G_OBJECT(ih->handle), "row-activated", G_CALLBACK(gtkTreeRowActived), ih); @@ -2301,7 +2378,8 @@ static int gtkTreeMapMethod(Ihandle* ih) ih->data->def_image_collapsed = iupImageGetImage("IMGCOLLAPSED", ih, 0); ih->data->def_image_expanded = iupImageGetImage("IMGEXPANDED", ih, 0); - gtkTreeAddRootNode(ih); + if (iupAttribGetInt(ih, "ADDROOT")) + iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0); /* configure for DRAG&DROP of files */ if (IupGetCallback(ih, "DROPFILES_CB")) @@ -2309,13 +2387,23 @@ static int gtkTreeMapMethod(Ihandle* ih) IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)gtkTreeConvertXYToPos); + iupdrvTreeUpdateMarkMode(ih); + return IUP_NOERROR; } +static void gtkTreeUnMapMethod(Ihandle* ih) +{ + ih->data->node_count = 0; + + iupdrvBaseUnMapMethod(ih); +} + void iupdrvTreeInitClass(Iclass* ic) { /* Driver Dependent Class functions */ ic->Map = gtkTreeMapMethod; + ic->UnMap = gtkTreeUnMapMethod; /* Visual */ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTreeSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT); @@ -2324,7 +2412,6 @@ void iupdrvTreeInitClass(Iclass* ic) /* IupTree Attributes - GENERAL */ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, gtkTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "INDENTATION", gtkTreeGetIndentationAttrib, gtkTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT); - iupClassRegisterAttribute(ic, "COUNT", gtkTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupgtkSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, gtkTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED); iupClassRegisterAttribute(ic, "TOPITEM", NULL, gtkTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); @@ -2345,7 +2432,6 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttributeId(ic, "COLOR", gtkTreeGetColorAttrib, gtkTreeSetColorAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "NAME", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TITLE", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT); - iupClassRegisterAttributeId(ic, "USERDATA", gtkTreeGetUserDataAttrib, gtkTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "CHILDCOUNT", gtkTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TITLEFONT", gtkTreeGetTitleFontAttrib, gtkTreeSetTitleFontAttrib, IUPAF_NO_INHERIT); @@ -2355,6 +2441,7 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttribute (ic, "MARK", NULL, gtkTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "STARTING", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "MARKSTART", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); + iupClassRegisterAttribute (ic, "MARKEDNODES", gtkTreeGetMarkedNodesAttrib, gtkTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "VALUE", gtkTreeGetValueAttrib, gtkTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); @@ -2363,7 +2450,7 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "RENAME", NULL, gtkTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "MOVENODE", NULL, gtkTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "COPYNODE", NULL, gtkTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); - iupClassRegisterAttributeId(ic, "FINDUSERDATA", gtkTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); - iupClassRegisterAttribute (ic, "AUTODRAGDROP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT); + /* IupTree Attributes - GTK Only */ + iupClassRegisterAttribute (ic, "RUBBERBAND", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); } diff --git a/iup/src/gtk/iupmac_help.c b/iup/src/gtk/iupmac_help.c new file mode 100644 index 0000000..fa8d0af --- /dev/null +++ b/iup/src/gtk/iupmac_help.c @@ -0,0 +1,46 @@ +/** \file + * \brief MAC Driver IupHelp + * + * See Copyright Notice in "iup.h" + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include "iup.h" + +#include "iup_str.h" + +int IupHelp(const char *url) +{ + char *cmd; + int ret; + char *browser = getenv("IUP_HELPAPP"); + if (!browser) + browser = IupGetGlobal("HELPAPP"); + + if (!browser) + { + char* system = IupGetGlobal("SYSTEM"); + if (iupStrEqualNoCase(system, "Snow Leopard") || + iupStrEqualNoCase(system, "Leopard") || + iupStrEqualNoCase(system, "Tiger") || + iupStrEqualNoCase(system, "Panther")) + browser = "safari"; + else if (iupStrEqualNoCase(system, "Jaguar") || + iupStrEqualNoCase(system, "Puma") || + iupStrEqualNoCase(system, "Cheetah")) + browser = "iexplore"; + else /* MacOS */ + browser = "netscape"; + } + + cmd = (char*)malloc(sizeof(char)*(strlen(url)+strlen(browser)+3)); + sprintf(cmd, "open -a %s %s &", browser, url); + ret = system(cmd); + free(cmd); + if (ret == -1) + return -1; + return 1; +} diff --git a/iup/src/gtk/iupmac_info.c b/iup/src/gtk/iupmac_info.c new file mode 100644 index 0000000..a040bad --- /dev/null +++ b/iup/src/gtk/iupmac_info.c @@ -0,0 +1,358 @@ +/** \file + * \brief MAC OS System Information + * + * See Copyright Notice in "iup.h" + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +/* This module should depend only on IUP core headers and + Mac OS Carbon system headers. */ + +#include <Carbon/Carbon.h> + +#include <sys/utsname.h> +#include <unistd.h> +#include <limits.h> +#include <errno.h> +#include <sys/stat.h> + +#include <gtk/gtk.h> + +#include "iup.h" + +#include "iup_str.h" +#include "iup_drv.h" +#include "iup_drvinfo.h" + +#define IUP_MAC_ERROR -1 + +/****************************************** + ** These are NOT working as expected. So we kept the posix versions. *** + +static void iupMacStrToUniChar(const char* buffer, UniChar* outBuf, long length, long* outLen) +{ + CFStringRef stringRef = CFStringCreateWithCString(NULL, buffer, kCFStringEncodingUTF8); + + CFStringGetCharacters (stringRef, CFRangeMake(0, CFStringGetLength(stringRef)), outBuf); + *outLen = (long) CFStringGetLength (stringRef); + + CFRelease(stringRef); +} + +int iupdrvMakeDirectory(const char* name) +{ + FSRef refParent, refNew; + UniChar nameDir; + long lenDir; + + if(FSFindFolder(kUserDomain, kCurrentUserFolderType, kDontCreateFolder, &refParent) != noErr) + return 0; + + iupMacStrToUniChar(name, &nameDir, strlen(name), &lenDir); + + if(FSMakeFSRefUnicode(&refParent, lenDir, &nameDir, kTextEncodingUnknown, &refNew) != fnfErr) // fnfErr => Directory does not exists + return 0; + + if(FSCreateDirectoryUnicode(&refParent, lenDir, &nameDir, kFSCatInfoNone, NULL, &refNew, NULL, NULL) != noErr) + return 0; + + return 1; +} + +char* iupdrvGetCurrentDirectory(void) +{ + FSRef refDir; + FSVolumeRefNum vRefNum; + long dirID; + size_t size = 256; + char *buffer = (char *)malloc(size); + + if(HGetVol(NULL, &vRefNum, &dirID) != noErr) // Deprecated in Mac OS X v10.4 + return 0; + + if(FSMakeFSRef(vRefNum, dirID, NULL, &refDir) != noErr) // Deprecated in Mac OS X v10.5 + return 0; + + FSRefMakePath (&refDir, (UInt8*)buffer, size); + + return buffer; +} + +int iupdrvSetCurrentDirectory(const char* dir) +{ + FSRef refDir; + FSCatalogInfo catalogInfo; + int isDirectory; + + if(FSPathMakeRef((const UInt8*)dir, &refDir, &isDirectory) != noErr) + return 0; + + if (!isDirectory) + return 0; + + if(FSGetCatalogInfo(refDir, kFSCatInfoVolume + kFSCatInfoNodeID, &catalogInfo, NULL, NULL, NULL) != noErr) + return 0; + + if(HSetVol(NULL, catalogInfo.volume, catalogInfo.nodeID) != noErr) // Deprecated in Mac OS X v10.4 + return 0; + + return 1; +} + +char* iupdrvGetCurrentDirectory(void) +{ + char* path = iupStrGetMemory(256); + CFBundleRef mainBundle = CFBundleGetMainBundle(); + CFURLRef curDir = CFBundleCopyBundleURL(mainBundle); + CFStringRef cfStringRef = CFURLCopyFileSystemPath(curDir, kCFURLPOSIXPathStyle); + + CFStringGetCString(cfStringRef, path, 256, kCFStringEncodingUTF8); + + return path; +} +*********************************************/ + +int iupdrvMakeDirectory(const char* name) +{ + mode_t oldmask = umask((mode_t)0); + int fail = mkdir(name, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | + S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH); + umask (oldmask); + if (fail) + return 0; + return 1; +} + +static int iMacIsFolder(const char* name) +{ + FSRef refName; + Boolean isFolder; + + if(FSPathMakeRef((const UInt8*)name, &refName, &isFolder) != noErr) + return IUP_MAC_ERROR; + + return isFolder; +} + +int iupdrvIsFile(const char* name) +{ + int isDir = iMacIsFolder(name); + + if((isDir != IUP_MAC_ERROR) && !isDir) + return 1; + + return 0; +} + +int iupdrvIsDirectory(const char* name) +{ + int isDir = iMacIsFolder(name); + + if((isDir != IUP_MAC_ERROR) && isDir) + return 1; + + return 0; +} + +char* iupdrvGetCurrentDirectory(void) +{ + size_t size = 256; + char *buffer = (char *)malloc(size); + + for (;;) + { + if (getcwd(buffer, size) != NULL) + return buffer; + + if (errno != ERANGE) + { + free(buffer); + return NULL; + } + + size += size; + buffer = (char *)realloc(buffer, size); + } + + return NULL; +} + +int iupdrvSetCurrentDirectory(const char* dir) +{ + return chdir(dir) == 0? 1: 0; +} + +int iupdrvGetWindowDecor(void* wnd, int *border, int *caption) +{ + Rect rect; + CGRect cg; + int minX, minY; + + CGDirectDisplayID mainDisplayID = CGMainDisplayID(); + GDHandle hGDev; + DMGetGDeviceByDisplayID((DisplayIDType)mainDisplayID, &hGDev, false); + + GetAvailableWindowPositioningBounds(hGDev, &rect); + + cg = CGRectMake(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); + + minX = (int)CGRectGetMinX(cg); + minY = (int)CGRectGetMinY(cg); + + if (minX >= 0 && minY >= 0 && (minY >= minX)) + { + *border = minX; + *caption = minY - *border; + + return 1; + } + + *border = 0; + *caption = 0; + + return 0; +} + +void iupdrvGetScreenSize(int *width, int *height) +{ + int w_size = CGDisplayPixelsWide(kCGDirectMainDisplay); + int h_size = CGDisplayPixelsHigh(kCGDirectMainDisplay); + + *width = w_size; + *height = h_size; +} + +void iupdrvGetFullSize(int *width, int *height) +{ + CGRect rect; + + rect = CGDisplayBounds(kCGDirectMainDisplay); + + *width = (int)CGRectGetWidth(rect); + *height = (int)CGRectGetHeight(rect); +} + +int iupdrvGetScreenDepth(void) +{ + return CGDisplayBitsPerPixel(kCGDirectMainDisplay); /* Deprecated in Mac OS X v10.6 */ +} + +void iupdrvGetCursorPos(int *x, int *y) +{ + Point pnt; + CGPoint point; + + GetMouse(&pnt); + point = CGPointMake(pnt.h, pnt.v); + + *x = (int)point.x; + *y = (int)point.y; +} + +void iupdrvGetKeyState(char* key) +{ + if (GetCurrentEventKeyModifiers() & shiftKey) + key[0] = 'S'; + else + key[0] = ' '; + + if (GetCurrentEventKeyModifiers() & controlKey) + key[1] = 'C'; + else + key[1] = ' '; + + if (GetCurrentEventKeyModifiers() & optionKey) + key[2] = 'A'; + else + key[2] = ' '; + + if (GetCurrentEventKeyModifiers() & cmdKey) + key[3] = 'Y'; + else + key[3] = ' '; + + key[4] = 0; +} + +char *iupdrvGetSystemName(void) +{ + long systemVersion; + + if (Gestalt(gestaltSystemVersion, &systemVersion) == noErr) + { + if (systemVersion >= 0x1060) + return "Snow Leopard"; + else if (systemVersion >= 0x1050) + return "Leopard"; + else if (systemVersion >= 0x1040) + return "Tiger"; + else if (systemVersion >= 0x1030) + return "Panther"; + else if (systemVersion >= 0x1020) + return "Jaguar"; + else if (systemVersion >= 0x1010) + return "Puma"; + else if (systemVersion >= 0x1010) + return "Cheetah"; + } + + return "MacOS"; +} + +char *iupdrvGetSystemVersion(void) +{ + char* str = iupStrGetMemory(70); + long systemVersion, versionMajor, versionMinor, versionBugFix, systemArchitecture; + + if (Gestalt(gestaltSystemVersion, &systemVersion) != noErr) + { + printf("Unable to obtain system version\n"); + return NULL; + } + + if (systemVersion < 0x1040) + { + /* Major, Minor, Bug fix */ + sprintf(str, "%ld.%ld.%ld", ((systemVersion & 0xF000) >> 12) * 10 + ((systemVersion & 0x0F00) >> 8), + ((systemVersion & 0x00F0) >> 4), (systemVersion & 0x000F)); + } + else /* MAC_OS_X_VERSION_10_4 or later */ + { + Gestalt(gestaltSystemVersionMajor, &versionMajor); + Gestalt(gestaltSystemVersionMinor, &versionMinor); + Gestalt(gestaltSystemVersionBugFix, &versionBugFix); + + sprintf(str, "%ld.%ld.%ld", versionMajor, versionMinor, versionBugFix); + } + + if(Gestalt(gestaltSysArchitecture, &systemArchitecture) == noErr) + { + if (systemArchitecture == gestalt68k) + sprintf(str, "%s %s", str, "(Motorola 68k)"); + else if (systemArchitecture == gestaltPowerPC) + sprintf(str, "%s %s", str, "(Power PC)"); + else /* gestaltIntel */ + sprintf(str, "%s %s", str, "(Intel)"); + } + + return str; +} + +char *iupdrvGetComputerName(void) +{ + char* str = iupStrGetMemory(50); + CFStringRef computerName = CSCopyMachineName(); + CFStringGetCString(computerName, str, 50, kCFStringEncodingUTF8); + return str; +} + +char *iupdrvGetUserName(void) +{ + char* str = iupStrGetMemory(50); + CFStringRef userName = CSCopyUserName(TRUE); /* TRUE = login name FALSE = user name */ + CFStringGetCString(userName, str, 50, kCFStringEncodingUTF8); + return str; +} diff --git a/iup/src/iup.c b/iup/src/iup.c index df4bf34..d103af5 100755 --- a/iup/src/iup.c +++ b/iup/src/iup.c @@ -36,8 +36,10 @@ * \subsection com File Comments (at start) * - Check an existant file for example. * - * \subsection inc Include Defines - * - __IUPXXX_H (same file name, upper case, "__" preffix and replace "." by "_") + * \subsection def Defines + * - __IUPXXX_H (for include file, same file name, upper case, "__" preffix and replace "." by "_") + * - IUP_XXX (for enumerations) + * - iupXXX (for macros, complement with Function Names rules) * * \subsection doc Documentation * - In the header, using Doxygen commands. @@ -58,7 +60,7 @@ #include "iup.h" /* This appears only here to avoid changing the iup.h header fo bug fixes */ -#define IUP_VERSION_FIX " RC3" +#define IUP_VERSION_FIX "" #define IUP_VERSION_FIX_NUMBER 0 const char iup_ident[] = diff --git a/iup/src/iup.def b/iup/src/iup.def index d0dcfbd..56e7225 100755 --- a/iup/src/iup.def +++ b/iup/src/iup.def @@ -27,6 +27,8 @@ IupGetFunction IupGetGlobal IupGetHandle IupGetInt +IupGetInt2 +IupGetIntInt IupGetLanguage IupGetName IupHbox @@ -40,6 +42,7 @@ IupListDialog IupLoad IupLoadBuffer IupLoopStep +IupLoopStepWait IupMainLoop IupMap IupMapFont @@ -68,6 +71,7 @@ IupShowXY IupStoreAttribute IupStoreGlobal IupSubmenu +IupSplit IupText IupToggle IupUnMapFont @@ -135,6 +139,7 @@ IupTextConvertLinColToPos IupTextConvertPosToLinCol IupUpdateChildren IupTreeSetAttribute +IupTreeSetAttributeHandle IupTreeStoreAttribute IupTreeGetAttribute IupTreeGetInt @@ -175,8 +180,8 @@ iupdrvFontGetStringWidth iupdrvFontGetMultiLineStringSize iupdrvFontGetCharSize iupdrvDrawFocusRect -iupdrvDisplayUpdate -iupdrvDisplayRedraw +iupdrvPostRedraw +iupdrvRedrawNow iupdrvBaseUnMapMethod iupdrvBaseSetZorderAttrib iupdrvBaseSetTipVisibleAttrib @@ -351,3 +356,17 @@ iupArrayCreate iupArrayCount iupArrayAdd iupSaveImageAsText +iupDrawCreateCanvas +iupDrawKillCanvas +iupDrawFlush +iupDrawGetSize +iupDrawParentBackground +iupDrawRectangle +iupDrawLine +iupDrawArc +iupDrawPolygon +iupDrawResetClip +iupDrawSetClipRect +iupDrawText +iupDrawUpdateSize +iupDrawImage diff --git a/iup/src/iup_attrib.c b/iup/src/iup_attrib.c index 2bbb80a..bf9576e 100755 --- a/iup/src/iup_attrib.c +++ b/iup/src/iup_attrib.c @@ -63,7 +63,7 @@ char* IupGetAttributes(Ihandle *ih) name = iupTableFirst(ih->attrib); while (name) { - if (!iupAttribIsInternal(name)) + if (!iupATTRIB_ISINTERNAL(name)) { if (buffer[0] != 0) strcat(buffer,","); @@ -115,6 +115,14 @@ void iupAttribUpdateFromParent(Ihandle* ih) } } +static int iAttribIsInherit(Ihandle* ih, const char* name) +{ + int inherit; + char *def_value; + iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit); + return inherit; +} + static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *value) { int inherit; @@ -123,17 +131,36 @@ static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *val { if (!iupTableGet(child->attrib, name)) { - /* set on the class */ - iupClassObjectSetAttribute(child, name, value, &inherit); + /* set only if an inheritable attribute at the child */ + if (iAttribIsInherit(child, name)) + { + /* set on the class */ + iupClassObjectSetAttribute(child, name, value, &inherit); - if (inherit) /* inherit can be different for the child */ iAttribNotifyChildren(child, name, value); + } } child = child->brother; } } +void iupAttribUpdateChildren(Ihandle* ih) +{ + char *name = iupTableFirst(ih->attrib); + while (name) + { + if (!iupATTRIB_ISINTERNAL(name) && iAttribIsInherit(ih, name)) + { + /* retrieve from the table */ + char* value = iupTableGet(ih->attrib, name); + iAttribNotifyChildren(ih, name, value); + } + + name = iupTableNext(ih->attrib); + } +} + void iupAttribUpdate(Ihandle* ih) { char** name_array; @@ -159,7 +186,7 @@ void iupAttribUpdate(Ihandle* ih) for (i = 0; i < count; i++) { name = name_array[i]; - if (!iupAttribIsInternal(name)) + if (!iupATTRIB_ISINTERNAL(name)) { /* retrieve from the table */ value = iupTableGet(ih->attrib, name); @@ -196,7 +223,7 @@ void IupSetAttribute(Ihandle *ih, const char* name, const char *value) if (!iupObjectCheck(ih)) return; - if (iupAttribIsInternal(name)) + if (iupATTRIB_ISINTERNAL(name)) iupAttribSetStr(ih, name, value); else { @@ -225,7 +252,7 @@ void IupStoreAttribute(Ihandle *ih, const char* name, const char *value) if (!iupObjectCheck(ih)) return; - if (iupAttribIsInternal(name)) + if (iupATTRIB_ISINTERNAL(name)) iupAttribStoreStr(ih, name, value); else { @@ -257,7 +284,7 @@ char* IupGetAttribute(Ihandle *ih, const char* name) if (!value) value = iupAttribGet(ih, name); - if (!value && !iupAttribIsInternal(name)) + if (!value && !iupATTRIB_ISINTERNAL(name)) { if (inherit) { @@ -346,6 +373,16 @@ void iupAttribSetHandleName(Ihandle *ih) IupSetHandle(str_name, ih); } +char* iupAttribGetHandleName(Ihandle *ih) +{ + char str_name[100]; + sprintf(str_name, "_IUP_NAME(%p)", ih); + if (IupGetHandle(str_name)==ih) + return iupStrGetMemoryCopy(str_name); + else + return NULL; +} + void IupSetAttributeHandle(Ihandle *ih, const char* name, Ihandle *ih_named) { int inherit; @@ -426,7 +463,7 @@ void iupAttribSetInt(Ihandle *ih, const char* name, int num) void iupAttribSetFloat(Ihandle *ih, const char* name, float num) { - iupAttribSetStrf(ih, name, "%f", (double)num); + iupAttribSetStrf(ih, name, "%g", (double)num); } int iupAttribGetBoolean(Ihandle* ih, const char* name) @@ -479,7 +516,7 @@ char* iupAttribGetStr(Ihandle* ih, const char* name) value = iupTableGet(ih->attrib, name); - if (!value && !iupAttribIsInternal(name)) + if (!value && !iupATTRIB_ISINTERNAL(name)) { int inherit; char *def_value; @@ -555,6 +592,15 @@ static void iAttribCapture(char* env_buffer, char* dlm) env_buffer[i-1]='\0'; /* discard delimiter */ } +static void iAttribSkipComment(void) +{ + int c; + do + { + c = *env_str; ++env_str; + } while ((c > 0) && (c != '\n')); +} + static int iAttribToken(char* env_buffer) { for (;;) @@ -565,6 +611,11 @@ static int iAttribToken(char* env_buffer) case 0: return IUPLEX_TK_END; + case '#': /* Skip comment */ + case '%': /* Skip comment */ + iAttribSkipComment(); + continue; + case ' ': /* ignore whitespace */ case '\t': case '\n': @@ -609,7 +660,7 @@ static void iAttribParse(Ihandle *ih, const char* str) { switch (iAttribToken(env_buffer)) { - case IUPLEX_TK_END: /* procedimento igual ao IUPLEX_TK_COMMA */ + case IUPLEX_TK_END: /* same as IUPLEX_TK_COMMA */ end = 1; case IUPLEX_TK_COMMA: if (name) diff --git a/iup/src/iup_attrib.h b/iup/src/iup_attrib.h index 993dd3c..8593d6e 100755 --- a/iup/src/iup_attrib.h +++ b/iup/src/iup_attrib.h @@ -28,7 +28,7 @@ extern "C" { /** Returns true if the attribute name if in the internal format "_IUP...". * \ingroup attrib */ -#define iupAttribIsInternal(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0) +#define iupATTRIB_ISINTERNAL(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0) /** Returns true if the attribute name is a known pointer. * \ingroup attrib */ @@ -102,16 +102,23 @@ float iupAttribGetFloat(Ihandle* ih, const char* name); * \ingroup attrib */ void iupAttribSetHandleName(Ihandle *ih); +/** Returns the internal name if set. + * \ingroup attrib */ +char* iupAttribGetHandleName(Ihandle *ih); + /* For all attributes in the evironment, call the class SetAttribute only. - * Called only after the element is mapped. */ + * Called only after the element is mapped, but before the children are mapped. */ void iupAttribUpdate(Ihandle* ih); /* For all registered inherited attributes, checks the parent tree and * call the class SetAttribute if the attribute is defined. - * Called only after the element is mapped. */ + * Called only after the element is mapped, but before the children are mapped. */ void iupAttribUpdateFromParent(Ihandle* ih); +/* For all attributes in the evironment, call the class SetAttribute only for the children. + * Called only after the element is mapped, and after the children are mapped. */ +void iupAttribUpdateChildren(Ihandle* ih); /* Other functions declared in <iup.h> and implemented here. diff --git a/iup/src/iup_box.c b/iup/src/iup_box.c index 54e56d9..111cab4 100755 --- a/iup/src/iup_box.c +++ b/iup/src/iup_box.c @@ -172,9 +172,9 @@ static int iBoxSetCMarginAttrib(Ihandle* ih, const char* value) iupdrvFontGetCharSize(ih, &charwidth, &charheight); iupStrToIntInt(value, &cmargin_x, &cmargin_y, 'x'); if (cmargin_x!=-1) - ih->data->margin_x = iupHEIGHT2RASTER(cmargin_x, charheight); + ih->data->margin_x = iupWIDTH2RASTER(cmargin_x, charwidth); if (cmargin_y!=-1) - ih->data->margin_x = iupWIDTH2RASTER(cmargin_y, charwidth); + ih->data->margin_y = iupHEIGHT2RASTER(cmargin_y, charheight); return 0; } @@ -227,8 +227,12 @@ Iclass* iupBoxClassBase(void) /* boxes only */ iupClassRegisterAttribute(ic, "GAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED); iupClassRegisterAttribute(ic, "CGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED); + iupClassRegisterAttribute(ic, "NGAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "NCGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "MARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); iupClassRegisterAttribute(ic, "CMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); + iupClassRegisterAttribute(ic, "NMARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "NCMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "EXPANDCHILDREN", iBoxGetExpandChildrenAttrib, iBoxSetExpandChildrenAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "HOMOGENEOUS", iBoxGetHomogeneousAttrib, iBoxSetHomogeneousAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); diff --git a/iup/src/iup_button.c b/iup/src/iup_button.c index 7719663..56befe2 100755 --- a/iup/src/iup_button.c +++ b/iup/src/iup_button.c @@ -100,8 +100,9 @@ static void iButtonComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *ex char* value = iupAttribGet(ih, "IMAGE"); if (value) { + char* title = iupAttribGet(ih, "TITLE"); type = IUP_BUTTON_IMAGE; - if (iupAttribGet(ih, "TITLE")) + if (title && *title!=0) type |= IUP_BUTTON_TEXT; } else diff --git a/iup/src/iup_canvas.c b/iup/src/iup_canvas.c index 5eda988..46fefd9 100755 --- a/iup/src/iup_canvas.c +++ b/iup/src/iup_canvas.c @@ -55,14 +55,14 @@ void iupCanvasCalcScrollRealPos(double min, double max, double *pos, char* iupCanvasGetPosXAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->posx); + sprintf(str, "%g", ih->data->posx); return str; } char* iupCanvasGetPosYAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->posy); + sprintf(str, "%g", ih->data->posy); return str; } diff --git a/iup/src/iup_classattrib.c b/iup/src/iup_classattrib.c index df8f873..3ac780c 100755 --- a/iup/src/iup_classattrib.c +++ b/iup/src/iup_classattrib.c @@ -55,7 +55,7 @@ static const char* iClassFindId(const char* name) { if (*name >= '0' && *name <= '9') return name; - if (*name == '*' || *name == ':') + if (*name == '*' || *name == ':' || *name == '-') return name; name++; @@ -94,7 +94,6 @@ int iupClassObjectSetAttribute(Ihandle* ih, const char* name, const char * value const char* name_id = iClassFindId(name); if (name_id) { - IattribFunc* afunc; const char* partial_name = iClassCutNameId(name, name_id); if (!partial_name) partial_name = "IDVALUE"; /* pure numbers are used as attributes in IupList and IupMatrix, @@ -474,8 +473,12 @@ void iupClassObjectEnsureDefaultAttributes(Ihandle* ih) (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value))) { if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) || - (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED) && !iupAttribGet(ih, name))) - afunc->set(ih, iClassGetDefaultValue(afunc)); + (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED))) + { + char* value = iupAttribGet(ih, name); + if (!value) /* if set will be updated later */ + afunc->set(ih, iClassGetDefaultValue(afunc)); + } } } diff --git a/iup/src/iup_classbase.c b/iup/src/iup_classbase.c index 9cb9e63..03a98d1 100755 --- a/iup/src/iup_classbase.c +++ b/iup/src/iup_classbase.c @@ -164,8 +164,7 @@ static char* iBaseGetPositionAttrib(Ihandle* ih) static int iBaseSetPositionAttrib(Ihandle* ih, const char* value) { - if (ih->is_floating) - iupStrToIntInt(value, &ih->x, &ih->y, ','); + iupStrToIntInt(value, &ih->x, &ih->y, ','); return 0; } @@ -211,7 +210,7 @@ char* iupBaseGetVisibleAttrib(Ihandle* ih) int iupBaseSetVisibleAttrib(Ihandle* ih, const char* value) { iupdrvSetVisible(ih, iupStrBoolean(value)); - return 0; + return 1; /* must be 1 to mark when set at the element */ } char* iupBaseNativeParentGetBgColorAttrib(Ihandle* ih) @@ -410,15 +409,19 @@ void iupBaseRegisterCommonAttrib(Iclass* ic) iupClassRegisterAttribute(ic, "FLOATING", iBaseGetFloatingAttrib, iBaseSetFloatingAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "EXPAND", iBaseGetExpandAttrib, iBaseSetExpandAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "NORMALIZERGROUP", NULL, iBaseSetNormalizerGroupAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "EXPANDWEIGTH", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); /* make sure everyone has the correct default value */ - iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); iupClassRegisterAttribute(ic, "ACTIVE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); if (ic->is_interactive) iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); else iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); + /* if not native container, must set at children, + native container will automatically hide its children. */ + iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); /* let the attribute to be propagated to children */ + iupClassRegisterAttribute(ic, "SIZE", iupBaseGetSizeAttrib, iupBaseSetSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "RASTERSIZE", iupBaseGetRasterSizeAttrib, iupBaseSetRasterSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "CHARSIZE", iupBaseGetCharSizeAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); @@ -439,7 +442,7 @@ void iupBaseRegisterCommonAttrib(Iclass* ic) void iupBaseRegisterVisualAttrib(Iclass* ic) { - iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); /* VISIBLE inheritance comes from the native system */ + iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT); iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); iupClassRegisterAttribute(ic, "ZORDER", NULL, iupdrvBaseSetZorderAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); diff --git a/iup/src/iup_dialog.c b/iup/src/iup_dialog.c index d70e12c..1aaf095 100755 --- a/iup/src/iup_dialog.c +++ b/iup/src/iup_dialog.c @@ -220,11 +220,19 @@ static void iDialogDestroyMethod(Ihandle* ih) iupDlgListRemove(ih); } +static int iDialogSetMenuAttrib(Ihandle* ih, const char* value); + static void iDialogComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand) { int decorwidth, decorheight; Ihandle* child = ih->firstchild; + /* if does not have a menu, but the attribute is defined, + try to update the menu before retrieving the decoration. */ + char* value = iupAttribGet(ih, "MENU"); + if (!ih->data->menu && value) + iDialogSetMenuAttrib(ih, value); + iupDialogGetDecorSize(ih, &decorwidth, &decorheight); *w = decorwidth; *h = decorheight; @@ -278,20 +286,22 @@ static void iDialogAfterShow(Ihandle* ih) { Ihandle* old_focus; IFni show_cb; + int show_state; /* process all pending messages */ IupFlush(); old_focus = IupGetFocus(); + show_state = ih->data->show_state; show_cb = (IFni)IupGetCallback(ih, "SHOW_CB"); - if (show_cb && show_cb(ih, ih->data->show_state) == IUP_CLOSE) + if (show_cb && show_cb(ih, show_state) == IUP_CLOSE) { IupExitLoop(); return; } - if (ih->data->show_state == IUP_SHOW) + if (show_state == IUP_SHOW) { if (show_cb) IupFlush(); /* again to update focus */ @@ -718,7 +728,8 @@ Iclass* iupDialogGetClass(void) iupBaseRegisterVisualAttrib(ic); /* Overwrite Visual */ - iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); /* the only case where VISIBLE default is NO */ + /* the only case where VISIBLE default is NO, and must not be propagated to the dialog children */ + iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); /* IupDialog only */ iupClassRegisterAttribute(ic, "MENU", NULL, iDialogSetMenuAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); diff --git a/iup/src/iup_draw.h b/iup/src/iup_draw.h new file mode 100644 index 0000000..b4d08e3 --- /dev/null +++ b/iup/src/iup_draw.h @@ -0,0 +1,98 @@ +/** \file + * \brief Simple Draw API. + * + * See Copyright Notice in "iup.h" + */ + +#ifndef __IUP_DRAW_H +#define __IUP_DRAW_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +/** \defgroup draw Simple Draw API + * \par + * See \ref iup_draw.h + * \ingroup util */ + + + +struct _IdrawCanvas; +typedef struct _IdrawCanvas IdrawCanvas; + + +/** Creates a draw canvas based on an IupCanvas. + * This will create an image for offscreen drawing. + * \ingroup draw */ +IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih); + +/** Destroys the IdrawCanvas. + * \ingroup draw */ +void iupDrawKillCanvas(IdrawCanvas* dc); + +/** Draws the ofscreen image on the screen. + * \ingroup draw */ +void iupDrawFlush(IdrawCanvas* dc); + +/** Rebuild the offscreen image if the canvas size has changed. + * Automatically done in iupDrawCreateCanvas. + * \ingroup draw */ +void iupDrawUpdateSize(IdrawCanvas* dc); + +/** Returns the canvas size available for drawing. + * \ingroup draw */ +void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h); + +/** Draws the parent background. + * \ingroup draw */ +void iupDrawParentBackground(IdrawCanvas* dc); + +/** Draws a line. + * \ingroup draw */ +void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b); + +/** Draws a filled/hollow rectangle. + * \ingroup draw */ +void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled); + +/** Draws a filled/hollow arc. + * \ingroup draw */ +void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled); + +/** Draws a filled/hollow polygon. + * points are arranged xyxyxy... + * \ingroup draw */ +void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled); + +/** Draws a text. + * x,y is at left,top corner of the text. + * \ingroup draw */ +void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b); + +/** Draws an image. + * x,y is at left,top corner of the image. + * \ingroup draw */ +void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y); + +/** Sets a rectangle clipping area. + * \ingroup draw */ +void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2); + +/** Removes clipping. + * \ingroup draw */ +void iupDrawResetClip(IdrawCanvas* dc); + +/* +TO DO: +- check position and size of primitives +*/ + + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/iup/src/iup_drv.h b/iup/src/iup_drv.h index 5cdb8e7..1071347 100755 --- a/iup/src/iup_drv.h +++ b/iup/src/iup_drv.h @@ -60,11 +60,11 @@ void iupdrvSetActive(Ihandle* ih, int enable); /** Post a redraw of a control. * \ingroup drv */ -void iupdrvDisplayUpdate(Ihandle *ih); +void iupdrvPostRedraw(Ihandle *ih); /** Force a redraw of a control. * \ingroup drv */ -void iupdrvDisplayRedraw(Ihandle *ih); +void iupdrvRedrawNow(Ihandle *ih); /** Reparent the native control. * \ingroup drv */ diff --git a/iup/src/iup_focus.c b/iup/src/iup_focus.c index be54b75..fc0579c 100755 --- a/iup/src/iup_focus.c +++ b/iup/src/iup_focus.c @@ -220,15 +220,25 @@ void iupFocusPrevious(Ihandle *ih) /* local variables */ static Ihandle* iup_current_focus = NULL; +Ihandle* IupGetFocus(void) +{ + return iup_current_focus; +} + +void iupSetCurrentFocus(Ihandle *ih) +{ + iup_current_focus = ih; +} + Ihandle *IupSetFocus(Ihandle *ih) { - Ihandle* old_focus = iup_current_focus; + Ihandle* old_focus = IupGetFocus(); iupASSERT(iupObjectCheck(ih)); if (!iupObjectCheck(ih)) return old_focus; - /* iup_current_focus is NOT set here, + /* Current focus is NOT set here, only in the iupCallGetFocusCb */ if (iupFocusCanAccept(ih)) @@ -237,16 +247,11 @@ Ihandle *IupSetFocus(Ihandle *ih) return old_focus; } -Ihandle *IupGetFocus(void) -{ - return iup_current_focus; -} - void iupCallGetFocusCb(Ihandle *ih) { Icallback cb; - if (ih == iup_current_focus) /* avoid duplicate messages */ + if (ih == IupGetFocus()) /* avoid duplicate messages */ return; cb = (Icallback)IupGetCallback(ih, "GETFOCUS_CB"); @@ -258,14 +263,14 @@ void iupCallGetFocusCb(Ihandle *ih) if (cb2) cb2(ih, 1); } - iup_current_focus = ih; + iupSetCurrentFocus(ih); } void iupCallKillFocusCb(Ihandle *ih) { Icallback cb; - if (ih != iup_current_focus) /* avoid duplicate messages */ + if (ih != IupGetFocus()) /* avoid duplicate messages */ return; cb = IupGetCallback(ih, "KILLFOCUS_CB"); @@ -277,5 +282,5 @@ void iupCallKillFocusCb(Ihandle *ih) if (cb2) cb2(ih, 0); } - iup_current_focus = NULL; + iupSetCurrentFocus(NULL); } diff --git a/iup/src/iup_focus.h b/iup/src/iup_focus.h index 239e233..9fb4e58 100755 --- a/iup/src/iup_focus.h +++ b/iup/src/iup_focus.h @@ -39,6 +39,7 @@ Ihandle* iupFocusNextInteractive(Ihandle *ih); void iupFocusNext(Ihandle *ih); void iupFocusPrevious(Ihandle *ih); +void iupSetCurrentFocus(Ihandle *ih); /* Other functions declared in <iup.h> and implemented here. IupPreviousField diff --git a/iup/src/iup_getparam.c b/iup/src/iup_getparam.c index 1418aa5..7fd6a94 100755 --- a/iup/src/iup_getparam.c +++ b/iup/src/iup_getparam.c @@ -45,6 +45,14 @@ static int iParamButtonCancel_CB(Ihandle* self) return IUP_CLOSE; } +static int iParamButtonHelp_CB(Ihandle* self) +{ + Ihandle* dlg = IupGetDialog(self); + Iparamcb cb = (Iparamcb)IupGetCallback(dlg, "PARAM_CB"); + if (cb) cb(dlg, -4, (void*)iupAttribGet(dlg, "USER_DATA")); + return IUP_DEFAULT; +} + static int iParamToggleAction_CB(Ihandle *self, int v) { Ihandle* param = (Ihandle*)iupAttribGetInherit(self, "_IUPGP_PARAM"); @@ -288,7 +296,7 @@ static int iParamColorButton_CB(Ihandle *self, int button, int pressed) IupPopup(dlg, IUP_CENTER, IUP_CENTER); - if (IupGetInt(dlg, "STATUS") != -1) + if (IupGetInt(dlg, "STATUS")==1) { char* value = IupGetAttribute(dlg, "VALUE"); IupSetAttribute(textbox, "VALUE", value); @@ -381,11 +389,13 @@ static int iParamSpinInt_CB(Ihandle *self, int pos) static Ihandle* iParamCreateBox(Ihandle* param) { Ihandle *box, *ctrl = NULL, *label; - char *type; + char *type = iupAttribGet(param, "TYPE"); + + if (iupStrEqual(type, "BUTTONNAMES")) + return NULL; label = IupLabel(iupAttribGet(param, "TITLE")); - type = iupAttribGet(param, "TYPE"); if (iupStrEqual(type, "SEPARATOR")) { box = IupHbox(label, NULL); @@ -563,7 +573,7 @@ static Ihandle* iParamCreateBox(Ihandle* param) float step = iupAttribGetFloat(param, "STEP"); float val = iupAttribGetFloat(param, "VALUE"); if (step == 0) step = (max-min)/20.0f; - IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)max); + IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)max); /* here spin is always [0-spinmax] converted to [min-max] */ @@ -584,7 +594,7 @@ static Ihandle* iParamCreateBox(Ihandle* param) if (min == 0) IupSetAttribute(ctrl, "MASK", IUP_MASK_UFLOAT); else - IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)1.0e10); + IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)1.0e10); IupAppend(box, ctrl); } else @@ -620,6 +630,7 @@ static Ihandle* iParamCreateBox(Ihandle* param) } IupSetfAttribute(ctrl, "SPINMAX", "%d", max); IupSetfAttribute(ctrl, "SPINMIN", "%d", min); + IupSetfAttribute(ctrl, "MASKINT", "%d:%d", min, max); } else if (iupAttribGetInt(param, "PARTIAL")) { @@ -696,7 +707,7 @@ static Ihandle* iParamCreateBox(Ihandle* param) static Ihandle* IupParamDlgP(Ihandle** params) { - Ihandle *dlg, *button_ok, *button_cancel, + Ihandle *dlg, *button_ok, *button_cancel, *button_help=NULL, *dlg_box, *button_box, *param_box; int i, lbl_width, p, expand; @@ -713,7 +724,23 @@ static Ihandle* IupParamDlgP(Ihandle** params) i = 0; expand = 0; while (params[i] != NULL) { - IupAppend(param_box, iParamCreateBox(params[i])); + Ihandle* box = iParamCreateBox(params[i]); + if (box) + IupAppend(param_box, box); + else /* buttonnames */ + { + char* value = iupAttribGet(params[i], "_IUPGP_OK"); + if (value && *value) IupSetAttribute(button_ok, "TITLE", value); + value = iupAttribGet(params[i], "_IUPGP_CANCEL"); + if (value && *value) IupSetAttribute(button_cancel, "TITLE", value); + value = iupAttribGet(params[i], "_IUPGP_HELP"); + if (value && *value) + { + button_help = IupButton(value, NULL); + IupSetAttribute(button_help, "PADDING", "20x0"); + IupSetCallback(button_help, "ACTION", (Icallback)iParamButtonHelp_CB); + } + } if (IupGetInt(params[i], "EXPAND")) expand = 1; @@ -725,6 +752,7 @@ static Ihandle* IupParamDlgP(Ihandle** params) IupFill(), button_ok, button_cancel, + button_help, NULL); IupSetAttribute(button_box,"MARGIN","0x0"); IupSetAttribute(button_box, "NORMALIZESIZE", "HORIZONTAL"); @@ -926,6 +954,23 @@ static void iParamSetFileOptions(char* extra, Ihandle* param) iupAttribStoreStr(param, "_IUPGP_NOOVERWRITEPROMPT", nooverwriteprompt); } +static void iParamSetButtonNames(char* extra, Ihandle* param) +{ + char *ok, *cancel, *help; + int count; + + if (!extra) + return; + + ok = iParamGetNextStrItem(extra, ',', &count); extra += count; + cancel = iParamGetNextStrItem(extra, ',', &count); extra += count; + help = iParamGetNextStrItem(extra, ',', &count); extra += count; + + iupAttribStoreStr(param, "_IUPGP_OK", ok); + iupAttribStoreStr(param, "_IUPGP_CANCEL", cancel); + iupAttribStoreStr(param, "_IUPGP_HELP", help); +} + static void iParamSetListItems(char* extra, Ihandle* param) { int d = 1, count; @@ -1082,6 +1127,12 @@ static Ihandle *IupParamf(const char* format, int *line_size) iupAttribSetStr(param, "TYPE", "SEPARATOR"); iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */ break; + case 'u': + iupAttribSetStr(param, "TYPE", "BUTTONNAMES"); + iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */ + extra = iParamGetStrExtra(line_ptr, '[', ']', &count); line_ptr += count; + iParamSetButtonNames(extra, param); + break; default: return NULL; } @@ -1099,7 +1150,7 @@ static Ihandle *IupParamf(const char* format, int *line_size) int iupGetParamCount(const char *format, int *param_extra) { - int param_count = 0, sep = 0; + int param_count = 0, extra = 0; const char* s = format; *param_extra = 0; @@ -1107,14 +1158,20 @@ int iupGetParamCount(const char *format, int *param_extra) { if (*s == '%' && *(s+1) == 't') /* do not count separator lines */ { - sep = 1; + extra = 1; + (*param_extra)++; + } + + if (*s == '%' && *(s+1) == 'u') /* do not count button names lines */ + { + extra = 1; (*param_extra)++; } if (*s == '\n') { - if (sep) - sep = 0; + if (extra) + extra = 0; else param_count++; } @@ -1154,21 +1211,21 @@ int IupGetParamv(const char* title, Iparamcb action, void* user_data, const char return 0; data_type = IupGetInt(params[i], "DATA_TYPE"); - if (data_type == 1) - { - int *data_int = (int*)(param_data[p]); - if (!data_int) return 0; - iupAttribSetStrf(params[i], "VALUE", "%d", *data_int); - p++; - } - else if (data_type == 2) + if (data_type == 2) /* float */ { float *data_float = (float*)(param_data[p]); if (!data_float) return 0; iupAttribSetStrf(params[i], "VALUE", "%g", *data_float); p++; } - else if (data_type == 0) + else if (data_type == 1) /* integer */ + { + int *data_int = (int*)(param_data[p]); + if (!data_int) return 0; + iupAttribSetStrf(params[i], "VALUE", "%d", *data_int); + p++; + } + else if (data_type == 0) /* string */ { char *data_str = (char*)(param_data[p]); if (!data_str) return 0; diff --git a/iup/src/iup_globalattrib.c b/iup/src/iup_globalattrib.c index 00586fb..d1a2584 100755 --- a/iup/src/iup_globalattrib.c +++ b/iup/src/iup_globalattrib.c @@ -129,12 +129,14 @@ int iupGlobalIsPointer(const char* name) static struct { const char *name; } ptr_table[] = { -#ifdef WIN32 +#ifndef GTK_MAC + #ifdef WIN32 {"HINSTANCE"}, -#else + #else {"XDISPLAY"}, {"XSCREEN"}, {"APPSHELL"}, + #endif #endif }; #define PTR_TABLE_SIZE ((sizeof ptr_table)/(sizeof ptr_table[0])) diff --git a/iup/src/iup_hbox.c b/iup/src/iup_hbox.c index e790636..a8a93a3 100755 --- a/iup/src/iup_hbox.c +++ b/iup/src/iup_hbox.c @@ -213,6 +213,13 @@ static void iHboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink) else { int empty = (child->expand & IUP_EXPAND_W1)? empty_w1: ((child->expand & IUP_EXPAND_W0)? empty_w0: 0); + char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH"); + if (weigth_str) + { + float weigth; + if (iupStrToFloat(weigth_str, &weigth)) + empty = iupROUND(empty * weigth); + } iupBaseSetCurrentSize(child, child->naturalwidth+empty, client_height, shrink); } diff --git a/iup/src/iup_key.h b/iup/src/iup_key.h index 37d6c9d..9b30bc4 100755 --- a/iup/src/iup_key.h +++ b/iup/src/iup_key.h @@ -51,16 +51,16 @@ void iupKeyInit(void); #define IUPKEY_STATUS_SIZE 11 /* 10 chars + null */ #define IUPKEY_STATUS_INIT " " /* 10 spaces */ -#define iupKEYSETSHIFT(_s) (_s[0]='S') -#define iupKEYSETCONTROL(_s) (_s[1]='C') -#define iupKEYSETBUTTON1(_s) (_s[2]='1') -#define iupKEYSETBUTTON2(_s) (_s[3]='2') -#define iupKEYSETBUTTON3(_s) (_s[4]='3') -#define iupKEYSETDOUBLE(_s) (_s[5]='D') -#define iupKEYSETALT(_s) (_s[6]='A') -#define iupKEYSETSYS(_s) (_s[7]='Y') -#define iupKEYSETBUTTON4(_s) (_s[8]='4') -#define iupKEYSETBUTTON5(_s) (_s[9]='5') +#define iupKEY_SETSHIFT(_s) (_s[0]='S') +#define iupKEY_SETCONTROL(_s) (_s[1]='C') +#define iupKEY_SETBUTTON1(_s) (_s[2]='1') +#define iupKEY_SETBUTTON2(_s) (_s[3]='2') +#define iupKEY_SETBUTTON3(_s) (_s[4]='3') +#define iupKEY_SETDOUBLE(_s) (_s[5]='D') +#define iupKEY_SETALT(_s) (_s[6]='A') +#define iupKEY_SETSYS(_s) (_s[7]='Y') +#define iupKEY_SETBUTTON4(_s) (_s[8]='4') +#define iupKEY_SETBUTTON5(_s) (_s[9]='5') #ifdef __cplusplus diff --git a/iup/src/iup_layout.c b/iup/src/iup_layout.c index b96293c..0ccd496 100755 --- a/iup/src/iup_layout.c +++ b/iup/src/iup_layout.c @@ -43,7 +43,7 @@ static void iLayoutDisplayUpdateChildren(Ihandle *ih) iLayoutDisplayUpdateChildren(child); if (child->handle && child->iclass->nativetype != IUP_TYPEVOID) - iupdrvDisplayUpdate(child); + iupdrvPostRedraw(child); } } @@ -54,7 +54,7 @@ void IupUpdate(Ihandle* ih) return; if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID) - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); } void IupUpdateChildren(Ihandle* ih) @@ -74,7 +74,7 @@ static void iLayoutDisplayRedrawChildren(Ihandle *ih) iLayoutDisplayRedrawChildren(child); if (child->handle && child->iclass->nativetype != IUP_TYPEVOID) - iupdrvDisplayRedraw(child); + iupdrvRedrawNow(child); } } @@ -85,7 +85,7 @@ void IupRedraw(Ihandle* ih, int children) return; if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); if (children) iLayoutDisplayRedrawChildren(ih); @@ -136,7 +136,7 @@ void iupLayoutCompute(Ihandle* ih) iupBaseSetPosition(ih, 0, 0); } -static void iLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h) +void iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h) { if (ih->has_minsize) { @@ -163,7 +163,8 @@ void iupBaseComputeNaturalSize(Ihandle* ih) ih->naturalwidth = ih->userwidth; ih->naturalheight = ih->userheight; - if (ih->iclass->childtype!=IUP_CHILDNONE || ih->iclass->nativetype == IUP_TYPEDIALOG) + if (ih->iclass->childtype!=IUP_CHILDNONE || + ih->iclass->nativetype == IUP_TYPEDIALOG) /* pre-defined dialogs can restrict the number of children */ { int w=0, h=0, children_expand; @@ -190,7 +191,7 @@ void iupBaseComputeNaturalSize(Ihandle* ih) ih->naturalheight = iupMAX(ih->naturalheight, h); /* crop the natural size */ - iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight)); + iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight)); } } else @@ -198,15 +199,15 @@ void iupBaseComputeNaturalSize(Ihandle* ih) /* for non-container only compute if user size is not defined */ if (ih->naturalwidth <= 0 || ih->naturalheight <= 0) { - int w=0, h=0; - iupClassObjectComputeNaturalSize(ih, &w, &h, NULL); + int w=0, h=0, children_expand; + iupClassObjectComputeNaturalSize(ih, &w, &h, &children_expand); if (ih->naturalwidth <= 0) ih->naturalwidth = w; if (ih->naturalheight <= 0) ih->naturalheight = h; } /* crop the natural size */ - iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight)); + iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight)); } } @@ -259,7 +260,7 @@ void iupBaseSetCurrentSize(Ihandle* ih, int w, int h, int shrink) /* crop the current size if expanded */ if (ih->expand & IUP_EXPAND_WIDTH || ih->expand & IUP_EXPAND_HEIGHT) - iLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight)); + iupLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight)); } } diff --git a/iup/src/iup_layout.h b/iup/src/iup_layout.h index a2a0c29..775e5a2 100755 --- a/iup/src/iup_layout.h +++ b/iup/src/iup_layout.h @@ -16,6 +16,8 @@ extern "C" { void iupLayoutCompute(Ihandle* ih); /* can be called before map */ void iupLayoutUpdate(Ihandle* ih); /* called only after map */ +void iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h); + /* Other functions declared in <iup.h> and implemented here. IupRefresh */ diff --git a/iup/src/iup_ledlex.c b/iup/src/iup_ledlex.c index 3283a43..5cf8640 100755 --- a/iup/src/iup_ledlex.c +++ b/iup/src/iup_ledlex.c @@ -35,7 +35,7 @@ static struct /* lexical variables */ static int iLexGetChar (void); static int iLexToken(int *erro); static int iLexCapture (char* dlm); -static int iLexSkip (char* dlm); +static void iLexSkipComment (void); static int iLexCaptureAttr (void); int iupLexStart(const char* filename, int is_file) /* initialize lexical analysis */ @@ -186,9 +186,9 @@ static int iLexToken(int *erro) case ']': return IUPLEX_TK_ENDATTR; - case '#': /* iLexSkip comment */ - case '%': /* iLexSkip comment */ - iLexSkip ("\n\r"); + case '#': /* Skip comment */ + case '%': /* Skip comment */ + iLexSkipComment(); continue; case ' ': /* ignore whitespace */ @@ -276,14 +276,13 @@ static int iLexCaptureAttr (void) return c; /* return delimiter */ } -static int iLexSkip (char* dlm) +static void iLexSkipComment (void) { int c; do { - c = iLexGetChar (); - } while ((c > 0) && !strchr (dlm,c)); - return c; /* return delimiter */ + c = iLexGetChar(); + } while ((c > 0) && (c != '\n')); } static int iLexGetChar (void) diff --git a/iup/src/iup_list.c b/iup/src/iup_list.c index 5965665..1077d98 100755 --- a/iup/src/iup_list.c +++ b/iup/src/iup_list.c @@ -53,6 +53,37 @@ static void iListCallActionCallback(Ihandle* ih, IFnsii cb, int pos, int state) IupExitLoop(); } +void iupListUpdateOldValue(Ihandle* ih, int pos, int removed) +{ + if (!ih->data->has_editbox) + { + char* old_value = iupAttribGet(ih, "_IUPLIST_OLDVALUE"); + if (old_value) + { + int old_pos = atoi(old_value)-1; /* was in IUP reference, starting at 1 */ + if (ih->data->is_dropdown || !ih->data->is_multiple) + { + if (old_pos >= pos) + { + if (removed && old_pos == pos) + { + /* when the current item is removed nothing remains selected */ + iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL); + } + else + iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", removed? old_pos-1: old_pos+1); + } + } + else + { + /* multiple selection on a non drop-down list. */ + char* value = IupGetAttribute(ih, "VALUE"); + iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", value); + } + } + } +} + void iupListSingleCallActionCallback(Ihandle* ih, IFnsii cb, int pos) { char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE"); @@ -77,7 +108,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE"); int old_count = old_str? strlen(old_str): 0; - char* str = iupStrGetMemory(count+1); + char* str = malloc(count+1); memset(str, '-', count); str[count]=0; for (i=0; i<sel_count; i++) @@ -92,6 +123,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in if (multi_cb) { int unchanged = 1; + for (i=0; i<count && old_str; i++) { if (str[i] == old_str[i]) @@ -101,7 +133,10 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in } if (old_str && unchanged) + { + free(str); return; + } if (multi_cb(ih, str) == IUP_CLOSE) IupExitLoop(); @@ -133,6 +168,7 @@ void iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in } iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", str); + free(str); } int iupListGetPos(Ihandle* ih, const char* name_id) @@ -145,7 +181,8 @@ int iupListGetPos(Ihandle* ih, const char* name_id) pos--; /* IUP items start at 1 */ if (pos < 0) return -1; - if (pos > count-1) return -1; + if (pos == count) return -2; + if (pos > count) return -1; return pos; } @@ -217,7 +254,10 @@ int iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value) if (pos >= 0 && pos <= count-1) { if (pos == 0) + { iupdrvListRemoveAllItems(ih); + iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL); + } else { int i = pos; @@ -245,7 +285,7 @@ int iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value) static int iListSetAppendItemAttrib(Ihandle* ih, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (value) iupdrvListAppendItem(ih, value); @@ -254,27 +294,32 @@ static int iListSetAppendItemAttrib(Ihandle* ih, const char* value) static int iListSetInsertItemAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (value) { int pos = iupListGetPos(ih, name_id); - if (pos!=-1) + if (pos >= 0) iupdrvListInsertItem(ih, pos, value); + else if (pos == -2) + iupdrvListAppendItem(ih, value); } return 0; } static int iListSetRemoveItemAttrib(Ihandle* ih, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!value) + { iupdrvListRemoveAllItems(ih); + iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL); + } else { int pos = iupListGetPos(ih, value); - if (pos!=-1) + if (pos >= 0) iupdrvListRemoveItem(ih, pos); } return 0; diff --git a/iup/src/iup_list.h b/iup/src/iup_list.h index 045116b..05fe9f8 100755 --- a/iup/src/iup_list.h +++ b/iup/src/iup_list.h @@ -30,6 +30,7 @@ char* iupListGetNCAttrib(Ihandle* ih); char* iupListGetPaddingAttrib(Ihandle* ih); char* iupListGetSpacingAttrib(Ihandle* ih); void iupListSingleCallDblClickCallback(Ihandle* ih, IFnis cb, int pos); +void iupListUpdateOldValue(Ihandle* ih, int pos, int removed); struct _IcontrolData { diff --git a/iup/src/iup_names.c b/iup/src/iup_names.c index 9ec01a6..18ca3ef 100755 --- a/iup/src/iup_names.c +++ b/iup/src/iup_names.c @@ -14,11 +14,41 @@ #include "iup_object.h" #include "iup_class.h" #include "iup_assert.h" +#include "iup_attrib.h" #include "iup_str.h" static Itable *inames_strtable = NULL; /* table indexed by name containing Ihandle* address */ -static Itable *inames_ihtable = NULL; /* table indexed by Ihandle* address containing names */ + +void iupNamesInit(void) +{ + inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED); +} + +void iupNamesFinish(void) +{ + iupTableDestroy(inames_strtable); + inames_strtable = NULL; +} + +static Ihandle* iNameGetTopParent(Ihandle* ih) +{ + Ihandle* parent = ih; + while (parent->parent) + parent = parent->parent; + return parent; +} + +static int iNameCheckArray(Ihandle** ih_array, int count, Ihandle* ih) +{ + int i; + for (i = 0; i < count; i++) + { + if (ih_array[i] == ih) + return 0; + } + return 1; +} void iupNamesDestroyHandles(void) { @@ -37,10 +67,14 @@ void iupNamesDestroyHandles(void) while (name) { ih = (Ihandle*)iupTableGetCurr(inames_strtable); - if (iupObjectCheck(ih)) + if (iupObjectCheck(ih)) /* here must be a handle */ { - ih_array[i] = ih; - i++; + ih = iNameGetTopParent(ih); + if (iNameCheckArray(ih_array, i, ih)) + { + ih_array[i] = ih; + i++; + } } name = iupTableNext(inames_strtable); } @@ -48,44 +82,28 @@ void iupNamesDestroyHandles(void) count = i; for (i = 0; i < count; i++) { - if (iupObjectCheck(ih_array[i])) + if (iupObjectCheck(ih_array[i])) /* here must be a handle */ IupDestroy(ih_array[i]); } free(ih_array); } -void iupNamesInit(void) -{ - inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED); - inames_ihtable = iupTableCreate(IUPTABLE_POINTERINDEXED); -} - -void iupNamesFinish(void) -{ - iupTableDestroy(inames_strtable); - inames_strtable = NULL; - - iupTableDestroy(inames_ihtable); - inames_ihtable = NULL; -} - -void iupRemoveAllNames(Ihandle* ih) +void iupRemoveNames(Ihandle* ih) { char *name; - Ihandle *cur_ih; - name = iupTableFirst(inames_strtable); - while (name) - { - cur_ih = (Ihandle*)iupTableGetCurr(inames_strtable); - if (iupObjectCheck(cur_ih) && cur_ih == ih) - iupTableRemoveCurr(inames_strtable); + /* clear the cache */ + name = iupAttribGet(ih, "_IUP_LASTHANDLENAME"); + if (name) + iupTableRemove(inames_strtable, name); - name = iupTableNext(inames_strtable); - } + /* check for an internal name */ + name = iupAttribGetHandleName(ih); + if (name) + iupTableRemove(inames_strtable, name); - iupTableRemove(inames_ihtable, (char*)ih); + /* Do NOT search for other names */ } Ihandle *IupGetHandle(const char *name) @@ -104,22 +122,24 @@ Ihandle* IupSetHandle(const char *name, Ihandle *ih) return NULL; old_ih = iupTableGet(inames_strtable, name); + if (ih != NULL) { iupTableSet(inames_strtable, name, ih, IUPTABLE_POINTER); - iupTableSet(inames_ihtable, (char*)ih, (char*)name, IUPTABLE_STRING); /* keep only the last name set */ + + /* save the name in the cache if it is a valid handle */ + if (iupObjectCheck(ih)) + iupAttribStoreStr(ih, "_IUP_LASTHANDLENAME", name); } else { - ih = iupTableGet(inames_strtable, name); iupTableRemove(inames_strtable, name); - if (ih) - { - char* cur_name = iupTableGet(inames_ihtable, (char*)ih); - if (iupStrEqualNoCase(cur_name, name)) - iupTableRemove(inames_ihtable, (char*)ih); - } + + /* clear the name from the cache if it is a valid handle */ + if (iupObjectCheck(old_ih)) + iupAttribSetStr(old_ih, "_IUP_LASTHANDLENAME", NULL); } + return old_ih; } @@ -151,7 +171,8 @@ static int iNamesCountDialogs(void) while (name) { Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable); - if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG) + if (iupObjectCheck(dlg) && /* here must be a handle */ + dlg->iclass->nativetype == IUP_TYPEDIALOG) i++; name = iupTableNext(inames_strtable); @@ -171,7 +192,8 @@ int IupGetAllDialogs(char** names, int n) while (name) { Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable); - if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG) + if (iupObjectCheck(dlg) && /* here must be a handle */ + dlg->iclass->nativetype == IUP_TYPEDIALOG) { names[i] = name; i++; @@ -186,8 +208,32 @@ int IupGetAllDialogs(char** names, int n) char* IupGetName(Ihandle* ih) { - iupASSERT(iupObjectCheck(ih)); - if (!iupObjectCheck(ih)) + char *name; + if (!ih) /* no iupASSERT needed here */ return NULL; - return iupTableGet(inames_ihtable, (char*)ih); + + if (iupObjectCheck(ih)) + { + /* check the cache first, but must be a handle */ + name = iupAttribGet(ih, "_IUP_LASTHANDLENAME"); + if (name) + return name; + } + + /* check for an internal name */ + name = iupAttribGetHandleName(ih); + if (name) + return name; + + /* search for the name */ + name = iupTableFirst(inames_strtable); + while (name) + { + if ((Ihandle*)iupTableGetCurr(inames_strtable) == ih) + return name; + + name = iupTableNext(inames_strtable); + } + + return NULL; } diff --git a/iup/src/iup_names.h b/iup/src/iup_names.h index 9d3adc7..d652594 100755 --- a/iup/src/iup_names.h +++ b/iup/src/iup_names.h @@ -17,7 +17,7 @@ void iupNamesFinish(void); void iupNamesDestroyHandles(void); /* called from IupDestroy */ -void iupRemoveAllNames(Ihandle* ih); +void iupRemoveNames(Ihandle* ih); /* Other functions declared in <iup.h> and implemented here. IupGetName diff --git a/iup/src/iup_object.c b/iup/src/iup_object.c index 7f4ce23..f0d5dc9 100755 --- a/iup/src/iup_object.c +++ b/iup/src/iup_object.c @@ -148,6 +148,8 @@ Ihandle* IupCreate(const char *name) void IupDestroy(Ihandle *ih) { + Icallback cb; + iupASSERT(iupObjectCheck(ih)); if (!iupObjectCheck(ih)) return; @@ -156,6 +158,9 @@ void IupDestroy(Ihandle *ih) if (ih->iclass->nativetype == IUP_TYPEDIALOG) IupHide(ih); + cb = IupGetCallback(ih, "DESTROY_CB"); + if (cb) cb(ih); + /* Destroy all its children. Just need to remove the first child, IupDetach will update firstchild. */ @@ -165,6 +170,9 @@ void IupDestroy(Ihandle *ih) /* unmap if mapped and remove from its parent child list */ IupDetach(ih); + /* removes names associated with the element */ + iupRemoveNames(ih); + /* destroy the element */ iupClassObjectDestroy(ih); @@ -172,9 +180,6 @@ void IupDestroy(Ihandle *ih) if (ih->data) free(ih->data); - /* removes all the names associated with the element */ - iupRemoveAllNames(ih); - /* destroy the base handle structure */ iHandleDestroy(ih); } diff --git a/iup/src/iup_object.h b/iup/src/iup_object.h index 6f6b668..a69edc0 100755 --- a/iup/src/iup_object.h +++ b/iup/src/iup_object.h @@ -113,6 +113,7 @@ Ihandle* iupObjectCreate(Iclass* ic, void** params); void** iupObjectGetParamList(void* first, va_list arglist); /** Checks if the handle is still valid based on the signature. + * But if the handle was destroyed still can access invalid memory. * \ingroup object */ int iupObjectCheck(Ihandle* ih); diff --git a/iup/src/iup_open.c b/iup/src/iup_open.c index e02561e..bce5c5c 100755 --- a/iup/src/iup_open.c +++ b/iup/src/iup_open.c @@ -101,8 +101,8 @@ void IupClose(void) iupdrvSetIdleFunction(NULL); /* stop any idle */ - iupDlgListDestroyAll(); /* destroy all dialogs */ - iupNamesDestroyHandles(); /* destroy everything else that have names */ + iupDlgListDestroyAll(); /* destroy all dialogs and their children */ + iupNamesDestroyHandles(); /* destroy everything that do not belong to a dialog */ iupImageStockFinish(); /* release stock images hash table and the images */ iupRegisterFinish(); /* release native classes */ diff --git a/iup/src/iup_register.c b/iup/src/iup_register.c index 4c58038..2e9954a 100755 --- a/iup/src/iup_register.c +++ b/iup/src/iup_register.c @@ -99,6 +99,7 @@ void iupRegisterInternalClasses(void) iupRegisterClass(iupCboxGetClass()); iupRegisterClass(iupSboxGetClass()); iupRegisterClass(iupNormalizerGetClass()); + iupRegisterClass(iupSplitGetClass()); iupRegisterClass(iupMenuGetClass()); iupRegisterClass(iupItemGetClass()); diff --git a/iup/src/iup_sbox.c b/iup/src/iup_sbox.c index 5a71d33..9998481 100755 --- a/iup/src/iup_sbox.c +++ b/iup/src/iup_sbox.c @@ -57,6 +57,7 @@ static void iSboxSaveDimension(Ihandle* ih, int w, int h) { ih->data->w = w; ih->data->h = h; + iupLayoutSetMinMaxSize(ih, &(ih->data->w), &(ih->data->h)); } static void iSboxAddDecorOffset(Ihandle* ih, int *x, int *y) diff --git a/iup/src/iup_show.c b/iup/src/iup_show.c index 9ea1408..b42975e 100755 --- a/iup/src/iup_show.c +++ b/iup/src/iup_show.c @@ -53,35 +53,6 @@ void IupUnmap(Ihandle *ih) ih->handle = NULL; } -static char* iShowGetVisible(Ihandle* ih) -{ - char* value = iupAttribGet(ih, "VISIBLE"); /* Check on the element first */ - while (!value) - { - ih = ih->parent; /* iheritance here independs on the attribute */ - if (!ih) - return NULL; - - value = iupAttribGet(ih, "VISIBLE"); - - /* only recursive up to the native parent */ - if (ih->iclass->nativetype != IUP_TYPEVOID) - return value; /* can be NULL */ - } - - return value; -} - -static void iShowUpdateVisible(Ihandle* ih) -{ - int inherit; - /* although default is VISIBLE=YES, - when mapped the element is still hidden. - So we must manually update the visible state. */ - char* value = iShowGetVisible(ih); - iupClassObjectSetAttribute(ih, "VISIBLE", value, &inherit); -} - int IupMap(Ihandle* ih) { iupASSERT(iupObjectCheck(ih)); @@ -108,7 +79,7 @@ int IupMap(Ihandle* ih) return IUP_ERROR; } - /* update FONT, must be the before several others */ + /* update FONT, must be the before several others, so we do it here */ if (ih->iclass->nativetype != IUP_TYPEVOID && ih->iclass->nativetype != IUP_TYPEIMAGE && ih->iclass->nativetype != IUP_TYPEMENU) @@ -117,18 +88,13 @@ int IupMap(Ihandle* ih) /* ensure attributes default values, at this time only the ones that need to be set after map */ iupClassObjectEnsureDefaultAttributes(ih); - /* check visible state if not a dialog */ - if (ih->iclass->nativetype == IUP_TYPECANVAS || - ih->iclass->nativetype == IUP_TYPECONTROL) - iShowUpdateVisible(ih); - - /* updates the defined attributes in the native system. */ + /* updates the defined attributes from the hash table to the native system. */ iupAttribUpdate(ih); - /* updates attributes defined in the parent tree */ + /* updates inheritable attributes defined in the parent tree */ iupAttribUpdateFromParent(ih); - /* map children */ + /* map children independent from childtype */ { Ihandle* child = ih->firstchild; while (child) @@ -140,6 +106,10 @@ int IupMap(Ihandle* ih) } } + /* updates the defined attributes from the hash table to the native system. */ + if (ih->iclass->childtype!=IUP_CHILDNONE) + iupAttribUpdateChildren(ih); + /* moves and resizes the elements to reflect the layout computation */ /* if the dialog is visible will be reflected in the user interface */ if (ih->iclass->nativetype == IUP_TYPEDIALOG) diff --git a/iup/src/iup_spin.c b/iup/src/iup_spin.c index 6fadab4..514703f 100755 --- a/iup/src/iup_spin.c +++ b/iup/src/iup_spin.c @@ -175,7 +175,7 @@ static int iSpinCreateMethod(Ihandle* ih, void** params) static int iSpinboxCreateMethod(Ihandle* ih, void** params) { - Ihandle *spin, *ctrl; + Ihandle *spin; if (!params || !(params[0])) return IUP_ERROR; @@ -184,8 +184,7 @@ static int iSpinboxCreateMethod(Ihandle* ih, void** params) IupSetAttribute(ih, "MARGIN", "0x0"); IupSetAttribute(ih, "ALIGNMENT", "ACENTER"); - ctrl = (Ihandle*)(params[0]); - iupChildTreeAppend(ih, ctrl); + /* IupText is already a child of Spinbox because of the IupHbox Create method */ spin = IupSpin(); iupChildTreeAppend(ih, spin); @@ -249,7 +248,7 @@ Iclass* iupSpinboxGetClass(void) ic->name = "spinbox"; ic->format = "h"; /* one Ihandle */ ic->nativetype = IUP_TYPEVOID; - ic->childtype = IUP_CHILDNONE; + ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */ ic->is_interactive = 0; iupClassRegisterCallback(ic, "SPIN_CB", "i"); @@ -267,7 +266,7 @@ Iclass* iupSpinGetClass(void) ic->name = "spin"; ic->format = NULL; /* no parameters */ ic->nativetype = IUP_TYPEVOID; - ic->childtype = IUP_CHILDNONE; + ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */ ic->is_interactive = 0; /* Class functions */ diff --git a/iup/src/iup_split.c b/iup/src/iup_split.c new file mode 100644 index 0000000..1829142 --- /dev/null +++ b/iup/src/iup_split.c @@ -0,0 +1,780 @@ +/** \file + * \brief iupsplit control + * + * See Copyright Notice in "iup.h" + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> + +#include "iup.h" +#include "iupcbs.h" +#include "iupkey.h" + +#include "iup_object.h" +#include "iup_attrib.h" +#include "iup_str.h" +#include "iup_drv.h" +#include "iup_stdcontrols.h" +#include "iup_layout.h" +#include "iup_childtree.h" +#include "iup_draw.h" + + +enum { ISPLIT_VERT, ISPLIT_HORIZ }; + +struct _IcontrolData +{ + /* aux */ + int is_holding; + int start_pos, start_bar, start_size; + + /* attributes */ + int layoutdrag, autohide, showgrip, barsize; + int direction; /* one of the types: ISPLIT_VERT, ISPLIT_HORIZ */ + int val; /* split value: 0-1000, default 500 */ +}; + +static int iSplitGetWidth1(Ihandle* ih) +{ + int width1 = ((ih->currentwidth-ih->data->barsize)*ih->data->val)/1000; + if (width1 < 0) width1 = 0; + return width1; +} + +static int iSplitGetHeight1(Ihandle* ih) +{ + int height1 = ((ih->currentheight-ih->data->barsize)*ih->data->val)/1000; + if (height1 < 0) height1 = 0; + return height1; +} + +static void iSplitSetBarPosition(Ihandle* ih, int cur_x, int cur_y, int update) +{ + if (ih->data->direction == ISPLIT_VERT) + { + ih->firstchild->x = ih->data->start_bar + (cur_x - ih->data->start_pos); + if (ih->firstchild->x < ih->x) + ih->firstchild->x = ih->x; + if (ih->firstchild->x > ih->x+ih->currentwidth) + ih->firstchild->x = ih->x+ih->currentwidth; + } + else /* ISPLIT_HORIZ */ + { + ih->firstchild->y = ih->data->start_bar + (cur_y - ih->data->start_pos); + if (ih->firstchild->y < ih->y) + ih->firstchild->y = ih->y; + if (ih->firstchild->y > ih->y+ih->currentheight) + ih->firstchild->y = ih->y+ih->currentheight; + } + + if (update) + { + IupSetAttribute(ih->firstchild, "ZORDER", "TOP"); + iupClassObjectLayoutUpdate(ih->firstchild); + } +} + +static void iSplitShowHide(Ihandle* child, int hide) +{ + if (hide) + { + IupSetAttribute(child, "FLOATING", "YES"); + IupSetAttribute(child, "VISIBLE", "NO"); + } + else if (!IupGetInt(child, "VISIBLE")) + { + IupSetAttribute(child, "FLOATING", "NO"); + IupSetAttribute(child, "VISIBLE", "YES"); + } +} + +static void iSplitAutoHideXY(Ihandle* ih) +{ + if (ih->data->direction == ISPLIT_VERT) + { + Ihandle *child1 = ih->firstchild->brother; + if (child1) + { + Ihandle *child2 = child1->brother; + + iSplitShowHide(child1, ih->firstchild->x < ih->x+ih->data->barsize); + + if (child2) + iSplitShowHide(child2, ih->firstchild->x > ih->x+ih->currentwidth-ih->data->barsize); + } + } + else /* ISPLIT_HORIZ */ + { + Ihandle *child1 = ih->firstchild->brother; + if (child1) + { + Ihandle *child2 = child1->brother; + + iSplitShowHide(child1, ih->firstchild->y < ih->y+ih->data->barsize); + + if (child2) + iSplitShowHide(child2, ih->firstchild->y > ih->y+ih->currentheight-ih->data->barsize); + } + } +} + +static void iSplitAutoHideVal(Ihandle* ih) +{ + Ihandle *child1 = ih->firstchild->brother; + if (child1) + { + int tol; + Ihandle *child2 = child1->brother; + + if (ih->data->direction == ISPLIT_VERT) + { + if (ih->currentwidth <= ih->data->barsize) + return; + + tol = (1000*ih->data->barsize)/ih->currentwidth; + } + else + { + if (ih->currentheight <= ih->data->barsize) + return; + + tol = (1000*ih->data->barsize)/ih->currentheight; + } + + iSplitShowHide(child1, ih->data->val<tol); + + if (child2) + iSplitShowHide(child2, ih->data->val > 1000-tol); + } +} + + +/*****************************************************************************\ +|* Callbacks of canvas bar *| +\*****************************************************************************/ + + +static int iSplitAction_CB(Ihandle* bar) +{ + Ihandle* ih = bar->parent; + IdrawCanvas* dc = iupDrawCreateCanvas(bar); + + iupDrawParentBackground(dc); + + if (ih->data->showgrip) + { + int i, w, h, x, y, count; + unsigned char r = 160, g = 160, b = 160, bg_r, bg_g, bg_b; + iupDrawGetSize(dc, &w, &h); + + iupStrToRGB(IupGetAttribute(ih, "COLOR"), &r, &g, &b); + if (r+g+b > 3*190) + { bg_r = 100; bg_g = 100; bg_b = 100; } + else + { bg_r = 255; bg_g = 255; bg_b = 255; } + + if (ih->data->direction == ISPLIT_VERT) + { + x = ih->data->barsize/2-1; + y = 2; + count = (h-2)/5; + } + else + { + x = 2; + y = ih->data->barsize/2-1; + count = (w-2)/5; + } + + for (i = 0; i < count; i++) + { + iupDrawRectangle(dc, x+1, y+1, x+2, y+2, bg_r, bg_g, bg_b, 1); + iupDrawRectangle(dc, x, y, x+1, y+1, r, g, b, 1); + if (ih->data->direction == ISPLIT_VERT) + y += 5; + else + x += 5; + } + } + + iupDrawFlush(dc); + + iupDrawKillCanvas(dc); + + return IUP_DEFAULT; +} + +static int iSplitMotion_CB(Ihandle* bar, int x, int y, char *status) +{ + Ihandle* ih = bar->parent; + + if (ih->data->is_holding) + { + if (iup_isbutton1(status)) + { + int cur_x, cur_y; + + iupStrToIntInt(IupGetGlobal("CURSORPOS"), &cur_x, &cur_y, 'x'); + + if (ih->data->direction == ISPLIT_VERT) + { + int width1 = iSplitGetWidth1(ih); + width1 = ih->data->start_size + (cur_x - ih->data->start_pos); + ih->data->val = (width1*1000)/(ih->currentwidth-ih->data->barsize); + } + else + { + int height1 = iSplitGetHeight1(ih); + height1 = ih->data->start_size + (cur_y - ih->data->start_pos); + ih->data->val = (height1*1000)/(ih->currentheight-ih->data->barsize); + } + + if (ih->data->val < 0) ih->data->val = 0; + if (ih->data->val > 1000) ih->data->val = 1000; + + if (ih->data->layoutdrag) + { + if (ih->data->autohide) + { + iSplitSetBarPosition(ih, cur_x, cur_y, 0); + iSplitAutoHideXY(ih); + } + + IupRefresh(ih); /* may affect all the elements in the dialog */ + } + else + iSplitSetBarPosition(ih, cur_x, cur_y, 1); + } + else + ih->data->is_holding = 0; + } + + (void)x; + (void)y; + return IUP_DEFAULT; +} + +static int iSplitButton_CB(Ihandle* bar, int button, int pressed, int x, int y, char* status) +{ + Ihandle* ih = bar->parent; + + if (button!=IUP_BUTTON1) + return IUP_DEFAULT; + + if (!ih->data->is_holding && pressed) + { + int cur_x, cur_y; + + ih->data->is_holding = 1; + + iupStrToIntInt(IupGetGlobal("CURSORPOS"), &cur_x, &cur_y, 'x'); + + /* Save the cursor position and size */ + if (ih->data->direction == ISPLIT_VERT) + { + ih->data->start_bar = ih->firstchild->x; + ih->data->start_pos = cur_x; + ih->data->start_size = iSplitGetWidth1(ih); + } + else + { + ih->data->start_bar = ih->firstchild->y; + ih->data->start_pos = cur_y; + ih->data->start_size = iSplitGetHeight1(ih); + } + } + else if (ih->data->is_holding && !pressed) + { + ih->data->is_holding = 0; + + if (!ih->data->layoutdrag) + { + if (ih->data->autohide) + { + int cur_x, cur_y; + iupStrToIntInt(IupGetGlobal("CURSORPOS"), &cur_x, &cur_y, 'x'); + iSplitSetBarPosition(ih, cur_x, cur_y, 0); + iSplitAutoHideXY(ih); + } + + IupRefresh(ih); /* may affect all the elements in the dialog */ + } + } + + (void)x; + (void)y; + (void)status; + return IUP_DEFAULT; +} + +static int iSplitFocus_CB(Ihandle* bar, int focus) +{ + Ihandle* ih = bar->parent; + + if (!ih || focus) /* use only kill focus */ + return IUP_DEFAULT; + + if (ih->data->is_holding) + ih->data->is_holding = 0; + + return IUP_DEFAULT; +} + + +/*****************************************************************************\ +|* Attributes *| +\*****************************************************************************/ + + +static char* iSplitGetClientSize1Attrib(Ihandle* ih) +{ + int width, height; + char* str = iupStrGetMemory(20); + + if (ih->data->direction == ISPLIT_VERT) + { + width = iSplitGetWidth1(ih); + height = ih->currentheight; + } + else /* ISPLIT_HORIZ */ + { + height = iSplitGetHeight1(ih); + width = ih->currentwidth; + } + + sprintf(str, "%dx%d", width, height); + return str; +} + +static char* iSplitGetClientSize2Attrib(Ihandle* ih) +{ + int width, height; + char* str = iupStrGetMemory(20); + + if (ih->data->direction == ISPLIT_VERT) + { + int width1 = iSplitGetWidth1(ih); + + width = (ih->currentwidth-ih->data->barsize)-width1; + if (width < 0) width = 0; + + height = ih->currentheight; + } + else /* ISPLIT_HORIZ */ + { + int height1 = iSplitGetHeight1(ih); + + height = (ih->currentheight-ih->data->barsize)-height1; + if (height < 0) height = 0; + + width = ih->currentwidth; + } + + sprintf(str, "%dx%d", width, height); + return str; +} + +static int iSplitSetColorAttrib(Ihandle* ih, const char* value) +{ + (void)value; + iupdrvPostRedraw(ih); + return 1; /* store value in hash table */ +} + +static int iSplitSetDirectionAttrib(Ihandle* ih, const char* value) +{ + if (ih->handle) /* only before map */ + return 0; + + if (iupStrEqual(value, "HORIZONTAL")) + ih->data->direction = ISPLIT_HORIZ; + else /* Default = VERTICAL */ + ih->data->direction = ISPLIT_VERT; + + if (ih->data->direction == ISPLIT_VERT) + IupSetAttribute(ih->firstchild, "CURSOR", "SPLITTER_VERT"); + else + IupSetAttribute(ih->firstchild, "CURSOR", "SPLITTER_HORIZ"); + + return 0; /* do not store value in hash table */ +} + +static int iSplitSetValueAttrib(Ihandle* ih, const char* value) +{ + if (!value) + { + ih->data->val = -1; + + if (ih->data->autohide) + iSplitAutoHideVal(ih); + + if (ih->handle) + IupRefresh(ih); /* may affect all the elements in the dialog */ + } + else + { + int val; + if (iupStrToInt(value, &val)) + { + ih->data->val = val; + + if (ih->data->autohide) + iSplitAutoHideVal(ih); + + if (ih->handle) + IupRefresh(ih); /* may affect all the elements in the dialog */ + } + } + + return 0; /* do not store value in hash table */ +} + +static char* iSplitGetValueAttrib(Ihandle* ih) +{ + char* str = iupStrGetMemory(30); + sprintf(str, "%d", ih->data->val); + return str; +} + +static int iSplitSetBarSizeAttrib(Ihandle* ih, const char* value) +{ + if (iupStrToInt(value, &ih->data->barsize)) + { + if (ih->data->autohide) + iSplitAutoHideVal(ih); + + if (ih->handle) + IupRefresh(ih); /* may affect all the elements in the dialog */ + } + return 0; /* do not store value in hash table */ +} + +static char* iSplitGetBarSizeAttrib(Ihandle* ih) +{ + char* str = iupStrGetMemory(30); + sprintf(str, "%d", ih->data->barsize); + return str; +} + +static int iSplitSetLayoutDragAttrib(Ihandle* ih, const char* value) +{ + if (iupStrBoolean(value)) + ih->data->layoutdrag = 1; + else + ih->data->layoutdrag = 0; + + return 0; /* do not store value in hash table */ +} + +static char* iSplitGetLayoutDragAttrib(Ihandle* ih) +{ + if (ih->data->layoutdrag) + return "YES"; + else + return "NO"; +} + +static int iSplitSetShowGripAttrib(Ihandle* ih, const char* value) +{ + if (iupStrBoolean(value)) + ih->data->showgrip = 1; + else + { + ih->data->showgrip = 0; + + if (ih->data->barsize == 5) + iSplitSetBarSizeAttrib(ih, "3"); + } + + return 0; /* do not store value in hash table */ +} + +static char* iSplitGetShowGripAttrib(Ihandle* ih) +{ + if (ih->data->showgrip) + return "YES"; + else + return "NO"; +} + +static int iSplitSetAutoHideAttrib(Ihandle* ih, const char* value) +{ + if (iupStrBoolean(value)) + { + ih->data->autohide = 1; + iSplitAutoHideVal(ih); + } + else + { + Ihandle *child1 = ih->firstchild->brother; + if (child1) + { + Ihandle *child2 = child1->brother; + iSplitShowHide(child1, 0); + if (child2) + iSplitShowHide(child2, 0); + } + + ih->data->autohide = 0; + } + + return 0; /* do not store value in hash table */ +} + +static char* iSplitGetAutoHideAttrib(Ihandle* ih) +{ + if (ih->data->autohide) + return "YES"; + else + return "NO"; +} + + +/*****************************************************************************\ +|* Methods *| +\*****************************************************************************/ + + +static void iSplitComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand) +{ + int natural_w = 0, + natural_h = 0; + Ihandle *child1, *child2 = NULL; + child1 = ih->firstchild->brother; + if (child1) + child2 = child1->brother; + + /* always has at least one child, the bar, not necessary to compute its natural size */ + if (ih->data->direction == ISPLIT_VERT) + natural_w += ih->data->barsize; + else + natural_h += ih->data->barsize; + + if (child1) + { + /* update child natural size first */ + iupBaseComputeNaturalSize(child1); + + if (ih->data->direction == ISPLIT_VERT) + { + natural_w += child1->naturalwidth; + natural_h = iupMAX(natural_h, child1->naturalheight); + } + else + { + natural_w = iupMAX(natural_w, child1->naturalwidth); + natural_h += child1->naturalheight; + } + + *expand = child1->expand; + + if (child2) + { + /* update child natural size first */ + iupBaseComputeNaturalSize(child2); + + if (ih->data->direction == ISPLIT_VERT) + { + natural_w += child2->naturalwidth; + natural_h = iupMAX(natural_h, child2->naturalheight); + } + else + { + natural_w = iupMAX(natural_w, child2->naturalwidth); + natural_h += child2->naturalheight; + } + + *expand |= child2->expand; + } + } + + if (ih->data->val == -1) + { + if (child1) + { + if (ih->data->direction == ISPLIT_VERT) + ih->data->val = (child1->naturalwidth*1000)/(natural_w-ih->data->barsize); + else + ih->data->val = (child1->naturalheight*1000)/(natural_h-ih->data->barsize); + + if (ih->data->val < 0) ih->data->val = 0; + if (ih->data->val > 1000) ih->data->val = 1000; + } + else + ih->data->val = 0; + } + + *w = natural_w; + *h = natural_h; +} + +static void iSplitSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink) +{ + Ihandle *child1, *child2 = NULL; + child1 = ih->firstchild->brother; + if (child1) + child2 = child1->brother; + + if (ih->data->direction == ISPLIT_VERT) + { + int width2 = 0; + + if (child1) + { + int width1 = iSplitGetWidth1(ih); + iupBaseSetCurrentSize(child1, width1, ih->currentheight, shrink); + + width2 = (ih->currentwidth-ih->data->barsize)-width1; + if (width2 < 0) width2 = 0; + } + + /* bar */ + ih->firstchild->currentwidth = ih->data->barsize; + ih->firstchild->currentheight = ih->currentheight; + + if (child2) + iupBaseSetCurrentSize(child2, width2, ih->currentheight, shrink); + } + else /* ISPLIT_HORIZ */ + { + int height2 = 0; + + if (child1) + { + int height1 = iSplitGetHeight1(ih); + iupBaseSetCurrentSize(child1, ih->currentwidth, height1, shrink); + + height2 = (ih->currentheight-ih->data->barsize)-height1; + if (height2 < 0) height2 = 0; + } + + /* bar */ + ih->firstchild->currentwidth = ih->currentwidth; + ih->firstchild->currentheight = ih->data->barsize; + + if (child2) + iupBaseSetCurrentSize(child2, ih->currentwidth, height2, shrink); + } +} + +static void iSplitSetChildrenPositionMethod(Ihandle* ih, int x, int y) +{ + Ihandle *child1, *child2 = NULL; + child1 = ih->firstchild->brother; + if (child1) + child2 = child1->brother; + + if (ih->data->direction == ISPLIT_VERT) + { + if (child1) + iupBaseSetPosition(child1, x, y); + x += iSplitGetWidth1(ih); + + /* bar */ + iupBaseSetPosition(ih->firstchild, x, y); + x += ih->data->barsize; + + if (child2) + iupBaseSetPosition(child2, x, y); + } + else /* ISPLIT_HORIZ */ + { + if (child1) + iupBaseSetPosition(child1, x, y); + y += iSplitGetHeight1(ih); + + /* bar */ + iupBaseSetPosition(ih->firstchild, x, y); + y += ih->data->barsize; + + if (child2) + iupBaseSetPosition(child2, x, y); + } +} + +static int iSplitCreateMethod(Ihandle* ih, void** params) +{ + Ihandle* bar; + + ih->data = iupALLOCCTRLDATA(); + + ih->data->direction = ISPLIT_VERT; + ih->data->val = -1; + ih->data->layoutdrag = 1; + ih->data->autohide = 0; + ih->data->barsize = 5; + ih->data->showgrip = 1; + + bar = IupCanvas(NULL); + iupChildTreeAppend(ih, bar); /* bar will always be the firstchild */ + + IupSetAttribute(bar, "CANFOCUS", "NO"); + IupSetAttribute(bar, "BORDER", "NO"); + IupSetAttribute(bar, "EXPAND", "NO"); + IupSetAttribute(bar, "CURSOR", "SPLITTER_VERT"); + + /* Setting callbacks */ + IupSetCallback(bar, "BUTTON_CB", (Icallback) iSplitButton_CB); + IupSetCallback(bar, "FOCUS_CB", (Icallback) iSplitFocus_CB); + IupSetCallback(bar, "MOTION_CB", (Icallback) iSplitMotion_CB); + IupSetCallback(bar, "ACTION", (Icallback) iSplitAction_CB); + + if (params) + { + Ihandle** iparams = (Ihandle**)params; + if (iparams[0]) IupAppend(ih, iparams[0]); + if (iparams[1]) IupAppend(ih, iparams[1]); + } + + return IUP_NOERROR; +} + +Iclass* iupSplitGetClass(void) +{ + Iclass* ic = iupClassNew(NULL); + + ic->name = "split"; + ic->format = "HH"; /* two optional ihandle */ + ic->nativetype = IUP_TYPEVOID; + ic->childtype = IUP_CHILDMANY; + ic->is_interactive = 0; + + /* Class functions */ + ic->Create = iSplitCreateMethod; + ic->Map = iupBaseTypeVoidMapMethod; + + ic->ComputeNaturalSize = iSplitComputeNaturalSizeMethod; + ic->SetChildrenCurrentSize = iSplitSetChildrenCurrentSizeMethod; + ic->SetChildrenPosition = iSplitSetChildrenPositionMethod; + + /* Common */ + iupBaseRegisterCommonAttrib(ic); + + /* Base Container */ + iupClassRegisterAttribute(ic, "CLIENTSIZE1", iSplitGetClientSize1Attrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "CLIENTSIZE2", iSplitGetClientSize2Attrib, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "EXPAND", iupBaseContainerGetExpandAttrib, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + + /* IupSplit only */ + iupClassRegisterAttribute(ic, "COLOR", NULL, iSplitSetColorAttrib, IUPAF_SAMEASSYSTEM, "160 160 160", IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "DIRECTION", NULL, iSplitSetDirectionAttrib, IUPAF_SAMEASSYSTEM, "VERTICAL", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "VALUE", iSplitGetValueAttrib, iSplitSetValueAttrib, IUPAF_SAMEASSYSTEM, "500", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "LAYOUTDRAG", iSplitGetLayoutDragAttrib, iSplitSetLayoutDragAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "SHOWGRIP", iSplitGetShowGripAttrib, iSplitSetShowGripAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AUTOHIDE", iSplitGetAutoHideAttrib, iSplitSetAutoHideAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "BARSIZE", iSplitGetBarSizeAttrib, iSplitSetBarSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + + return ic; +} + +Ihandle* IupSplit(Ihandle* child1, Ihandle* child2) +{ + void *params[3]; + params[0] = (void*)child1; + params[1] = (void*)child2; + params[2] = NULL; + return IupCreatev("split", params); +} diff --git a/iup/src/iup_stdcontrols.h b/iup/src/iup_stdcontrols.h index 11499ae..0f3deb9 100755 --- a/iup/src/iup_stdcontrols.h +++ b/iup/src/iup_stdcontrols.h @@ -46,6 +46,7 @@ Iclass* iupZboxGetClass(void); Iclass* iupCboxGetClass(void); Iclass* iupSboxGetClass(void); Iclass* iupNormalizerGetClass(void); +Iclass* iupSplitGetClass(void); Iclass* iupTimerGetClass(void); Iclass* iupImageGetClass(void); diff --git a/iup/src/iup_str.c b/iup/src/iup_str.c index 68976f1..5f5b85d 100755 --- a/iup/src/iup_str.c +++ b/iup/src/iup_str.c @@ -147,8 +147,9 @@ char *iupStrCopyUntil(char **str, int c) return NULL; p_str=strchr(*str,c); - if (!p_str) return NULL; - + if (!p_str) + return NULL; + else { int i; int sl=(int)(p_str - (*str)); @@ -160,10 +161,10 @@ char *iupStrCopyUntil(char **str, int c) new_str[i] = (*str)[i]; new_str[sl] = 0; - } - *str = p_str+1; - return new_str; + *str = p_str+1; + return new_str; + } } char *iupStrCopyUntilNoCase(char **str, int c) @@ -174,11 +175,12 @@ char *iupStrCopyUntilNoCase(char **str, int c) p_str=strchr(*str,c); /* usually the lower case is enough */ if (!p_str && isalpha(c)) - { p_str=strchr(*str, toupper(c)); /* but check also for upper case */ - if (!p_str) return NULL; - } + /* if both fail, then abort */ + if (!p_str) + return NULL; + else { int i; int sl=(int)(p_str - (*str)); @@ -190,10 +192,10 @@ char *iupStrCopyUntilNoCase(char **str, int c) new_str[i] = (*str)[i]; new_str[sl] = 0; - } - *str = p_str+1; - return new_str; + *str = p_str+1; + return new_str; + } } char *iupStrGetMemory(int size) diff --git a/iup/src/iup_table.c b/iup/src/iup_table.c index 9e97ff5..a873191 100755 --- a/iup/src/iup_table.c +++ b/iup/src/iup_table.c @@ -19,12 +19,12 @@ /* Adjust these parameters for optimal performance and memory usage */ static const unsigned int itable_maxTableSizeIndex = 8; static const unsigned int itable_hashTableSize[] = { 31, 101, 401, 1601, 4001, 8009, 16001, 32003, 64007 }; -static const float itable_resizeLimit = 2; +static const unsigned int itable_resizeLimit = 2; static const unsigned int itable_itemGrow = 5; /* Iteration context. */ -typedef struct ItableContext +typedef struct _ItableContext { unsigned int entryIndex; /* index at the Itable::entries array */ unsigned int itemIndex; /* index at the ItableEntry::items array */ @@ -41,7 +41,7 @@ typedef struct ItableContext * this is simply the pointer (in this case keyIndex * and keyStr are equal). */ -typedef struct ItableKey +typedef struct _ItableKey { unsigned long keyIndex; /* the secondary hash number */ const char *keyStr; @@ -52,11 +52,11 @@ ItableKey; * Such an item is stored in the item list of * an entry. */ -typedef struct ItableItem +typedef struct _ItableItem { Itable_Types itemType; - ItableKey key; - void *value; + ItableKey key; + void* value; } ItableItem; @@ -67,29 +67,28 @@ ItableItem; * in nextItemIndex. * size is the current size of the items array. */ -typedef struct ItableEntry +typedef struct _ItableEntry { unsigned int nextItemIndex; - unsigned int size; - ItableItem *items; + unsigned int itemsSize; + ItableItem* items; } ItableEntry; /* A hash table. - * indexType is the type of the index. * entries is an array of entries. Select an * entry by its index. * size is the number of entries in the hash table... */ -struct Itable +struct _Itable { - unsigned int size; - unsigned int numberOfEntries; - unsigned int tableSizeIndex; /* index into itable_hashTableSize array */ - Itable_IndexTypes indexType; - ItableEntry *entries; - ItableContext context; + unsigned int entriesSize; + unsigned int numberOfEntries; + unsigned int tableSizeIndex; /* index into itable_hashTableSize array */ + Itable_IndexTypes indexType; /* type of the index: string or pointer. */ + ItableEntry *entries; + ItableContext context; }; @@ -121,8 +120,7 @@ Itable *iupTableCreate(Itable_IndexTypes indexType) Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSizeIndex) { - Itable *it = (Itable *)malloc(sizeof(struct Itable)); - + Itable *it = (Itable *)malloc(sizeof(Itable)); iupASSERT(it!=NULL); if (!it) return 0; @@ -130,12 +128,12 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz if (initialSizeIndex > itable_maxTableSizeIndex) initialSizeIndex = itable_maxTableSizeIndex; - it->size = itable_hashTableSize[initialSizeIndex]; + it->entriesSize = itable_hashTableSize[initialSizeIndex]; it->tableSizeIndex = initialSizeIndex; it->numberOfEntries = 0; it->indexType = indexType; - it->entries = (ItableEntry *)malloc(it->size * sizeof(ItableEntry)); + it->entries = (ItableEntry *)malloc(it->entriesSize * sizeof(ItableEntry)); iupASSERT(it->entries!=NULL); if (!it->entries) { @@ -143,7 +141,7 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz return 0; } - memset(it->entries, 0, it->size * sizeof(ItableEntry)); + memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry)); it->context.entryIndex = (unsigned int)-1; it->context.itemIndex = (unsigned int)-1; @@ -158,16 +156,19 @@ void iupTableClear(Itable *it) if (!it) return; - for (i = 0; i < it->size; i++) + for (i = 0; i < it->entriesSize; i++) { ItableEntry *entry = &(it->entries[i]); if (entry->items) + { iTableFreeItemArray(it->indexType, entry->nextItemIndex, entry->items); + entry->items = NULL; + } } it->numberOfEntries = 0; - memset(it->entries, 0, it->size * sizeof(ItableEntry)); + memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry)); it->context.entryIndex = (unsigned int)-1; it->context.itemIndex = (unsigned int)-1; @@ -185,7 +186,10 @@ void iupTableDestroy(Itable *it) iupTableClear(it); if (it->entries) + { free(it->entries); + it->entries = NULL; + } free(it); } @@ -288,17 +292,23 @@ static void iTableRemoveItem(Itable *it, ItableEntry *entry, unsigned int itemIn item = &(entry->items[itemIndex]); if (it->indexType == IUPTABLE_STRINGINDEXED) + { free((void *)item->key.keyStr); + item->key.keyStr = NULL; + } if (item->itemType == IUPTABLE_STRING) + { free(item->value); + item->value = NULL; + } - /* order the remaining items */ + /* re-order the remaining items */ for (i = itemIndex; i < entry->nextItemIndex-1; i++) entry->items[i] = entry->items[i+1]; - /* clear the non used item */ - memset(entry->items + entry->nextItemIndex, 0, sizeof (ItableItem)); + /* clear the released item */ + memset(entry->items + entry->nextItemIndex-1, 0, sizeof (ItableItem)); entry->nextItemIndex--; it->numberOfEntries--; @@ -398,7 +408,7 @@ char *iupTableFirst(Itable *it) it->context.itemIndex = (unsigned int)-1; /* find the first used entry */ - for (entryIndex = 0; entryIndex < it->size; entryIndex++) + for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++) { if (it->entries[entryIndex].nextItemIndex > 0) { @@ -430,7 +440,7 @@ char *iupTableNext(Itable *it) else { /* find the next used entry */ - for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++) + for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++) { if (it->entries[entryIndex].nextItemIndex > 0) { @@ -471,7 +481,7 @@ char *iupTableRemoveCurr(Itable *it) else { /* find the next used entry */ - for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++) + for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++) { if (it->entries[entryIndex].nextItemIndex > 0) { @@ -498,6 +508,8 @@ static void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr { unsigned int i; + /* Used only in iupTableClear */ + iupASSERT(items!=NULL); if (!items) return; @@ -505,13 +517,19 @@ static void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr if (indexType == IUPTABLE_STRINGINDEXED) { for (i = 0; i < nextFreeIndex; i++) + { free((void *)(items[i].key.keyStr)); + items[i].key.keyStr = NULL; + } } for (i = 0; i < nextFreeIndex; i++) { if (items[i].itemType == IUPTABLE_STRING) + { free(items[i].value); + items[i].value = NULL; + } } free(items); @@ -545,7 +563,7 @@ static unsigned int iTableGetEntryIndex(Itable *it, const char *key, unsigned lo *keyIndex = (unsigned long)key; /* this could NOT be dependent from table size */ } - return (unsigned int)((*keyIndex) % it->size); + return (unsigned int)((*keyIndex) % it->entriesSize); } #ifdef DEBUGTABLE @@ -603,25 +621,24 @@ static unsigned int iTableFindItem(Itable *it, const char *key, ItableEntry **en static void iTableUpdateArraySize(ItableEntry *entry) { - if (entry->nextItemIndex >= entry->size) + if (entry->nextItemIndex >= entry->itemsSize) { /* we have to expand the item array */ unsigned int newSize; - newSize = entry->size + itable_itemGrow; + newSize = entry->itemsSize + itable_itemGrow; entry->items = (ItableItem *)realloc(entry->items, newSize * sizeof(ItableItem)); iupASSERT(entry->items!=NULL); if (!entry->items) return; - memset(entry->items + entry->size, 0, itable_itemGrow * sizeof(ItableItem)); + memset(entry->items + entry->itemsSize, 0, itable_itemGrow * sizeof(ItableItem)); - entry->size = newSize; + entry->itemsSize = newSize; } } - static void iTableAdd(Itable *it, ItableKey *key, void *value, Itable_Types itemType) { unsigned int entryIndex; @@ -657,7 +674,7 @@ static unsigned int iTableResize(Itable *it) /* check if we do not need to resize the hash table */ if (it->numberOfEntries == 0 || it->tableSizeIndex >= itable_maxTableSizeIndex || - it->size / it->numberOfEntries >= itable_resizeLimit) + it->entriesSize / it->numberOfEntries >= itable_resizeLimit) return 0; /* create a new hash table and copy the contents of @@ -666,7 +683,7 @@ static unsigned int iTableResize(Itable *it) newSizeIndex = it->tableSizeIndex + 1; newTable = iupTableCreateSized(it->indexType, newSizeIndex); - for (entryIndex = 0; entryIndex < it->size; entryIndex++) + for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++) { entry = &(it->entries[entryIndex]); @@ -680,12 +697,13 @@ static unsigned int iTableResize(Itable *it) } free(entry->items); + entry->items = NULL; } } free(it->entries); - it->size = newTable->size; + it->entriesSize = newTable->entriesSize; it->tableSizeIndex = newTable->tableSizeIndex; it->numberOfEntries = newTable->numberOfEntries; it->entries = newTable->entries; @@ -712,11 +730,11 @@ static void iTableShowStatistics(Itable *it) return; } - nofSlots = it->size; + nofSlots = it->entriesSize; nofKeys = it->numberOfEntries; optimalNofKeysPerSlot = (double)nofKeys / (double)nofSlots; - for (entryIndex = 0; entryIndex < it->size; entryIndex++) + for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++) { ItableEntry *entry = &(it->entries[entryIndex]); diff --git a/iup/src/iup_table.h b/iup/src/iup_table.h index 5222160..f2ff2c7 100755 --- a/iup/src/iup_table.h +++ b/iup/src/iup_table.h @@ -42,8 +42,8 @@ typedef enum _Itable_Types typedef void (*Ifunc)(void); -struct Itable; -typedef struct Itable Itable; +struct _Itable; +typedef struct _Itable Itable; /** Creates a hash table with an initial default size. @@ -63,7 +63,7 @@ Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz /** Destroys the Itable. * Calls \ref iupTableClear. * \ingroup table */ -void iupTableDestroy(Itable *n); +void iupTableDestroy(Itable *it); /** Removes all items in the table. * This function does also free the memory of strings contained in the table!!!! @@ -76,33 +76,33 @@ int iupTableCount(Itable *it); /** Store an element in the table. * \ingroup table */ -void iupTableSet(Itable *n, const char *key, void *value, Itable_Types itemType); +void iupTableSet(Itable *it, const char *key, void *value, Itable_Types itemType); /** Store a function pointer in the table. * Type is set to IUPTABLE_FUNCPOINTER. * \ingroup table */ -void iupTableSetFunc(Itable *n, const char *key, Ifunc func); +void iupTableSetFunc(Itable *it, const char *key, Ifunc func); /** Retrieves an element from the table. * Returns NULL if not found. * \ingroup table */ -void *iupTableGet(Itable *n, const char *key); +void *iupTableGet(Itable *it, const char *key); /** Retrieves a function pointer from the table. * If not a function or not found returns NULL. * value always contains the element pointer. * \ingroup table */ -Ifunc iupTableGetFunc(Itable *n, const char *key, void **value); +Ifunc iupTableGetFunc(Itable *it, const char *key, void **value); /** Retrieves an element from the table and its type. * \ingroup table */ -void *iupTableGetTyped(Itable *n, const char *key, Itable_Types *itemType); +void *iupTableGetTyped(Itable *it, const char *key, Itable_Types *itemType); /** Removes the entry at the specified key from the * hash table and frees the memory used by it if * it is a string... * \ingroup table */ -void iupTableRemove(Itable *n, const char *key); +void iupTableRemove(Itable *it, const char *key); /** Key iteration function. Returns a key. * To iterate over all keys call iupTableFirst at the first diff --git a/iup/src/iup_tabs.c b/iup/src/iup_tabs.c index 77b2cf5..2907371 100755 --- a/iup/src/iup_tabs.c +++ b/iup/src/iup_tabs.c @@ -307,6 +307,25 @@ static char* iTabsGetClientSizeAttrib(Ihandle* ih) return str; } +void iupTabsTestRemoveTab(Ihandle* ih, int pos) +{ + int cur_pos = iupdrvTabsGetCurrentTab(ih); + if (cur_pos == pos) + { + if (cur_pos == 0) + { + Ihandle* child = IupGetChild(ih, 1); + if (!child) /* not found child, means only one child, do nothing */ + return; + + cur_pos = 1; + } + else + cur_pos--; + + iupdrvTabsSetCurrentTab(ih, cur_pos); + } +} /* ------------------------------------------------------------------------- */ /* TABS - Methods */ diff --git a/iup/src/iup_tabs.h b/iup/src/iup_tabs.h index 7f5df2e..fd0edf4 100755 --- a/iup/src/iup_tabs.h +++ b/iup/src/iup_tabs.h @@ -16,6 +16,7 @@ char* iupTabsGetTabOrientationAttrib(Ihandle* ih); char* iupTabsGetTabTypeAttrib(Ihandle* ih); char* iupTabsAttribGetStrId(Ihandle* ih, const char* name, int pos); char* iupTabsGetPaddingAttrib(Ihandle* ih); +void iupTabsTestRemoveTab(Ihandle* ih, int pos); int iupdrvTabsExtraDecor(Ihandle* ih); int iupdrvTabsGetLineCountAttrib(Ihandle* ih); diff --git a/iup/src/iup_tree.c b/iup/src/iup_tree.c index c06e573..b5344f5 100755 --- a/iup/src/iup_tree.c +++ b/iup/src/iup_tree.c @@ -200,6 +200,240 @@ void iupTreeUpdateImages(Ihandle *ih) iupClassObjectSetAttribute(ih, "IMAGEBRANCHEXPANDED", value, &inherit); } +void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id) +{ + /* if last selected item is a branch, then select its children */ + if (iupStrEqual(IupTreeGetAttribute(ih, "KIND", *last_id), "BRANCH") && + iupStrEqual(IupTreeGetAttribute(ih, "STATE", *last_id), "COLLAPSED")) + { + int childcount = IupTreeGetInt(ih, "CHILDCOUNT", *last_id); + if (childcount > 0) + { + int start = *last_id + 1; + int end = *last_id + childcount; + IupSetfAttribute(ih, "MARK", "%d-%d", start, end); + *last_id = *last_id + childcount; + } + } +} + +int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata) +{ + int i; + for (i = 0; i < ih->data->node_count; i++) + { + if (!func(ih, ih->data->node_cache[i].node_handle, i, userdata)) + return 0; + } + + return 1; +} + +int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle) +{ + /* Unoptimized version: + int i; + for (i = 0; i < ih->data->node_count; i++) + { + if (ih->data->node_cache[i].node_handle == node_handle) + return i; + } + */ + InodeData *node_cache = ih->data->node_cache; + while(node_cache->node_handle != node_handle && + node_cache->node_handle != NULL) /* the cache always have zeros at the end */ + node_cache++; + + if (node_cache->node_handle != NULL) + return node_cache - ih->data->node_cache; + else + return -1; +} + +static int iTreeFindUserDataId(Ihandle* ih, void* userdata) +{ + /* Unoptimized version: + int i; + for (i = 0; i < ih->data->node_count; i++) + { + if (ih->data->node_cache[i].node_handle == node_handle) + return i; + } + */ + InodeData *node_cache = ih->data->node_cache; + while(node_cache->userdata != userdata && + node_cache->node_handle != NULL) /* the cache always have zeros at the end */ + node_cache++; + + if (node_cache->node_handle != NULL) + return node_cache - ih->data->node_cache; + else + return -1; +} + +static int iTreeGetIdFromString(const char* name_id) +{ + if (name_id && name_id[0]) + { + int id = -1; + iupStrToInt(name_id, &id); + return id; + } + else + return -2; +} + +InodeHandle* iupTreeGetNode(Ihandle* ih, int id) +{ + if (id >= 0 && id < ih->data->node_count) + return ih->data->node_cache[id].node_handle; + else if (id == -2) + return iupdrvTreeGetFocusNode(ih); + else + return NULL; +} + +InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id) +{ + return iupTreeGetNode(ih, iTreeGetIdFromString(name_id)); +} + +static void iTreeAddToCache(Ihandle* ih, int id, InodeHandle* node_handle) +{ + iupASSERT(id >= 0 && id < ih->data->node_count); + if (id < 0 || id >= ih->data->node_count) + return; + + /* node_count here already contains the final count */ + + if (id == ih->data->node_count-1) + ih->data->node_cache[id].node_handle = node_handle; + else + { + /* open space for the new id */ + int remain_count = ih->data->node_count-id; + memmove(ih->data->node_cache+id+1, ih->data->node_cache+id, remain_count*sizeof(InodeData)); + ih->data->node_cache[id].node_handle = node_handle; + } + + ih->data->node_cache[id].userdata = NULL; +} + +static void iTreeIncCacheMem(Ihandle* ih) +{ + /* node_count here already contains the final count */ + + if (ih->data->node_count+10 > ih->data->node_cache_max) + { + int old_node_cache_max = ih->data->node_cache_max; + ih->data->node_cache_max += 20; + ih->data->node_cache = realloc(ih->data->node_cache, ih->data->node_cache_max*sizeof(InodeData)); + memset(ih->data->node_cache+old_node_cache_max, 0, 20*sizeof(InodeData)); + } +} + +void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle) +{ + int new_id = 0; + + ih->data->node_count++; + + /* node_count here already contains the final count */ + iTreeIncCacheMem(ih); + + if (prevNode) + { + if (add || kindPrev == ITREE_LEAF) + { + /* ADD implies always that id=prev_id+1 */ + /* INSERT after a leaf implies always that new_id=prev_id+1 */ + int prev_id = iupTreeFindNodeId(ih, prevNode); + new_id = prev_id+1; + } + else + { + /* INSERT after a branch implies always that new_id=prev_id+1+child_count */ + int prev_id = iupTreeFindNodeId(ih, prevNode); + int child_count = iupdrvTreeTotalChildCount(ih, prevNode); + new_id = prev_id+1+child_count; + } + } + + iTreeAddToCache(ih, new_id, node_handle); + iupAttribSetInt(ih, "LASTADDNODE", new_id); +} + +void iupTreeDelFromCache(Ihandle* ih, int id, int count) +{ + int remain_count; + + /* id can be the last node, actually==node_count becase node_count is already updated */ + iupASSERT(id >= 0 && id <= ih->data->node_count); + if (id < 0 || id > ih->data->node_count) + return; + + /* node_count here already contains the final count */ + + /* remove id+count */ + remain_count = ih->data->node_count-id; + memmove(ih->data->node_cache+id, ih->data->node_cache+id+count, remain_count*sizeof(InodeData)); + + /* clear the remaining space */ + memset(ih->data->node_cache+ih->data->node_count, 0, count*sizeof(InodeData)); +} + +void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy) +{ + int remain_count; + + iupASSERT(id_src >= 0 && id_src < ih->data->node_count); + if (id_src < 0 || id_src >= ih->data->node_count) + return; + + iupASSERT(id_dst >= 0 && id_dst < ih->data->node_count); + if (id_dst < 0 || id_dst >= ih->data->node_count) + return; + + iupASSERT(id_dst < id_src || id_dst > id_src+count); + if (id_dst >= id_src && id_dst <= id_src+count) + return; + + /* id_dst here points to the final position for a copy operation */ + + /* node_count here contains the final count for a copy operation */ + iTreeIncCacheMem(ih); + + /* add space for new nodes */ + remain_count = ih->data->node_count - (id_dst + count); + memmove(ih->data->node_cache+id_dst+count, ih->data->node_cache+id_dst, remain_count*sizeof(InodeData)); + + /* compensate because we add space for new nodes */ + if (id_src > id_dst) + id_src += count; + + if (is_copy) + { + /* during a copy, the userdata is not reused, so clear it */ + memset(ih->data->node_cache+id_dst, 0, count*sizeof(InodeData)); + } + else /* move = copy + delete */ + { + /* copy userdata from src to dst */ + memcpy(ih->data->node_cache+id_dst, ih->data->node_cache+id_src, count*sizeof(InodeData)); + + /* remove the src */ + remain_count = ih->data->node_count - (id_src + count); + memmove(ih->data->node_cache+id_src, ih->data->node_cache+id_src+count, remain_count*sizeof(InodeData)); + + /* clear the remaining space */ + memset(ih->data->node_cache+ih->data->node_count-count, 0, count*sizeof(InodeData)); + } +} + + +/*************************************************************************/ + + char* iupTreeGetSpacingAttrib(Ihandle* ih) { char *str = iupStrGetMemory(50); @@ -221,8 +455,10 @@ static int iTreeSetMarkModeAttrib(Ihandle* ih, const char* value) ih->data->mark_mode = ITREE_MARK_MULTIPLE; else ih->data->mark_mode = ITREE_MARK_SINGLE; + if (ih->handle) - iupdrvTreeUpdateMarkMode(ih); + iupdrvTreeUpdateMarkMode(ih); /* for this to work, must update during map */ + return 0; } @@ -290,7 +526,7 @@ static int iTreeSetShowDragDropAttrib(Ihandle* ih, const char* value) static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 1); return 0; @@ -298,7 +534,7 @@ static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* v static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 1); return 0; @@ -306,7 +542,7 @@ static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char* static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 0); return 0; @@ -314,7 +550,7 @@ static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char static int iTreeSetInsertBranchAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 0); return 0; @@ -338,6 +574,74 @@ static int iTreeSetAddExpandedAttrib(Ihandle* ih, const char* value) return 0; } +static char* iTreeGetCountAttrib(Ihandle* ih) +{ + char* str = iupStrGetMemory(10); + sprintf(str, "%d", ih->data->node_count); + return str; +} + +static char* iTreeGetTotalChildCountAttrib(Ihandle* ih, const char* name_id) +{ + char* str; + InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id); + if (!node_handle) + return NULL; + + str = iupStrGetMemory(10); + sprintf(str, "%d", iupdrvTreeTotalChildCount(ih, node_handle)); + return str; +} + + +static char* iTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id) +{ + int id; + char* str = (char*)(name_id+1); /* skip ':' */ + void* userdata = NULL; + if (sscanf(str, "%p", &userdata)!=1) + return NULL; + id = iTreeFindUserDataId(ih, userdata); + if (id == -1) + return NULL; + str = iupStrGetMemory(16); + sprintf(str, "%d", id); + return str; +} + +static char* iTreeGetUserDataAttrib(Ihandle* ih, const char* name_id) +{ + int id = iTreeGetIdFromString(name_id); + if (id >= 0 && id < ih->data->node_count) + return ih->data->node_cache[id].userdata; + else if (id == -2) + { + InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih); + id = iupTreeFindNodeId(ih, node_handle); + if (id >= 0 && id < ih->data->node_count) + return ih->data->node_cache[id].userdata; + } + return NULL; +} + +static int iTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value) +{ + int id = iTreeGetIdFromString(name_id); + if (id >= 0 && id < ih->data->node_count) + ih->data->node_cache[id].userdata = (void*)value; + else if (id == -2) + { + InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih); + id = iupTreeFindNodeId(ih, node_handle); + if (id >= 0 && id < ih->data->node_count) + ih->data->node_cache[id].userdata = (void*)value; + } + return 0; +} + + +/*************************************************************************/ + static int iTreeCreateMethod(Ihandle* ih, void **params) { (void)params; @@ -348,10 +652,20 @@ static int iTreeCreateMethod(Ihandle* ih, void **params) IupSetAttribute(ih, "EXPAND", "YES"); ih->data->add_expanded = 1; + ih->data->node_cache_max = 20; + ih->data->node_cache = calloc(ih->data->node_cache_max, sizeof(InodeData)); return IUP_NOERROR; } +static void iTreeDestroyMethod(Ihandle* ih) +{ + if (ih->data->node_cache) + free(ih->data->node_cache); +} + +/*************************************************************************/ + Ihandle* IupTree(void) { return IupCreate("tree"); @@ -371,15 +685,15 @@ Iclass* iupTreeGetClass(void) /* Class functions */ ic->Create = iTreeCreateMethod; ic->LayoutUpdate = iupdrvBaseLayoutUpdateMethod; - ic->UnMap = iupdrvBaseUnMapMethod; + ic->Destroy = iTreeDestroyMethod; /* Callbacks */ iupClassRegisterCallback(ic, "SELECTION_CB", "ii"); iupClassRegisterCallback(ic, "MULTISELECTION_CB", "Ii"); + iupClassRegisterCallback(ic, "MULTIUNSELECTION_CB", "Ii"); iupClassRegisterCallback(ic, "BRANCHOPEN_CB", "i"); iupClassRegisterCallback(ic, "BRANCHCLOSE_CB", "i"); iupClassRegisterCallback(ic, "EXECUTELEAF_CB", "i"); - iupClassRegisterCallback(ic, "RENAMENODE_CB", "is"); iupClassRegisterCallback(ic, "SHOWRENAME_CB", "i"); iupClassRegisterCallback(ic, "RENAME_CB", "is"); iupClassRegisterCallback(ic, "DRAGDROP_CB", "iiii"); @@ -392,9 +706,12 @@ Iclass* iupTreeGetClass(void) iupBaseRegisterVisualAttrib(ic); /* IupTree Attributes - GENERAL */ - iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "COUNT", iTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "LASTADDNODE", NULL, NULL, IUPAF_SAMEASSYSTEM, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "ADDROOT", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); /* IupTree Attributes - MARKS */ iupClassRegisterAttribute(ic, "CTRL", NULL, iTreeSetCtrlAttrib, NULL, NULL, IUPAF_NOT_MAPPED); @@ -406,6 +723,11 @@ Iclass* iupTreeGetClass(void) iupClassRegisterAttributeId(ic, "ADDBRANCH", NULL, iTreeSetAddBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "INSERTLEAF", NULL, iTreeSetInsertLeafAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "INSERTBRANCH", NULL, iTreeSetInsertBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); + + /* IupTree Attributes - NODES */ + iupClassRegisterAttributeId(ic, "TOTALCHILDCOUNT", iTreeGetTotalChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); + iupClassRegisterAttributeId(ic, "FINDUSERDATA", iTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); + iupClassRegisterAttributeId(ic, "USERDATA", iTreeGetUserDataAttrib, iTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT); /* Default node images */ iTreeInitializeImages(); @@ -415,18 +737,23 @@ Iclass* iupTreeGetClass(void) return ic; } - /********************************************************************************************/ - -void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, char* v) +void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, const char* v) { char* attr = iupStrGetMemory(50); sprintf(attr, "%s%d", a, id); IupSetAttribute(ih, attr, v); } -void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, char* v) +void IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named) +{ + char* attr = iupStrGetMemory(50); + sprintf(attr, "%s%d", a, id); + IupSetAttributeHandle(ih, attr, ih_named); +} + +void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, const char* v) { char* attr = iupStrGetMemory(50); sprintf(attr, "%s%d", a, id); @@ -454,7 +781,7 @@ float IupTreeGetFloat(Ihandle* ih, const char* a, int id) return IupGetFloat(ih, attr); } -void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...) +void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, const char* f, ...) { static char v[SHRT_MAX]; char* attr = iupStrGetMemory(50); @@ -466,34 +793,40 @@ void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...) IupStoreAttribute(ih, attr, v); } - /************************************************************************************/ - int IupTreeSetUserId(Ihandle* ih, int id, void* userdata) { - char attr[30]; - sprintf(attr,"USERDATA%d",id); - IupSetAttribute(ih, attr, userdata); - return IupGetAttribute(ih, attr)? 1: 0; + iupASSERT(iupObjectCheck(ih)); + if (!iupObjectCheck(ih)) + return 0; + + if (id >= 0 && id < ih->data->node_count) + { + ih->data->node_cache[id].userdata = userdata; + return 1; + } + + return 0; } int IupTreeGetId(Ihandle* ih, void *userdata) { - int id = -1; - char* value; - char attr[30]; - sprintf(attr,"FINDUSERDATA:%p",userdata); - value = IupGetAttribute(ih, attr); - if (!value) return -1; + iupASSERT(iupObjectCheck(ih)); + if (!iupObjectCheck(ih)) + return -1; - iupStrToInt(value, &id); - return id; + return iTreeFindUserDataId(ih, userdata); } void* IupTreeGetUserId(Ihandle* ih, int id) { - char attr[30]; - sprintf(attr,"USERDATA%d",id); - return IupGetAttribute(ih, attr); + iupASSERT(iupObjectCheck(ih)); + if (!iupObjectCheck(ih)) + return NULL; + + if (id >= 0 && id < ih->data->node_count) + return ih->data->node_cache[id].userdata; + + return NULL; } diff --git a/iup/src/iup_tree.h b/iup/src/iup_tree.h index f96a698..44acc83 100755 --- a/iup/src/iup_tree.h +++ b/iup/src/iup_tree.h @@ -29,6 +29,36 @@ void iupdrvTreeUpdateMarkMode(Ihandle *ih); char* iupTreeGetSpacingAttrib(Ihandle* ih); +#if defined(GTK_MAJOR_VERSION) +typedef void InodeHandle; +#elif defined(XmVERSION) +typedef struct _WidgetRec InodeHandle; +#elif defined(WINVER) +typedef struct _TREEITEM InodeHandle; +#else +typedef struct _InodeData InodeHandle; +#endif + +typedef struct _InodeData +{ + InodeHandle* node_handle; + void* userdata; +} InodeData; + +typedef int (*iupTreeNodeFunc)(Ihandle* ih, InodeHandle* node_handle, int id, void* userdata); +int iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata); +InodeHandle* iupTreeGetNode(Ihandle* ih, int id); +InodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id); +int iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle); + +InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih); +int iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle); +void iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id); + +void iupTreeDelFromCache(Ihandle* ih, int id, int count); +void iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle); +void iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy); + /* Structure of the tree */ struct _IcontrolData { @@ -36,6 +66,7 @@ struct _IcontrolData add_expanded, show_dragdrop, show_rename, + stamp, /* GTK only */ spacing; void* def_image_leaf; /* Default image leaf */ @@ -44,9 +75,10 @@ struct _IcontrolData void* def_image_leaf_mask; /* Motif Only */ void* def_image_collapsed_mask; - void* def_image_expanded_mask; + void* def_image_expanded_mask; - int id_control; /* auxiliary variable for computing or finding the id of a node */ + InodeData *node_cache; + int node_cache_max, node_count; }; diff --git a/iup/src/iup_vbox.c b/iup/src/iup_vbox.c index f71aa51..23e8e3a 100755 --- a/iup/src/iup_vbox.c +++ b/iup/src/iup_vbox.c @@ -215,6 +215,13 @@ static void iVboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink) else { int empty = (child->expand & IUP_EXPAND_H1)? empty_h1: ((child->expand & IUP_EXPAND_H0)? empty_h0: 0); + char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH"); + if (weigth_str) + { + float weigth; + if (iupStrToFloat(weigth_str, &weigth)) + empty = iupROUND(empty * weigth); + } iupBaseSetCurrentSize(child, client_width, child->naturalheight+empty, shrink); } diff --git a/iup/src/iup_zbox.c b/iup/src/iup_zbox.c index 3f79892..dd4a0e4 100755 --- a/iup/src/iup_zbox.c +++ b/iup/src/iup_zbox.c @@ -210,7 +210,7 @@ static int iZboxSetVisibleAttrib(Ihandle* ih, const char* value) { if (iupObjectCheck(ih->data->value_handle)) IupSetAttribute(ih->data->value_handle, "VISIBLE", (char*)value); - return 0; + return 1; /* must be 1 to mark when set at the element */ } static void iZboxComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand) @@ -368,8 +368,8 @@ Iclass* iupZboxGetClass(void) iupClassRegisterAttribute(ic, "VALUEPOS", iZboxGetValuePosAttrib, iZboxSetValuePosAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "VALUE_HANDLE", NULL, iZboxSetValueHandleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING); - /* Intercept VISIBLE since ZBOX works showing and hidding its children */ - iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + /* Intercept VISIBLE since ZBOX works by showing and hidding its children */ + iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED); return ic; } diff --git a/iup/src/make_uname b/iup/src/make_uname index 7fec9f8..6542234 100755 --- a/iup/src/make_uname +++ b/iup/src/make_uname @@ -1,4 +1,4 @@ #This builds all the libraries of the folder for 1 uname -tecmake $1 $2 $3 $4 $5 $6 $7 +tecmake USE_MOTIF=Yes $1 $2 $3 $4 $5 $6 $7 tecmake USE_GTK=Yes $1 $2 $3 $4 $5 $6 $7 diff --git a/iup/src/mot/iupmot_button.c b/iup/src/mot/iupmot_button.c index 2d93588..f6e383f 100755 --- a/iup/src/mot/iupmot_button.c +++ b/iup/src/mot/iupmot_button.c @@ -112,8 +112,10 @@ static int motButtonSetPaddingAttrib(Ihandle* ih, const char* value) { XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding, XmNmarginWidth, ih->data->horiz_padding, NULL); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int motButtonSetBgColorAttrib(Ihandle* ih, const char* value) @@ -189,43 +191,43 @@ static int motButtonMapMethod(Ihandle* ih) if (value) { ih->data->type = IUP_BUTTON_IMAGE; - iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); + iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP); } else { ih->data->type = IUP_BUTTON_TEXT; - iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); + iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); } /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Label */ - iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */ - iupmotSetArg(args, num_args, XmNmarginLeft, 0); - iupmotSetArg(args, num_args, XmNmarginBottom, 0); - iupmotSetArg(args, num_args, XmNmarginRight, 0); + iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */ + iupMOT_SETARG(args, num_args, XmNmarginLeft, 0); + iupMOT_SETARG(args, num_args, XmNmarginBottom, 0); + iupMOT_SETARG(args, num_args, XmNmarginRight, 0); /* PushButton */ - iupmotSetArg(args, num_args, XmNfillOnArm, False); + iupMOT_SETARG(args, num_args, XmNfillOnArm, False); /* Primitive */ if (iupAttribGetBoolean(ih, "FOCUSONCLICK")) { if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); } else - iupmotSetArg(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); ih->handle = XtCreateManagedWidget( iupDialogGetChildIdStr(ih), /* child identifier */ diff --git a/iup/src/mot/iupmot_canvas.c b/iup/src/mot/iupmot_canvas.c index 7777cf3..299bbcd 100755 --- a/iup/src/mot/iupmot_canvas.c +++ b/iup/src/mot/iupmot_canvas.c @@ -434,6 +434,10 @@ static void motCanvasLayoutUpdateMethod(Ihandle *ih) XtVaGetValues(sb_win, XmNborderWidth, &border, NULL); + /* avoid abort in X */ + if (ih->currentwidth <= 2*border) ih->currentwidth = 2*border+1; + if (ih->currentheight <= 2*border) ih->currentheight = 2*border+1; + XtVaSetValues(sb_win, XmNx, (XtArgVal)ih->x, XmNy, (XtArgVal)ih->y, @@ -458,19 +462,19 @@ static int motCanvasMapMethod(Ihandle* ih) /* Create the scrolled window */ /******************************/ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED); - iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE); - iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */ - iupmotSetArg(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED); + iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE); + iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */ + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); if (iupAttribGetBoolean(ih, "BORDER")) { - iupmotSetArg(args, num_args, XmNborderWidth, 1); - iupmotSetArg(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0")); + iupMOT_SETARG(args, num_args, XmNborderWidth, 1); + iupMOT_SETARG(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0")); } else - iupmotSetArg(args, num_args, XmNborderWidth, 0); + iupMOT_SETARG(args, num_args, XmNborderWidth, 0); sb_win = XtCreateManagedWidget( iupDialogGetChildIdStr(ih), /* child identifier */ @@ -488,36 +492,36 @@ static int motCanvasMapMethod(Ihandle* ih) /****************************/ num_args = 0; - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */ - iupmotSetArg(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */ + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */ if (ih->iclass->is_interactive) { - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */ + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */ if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); } else { - iupmotSetArg(args, num_args, XmNnavigationType, XmNONE); - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmNONE); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); } - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ visual = IupGetAttribute(ih, "VISUAL"); /* defined by the OpenGL Canvas or NULL */ if (visual) { Colormap colormap = (Colormap)iupAttribGet(ih, "COLORMAP"); if (colormap) - iupmotSetArg(args, num_args, XmNcolormap,colormap); + iupMOT_SETARG(args, num_args, XmNcolormap,colormap); iupmotDialogSetVisual(ih, visual); } diff --git a/iup/src/mot/iupmot_common.c b/iup/src/mot/iupmot_common.c index 7b3f8b7..286e075 100755 --- a/iup/src/mot/iupmot_common.c +++ b/iup/src/mot/iupmot_common.c @@ -167,6 +167,10 @@ void iupdrvBaseLayoutUpdateMethod(Ihandle *ih) Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT"); if (!widget) widget = ih->handle; + /* avoid abort in X */ + if (ih->currentwidth == 0) ih->currentwidth = 1; + if (ih->currentheight == 0) ih->currentheight = 1; + XtVaSetValues(widget, XmNx, (XtArgVal)ih->x, XmNy, (XtArgVal)ih->y, @@ -184,7 +188,7 @@ void iupdrvBaseUnMapMethod(Ihandle* ih) XtDestroyWidget(widget); /* To match the call to XtCreateManagedWidget */ } -void iupdrvDisplayUpdate(Ihandle *ih) +void iupdrvPostRedraw(Ihandle *ih) { XExposeEvent evt; Dimension w, h; @@ -209,12 +213,12 @@ void iupdrvDisplayUpdate(Ihandle *ih) XSendEvent(iupmot_display, XtWindow(ih->handle), False, ExposureMask, (XEvent*)&evt); } -void iupdrvDisplayRedraw(Ihandle *ih) +void iupdrvRedrawNow(Ihandle *ih) { Widget w; /* POST a Redraw */ - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); /* if this element has an inner native parent (like IupTabs), then redraw that native parent if different from the element. */ @@ -223,7 +227,7 @@ void iupdrvDisplayRedraw(Ihandle *ih) { Widget handle = ih->handle; ih->handle = w; - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); ih->handle = handle; } @@ -276,10 +280,11 @@ int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value) { if (iupdrvIsVisible(ih)) { + Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT"); if (iupStrEqualNoCase(value, "TOP")) - XRaiseWindow(iupmot_display, XtWindow(ih->handle)); + XRaiseWindow(iupmot_display, XtWindow(widget)); else - XLowerWindow(iupmot_display, XtWindow(ih->handle)); + XLowerWindow(iupmot_display, XtWindow(widget)); } return 0; @@ -455,9 +460,11 @@ static Cursor motGetCursor(Ihandle* ih, const char* name) { "RESIZE_N", XC_top_side}, { "RESIZE_S", XC_bottom_side}, { "RESIZE_NS", XC_sb_v_double_arrow}, + { "SPLITTER_HORIZ", XC_sb_v_double_arrow}, { "RESIZE_W", XC_left_side}, { "RESIZE_E", XC_right_side}, { "RESIZE_WE", XC_sb_h_double_arrow}, + { "SPLITTER_VERT", XC_sb_h_double_arrow}, { "RESIZE_NE", XC_top_right_corner}, { "RESIZE_SE", XC_bottom_right_corner}, { "RESIZE_NW", XC_top_left_corner}, diff --git a/iup/src/mot/iupmot_dialog.c b/iup/src/mot/iupmot_dialog.c index 4eeb834..7a27d74 100755 --- a/iup/src/mot/iupmot_dialog.c +++ b/iup/src/mot/iupmot_dialog.c @@ -134,12 +134,13 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu static int native_border = 0; static int native_caption = 0; - int has_caption = iupAttribGetBoolean(ih, "MAXBOX") || - iupAttribGetBoolean(ih, "MINBOX") || - iupAttribGetBoolean(ih, "MENUBOX") || - IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ + int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */ + iupAttribGetBoolean(ih, "MAXBOX") || + iupAttribGetBoolean(ih, "MINBOX") || + iupAttribGetBoolean(ih, "MENUBOX") || + IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ - int has_border = has_caption || + int has_border = has_titlebar || iupAttribGetBoolean(ih, "RESIZE") || iupAttribGetBoolean(ih, "BORDER"); @@ -155,7 +156,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu *border = win_border; *caption = 0; - if (has_caption) + if (has_titlebar) *caption = win_caption; if (!native_border && *border) @@ -181,7 +182,7 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu } *caption = 0; - if (has_caption) + if (has_titlebar) { if (native_caption) *caption = native_caption; @@ -853,6 +854,7 @@ static int motDialogMapMethod(Ihandle* ih) InativeHandle* parent; int mwm_decor = 0; int num_args = 0; + int has_titlebar = 0; Arg args[20]; if (iupAttribGetBoolean(ih, "DIALOGFRAME")) @@ -867,32 +869,46 @@ static int motDialogMapMethod(Ihandle* ih) /****************************/ if (iupAttribGet(ih, "TITLE")) - mwm_decor |= MWM_DECOR_TITLE; + has_titlebar = 1; if (iupAttribGetBoolean(ih, "MENUBOX")) - mwm_decor |= MWM_DECOR_MENU; + { + mwm_decor |= MWM_DECOR_MENU; + has_titlebar = 1; + } if (iupAttribGetBoolean(ih, "MINBOX")) - mwm_decor |= MWM_DECOR_MINIMIZE; + { + mwm_decor |= MWM_DECOR_MINIMIZE; + has_titlebar = 1; + } if (iupAttribGetBoolean(ih, "MAXBOX")) - mwm_decor |= MWM_DECOR_MAXIMIZE; + { + mwm_decor |= MWM_DECOR_MAXIMIZE; + has_titlebar = 1; + } if (iupAttribGetBoolean(ih, "RESIZE")) - mwm_decor |= MWM_DECOR_RESIZEH; - if (iupAttribGetBoolean(ih, "BORDER")) - mwm_decor |= MWM_DECOR_BORDER; - - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */ - iupmotSetArg(args, num_args, XmNdeleteResponse, XmDO_NOTHING); - iupmotSetArg(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */ - iupmotSetArg(args, num_args, XmNtitle, ""); - iupmotSetArg(args, num_args, XmNvisual, iupmot_visual); + { + mwm_decor |= MWM_DECOR_RESIZEH; + mwm_decor |= MWM_DECOR_BORDER; /* has_border */ + } + if (has_titlebar) + mwm_decor |= MWM_DECOR_TITLE; + if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar) + mwm_decor |= MWM_DECOR_BORDER; /* has_border */ + + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */ + iupMOT_SETARG(args, num_args, XmNdeleteResponse, XmDO_NOTHING); + iupMOT_SETARG(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */ + iupMOT_SETARG(args, num_args, XmNtitle, ""); + iupMOT_SETARG(args, num_args, XmNvisual, iupmot_visual); if (iupmotColorMap()) - iupmotSetArg(args, num_args, XmNcolormap, iupmotColorMap()); + iupMOT_SETARG(args, num_args, XmNcolormap, iupmotColorMap()); if (mwm_decor != 0x7E) - iupmotSetArg(args, num_args, XmNmwmDecorations, mwm_decor); + iupMOT_SETARG(args, num_args, XmNmwmDecorations, mwm_decor); if (iupAttribGetBoolean(ih, "SAVEUNDER")) - iupmotSetArg(args, num_args, XmNsaveUnder, True); + iupMOT_SETARG(args, num_args, XmNsaveUnder, True); parent = iupDialogGetNativeParent(ih); if (parent) diff --git a/iup/src/mot/iupmot_draw.c b/iup/src/mot/iupmot_draw.c new file mode 100644 index 0000000..83a6d09 --- /dev/null +++ b/iup/src/mot/iupmot_draw.c @@ -0,0 +1,188 @@ +/** \file + * \brief Draw Functions + * + * See Copyright Notice in "iup.h" + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <memory.h> + +#include <Xm/Xm.h> +#include <X11/Xlib.h> + +#include "iup.h" + +#include "iup_attrib.h" +#include "iup_class.h" +#include "iup_str.h" +#include "iup_object.h" +#include "iup_image.h" +#include "iup_draw.h" + +#include "iupmot_drv.h" +#include "iupmot_color.h" + + +struct _IdrawCanvas{ + Ihandle* ih; + int w, h; + + Window wnd; + Pixmap pixmap; + GC pixmap_gc, gc; +}; + +static void motDrawGetGeometry(Display *dpy, Drawable wnd, int *_w, int *_h, int *_d) +{ + Window root; + int x, y; + unsigned int w, h, b, d; + XGetGeometry(dpy, wnd, &root, &x, &y, &w, &h, &b, &d); + *_w = w; + *_h = h; + *_d = d; +} + +IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih) +{ + IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas)); + int depth; + + dc->wnd = XtWindow(ih->handle); + dc->gc = XCreateGC(iupmot_display, dc->wnd, 0, NULL); + + motDrawGetGeometry(iupmot_display, dc->wnd, &dc->w, &dc->h, &depth); + + dc->pixmap = XCreatePixmap(iupmot_display, dc->wnd, dc->w, dc->h, depth); + dc->pixmap_gc = XCreateGC(iupmot_display, dc->pixmap, 0, NULL); + + return dc; +} + +void iupDrawKillCanvas(IdrawCanvas* dc) +{ + XFreeGC(iupmot_display, dc->pixmap_gc); + XFreePixmap(iupmot_display, dc->pixmap); + XFreeGC(iupmot_display, dc->gc); + + free(dc); +} + +void iupDrawUpdateSize(IdrawCanvas* dc) +{ + int w, h, depth; + motDrawGetGeometry(iupmot_display, dc->wnd, &w, &h, &depth); + + if (w != dc->w || h != dc->h) + { + XFreeGC(iupmot_display, dc->pixmap_gc); + XFreePixmap(iupmot_display, dc->pixmap); + + dc->pixmap = XCreatePixmap(iupmot_display, dc->wnd, dc->w, dc->h, depth); + dc->pixmap_gc = XCreateGC(iupmot_display, dc->pixmap, 0, NULL); + } +} + +void iupDrawFlush(IdrawCanvas* dc) +{ + XCopyArea(iupmot_display, dc->pixmap, dc->wnd, dc->gc, 0, 0, dc->w, dc->h, 0, 0); +} + +void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h) +{ + if (w) *w = dc->w; + if (h) *h = dc->h; +} + +void iupDrawParentBackground(IdrawCanvas* dc) +{ + unsigned char r=0, g=0, b=0; + char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih); + iupStrToRGB(color, &r, &g, &b); + iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1); +} + +void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b)); + if (filled) + XFillRectangle(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1); + else + XDrawRectangle(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1); +} + +void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b) +{ + XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b)); + XDrawLine(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2, y2); +} + +void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b)); + if (filled) + { + XSetArcMode(iupmot_display, dc->pixmap_gc, ArcPieSlice); + XFillArc(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1, iupROUND(a1*64), iupROUND((a2 - a1)*64)); + } + else + XDrawArc(iupmot_display, dc->pixmap, dc->pixmap_gc, x1, y1, x2-x1+1, y2-y1+1, iupROUND(a1*64), iupROUND((a2 - a1)*64)); +} + +void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + int i; + XPoint* pnt = (XPoint*)malloc(count*sizeof(XPoint)); /* XPoint uses short for coordinates */ + + for (i = 0; i < count; i++) + { + pnt[i].x = (short)points[2*i]; + pnt[i].y = (short)points[2*i+1]; + } + + XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b)); + if (filled) + XFillPolygon(iupmot_display, dc->pixmap, dc->pixmap_gc, pnt, count, Complex, CoordModeOrigin); + else + XDrawLines(iupmot_display, dc->pixmap, dc->pixmap_gc, pnt, count, CoordModeOrigin); + + free(pnt); +} + +void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2) +{ + XRectangle rect; + rect.x = (short)x1; + rect.y = (short)y1; + rect.width = (unsigned short)(x2-x1+1); + rect.height = (unsigned short)(y2-y1+1); + XSetClipRectangles(iupmot_display, dc->pixmap_gc, 0, 0, &rect, 1, Unsorted); +} + +void iupDrawResetClip(IdrawCanvas* dc) +{ + XSetClipMask(iupmot_display, dc->pixmap_gc, None); +} + +void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b) +{ + XFontStruct* xfont = (XFontStruct*)IupGetAttribute(dc->ih, "XFONTSTRUCT"); + XSetForeground(iupmot_display, dc->pixmap_gc, iupmotColorGetPixel(r, g, b)); + XSetFont(iupmot_display, dc->pixmap_gc, xfont->fid); + XDrawString(iupmot_display, dc->pixmap, dc->pixmap_gc, x, y-xfont->ascent, text, len); +} + +void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y) +{ + int img_w, img_h, bpp; + Pixmap pixmap = (Pixmap)iupImageGetImage(name, dc->ih, make_inactive); + if (!pixmap) + return; + + /* must use this info, since image can be a driver image loaded from resources */ + iupdrvImageGetInfo((void*)pixmap, &img_w, &img_h, &bpp); + + XCopyArea(iupmot_display, pixmap, dc->pixmap, dc->pixmap_gc, 0, 0, img_w, img_h, x, y); +} diff --git a/iup/src/mot/iupmot_drv.h b/iup/src/mot/iupmot_drv.h index 8a536ef..424ae9f 100755 --- a/iup/src/mot/iupmot_drv.h +++ b/iup/src/mot/iupmot_drv.h @@ -65,7 +65,7 @@ void iupmotGetWindowSize(Ihandle *ih, int *width, int *height); char* iupmotGetXWindowAttrib(Ihandle *ih); -#define iupmotSetArg(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++) +#define iupMOT_SETARG(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++) #ifdef __cplusplus diff --git a/iup/src/mot/iupmot_filedlg.c b/iup/src/mot/iupmot_filedlg.c index 768dd2b..0be6319 100755 --- a/iup/src/mot/iupmot_filedlg.c +++ b/iup/src/mot/iupmot_filedlg.c @@ -17,6 +17,7 @@ #include <Xm/DrawingA.h> #include <Xm/PushB.h> #include <Xm/Frame.h> +#include <Xm/List.h> #include "iup.h" #include "iupcbs.h" @@ -28,6 +29,7 @@ #include "iup_dialog.h" #include "iup_strmessage.h" #include "iup_drvinfo.h" +#include "iup_array.h" #include "iupmot_drv.h" @@ -87,14 +89,14 @@ static int motFileDlgCheckValue(Ihandle* ih, Widget w) return 0; } } - else + else if (!iupAttribGetBoolean(ih, "MULTIPLEFILES")) { if (iupdrvIsDirectory(value)) /* selected a directory */ { iupStrMessageShowError(ih, "IUP_INVALIDDIR"); return 0; } - else if (!iupdrvIsFile(value)) /* new file */ + else if (!iupdrvIsFile(value)) /* not a file == new file */ { value = iupAttribGet(ih, "ALLOWNEW"); if (!value) @@ -132,6 +134,51 @@ static void motFileDlgCBclose(Widget w, XtPointer client_data, XtPointer call_da iupAttribSetStr(ih, "_IUP_WM_DELETE", "1"); } +static int motFileDlgGetMultipleFiles(Ihandle* ih, const char* dir, Widget wList) +{ + int *pos, sel_count, dir_len; + int i, len, cur_len; + char *filename, *all_names; + Iarray* names_array; + XmString* items; + + if (!XmListGetSelectedPos(wList, &pos, &sel_count)) + return 0; + + names_array = iupArrayCreate(1024, 1); /* just set an initial size, but count is 0 */ + XtVaGetValues(wList, XmNitems, &items, NULL); + + cur_len = strlen(dir); + + all_names = iupArrayAdd(names_array, cur_len+1); + memcpy(all_names, dir, cur_len); + all_names[cur_len] = '|'; + dir_len = cur_len; + cur_len++; /* skip separator */ + + for (i = 0; i<sel_count; i++) + { + filename = iupmotConvertString(items[pos[i]-1]); /* XmListGetSelectedPos starts at 1 */ + len = strlen(filename)-dir_len; + + cur_len = iupArrayCount(names_array); + all_names = iupArrayAdd(names_array, len+1); + memcpy(all_names+cur_len, filename+dir_len, len); + all_names[cur_len+len] = '|'; + } + + XtFree((char*)pos); + + cur_len = iupArrayCount(names_array); + all_names = iupArrayInc(names_array); + all_names[cur_len+1] = 0; + + iupAttribStoreStr(ih, "VALUE", all_names); + + iupArrayDestroy(names_array); + return 1; +} + static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallbackStruct* call_data) { (void)w; @@ -151,14 +198,38 @@ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback iupAttribSetStr(ih, "STATUS", "0"); iupAttribSetStr(ih, "FILEEXIST", NULL); } + else if (iupAttribGetBoolean(ih, "MULTIPLEFILES")) + { + Widget wList = XmFileSelectionBoxGetChild(w, XmDIALOG_LIST); + + /* VALUE obtained above contains exactly the DIRECTORY */ + char* dir = iupAttribGet(ih, "VALUE"); + int len = strlen(dir); + if (dir[len-1]=='/') dir[len-1] = 0; /* remove last '/' */ + iupAttribStoreStr(ih, "DIRECTORY", dir); + + if (!motFileDlgGetMultipleFiles(ih, iupAttribGet(ih, "DIRECTORY"), wList)) + { + iupStrMessageShowError(ih, "IUP_FILENOTEXIST"); + return; + } + + iupAttribSetStr(ih, "STATUS", "0"); + iupAttribSetStr(ih, "FILEEXIST", "YES"); + } else { IFnss file_cb = (IFnss)IupGetCallback(ih, "FILE_CB"); - if (file_cb && file_cb(ih, iupAttribGet(ih, "VALUE"), "OK") == IUP_IGNORE) + filename = iupAttribGet(ih, "VALUE"); + if (file_cb && file_cb(ih, filename, "OK") == IUP_IGNORE) return; - if (iupdrvIsFile(iupAttribGet(ih, "VALUE"))) /* check if file exists */ + if (iupdrvIsFile(filename)) /* check if file exists */ { + char* dir = iupStrFileGetPath(filename); + iupAttribStoreStr(ih, "DIRECTORY", dir); + free(dir); + iupAttribSetStr(ih, "FILEEXIST", "YES"); iupAttribSetStr(ih, "STATUS", "0"); } @@ -188,9 +259,8 @@ static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback } } -static void motFileDlgHelpCallback(Widget w, XtPointer client_data, XtPointer call_data) +static void motFileDlgHelpCallback(Widget w, Ihandle *ih, XtPointer call_data) { - Ihandle *ih = (Ihandle*)client_data; Icallback cb = IupGetCallback(ih, "HELP_CB"); if (cb && cb(ih) == IUP_CLOSE) { @@ -340,14 +410,15 @@ static void motFileDlgPreviewCanvasExposeCallback(Widget w, Ihandle *ih, XtPoint static void motFileDlgBrowseSelectionCallback(Widget w, Ihandle* ih, XmListCallbackStruct* list_data) { char* filename; + IFnss cb; XmStringGetLtoR(list_data->item, XmSTRING_DEFAULT_CHARSET, &filename); + cb = (IFnss)IupGetCallback(ih, "FILE_CB"); if (iupdrvIsFile(filename)) - { - IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB"); cb(ih, filename, "SELECT"); - } + else + cb(ih, filename, "OTHER"); XtFree(filename); (void)w; @@ -417,6 +488,13 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y) if (dialogtype == IUP_DIALOGDIR) XtVaSetValues(filebox, XmNfileTypeMask, XmFILE_DIRECTORY, NULL); + if (iupAttribGetBoolean(ih, "MULTIPLEFILES")) + { + Widget wList = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST); + XtVaSetValues(wList, XmNselectionPolicy, XmEXTENDED_SELECT, NULL); + XtAddCallback(wList, XmNextendedSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih); + } + /* just check for the path inside FILE */ value = iupAttribGet(ih, "FILE"); if (value && value[0] == '/') @@ -501,8 +579,10 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y) file_cb = (IFnss)IupGetCallback(ih, "FILE_CB"); if (file_cb) { - Widget file_list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST); - XtAddCallback(file_list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih); + Widget list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST); + XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih); + list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_DIR_LIST); + XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih); if (iupAttribGetBoolean(ih, "SHOWPREVIEW")) { @@ -575,4 +655,6 @@ static int motFileDlgPopup(Ihandle* ih, int x, int y) void iupdrvFileDlgInitClass(Iclass* ic) { ic->DlgPopup = motFileDlgPopup; + + iupClassRegisterAttribute(ic, "MULTIPLEFILES", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT); } diff --git a/iup/src/mot/iupmot_font.c b/iup/src/mot/iupmot_font.c index 8da06dd..42154b6 100755 --- a/iup/src/mot/iupmot_font.c +++ b/iup/src/mot/iupmot_font.c @@ -135,19 +135,19 @@ static XmFontList motFontCreateRenderTable(XFontStruct* fontstruct, int is_under Arg args[10]; int num_args = 0; - iupmotSetArg(args, num_args, XmNfontType, XmFONT_IS_FONT); - iupmotSetArg(args, num_args, XmNfont, (XtPointer)fontstruct); - iupmotSetArg(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE); + iupMOT_SETARG(args, num_args, XmNfontType, XmFONT_IS_FONT); + iupMOT_SETARG(args, num_args, XmNfont, (XtPointer)fontstruct); + iupMOT_SETARG(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE); if (is_underline) - iupmotSetArg(args, num_args, XmNunderlineType, XmSINGLE_LINE); + iupMOT_SETARG(args, num_args, XmNunderlineType, XmSINGLE_LINE); else - iupmotSetArg(args, num_args, XmNunderlineType, XmNO_LINE); + iupMOT_SETARG(args, num_args, XmNunderlineType, XmNO_LINE); if (is_strikeout) - iupmotSetArg(args, num_args, XmNstrikethruType, XmSINGLE_LINE); + iupMOT_SETARG(args, num_args, XmNstrikethruType, XmSINGLE_LINE); else - iupmotSetArg(args, num_args, XmNstrikethruType, XmNO_LINE); + iupMOT_SETARG(args, num_args, XmNstrikethruType, XmNO_LINE); rendition = XmRenditionCreate(NULL, "", args, num_args); diff --git a/iup/src/mot/iupmot_frame.c b/iup/src/mot/iupmot_frame.c index 39de5d8..cfda44f 100755 --- a/iup/src/mot/iupmot_frame.c +++ b/iup/src/mot/iupmot_frame.c @@ -42,22 +42,33 @@ static int motFrameSetBgColorAttrib(Ihandle* ih, const char* value) { Pixel color; - /* ignore given value, must use only from parent */ - value = iupBaseNativeParentGetBgColor(ih); + if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) + { + /* ignore given value, must use only from parent */ + value = iupBaseNativeParentGetBgColor(ih); + } color = iupmotColorGetPixelStr(value); if (color != (Pixel)-1) { Widget title_label, child_manager; - iupmotSetBgColor(ih->handle, color); + if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) + { + iupmotSetBgColor(ih->handle, color); - child_manager = XtNameToWidget(ih->handle, "*child_manager"); - iupmotSetBgColor(child_manager, color); + child_manager = XtNameToWidget(ih->handle, "*child_manager"); + iupmotSetBgColor(child_manager, color); - title_label = XtNameToWidget(ih->handle, "*title_label"); - if (!title_label) return 1; - iupmotSetBgColor(title_label, color); + title_label = XtNameToWidget(ih->handle, "*title_label"); + if (!title_label) return 1; + iupmotSetBgColor(title_label, color); + } + else + { + child_manager = XtNameToWidget(ih->handle, "*child_manager"); + iupmotSetBgColor(child_manager, color); + } return 1; } @@ -171,22 +182,25 @@ static int motFrameMapMethod(Ihandle* ih) { char* value = iupAttribGetStr(ih, "SUNKEN"); if (iupStrBoolean(value)) - iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_IN); + iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_IN); else - iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN); + iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN); + + if (iupAttribGet(ih, "BGCOLOR")) + iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1"); } /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Manager */ - iupmotSetArg(args, num_args, XmNshadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 2); /* Frame */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */ ih->handle = XtCreateManagedWidget( iupDialogGetChildIdStr(ih), /* child identifier */ @@ -204,11 +218,11 @@ static int motFrameMapMethod(Ihandle* ih) Widget title_label; num_args = 0; /* Label */ - iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* Frame Constraint */ - iupmotSetArg(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD); + iupMOT_SETARG(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD); title_label = XtCreateManagedWidget("title_label", xmLabelWidgetClass, ih->handle, args, num_args); iupmotSetString(title_label, XmNlabelString, title); } diff --git a/iup/src/mot/iupmot_key.c b/iup/src/mot/iupmot_key.c index 835b5d7..9897741 100755 --- a/iup/src/mot/iupmot_key.c +++ b/iup/src/mot/iupmot_key.c @@ -393,33 +393,33 @@ void iupmotKeyPressEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont) void iupmotButtonKeySetStatus(unsigned int state, unsigned int but, char* status, int doubleclick) { if (state & ShiftMask) - iupKEYSETSHIFT(status); + iupKEY_SETSHIFT(status); if (state & ControlMask) - iupKEYSETCONTROL(status); + iupKEY_SETCONTROL(status); if ((state & Button1Mask) || but==Button1) - iupKEYSETBUTTON1(status); + iupKEY_SETBUTTON1(status); if ((state & Button2Mask) || but==Button2) - iupKEYSETBUTTON2(status); + iupKEY_SETBUTTON2(status); if ((state & Button3Mask) || but==Button3) - iupKEYSETBUTTON3(status); + iupKEY_SETBUTTON3(status); if ((state & Button4Mask) || but==Button4) - iupKEYSETBUTTON4(status); + iupKEY_SETBUTTON4(status); if ((state & Button5Mask) || but==Button5) - iupKEYSETBUTTON5(status); + iupKEY_SETBUTTON5(status); if (state & Mod1Mask || state & Mod5Mask) /* Alt */ - iupKEYSETALT(status); + iupKEY_SETALT(status); if (state & Mod4Mask) /* Apple/Win */ - iupKEYSETSYS(status); + iupKEY_SETSYS(status); if (doubleclick) - iupKEYSETDOUBLE(status); + iupKEY_SETDOUBLE(status); } diff --git a/iup/src/mot/iupmot_label.c b/iup/src/mot/iupmot_label.c index 52dfc9a..afff3c3 100755 --- a/iup/src/mot/iupmot_label.c +++ b/iup/src/mot/iupmot_label.c @@ -147,8 +147,10 @@ static int motLabelSetPaddingAttrib(Ihandle* ih, const char* value) { XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding, XmNmarginWidth, ih->data->horiz_padding, NULL); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int motLabelMapMethod(Ihandle* ih) @@ -165,12 +167,12 @@ static int motLabelMapMethod(Ihandle* ih) if (iupStrEqualNoCase(value, "HORIZONTAL")) { ih->data->type = IUP_LABEL_SEP_HORIZ; - iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL); + iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL); } else /* "VERTICAL" */ { ih->data->type = IUP_LABEL_SEP_VERT; - iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL); + iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL); } } else @@ -180,32 +182,32 @@ static int motLabelMapMethod(Ihandle* ih) if (value) { ih->data->type = IUP_LABEL_IMAGE; - iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); + iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP); } else { ih->data->type = IUP_LABEL_TEXT; - iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); + iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); } } /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Primitive */ - iupmotSetArg(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNhighlightThickness, 0); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0); /* Label */ - iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */ - iupmotSetArg(args, num_args, XmNmarginLeft, 0); - iupmotSetArg(args, num_args, XmNmarginBottom, 0); - iupmotSetArg(args, num_args, XmNmarginRight, 0); + iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */ + iupMOT_SETARG(args, num_args, XmNmarginLeft, 0); + iupMOT_SETARG(args, num_args, XmNmarginBottom, 0); + iupMOT_SETARG(args, num_args, XmNmarginRight, 0); ih->handle = XtCreateManagedWidget( iupDialogGetChildIdStr(ih), /* child identifier */ diff --git a/iup/src/mot/iupmot_list.c b/iup/src/mot/iupmot_list.c index f8e73ed..800e6e9 100755 --- a/iup/src/mot/iupmot_list.c +++ b/iup/src/mot/iupmot_list.c @@ -143,15 +143,36 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value) motListAddSortedItem(ih, value); else motListAddItem(ih, pos, value); + + iupListUpdateOldValue(ih, pos, 0); } void iupdrvListRemoveItem(Ihandle* ih, int pos) { /* The utility functions use 0=last 1=first */ if (ih->data->is_dropdown || ih->data->has_editbox) + { + if (ih->data->is_dropdown && !ih->data->has_editbox) + { + /* must check if removing the current item */ + int curpos; + XtVaGetValues(ih->handle, XmNselectedPosition, &curpos, NULL); + if (pos == curpos && iupdrvListGetCount(ih)>1) + { + if (curpos > 0) curpos--; + else curpos++; + + XtRemoveCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih); + XtVaSetValues(ih->handle, XmNselectedPosition, curpos, NULL); + XtAddCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih); + } + } XmComboBoxDeletePos(ih->handle, pos+1); + } else XmListDeletePos(ih->handle, pos+1); + + iupListUpdateOldValue(ih, pos, 1); } void iupdrvListRemoveAllItems(Ihandle* ih) @@ -174,7 +195,7 @@ void iupdrvListRemoveAllItems(Ihandle* ih) static char* motListGetIdValueAttrib(Ihandle* ih, const char* name_id) { int pos = iupListGetPos(ih, name_id); - if (pos != -1) + if (pos >= 0) { XmString* items; XtVaGetValues(ih->handle, XmNitems, &items, NULL); @@ -852,8 +873,10 @@ static int motListSetNCAttrib(Ihandle* ih, const char* value) Widget cbedit; XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL); XtVaSetValues(cbedit, XmNmaxLength, ih->data->nc, NULL); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int motListSetClipboardAttrib(Ihandle *ih, const char *value) @@ -1181,32 +1204,32 @@ static int motListMapMethod(Ihandle* ih) if (ih->data->is_dropdown || ih->data->has_editbox) { /* could not set XmNmappedWhenManaged to False because the list and the edit box where not displayed */ - /* iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); - iupmotSetArg(args, num_args, XmNmarginWidth, 0); + /* iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNshadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 2); if (ih->data->has_editbox) { if (ih->data->is_dropdown) - iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */ + iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */ else - iupmotSetArg(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */ + iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */ } else - iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */ + iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */ ih->handle = XtCreateManagedWidget( child_id, /* child identifier */ @@ -1220,13 +1243,13 @@ static int motListMapMethod(Ihandle* ih) /* Create the scrolled window */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED); - iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE); - iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */ - iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */ - iupmotSetArg(args, num_args, XmNborderWidth, 0); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED); + iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE); + iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */ + iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */ + iupMOT_SETARG(args, num_args, XmNborderWidth, 0); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); sb_win = XtCreateManagedWidget( child_id, /* child identifier */ @@ -1243,34 +1266,34 @@ static int motListMapMethod(Ihandle* ih) /* Create the list */ num_args = 0; - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNshadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 2); - iupmotSetArg(args, num_args, XmNlistMarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNlistMarginWidth, 0); - iupmotSetArg(args, num_args, XmNlistSpacing, 0); - iupmotSetArg(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */ + iupMOT_SETARG(args, num_args, XmNlistMarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNlistMarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNlistSpacing, 0); + iupMOT_SETARG(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */ if (ih->data->is_multiple) - iupmotSetArg(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT); + iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT); else - iupmotSetArg(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT); + iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT); if (iupAttribGetBoolean(ih, "AUTOHIDE")) - iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED); + iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED); else - iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); + iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); ih->handle = XtCreateManagedWidget( child_id, /* child identifier */ diff --git a/iup/src/mot/iupmot_loop.c b/iup/src/mot/iupmot_loop.c index 828ddcd..c1f92ec 100755 --- a/iup/src/mot/iupmot_loop.c +++ b/iup/src/mot/iupmot_loop.c @@ -56,7 +56,7 @@ void iupdrvSetIdleFunction(Icallback f) mot_idle_id = XtAppAddWorkProc(iupmot_appcontext, motIdlecbWorkProc, NULL); } -static int motLoopStep(void) +static int motLoopProcessEvent(void) { XtAppProcessEvent(iupmot_appcontext, XtIMAll); return (mot_exitmainloop)? IUP_CLOSE : IUP_DEFAULT; @@ -79,7 +79,7 @@ int IupMainLoop(void) while (!mot_exitmainloop) { - if (motLoopStep() == IUP_CLOSE) + if (motLoopProcessEvent() == IUP_CLOSE) break; } @@ -88,19 +88,26 @@ int IupMainLoop(void) return IUP_NOERROR; } +int IupLoopStepWait(void) +{ + while(!XtAppPending(iupmot_appcontext)); + + return motLoopProcessEvent(); +} + int IupLoopStep(void) { if (!XtAppPending(iupmot_appcontext)) return IUP_DEFAULT; - return motLoopStep(); + return motLoopProcessEvent(); } void IupFlush(void) { while (XPending(iupmot_display) != 0) { - if (motLoopStep() == IUP_CLOSE) + if (motLoopProcessEvent() == IUP_CLOSE) break; } diff --git a/iup/src/mot/iupmot_menu.c b/iup/src/mot/iupmot_menu.c index be9b953..8f51334 100755 --- a/iup/src/mot/iupmot_menu.c +++ b/iup/src/mot/iupmot_menu.c @@ -125,7 +125,10 @@ static void motPopupMenuUnmapCallback(Widget w, Ihandle* ih, XtPointer call_data static void motMenuUnMapMethod(Ihandle* ih) { if (iupMenuIsMenuBar(ih)) + { XtDestroyWidget(ih->handle); + ih->parent = NULL; + } else XtDestroyWidget(XtParent(ih->handle)); /* in this case the RowColumn widget is a child of a MenuShell. */ } @@ -146,7 +149,6 @@ static int motMenuMapMethod(Ihandle* ih) XmNrowColumnType, XmMENU_BAR, XmNmarginHeight, 0, XmNmarginWidth, 0, - XmNresizeWidth, False, NULL); if (!ih->handle) return IUP_ERROR; @@ -161,8 +163,8 @@ static int motMenuMapMethod(Ihandle* ih) if (iupAttribGetBoolean(ih, "RADIO")) { - iupmotSetArg(args, num_args, XmNpacking, XmPACK_COLUMN); - iupmotSetArg(args, num_args, XmNradioBehavior, TRUE); + iupMOT_SETARG(args, num_args, XmNpacking, XmPACK_COLUMN); + iupMOT_SETARG(args, num_args, XmNradioBehavior, TRUE); } ih->handle = XmCreatePulldownMenu( @@ -183,7 +185,7 @@ static int motMenuMapMethod(Ihandle* ih) { /* top level menu used for IupPopup */ - iupmotSetArg(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC); + iupMOT_SETARG(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC); ih->handle = XmCreatePopupMenu( iupmot_appshell, @@ -307,19 +309,19 @@ static int motItemMapMethod(Ihandle* ih) if (iupAttribGetBoolean(ih->parent, "RADIO")) { - iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN); - iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND); - iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX); - iupmotSetArg(args, num_args, XmNindicatorSize, 13); - iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0)); + iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN); + iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND); + iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX); + iupMOT_SETARG(args, num_args, XmNindicatorSize, 13); + iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0)); } else { if (iupAttribGetBoolean(ih, "HIDEMARK")) - iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE); + iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE); else - iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK); - iupmotSetArg(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING); + iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK); + iupMOT_SETARG(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING); } ih->handle = XtCreateManagedWidget( diff --git a/iup/src/mot/iupmot_progressbar.c b/iup/src/mot/iupmot_progressbar.c index 7266d38..82fa178 100755 --- a/iup/src/mot/iupmot_progressbar.c +++ b/iup/src/mot/iupmot_progressbar.c @@ -98,25 +98,25 @@ static int motProgressBarMapMethod(Ihandle* ih) Arg args[30]; /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Primitive */ - iupmotSetArg(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNhighlightThickness, 0); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0); /* Scale */ - iupmotSetArg(args, num_args, XmNminimum, 0); - iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX); - iupmotSetArg(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */ - iupmotSetArg(args, num_args, XmNsliderMark, XmNONE); - iupmotSetArg(args, num_args, XmNeditable, False); - iupmotSetArg(args, num_args, XmNshowValue, XmNONE); + iupMOT_SETARG(args, num_args, XmNminimum, 0); + iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX); + iupMOT_SETARG(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */ + iupMOT_SETARG(args, num_args, XmNsliderMark, XmNONE); + iupMOT_SETARG(args, num_args, XmNeditable, False); + iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE); if (iupStrEqualNoCase(iupAttribGetStr(ih, "ORIENTATION"), "VERTICAL")) { - iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL); + iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL); if (ih->currentheight < ih->currentwidth) { @@ -126,7 +126,7 @@ static int motProgressBarMapMethod(Ihandle* ih) } } else - iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL); + iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL); ih->handle = XtCreateManagedWidget( iupDialogGetChildIdStr(ih), /* child identifier */ diff --git a/iup/src/mot/iupmot_tabs.c b/iup/src/mot/iupmot_tabs.c index 7c8a6b5..cafc41d 100755 --- a/iup/src/mot/iupmot_tabs.c +++ b/iup/src/mot/iupmot_tabs.c @@ -52,8 +52,10 @@ void iupdrvTabsSetCurrentTab(Ihandle* ih, int pos) { Ihandle* child = IupGetChild(ih, pos); Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih)); - IupSetAttribute(child, "VISIBLE", "YES"); - IupSetAttribute(prev_child, "VISIBLE", "NO"); + Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER"); + Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER"); + XtMapWidget(child_manager); + if (prev_child_manager) XtUnmapWidget(prev_child_manager); XtVaSetValues(ih->handle, XmNcurrentPageNumber, pos, NULL); } @@ -200,7 +202,7 @@ static int motTabsSetTabTypeAttrib(Ihandle* ih, const char* value) ih->data->type = ITABS_TOP; if (ih->handle) - motTabsUpdateTabType(ih); + motTabsUpdateTabType(ih); /* for this to work must be updated in map */ return 0; } @@ -313,8 +315,10 @@ void motTabsPageChangedCallback(Widget w, Ihandle* ih, XmNotebookCallbackStruct IFnnn cb; Ihandle* child = IupGetChild(ih, nptr->page_number); Ihandle* prev_child = IupGetChild(ih, nptr->prev_page_number); - IupSetAttribute(child, "VISIBLE", "YES"); - IupSetAttribute(prev_child, "VISIBLE", "NO"); + Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER"); + Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER"); + XtMapWidget(child_manager); + if (prev_child_manager) XtUnmapWidget(prev_child_manager); cb = (IFnnn)IupGetCallback(ih, "TABCHANGE_CB"); if (cb) @@ -397,12 +401,12 @@ static void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child) /* Create tabs */ /* Label */ - iupmotSetArg(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP); - iupmotSetArg(args, num_args, XmNmarginHeight, 0); - iupmotSetArg(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP); + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* Notebook Constraint */ - iupmotSetArg(args, num_args, XmNnotebookChildType, XmMAJOR_TAB); - iupmotSetArg(args, num_args, XmNpageNumber, pos); + iupMOT_SETARG(args, num_args, XmNnotebookChildType, XmMAJOR_TAB); + iupMOT_SETARG(args, num_args, XmNpageNumber, pos); tab_button = XtCreateManagedWidget("tab_button", xmPushButtonWidgetClass, ih->handle, args, num_args); /* Disable Drag Source */ @@ -450,10 +454,8 @@ static void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child) iupAttribSetStr(child, "_IUPMOT_TABBUTTON", (char*)tab_button); iupAttribSetInt(child, "_IUPMOT_TABNUMBER", pos); - if (pos == iupdrvTabsGetCurrentTab(ih)) - IupSetAttribute(child, "VISIBLE", "YES"); - else - IupSetAttribute(child, "VISIBLE", "NO"); + if (pos != iupdrvTabsGetCurrentTab(ih)) + XtUnmapWidget(child_manager); } } @@ -464,20 +466,11 @@ static void motTabsChildRemovedMethod(Ihandle* ih, Ihandle* child) Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER"); if (child_manager) { - int cur_pos, pos; + int pos; Widget tab_button = (Widget)iupAttribGet(child, "_IUPMOT_TABBUTTON"); - cur_pos = iupdrvTabsGetCurrentTab(ih); pos = iupAttribGetInt(child, "_IUPMOT_TABNUMBER"); /* did not work when using XtVaGetValues(child_manager, XmNpageNumber) */ - if (cur_pos == pos) - { - if (cur_pos == 0) - cur_pos = 1; - else - cur_pos--; - - iupdrvTabsSetCurrentTab(ih, cur_pos); - } + iupTabsTestRemoveTab(ih, pos); XtDestroyWidget(tab_button); XtDestroyWidget(child_manager); @@ -501,22 +494,22 @@ static int motTabsMapMethod(Ihandle* ih) return IUP_ERROR; /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Manager */ - iupmotSetArg(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNtraversalOn, True); - iupmotSetArg(args, num_args, XmNhighlightThickness, 0); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0); /* Notebook */ - iupmotSetArg(args, num_args, XmNbindingType, XmNONE); - iupmotSetArg(args, num_args, XmNbindingWidth, 0); - iupmotSetArg(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */ - iupmotSetArg(args, num_args, XmNbackPageSize, 0); - iupmotSetArg(args, num_args, XmNbackPageNumber, 1); - iupmotSetArg(args, num_args, XmNframeShadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNbindingType, XmNONE); + iupMOT_SETARG(args, num_args, XmNbindingWidth, 0); + iupMOT_SETARG(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */ + iupMOT_SETARG(args, num_args, XmNbackPageSize, 0); + iupMOT_SETARG(args, num_args, XmNbackPageNumber, 1); + iupMOT_SETARG(args, num_args, XmNframeShadowThickness, 2); ih->handle = XtCreateManagedWidget( iupDialogGetChildIdStr(ih), /* child identifier */ @@ -589,5 +582,5 @@ void iupdrvTabsInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, NULL, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); /* can not be set, always HORIZONTAL in Motif */ iupClassRegisterAttributeId(ic, "TABTITLE", NULL, motTabsSetTabTitleAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, motTabsSetTabImageAttrib, IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); + iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); } diff --git a/iup/src/mot/iupmot_text.c b/iup/src/mot/iupmot_text.c index 4a8f936..d9d2c74 100755 --- a/iup/src/mot/iupmot_text.c +++ b/iup/src/mot/iupmot_text.c @@ -142,8 +142,10 @@ static int motTextSetPaddingAttrib(Ihandle* ih, const char* value) { XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding, XmNmarginWidth, ih->data->horiz_padding, NULL); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int motTextSetReadOnlyAttrib(Ihandle* ih, const char* value) @@ -164,7 +166,7 @@ static char* motTextGetReadOnlyAttrib(Ihandle* ih) static int motTextSetInsertAttrib(Ihandle* ih, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!value) return 0; @@ -207,12 +209,12 @@ static char* motTextGetSelectedTextAttrib(Ihandle* ih) static int motTextSetAppendAttrib(Ihandle* ih, const char* value) { XmTextPosition pos; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; pos = XmTextGetLastPosition(ih->handle); /* disable callbacks */ iupAttribSetStr(ih, "_IUPMOT_DISABLE_TEXT_CB", "1"); - if (ih->data->is_multiline && ih->data->append_newline) + if (ih->data->is_multiline && ih->data->append_newline && pos!=0) XmTextInsert(ih->handle, pos, "\n"); if (value) XmTextInsert(ih->handle, pos+1, (char*)value); @@ -482,8 +484,12 @@ static int motTextSetNCAttrib(Ihandle* ih, const char* value) if (!iupStrToInt(value, &ih->data->nc)) ih->data->nc = INT_MAX; if (ih->handle) + { XtVaSetValues(ih->handle, XmNmaxLength, ih->data->nc, NULL); - return 0; + return 0; + } + else + return 1; /* store until not mapped, when mapped will be set again */ } static int motTextSetClipboardAttrib(Ihandle *ih, const char *value) @@ -911,6 +917,10 @@ static void motTextLayoutUpdateMethod(Ihandle* ih) Widget spinbox = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT"); if (spinbox && XmIsSpinBox(spinbox)) { + /* avoid abort in X */ + if (ih->currentwidth == 0) ih->currentwidth = 1; + if (ih->currentheight == 0) ih->currentheight = 1; + XtVaSetValues(ih->handle, XmNwidth, (XtArgVal)ih->currentwidth-ih->currentheight/2, XmNheight, (XtArgVal)ih->currentheight, @@ -952,13 +962,13 @@ static int motTextMapMethod(Ihandle* ih) /* Create the scrolled window */ /******************************/ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED); - iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE); - iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */ - iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */ - iupmotSetArg(args, num_args, XmNborderWidth, 0); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED); + iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE); + iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */ + iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */ + iupMOT_SETARG(args, num_args, XmNborderWidth, 0); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); sb_win = XtCreateManagedWidget( child_id, /* child identifier */ @@ -973,9 +983,9 @@ static int motTextMapMethod(Ihandle* ih) child_id = "text"; num_args = 0; - iupmotSetArg(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT); + iupMOT_SETARG(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT); if (wordwrap) - iupmotSetArg(args, num_args, XmNwordWrap, True); + iupMOT_SETARG(args, num_args, XmNwordWrap, True); } else { @@ -986,18 +996,18 @@ static int motTextMapMethod(Ihandle* ih) Widget spinbox; num_args = 0; - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between spin and text */ - iupmotSetArg(args, num_args, XmNborderWidth, 0); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNmarginHeight, 0); - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNarrowSize, 8); + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between spin and text */ + iupMOT_SETARG(args, num_args, XmNborderWidth, 0); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNarrowSize, 8); if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT")) - iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING); + iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING); else - iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_END); + iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_END); spinbox = XtCreateManagedWidget( child_id, /* child identifier */ @@ -1019,61 +1029,61 @@ static int motTextMapMethod(Ihandle* ih) } num_args = 0; - iupmotSetArg(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT); + iupMOT_SETARG(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT); if (spin) { /* Spin Constraints */ - iupmotSetArg(args, num_args, XmNspinBoxChildType, XmNUMERIC); - iupmotSetArg(args, num_args, XmNminimumValue, 0); - iupmotSetArg(args, num_args, XmNmaximumValue, 100); - iupmotSetArg(args, num_args, XmNposition, 0); + iupMOT_SETARG(args, num_args, XmNspinBoxChildType, XmNUMERIC); + iupMOT_SETARG(args, num_args, XmNminimumValue, 0); + iupMOT_SETARG(args, num_args, XmNmaximumValue, 100); + iupMOT_SETARG(args, num_args, XmNposition, 0); if (iupAttribGetBoolean(ih, "SPINWRAP")) - iupmotSetArg(args, num_args, XmNwrap, TRUE); + iupMOT_SETARG(args, num_args, XmNwrap, TRUE); else - iupmotSetArg(args, num_args, XmNwrap, FALSE); + iupMOT_SETARG(args, num_args, XmNwrap, FALSE); } else { - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ } } - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNverifyBell, False); - iupmotSetArg(args, num_args, XmNspacing, 0); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNverifyBell, False); + iupMOT_SETARG(args, num_args, XmNspacing, 0); if (iupAttribGetBoolean(ih, "BORDER")) - iupmotSetArg(args, num_args, XmNshadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 2); else - iupmotSetArg(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); if (ih->data->is_multiline) { if (ih->data->sb & IUP_SB_HORIZ) - iupmotSetArg(args, num_args, XmNscrollHorizontal, True); + iupMOT_SETARG(args, num_args, XmNscrollHorizontal, True); else - iupmotSetArg(args, num_args, XmNscrollHorizontal, False); + iupMOT_SETARG(args, num_args, XmNscrollHorizontal, False); if (ih->data->sb & IUP_SB_VERT) - iupmotSetArg(args, num_args, XmNscrollVertical, True); + iupMOT_SETARG(args, num_args, XmNscrollVertical, True); else - iupmotSetArg(args, num_args, XmNscrollVertical, False); + iupMOT_SETARG(args, num_args, XmNscrollVertical, False); } ih->handle = XtCreateManagedWidget( diff --git a/iup/src/mot/iupmot_toggle.c b/iup/src/mot/iupmot_toggle.c index b18f24d..1fda258 100755 --- a/iup/src/mot/iupmot_toggle.c +++ b/iup/src/mot/iupmot_toggle.c @@ -236,8 +236,10 @@ static int motToggleSetPaddingAttrib(Ihandle* ih, const char* value) { XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding, XmNmarginWidth, ih->data->horiz_padding, NULL); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static char* motToggleGetSelectColorAttrib(Ihandle* ih) @@ -336,40 +338,40 @@ static int motToggleMapMethod(Ihandle* ih) if (value) { ih->data->type = IUP_TOGGLE_IMAGE; - iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); + iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP); } else { ih->data->type = IUP_TOGGLE_TEXT; - iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); + iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING); } /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Primitive */ if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); /* Label */ - iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */ - iupmotSetArg(args, num_args, XmNmarginLeft, 0); - iupmotSetArg(args, num_args, XmNmarginBottom, 0); - iupmotSetArg(args, num_args, XmNmarginRight, 0); + iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */ + iupMOT_SETARG(args, num_args, XmNmarginLeft, 0); + iupMOT_SETARG(args, num_args, XmNmarginBottom, 0); + iupMOT_SETARG(args, num_args, XmNmarginRight, 0); if (radio) { - iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN); - iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND); + iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN); + iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND); if (!iupAttribGet(radio, "_IUPMOT_LASTTOGGLE")) { @@ -380,33 +382,33 @@ static int motToggleMapMethod(Ihandle* ih) else { if (ih->data->type == IUP_TOGGLE_TEXT && iupAttribGetBoolean(ih, "3STATE")) - iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE); + iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE); else - iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN); - iupmotSetArg(args, num_args, XmNindicatorType, XmN_OF_MANY); + iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN); + iupMOT_SETARG(args, num_args, XmNindicatorType, XmN_OF_MANY); } if (ih->data->type == IUP_TOGGLE_IMAGE) { - iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE); - iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_CENTER); - iupmotSetArg(args, num_args, XmNshadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE); + iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_CENTER); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 2); } else { - iupmotSetArg(args, num_args, XmNspacing, 3); - iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX); - iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING); + iupMOT_SETARG(args, num_args, XmNspacing, 3); + iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX); + iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING); if (radio) { - iupmotSetArg(args, num_args, XmNindicatorSize, 13); - iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0)); + iupMOT_SETARG(args, num_args, XmNindicatorSize, 13); + iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0)); } else - iupmotSetArg(args, num_args, XmNindicatorSize, 15); + iupMOT_SETARG(args, num_args, XmNindicatorSize, 15); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNdetailShadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNdetailShadowThickness, 2); } ih->handle = XtCreateManagedWidget( diff --git a/iup/src/mot/iupmot_tree.c b/iup/src/mot/iupmot_tree.c index eb230af..fa5ef09 100755 --- a/iup/src/mot/iupmot_tree.c +++ b/iup/src/mot/iupmot_tree.c @@ -46,48 +46,20 @@ typedef struct _motTreeItemData Pixmap image, image_mask; Pixmap image_expanded, image_expanded_mask; unsigned char kind; - void* userdata; } motTreeItemData; static void motTreeShowEditField(Ihandle* ih, Widget wItem); -static int motTreeGetNodeId(Ihandle* ih, Widget wItem); +static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb); -typedef int (*motTreeNodeFunc)(Ihandle* ih, Widget wItem, void* userdata); - -static int motTreeForEach(Ihandle* ih, Widget wItem, motTreeNodeFunc func, void* userdata) -{ - WidgetList wItemChildList = NULL; - int i, numChild; - - if (!wItem) - wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - - if (!func(ih, wItem, userdata)) - return 0; - - numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemChildList); - for (i=0; i<numChild; i++) - { - /* Recursively traverse child items */ - if (!motTreeForEach(ih, wItemChildList[i], func, userdata)) - { - XtFree((char*)wItemChildList); - return 0; - } - } - if (wItemChildList) XtFree((char*)wItemChildList); - - return 1; -} /*****************************************************************************/ /* COPYING ITEMS (Branches and its children) */ /*****************************************************************************/ /* Insert the copied item in a new location. Returns the new item. */ -static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int full_copy) +static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int is_copy) { - Widget wNewItem; + Widget wItemNew; XmString title; motTreeItemData *itemData; Pixel fgcolor, bgcolor; @@ -96,13 +68,13 @@ static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos Pixmap image = XmUNSPECIFIED_PIXMAP, mask = XmUNSPECIFIED_PIXMAP; unsigned char state; - iupmotSetArg(args, num_args, XmNentryParent, wParent); - iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNtraversalOn, True); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNentryParent, wParent); + iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing); + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); /* Get values to copy */ XtVaGetValues(wItem, XmNlabelString, &title, @@ -113,49 +85,73 @@ static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos XmNoutlineState, &state, NULL); - if (full_copy) /* during a full copy the userdata reference is not copied */ + if (is_copy) /* during a copy the itemdata reference is not reused */ { /* create a new one */ motTreeItemData* itemDataNew = malloc(sizeof(motTreeItemData)); memcpy(itemDataNew, itemData, sizeof(motTreeItemData)); - itemDataNew->userdata = NULL; itemData = itemDataNew; } - iupmotSetArg(args, num_args, XmNlabelString, title); - iupmotSetArg(args, num_args, XmNuserData, itemData); - iupmotSetArg(args, num_args, XmNforeground, fgcolor); - iupmotSetArg(args, num_args, XmNsmallIconPixmap, image); - iupmotSetArg(args, num_args, XmNsmallIconMask, mask); - iupmotSetArg(args, num_args, XmNoutlineState, state); + iupMOT_SETARG(args, num_args, XmNlabelString, title); + iupMOT_SETARG(args, num_args, XmNuserData, itemData); + iupMOT_SETARG(args, num_args, XmNforeground, fgcolor); + iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, image); + iupMOT_SETARG(args, num_args, XmNsmallIconMask, mask); + iupMOT_SETARG(args, num_args, XmNoutlineState, state); - iupmotSetArg(args, num_args, XmNentryParent, wParent); - iupmotSetArg(args, num_args, XmNpositionIndex, pos); + iupMOT_SETARG(args, num_args, XmNentryParent, wParent); + iupMOT_SETARG(args, num_args, XmNpositionIndex, pos); XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL); - iupmotSetArg(args, num_args, XmNbackground, bgcolor); + iupMOT_SETARG(args, num_args, XmNbackground, bgcolor); + + /* Add the new node */ + wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args); + ih->data->node_count++; + + XtRealizeWidget(wItemNew); + + return wItemNew; +} + +static void motTreeChildRebuildCacheRec(Ihandle* ih, Widget wItem, int *id) +{ + WidgetList itemChildList = NULL; + int i, numChild; - wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args); + /* Check whether we have child items */ + numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList); + + for (i = 0; i < numChild; i++) + { + (*id)++; + ih->data->node_cache[*id].node_handle = itemChildList[i]; - /* Root always expanded */ - XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL); + /* go recursive to children */ + motTreeChildRebuildCacheRec(ih, itemChildList[i], id); + } - XtRealizeWidget(wNewItem); + if (itemChildList) XtFree((char*)itemChildList); +} - return wNewItem; +static void motTreeRebuildNodeCache(Ihandle* ih, int id, Widget wItem) +{ + ih->data->node_cache[id].node_handle = wItem; + motTreeChildRebuildCacheRec(ih, wItem, &id); } -static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy) +static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy) { WidgetList wItemChildList = NULL; int i = 0; int numChild = XmContainerGetItemChildren(ih->handle, wItemSrc, &wItemChildList); while(i != numChild) { - Widget wNewItem = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, full_copy); /* Use the same order they where enumerated */ + Widget wItemNew = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, is_copy); /* Use the same order they where enumerated */ /* Recursively transfer all the items */ - motTreeCopyChildren(ih, wItemChildList[i], wNewItem, full_copy); + motTreeCopyChildren(ih, wItemChildList[i], wItemNew, is_copy); /* Go to next sibling item */ i++; @@ -165,12 +161,18 @@ static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, i } /* Copies all items in a branch to a new location. Returns the new branch node. */ -static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy) +static Widget motTreeCopyMoveNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy) { - Widget wNewItem, wParent; + Widget wItemNew, wParent; motTreeItemData *itemDataDst; unsigned char stateDst; - int pos; + int pos, id_new, count, id_src, id_dst; + + int old_count = ih->data->node_count; + + id_src = iupTreeFindNodeId(ih, wItemSrc); + id_dst = iupTreeFindNodeId(ih, wItemDst); + id_new = id_dst+1; /* contains the position for a copy operation */ XtVaGetValues(wItemDst, XmNoutlineState, &stateDst, XmNuserData, &itemDataDst, @@ -184,17 +186,46 @@ static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int } else { + if (itemDataDst->kind == ITREE_BRANCH) + { + int child_count = iupdrvTreeTotalChildCount(ih, wItemDst); + id_new += child_count; + } + /* copy as next brother of item or collapsed branch */ XtVaGetValues(wItemDst, XmNentryParent, &wParent, NULL); XtVaGetValues(wItemDst, XmNpositionIndex, &pos, NULL); pos++; } - wNewItem = motTreeCopyItem(ih, wItemSrc, wParent, pos, full_copy); + /* move to the same place does nothing */ + if (!is_copy && id_new == id_src) + return NULL; + + wItemNew = motTreeCopyItem(ih, wItemSrc, wParent, pos, is_copy); + + motTreeCopyChildren(ih, wItemSrc, wItemNew, is_copy); + + count = ih->data->node_count - old_count; + iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy); - motTreeCopyChildren(ih, wItemSrc, wNewItem, full_copy); + if (!is_copy) + { + /* Deleting the node (and its children) from the old position */ + /* do not delete the itemdata, we reuse the references in CopyNode */ + motTreeRemoveNode(ih, wItemSrc, 0, 0); + + /* restore count, because we remove src */ + ih->data->node_count = old_count; + + /* compensate position for a move */ + if (id_new > id_src) + id_new -= count; + } - return wNewItem; + motTreeRebuildNodeCache(ih, id_new, wItemNew); + + return wItemNew; } static void motTreeContainerDeselectAll(Ihandle *ih) @@ -233,229 +264,181 @@ static void motTreeContainerSelectAll(Ihandle *ih) XtCallActionProc(ih->handle, "ContainerSelectAll", (XEvent*)&ev, 0, 0); } -static Widget motTreeGetLastVisibleNode(Ihandle* ih, Widget wItem) +static int motTreeIsNodeVisible(Widget wItem, Widget *wLastItemParent) { - unsigned char itemState; - - XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL); - - if (itemState == XmEXPANDED) + unsigned char itemParentState; + Widget wItemParent = NULL; + XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL); + if (!wItemParent || wItemParent == *wLastItemParent) + return 1; + while(wItemParent) { - WidgetList wChildrenTree = NULL; - int numChildren = XmContainerGetItemChildren(ih->handle, wItem, &wChildrenTree); - if(numChildren) - wItem = motTreeGetLastVisibleNode(ih, wChildrenTree[numChildren - 1]); - if (wChildrenTree) XtFree((char*)wChildrenTree); + XtVaGetValues(wItemParent, XmNoutlineState, &itemParentState, NULL); + if (itemParentState != XmEXPANDED) + return 0; + + XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL); } - return wItem; + /* save last parent */ + XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL); + *wLastItemParent = wItemParent; + return 1; } -static Widget motTreeFindVisibleNodeId(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode) +static Widget motTreeGetLastVisibleNode(Ihandle* ih) { - Widget itemChild; - WidgetList itemChildList; - int i = 0; - int numChild; - unsigned char itemState; + int i; + Widget wLastItemParent = NULL; - while(i != numItems) + for (i = ih->data->node_count-1; i >= 0; i--) { - /* ID control to traverse items */ - ih->data->id_control++; /* not the real id since it counts only the visible ones */ - - /* StateID founded! */ - if(itemList[i] == itemNode) - return itemList[i]; - - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL); - - /* The itemWidget has child and it is expanded (visible) */ - if (numChild && itemState == XmEXPANDED) - { - /* pass the list of children of this item */ - itemChild = motTreeFindVisibleNodeId(ih, itemChildList, numChild, itemNode); - - /* StateID founded! */ - if(itemChild) - { - XtFree((char*)itemChildList); - return itemChild; - } - } - - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; + if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent)) + return ih->data->node_cache[i].node_handle; } - return NULL; + return ih->data->node_cache[0].node_handle; /* root is always visible */ } -static Widget motTreeFindVisibleNodeFromId(Ihandle* ih, WidgetList itemList, int numItems) +static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wItem, int count) { - Widget itemChild; - WidgetList itemChildList; - int i = 0; - int numChild; - unsigned char itemState; + int i, id; + Widget wLastItemParent = NULL; - while(i != numItems) - { - /* ID control to traverse items */ - ih->data->id_control--; /* not the real id since it counts only the visible ones */ + id = iupTreeFindNodeId(ih, wItem); + id += count; - /* StateID founded! */ - if(ih->data->id_control < 0) - return itemList[i]; + for (i = id; i < ih->data->node_count; i++) + { + if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent)) + return ih->data->node_cache[i].node_handle; + } - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL); + return ih->data->node_cache[0].node_handle; /* root is always visible */ +} - /* The itemWidget has child and it is expanded (visible) */ - if (numChild && itemState == XmEXPANDED) - { - /* pass the list of children of this item */ - itemChild = motTreeFindVisibleNodeFromId(ih, itemChildList, numChild); +static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wItem, int count) +{ + int i, id; + Widget wLastItemParent = NULL; - /* StateID founded! */ - if(ih->data->id_control < 0) - { - if (itemChildList) XtFree((char*)itemChildList); - return itemChild; - } - } + id = iupTreeFindNodeId(ih, wItem); + id -= count; - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; + for (i = id; i >= 0; i--) + { + if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent)) + return ih->data->node_cache[i].node_handle; } - return NULL; + return motTreeGetLastVisibleNode(ih); } -static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem) +static void motTreeChildCountRec(Ihandle* ih, Widget wItem, int *count) { - Widget wNext; + WidgetList itemChildList = NULL; + int i, numChild; - ih->data->id_control = -1; - motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem); - ih->data->id_control++; /* more 1 visible node */ + /* Check whether we have child items */ + numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList); - wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1); + for (i = 0; i < numChild; i++) + { + (*count)++; - if (ih->data->id_control >= 0) - wNext = motTreeGetLastVisibleNode(ih, wRoot); + /* go recursive to children */ + motTreeChildCountRec(ih, itemChildList[i], count); + } - return wNext; + if (itemChildList) XtFree((char*)itemChildList); } -static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem) +int iupdrvTreeTotalChildCount(Ihandle* ih, Widget wItem) { - ih->data->id_control = -1; - motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem); - ih->data->id_control--; /* less 1 visible node */ - - if (ih->data->id_control < 0) - ih->data->id_control = 0; /* Begin of tree = Root id */ - - return motTreeFindVisibleNodeFromId(ih, &wRoot, 1); + int count = 0; + motTreeChildCountRec(ih, wItem, &count); + return count; } -static void motTreeUpdateBgColor(Ihandle* ih, WidgetList itemList, int numItems, Pixel bgcolor) +static void motTreeUpdateBgColor(Ihandle* ih, Pixel bgcolor) { - WidgetList itemChildList; - int i = 0; - int numChild; - - while(i != numItems) + int i; + for (i = 0; i < ih->data->node_count; i++) { - XtVaSetValues(itemList[i], XmNbackground, bgcolor, NULL); - - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - if(numChild) - motTreeUpdateBgColor(ih, itemChildList, numChild, bgcolor); - if (itemChildList) XtFree((char*)itemChildList); - - /* Go to next sibling item */ - i++; + XtVaSetValues(ih->data->node_cache[i].node_handle, XmNbackground, bgcolor, NULL); } } -static void motTreeUpdateImages(Ihandle* ih, WidgetList itemList, int numItems, int mode) +static void motTreeUpdateImages(Ihandle* ih, int mode) { - motTreeItemData *itemData; - int i = 0; - + int i; /* called when one of the default images is changed */ - - while(i != numItems) + for (i = 0; i < ih->data->node_count; i++) { - /* Get node attributes */ - XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL); - + motTreeItemData *itemData; + Widget wItem = ih->data->node_cache[i].node_handle; + + XtVaGetValues(wItem, XmNuserData, &itemData, NULL); + if (itemData->kind == ITREE_BRANCH) { unsigned char itemState; - XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL); + XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL); if (itemState == XmEXPANDED) { if (mode == ITREE_UPDATEIMAGE_EXPANDED) { - XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL); - XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL); + XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL); + XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL); } } else { if (mode == ITREE_UPDATEIMAGE_COLLAPSED) { - XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL); - XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL); + XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL); + XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL); } } - - /* Recursively traverse child items */ - { - WidgetList itemChildList; - int numChild; - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - motTreeUpdateImages(ih, itemChildList, numChild, mode); - if (itemChildList) XtFree((char*)itemChildList); - } } else { if (mode == ITREE_UPDATEIMAGE_LEAF) { - XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL); - XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL); + XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL); + XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL); } } - - /* Go to next sibling node */ - i++; } } -static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select) +static int motTreeIsNodeSelected(Widget wItem) +{ + unsigned char isSelected; + XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL); + if(isSelected == XmSELECTED) + return 1; + else + return 0; +} + +static void motTreeSelectNode(Widget wItem, int select) +{ + if (select == -1) + select = !motTreeIsNodeSelected(wItem); /* toggle */ + + if (select) + XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL); + else + XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL); +} + +static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int id, int *select) { int do_select = *select; if (do_select == -1) - { - unsigned char isSelected; - XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL); - do_select = (isSelected == XmSELECTED)? 0: 1; /* toggle */ - } + do_select = !motTreeIsNodeSelected(wItem); /* toggle */ if (do_select) XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL); @@ -463,272 +446,111 @@ static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select) XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL); (void)ih; + (void)id; return 1; } static void motTreeInvertAllNodeMarking(Ihandle* ih) { int select = -1; - motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectFunc, &select); + iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSelectFunc, &select); } -typedef struct _motTreeRange{ - Widget wItem1, wItem2; - char inside, clear; -}motTreeRange; - -static int motTreeSelectRangeFunc(Ihandle* ih, Widget wItem, motTreeRange* range) +static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear) { - int end_range = 0; - - if (range->inside == 0) /* detect the range start */ - { - if (range->wItem1 == wItem) range->inside=1; - else if (range->wItem2 == wItem) range->inside=1; - } - else if (range->inside == 1) /* detect the range end */ + int i; + int id1 = iupTreeFindNodeId(ih, wItem1); + int id2 = iupTreeFindNodeId(ih, wItem2); + if (id1 > id2) { - if (range->wItem1 == wItem) end_range=1; - else if (range->wItem2 == wItem) end_range=1; + int tmp = id1; + id1 = id2; + id2 = tmp; } - if (range->inside == 1) /* if inside, select */ - XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL); - else if (range->clear) /* if outside and clear, unselect */ - XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL); - - if (end_range || (range->inside && range->wItem1==range->wItem2)) - range->inside=-1; /* update after selecting the node */ - - (void)ih; - return 1; -} - -static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear) -{ - motTreeRange range; - range.wItem1 = wItem1; - range.wItem2 = wItem2; - range.inside = 0; - range.clear = (char)clear; - motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectRangeFunc, &range); -} - -void motTreeExpandCollapseAllNodes(Ihandle* ih, WidgetList itemList, int numItems, unsigned char itemState) -{ - WidgetList itemChildList; - int numChild; - int i = 0; - - while(i != numItems) + for (i = 0; i < ih->data->node_count; i++) { - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - - if(numChild) + if (i < id1 || i > id2) { - XtVaSetValues(itemList[i], XmNoutlineState, itemState, NULL); - motTreeExpandCollapseAllNodes(ih, itemChildList, numChild, itemState); + if (clear) + XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL); } - - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; + else + XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL); } } -static void motTreeDestroyItemData(Ihandle* ih, Widget wItem) +void motTreeExpandCollapseAllNodes(Ihandle* ih, unsigned char itemState) { - motTreeItemData *itemData = NULL; - XtVaGetValues(wItem, XmNuserData, &itemData, NULL); - if (itemData) + int i; + /* called when one of the default images is changed */ + for (i = 0; i < ih->data->node_count; i++) { - IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB"); - if (cb) cb(ih, motTreeGetNodeId(ih, wItem), (char*)itemData->userdata); - free(itemData); - XtVaSetValues(wItem, XmNuserData, NULL, NULL); - } -} - -static void motTreeRemoveChildren(Ihandle* ih, WidgetList itemList, int numItems, int del_userdata) -{ - WidgetList itemChildList; - int numChild; - int i = 0; + motTreeItemData *itemData; + Widget wItem = ih->data->node_cache[i].node_handle; - while(i != numItems) - { + XtVaGetValues(wItem, XmNuserData, &itemData, NULL); + /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - if (numChild) - motTreeRemoveChildren(ih, itemChildList, numChild, del_userdata); - - if (del_userdata) - motTreeDestroyItemData(ih, itemList[i]); - - XtDestroyWidget(itemList[i]); - - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; + if (itemData->kind == ITREE_BRANCH) + XtVaSetValues(wItem, XmNoutlineState, itemState, NULL); } } -static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_userdata) +static void motTreeDestroyItemData(Ihandle* ih, Widget wItem, int del_data, IFns cb, int id) { - WidgetList wChildList = NULL; - int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wChildList); - if (numChild) - motTreeRemoveChildren(ih, wChildList, numChild, del_userdata); - if (del_userdata) - motTreeDestroyItemData(ih, wItem); - XtDestroyWidget(wItem); - if (wChildList) XtFree((char*)wChildList); -} - -static Widget motTreeFindNodeID(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode) -{ - Widget itemChild; - WidgetList itemChildList; - int i = 0; - int numChild; - - while(i != numItems) + motTreeItemData *itemData = NULL; + XtVaGetValues(wItem, XmNuserData, &itemData, NULL); + if (itemData) { - /* ID control to traverse items */ - ih->data->id_control++; + if (cb) + cb(ih, (char*)ih->data->node_cache[id].userdata); - /* StateID founded! */ - if(itemList[i] == itemNode) - return itemList[i]; - - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - if(numChild) + if (del_data) { - /* pass the list of children of this item */ - itemChild = motTreeFindNodeID(ih, itemChildList, numChild, itemNode); - - /* StateID founded! */ - if(itemChild) - { - if (itemChildList) XtFree((char*)itemChildList); - return itemChild; - } + free(itemData); + XtVaSetValues(wItem, XmNuserData, NULL, NULL); } - - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; } - - return NULL; } -static Widget motTreeFindNodeFromID(Ihandle* ih, WidgetList itemList, int numItems) +static void motTreeRemoveNodeRec(Ihandle* ih, Widget wItem, int del_data, IFns cb, int *id) { - Widget itemChild; - WidgetList itemChildList; - int i = 0; - int numChild; + WidgetList itemChildList = NULL; + int i, numChild; + int old_id = *id; - while(i != numItems) + /* Check whether we have child items */ + /* remove from children first */ + numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList); + for (i = 0; i < numChild; i++) { - /* ID control to traverse items */ - ih->data->id_control--; - - /* StateID founded! */ - if(ih->data->id_control < 0) - return itemList[i]; - - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - if(numChild) - { - /* pass the list of children of this item */ - itemChild = motTreeFindNodeFromID(ih, itemChildList, numChild); - - /* StateID founded! */ - if(ih->data->id_control < 0) - { - if (itemChildList) XtFree((char*)itemChildList); - return itemChild; - } - } - - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; + /* go recursive to children */ + motTreeRemoveNodeRec(ih, itemChildList[i], del_data, cb, id); } + if (itemChildList) XtFree((char*)itemChildList); - return NULL; -} + /* actually do it for the node */ + ih->data->node_count--; + (*id)++; -static int motTreeGetNodeId(Ihandle* ih, Widget wItem) -{ - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - ih->data->id_control = -1; - if (motTreeFindNodeID(ih, &wRoot, 1, wItem)) - return ih->data->id_control; - else - return -1; + if (del_data || cb) + motTreeDestroyItemData(ih, wItem, del_data, cb, old_id); + + XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */ } -static Widget motTreeFindUserDataID(Ihandle* ih, WidgetList itemList, int numItems, void* userdata) +static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb) { - Widget itemChild; - WidgetList itemChildList; - motTreeItemData *itemData; - int i = 0; - int numChild; - - while(i != numItems) - { - /* ID control to traverse items */ - ih->data->id_control++; - - XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL); - - /* StateID founded! */ - if(itemData->userdata == userdata) - return itemList[i]; + IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL; + int old_count = ih->data->node_count; + int id = iupTreeFindNodeId(ih, wItem); + int old_id = id; - /* Check whether we have child items */ - itemChildList = NULL; - numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList); - if(numChild) - { - /* pass the list of children of this item */ - itemChild = motTreeFindUserDataID(ih, itemChildList, numChild, userdata); - - /* StateID founded! */ - if (itemChild) - { - if (itemChildList) XtFree((char*)itemChildList); - return itemChild; - } - } + motTreeRemoveNodeRec(ih, wItem, del_data, cb, &id); - if (itemChildList) XtFree((char*)itemChildList); - /* Go to next sibling item */ - i++; - } - - return NULL; -} - -static int motTreeGetUserDataId(Ihandle* ih, void* userdata) -{ - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - ih->data->id_control = -1; - if (motTreeFindUserDataID(ih, &wRoot, 1, userdata)) - return ih->data->id_control; - else - return -1; + if (call_cb) + iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count); } static void motTreeSetFocusNode(Ihandle* ih, Widget wItem) @@ -737,7 +559,7 @@ static void motTreeSetFocusNode(Ihandle* ih, Widget wItem) XmProcessTraversal(wItem, XmTRAVERSE_CURRENT); } -static Widget motTreeGetFocusNode(Ihandle* ih) +Widget iupdrvTreeGetFocusNode(Ihandle* ih) { Widget wItem = XmGetFocusWidget(ih->handle); /* returns the focus in the dialog */ if (wItem && XtParent(wItem) == ih->handle) /* is a node */ @@ -746,18 +568,6 @@ static Widget motTreeGetFocusNode(Ihandle* ih) return (Widget)iupAttribGet(ih, "_IUPTREE_LAST_FOCUS"); } -static Widget motTreeFindNodeFromString(Ihandle* ih, const char* name_id) -{ - if (name_id[0]) - { - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - iupStrToInt(name_id, &ih->data->id_control); - return motTreeFindNodeFromID(ih, &wRoot, 1); - } - else - return motTreeGetFocusNode(ih); -} - static void motTreeEnterLeaveWindowEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont) { if (iupAttribGet(ih, "_IUPTREE_EDITFIELD")) @@ -812,16 +622,24 @@ static void motTreeFocusChangeEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add) { - Widget wItemPrev = motTreeFindNodeFromString(ih, name_id); - Widget wNewItem; + Widget wItemPrev = iupTreeGetNodeFromString(ih, name_id); + Widget wItemNew; XmString itemTitle; - motTreeItemData *itemData, *itemDataPrev; + motTreeItemData *itemData; Pixel bgcolor, fgcolor; - int kindPrev, num_args = 0; + int kindPrev = 0, num_args = 0; Arg args[30]; if (!wItemPrev) - return; + { + /* check if the root was really specified */ + int id = 0; + if (!iupStrToInt(name_id, &id) || id != -1) + return; + } + + if (!title) + title = ""; itemData = calloc(1, sizeof(motTreeItemData)); itemData->image = XmUNSPECIFIED_PIXMAP; @@ -836,138 +654,103 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL); XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL); - /* Get the kind of previous item */ - XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL); - kindPrev = itemDataPrev->kind; - - if (kindPrev == ITREE_BRANCH && add) + if (wItemPrev) { - /* wItemPrev is parent of the new item (firstchild of it) */ - iupmotSetArg(args, num_args, XmNentryParent, wItemPrev); - iupmotSetArg(args, num_args, XmNpositionIndex, 0); - } - else - { - /* wItemPrev is sibling of the new item (set its parent to the new item) */ - Widget wItemParent; - int pos; + motTreeItemData *itemDataPrev; - XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL); - XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL); + /* Get the kind of previous item */ + XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL); + kindPrev = itemDataPrev->kind; + + if (kindPrev == ITREE_BRANCH && add) + { + /* wItemPrev is parent of the new item (firstchild of it) */ + iupMOT_SETARG(args, num_args, XmNentryParent, wItemPrev); + iupMOT_SETARG(args, num_args, XmNpositionIndex, 0); + } + else + { + /* wItemPrev is sibling of the new item (set its parent to the new item) */ + Widget wItemParent; + int pos; - iupmotSetArg(args, num_args, XmNentryParent, wItemParent); - iupmotSetArg(args, num_args, XmNpositionIndex, pos+1); + XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL); + XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL); + + iupMOT_SETARG(args, num_args, XmNentryParent, wItemParent); + iupMOT_SETARG(args, num_args, XmNpositionIndex, pos+1); + } } - iupmotSetArg(args, num_args, XmNuserData, itemData); - iupmotSetArg(args, num_args, XmNforeground, fgcolor); - iupmotSetArg(args, num_args, XmNbackground, bgcolor); - iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNtraversalOn, True); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNlabelString, itemTitle); + iupMOT_SETARG(args, num_args, XmNuserData, itemData); + iupMOT_SETARG(args, num_args, XmNforeground, fgcolor); + iupMOT_SETARG(args, num_args, XmNbackground, bgcolor); + iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing); + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNlabelString, itemTitle); if (kind == ITREE_BRANCH) { if (ih->data->add_expanded) { - iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded); - iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask); + iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded); + iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask); } else { - iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed); - iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask); + iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed); + iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask); } } else { - iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf); - iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask); + iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf); + iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask); } + /* Add the new node */ + wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args); + if (wItemPrev) + iupTreeAddToCache(ih, add, kindPrev, wItemPrev, wItemNew); + else + { + iupTreeAddToCache(ih, 0, 0, NULL, wItemNew); + + if (ih->data->node_count == 1) + { + /* MarkStart node */ + iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wItemNew); - wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args); + /* Set the default VALUE */ + motTreeSetFocusNode(ih, wItemNew); + } + } if (kind == ITREE_BRANCH) { + iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1"); if (ih->data->add_expanded) - { - iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", "1"); - XtVaSetValues(wNewItem, XmNoutlineState, XmEXPANDED, NULL); - } + XtVaSetValues(wItemNew, XmNoutlineState, XmEXPANDED, NULL); else - XtVaSetValues(wNewItem, XmNoutlineState, XmCOLLAPSED, NULL); + XtVaSetValues(wItemNew, XmNoutlineState, XmCOLLAPSED, NULL); + iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL); } - /* Root always expanded */ - XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL); - - XtRealizeWidget(wNewItem); + XtRealizeWidget(wItemNew); XmStringFree(itemTitle); } -static void motTreeAddRootNode(Ihandle* ih) -{ - Widget wRootItem; - motTreeItemData *itemData; - Pixel bgcolor, fgcolor; - int num_args = 0; - Arg args[30]; - - itemData = calloc(1, sizeof(motTreeItemData)); - itemData->image = XmUNSPECIFIED_PIXMAP; - itemData->image_expanded = XmUNSPECIFIED_PIXMAP; - itemData->image_mask = XmUNSPECIFIED_PIXMAP; - itemData->image_expanded_mask = XmUNSPECIFIED_PIXMAP; - itemData->kind = ITREE_BRANCH; - - /* Get default foreground color */ - XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL); - XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL); - - iupmotSetArg(args, num_args, XmNentryParent, NULL); - iupmotSetArg(args, num_args, XmNuserData, itemData); - iupmotSetArg(args, num_args, XmNforeground, fgcolor); - iupmotSetArg(args, num_args, XmNbackground, bgcolor); - iupmotSetArg(args, num_args, XmNoutlineState, XmEXPANDED); - iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNtraversalOn, True); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded); - iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask); - - wRootItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args); - - /* Select the new item */ - XtVaSetValues(wRootItem, XmNvisualEmphasis, XmSELECTED, NULL); - - XtRealizeWidget(wRootItem); - - /* Save the root node for later use */ - iupAttribSetStr(ih, "_IUPTREE_ROOTITEM", (char*)wRootItem); - - /* MarkStart node */ - iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wRootItem); - - /* Set the default VALUE */ - /* In Motif this will set also the current focus */ - motTreeSetFocusNode(ih, wRootItem); -} - /*****************************************************************************/ static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const char* value) { motTreeItemData *itemData; unsigned char itemState; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1003,7 +786,7 @@ static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* value) { motTreeItemData *itemData; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1053,7 +836,6 @@ static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value) { - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); ih->data->def_image_expanded = iupImageGetImage(value, ih, 0); if (!ih->data->def_image_expanded) { @@ -1067,14 +849,13 @@ static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value) } /* Update all images, starting at root node */ - motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_EXPANDED); + motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED); return 1; } static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value) { - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0); if (!ih->data->def_image_collapsed) { @@ -1088,14 +869,13 @@ static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value) } /* Update all images, starting at root node */ - motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_COLLAPSED); + motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED); return 1; } static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value) { - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); ih->data->def_image_leaf = iupImageGetImage(value, ih, 0); if (!ih->data->def_image_leaf) { @@ -1109,7 +889,7 @@ static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value) } /* Update all images, starting at root node */ - motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_LEAF); + motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF); return 1; } @@ -1118,7 +898,7 @@ static char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id) { int hasChildren; unsigned char itemState; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1138,14 +918,21 @@ static char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id) static int motTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value) { - Widget wItem = motTreeFindNodeFromString(ih, name_id); - if (!wItem) + motTreeItemData *itemData; + Widget wItem = iupTreeGetNodeFromString(ih, name_id); + if (!wItem) return 0; - if (iupStrEqualNoCase(value, "EXPANDED")) - XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL); - else - XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL); + XtVaGetValues(wItem, XmNuserData, &itemData, NULL); + if (itemData->kind == ITREE_BRANCH) + { + iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1"); + if (iupStrEqualNoCase(value, "EXPANDED")) + XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL); + else + XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL); + iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL); + } return 0; } @@ -1155,7 +942,7 @@ static char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id) unsigned char r, g, b; Pixel color; char* str; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; @@ -1170,7 +957,7 @@ static char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id) static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* value) { Pixel color; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1182,36 +969,33 @@ static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v static char* motTreeGetDepthAttrib(Ihandle* ih, const char* name_id) { - Widget wRoot; - int dep = 0; - char* depth; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + int depth = -1; + char* str; + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; - wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - - while((wRoot != wItem) && (wItem != NULL)) + while(wItem != NULL) { XtVaGetValues(wItem, XmNentryParent, &wItem, NULL); - dep++; + depth++; } - depth = iupStrGetMemory(10); - sprintf(depth, "%d", dep); - return depth; + str = iupStrGetMemory(10); + sprintf(str, "%d", depth); + return str; } static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value) { Widget wItemDst, wParent, wItemSrc; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - wItemSrc = motTreeFindNodeFromString(ih, name_id); + wItemSrc = iupTreeGetNodeFromString(ih, name_id); if (!wItemSrc) return 0; - wItemDst = motTreeFindNodeFromString(ih, value); + wItemDst = iupTreeGetNodeFromString(ih, value); if (!wItemDst) return 0; @@ -1224,11 +1008,8 @@ static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char return 0; } - /* Copying the node and its children to the new position */ - motTreeCopyNode(ih, wItemSrc, wItemDst, 0); /* not a full copy, preserve user data */ - - /* Deleting the node (and its children) inserted into the old position */ - motTreeRemoveNode(ih, wItemSrc, 0); /* do not delete the user data, we copy the references in CopyNode */ + /* Move the node and its children to the new position */ + motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 0); return 0; } @@ -1237,12 +1018,12 @@ static int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char { Widget wItemDst, wParent, wItemSrc; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - wItemSrc = motTreeFindNodeFromString(ih, name_id); + wItemSrc = iupTreeGetNodeFromString(ih, name_id); if (!wItemSrc) return 0; - wItemDst = motTreeFindNodeFromString(ih, value); + wItemDst = iupTreeGetNodeFromString(ih, value); if (!wItemDst) return 0; @@ -1255,8 +1036,8 @@ static int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char return 0; } - /* Copying the node and its children to the new position */ - motTreeCopyNode(ih, wItemSrc, wItemDst, 1); + /* Copy the node and its children to the new position */ + motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 1); return 0; } @@ -1265,7 +1046,7 @@ static char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id) { Widget wItemParent; char* str; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; @@ -1275,7 +1056,7 @@ static char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id) return NULL; str = iupStrGetMemory(10); - sprintf(str, "%d", motTreeGetNodeId(ih, wItemParent)); + sprintf(str, "%d", iupTreeFindNodeId(ih, wItemParent)); return str; } @@ -1283,7 +1064,7 @@ static char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id) { char* str; WidgetList wList = NULL; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; @@ -1293,30 +1074,10 @@ static char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id) return str; } -static int motTreeCount(Ihandle* ih, Widget wItem) -{ - WidgetList wList = NULL; - int i, count = 0; - int childCount = XmContainerGetItemChildren(ih->handle, wItem, &wList); - count++; - for (i=0; i<childCount; i++) - count += motTreeCount(ih, wList[i]); - if (wList) XtFree((char*)wList); - return count; -} - -static char* motTreeGetCountAttrib(Ihandle* ih) -{ - char* str = iupStrGetMemory(10); - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - sprintf(str, "%d", motTreeCount(ih, wRoot)); - return str; -} - static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id) { motTreeItemData *itemData; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; @@ -1331,15 +1092,64 @@ static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id) static char* motTreeGetValueAttrib(Ihandle* ih) { char* str; - Widget wItem = motTreeGetFocusNode(ih); + Widget wItem = iupdrvTreeGetFocusNode(ih); if (!wItem) - return "0"; /* default VALUE is root */ + { + if (ih->data->node_count) + return "0"; /* default VALUE is root */ + else + return "-1"; + } str = iupStrGetMemory(10); - sprintf(str, "%d", motTreeGetNodeId(ih, wItem)); + sprintf(str, "%d", iupTreeFindNodeId(ih, wItem)); + return str; +} + +static char* motTreeGetMarkedNodesAttrib(Ihandle* ih) +{ + char* str; + int i; + + if (ih->data->mark_mode==ITREE_MARK_SINGLE) + return NULL; + + str = iupStrGetMemory(ih->data->node_count+1); + + for (i=0; i<ih->data->node_count; i++) + { + if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle)) + str[i] = '+'; + else + str[i] = '-'; + } + + str[ih->data->node_count] = 0; return str; } +static int motTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value) +{ + int count, i; + + if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value) + return 0; + + count = strlen(value); + if (count > ih->data->node_count) + count = ih->data->node_count; + + for (i=0; i<count; i++) + { + if (value[i] == '+') + XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL); + else + XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL); + } + + return 0; +} + static int motTreeSetMarkAttrib(Ihandle* ih, const char* value) { if (ih->data->mark_mode==ITREE_MARK_SINGLE) @@ -1353,21 +1163,16 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value) motTreeInvertAllNodeMarking(ih); else if(iupStrEqualPartial(value, "INVERT")) { - unsigned char isSelected; - Widget wItem = motTreeFindNodeFromString(ih, &value[strlen("INVERT")]); + Widget wItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]); if (!wItem) return 0; - XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL); - if (isSelected == XmSELECTED) - XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL); - else - XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL); + motTreeSelectNode(wItem, -1); } else if(iupStrEqualNoCase(value, "BLOCK")) { Widget wItem = (Widget)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"); - Widget wFocusItem = motTreeGetFocusNode(ih); + Widget wFocusItem = iupdrvTreeGetFocusNode(ih); if(!wFocusItem || !wItem) return 0; motTreeSelectRange(ih, wFocusItem, wItem, 0); @@ -1379,10 +1184,10 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value) if (iupStrToStrStr(value, str1, str2, '-')!=2) return 0; - wItem1 = motTreeFindNodeFromString(ih, str1); + wItem1 = iupTreeGetNodeFromString(ih, str1); if (!wItem1) return 0; - wItem2 = motTreeFindNodeFromString(ih, str2); + wItem2 = iupTreeGetNodeFromString(ih, str2); if (!wItem2) return 0; @@ -1394,69 +1199,49 @@ static int motTreeSetMarkAttrib(Ihandle* ih, const char* value) static int motTreeSetValueAttrib(Ihandle* ih, const char* value) { - Widget wRoot, wItem; + Widget wItem, wItemParent; if (motTreeSetMarkAttrib(ih, value)) return 0; - wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - - if (iupStrEqualNoCase(value, "ROOT")) - wItem = wRoot; + if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST")) + wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); else if(iupStrEqualNoCase(value, "LAST")) - wItem = motTreeGetLastVisibleNode(ih, wRoot); + wItem = motTreeGetLastVisibleNode(ih); else if(iupStrEqualNoCase(value, "PGUP")) { - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); if(!wItemFocus) return 0; - ih->data->id_control = -1; - motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus); - ih->data->id_control -= 10; /* less 10 visible nodes */ - - if(ih->data->id_control < 0) - ih->data->id_control = 0; /* Begin of tree = Root id */ - - wItem = motTreeFindVisibleNodeFromId(ih, &wRoot, 1); + wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 10); } else if(iupStrEqualNoCase(value, "PGDN")) { - Widget wNext, wItemFocus; - - wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); if(!wItemFocus) return 0; - ih->data->id_control = -1; - motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus); - ih->data->id_control += 10; /* more 10 visible nodes */ - - wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1); - - if (ih->data->id_control >= 0) - wNext = motTreeGetLastVisibleNode(ih, wRoot); - - wItem = wNext; + wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 10); } else if(iupStrEqualNoCase(value, "NEXT")) { - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); if (!wItemFocus) return 0; - wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus); + wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1); } else if(iupStrEqualNoCase(value, "PREVIOUS")) { - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); if(!wItemFocus) return 0; - wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus); + wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1); } else - wItem = motTreeFindNodeFromString(ih, value); + wItem = iupTreeGetNodeFromString(ih, value); if (!wItem) return 0; @@ -1471,17 +1256,26 @@ static int motTreeSetValueAttrib(Ihandle* ih, const char* value) XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL); } + + /* expand all parents */ + XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL); + while(wItemParent) + { + XtVaSetValues(wItemParent, XmNoutlineState, XmEXPANDED, NULL); + XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL); + } + /* set focus (will scroll to visible) */ motTreeSetFocusNode(ih, wItem); - iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", motTreeGetNodeId(ih, wItem)); + iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", iupTreeFindNodeId(ih, wItem)); return 0; } static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id) { - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1492,14 +1286,11 @@ static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id) static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id) { - unsigned char isSelected; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; - XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL); - - if(isSelected == XmSELECTED) + if (motTreeIsNodeSelected(wItem)) return "YES"; else return "NO"; @@ -1507,7 +1298,7 @@ static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id) static int motTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value) { - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1531,7 +1322,7 @@ static char* motTreeGetTitle(Widget wItem) static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id) { - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; return motTreeGetTitle(wItem); @@ -1539,10 +1330,13 @@ static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id) static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value) { - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; + if (!value) + value = ""; + iupmotSetString(wItem, XmNlabelString, value); return 0; @@ -1551,7 +1345,7 @@ static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const char* value) { XmFontList fontlist = NULL; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return 0; @@ -1569,7 +1363,7 @@ static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id) { XmFontList fontlist; - Widget wItem = motTreeFindNodeFromString(ih, name_id); + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if (!wItem) return NULL; @@ -1577,118 +1371,81 @@ static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id) return iupmotFindFontList(fontlist); } -static char* motTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id) -{ - int id; - char* str = (char*)(name_id+1); /* skip ':' */ - void* userdata = NULL; - if (sscanf(str, "%p", &userdata)!=1) - return NULL; - id = motTreeGetUserDataId(ih, userdata); - if (id == -1) - return NULL; - str = iupStrGetMemory(16); - sprintf(str, "%d", id); - return str; -} - -static char* motTreeGetUserDataAttrib(Ihandle* ih, const char* name_id) -{ - motTreeItemData *itemData; - Widget wItem = motTreeFindNodeFromString(ih, name_id); - if (!wItem) - return NULL; - - XtVaGetValues(wItem, XmNuserData, &itemData, NULL); - - return itemData->userdata; -} - -static int motTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value) -{ - motTreeItemData *itemData; - Widget wItem = motTreeFindNodeFromString(ih, name_id); - if (!wItem) - return 0; - - XtVaGetValues(wItem, XmNuserData, &itemData, NULL); - itemData->userdata = (void*)value; - - return 0; -} - static int motTreeSetRenameAttrib(Ihandle* ih, const char* value) { if (ih->data->show_rename) { - IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB"); - Widget wItemFocus = motTreeGetFocusNode(ih); - if (cbShowRename) - cbShowRename(ih, motTreeGetNodeId(ih, wItemFocus)); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); motTreeShowEditField(ih, wItemFocus); } - else - { - IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB"); - if (cbRenameNode) - { - Widget wItemFocus = motTreeGetFocusNode(ih); - cbRenameNode(ih, motTreeGetNodeId(ih, wItemFocus), motTreeGetTitle(wItemFocus)); - } - } (void)value; return 0; } +static void motTreeRemoveAllNodes(Ihandle* ih, int call_cb) +{ + IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL; + int i, old_count = ih->data->node_count; + Widget wItem; + + for (i = 0; i < ih->data->node_count; i++) + { + wItem = ih->data->node_cache[i].node_handle; + + motTreeDestroyItemData(ih, wItem, 1, cb, i); + + XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */ + } + + ih->data->node_count = 0; + + if (call_cb) + iupTreeDelFromCache(ih, 0, old_count); +} + static int motTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */ + if (iupStrEqualNoCase(value, "ALL")) { - Widget wItem = motTreeFindNodeFromString(ih, name_id); - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - - /* the root node can't be deleted */ - if(!wItem || wItem == wRoot) /* root is the unique child */ + motTreeRemoveAllNodes(ih, 1); + return 0; + } + if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */ + { + Widget wItem = iupTreeGetNodeFromString(ih, name_id); + if(!wItem) return 0; - /* deleting the specified node (and it's children) */ - motTreeRemoveNode(ih, wItem, 1); + /* deleting the reference node (and it's children) */ + motTreeRemoveNode(ih, wItem, 1, 1); } - else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */ + else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */ { - Widget wItem = motTreeFindNodeFromString(ih, name_id); + int numChild, i; + WidgetList wItemList = NULL; + Widget wItem = iupTreeGetNodeFromString(ih, name_id); if(!wItem) return 0; - { - /* deleting the selected node's children only */ - WidgetList wItemList = NULL; - int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList); - if(numChild) - motTreeRemoveChildren(ih, wItemList, numChild, 1); - if (wItemList) XtFree((char*)wItemList); - } + /* deleting the reference node children only */ + numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList); + for(i = 0; i < numChild; i++) + motTreeRemoveNode(ih, wItemList[i], 1, 1); + if (wItemList) XtFree((char*)wItemList); } else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */ { - WidgetList wSelectedItemList = NULL; - Widget wRoot; - int countItems, i; - - XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList, - XmNselectedObjectCount, &countItems, NULL); - - wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - - for(i = 0; i < countItems; i++) + int i; + for(i = 1; i < ih->data->node_count; /* increment only if not removed */) { - int ok = XmIsIconGadget(wSelectedItemList[i]); - if ((wSelectedItemList[i] != wRoot) && ok) /* the root node can't be deleted */ - motTreeRemoveNode(ih, wSelectedItemList[i], 1); + if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle)) + motTreeRemoveNode(ih, ih->data->node_cache[i].node_handle, 1, 1); + else + i++; } } @@ -1714,7 +1471,7 @@ static int motTreeSetIndentationAttrib(Ihandle* ih, const char* value) static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value) { - Widget wItem = motTreeFindNodeFromString(ih, value); + Widget wItem = iupTreeGetNodeFromString(ih, value); Widget sb_win; Widget wItemParent; @@ -1735,10 +1492,11 @@ static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value) return 0; } -static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, void *data) +static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, int id, void *data) { XtVaSetValues(wItem, XmNmarginHeight, ih->data->spacing, NULL); (void)data; + (void)id; return 1; } @@ -1752,7 +1510,7 @@ static int motTreeSetSpacingAttrib(Ihandle* ih, const char* value) if (ih->handle) { - motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSpacingFunc, 0); + iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSpacingFunc, 0); return 0; } else @@ -1761,17 +1519,10 @@ static int motTreeSetSpacingAttrib(Ihandle* ih, const char* value) static int motTreeSetExpandAllAttrib(Ihandle* ih, const char* value) { - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - if (iupStrBoolean(value)) - motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmEXPANDED); + motTreeExpandCollapseAllNodes(ih, XmEXPANDED); else - { - motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmCOLLAPSED); - - /* The root node is always expanded */ - XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL); - } + motTreeExpandCollapseAllNodes(ih, XmCOLLAPSED); return 0; } @@ -1801,16 +1552,13 @@ static int motTreeSetBgColorAttrib(Ihandle* ih, const char* value) color = iupmotColorGetPixelStr(value); if (color != (Pixel)-1) { - Widget wRoot; Widget clipwin = NULL; XtVaGetValues(sb_win, XmNclipWindow, &clipwin, NULL); if (clipwin) iupmotSetBgColor(clipwin, color); - wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); - /* Update all children, starting at root node */ - motTreeUpdateBgColor(ih, &wRoot, 1, color); + motTreeUpdateBgColor(ih, color); } iupdrvBaseSetBgColorAttrib(ih, value); /* use given value for contents */ @@ -1871,10 +1619,14 @@ static void motTreeSetRenameSelectionPos(Widget cbEdit, const char* value) static int motTreeCallBranchCloseCb(Ihandle* ih, Widget wItem) { - IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB"); + IFni cbBranchClose; + + if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB")) + return IUP_DEFAULT; - if(cbBranchClose) - return cbBranchClose(ih, motTreeGetNodeId(ih, wItem)); + cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB"); + if (cbBranchClose) + return cbBranchClose(ih, iupTreeFindNodeId(ih, wItem)); return IUP_DEFAULT; } @@ -1883,59 +1635,136 @@ static int motTreeCallBranchOpenCb(Ihandle* ih, Widget wItem) { IFni cbBranchOpen; - if (iupAttribGet(ih, "_IUP_IGNORE_BRANCHOPEN")) - { - iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", NULL); + if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB")) return IUP_DEFAULT; - } cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB"); if (cbBranchOpen) - return cbBranchOpen(ih, motTreeGetNodeId(ih, wItem)); + return cbBranchOpen(ih, iupTreeFindNodeId(ih, wItem)); return IUP_DEFAULT; } +static void motTreeFindRange(Ihandle* ih, WidgetList wSelectedItemList, int countItems, int *id1, int *id2) +{ + int i = 0, id; + + *id1 = ih->data->node_count; + *id2 = -1; + + for(i = 0; i < countItems; i++) + { + int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */ + if (is_icon) + { + id = iupTreeFindNodeId(ih, wSelectedItemList[i]); + if (id < *id1) + *id1 = id; + if (id > *id2) + *id2 = id; + } + } + + /* interactive selection of several nodes will NOT select hidden nodes, + so make sure that they are selected. */ + for(i = *id1; i <= *id2; i++) + { + if (!motTreeIsNodeSelected(ih->data->node_cache[i].node_handle)) + XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL); + } + + /* if last selected item is a branch, then select its children */ + iupTreeSelectLastCollapsedBranch(ih, id2); +} + +static Iarray* motTreeGetSelectedArrayId(Ihandle* ih, WidgetList wSelectedItemList, int countItems) +{ + Iarray* selarray = iupArrayCreate(1, sizeof(int)); + int i; + + for(i = 0; i < countItems; i++) + { + int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */ + if (is_icon) + { + int* id_hitem = (int*)iupArrayInc(selarray); + int j = iupArrayCount(selarray); + id_hitem[j-1] = iupTreeFindNodeId(ih, wSelectedItemList[i]); + } + } + + return selarray; +} + +static void motTreeCallMultiUnSelectionCb(Ihandle* ih) +{ + IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB"); + IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB"); + if (cbSelec || cbMulti) + { + WidgetList wSelectedItemList = NULL; + int countItems = 0; + + XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList, + XmNselectedObjectCount, &countItems, NULL); + if (countItems > 1) + { + Iarray* markedArray = motTreeGetSelectedArrayId(ih, wSelectedItemList, countItems); + int* id_hitem = (int*)iupArrayGetData(markedArray); + int i, count = iupArrayCount(markedArray); + + if (cbMulti) + cbMulti(ih, id_hitem, iupArrayCount(markedArray)); + else + { + for (i=0; i<count; i++) + cbSelec(ih, id_hitem[i], 0); + } + + iupArrayDestroy(markedArray); + } + } +} + static void motTreeCallMultiSelectionCb(Ihandle* ih) { IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB"); IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB"); WidgetList wSelectedItemList = NULL; - Widget wRoot; - int countItems; - - wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); + int countItems, id1, id2, i; XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList, XmNselectedObjectCount, &countItems, NULL); if (countItems == 0) return; - if (cbMulti || cbSelec) + /* Must be a continuous range of selection ids */ + motTreeFindRange(ih, wSelectedItemList, countItems, &id1, &id2); + countItems = id2-id1+1; + + if (cbMulti) { int* id_rowItem = malloc(sizeof(int) * countItems); - int i = 0; for(i = 0; i < countItems; i++) - id_rowItem[i] = motTreeGetNodeId(ih, wSelectedItemList[i]); + id_rowItem[i] = id1+i; - if (cbMulti) - cbMulti(ih, id_rowItem, countItems); - else - { - for (i=0; i<countItems; i++) - cbSelec(ih, id_rowItem[i], 1); - } + cbMulti(ih, id_rowItem, countItems); free(id_rowItem); } + else if (cbSelec) + { + for (i=0; i<countItems; i++) + cbSelec(ih, id1+i, 1); + } } static int motTreeConvertXYToPos(Ihandle* ih, int x, int y) { Widget wItem = XmObjectAtPoint(ih->handle, (Position)x, (Position)y); if (wItem) - return motTreeGetNodeId(ih, wItem); + return iupTreeFindNodeId(ih, wItem); return -1; } @@ -1965,7 +1794,7 @@ static void motTreeCallRenameCb(Ihandle* ih) cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB"); if (cbRename) { - if (cbRename(ih, motTreeGetNodeId(ih, wItem), title) == IUP_IGNORE) + if (cbRename(ih, iupTreeFindNodeId(ih, wItem), title) == IUP_IGNORE) ignore = 1; } @@ -1993,8 +1822,8 @@ static int motTreeCallDragDropCb(Ihandle* ih, Widget wItemDrag, Widget wItemDrop if (cbDragDrop) { - int drag_id = motTreeGetNodeId(ih, wItemDrag); - int drop_id = motTreeGetNodeId(ih, wItemDrop); + int drag_id = iupTreeFindNodeId(ih, wItemDrag); + int drop_id = iupTreeFindNodeId(ih, wItemDrop); return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl); } @@ -2069,6 +1898,10 @@ static void motTreeShowEditField(Ihandle* ih, Widget wItem) XmFontList fontlist; Widget sb_win = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT"); + IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB"); + if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, wItem))==IUP_IGNORE) + return; + XtVaGetValues(wItem, XmNx, &x, XmNy, &y, XmNwidth, &w, @@ -2083,16 +1916,16 @@ static void motTreeShowEditField(Ihandle* ih, Widget wItem) iupdrvImageGetInfo((void*)image, &w_img, NULL, NULL); w_img += 3; /* add some room for borders */ - iupmotSetArg(args, num_args, XmNx, x+w_img); /* x-position */ - iupmotSetArg(args, num_args, XmNy, y); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, h); /* default height to avoid 0 */ - iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); - iupmotSetArg(args, num_args, XmNforeground, color); - iupmotSetArg(args, num_args, XmNrenderTable, fontlist); - iupmotSetArg(args, num_args, XmNvalue, iupmotConvertString(title)); - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNx, x+w_img); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, y); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, h); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNforeground, color); + iupMOT_SETARG(args, num_args, XmNrenderTable, fontlist); + iupMOT_SETARG(args, num_args, XmNvalue, iupmotConvertString(title)); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); cbEdit = XtCreateManagedWidget( child_id, /* child identifier */ @@ -2134,8 +1967,6 @@ static void motTreeSelectionCallback(Widget w, Ihandle* ih, XmContainerSelectCal (void)w; (void)nptr; -printf("SelectionCallback(%d)\n", nptr->selected_item_count); - if (ih->data->mark_mode == ITREE_MARK_MULTIPLE) { char key[5]; @@ -2149,11 +1980,13 @@ printf("SelectionCallback(%d)\n", nptr->selected_item_count); { if (IupGetCallback(ih, "MULTISELECTION_CB")) { + /* current selection same as the initial selection */ if (nptr->auto_selection_type==XmAUTO_NO_CHANGE) motTreeCallMultiSelectionCb(ih); } else { + /* current selection is caused by button drag */ if (nptr->auto_selection_type==XmAUTO_MOTION) motTreeCallMultiSelectionCb(ih); } @@ -2164,14 +1997,10 @@ printf("SelectionCallback(%d)\n", nptr->selected_item_count); cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB"); if (cbSelec) { - Widget wItemFocus = motTreeGetFocusNode(ih); - int curpos = motTreeGetNodeId(ih, wItemFocus); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); + int curpos = iupTreeFindNodeId(ih, wItemFocus); if (is_ctrl) - { - unsigned char isSelected; - XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL); - cbSelec(ih, curpos, isSelected == XmSELECTED? 1: 0); - } + cbSelec(ih, curpos, motTreeIsNodeSelected(wItemFocus)); else { int oldpos = iupAttribGetInt(ih, "_IUPTREE_OLDVALUE"); @@ -2218,7 +2047,7 @@ static void motTreeDefaultActionCallback(Widget w, Ihandle* ih, XmContainerSelec { IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB"); if (cbExecuteLeaf) - cbExecuteLeaf(ih, motTreeGetNodeId(ih, wItem)); + cbExecuteLeaf(ih, iupTreeFindNodeId(ih, wItem)); } } @@ -2295,15 +2124,14 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean iupmotHelpCallback(w, ih, NULL); else if ((motcode == XK_Down || motcode == XK_Up) && (evt->state & ControlMask)) { - Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"); Widget wItem; - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); /* Ctrl+Arrows move only focus */ if (motcode == XK_Down) - wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus); + wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1); else - wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus); + wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1); motTreeSetFocusNode(ih, wItem); *cont = False; @@ -2317,8 +2145,8 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean if (motcode == XK_Home) wItem = wRoot; - else - wItem = motTreeGetLastVisibleNode(ih, wRoot); + else /* motcode == XK_End */ + wItem = motTreeGetLastVisibleNode(ih); /* Ctrl+Arrows move only focus */ if (!(evt->state & ControlMask)) @@ -2326,7 +2154,7 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean /* Shift+Arrows select block */ if (evt->state & ShiftMask) { - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); if (!wItemFocus) return; motTreeSelectRange(ih, wItemFocus, wItem, 1); @@ -2346,16 +2174,9 @@ static void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean } else if(motcode == XK_space && (evt->state & ControlMask)) { - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); if (wItemFocus) - { - unsigned char isSelected; - XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL); - if (isSelected == XmSELECTED) - XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmNOT_SELECTED, NULL); - else - XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmSELECTED, NULL); - } + motTreeSelectNode(wItemFocus, -1); } } @@ -2378,7 +2199,7 @@ static void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean if (evt->button==Button1) { - Widget wItemFocus = motTreeGetFocusNode(ih); + Widget wItemFocus = iupdrvTreeGetFocusNode(ih); static Widget wLastItem = NULL; static Time last = 0; int clicktwice = 0, doubleclicktime = XtGetMultiClickTime(iupmot_display); @@ -2395,6 +2216,11 @@ static void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean *cont = False; } wLastItem = wItemFocus; + + if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && + !(evt->state & ShiftMask) && + !(evt->state & ControlMask)) + motTreeCallMultiUnSelectionCb(ih); } else if (evt->button==Button3) motTreeCallRightClickCb(ih, evt->x, evt->y); @@ -2436,21 +2262,18 @@ static void motTreeTransferProc(Widget drop_context, XtPointer client_data, Atom if (motTreeCallDragDropCb(ih, wItemDrag, wItemDrop, &is_ctrl) == IUP_CONTINUE) { - /* Copy the dragged item to the new position. */ - Widget wNewItem = motTreeCopyNode(ih, wItemDrag, wItemDrop, is_ctrl); + /* Copy or move the dragged item to the new position. */ + Widget wItemNew = motTreeCopyMoveNode(ih, wItemDrag, wItemDrop, is_ctrl); - if (!is_ctrl) + /* Set focus and selection */ + if (wItemNew) { - /* do not delete the user data, we copy the references in CopyNode */ - motTreeRemoveNode(ih, wItemDrag, 0); - } - - /* Select the dragged item */ - XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL); - XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL); - XtVaSetValues(wNewItem, XmNvisualEmphasis, XmSELECTED, NULL); + XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL); + XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL); + XtVaSetValues(wItemNew, XmNvisualEmphasis, XmSELECTED, NULL); - motTreeSetFocusNode(ih, wNewItem); + motTreeSetFocusNode(ih, wItemNew); + } } } @@ -2475,8 +2298,8 @@ static void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS drop_context = drop_data->dragContext; /* retrieve the data targets */ - iupmotSetArg(args, num_args, XmNexportTargets, &exportTargets); - iupmotSetArg(args, num_args, XmNnumExportTargets, &numExportTargets); + iupMOT_SETARG(args, num_args, XmNexportTargets, &exportTargets); + iupMOT_SETARG(args, num_args, XmNnumExportTargets, &numExportTargets); XtGetValues(drop_context, args, num_args); for (i = 0; i < (int)numExportTargets; i++) @@ -2495,17 +2318,17 @@ static void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS num_args = 0; if ((!found) || (drop_data->dropAction != XmDROP) || (drop_data->operation != XmDROP_COPY && drop_data->operation != XmDROP_MOVE)) { - iupmotSetArg(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE); - iupmotSetArg(args, num_args, XmNnumDropTransfers, 0); + iupMOT_SETARG(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE); + iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 0); } else { /* set up transfer requests for drop site */ transferList[0].target = atomTreeItem; transferList[0].client_data = (XtPointer)wItemDrop; - iupmotSetArg(args, num_args, XmNdropTransfers, transferList); - iupmotSetArg(args, num_args, XmNnumDropTransfers, 1); - iupmotSetArg(args, num_args, XmNtransferProc, motTreeTransferProc); + iupMOT_SETARG(args, num_args, XmNdropTransfers, transferList); + iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 1); + iupMOT_SETARG(args, num_args, XmNtransferProc, motTreeTransferProc); } XmDropTransferStart(drop_context, args, num_args); @@ -2584,23 +2407,23 @@ static void motTreeStartDrag(Widget w, XButtonEvent* evt, String* params, Cardin XmNforeground, &fg, NULL); - iupmotSetArg(args, num_args, XmNpixmap, pixmap); - iupmotSetArg(args, num_args, XmNmask, mask); + iupMOT_SETARG(args, num_args, XmNpixmap, pixmap); + iupMOT_SETARG(args, num_args, XmNmask, mask); drag_icon = XmCreateDragIcon(w, "drag_icon", args, num_args); exportList[0] = atomTreeItem; /* specify resources for DragContext for the transfer */ num_args = 0; - iupmotSetArg(args, num_args, XmNcursorBackground, bg); - iupmotSetArg(args, num_args, XmNcursorForeground, fg); - /* iupmotSetArg(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */ - iupmotSetArg(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */ - iupmotSetArg(args, num_args, XmNexportTargets, exportList); - iupmotSetArg(args, num_args, XmNnumExportTargets, 1); - iupmotSetArg(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY); - iupmotSetArg(args, num_args, XmNconvertProc, motTreeConvertProc); - iupmotSetArg(args, num_args, XmNclientData, wItemDrag); + iupMOT_SETARG(args, num_args, XmNcursorBackground, bg); + iupMOT_SETARG(args, num_args, XmNcursorForeground, fg); + /* iupMOT_SETARG(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */ + iupMOT_SETARG(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */ + iupMOT_SETARG(args, num_args, XmNexportTargets, exportList); + iupMOT_SETARG(args, num_args, XmNnumExportTargets, 1); + iupMOT_SETARG(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY); + iupMOT_SETARG(args, num_args, XmNconvertProc, motTreeConvertProc); + iupMOT_SETARG(args, num_args, XmNclientData, wItemDrag); /* start the drag and register a callback to clean up when done */ drop_context = XmDragStart(w, (XEvent*)evt, args, num_args); @@ -2628,10 +2451,10 @@ static void motTreeEnableDragDrop(Widget w) XtOverrideTranslations(w, XtParseTranslationTable(dragTranslations)); importList[0] = atomTreeItem; - iupmotSetArg(args, num_args, XmNimportTargets, importList); - iupmotSetArg(args, num_args, XmNnumImportTargets, 1); - iupmotSetArg(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY); - iupmotSetArg(args, num_args, XmNdropProc, motTreeDropProc); + iupMOT_SETARG(args, num_args, XmNimportTargets, importList); + iupMOT_SETARG(args, num_args, XmNnumImportTargets, 1); + iupMOT_SETARG(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY); + iupMOT_SETARG(args, num_args, XmNdropProc, motTreeDropProc); XmDropSiteUpdate(w, args, num_args); XtVaSetValues(XmGetXmDisplay(iupmot_display), XmNenableDragIcon, True, NULL); @@ -2648,13 +2471,13 @@ static int motTreeMapMethod(Ihandle* ih) /******************************/ /* Create the scrolled window */ /******************************/ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAUTOMATIC); - iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE); - iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED); - iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */ - iupmotSetArg(args, num_args, XmNborderWidth, 0); - iupmotSetArg(args, num_args, XmNshadowThickness, 2); + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAUTOMATIC); + iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE); + iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED); + iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */ + iupMOT_SETARG(args, num_args, XmNborderWidth, 0); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 2); sb_win = XtCreateManagedWidget( child_id, /* child identifier */ @@ -2672,37 +2495,37 @@ static int motTreeMapMethod(Ihandle* ih) num_args = 0; - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ - iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */ - iupmotSetArg(args, num_args, XmNmarginWidth, 0); + iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */ + iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNshadowThickness, 0); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNshadowThickness, 0); - iupmotSetArg(args, num_args, XmNlayoutType, XmOUTLINE); - iupmotSetArg(args, num_args, XmNentryViewType, XmSMALL_ICON); - iupmotSetArg(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT); - iupmotSetArg(args, num_args, XmNoutlineIndentation, 20); + iupMOT_SETARG(args, num_args, XmNlayoutType, XmOUTLINE); + iupMOT_SETARG(args, num_args, XmNentryViewType, XmSMALL_ICON); + iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT); + iupMOT_SETARG(args, num_args, XmNoutlineIndentation, 20); if (iupAttribGetBoolean(ih, "HIDELINES")) - iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmNO_LINE); + iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmNO_LINE); else - iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmSINGLE); + iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmSINGLE); if (iupAttribGetBoolean(ih, "HIDEBUTTONS")) - iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT); + iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT); else - iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT); + iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT); ih->handle = XtCreateManagedWidget( child_id, /* child identifier */ @@ -2788,17 +2611,30 @@ static int motTreeMapMethod(Ihandle* ih) if (!ih->data->def_image_expanded_mask) ih->data->def_image_expanded_mask = (void*)XmUNSPECIFIED_PIXMAP; } - motTreeAddRootNode(ih); + if (iupAttribGetInt(ih, "ADDROOT")) + iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0); IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)motTreeConvertXYToPos); + iupdrvTreeUpdateMarkMode(ih); + return IUP_NOERROR; } +static void motTreeUnMapMethod(Ihandle* ih) +{ + motTreeRemoveAllNodes(ih, 0); + + ih->data->node_count = 0; + + iupdrvBaseUnMapMethod(ih); +} + void iupdrvTreeInitClass(Iclass* ic) { /* Driver Dependent Class functions */ ic->Map = motTreeMapMethod; + ic->UnMap = motTreeUnMapMethod; /* Visual */ iupClassRegisterAttribute(ic, "BGCOLOR", NULL, motTreeSetBgColorAttrib, "TXTBGCOLOR", NULL, IUPAF_DEFAULT); @@ -2807,7 +2643,6 @@ void iupdrvTreeInitClass(Iclass* ic) /* IupTree Attributes - GENERAL */ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, motTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY||IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "INDENTATION", motTreeGetIndentationAttrib, motTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT); - iupClassRegisterAttribute(ic, "COUNT", motTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, motTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED); iupClassRegisterAttribute(ic, "TOPITEM", NULL, motTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); @@ -2827,7 +2662,6 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttributeId(ic, "COLOR", motTreeGetColorAttrib, motTreeSetColorAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "NAME", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TITLE", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT); - iupClassRegisterAttributeId(ic, "USERDATA", motTreeGetUserDataAttrib, motTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "CHILDCOUNT", motTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TITLEFONT", motTreeGetTitleFontAttrib, motTreeSetTitleFontAttrib, IUPAF_NO_INHERIT); @@ -2836,6 +2670,7 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttribute (ic, "MARK", NULL, motTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "STARTING", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "MARKSTART", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); + iupClassRegisterAttribute (ic, "MARKEDNODES", motTreeGetMarkedNodesAttrib, motTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "VALUE", motTreeGetValueAttrib, motTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); @@ -2844,5 +2679,4 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "RENAME", NULL, motTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "MOVENODE", NULL, motTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "COPYNODE", NULL, motTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); - iupClassRegisterAttributeId(ic, "FINDUSERDATA", motTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); } diff --git a/iup/src/mot/iupmot_val.c b/iup/src/mot/iupmot_val.c index 200d2b4..ce9eba7 100755 --- a/iup/src/mot/iupmot_val.c +++ b/iup/src/mot/iupmot_val.c @@ -383,41 +383,41 @@ static int motValMapMethod(Ihandle* ih) int show_ticks; /* Core */ - iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ - iupmotSetArg(args, num_args, XmNx, 0); /* x-position */ - iupmotSetArg(args, num_args, XmNy, 0); /* y-position */ - iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ - iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */ + iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */ + iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */ + iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */ + iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */ /* Primitive */ if (iupAttribGetBoolean(ih, "CANFOCUS")) - iupmotSetArg(args, num_args, XmNtraversalOn, True); + iupMOT_SETARG(args, num_args, XmNtraversalOn, True); else - iupmotSetArg(args, num_args, XmNtraversalOn, False); - iupmotSetArg(args, num_args, XmNhighlightThickness, 2); - iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); + iupMOT_SETARG(args, num_args, XmNtraversalOn, False); + iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2); + iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); /* Scale */ - iupmotSetArg(args, num_args, XmNminimum, 0); - iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX); - iupmotSetArg(args, num_args, XmNslidingMode, XmSLIDER); - iupmotSetArg(args, num_args, XmNsliderMark, XmETCHED_LINE); - iupmotSetArg(args, num_args, XmNsliderSize, 16); - iupmotSetArg(args, num_args, XmNshowValue, XmNONE); + iupMOT_SETARG(args, num_args, XmNminimum, 0); + iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX); + iupMOT_SETARG(args, num_args, XmNslidingMode, XmSLIDER); + iupMOT_SETARG(args, num_args, XmNsliderMark, XmETCHED_LINE); + iupMOT_SETARG(args, num_args, XmNsliderSize, 16); + iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE); if (ih->data->type == IVAL_HORIZONTAL) { - iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL); + iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL); if (ih->data->inverted) - iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT); + iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT); else - iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT); + iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT); } else { - iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL); + iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL); if (ih->data->inverted) - iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP); + iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP); else - iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM); + iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM); } ih->handle = XtCreateManagedWidget( diff --git a/iup/src/mot/iupunix_info.c b/iup/src/mot/iupunix_info.c index b522638..f09573c 100755 --- a/iup/src/mot/iupunix_info.c +++ b/iup/src/mot/iupunix_info.c @@ -282,7 +282,7 @@ char *iupdrvGetSystemName(void) char *iupdrvGetSystemVersion(void) { struct utsname un; - char *str = iupStrGetMemory(60); + char *str = iupStrGetMemory(100); uname(&un); strcpy(str, un.release); diff --git a/iup/src/win/iupwin_button.c b/iup/src/win/iupwin_button.c index 7f780e3..3b05ba7 100755 --- a/iup/src/win/iupwin_button.c +++ b/iup/src/win/iupwin_button.c @@ -27,6 +27,7 @@ #include "iupwin_drv.h" #include "iupwin_handle.h" #include "iupwin_draw.h" +#include "iupwin_info.h" #ifndef CDIS_SHOWKEYBOARDCUES @@ -308,18 +309,22 @@ static void winButtonDrawText(Ihandle* ih, HDC hDC, int rect_width, int rect_hei static void winButtonDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem) { + HDC hDC; iupwinBitmapDC bmpDC; int border, draw_border; int width = drawitem->rcItem.right - drawitem->rcItem.left; int height = drawitem->rcItem.bottom - drawitem->rcItem.top; - HDC hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height); + hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height); iupwinDrawParentBackground(ih, hDC, &drawitem->rcItem); if ((drawitem->itemState & ODS_FOCUS) && !(drawitem->itemState & ODS_HOTLIGHT)) drawitem->itemState |= ODS_DEFAULT; + if (iupAttribGet(ih, "_IUPWINBUT_SELECTED")) + drawitem->itemState |= ODS_SELECTED; + border = winButtonGetBorder(); if (ih->data->type & IUP_BUTTON_IMAGE && iupAttribGet(ih, "IMPRESS") && !iupAttribGetStr(ih, "IMPRESSBORDER")) @@ -365,7 +370,7 @@ static int winButtonSetImageAttrib(Ihandle* ih, const char* value) (void)value; if (ih->data->type != IUP_BUTTON_TEXT) { - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); return 1; } else @@ -377,7 +382,7 @@ static int winButtonSetImInactiveAttrib(Ihandle* ih, const char* value) (void)value; if (ih->data->type != IUP_BUTTON_TEXT) { - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); return 1; } else @@ -389,7 +394,7 @@ static int winButtonSetImPressAttrib(Ihandle* ih, const char* value) (void)value; if (ih->data->type != IUP_BUTTON_TEXT) { - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); return 1; } else @@ -400,7 +405,7 @@ static int winButtonSetActiveAttrib(Ihandle* ih, const char* value) { /* redraw IMINACTIVE image if any */ if (ih->data->type != IUP_BUTTON_TEXT) - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); return iupBaseSetActiveAttrib(ih, value); } @@ -425,7 +430,7 @@ static int winButtonSetAlignmentAttrib(Ihandle* ih, const char* value) else /* "ACENTER" */ ih->data->vert_alignment = IUP_ALIGN_ACENTER; - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); return 1; } @@ -443,7 +448,7 @@ static int winButtonSetPaddingAttrib(Ihandle* ih, const char* value) { iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); if (ih->handle) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); return 0; } @@ -454,7 +459,7 @@ static int winButtonSetBgColorAttrib(Ihandle* ih, const char* value) { iupAttribSetStr(ih, "BGCOLOR", value); iupImageUpdateParent(ih); - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } return 1; } @@ -486,7 +491,9 @@ static int winButtonSetFgColorAttrib(Ihandle* ih, const char* value) if (iupStrToRGB(value, &r, &g, &b)) { ih->data->fgcolor = RGB(r,g,b); - iupdrvDisplayRedraw(ih); + + if (ih->handle) + iupdrvRedrawNow(ih); } return 1; } @@ -499,7 +506,7 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r { /* redraw IMPRESS image if any */ if ((msg == WM_LBUTTONDOWN || msg == WM_LBUTTONUP) && iupAttribGet(ih, "IMPRESS")) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } switch (msg) @@ -514,6 +521,13 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r case WM_RBUTTONDOWN: { iupwinButtonDown(ih, msg, wp, lp); + + /* Feedback will NOT be done when not receiving the focus */ + if (msg==WM_LBUTTONDOWN && !iupAttribGetBoolean(ih, "FOCUSONCLICK")) + { + iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", "1"); + iupdrvRedrawNow(ih); + } break; } case WM_XBUTTONUP: @@ -526,11 +540,24 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r /* BN_CLICKED will NOT be notified when not receiving the focus */ if (msg==WM_LBUTTONUP && !iupAttribGetBoolean(ih, "FOCUSONCLICK")) { - Icallback cb = IupGetCallback(ih, "ACTION"); + Icallback cb; + + iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL); + iupdrvRedrawNow(ih); + + cb = IupGetCallback(ih, "ACTION"); if (cb && cb(ih) == IUP_CLOSE) IupExitLoop(); } + if (!iupwinIsVistaOrNew()) + { + /* TIPs desapear forever after a button click in XP, + so we force an update. */ + char* tip = iupAttribGet(ih, "TIP"); + if (tip) + iupdrvBaseSetTipAttrib(ih, tip); + } break; } case WM_KEYDOWN: @@ -549,7 +576,12 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r if (!iupwin_comctl32ver6) { iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", NULL); - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); + } + if (!iupAttribGetBoolean(ih, "FOCUSONCLICK")) + { + iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL); + iupdrvRedrawNow(ih); } break; case WM_MOUSEMOVE: @@ -558,7 +590,7 @@ static int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r if (!iupAttribGet(ih, "_IUPWINBUT_ENTERWIN")) { iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", "1"); - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } } break; @@ -635,7 +667,7 @@ static int winButtonWmCommand(Ihandle* ih, WPARAM wp, LPARAM lp) static int winButtonMapMethod(Ihandle* ih) { char* value; - DWORD dwStyle = WS_CHILD | + DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | BS_NOTIFY; /* necessary because of the base messages */ if (!ih->parent) @@ -661,7 +693,7 @@ static int winButtonMapMethod(Ihandle* ih) ih->data->type = IUP_BUTTON_IMAGE; value = iupAttribGet(ih, "TITLE"); - if (value) + if (value && *value!=0) ih->data->type |= IUP_BUTTON_TEXT; } else diff --git a/iup/src/win/iupwin_canvas.c b/iup/src/win/iupwin_canvas.c index bb88b8a..b865160 100755 --- a/iup/src/win/iupwin_canvas.c +++ b/iup/src/win/iupwin_canvas.c @@ -45,7 +45,7 @@ static void winCanvasSetScrollInfo(HWND hWnd, int imin, int imax, int ipos, int static int winCanvasSetBgColorAttrib(Ihandle *ih, const char *value) { (void)value; - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); return 1; } @@ -220,7 +220,7 @@ static void winCanvasUpdateHorScroll(Ihandle* ih, WORD winop) xmax = iupAttribGetFloat(ih,"XMAX"); xmin = iupAttribGetFloat(ih,"XMIN"); - winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK? 1: 0); + winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0); if (!iupAttribGet(ih,"LINEX")) { @@ -296,7 +296,7 @@ static void winCanvasUpdateVerScroll(Ihandle* ih, WORD winop) ymax = iupAttribGetFloat(ih,"YMAX"); ymin = iupAttribGetFloat(ih,"YMIN"); - winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK? 1: 0); + winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0); if (!iupAttribGet(ih, "LINEY")) { @@ -372,6 +372,10 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r GetClientRect(ih->handle, &rect); FillRect(hdc, &rect, iupwinBrushGet(color)); } + else + InvalidateRect(ih->handle,NULL,FALSE); /* This will invalidate all area. + Necessary in XP, or overlapping windows will have the effect of partial redrawing. */ + /* always return non zero value */ *result = 1; return 1; @@ -382,7 +386,7 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r { PAINTSTRUCT ps; HDC hdc = BeginPaint(ih->handle, &ps); - iupAttribSetStr(ih, "HDC_WMPAINT", (char*)&hdc); + iupAttribSetStr(ih, "HDC_WMPAINT", (char*)hdc); iupAttribSetStrf(ih, "CLIPRECT", "%d %d %d %d", ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right-ps.rcPaint.left, ps.rcPaint.bottom-ps.rcPaint.top); cb(ih, ih->data->posx, ih->data->posy); @@ -542,27 +546,13 @@ static int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r return iupwinBaseProc(ih, msg, wp, lp, result); } -static void winCanvasRegisterClass(void) -{ - WNDCLASS wndclass; - ZeroMemory(&wndclass, sizeof(WNDCLASS)); - - wndclass.hInstance = iupwin_hinstance; - wndclass.lpszClassName = "IupCanvas"; - wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */ - wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */ - - RegisterClass(&wndclass); -} - static int winCanvasMapMethod(Ihandle* ih) { CLIENTCREATESTRUCT clientstruct; void *clientdata = NULL; char *classname; - DWORD dwStyle = WS_CHILD, dwExStyle = 0; + DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, + dwExStyle = 0; if (!ih->parent) return IUP_ERROR; @@ -574,14 +564,7 @@ static int winCanvasMapMethod(Ihandle* ih) } if (ih->firstchild) /* can be a container */ - { - dwStyle |= WS_CLIPSIBLINGS; - - if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED")) - dwExStyle |= WS_EX_COMPOSITED; - else - dwStyle |= WS_CLIPCHILDREN; - } + iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle); if (iupAttribGetBoolean(ih, "MDICLIENT")) { @@ -693,6 +676,21 @@ static void winCanvasReleaseMethod(Iclass* ic) UnregisterClass("IupCanvas", iupwin_hinstance); } +static void winCanvasRegisterClass(void) +{ + WNDCLASS wndclass; + ZeroMemory(&wndclass, sizeof(WNDCLASS)); + + wndclass.hInstance = iupwin_hinstance; + wndclass.lpszClassName = "IupCanvas"; + wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc; + wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); + wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */ + wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */ + + RegisterClass(&wndclass); +} + void iupdrvCanvasInitClass(Iclass* ic) { if (!iupwinClassExist("IupCanvas")) diff --git a/iup/src/win/iupwin_common.c b/iup/src/win/iupwin_common.c index a1a7c0f..ba68b78 100755 --- a/iup/src/win/iupwin_common.c +++ b/iup/src/win/iupwin_common.c @@ -94,16 +94,17 @@ void iupdrvBaseLayoutUpdateMethod(Ihandle *ih) SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOOWNERZORDER); } -void iupdrvDisplayRedraw(Ihandle *ih) +void iupdrvRedrawNow(Ihandle *ih) { /* REDRAW Now */ - RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN|RDW_UPDATENOW); + RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_UPDATENOW); } -void iupdrvDisplayUpdate(Ihandle *ih) +void iupdrvPostRedraw(Ihandle *ih) { /* Post a REDRAW */ - RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN); + /* can NOT use RDW_NOCHILDREN because IupList has internal children that needs to be redraw */ + RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT); } void iupdrvScreenToClient(Ihandle* ih, int *x, int *y) @@ -534,6 +535,8 @@ int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value) void iupdrvSetVisible(Ihandle* ih, int visible) { + if (iupStrEqual(ih->iclass->name, "colorbar")) + ih=ih; ShowWindow(ih->handle, visible? SW_SHOWNORMAL: SW_HIDE); } @@ -618,6 +621,18 @@ char* iupdrvBaseGetClientSizeAttrib(Ihandle* ih) #define IDC_HELP MAKEINTRESOURCE(32651) #endif +static HCURSOR winLoadComCtlCursor(LPCTSTR lpCursorName) +{ + HCURSOR cur = NULL; + HINSTANCE hinstDll = LoadLibrary("comctl32.dll"); + if (hinstDll) + { + cur = LoadCursor(hinstDll, lpCursorName); + FreeLibrary(hinstDll); + } + return cur; +} + static HCURSOR winGetCursor(Ihandle* ih, const char* name) { static struct { @@ -649,7 +664,7 @@ static HCURSOR winGetCursor(Ihandle* ih, const char* name) {"APPSTARTING", IDC_APPSTARTING} }; - HCURSOR cur; + HCURSOR cur = NULL; char str[50]; int i, count = sizeof(table)/sizeof(table[0]); @@ -676,14 +691,22 @@ static HCURSOR winGetCursor(Ihandle* ih, const char* name) if (i == count) { /* check other system cursors */ - /* cursor PEN is handled here */ + if (iupStrEqualNoCase(name, "PEN")) - name = "CURSOR_PEN"; + name = "CURSOR_PEN"; /* name in "iup.rc" */ /* check for an name defined cursor */ cur = iupImageGetCursor(name); } + if (!cur) + { + if (iupStrEqualNoCase(name, "SPLITTER_VERT")) + cur = winLoadComCtlCursor(MAKEINTRESOURCE(107)); + else if (iupStrEqualNoCase(name, "SPLITTER_HORIZ")) + cur = winLoadComCtlCursor(MAKEINTRESOURCE(135)); + } + iupAttribSetStr(ih, str, (char*)cur); return cur; } @@ -758,29 +781,29 @@ int iupwinButtonUp(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp) if (msg==WM_LBUTTONUP) { b = IUP_BUTTON1; - iupKEYSETBUTTON1(status); + iupKEY_SETBUTTON1(status); } else if (msg==WM_MBUTTONUP) { b = IUP_BUTTON2; - iupKEYSETBUTTON2(status); + iupKEY_SETBUTTON2(status); } else if (msg==WM_RBUTTONUP) { b = IUP_BUTTON3; - iupKEYSETBUTTON3(status); + iupKEY_SETBUTTON3(status); } else if (msg==WM_XBUTTONUP) { if (HIWORD(wp) == XBUTTON1) { b = IUP_BUTTON4; - iupKEYSETBUTTON4(status); + iupKEY_SETBUTTON4(status); } else { b = IUP_BUTTON5; - iupKEYSETBUTTON5(status); + iupKEY_SETBUTTON5(status); } } @@ -807,6 +830,14 @@ int iupwinMouseMove(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp) return 0; } +void iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle) +{ + *dwStyle |= WS_CLIPCHILDREN; + + if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED")) + *dwExStyle |= WS_EX_COMPOSITED; +} + int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle) { ih->serial = iupDialogGetChildId(ih); diff --git a/iup/src/win/iupwin_dialog.c b/iup/src/win/iupwin_dialog.c index 39fdc0c..c13b88d 100755 --- a/iup/src/win/iupwin_dialog.c +++ b/iup/src/win/iupwin_dialog.c @@ -102,9 +102,9 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu else { int has_titlebar = iupAttribGetBoolean(ih, "MAXBOX") || - iupAttribGetBoolean(ih, "MINBOX") || - iupAttribGetBoolean(ih, "MENUBOX") || - IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ + iupAttribGetBoolean(ih, "MINBOX") || + iupAttribGetBoolean(ih, "MENUBOX") || + IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */ *caption = 0; if (has_titlebar) @@ -118,14 +118,17 @@ void iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu *border = 0; if (iupAttribGetBoolean(ih, "RESIZE")) { + /* has_border */ *border = GetSystemMetrics(SM_CXFRAME); /* Thickness of the sizing border around the perimeter of a window */ } /* that can be resized, in pixels. */ else if (has_titlebar) { + /* has_border */ *border = GetSystemMetrics(SM_CXFIXEDFRAME); /* Thickness of the frame around the perimeter of a window */ } /* that has a caption but is not sizable, in pixels. */ else if (iupAttribGetBoolean(ih, "BORDER")) { + /* has_border */ *border = GetSystemMetrics(SM_CXBORDER); } } @@ -712,28 +715,27 @@ static int winDialogMapMethod(Ihandle* ih) } if (iupAttribGetBoolean(ih, "RESIZE")) + { dwStyle |= WS_THICKFRAME; + has_border = 1; + } else iupAttribSetStr(ih, "MAXBOX", "NO"); /* Must also remove this to RESIZE=NO work */ - if (iupAttribGetBoolean(ih, "MAXBOX")) { dwStyle |= WS_MAXIMIZEBOX; has_titlebar = 1; } - if (iupAttribGetBoolean(ih, "MINBOX")) { dwStyle |= WS_MINIMIZEBOX; has_titlebar = 1; } - if (iupAttribGetBoolean(ih, "MENUBOX")) { dwStyle |= WS_SYSMENU; has_titlebar = 1; } - if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar) has_border = 1; @@ -815,10 +817,7 @@ static int winDialogMapMethod(Ihandle* ih) if (iupAttribGetBoolean(ih, "DIALOGFRAME") && native_parent) dwExStyle |= WS_EX_DLGMODALFRAME; /* this will hide the MENUBOX but not the close button */ - if (iupAttribGetBoolean(ih, "COMPOSITED")) - dwExStyle |= WS_EX_COMPOSITED; - else - dwStyle |= WS_CLIPCHILDREN; + iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle); if (iupAttribGetBoolean(ih, "HELPBUTTON")) dwExStyle |= WS_EX_CONTEXTHELP; @@ -878,7 +877,6 @@ static int winDialogMapMethod(Ihandle* ih) /* Reset attributes handled during creation that */ /* also can be changed later, and can be consulted from the native system. */ iupAttribSetStr(ih, "TITLE", NULL); - iupAttribSetStr(ih, "BORDER", NULL); /* Ignore VISIBLE before mapping */ iupAttribSetStr(ih, "VISIBLE", NULL); @@ -956,7 +954,7 @@ static int winDialogSetBgColorAttrib(Ihandle* ih, const char* value) { iupAttribStoreStr(ih, "_IUPWIN_BACKGROUND_COLOR", value); iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", NULL); - RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */ + RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */ return 1; } return 0; @@ -973,7 +971,7 @@ static int winDialogSetBackgroundAttrib(Ihandle* ih, const char* value) { iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_COLOR", NULL); iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", (char*)hBitmap); - RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */ + RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */ return 1; } } diff --git a/iup/src/win/iupwin_draw.c b/iup/src/win/iupwin_draw.c index 4a810e6..f663d20 100755 --- a/iup/src/win/iupwin_draw.c +++ b/iup/src/win/iupwin_draw.c @@ -14,12 +14,16 @@ #include <stdio.h> #include <string.h> #include <memory.h> +#include <math.h> #include "iup.h" #include "iup_attrib.h" #include "iup_class.h" #include "iup_str.h" +#include "iup_object.h" +#include "iup_image.h" +#include "iup_draw.h" #include "iupwin_drv.h" #include "iupwin_info.h" @@ -38,6 +42,11 @@ #endif +/****************************************************************************** + Themes +*******************************************************************************/ + + typedef HTHEME (STDAPICALLTYPE *_winThemeOpenData)(HWND hwnd, LPCWSTR pszClassList); typedef HRESULT (STDAPICALLTYPE *_winThemeCloseData)(HTHEME hTheme); typedef HRESULT (STDAPICALLTYPE *_winThemeDrawBackground)(HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect); @@ -61,58 +70,6 @@ static int winDrawThemeEnabled(void) return winThemeOpenData? 1: 0; } -void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style) -{ - COLORREF oldcolor; - RECT rect; - HFONT hOldFont = SelectObject(hDC, hFont); - - rect.left = x; - rect.top = y; - rect.right = x+width; - rect.bottom = y+height; - - SetTextAlign(hDC, TA_TOP|TA_LEFT); - SetBkMode(hDC, TRANSPARENT); - oldcolor = SetTextColor(hDC, fgcolor); - - DrawText(hDC, text, -1, &rect, style|DT_NOCLIP); - - SelectObject(hDC, hOldFont); - SetTextColor(hDC, oldcolor); - SetBkMode(hDC, OPAQUE); -} - -void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp) -{ - HDC hMemDC = CreateCompatibleDC(hDC); - SelectObject(hMemDC, hBitmap); - - if (bpp == 32 && winAlphaBlend) - { - BLENDFUNCTION blendfunc; - blendfunc.BlendOp = AC_SRC_OVER; - blendfunc.BlendFlags = 0; - blendfunc.SourceConstantAlpha = 0xFF; - blendfunc.AlphaFormat = AC_SRC_ALPHA; - - winAlphaBlend(hDC, x, y, width, height, - hMemDC, 0, 0, width, height, - blendfunc); - } - else if (bpp == 8 && hMask) - MaskBlt(hDC, x, y, width, height, - hMemDC, 0, 0, - hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000)); - else - BitBlt(hDC, x, y, width, height, - hMemDC, 0, 0, - SRCCOPY); - - - DeleteDC(hMemDC); -} - void iupwinDrawInit(void) { if (!winAlphaBlend) @@ -201,7 +158,7 @@ int iupwinDrawGetThemeTabsBgColor(HWND hWnd, COLORREF *color) if (!hTheme) return 0; - if (iupwinIsVista()) + if (iupwinIsVistaOrNew()) ret = winThemeGetColor(hTheme, TABP_AEROWIZARDBODY, TIS_NORMAL, TMT_FILLCOLORHINT, color); else ret = winThemeGetColor(hTheme, TABP_BODY, TIS_NORMAL, TMT_FILLCOLORHINT, color); @@ -246,6 +203,79 @@ int iupwinDrawGetThemeFrameFgColor(HWND hWnd, COLORREF *color) return (ret == S_OK)? 1: 0; } +void iupwinDrawRemoveTheme(HWND hwnd) +{ + typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList); + static winSetWindowTheme mySetWindowTheme = NULL; + if (!mySetWindowTheme) + { + HMODULE hinstDll = LoadLibrary("uxtheme.dll"); + if (hinstDll) + mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme"); + } + + if (mySetWindowTheme) + mySetWindowTheme(hwnd, L"", L""); +} + + +/****************************************************************************** + Utilities +*******************************************************************************/ + + +void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style) +{ + COLORREF oldcolor; + RECT rect; + HFONT hOldFont = SelectObject(hDC, hFont); + + rect.left = x; + rect.top = y; + rect.right = x+width; + rect.bottom = y+height; + + SetTextAlign(hDC, TA_TOP|TA_LEFT); + SetBkMode(hDC, TRANSPARENT); + oldcolor = SetTextColor(hDC, fgcolor); + + DrawText(hDC, text, -1, &rect, style|DT_NOCLIP); + + SelectObject(hDC, hOldFont); + SetTextColor(hDC, oldcolor); + SetBkMode(hDC, OPAQUE); +} + +void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp) +{ + HDC hMemDC = CreateCompatibleDC(hDC); + SelectObject(hMemDC, hBitmap); + + if (bpp == 32 && winAlphaBlend) + { + BLENDFUNCTION blendfunc; + blendfunc.BlendOp = AC_SRC_OVER; + blendfunc.BlendFlags = 0; + blendfunc.SourceConstantAlpha = 0xFF; + blendfunc.AlphaFormat = AC_SRC_ALPHA; + + winAlphaBlend(hDC, x, y, width, height, + hMemDC, 0, 0, width, height, + blendfunc); + } + else if (bpp == 8 && hMask) + MaskBlt(hDC, x, y, width, height, + hMemDC, 0, 0, + hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000)); + else + BitBlt(hDC, x, y, width, height, + hMemDC, 0, 0, + SRCCOPY); + + + DeleteDC(hMemDC); +} + static int winDrawGetStateId(int itemState) { if (itemState & ODS_DISABLED) @@ -282,21 +312,6 @@ void iupdrvDrawFocusRect(Ihandle* ih, void* gc, int x, int y, int w, int h) DrawFocusRect(hDC, &rect); } -void iupwinDrawRemoveTheme(HWND hwnd) -{ - typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList); - static winSetWindowTheme mySetWindowTheme = NULL; - if (!mySetWindowTheme) - { - HMODULE hinstDll = LoadLibrary("uxtheme.dll"); - if (hinstDll) - mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme"); - } - - if (mySetWindowTheme) - mySetWindowTheme(hwnd, L"", L""); -} - void iupwinDrawParentBackground(Ihandle* ih, HDC hDC, RECT* rect) { unsigned char r=0, g=0, b=0; @@ -326,3 +341,226 @@ void iupwinDrawDestroyBitmapDC(iupwinBitmapDC *bmpDC) DeleteDC(bmpDC->hBitmapDC); } + +/****************************************************************************** + Simple Draw +*******************************************************************************/ + +struct _IdrawCanvas{ + Ihandle* ih; + int w, h; + + int release_dc; + HBITMAP hBitmap, hOldBitmap; + HDC hBitmapDC, hDC; +}; + +IdrawCanvas* iupDrawCreateCanvas(Ihandle* ih) +{ + IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas)); + RECT rect; + + /* valid only inside the ACTION callback of an IupCanvas */ + dc->hDC = (HDC)IupGetAttribute(ih, "HDC_WMPAINT"); + if (!dc->hDC) + { + dc->hDC = GetDC(ih->handle); + dc->release_dc = 1; + } + + GetClientRect(ih->handle, &rect); + dc->w = rect.right - rect.left; + dc->h = rect.bottom - rect.top; + + dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h); + dc->hBitmapDC = CreateCompatibleDC(dc->hDC); + dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap); + + SetBkMode(dc->hBitmapDC, TRANSPARENT); + SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT); + + return dc; +} + +void iupDrawKillCanvas(IdrawCanvas* dc) +{ + SelectObject(dc->hBitmapDC, dc->hOldBitmap); + DeleteObject(dc->hBitmap); + DeleteDC(dc->hBitmapDC); + if (dc->release_dc) + DeleteDC(dc->hDC); + + free(dc); +} + +void iupDrawUpdateSize(IdrawCanvas* dc) +{ + int w, h; + RECT rect; + GetClientRect(dc->ih->handle, &rect); + w = rect.right - rect.left; + h = rect.bottom - rect.top; + + if (w != dc->w || h != dc->h) + { + SelectObject(dc->hBitmapDC, dc->hOldBitmap); + DeleteObject(dc->hBitmap); + DeleteDC(dc->hBitmapDC); + + dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h); + dc->hBitmapDC = CreateCompatibleDC(dc->hDC); + dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap); + + SetBkMode(dc->hBitmapDC, TRANSPARENT); + SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT); + } +} + +void iupDrawFlush(IdrawCanvas* dc) +{ + BitBlt(dc->hDC, 0, 0, dc->w, dc->h, dc->hBitmapDC, 0, 0, SRCCOPY); +} + +void iupDrawGetSize(IdrawCanvas* dc, int *w, int *h) +{ + if (w) *w = dc->w; + if (h) *h = dc->h; +} + +void iupDrawParentBackground(IdrawCanvas* dc) +{ + unsigned char r=0, g=0, b=0; + char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih); + iupStrToRGB(color, &r, &g, &b); + iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1); +} + +void iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + RECT rect; + rect.left = x1; rect.top = y1; rect.right = x2+1; rect.bottom = y2+1; + SetDCBrushColor(dc->hBitmapDC, RGB(r,g,b)); + if (filled) + FillRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH)); + else + FrameRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH)); +} + +void iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b) +{ + POINT line_poly[2]; + HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b)); + HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen); + line_poly[0].x = x1; + line_poly[0].y = y1; + line_poly[1].x = x2; + line_poly[1].y = y2; + Polyline(dc->hBitmapDC, line_poly, 2); + SelectObject(dc->hBitmapDC, hPenOld); + DeleteObject(hPen); +} + +#define IUP_DEG2RAD 0.01745329252 /* degrees to radians (rad = CD_DEG2RAD * deg) */ + +static int winDrawCalcArc(int c1, int c2, double a, int start) +{ + double proj, off; + if (start) + proj = cos(IUP_DEG2RAD * a); + else + proj = sin(IUP_DEG2RAD * a); + off = (c2+c1)/2.0 + (c2-c1+1)*proj/2.0; + return iupROUND(off); +} + +void iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + int XStartArc = winDrawCalcArc(x1, x2, a1, 1); + int XEndArc = winDrawCalcArc(x1, x2, a2, 0); + int YStartArc = winDrawCalcArc(y1, y2, a1, 1); + int YEndArc = winDrawCalcArc(y1, y2, a2, 0); + + if (filled) + { + HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b)); + HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush); + BeginPath(dc->hBitmapDC); + Pie(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc); + EndPath(dc->hBitmapDC); + FillPath(dc->hBitmapDC); + SelectObject(dc->hBitmapDC, hBrushOld); + DeleteObject(hBrush); + } + else + { + HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b)); + HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen); + Arc(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc); + SelectObject(dc->hBitmapDC, hPenOld); + DeleteObject(hPen); + } +} + +void iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled) +{ + if (filled) + { + HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b)); + HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush); + BeginPath(dc->hBitmapDC); + Polygon(dc->hBitmapDC, (POINT*)points, count); + EndPath(dc->hBitmapDC); + FillPath(dc->hBitmapDC); + SelectObject(dc->hBitmapDC, hBrushOld); + DeleteObject(hBrush); + } + else + { + HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b)); + HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen); + Polyline(dc->hBitmapDC, (POINT*)points, count); + SelectObject(dc->hBitmapDC, hPenOld); + DeleteObject(hPen); + } +} + +void iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2) +{ + HRGN clip_hrgn = CreateRectRgn(x1, y1, x2, y2); + SelectClipRgn(dc->hBitmapDC, clip_hrgn); + DeleteObject(clip_hrgn); +} + +void iupDrawResetClip(IdrawCanvas* dc) +{ + SelectClipRgn(dc->hBitmapDC, NULL); +} + +void iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b) +{ + HFONT hOldFont, hFont = (HFONT)IupGetAttribute(dc->ih, "HFONT"); + SetTextColor(dc->hBitmapDC, RGB(r, g, b)); + hOldFont = SelectObject(dc->hBitmapDC, hFont); + TextOut(dc->hBitmapDC, x, y, text, len); + SelectObject(dc->hBitmapDC, hOldFont); +} + +void iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y) +{ + int img_w, img_h, bpp; + HBITMAP hMask = NULL; + HBITMAP hBitmap = iupImageGetImage(name, dc->ih, make_inactive); + if (!hBitmap) + return; + + /* must use this info, since image can be a driver image loaded from resources */ + iupdrvImageGetInfo(hBitmap, &img_w, &img_h, &bpp); + + if (bpp == 8) + hMask = iupdrvImageCreateMask(IupGetHandle(name)); + + iupwinDrawBitmap(dc->hBitmapDC, hBitmap, hMask, x, y, img_w, img_h, bpp); + + if (hMask) + DeleteObject(hMask); +} diff --git a/iup/src/win/iupwin_drv.h b/iup/src/win/iupwin_drv.h index 3372c1a..7407a7a 100755 --- a/iup/src/win/iupwin_drv.h +++ b/iup/src/win/iupwin_drv.h @@ -77,6 +77,7 @@ int iupwinBaseContainerProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT /* Creates the Window with native parent and child ID, associate HWND with Ihandle*, and replace the WinProc by iupwinBaseWinProc */ int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle); +void iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle); int iupwinClassExist(const char* name); int iupwinGetColorRef(Ihandle *ih, char *name, COLORREF *color); @@ -97,8 +98,8 @@ char* iupwinGetClipboardText(Ihandle* ih); int iupwinGetScreenRes(void); /* 1 point = 1/72 inch */ /* pixel = (point/72)*(pixel/inch) */ -#define IUPWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */ -#define IUPWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */ +#define iupWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */ +#define iupWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */ /* child window identifier of the first MDI child window created, diff --git a/iup/src/win/iupwin_filedlg.c b/iup/src/win/iupwin_filedlg.c index da66b4b..26994e5 100755 --- a/iup/src/win/iupwin_filedlg.c +++ b/iup/src/win/iupwin_filedlg.c @@ -63,7 +63,7 @@ static INT CALLBACK winFileDlgBrowseCallback(HWND hWnd, UINT uMsg, LPARAM lParam } else if (uMsg == BFFM_SELCHANGED) { - char* buffer = iupStrGetMemory(MAX_FILENAME_SIZE); + char buffer[MAX_FILENAME_SIZE]; ITEMIDLIST* selecteditem = (ITEMIDLIST*)lParam; buffer[0] = 0; SHGetPathFromIDList(selecteditem, buffer); @@ -90,7 +90,7 @@ static void winFileDlgGetFolder(Ihandle *ih) browseinfo.pszDisplayName = buffer; browseinfo.lpfn = winFileDlgBrowseCallback; browseinfo.lParam = (LPARAM)ih; - browseinfo.ulFlags = BIF_NEWDIALOGSTYLE; + browseinfo.ulFlags = IupGetGlobal("_IUPWIN_COINIT_MULTITHREADED")? 0: BIF_NEWDIALOGSTYLE; browseinfo.hwndOwner = parent; selecteditem = SHBrowseForFolder(&browseinfo); @@ -112,6 +112,37 @@ static void winFileDlgGetFolder(Ihandle *ih) /************************************************************************************************/ +static int winFileDlgGetSelectedFile(Ihandle* ih, HWND hWnd, char* filename) +{ + int ret = CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE); + if (ret < 0) + return 0; + + if (iupAttribGetBoolean(ih, "MULTIPLEFILES")) + { + /* check if there are more than 1 files and return only the first one */ + int found = 0; + while(*filename != 0) + { + if (*filename == '"') + { + if (!found) + found = 1; + else + { + *(filename-1) = 0; + return 1; + } + } + if (found) + *filename = *(filename+1); + filename++; + } + } + + return 1; +} + static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam) { (void)wParam; @@ -152,16 +183,15 @@ static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wPar IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB"); if (cb) { - char* filename = iupStrGetMemory(MAX_FILENAME_SIZE); - if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE) + char filename[MAX_FILENAME_SIZE]; + if (winFileDlgGetSelectedFile(ih, hWnd, filename)) { int ret; char* file_msg; if (!iupdrvIsFile(filename)) - break; - - if (pofn->hdr.code == CDN_FILEOK) + file_msg = "OTHER"; + else if (pofn->hdr.code == CDN_FILEOK) file_msg = "OK"; else file_msg = "SELECT"; @@ -267,9 +297,9 @@ static UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT)lParam; Ihandle* ih = (Ihandle*)GetWindowLongPtr(hWnd, DWLP_USER); IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB"); - char* filename = iupStrGetMemory(MAX_FILENAME_SIZE); + char filename[MAX_FILENAME_SIZE]; iupAttribSetStr(ih, "PREVIEWDC", (char*)lpDrawItem->hDC); - if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE) + if (winFileDlgGetSelectedFile(ih, hWnd, filename)) { if (iupdrvIsFile(filename)) cb(ih, filename, "PAINT"); @@ -324,16 +354,15 @@ static UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa case CDN_SELCHANGE: { HWND hWndPreview = GetDlgItem(hWnd, IUP_PREVIEWCANVAS); - char* filename = iupStrGetMemory(MAX_FILENAME_SIZE); - if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE) + char filename[MAX_FILENAME_SIZE]; + if (winFileDlgGetSelectedFile(ih, hWnd, filename)) { int ret; char* file_msg; if (!iupdrvIsFile(filename)) - break; - - if (pofn->hdr.code == CDN_FILEOK) + file_msg = "OTHER"; + else if (pofn->hdr.code == CDN_FILEOK) file_msg = "OK"; else file_msg = "SELECT"; @@ -520,9 +549,14 @@ static int winFileDlgPopup(Ihandle *ih, int x, int y) if (iupAttribGetBoolean(ih, "MULTIPLEFILES")) { int i = 0; - + + char* dir = iupStrFileGetPath(openfilename.lpstrFile); /* the first part is the directory already */ + iupAttribStoreStr(ih, "DIRECTORY", dir); + free(dir); + /* If there is more than one file, replace terminator by the separator */ - if (openfilename.lpstrFile && openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 && openfilename.nFileOffset>0) + if (openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 && + openfilename.nFileOffset>0) { while (openfilename.lpstrFile[i] != 0 || openfilename.lpstrFile[i+1] != 0) { @@ -534,12 +568,16 @@ static int winFileDlgPopup(Ihandle *ih, int x, int y) } iupAttribSetStr(ih, "STATUS", "0"); - iupAttribSetStr(ih, "FILEEXIST", NULL); + iupAttribSetStr(ih, "FILEEXIST", "YES"); } else { if (iupdrvIsFile(openfilename.lpstrFile)) /* check if file exists */ { + char* dir = iupStrFileGetPath(openfilename.lpstrFile); + iupAttribStoreStr(ih, "DIRECTORY", dir); + free(dir); + iupAttribSetStr(ih, "FILEEXIST", "YES"); iupAttribSetStr(ih, "STATUS", "0"); } diff --git a/iup/src/win/iupwin_focus.c b/iup/src/win/iupwin_focus.c index 63da02d..2328dea 100755 --- a/iup/src/win/iupwin_focus.c +++ b/iup/src/win/iupwin_focus.c @@ -32,7 +32,7 @@ /* Since Windows XP, the focus feedback only appears after the user press a key. Except for the IupText where the feedback is the caret. - Before that if you click in a control the focus feedback will be hidden. + Before a key is pressed if you click in a control the focus feedback will be hidden. We manually send WM_CHANGEUISTATE because we do not use IsDialogMessage anymore, and the focus feedback was not shown even after the used press a key. @@ -43,19 +43,28 @@ void iupdrvSetFocus(Ihandle *ih) { SetFocus(ih->handle); - SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0); + + /* See comments above */ + SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0); /* clear+hidefocus=showfocus */ } void iupwinWmSetFocus(Ihandle *ih) { Ihandle* dialog = IupGetDialog(ih); if (ih != dialog) - iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu */ + iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu and here. */ else { /* if a control inside that dialog had the focus, then reset to it when the dialog gets the focus */ Ihandle* lastfocus = (Ihandle*)iupAttribGet(dialog, "_IUPWIN_LASTFOCUS"); - if (lastfocus) IupSetFocus(lastfocus); + if (lastfocus) + { + /* call the callback and update current focus before changing it again */ + iupCallGetFocusCb(ih); + + IupSetFocus(lastfocus); + return; + } } iupCallGetFocusCb(ih); diff --git a/iup/src/win/iupwin_font.c b/iup/src/win/iupwin_font.c index 659e2d9..c10befb 100755 --- a/iup/src/win/iupwin_font.c +++ b/iup/src/win/iupwin_font.c @@ -70,7 +70,7 @@ static IwinFont* winFindFont(const char *standardfont) if (height < 0) height_pixels = height; /* already in pixels */ else - height_pixels = -IUPWIN_PT2PIXEL(height, res); + height_pixels = -iupWIN_PT2PIXEL(height, res); if (height_pixels == 0) return NULL; @@ -119,7 +119,7 @@ static void winFontFromLogFont(LOGFONT* logfont, char * font) int is_strikeout = logfont->lfStrikeOut; int height_pixels = logfont->lfHeight; /* negative value */ int res = iupwinGetScreenRes(); - int height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */ + int height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */ sprintf(font, "%s, %s%s%s%s %d", logfont->lfFaceName, is_bold?"Bold ":"", diff --git a/iup/src/win/iupwin_fontdlg.c b/iup/src/win/iupwin_fontdlg.c index 0602441..ce27cf2 100755 --- a/iup/src/win/iupwin_fontdlg.c +++ b/iup/src/win/iupwin_fontdlg.c @@ -68,7 +68,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y) standardfont = iupAttribGet(ih, "VALUE"); if (!standardfont) - return IUP_ERROR; + standardfont = IupGetGlobal("DEFAULTFONT"); /* parse the old format first */ if (!iupFontParseWin(standardfont, typeface, &height, &is_bold, &is_italic, &is_underline, &is_strikeout)) @@ -81,7 +81,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y) if (height < 0) height_pixels = height; /* already in pixels */ else - height_pixels = -IUPWIN_PT2PIXEL(height, res); + height_pixels = -iupWIN_PT2PIXEL(height, res); if (height_pixels == 0) return IUP_ERROR; @@ -134,7 +134,7 @@ static int winFontDlgPopup(Ihandle* ih, int x, int y) if (height < 0) /* not an error, use old value as a reference for the units */ height = height_pixels; /* return in pixels */ else - height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */ + height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */ iupAttribSetStrf(ih, "VALUE", "%s, %s%s%s%s %d", logfont.lfFaceName, is_bold?"Bold ":"", diff --git a/iup/src/win/iupwin_frame.c b/iup/src/win/iupwin_frame.c index 0949b5d..3f56aed 100755 --- a/iup/src/win/iupwin_frame.c +++ b/iup/src/win/iupwin_frame.c @@ -47,6 +47,27 @@ void iupdrvFrameGetDecorOffset(Ihandle* ih, int *x, int *y) } } +static char* winFrameGetBgColorAttrib(Ihandle* ih) +{ + if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) + return NULL; + else + return iupBaseNativeParentGetBgColorAttrib(ih); +} + +static int winFrameSetBgColorAttrib(Ihandle* ih, const char* value) +{ + (void)value; + + if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) + { + IupUpdate(ih); /* post a redraw */ + return 1; + } + else + return 0; +} + static void winFrameDrawText(HDC hDC, const char* text, int x, int y, COLORREF fgcolor) { COLORREF oldcolor; @@ -126,6 +147,16 @@ static void winFrameDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem) DrawEdge(hDC, &drawitem->rcItem, EDGE_SUNKEN, BF_RECT); else DrawEdge(hDC, &drawitem->rcItem, EDGE_ETCHED, BF_RECT); + + if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR")) + { + unsigned char r=0, g=0, b=0; + char* color = iupAttribGetStr(ih, "BGCOLOR"); + iupStrToRGB(color, &r, &g, &b); + SetDCBrushColor(hDC, RGB(r,g,b)); + InflateRect(&drawitem->rcItem, -2, -2); + FillRect(hDC, &drawitem->rcItem, (HBRUSH)GetStockObject(DC_BRUSH)); + } } iupwinDrawDestroyBitmapDC(&bmpDC); @@ -169,11 +200,13 @@ static int winFrameMapMethod(Ihandle* ih) title = iupAttribGet(ih, "TITLE"); if (title) iupAttribSetStr(ih, "_IUPFRAME_HAS_TITLE", "1"); - - if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED")) - dwExStyle |= WS_EX_COMPOSITED; else - dwStyle |= WS_CLIPCHILDREN; + { + if (iupAttribGet(ih, "BGCOLOR")) + iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1"); + } + + iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle); if (!iupwinCreateWindowEx(ih, "BUTTON", dwExStyle, dwStyle)) return IUP_ERROR; @@ -195,7 +228,7 @@ void iupdrvFrameInitClass(Iclass* ic) /* Driver Dependent Attribute functions */ /* Visual */ - iupClassRegisterAttribute(ic, "BGCOLOR", iupBaseNativeParentGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); + iupClassRegisterAttribute(ic, "BGCOLOR", winFrameGetBgColorAttrib, winFrameSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); /* Special */ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED); diff --git a/iup/src/win/iupwin_globalattrib.c b/iup/src/win/iupwin_globalattrib.c index a176925..bcd6355 100755 --- a/iup/src/win/iupwin_globalattrib.c +++ b/iup/src/win/iupwin_globalattrib.c @@ -148,6 +148,11 @@ int iupdrvSetGlobal(const char *name, const char *value) winGlobalSendKey(key, 0x03); return 0; } + if (iupStrEqual(name, "DLL_HINSTANCE")) + { + iupwin_dll_hinstance = (HINSTANCE)value; + return 0; + } return 1; } @@ -239,5 +244,7 @@ char *iupdrvGetGlobal(const char *name) return "YES"; return "NO"; } + if (iupStrEqual(name, "DLL_HINSTANCE")) + return (char*)iupwin_dll_hinstance; return NULL; } diff --git a/iup/src/win/iupwin_info.c b/iup/src/win/iupwin_info.c index 8ea7dd4..4d57289 100755 --- a/iup/src/win/iupwin_info.c +++ b/iup/src/win/iupwin_info.c @@ -18,7 +18,7 @@ #include "iupwin_info.h" -int iupwinIsVista(void) +int iupwinIsVistaOrNew(void) { OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); diff --git a/iup/src/win/iupwin_info.h b/iup/src/win/iupwin_info.h index d39bae0..8d461fb 100755 --- a/iup/src/win/iupwin_info.h +++ b/iup/src/win/iupwin_info.h @@ -16,7 +16,7 @@ int iupwinGetSystemMajorVersion(void); int iupwinGetComCtl32Version(void); char* iupwinGetSystemLanguage(void); int iupwinIsAppThemed(void); -int iupwinIsVista(void); +int iupwinIsVistaOrNew(void); /* color */ void iupwinGetSysColor(char* color, int wincolor); diff --git a/iup/src/win/iupwin_key.c b/iup/src/win/iupwin_key.c index 921ed94..899e837 100755 --- a/iup/src/win/iupwin_key.c +++ b/iup/src/win/iupwin_key.c @@ -317,32 +317,32 @@ int iupwinKeyEvent(Ihandle* ih, int wincode, int press) void iupwinButtonKeySetStatus(WORD keys, char* status, int doubleclick) { if (keys & MK_SHIFT) - iupKEYSETSHIFT(status); + iupKEY_SETSHIFT(status); if (keys & MK_CONTROL) - iupKEYSETCONTROL(status); + iupKEY_SETCONTROL(status); if (keys & MK_LBUTTON) - iupKEYSETBUTTON1(status); + iupKEY_SETBUTTON1(status); if (keys & MK_MBUTTON) - iupKEYSETBUTTON2(status); + iupKEY_SETBUTTON2(status); if (keys & MK_RBUTTON) - iupKEYSETBUTTON3(status); + iupKEY_SETBUTTON3(status); if (doubleclick) - iupKEYSETDOUBLE(status); + iupKEY_SETDOUBLE(status); if (GetKeyState(VK_MENU) & 0x8000) - iupKEYSETALT(status); + iupKEY_SETALT(status); if ((GetKeyState(VK_LWIN) & 0x8000) || (GetKeyState(VK_RWIN) & 0x8000)) - iupKEYSETSYS(status); + iupKEY_SETSYS(status); if (keys & MK_XBUTTON1) - iupKEYSETBUTTON4(status); + iupKEY_SETBUTTON4(status); if (keys & MK_XBUTTON2) - iupKEYSETBUTTON5(status); + iupKEY_SETBUTTON5(status); } diff --git a/iup/src/win/iupwin_label.c b/iup/src/win/iupwin_label.c index d5a1f53..95dd10c 100755 --- a/iup/src/win/iupwin_label.c +++ b/iup/src/win/iupwin_label.c @@ -173,7 +173,7 @@ static int winLabelSetAlignmentAttrib(Ihandle* ih, const char* value) else /* "ATOP" */ ih->data->vert_alignment = IUP_ALIGN_ATOP; - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } return 0; } @@ -197,7 +197,7 @@ static int winLabelSetPaddingAttrib(Ihandle* ih, const char* value) iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); if (ih->handle && ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); return 0; } @@ -211,7 +211,7 @@ static int winLabelSetWordWrapAttrib(Ihandle* ih, const char* value) else ih->data->text_style &= ~DT_WORDBREAK; - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } return 1; @@ -226,7 +226,7 @@ static int winLabelSetEllipsisAttrib(Ihandle* ih, const char* value) else ih->data->text_style &= ~DT_END_ELLIPSIS; - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } return 1; @@ -240,12 +240,24 @@ static int winLabelSetFgColorAttrib(Ihandle* ih, const char* value) if (iupStrToRGB(value, &r, &g, &b)) { ih->data->fgcolor = RGB(r,g,b); - iupdrvDisplayRedraw(ih); + + if (ih->handle) + iupdrvRedrawNow(ih); } } return 1; } +static int winLabelSetUpdateAttrib(Ihandle* ih, const char* value) +{ + (void)value; + + if (ih->handle) + iupdrvPostRedraw(ih); /* Post a redraw */ + + return 1; +} + static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result) { switch (msg) @@ -257,6 +269,7 @@ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re *result = WVR_HREDRAW|WVR_VREDRAW; return 1; } + break; } } @@ -266,7 +279,7 @@ static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re static int winLabelMapMethod(Ihandle* ih) { char* value; - DWORD dwStyle = WS_CHILD | + DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | SS_NOTIFY; /* SS_NOTIFY is necessary because of the base messages */ if (!ih->parent) @@ -330,7 +343,7 @@ void iupdrvLabelInitClass(Iclass* ic) /* IupLabel only */ iupClassRegisterAttribute(ic, "ALIGNMENT", winLabelGetAlignmentAttrib, winLabelSetAlignmentAttrib, IUPAF_SAMEASSYSTEM, "ALEFT:ACENTER", IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "IMAGE", NULL, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "IMAGE", NULL, winLabelSetUpdateAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "PADDING", iupLabelGetPaddingAttrib, winLabelSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); /* IupLabel Windows and GTK only */ diff --git a/iup/src/win/iupwin_list.c b/iup/src/win/iupwin_list.c index 8fdadb6..cb510b5 100755 --- a/iup/src/win/iupwin_list.c +++ b/iup/src/win/iupwin_list.c @@ -154,6 +154,8 @@ void iupdrvListInsertItem(Ihandle* ih, int pos, const char* value) SendMessage(ih->handle, WIN_INSERTSTRING(ih), pos, (LPARAM)value); SendMessage(ih->handle, WIN_SETITEMDATA(ih), pos, (LPARAM)iupdrvFontGetStringWidth(ih, value)); winListUpdateScrollWidth(ih); + + iupListUpdateOldValue(ih, pos, 0); } void iupdrvListRemoveItem(Ihandle* ih, int pos) @@ -164,8 +166,14 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos) int curpos = SendMessage(ih->handle, WIN_GETCURSEL(ih), 0, 0); if (pos == curpos) { - if (curpos > 0) curpos--; - else curpos++; + if (curpos > 0) + curpos--; + else + { + curpos=1; + if (iupdrvListGetCount(ih)==1) + curpos = -1; /* remove the selection */ + } SendMessage(ih->handle, WIN_SETCURSEL(ih), curpos, 0); } @@ -173,6 +181,8 @@ void iupdrvListRemoveItem(Ihandle* ih, int pos) SendMessage(ih->handle, WIN_DELETESTRING(ih), pos, 0L); winListUpdateScrollWidth(ih); + + iupListUpdateOldValue(ih, pos, 1); } void iupdrvListRemoveAllItems(Ihandle* ih) @@ -220,18 +230,29 @@ static void winListUpdateItemWidth(Ihandle* ih) } } +static int winListSetBgColorAttrib(Ihandle *ih, const char *value) +{ + (void)value; + if (ih->handle) + iupdrvPostRedraw(ih); + return 1; +} + static int winListSetStandardFontAttrib(Ihandle* ih, const char* value) { iupdrvSetStandardFontAttrib(ih, value); - winListUpdateItemWidth(ih); - winListUpdateScrollWidth(ih); + if (ih->handle) + { + winListUpdateItemWidth(ih); + winListUpdateScrollWidth(ih); + } return 1; } static char* winListGetIdValueAttrib(Ihandle* ih, const char* name_id) { int pos = iupListGetPos(ih, name_id); - if (pos != -1) + if (pos >= 0) { int len = SendMessage(ih->handle, WIN_GETTEXTLEN(ih), (WPARAM)pos, 0); char* str = iupStrGetMemory(len+1); @@ -514,8 +535,10 @@ static int winListSetNCAttrib(Ihandle* ih, const char* value) { HWND cbedit = (HWND)iupAttribGet(ih, "_IUPWIN_EDITBOX"); SendMessage(cbedit, EM_LIMITTEXT, ih->data->nc, 0L); + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int winListSetSelectionAttrib(Ihandle* ih, const char* value) @@ -995,13 +1018,27 @@ static int winListEditProc(Ihandle* ih, HWND cbedit, UINT msg, WPARAM wp, LPARAM if (msg==WM_KEYDOWN) /* process K_ANY before text callbacks */ { ret = iupwinBaseProc(ih, msg, wp, lp, result); - if (ret) return 1; + if (ret) + { + iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1"); + *result = 0; + return 1; + } + else + iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL); } switch (msg) { case WM_CHAR: { + if (iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR")) + { + iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL); + *result = 0; + return 1; + } + if ((char)wp == '\b') { if (!winListCallEditCb(ih, cbedit, NULL, 0, -1)) @@ -1301,7 +1338,7 @@ static void winListLayoutUpdateMethod(Ihandle *ih) static int winListMapMethod(Ihandle* ih) { char* class_name; - DWORD dwStyle = WS_CHILD, + DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, dwExStyle = WS_EX_CLIENTEDGE; if (!ih->parent) @@ -1426,7 +1463,7 @@ void iupdrvListInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winListSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED); /* Visual */ - iupClassRegisterAttribute(ic, "BGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); + iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winListSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); /* Special */ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED); diff --git a/iup/src/win/iupwin_loop.c b/iup/src/win/iupwin_loop.c index 7c5dbe7..fd25537 100755 --- a/iup/src/win/iupwin_loop.c +++ b/iup/src/win/iupwin_loop.c @@ -106,6 +106,18 @@ int IupMainLoop(void) return IUP_NOERROR; } +int IupLoopStepWait(void) +{ + MSG msg; + int ret = GetMessage(&msg, NULL, 0, 0); + if (ret == -1) /* error */ + return IUP_ERROR; + if (ret == 0 || /* WM_QUIT */ + winLoopProcessMessage(&msg) == IUP_CLOSE) /* ret != 0 */ + return IUP_CLOSE; + return IUP_DEFAULT; +} + int IupLoopStep(void) { MSG msg; diff --git a/iup/src/win/iupwin_menu.c b/iup/src/win/iupwin_menu.c index 74a8b52..06ad93e 100755 --- a/iup/src/win/iupwin_menu.c +++ b/iup/src/win/iupwin_menu.c @@ -385,7 +385,10 @@ static int winMenuMapMethod(Ihandle* ih) static void winMenuUnMapMethod(Ihandle* ih) { if (iupMenuIsMenuBar(ih)) + { SetMenu(ih->parent->handle, NULL); + ih->parent = NULL; + } DestroyMenu((HMENU)ih->handle); /* DestroyMenu is recursive */ } diff --git a/iup/src/win/iupwin_open.c b/iup/src/win/iupwin_open.c index 7357cde..3629ce4 100755 --- a/iup/src/win/iupwin_open.c +++ b/iup/src/win/iupwin_open.c @@ -76,8 +76,9 @@ int iupdrvOpen(int *argc, char ***argv) iupwin_hinstance = GetModuleHandle(NULL); IupSetGlobal("HINSTANCE", (char*)iupwin_hinstance); } - - CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + + if (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)==RPC_E_CHANGED_MODE) + IupSetGlobal("_IUPWIN_COINIT_MULTITHREADED", "1"); { INITCOMMONCONTROLSEX InitCtrls; diff --git a/iup/src/win/iupwin_progressbar.c b/iup/src/win/iupwin_progressbar.c index 9038d79..4a52cc4 100755 --- a/iup/src/win/iupwin_progressbar.c +++ b/iup/src/win/iupwin_progressbar.c @@ -106,7 +106,7 @@ static int winProgressBarSetFgColorAttrib(Ihandle* ih, const char* value) static int winProgressBarMapMethod(Ihandle* ih) { - DWORD dwStyle = WS_CHILD; + DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS; if (!ih->parent) return IUP_ERROR; diff --git a/iup/src/win/iupwin_tabs.c b/iup/src/win/iupwin_tabs.c index 682f451..b39f7fe 100755 --- a/iup/src/win/iupwin_tabs.c +++ b/iup/src/win/iupwin_tabs.c @@ -232,10 +232,7 @@ static HWND winTabCreatePageWindow(Ihandle* ih) DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, dwExStyle = 0; - if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED")) - dwExStyle |= WS_EX_COMPOSITED; - else - dwStyle |= WS_CLIPCHILDREN; + iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle); hWnd = CreateWindowEx(dwExStyle, "IupTabsPage", NULL, dwStyle, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, @@ -255,9 +252,12 @@ static int winTabsSetPaddingAttrib(Ihandle* ih, const char* value) iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); if (ih->handle) + { SendMessage(ih->handle, TCM_SETPADDING, 0, MAKELPARAM(ih->data->horiz_padding, ih->data->vert_padding)); - - return 0; + return 0; + } + else + return 1; /* store until not mapped, when mapped will be set again */ } static int winTabsSetMultilineAttrib(Ihandle* ih, const char* value) @@ -368,6 +368,13 @@ static char* winTabsGetBgColorAttrib(Ihandle* ih) return IupGetGlobal("DLGBGCOLOR"); } +static int winTabsSetBgColorAttrib(Ihandle *ih, const char *value) +{ + (void)value; + iupdrvPostRedraw(ih); + return 1; +} + /* ------------------------------------------------------------------------- */ /* winTabs - Calls the user callback to change of tab */ @@ -397,6 +404,7 @@ static int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) int prev_pos = SendMessage(ih->handle, TCM_GETCURSEL, 0, 0); iupAttribSetInt(ih, "_IUPTABS_PREV_CHILD_POS", prev_pos); + /* save the previous handle if callback exists */ if (cb) { Ihandle* prev_child = IupGetChild(ih, prev_pos); @@ -420,7 +428,9 @@ static int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) Ihandle* prev_child = (Ihandle*)iupAttribGet(ih, "_IUPTABS_PREV_CHILD"); iupAttribSetStr(ih, "_IUPTABS_PREV_CHILD", NULL); - cb(ih, child, prev_child); + /* avoid duplicate calls when a Tab is inside another Tab. */ + if (prev_child) + cb(ih, child, prev_child); } } @@ -522,7 +532,7 @@ static void winTabsChildAddedMethod(Ihandle* ih, Ihandle* child) } } - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } } } @@ -535,12 +545,11 @@ static void winTabsChildRemovedMethod(Ihandle* ih, Ihandle* child) if (tab_page) { int pos = winTabsGetPageWindowPos(ih, tab_page); + iupTabsTestRemoveTab(ih, pos); + SendMessage(ih->handle, TCM_DELETEITEM, pos, 0); DestroyWindow(tab_page); - if (pos==0) pos++; - iupdrvTabsSetCurrentTab(ih, pos-1); - iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL); } } @@ -564,19 +573,14 @@ static int winTabsMapMethod(Ihandle* ih) if (ih->data->is_multiline) dwStyle |= TCS_MULTILINE; - if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED")) - { - dwExStyle |= WS_EX_COMPOSITED; + iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle); - if (!ih->data->is_multiline && iupwinIsVista()) - { - /* workaround for composite bug in Vista */ - ih->data->is_multiline = 1; - dwStyle |= TCS_MULTILINE; - } + if (dwExStyle & WS_EX_COMPOSITED && !ih->data->is_multiline && iupwinIsVistaOrNew()) + { + /* workaround for composite bug in Vista */ + ih->data->is_multiline = 1; + dwStyle |= TCS_MULTILINE; } - else - dwStyle |= WS_CLIPCHILDREN; if (!iupwinCreateWindowEx(ih, WC_TABCONTROL, dwExStyle, dwStyle)) return IUP_ERROR; @@ -665,7 +669,7 @@ void iupdrvTabsInitClass(Iclass* ic) /* Driver Dependent Attribute functions */ /* Visual */ - iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); + iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, winTabsSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); /* Special */ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED); @@ -676,5 +680,9 @@ void iupdrvTabsInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "MULTILINE", winTabsGetMultilineAttrib, winTabsSetMultilineAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TABTITLE", NULL, winTabsSetTabTitleAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, winTabsSetTabImageAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED); + iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + + /* necessary because transparent background does not work when not using visual styles */ + if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */ + iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); } diff --git a/iup/src/win/iupwin_text.c b/iup/src/win/iupwin_text.c index dfe489a..2a61724 100755 --- a/iup/src/win/iupwin_text.c +++ b/iup/src/win/iupwin_text.c @@ -432,8 +432,8 @@ static int winTextSetLinColToPosition(Ihandle *ih, int lin, int col) col--; linmax = SendMessage(ih->handle, EM_GETLINECOUNT, 0, 0L); - if (lin > linmax) - lin = linmax; + if (lin > linmax-1) + lin = linmax-1; lineindex = SendMessage(ih->handle, EM_LINEINDEX, (WPARAM)lin, 0L); @@ -639,8 +639,12 @@ static int winTextSetPaddingAttrib(Ihandle* ih, const char* value) iupStrToIntInt(value, &(ih->data->horiz_padding), &(ih->data->vert_padding), 'x'); ih->data->vert_padding = 0; if (ih->handle) + { SendMessage(ih->handle, EM_SETMARGINS, EC_LEFTMARGIN|EC_RIGHTMARGIN, MAKELPARAM(ih->data->horiz_padding, ih->data->horiz_padding)); - return 0; + return 0; + } + else + return 1; /* store until not mapped, when mapped will be set again */ } static int winTextSetSelectedTextAttrib(Ihandle* ih, const char* value) @@ -713,8 +717,11 @@ static int winTextSetNCAttrib(Ihandle* ih, const char* value) SendMessage(ih->handle, EM_EXLIMITTEXT, 0, ih->data->nc); /* so it can be larger than 64k */ else SendMessage(ih->handle, EM_LIMITTEXT, ih->data->nc, 0L); + + return 0; } - return 0; + else + return 1; /* store until not mapped, when mapped will be set again */ } static int winTextSetSelectionAttrib(Ihandle* ih, const char* value) @@ -845,7 +852,7 @@ static char* winTextGetSelectionPosAttrib(Ihandle* ih) static int winTextSetInsertAttrib(Ihandle* ih, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (value) { @@ -867,9 +874,9 @@ static int winTextSetInsertAttrib(Ihandle* ih, const char* value) static int winTextSetAppendAttrib(Ihandle* ih, const char* value) { - int len; + int pos; char* str; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!value) value = ""; str = (char*)value; @@ -881,9 +888,9 @@ static int winTextSetAppendAttrib(Ihandle* ih, const char* value) str = iupStrToDos(str); } - len = GetWindowTextLength(ih->handle)+1; - SendMessage(ih->handle, EM_SETSEL, (WPARAM)len, (LPARAM)len); - if (ih->data->is_multiline && ih->data->append_newline) + pos = GetWindowTextLength(ih->handle)+1; + SendMessage(ih->handle, EM_SETSEL, (WPARAM)pos, (LPARAM)pos); + if (ih->data->is_multiline && ih->data->append_newline && pos!=1) { if (ih->data->has_formatting) SendMessage(ih->handle, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)"\r"); @@ -920,7 +927,7 @@ static int winTextSetTabSizeAttrib(Ihandle* ih, const char* value) iupStrToInt(value, &tabsize); tabsize *= 4; SendMessage(ih->handle, EM_SETTABSTOPS, (WPARAM)1L, (LPARAM)&tabsize); - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); return 1; } @@ -1120,6 +1127,7 @@ static int winTextSetBgColorAttrib(Ihandle *ih, const char *value) SendMessage(ih->handle, EM_SETBKGNDCOLOR, 0, (LPARAM)color); } } + iupdrvPostRedraw(ih); return 1; } @@ -1529,15 +1537,27 @@ static int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res ret = iupwinBaseProc(ih, msg, wp, lp, result); if (ret) { + iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1"); *result = 0; return 1; } + else + iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL); } switch (msg) { case WM_CHAR: { + /* even aborting WM_KEYDOWN, a WM_CHAR will be sent, so ignore it also */ + /* if a dialog was shown, the loop will be processed, so ignore out of focus WM_CHAR messages */ + if (GetFocus() != ih->handle || iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR")) + { + iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL); + *result = 0; + return 1; + } + if ((char)wp == '\b') { if (!winTextCallActionCb(ih, NULL, 0, -1)) @@ -1736,7 +1756,7 @@ static int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res static void winTextCreateSpin(Ihandle* ih) { HWND hSpin; - DWORD dwStyle = WS_CHILD|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS; + DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS; int serial = iupDialogGetChildId(ih); if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT")) @@ -1826,7 +1846,7 @@ static void winTextLayoutUpdateMethod(Ihandle* ih) static int winTextMapMethod(Ihandle* ih) { - DWORD dwStyle = WS_CHILD, + DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, dwExStyle = 0; char* winclass = "EDIT", *value; @@ -1873,7 +1893,7 @@ static int winTextMapMethod(Ihandle* ih) } else { - dwStyle |= ES_AUTOHSCROLL|ES_NOHIDESEL; + dwStyle |= ES_AUTOHSCROLL; if (iupAttribGetBoolean(ih, "PASSWORD")) dwStyle |= ES_PASSWORD; @@ -1950,8 +1970,8 @@ void iupdrvTextInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winTextSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED); /* Overwrite Visual */ - iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); - iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT); + iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT); /* Special */ iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED); /* usually black */ diff --git a/iup/src/win/iupwin_toggle.c b/iup/src/win/iupwin_toggle.c index fcaa438..c17f594 100755 --- a/iup/src/win/iupwin_toggle.c +++ b/iup/src/win/iupwin_toggle.c @@ -35,7 +35,9 @@ void iupdrvToggleAddCheckBox(int *x, int *y) { - (*x) += 16+6; + (*x) += 16+8; + if (!iupwin_comctl32ver6) + (*x) += 4; if ((*y) < 16) (*y) = 16; /* minimum height */ } @@ -229,7 +231,7 @@ static int winToggleSetImageAttrib(Ihandle* ih, const char* value) iupAttribSetStr(ih, "IMAGE", (char*)value); if (iupwin_comctl32ver6) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); else { int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L); @@ -249,7 +251,7 @@ static int winToggleSetImInactiveAttrib(Ihandle* ih, const char* value) iupAttribSetStr(ih, "IMINACTIVE", (char*)value); if (iupwin_comctl32ver6) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); else { int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L); @@ -269,7 +271,7 @@ static int winToggleSetImPressAttrib(Ihandle* ih, const char* value) iupAttribSetStr(ih, "IMPRESS", (char*)value); if (iupwin_comctl32ver6) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); else { int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L); @@ -339,7 +341,7 @@ static int winToggleSetActiveAttrib(Ihandle* ih, const char* value) if (iupwin_comctl32ver6) { iupBaseSetActiveAttrib(ih, value); - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); return 0; } else @@ -382,11 +384,21 @@ static int winToggleSetPaddingAttrib(Ihandle* ih, const char* value) iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x'); if (ih->handle && iupwin_comctl32ver6 && ih->data->type == IUP_TOGGLE_IMAGE) - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); return 0; } +static int winToggleSetUpdateAttrib(Ihandle* ih, const char* value) +{ + (void)value; + + if (ih->handle) + iupdrvPostRedraw(ih); /* Post a redraw */ + + return 1; +} + static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value) { (void)value; @@ -395,7 +407,7 @@ static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value) /* update internal image cache for controls that have the IMAGE attribute */ iupAttribSetStr(ih, "BGCOLOR", value); iupImageUpdateParent(ih); - iupdrvDisplayRedraw(ih); + iupdrvRedrawNow(ih); } return 1; } @@ -591,7 +603,7 @@ static int winToggleMapMethod(Ihandle* ih) { Ihandle* radio = iupRadioFindToggleParent(ih); char* value; - DWORD dwStyle = WS_CHILD | + DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | BS_NOTIFY; /* necessary because of the base messages */ if (!ih->parent) @@ -673,11 +685,11 @@ void iupdrvToggleInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "BGCOLOR", winToggleGetBgColorAttrib, winToggleSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); /* Special */ - iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */ + iupClassRegisterAttribute(ic, "FGCOLOR", NULL, winToggleSetUpdateAttrib, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */ iupClassRegisterAttribute(ic, "TITLE", iupdrvBaseGetTitleAttrib, winToggleSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); /* IupToggle only */ - iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, NULL, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, winToggleSetUpdateAttrib, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "IMAGE", NULL, winToggleSetImageAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, winToggleSetImInactiveAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "IMPRESS", NULL, winToggleSetImPressAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); diff --git a/iup/src/win/iupwin_tree.c b/iup/src/win/iupwin_tree.c index e6877dc..4a5f8be 100755 --- a/iup/src/win/iupwin_tree.c +++ b/iup/src/win/iupwin_tree.c @@ -31,17 +31,19 @@ #include "iupwin_draw.h" #include "iupwin_info.h" + typedef struct _winTreeItemData { COLORREF color; unsigned char kind; - void* userdata; HFONT hFont; short image; short image_expanded; } winTreeItemData; -#ifndef TVN_ITEMCHANGING /* Vista Only */ +/* Vista Only */ + +#ifndef TVN_ITEMCHANGING typedef struct tagNMTVITEMCHANGE { NMHDR hdr; UINT uChanged; @@ -54,257 +56,125 @@ typedef struct tagNMTVITEMCHANGE { #define TVN_ITEMCHANGINGW (TVN_FIRST-17) #endif -static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem); -typedef int (*winTreeNodeFunc)(Ihandle* ih, HTREEITEM hItem, void* userdata); - -static int winTreeForEach(Ihandle* ih, HTREEITEM hItem, winTreeNodeFunc func, void* userdata) -{ - HTREEITEM hItemChild; - - if (!hItem) - hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); +#ifndef TVS_EX_DOUBLEBUFFER +#define TVS_EX_DOUBLEBUFFER 0x0004 +#endif - while(hItem != NULL) - { - if (!func(ih, hItem, userdata)) - return 0; +#ifndef TVM_SETEXTENDEDSTYLE +#define TVM_SETEXTENDEDSTYLE (TV_FIRST + 44) +#endif - hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); - if (hItemChild) - { - /* Recursively traverse child items */ - if (!winTreeForEach(ih, hItemChild, func, userdata)) - return 0; - } - /* Go to next sibling item */ - hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); - } +static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem); - return 1; -} /*****************************************************************************/ /* FINDING ITEMS */ /*****************************************************************************/ -static HTREEITEM winTreeFindNodeID(Ihandle* ih, HTREEITEM hItem, HTREEITEM hNode) -{ - TVITEM item; - winTreeItemData* itemData; - - while(hItem != NULL) - { - /* ID control to traverse items */ - ih->data->id_control++; - - /* StateID founded! */ - if(hItem == hNode) - return hItem; - /* Get hItem attributes */ - item.hItem = hItem; - item.mask = TVIF_HANDLE|TVIF_PARAM; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - itemData = (winTreeItemData*)item.lParam; - - /* Check whether we have child items */ - if (itemData->kind == ITREE_BRANCH) - { - /* Recursively traverse child items */ - HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); - hItemChild = winTreeFindNodeID(ih, hItemChild, hNode); - - /* StateID founded! */ - if(hItemChild) - return hItemChild; - } - /* Go to next sibling item */ - hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); - } - - return NULL; +InodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih) +{ + return (InodeHandle*)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0); } -static int winTreeGetNodeId(Ihandle* ih, HTREEITEM hItem) +static HTREEITEM winTreeFindNodeXY(Ihandle* ih, int x, int y) { - HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); - ih->data->id_control = -1; - if (winTreeFindNodeID(ih, hItemRoot, hItem)) - return ih->data->id_control; - else - return -1; + TVHITTESTINFO info; + info.pt.x = x; + info.pt.y = y; + return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info); } -static HTREEITEM winTreeFindUserDataID(Ihandle* ih, HTREEITEM hItem, void* userdata) +static HTREEITEM winTreeFindNodePointed(Ihandle* ih) { - TVITEM item; - winTreeItemData* itemData; - - while(hItem != NULL) - { - /* ID control to traverse items */ - ih->data->id_control++; - - /* Get hItem attributes */ - item.hItem = hItem; - item.mask = TVIF_HANDLE|TVIF_PARAM; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - itemData = (winTreeItemData*)item.lParam; - - /* userdata founded! */ - if(itemData->userdata == userdata) - return hItem; - - /* Check whether we have child items */ - if (itemData->kind == ITREE_BRANCH) - { - /* Recursively traverse child items */ - HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); - hItemChild = winTreeFindUserDataID(ih, hItemChild, userdata); - - /* userdata founded! */ - if (hItemChild) - return hItemChild; - } - - /* Go to next sibling item */ - hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); - } - - return NULL; + TVHITTESTINFO info; + DWORD pos = GetMessagePos(); + info.pt.x = LOWORD(pos); + info.pt.y = HIWORD(pos); + ScreenToClient(ih->handle, &info.pt); + return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info); } -static int winTreeGetUserDataId(Ihandle* ih, void* userdata) +int iupwinGetColor(const char* value, COLORREF *color) { - HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); - ih->data->id_control = -1; - if (winTreeFindUserDataID(ih, hItemRoot, userdata)) - return ih->data->id_control; - else - return -1; + unsigned char r, g, b; + if (iupStrToRGB(value, &r, &g, &b)) + { + *color = RGB(r,g,b); + return 1; + } + return 0; } -static HTREEITEM winTreeFindNodeFromID(Ihandle* ih, HTREEITEM hItem) +static void winTreeChildCountRec(Ihandle* ih, HTREEITEM hItem, int *count) { - TVITEM item; - winTreeItemData* itemData; - + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); while(hItem != NULL) { - /* ID control to traverse items */ - ih->data->id_control--; - - /* StateID founded! */ - if(ih->data->id_control < 0) - return hItem; - - /* Get hItem attributes */ - item.hItem = hItem; - item.mask = TVIF_HANDLE|TVIF_PARAM; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - itemData = (winTreeItemData*)item.lParam; - - /* Check whether we have child items */ - if (itemData->kind == ITREE_BRANCH) - { - /* Recursively traverse child items */ - HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); - hItemChild = winTreeFindNodeFromID(ih, hItemChild); + (*count)++; - /* StateID founded! */ - if(ih->data->id_control < 0) - return hItemChild; - } + /* go recursive to children */ + winTreeChildCountRec(ih, hItem, count); /* Go to next sibling item */ hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); } - - return hItem; } -static HTREEITEM winTreeFindNodeFromString(Ihandle* ih, const char* name_id) +int iupdrvTreeTotalChildCount(Ihandle* ih, HTREEITEM hItem) { - if (name_id[0]) - { - HTREEITEM hRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); - iupStrToInt(name_id, &ih->data->id_control); - return winTreeFindNodeFromID(ih, hRoot); - } - else - return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0); + int count = 0; + winTreeChildCountRec(ih, hItem, &count); + return count; } -/* Recursively, find a new brother for the item - that will have its depth changed. Returns the new brother. */ -static HTREEITEM winTreeFindNewBrother(Ihandle* ih, HTREEITEM hBrotherItem) +static void winTreeChildRebuildCacheRec(Ihandle* ih, HTREEITEM hItem, int *id) { - TVITEM item; - winTreeItemData* itemData; - - while(hBrotherItem != NULL) + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); + while(hItem != NULL) { - if(ih->data->id_control < 0) - return hBrotherItem; - - item.hItem = hBrotherItem; - item.mask = TVIF_HANDLE|TVIF_PARAM; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - itemData = (winTreeItemData*)item.lParam; - - if (itemData->kind == ITREE_BRANCH) - { - HTREEITEM hItemChild; - - ih->data->id_control--; - hItemChild = winTreeFindNewBrother(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hBrotherItem)); + (*id)++; + ih->data->node_cache[*id].node_handle = hItem; - if(ih->data->id_control < 0) - return hItemChild; - } + /* go recursive to children */ + winTreeChildRebuildCacheRec(ih, hItem, id); - hBrotherItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hBrotherItem); + /* Go to next sibling item */ + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); } - - return hBrotherItem; } -static HTREEITEM winTreeFindNodePointed(Ihandle* ih) +static void winTreeRebuildNodeCache(Ihandle* ih, int id, HTREEITEM hItem) { - TVHITTESTINFO info; - DWORD pos = GetMessagePos(); - info.pt.x = LOWORD(pos); - info.pt.y = HIWORD(pos); - - ScreenToClient(ih->handle, &info.pt); - - return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info); + ih->data->node_cache[id].node_handle = hItem; + winTreeChildRebuildCacheRec(ih, hItem, &id); } -int iupwinGetColor(const char* value, COLORREF *color) -{ - unsigned char r, g, b; - if (iupStrToRGB(value, &r, &g, &b)) - { - *color = RGB(r,g,b); - return 1; - } - return 0; -} /*****************************************************************************/ /* ADDING ITEMS */ /*****************************************************************************/ + +static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand); + void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add) { - TVITEM item, tviPrevItem; + TVITEM item; TVINSERTSTRUCT tvins; - HTREEITEM hPrevItem = winTreeFindNodeFromString(ih, name_id); - int kindPrev; + HTREEITEM hPrevItem = iupTreeGetNodeFromString(ih, name_id); + HTREEITEM hItemNew; winTreeItemData* itemData; if (!hPrevItem) - return; + { + /* check if the root was really specified */ + int id = 0; + if (!iupStrToInt(name_id, &id) || id != -1) + return; + } + + if (!title) + title = ""; itemData = calloc(1, sizeof(winTreeItemData)); itemData->image = -1; @@ -318,83 +188,71 @@ void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color); if (kind == ITREE_BRANCH) - { item.iSelectedImage = item.iImage = (int)ih->data->def_image_collapsed; - - if (ih->data->add_expanded) - { - item.mask |= TVIF_STATE; - item.state = item.stateMask = TVIS_EXPANDED; - item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded; - } - } else item.iSelectedImage = item.iImage = (int)ih->data->def_image_leaf; /* Save the heading level in the node's application-defined data area */ tvins.item = item; - /* get the KIND attribute of node selected */ - tviPrevItem.hItem = hPrevItem; - tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem); - kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind; - - /* Define the parent and the position to the new node inside - the list, using the KIND attribute of node selected */ - if (kindPrev == ITREE_BRANCH && add) - { - tvins.hParent = hPrevItem; - tvins.hInsertAfter = TVI_FIRST; /* insert the new node after item selected, as first child */ - } - else - { - tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem); - tvins.hInsertAfter = hPrevItem; /* insert the new node after item selected */ - } - - /* Add the node to the tree-view control */ - SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins); - - if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0) + if (hPrevItem) { - /* this is the first child, redraw to update the '+'/'-' buttons */ - iupdrvDisplayRedraw(ih); - } -} + int kindPrev; + TVITEM tviPrevItem; -static void winTreeAddRootNode(Ihandle* ih) -{ - TVITEM item; - TVINSERTSTRUCT tvins; - HTREEITEM hNewItem; - winTreeItemData* itemData; + /* get the KIND attribute of reference node */ + tviPrevItem.hItem = hPrevItem; + tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN; + SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem); + kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind; - itemData = calloc(1, sizeof(winTreeItemData)); - itemData->image = -1; - itemData->image_expanded = -1; - itemData->kind = ITREE_BRANCH; + /* Define the parent and the position to the new node inside + the list, using the KIND attribute of reference node */ + if (kindPrev == ITREE_BRANCH && add) + { + /* depth+1 */ + tvins.hParent = hPrevItem; + tvins.hInsertAfter = TVI_FIRST; /* insert the new node after the reference node, as first child */ + } + else + { + /* same depth */ + tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem); + tvins.hInsertAfter = hPrevItem; /* insert the new node after reference node */ + } - item.mask = TVIF_PARAM | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE; - item.state = item.stateMask = TVIS_EXPANDED; - item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded; - item.lParam = (LPARAM)itemData; + /* Add the new node */ + hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins); + iupTreeAddToCache(ih, add, kindPrev, hPrevItem, hItemNew); - iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color); + if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0) /* was 0, now is 1 */ + { + /* this is the first child, redraw to update the '+'/'-' buttons */ + if (ih->data->add_expanded) + winTreeExpandItem(ih, hPrevItem, 1); + else + winTreeExpandItem(ih, hPrevItem, 0); + } - /* Save the heading level in the node's application-defined data area */ - tvins.item = item; - tvins.hInsertAfter = TVI_FIRST; - tvins.hParent = TVI_ROOT; + } + else + { + tvins.hInsertAfter = TVI_FIRST; + tvins.hParent = TVI_ROOT; - /* Add the node to the tree-view control */ - hNewItem = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins); + /* Add the new node */ + hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins); + iupTreeAddToCache(ih, 0, 0, NULL, hItemNew); - /* MarkStart node */ - iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hNewItem); + if (ih->data->node_count == 1) + { + /* MarkStart node */ + iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hItemNew); - /* Set the default VALUE */ - winTreeSetFocusNode(ih, hNewItem); + /* Set the default VALUE */ + winTreeSetFocusNode(ih, hItemNew); + } + } } static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem) @@ -408,13 +266,28 @@ static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem) static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand) { - if (expand == -1) - expand = !winTreeIsItemExpanded(ih, hItem); /* toggle */ + TVITEM item; + winTreeItemData* itemData; + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1"); + /* it only works if the branch has children */ + SendMessage(ih->handle, TVM_EXPAND, expand? TVE_EXPAND: TVE_COLLAPSE, (LPARAM)hItem); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL); + + /* update image */ + item.hItem = hItem; + item.mask = TVIF_HANDLE|TVIF_PARAM; + SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); + itemData = (winTreeItemData*)item.lParam; if (expand) - SendMessage(ih->handle, TVM_EXPAND, TVE_EXPAND, (LPARAM)hItem); + item.iSelectedImage = item.iImage = (itemData->image_expanded!=-1)? itemData->image_expanded: (int)ih->data->def_image_expanded; else - SendMessage(ih->handle, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)hItem); + item.iSelectedImage = item.iImage = (itemData->image!=-1)? itemData->image: (int)ih->data->def_image_collapsed; + + item.hItem = hItem; + item.mask = TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE; + SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item); } /*****************************************************************************/ @@ -445,12 +318,12 @@ static void winTreeExpandTree(Ihandle* ih, HTREEITEM hItem, int expand) /* SELECTING ITEMS */ /*****************************************************************************/ -static int winTreeIsItemSelected(Ihandle* ih, HTREEITEM hItem) +static int winTreeIsNodeSelected(Ihandle* ih, HTREEITEM hItem) { return ((SendMessage(ih->handle, TVM_GETITEMSTATE, (WPARAM)hItem, TVIS_SELECTED)) & TVIS_SELECTED)!=0; } -static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select) +static void winTreeSelectNode(Ihandle* ih, HTREEITEM hItem, int select) { TV_ITEM item; item.mask = TVIF_STATE | TVIF_HANDLE; @@ -458,16 +331,13 @@ static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select) item.hItem = hItem; if (select == -1) - select = !winTreeIsItemSelected(ih, hItem); + select = !winTreeIsNodeSelected(ih, hItem); /* toggle */ item.state = select ? TVIS_SELECTED : 0; + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item); -} - -static HTREEITEM winTreeGetFocusNode(Ihandle* ih) -{ - return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); } /* ------------Comment from wxWidgets-------------------- @@ -475,17 +345,17 @@ static HTREEITEM winTreeGetFocusNode(Ihandle* ih) item without changing anything else. */ static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); if (hItem != hItemFocus) { /* remember the selection state of the item */ - int wasSelected = winTreeIsItemSelected(ih, hItem); + int wasSelected = winTreeIsNodeSelected(ih, hItem); int wasFocusSelected = 0; - if (iupwinIsVista()) + if (iupwinIsVistaOrNew() && iupwin_comctl32ver6) iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", (char*)hItem); /* Vista Only */ else - wasFocusSelected = hItemFocus && winTreeIsItemSelected(ih, hItemFocus); + wasFocusSelected = hItemFocus && winTreeIsNodeSelected(ih, hItemFocus); iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); @@ -493,58 +363,42 @@ static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem) { /* prevent the tree from unselecting the old focus which it would do by default */ SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)NULL); /* remove the focus */ - winTreeSelectItem(ih, hItemFocus, 1); /* select again */ + winTreeSelectNode(ih, hItemFocus, 1); /* select again */ } SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem); /* set focus, selection, and unselect the previous focus */ if (!wasSelected) - winTreeSelectItem(ih, hItem, 0); /* need to clear the selection if was not selected */ + winTreeSelectNode(ih, hItem, 0); /* need to clear the selection if was not selected */ iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", NULL); } } -typedef struct _winTreeRange{ - HTREEITEM hItem1, hItem2; - char inside, clear; -}winTreeRange; - -static int winTreeSelectRangeFunc(Ihandle* ih, HTREEITEM hItem, winTreeRange* range) +static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItem1, HTREEITEM hItem2, int clear) { - int end_range = 0; - - if (range->inside == 0) /* detect the range start */ + int i; + int id1 = iupTreeFindNodeId(ih, hItem1); + int id2 = iupTreeFindNodeId(ih, hItem2); + if (id2 == -1) id2 = ih->data->node_count-1; + if (id1 > id2) { - if (range->hItem1 == hItem) range->inside=1; - else if (range->hItem2 == hItem) range->inside=1; + int tmp = id1; + id1 = id2; + id2 = tmp; } - else if (range->inside == 1) /* detect the range end */ + + for (i = 0; i < ih->data->node_count; i++) { - if (range->hItem1 == hItem) end_range=1; - else if (range->hItem2 == hItem) end_range=1; + if (i < id1 || i > id2) + { + if (clear) + winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0); + } + else + winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1); } - - if (range->inside == 1) /* if inside, select */ - winTreeSelectItem(ih, hItem, 1); - else if (range->clear) /* if outside and clear, unselect */ - winTreeSelectItem(ih, hItem, 0); - - if (end_range || (range->inside && range->hItem1==range->hItem2)) - range->inside=-1; /* update after selecting the node */ - - return 1; -} - -static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItemFrom, HTREEITEM hItemTo, int clear) -{ - winTreeRange range; - range.hItem1 = hItemFrom; - range.hItem2 = hItemTo; - range.inside = 0; - range.clear = (char)clear; - winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectRangeFunc, &range); } static void winTreeSelectAll(Ihandle* ih) @@ -558,9 +412,10 @@ static void winTreeClearSelection(Ihandle* ih, HTREEITEM hItemExcept) winTreeSelectRange(ih, hItemExcept, hItemExcept, 1); } -static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata) +static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, int id, void* userdata) { - winTreeSelectItem(ih, hItem, -1); + (void)id; + winTreeSelectNode(ih, hItem, -1); (void)userdata; return 1; } @@ -568,14 +423,11 @@ static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata) typedef struct _winTreeSelArray{ Iarray* markedArray; char is_handle; - int id_control; }winTreeSelArray; -static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArray* selarray) +static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, int id, winTreeSelArray* selarray) { - selarray->id_control++; - - if (winTreeIsItemSelected(ih, hItem)) + if (winTreeIsNodeSelected(ih, hItem)) { if (selarray->is_handle) { @@ -587,7 +439,7 @@ static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArra { int* intArrayData = (int*)iupArrayInc(selarray->markedArray); int i = iupArrayCount(selarray->markedArray); - intArrayData[i-1] = selarray->id_control; + intArrayData[i-1] = id; } } @@ -599,10 +451,9 @@ static Iarray* winTreeGetSelectedArray(Ihandle* ih) Iarray* markedArray = iupArrayCreate(1, sizeof(HTREEITEM)); winTreeSelArray selarray; selarray.markedArray = markedArray; - selarray.id_control = -1; selarray.is_handle = 1; - winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray); + iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray); return markedArray; } @@ -612,10 +463,9 @@ static Iarray* winTreeGetSelectedArrayId(Ihandle* ih) Iarray* markedArray = iupArrayCreate(1, sizeof(int)); winTreeSelArray selarray; selarray.markedArray = markedArray; - selarray.id_control = -1; selarray.is_handle = 0; - winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray); + iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray); return markedArray; } @@ -625,7 +475,7 @@ static Iarray* winTreeGetSelectedArrayId(Ihandle* ih) /* COPYING ITEMS (Branches and its children) */ /*****************************************************************************/ /* Insert the copied item in a new location. Returns the new item. */ -static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int full_copy) +static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int is_copy) { TVITEM item; TVINSERTSTRUCT tvins; @@ -637,34 +487,34 @@ static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent item.cchTextMax = 255; SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - if (full_copy) /* during a full copy the userdata reference is not copied */ + if (is_copy) /* during a copy the itemdata reference is not reused */ { /* create a new one */ winTreeItemData* itemDataNew = malloc(sizeof(winTreeItemData)); memcpy(itemDataNew, (void*)item.lParam, sizeof(winTreeItemData)); - itemDataNew->userdata = NULL; item.lParam = (LPARAM)itemDataNew; } - /* Copy everything including user data reference */ + /* Copy everything including itemdata reference */ tvins.item = item; tvins.hInsertAfter = hPosition; tvins.hParent = hParent; - /* Add the node to the tree-view control */ + /* Add the new node */ + ih->data->node_count++; return (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins); } -static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy) +static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy) { HTREEITEM hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemSrc); - HTREEITEM hNewItem = TVI_FIRST; + HTREEITEM hItemNew = TVI_FIRST; while (hChildSrc != NULL) { - hNewItem = winTreeCopyItem(ih, hChildSrc, hItemDst, hNewItem, full_copy); /* Use the same order they where enumerated */ + hItemNew = winTreeCopyItem(ih, hChildSrc, hItemDst, hItemNew, is_copy); /* Use the same order they where enumerated */ /* Recursively transfer all the items */ - winTreeCopyChildren(ih, hChildSrc, hNewItem, full_copy); + winTreeCopyChildren(ih, hChildSrc, hItemNew, is_copy); /* Go to next sibling item */ hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildSrc); @@ -672,11 +522,18 @@ static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItem } /* Copies all items in a branch to a new location. Returns the new branch node. */ -static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy) +static HTREEITEM winTreeCopyMoveNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy) { - HTREEITEM hNewItem, hParent; + HTREEITEM hItemNew, hParent; TVITEM item; winTreeItemData* itemDataDst; + int id_new, count, id_src, id_dst; + + int old_count = ih->data->node_count; + + id_src = iupTreeFindNodeId(ih, hItemSrc); + id_dst = iupTreeFindNodeId(ih, hItemDst); + id_new = id_dst+1; /* contains the position for a copy operation */ /* Get DST node attributes */ item.hItem = hItemDst; @@ -691,31 +548,64 @@ static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hIte hItemDst = TVI_FIRST; } else - { + { + if (itemDataDst->kind == ITREE_BRANCH) + { + int child_count = iupdrvTreeTotalChildCount(ih, hItemDst); + id_new += child_count; + } + /* copy as next brother of item or collapsed branch */ hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItemDst); } - hNewItem = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, full_copy); + /* move to the same place does nothing */ + if (!is_copy && id_new == id_src) + return NULL; + + hItemNew = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, is_copy); + + winTreeCopyChildren(ih, hItemSrc, hItemNew, is_copy); + + count = ih->data->node_count - old_count; + iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy); + + if (!is_copy) + { + /* Deleting the node (and its children) from the old position */ + /* do not delete the itemdata, we reuse the references in CopyNode */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); - winTreeCopyChildren(ih, hItemSrc, hNewItem, full_copy); + /* restore count, because we remove src */ + ih->data->node_count = old_count; - return hNewItem; + /* compensate position for a move */ + if (id_new > id_src) + id_new -= count; + } + + winTreeRebuildNodeCache(ih, id_new, hItemNew); + + return hItemNew; } /*****************************************************************************/ /* MANIPULATING IMAGES */ /*****************************************************************************/ -static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode) +static void winTreeUpdateImages(Ihandle* ih, int mode) { - HTREEITEM hItemChild; + HTREEITEM hItem; TVITEM item; winTreeItemData* itemData; + int i; /* called when one of the default images is changed */ - - while(hItem != NULL) + for (i = 0; i < ih->data->node_count; i++) { + hItem = ih->data->node_cache[i].node_handle; + /* Get node attributes */ item.hItem = hItem; item.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE; @@ -742,10 +632,6 @@ static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode) SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item); } } - - /* Recursively traverse child items */ - hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); - winTreeUpdateImages(ih, hItemChild, mode); } else { @@ -756,9 +642,6 @@ static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode) SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item); } } - - /* Go to next sibling node */ - hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); } } @@ -828,29 +711,57 @@ static int winTreeCallBranchLeafCb(Ihandle* ih, HTREEITEM hItem) if (itemData->kind == ITREE_BRANCH) { + if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB")) + return IUP_DEFAULT; + if (item.state & TVIS_EXPANDED) { IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB"); if (cbBranchClose) - return cbBranchClose(ih, winTreeGetNodeId(ih, hItem)); + return cbBranchClose(ih, iupTreeFindNodeId(ih, hItem)); } else { IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB"); if (cbBranchOpen) - return cbBranchOpen(ih, winTreeGetNodeId(ih, hItem)); + return cbBranchOpen(ih, iupTreeFindNodeId(ih, hItem)); } } else { IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB"); if (cbExecuteLeaf) - return cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItem)); + return cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItem)); } return IUP_DEFAULT; } +static void winTreeCallMultiUnSelectionCb(Ihandle* ih) +{ + IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB"); + IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB"); + if (cbSelec || cbMulti) + { + Iarray* markedArray = winTreeGetSelectedArrayId(ih); + int* id_hitem = (int*)iupArrayGetData(markedArray); + int i, count = iupArrayCount(markedArray); + + if (count > 1) + { + if (cbMulti) + cbMulti(ih, id_hitem, iupArrayCount(markedArray)); + else + { + for (i=0; i<count; i++) + cbSelec(ih, id_hitem[i], 0); + } + } + + iupArrayDestroy(markedArray); + } +} + static void winTreeCallMultiSelectionCb(Ihandle* ih) { IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB"); @@ -885,6 +796,8 @@ static void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem) IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB"); if (cbSelec) { + int id; + if (ih->data->mark_mode == ITREE_MARK_MULTIPLE && IupGetCallback(ih,"MULTISELECTION_CB")) { if ((GetKeyState(VK_SHIFT) & 0x8000)) @@ -894,7 +807,9 @@ static void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem) if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB")) return; - cbSelec(ih, winTreeGetNodeId(ih, hItem), status); + id = iupTreeFindNodeId(ih, hItem); + if (id != -1) + cbSelec(ih, id, status); } } @@ -911,8 +826,8 @@ static int winTreeCallDragDropCb(Ihandle* ih, HTREEITEM hItemDrag, HTREEITEM hIt if (cbDragDrop) { - int drag_id = winTreeGetNodeId(ih, hItemDrag); - int drop_id = winTreeGetNodeId(ih, hItemDrop); + int drag_id = iupTreeFindNodeId(ih, hItemDrag); + int drop_id = iupTreeFindNodeId(ih, hItemDrop); return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl); } @@ -929,8 +844,8 @@ static int winTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value) { ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, value); - /* Update all images, starting at root node */ - winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_EXPANDED); + /* Update all images */ + winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED); return 1; } @@ -939,8 +854,8 @@ static int winTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value) { ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, value); - /* Update all images, starting at root node */ - winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_COLLAPSED); + /* Update all images */ + winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED); return 1; } @@ -949,8 +864,8 @@ static int winTreeSetImageLeafAttrib(Ihandle* ih, const char* value) { ih->data->def_image_leaf = (void*)winTreeGetImageIndex(ih, value); - /* Update all images, starting at root node */ - winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_LEAF); + /* Update all images */ + winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF); return 1; } @@ -959,7 +874,7 @@ static int winTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const { TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; @@ -986,7 +901,7 @@ static int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v { TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; @@ -1025,7 +940,7 @@ static int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v static int winTreeSetTopItemAttrib(Ihandle* ih, const char* value) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, value); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, value); if (hItem) SendMessage(ih->handle, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem); return 0; @@ -1056,9 +971,8 @@ static int winTreeSetSpacingAttrib(Ihandle* ih, const char* value) static int winTreeSetExpandAllAttrib(Ihandle* ih, const char* value) { HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); - HTREEITEM hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemRoot); /* skip the root node that is always expanded */ int expand = iupStrBoolean(value); - winTreeExpandTree(ih, hItem, expand); + winTreeExpandTree(ih, hItemRoot, expand); return 0; } @@ -1131,7 +1045,7 @@ static char* winTreeGetTitle(Ihandle* ih, HTREEITEM hItem) static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; return winTreeGetTitle(ih, hItem); @@ -1140,10 +1054,13 @@ static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id) static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value) { TVITEM item; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; + if (!value) + value = ""; + item.hItem = hItem; item.mask = TVIF_HANDLE | TVIF_TEXT; item.pszText = (char*)value; @@ -1151,60 +1068,11 @@ static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v return 0; } -static char* winTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id) -{ - int id; - char* str = (char*)(name_id+1); /* skip ':' */ - void* userdata = NULL; - if (sscanf(str, "%p", &userdata)!=1) - return NULL; - id = winTreeGetUserDataId(ih, userdata); - if (id == -1) - return NULL; - str = iupStrGetMemory(16); - sprintf(str, "%d", id); - return str; -} - -static char* winTreeGetUserDataAttrib(Ihandle* ih, const char* name_id) -{ - TVITEM item; - winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); - if (!hItem) - return NULL; - - item.hItem = hItem; - item.mask = TVIF_HANDLE | TVIF_PARAM; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - itemData = (winTreeItemData*)item.lParam; - - return itemData->userdata; -} - -static int winTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value) -{ - TVITEM item; - winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); - if (!hItem) - return 0; - - item.hItem = hItem; - item.mask = TVIF_HANDLE | TVIF_PARAM; - SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); - itemData = (winTreeItemData*)item.lParam; - - itemData->userdata = (void*)value; - - return 0; -} - static char* winTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id) { TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; @@ -1220,7 +1088,7 @@ static int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha { TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; @@ -1230,11 +1098,23 @@ static int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha itemData = (winTreeItemData*)item.lParam; if (value) + { itemData->hFont = iupwinGetHFont(value); + if (itemData->hFont) + { + TV_ITEM item; + item.mask = TVIF_STATE | TVIF_HANDLE | TVIF_TEXT; + item.stateMask = TVIS_BOLD; + item.hItem = hItem; + item.pszText = winTreeGetTitle(ih, hItem); /* reset text to resize item */ + item.state = (strstr(value, "Bold")||strstr(value, "BOLD"))? TVIS_BOLD: 0; + SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item); + } + } else itemData->hFont = NULL; - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); return 0; } @@ -1259,7 +1139,7 @@ static char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id) { TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; @@ -1281,25 +1161,34 @@ static char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id) static int winTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + TVITEM item; + winTreeItemData* itemData; + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; - winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED")); + /* Get Children: branch or leaf */ + item.mask = TVIF_HANDLE|TVIF_PARAM; + item.hItem = hItem; + SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); + itemData = (winTreeItemData*)item.lParam; + + if (itemData->kind == ITREE_BRANCH) + winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED")); + return 0; } static char* winTreeGetDepthAttrib(Ihandle* ih, const char* name_id) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); - HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); - int depth = 0; + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); + int depth = -1; char* str; - if (!hItem) + if (!hItem) return NULL; - while((hItemRoot != hItem) && (hItem != NULL)) + while(hItem != NULL) { hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem); depth++; @@ -1314,12 +1203,13 @@ static int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char { HTREEITEM hItemDst, hParent, hItemSrc; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - hItemSrc = winTreeFindNodeFromString(ih, name_id); + + hItemSrc = iupTreeGetNodeFromString(ih, name_id); if (!hItemSrc) return 0; - hItemDst = winTreeFindNodeFromString(ih, value); + hItemDst = iupTreeGetNodeFromString(ih, value); if (!hItemDst) return 0; @@ -1332,11 +1222,8 @@ static int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char return 0; } - /* Copying the node and its children to the new position */ - winTreeCopyNode(ih, hItemSrc, hItemDst, 0); /* not a full copy, preserve user data */ - - /* do not delete the user data, we copy the references in CopyNode */ - SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc); + /* Move the node and its children to the new position */ + winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 0); return 0; } @@ -1345,12 +1232,13 @@ static int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char { HTREEITEM hItemDst, hParent, hItemSrc; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - hItemSrc = winTreeFindNodeFromString(ih, name_id); + + hItemSrc = iupTreeGetNodeFromString(ih, name_id); if (!hItemSrc) return 0; - hItemDst = winTreeFindNodeFromString(ih, value); + hItemDst = iupTreeGetNodeFromString(ih, value); if (!hItemDst) return 0; @@ -1363,8 +1251,8 @@ static int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char return 0; } - /* Copying the node and its children to the new position */ - winTreeCopyNode(ih, hItemSrc, hItemDst, 1); + /* Copy the node and its children to the new position */ + winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 1); return 0; } @@ -1375,7 +1263,7 @@ static char* winTreeGetColorAttrib(Ihandle* ih, const char* name_id) char* str; TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; @@ -1398,7 +1286,7 @@ static int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v unsigned char r, g, b; TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; @@ -1410,7 +1298,7 @@ static int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v if (iupStrToRGB(value, &r, &g, &b)) { itemData->color = RGB(r,g,b); - iupdrvDisplayUpdate(ih); + iupdrvPostRedraw(ih); } return 0; @@ -1435,7 +1323,7 @@ static char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id) { int count; char* str; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; @@ -1454,18 +1342,11 @@ static char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id) return str; } -static char* winTreeGetCountAttrib(Ihandle* ih) -{ - char* str = iupStrGetMemory(10); - sprintf(str, "%d", (int)SendMessage(ih->handle, TVM_GETCOUNT, 0, 0)); - return str; -} - static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id) { TVITEM item; winTreeItemData* itemData; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; @@ -1483,7 +1364,7 @@ static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id) static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id) { char* str; - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; @@ -1492,15 +1373,13 @@ static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id) return NULL; str = iupStrGetMemory(10); - sprintf(str, "%d", winTreeGetNodeId(ih, hItem)); + sprintf(str, "%d", iupTreeFindNodeId(ih, hItem)); return str; } -static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem) +static void winTreeRemoveItemData(Ihandle* ih, HTREEITEM hItem, IFns cb, int id) { TVITEM item; - HTREEITEM hChildItem; - item.hItem = hItem; item.mask = TVIF_HANDLE|TVIF_PARAM; if (SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item)) @@ -1508,81 +1387,153 @@ static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem) winTreeItemData* itemData = (winTreeItemData*)item.lParam; if (itemData) { - IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB"); - if (cb) cb(ih, winTreeGetNodeId(ih, hItem), (char*)itemData->userdata); + if (cb) + cb(ih, (char*)ih->data->node_cache[id].userdata); + free(itemData); item.lParam = (LPARAM)NULL; SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item); } } +} + +static void winTreeRemoveNodeDataRec(Ihandle* ih, HTREEITEM hItem, IFns cb, int *id) +{ + int old_id = *id; - hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); + /* Check whether we have child items */ + /* remove from children first */ + HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); while (hChildItem) { - winTreeDelNodeData(ih, hChildItem); + /* go recursive to children */ + winTreeRemoveNodeDataRec(ih, hChildItem, cb, id); + + /* Go to next sibling item */ hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildItem); } + + /* actually do it for the node */ + ih->data->node_count--; + (*id)++; + + winTreeRemoveItemData(ih, hItem, cb, old_id); +} + +static void winTreeRemoveNodeData(Ihandle* ih, HTREEITEM hItem, int call_cb) +{ + IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL; + int old_count = ih->data->node_count; + int id = iupTreeFindNodeId(ih, hItem); + int old_id = id; + + winTreeRemoveNodeDataRec(ih, hItem, cb, &id); + + if (call_cb) + iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count); +} + +static void winTreeRemoveAllNodeData(Ihandle* ih, int call_cb) +{ + IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL; + int i, old_count = ih->data->node_count; + HTREEITEM hItem; + + for (i = 0; i < ih->data->node_count; i++) + { + hItem = ih->data->node_cache[i].node_handle; + winTreeRemoveItemData(ih, hItem, cb, i); + } + + ih->data->node_count = 0; + + if (call_cb) + iupTreeDelFromCache(ih, 0, old_count); } static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value) { - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; - if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */ + if (iupStrEqualNoCase(value, "ALL")) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); - HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); + winTreeRemoveAllNodeData(ih, 1); - /* the root node can't be deleted */ - if(!hItem || hItem == hItemRoot) + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + return 0; + } + if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference one */ + { + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); + if(!hItem) return 0; - /* deleting the specified node (and it's children) */ - winTreeDelNodeData(ih, hItem); + /* deleting the reference node (and it's children) */ + winTreeRemoveNodeData(ih, hItem, 1); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); return 0; } - else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */ + else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */ { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); if(!hItem) return 0; - /* deleting the selected node's children */ + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + + /* deleting the reference node children */ while (hChildItem) { - winTreeDelNodeData(ih, hChildItem); + winTreeRemoveNodeData(ih, hChildItem, 1); SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hChildItem); hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem); } + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); return 0; } else if(iupStrEqualNoCase(value, "MARKED")) { - int i, count; - Iarray* markedArray; - HTREEITEM* hItemArrayData; - HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); + int i, del_focus = 0; + HTREEITEM hItemFocus; - /* Delete the array of marked nodes */ - markedArray = winTreeGetSelectedArray(ih); - hItemArrayData = (HTREEITEM*)iupArrayGetData(markedArray); - count = iupArrayCount(markedArray); + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + hItemFocus = iupdrvTreeGetFocusNode(ih); - for(i = 0; i < count; i++) + for(i = 1; i < ih->data->node_count; /* increment only if not removed */) { - if (hItemArrayData[i] != hItemRoot) /* the root node can't be deleted */ + if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle)) { - winTreeDelNodeData(ih, hItemArrayData[i]); - SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemArrayData[i]); + HTREEITEM hItem = ih->data->node_cache[i].node_handle; + if (hItemFocus == hItem) + { + del_focus = 1; + i++; + } + else + { + winTreeRemoveNodeData(ih, hItem, 1); + SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem); + } } + else + i++; } - iupArrayDestroy(markedArray); + if (del_focus) + { + winTreeRemoveNodeData(ih, hItemFocus, 1); + SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemFocus); + } + + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); return 0; } @@ -1592,22 +1543,13 @@ static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* static int winTreeSetRenameAttrib(Ihandle* ih, const char* value) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); if (ih->data->show_rename) { - IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB"); - if (cbShowRename) - cbShowRename(ih, winTreeGetNodeId(ih, hItemFocus)); - + HTREEITEM hItemFocus; SetFocus(ih->handle); /* the tree must have focus to activate the edit */ + hItemFocus = iupdrvTreeGetFocusNode(ih); SendMessage(ih->handle, TVM_EDITLABEL, 0, (LPARAM)hItemFocus); } - else - { - IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB"); - if (cbRenameNode) - cbRenameNode(ih, winTreeGetNodeId(ih, hItemFocus), winTreeGetTitle(ih, hItemFocus)); - } (void)value; return 0; @@ -1615,11 +1557,11 @@ static int winTreeSetRenameAttrib(Ihandle* ih, const char* value) static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return NULL; - if (winTreeIsItemSelected(ih, hItem)) + if (winTreeIsNodeSelected(ih, hItem)) return "YES"; else return "NO"; @@ -1627,17 +1569,23 @@ static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id) static int winTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; - winTreeSelectItem(ih, hItem, iupStrBoolean(value)); + if (ih->data->mark_mode==ITREE_MARK_SINGLE) + { + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); + winTreeSelectNode(ih, hItemFocus, 0); + } + + winTreeSelectNode(ih, hItem, iupStrBoolean(value)); return 0; } static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id) { - HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id); if (!hItem) return 0; @@ -1649,15 +1597,59 @@ static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id) static char* winTreeGetValueAttrib(Ihandle* ih) { char* str; - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); if (!hItemFocus) - return "0"; /* default VALUE is root */ + { + if (ih->data->node_count) + return "0"; /* default VALUE is root */ + else + return "-1"; + } str = iupStrGetMemory(16); - sprintf(str, "%d", winTreeGetNodeId(ih, hItemFocus)); + sprintf(str, "%d", iupTreeFindNodeId(ih, hItemFocus)); + return str; +} + +static char* winTreeGetMarkedNodesAttrib(Ihandle* ih) +{ + char* str = iupStrGetMemory(ih->data->node_count+1); + int i; + + for (i=0; i<ih->data->node_count; i++) + { + if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle)) + str[i] = '+'; + else + str[i] = '-'; + } + + str[ih->data->node_count] = 0; return str; } +static int winTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value) +{ + int count, i; + + if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value) + return 0; + + count = strlen(value); + if (count > ih->data->node_count) + count = ih->data->node_count; + + for (i=0; i<count; i++) + { + if (value[i] == '+') + winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1); + else + winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0); + } + + return 0; +} + static int winTreeSetMarkAttrib(Ihandle* ih, const char* value) { if (ih->data->mark_mode==ITREE_MARK_SINGLE) @@ -1665,7 +1657,7 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value) if(iupStrEqualNoCase(value, "BLOCK")) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); winTreeSelectRange(ih, (HTREEITEM)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), hItemFocus, 0); } else if(iupStrEqualNoCase(value, "CLEARALL")) @@ -1673,14 +1665,14 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value) else if(iupStrEqualNoCase(value, "MARKALL")) winTreeSelectAll(ih); else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */ - winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeInvertSelectFunc, NULL); + iupTreeForEach(ih, (iupTreeNodeFunc)winTreeInvertSelectFunc, NULL); else if(iupStrEqualPartial(value, "INVERT")) /* iupStrEqualPartial allows the use of "INVERTid" form */ { - HTREEITEM hItem = winTreeFindNodeFromString(ih, &value[strlen("INVERT")]); + HTREEITEM hItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]); if (!hItem) return 0; - winTreeSelectItem(ih, hItem, -1); /* toggle */ + winTreeSelectNode(ih, hItem, -1); /* toggle */ } else { @@ -1690,10 +1682,10 @@ static int winTreeSetMarkAttrib(Ihandle* ih, const char* value) if (iupStrToStrStr(value, str1, str2, '-')!=2) return 0; - hItem1 = winTreeFindNodeFromString(ih, str1); + hItem1 = iupTreeGetNodeFromString(ih, str1); if (!hItem1) return 0; - hItem2 = winTreeFindNodeFromString(ih, str2); + hItem2 = iupTreeGetNodeFromString(ih, str2); if (!hItem2) return 0; @@ -1711,9 +1703,9 @@ static int winTreeSetValueAttrib(Ihandle* ih, const char* value) if (winTreeSetMarkAttrib(ih, value)) return 0; - hItemFocus = winTreeGetFocusNode(ih); + hItemFocus = iupdrvTreeGetFocusNode(ih); - if(iupStrEqualNoCase(value, "ROOT")) + if(iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST")) hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); else if(iupStrEqualNoCase(value, "LAST")) hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0); @@ -1759,15 +1751,14 @@ static int winTreeSetValueAttrib(Ihandle* ih, const char* value) else if(iupStrEqualNoCase(value, "PREVIOUS")) hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus); else - hItem = winTreeFindNodeFromString(ih, value); + hItem = iupTreeGetNodeFromString(ih, value); if (hItem) { if (ih->data->mark_mode==ITREE_MARK_SINGLE) { - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); - winTreeSelectItem(ih, hItem, 1); - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + winTreeSelectNode(ih, hItemFocus, 0); + winTreeSelectNode(ih, hItem, 1); } winTreeSetFocusNode(ih, hItem); } @@ -1832,27 +1823,60 @@ static LRESULT CALLBACK winTreeEditWinProc(HWND hwnd, UINT msg, WPARAM wp, LPARA return CallWindowProc(oldProc, hwnd, msg, wp, lp); } -static void winTreeDrag(Ihandle* ih, int x, int y) +static void winTreeBeginDrag(Ihandle* ih, int x, int y) { - HTREEITEM hItemDrop; + HIMAGELIST dragImageList; + + HTREEITEM hItemDrag = winTreeFindNodeXY(ih, x, y); + if (!hItemDrag) + return; + + SendMessage(ih->handle, TVM_ENDEDITLABELNOW, TRUE, 0); + + /* store the drag-and-drop item */ + iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag); + /* get the image list for dragging */ + dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag); + if (dragImageList) + { + POINT pt; + ImageList_BeginDrag(dragImageList, 0, 0, 0); + + pt.x = x; + pt.y = y; + + ClientToScreen(ih->handle, &pt); + ImageList_DragEnter(NULL, pt.x, pt.y); + + iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList); + } + + ShowCursor(FALSE); + SetCapture(ih->handle); /* drag only inside the tree */ +} + +static void winTreeDrag(Ihandle* ih, int x, int y) +{ + HTREEITEM hItemDrop = winTreeFindNodeXY(ih, x, y); + HTREEITEM hItemDrag = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM"); HIMAGELIST dragImageList = (HIMAGELIST)iupAttribGet(ih, "_IUPTREE_DRAGIMAGELIST"); + if (dragImageList) { - POINT pnt; - pnt.x = x; - pnt.y = y; - GetCursorPos(&pnt); - ClientToScreen(GetDesktopWindow(), &pnt) ; - ImageList_DragMove(pnt.x, pnt.y); + POINT pt; + pt.x = x; + pt.y = y; + ClientToScreen(ih->handle, &pt); + ImageList_DragMove(pt.x, pt.y); } - if ((hItemDrop = winTreeFindNodePointed(ih)) != NULL) + if (hItemDrop && hItemDrop!=hItemDrag) { if(dragImageList) ImageList_DragShowNolock(FALSE); - SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItemDrop); + SendMessage(ih->handle, TVM_SETINSERTMARK, TRUE, (LPARAM)hItemDrop); /* store the drop item to be executed */ iupAttribSetStr(ih, "_IUPTREE_DROPITEM", (char*)hItemDrop); @@ -1860,6 +1884,8 @@ static void winTreeDrag(Ihandle* ih, int x, int y) if(dragImageList) ImageList_DragShowNolock(TRUE); } + else + iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL); } static void winTreeDrop(Ihandle* ih) @@ -1882,7 +1908,7 @@ static void winTreeDrop(Ihandle* ih) ShowCursor(TRUE); /* Remove drop target highlighting */ - SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)NULL); + SendMessage(ih->handle, TVM_SETINSERTMARK, 0, (LPARAM)NULL); iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", NULL); iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL); @@ -1901,16 +1927,12 @@ static void winTreeDrop(Ihandle* ih) if (winTreeCallDragDropCb(ih, hItemDrag, hItemDrop, &is_ctrl) == IUP_CONTINUE) { - /* Copy the dragged item to the new position. */ - HTREEITEM hItemNew = winTreeCopyNode(ih, hItemDrag, hItemDrop, is_ctrl); - - if (!is_ctrl) - { - /* do not delete the user data, we copy the references in CopyNode */ - SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemDrag); - } + /* Copy or move the dragged item to the new position. */ + HTREEITEM hItemNew = winTreeCopyMoveNode(ih, hItemDrag, hItemDrop, is_ctrl); - SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew); /* set focus and selection */ + /* Set focus and selection */ + if (hItemNew) + SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew); } } @@ -1929,9 +1951,7 @@ static void winTreeExtendSelect(Ihandle* ih, int x, int y) hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM"); if (hItemFirstSel) { - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); winTreeSelectRange(ih, hItemFirstSel, hItem, 1); - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); iupAttribSetStr(ih, "_IUPTREE_LASTSELITEM", (char*)hItem); winTreeSetFocusNode(ih, hItem); @@ -1952,10 +1972,10 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y) if (GetKeyState(VK_CONTROL) & 0x8000) /* Control key is down */ { /* Toggle selection state */ - winTreeSelectItem(ih, hItem, -1); + winTreeSelectNode(ih, hItem, -1); iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem); - winTreeCallSelectionCb(ih, winTreeIsItemSelected(ih, hItem), hItem); + winTreeCallSelectionCb(ih, winTreeIsNodeSelected(ih, hItem), hItem); winTreeSetFocusNode(ih, hItem); return 1; @@ -1965,9 +1985,11 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y) HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM"); if (hItemFirstSel) { - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); + int last_id = iupTreeFindNodeId(ih, hItem); winTreeSelectRange(ih, hItemFirstSel, hItem, 1); - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); + + /* if last selected item is a branch, then select its children */ + iupTreeSelectLastCollapsedBranch(ih, &last_id); winTreeCallMultiSelectionCb(ih); winTreeSetFocusNode(ih, hItem); @@ -1975,11 +1997,15 @@ static int winTreeMouseMultiSelect(Ihandle* ih, int x, int y) } } + winTreeCallMultiUnSelectionCb(ih); + /* simple click */ winTreeClearSelection(ih, hItem); iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem); iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1"); + /* Call SELECT_CB for all unselected nodes */ + return 0; } @@ -2039,7 +2065,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res if (wp == VK_RETURN) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); if (winTreeCallBranchLeafCb(ih, hItemFocus) != IUP_IGNORE) winTreeExpandItem(ih, hItemFocus, -1); @@ -2056,14 +2082,14 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res { if (GetKeyState(VK_CONTROL) & 0x8000) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); /* Toggle selection state */ - winTreeSelectItem(ih, hItemFocus, -1); + winTreeSelectNode(ih, hItemFocus, -1); } } else if (wp == VK_UP || wp == VK_DOWN) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); if (wp == VK_UP) hItemFocus = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus); else @@ -2084,9 +2110,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM"); if (hItemFirstSel) { - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1"); winTreeSelectRange(ih, hItemFirstSel, hItemFocus, 1); - iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL); winTreeCallMultiSelectionCb(ih); winTreeSetFocusNode(ih, hItemFocus); @@ -2138,10 +2162,20 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res } break; case WM_MOUSEMOVE: - if (ih->data->show_dragdrop && (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM") != NULL) - winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp)); + if (ih->data->show_dragdrop && (wp & MK_LBUTTON)) + { + if (!iupAttribGet(ih, "_IUPTREE_DRAGITEM")) + winTreeBeginDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp)); + else + winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp)); + } else if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT")) - winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp)); + { + if (wp & MK_LBUTTON) + winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp)); + else + iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL); + } iupwinMouseMove(ih, msg, wp, lp); break; @@ -2157,6 +2191,7 @@ static int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT")) { iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL); + if (iupAttribGet(ih, "_IUPTREE_LASTSELITEM")) { winTreeCallMultiSelectionCb(ih); @@ -2205,14 +2240,19 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) else if (msg_info->code == TVN_SELCHANGED) { NMTREEVIEW* info = (NMTREEVIEW*)msg_info; - winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */ - winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */ + if (ih->data->mark_mode!=ITREE_MARK_MULTIPLE || /* (NOT) Multiple selection with Control or Shift key is down */ + !(GetKeyState(VK_CONTROL) & 0x8000 || GetKeyState(VK_SHIFT) & 0x8000)) + { + winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */ + winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */ + } } else if(msg_info->code == TVN_BEGINLABELEDIT) { char* value; HWND hEdit; NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info; + IFni cbShowRename; if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT")) { @@ -2220,6 +2260,13 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) return 1; } + cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB"); + if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, info->item.hItem))==IUP_IGNORE) + { + *result = TRUE; /* prevent the change */ + return 1; + } + hEdit = (HWND)SendMessage(ih->handle, TVM_GETEDITCONTROL, 0, 0); /* save the edit box. */ @@ -2253,57 +2300,30 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) } else if(msg_info->code == TVN_ENDLABELEDIT) { + IFnis cbRename; NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info; iupAttribSetStr(ih, "_IUPWIN_EDITBOX", NULL); - if (info->item.pszText) - { - IFnis cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB"); - if (cbRename) - { - if (cbRename(ih, winTreeGetNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE) - { - *result = FALSE; - return 1; - } - } + if (!info->item.pszText) /* cancel, so abort */ + return 0; - *result = TRUE; - return 1; - } - } - else if(msg_info->code == TVN_BEGINDRAG) - { - if (ih->data->show_dragdrop) + cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB"); + if (cbRename) { - NMTREEVIEW* pNMTreeView = (NMTREEVIEW*)msg_info; - HTREEITEM hItemDrag = pNMTreeView->itemNew.hItem; - HIMAGELIST dragImageList; - - /* store the drag-and-drop item */ - iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag); - - /* get the image list for dragging */ - dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag); - if (dragImageList) + if (cbRename(ih, iupTreeFindNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE) { - POINT pt = pNMTreeView->ptDrag; - ImageList_BeginDrag(dragImageList, 0, 0, 0); - - ClientToScreen(ih->handle, &pt); - ImageList_DragEnter(NULL, pt.x, pt.y); - - iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList); + *result = FALSE; + return 1; } - - ShowCursor(FALSE); - SetCapture(ih->handle); /* drag only inside the tree */ } + + *result = TRUE; + return 1; } else if(msg_info->code == NM_DBLCLK) { - HTREEITEM hItemFocus = winTreeGetFocusNode(ih); + HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih); TVITEM item; winTreeItemData* itemData; @@ -2317,7 +2337,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) { IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB"); if(cbExecuteLeaf) - cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItemFocus)); + cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItemFocus)); } } else if(msg_info->code == TVN_ITEMEXPANDING) @@ -2351,7 +2371,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) HTREEITEM hItem = winTreeFindNodePointed(ih); IFni cbRightClick = (IFni)IupGetCallback(ih, "RIGHTCLICK_CB"); if (cbRightClick) - cbRightClick(ih, winTreeGetNodeId(ih, hItem)); + cbRightClick(ih, iupTreeFindNodeId(ih, hItem)); } else if (msg_info->code == NM_CUSTOMDRAW) { @@ -2374,7 +2394,7 @@ static int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result) SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item); itemData = (winTreeItemData*)item.lParam; - if (winTreeIsItemSelected(ih, hItem)) + if (GetFocus()==ih->handle && (customdraw->nmcd.uItemState & CDIS_SELECTED)) customdraw->clrText = winTreeInvertColor(itemData->color); else customdraw->clrText = itemData->color; @@ -2402,47 +2422,34 @@ static int winTreeConvertXYToPos(Ihandle* ih, int x, int y) info.pt.y = y; hItem = (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)&info); if (hItem) - return winTreeGetNodeId(ih, hItem); + return iupTreeFindNodeId(ih, hItem); return -1; } /*******************************************************************************************/ -static void winTreeUnMapMethod(Ihandle* ih) -{ - Iarray* bmp_array; - HIMAGELIST image_list; - - HTREEITEM itemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0); - winTreeDelNodeData(ih, itemRoot); - - image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0); - if (image_list) - ImageList_Destroy(image_list); - - bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY"); - if (bmp_array) - iupArrayDestroy(bmp_array); - - iupdrvBaseUnMapMethod(ih); -} static int winTreeMapMethod(Ihandle* ih) { - DWORD dwStyle = WS_CHILD | WS_BORDER | TVS_SHOWSELALWAYS; + DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | WS_BORDER | TVS_SHOWSELALWAYS; - /* can be set only on the Tree View creation */ + /* styles can be set only on the Tree View creation */ - if (!ih->data->show_dragdrop) - dwStyle |= TVS_DISABLEDRAGDROP; + /* always disable the internal drag&drop, because it affects our selection and drawing */ + dwStyle |= TVS_DISABLEDRAGDROP; if (ih->data->show_rename) dwStyle |= TVS_EDITLABELS; if (!iupAttribGetBoolean(ih, "HIDELINES")) + { dwStyle |= TVS_HASLINES; + if (!iupAttribGetInt(ih, "ADDROOT")) + dwStyle |= TVS_LINESATROOT; + } + if (!iupAttribGetBoolean(ih, "HIDEBUTTONS")) dwStyle |= TVS_HASBUTTONS; @@ -2455,6 +2462,11 @@ static int winTreeMapMethod(Ihandle* ih) if (!iupwinCreateWindowEx(ih, WC_TREEVIEW, 0, dwStyle)) return IUP_ERROR; + if (!iupwin_comctl32ver6) /* To improve drawing of items when TITLEFONT is set */ + SendMessage(ih->handle, CCM_SETVERSION, 5, 0); + else + SendMessage(ih->handle, TVM_SETEXTENDEDSTYLE, TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER); + IupSetCallback(ih, "_IUPWIN_CTRLPROC_CB", (Icallback)winTreeProc); IupSetCallback(ih, "_IUPWIN_NOTIFY_CB", (Icallback)winTreeWmNotify); @@ -2466,7 +2478,7 @@ static int winTreeMapMethod(Ihandle* ih) winTreeSetBgColorAttrib(ih, value); iupAttribSetStr(ih, "BGCOLOR", NULL); } - else if (iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */ + else if (!iupwin_comctl32ver6 || iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */ winTreeSetBgColorAttrib(ih, IupGetGlobal("TXTBGCOLOR")); } @@ -2475,8 +2487,8 @@ static int winTreeMapMethod(Ihandle* ih) ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, "IMGCOLLAPSED"); ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, "IMGEXPANDED"); - /* Add the Root Node */ - winTreeAddRootNode(ih); + if (iupAttribGetInt(ih, "ADDROOT")) + iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0); /* configure for DRAG&DROP of files */ if (IupGetCallback(ih, "DROPFILES_CB")) @@ -2484,9 +2496,31 @@ static int winTreeMapMethod(Ihandle* ih) IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)winTreeConvertXYToPos); + iupdrvTreeUpdateMarkMode(ih); + return IUP_NOERROR; } +static void winTreeUnMapMethod(Ihandle* ih) +{ + Iarray* bmp_array; + HIMAGELIST image_list; + + winTreeRemoveAllNodeData(ih, 0); + + ih->data->node_count = 0; + + image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0); + if (image_list) + ImageList_Destroy(image_list); + + bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY"); + if (bmp_array) + iupArrayDestroy(bmp_array); + + iupdrvBaseUnMapMethod(ih); +} + void iupdrvTreeInitClass(Iclass* ic) { /* Driver Dependent Class functions */ @@ -2500,7 +2534,6 @@ void iupdrvTreeInitClass(Iclass* ic) /* IupTree Attributes - GENERAL */ iupClassRegisterAttribute(ic, "EXPANDALL", NULL, winTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "INDENTATION", winTreeGetIndentationAttrib, winTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT); - iupClassRegisterAttribute(ic, "COUNT", winTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupwinSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, winTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED); iupClassRegisterAttribute(ic, "TOPITEM", NULL, winTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); @@ -2521,7 +2554,6 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttributeId(ic, "NAME", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TITLE", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "CHILDCOUNT", winTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); - iupClassRegisterAttributeId(ic, "USERDATA", winTreeGetUserDataAttrib, winTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "COLOR", winTreeGetColorAttrib, winTreeSetColorAttrib, IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "TITLEFONT", winTreeGetTitleFontAttrib, winTreeSetTitleFontAttrib, IUPAF_NO_INHERIT); @@ -2530,6 +2562,7 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttribute (ic, "MARK", NULL, winTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "STARTING", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "MARKSTART", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); + iupClassRegisterAttribute (ic, "MARKEDNODES", winTreeGetMarkedNodesAttrib, winTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); iupClassRegisterAttribute (ic, "VALUE", winTreeGetValueAttrib, winTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT); @@ -2538,5 +2571,8 @@ void iupdrvTreeInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "RENAME", NULL, winTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "MOVENODE", NULL, winTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); iupClassRegisterAttributeId(ic, "COPYNODE", NULL, winTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT); - iupClassRegisterAttributeId(ic, "FINDUSERDATA", winTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT); + + /* necessary because transparent background does not work when not using visual styles */ + if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */ + iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); } diff --git a/iup/src/win/iupwin_val.c b/iup/src/win/iupwin_val.c index 706c612..5c956d9 100755 --- a/iup/src/win/iupwin_val.c +++ b/iup/src/win/iupwin_val.c @@ -56,6 +56,13 @@ void iupdrvValGetMinSize(Ihandle* ih, int *w, int *h) } } +static int winValSetBgColorAttrib(Ihandle *ih, const char *value) +{ + (void)value; + iupdrvPostRedraw(ih); + return 1; +} + static int winValSetStepAttrib(Ihandle* ih, const char* value) { int linesize; @@ -110,18 +117,6 @@ static int winValSetValueAttrib(Ihandle* ih, const char* value) /*********************************************************************************************/ -static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result) -{ - COLORREF cr; - if (iupwinGetParentBgColor(ih, &cr)) - { - SetDCBrushColor(hdc, cr); - *result = (LRESULT)GetStockObject(DC_BRUSH); - return 1; - } - return 0; -} - static int winValCustomScroll(Ihandle* ih, int msg) { double old_val = ih->data->val; @@ -190,6 +185,19 @@ static void winValIncPageValue(Ihandle *ih, int dir) winValCustomScroll(ih, 0); } +static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result) +{ + COLORREF cr; + if (iupwinGetParentBgColor(ih, &cr)) + { + SetBkColor(hdc, cr); + SetDCBrushColor(hdc, cr); + *result = (LRESULT)GetStockObject(DC_BRUSH); + return 1; + } + return 0; +} + static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result) { (void)lp; @@ -240,7 +248,7 @@ static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *resu static int winValMapMethod(Ihandle* ih) { - DWORD dwStyle = WS_CHILD | TBS_AUTOTICKS; + DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | TBS_AUTOTICKS; int show_ticks; if (!ih->parent) @@ -312,4 +320,7 @@ void iupdrvValInitClass(Iclass* ic) iupClassRegisterAttribute(ic, "STEP", iupValGetStepAttrib, winValSetStepAttrib, "0.01", NULL, IUPAF_NO_INHERIT); /* force new default value */ iupClassRegisterAttribute(ic, "TICKSPOS", NULL, NULL, "NORMAL", NULL, IUPAF_NOT_MAPPED); + + /* Visual */ + iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winValSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); } diff --git a/iup/srccd/Makefile b/iup/srccd/Makefile index 43a3f09..8b1d154 100755 --- a/iup/srccd/Makefile +++ b/iup/srccd/Makefile @@ -3,4 +3,4 @@ do_all: iupcd iupcd: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srccd/iup_cd.c b/iup/srccd/iup_cd.c index 5998775..619ded7 100755 --- a/iup/srccd/iup_cd.c +++ b/iup/srccd/iup_cd.c @@ -14,7 +14,6 @@ #include <cdiup.h> #include <cdnative.h> - static void (*cdcreatecanvasNATIVE)(cdCanvas* canvas, void* data) = NULL; static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas) @@ -24,8 +23,12 @@ static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas) #endif char* data; - if (IupGetInt(ih_canvas, "CD_GDK")) + if (cdBaseDriver()==CD_BASE_GDK) + { data = IupGetAttribute(ih_canvas, "DRAWABLE"); /* new IUP 3 attribute, works for GTK only */ + if (!data) + return; + } else { #ifdef WIN32 diff --git a/iup/srcconsole/Makefile b/iup/srcconsole/Makefile index 876ca8d..505b103 100755 --- a/iup/srcconsole/Makefile +++ b/iup/srcconsole/Makefile @@ -3,10 +3,10 @@ do_all: iuplua5 iuplua5: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak iuplua5gtk: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes + @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes iuplua3: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iuplua3 + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iuplua3 diff --git a/iup/srcconsole/config.mak b/iup/srcconsole/config.mak index 612a3ab..568bed6 100755 --- a/iup/srcconsole/config.mak +++ b/iup/srcconsole/config.mak @@ -1,12 +1,23 @@ PROJNAME = iup APPNAME = iuplua51 -APPTYPE = console +APPTYPE = CONSOLE + +ifdef GTK_DEFAULT + ifdef USE_MOTIF + # Build Motif version in Linux,Darwin,FreeBSD + APPNAME = iuplua51mot + endif +else + ifdef USE_GTK + # Build GTK version in IRIX,SunOS,AIX,Win32 + APPNAME = iuplua51gtk + endif +endif LOHDIR = loh SRCLUA = console5.lua SRC = iup_lua51.c - # Disable strip STRIP = # Optimize @@ -35,6 +46,16 @@ ifdef DBG USE_STATIC = Yes USE_LUA51 = Yes + ifdef DBG_DIR + IUPLIB = $(IUP)/lib/$(TEC_UNAME)d + CDLIB = $(CD)/lib/$(TEC_UNAME)d + IMLIB = $(IM)/lib/$(TEC_UNAME)d + else + IUPLIB = $(IUP)/lib/$(TEC_UNAME) + CDLIB = $(CD)/lib/$(TEC_UNAME) + IMLIB = $(IM)/lib/$(TEC_UNAME) + endif + DEFINES = USE_STATIC USE_CDLUA = Yes @@ -42,7 +63,6 @@ ifdef DBG ifneq ($(findstring Win, $(TEC_SYSNAME)), ) LIBS += iuplua_pplot$(LIBLUASUFX) iup_pplot else - IUPLIB = $(IUP)/lib/$(TEC_UNAME) SLIB += $(IUPLIB)/libiuplua_pplot$(LIBLUASUFX).a $(IUPLIB)/libiup_pplot.a endif @@ -50,7 +70,6 @@ ifdef DBG ifneq ($(findstring Win, $(TEC_SYSNAME)), ) LIBS += cdluaim$(LIBLUASUFX) else - CDLIB = $(CD)/lib/$(TEC_UNAME) SLIB += $(CDLIB)/libcdluaim$(LIBLUASUFX).a endif endif @@ -65,8 +84,6 @@ ifdef DBG ifneq ($(findstring Win, $(TEC_SYSNAME)), ) LIBS += imlua_process$(LIBLUASUFX) iupluaim$(LIBLUASUFX) im_process iupim else - IUPLIB = $(IUP)/lib/$(TEC_UNAME) - IMLIB = $(IM)/lib/$(TEC_UNAME) SLIB += $(IMLIB)/libimlua_process$(LIBLUASUFX).a $(IUPLIB)/libiupluaim$(LIBLUASUFX).a $(IMLIB)/libim_process.a $(IUPLIB)/libiupim.a endif @@ -77,20 +94,24 @@ ifdef DBG ifneq ($(findstring Win, $(TEC_SYSNAME)), ) LIBS += iupluaimglib$(LIBLUASUFX) iupimglib else - IUPLIB = $(IUP)/lib/$(TEC_UNAME) SLIB += $(IUPLIB)/libiupluaimglib$(LIBLUASUFX).a $(IUPLIB)/libiupimglib.a endif endif else ifneq ($(findstring Win, $(TEC_SYSNAME)), ) # Dinamically link in Windows, when not debugging - # Must call "tecmake dll8" + # Must call "tecmake dll8" so USE_* will use the correct TEC_UNAME USE_LUA51 = Yes USE_DLL = Yes GEN_MANIFEST = No else # In UNIX Lua is always statically linked, late binding is used. - USE_STATIC = Yes + # Except in Cygwin and MacOSX + ifeq ($(findstring cygw, $(TEC_UNAME)), ) + ifeq ($(findstring Darwin, $(TEC_UNAME)), ) + USE_STATIC = Yes + endif + endif USE_LUA51 = Yes endif endif @@ -102,10 +123,13 @@ ifneq ($(findstring Win, $(TEC_SYSNAME)), ) endif ifneq ($(findstring cygw, $(TEC_UNAME)), ) - LDFLAGS = -s LIBS += readline history endif +ifneq ($(findstring Darwin, $(TEC_UNAME)), ) + LIBS += readline +endif + ifneq ($(findstring Linux, $(TEC_UNAME)), ) LIBS += dl #To allow late binding @@ -129,10 +153,3 @@ ifneq ($(findstring AIX, $(TEC_UNAME)), ) LFLAGS = -Xlinker "-bbigtoc" endif -ifeq ($(TEC_UNAME), vc8) - ifdef DBG - #debug info not working for vc8 linker - define DBG - endef - endif -endif diff --git a/iup/srcconsole/console5.lua b/iup/srcconsole/console5.lua index 20f74b2..0b93641 100755 --- a/iup/srcconsole/console5.lua +++ b/iup/srcconsole/console5.lua @@ -1,67 +1,69 @@ require"iuplua" -iup.console = {} - -- Utilities +iup_console = {} -function iup.console.printtable(t) - local n,v = next(t, nil) - print("--printtable Start--") - while n do - print(tostring(n).."="..tostring(v)) - n,v = next(t, n) - end - print("--printtable End--") +function iup_console.concat(str, info) + return str .. info .. "\n" end -function iup.console.print_version_info() - if (im) then print("IM " .. im._VERSION .. " " .. im._COPYRIGHT) end +function iup_console.print_version_info() + iup_console.clear() + local str = "" + if (im) then str = iup_console.concat(str, "IM " .. im._VERSION .. " " .. im._COPYRIGHT) end - if (cd) then print("CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end + if (cd) then str = iup_console.concat(str, "CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end - print("IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT) - print("") - print("IUP Info") - print(" System: " .. iup.GetGlobal("SYSTEM")) - print(" System Version: " .. iup.GetGlobal("SYSTEMVERSION")) + str = iup_console.concat(str, "IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT) + str = iup_console.concat(str, "") + str = iup_console.concat(str, "IUP Info") + str = iup_console.concat(str, " System: " .. iup.GetGlobal("SYSTEM")) + str = iup_console.concat(str, " System Version: " .. iup.GetGlobal("SYSTEMVERSION")) local mot = iup.GetGlobal("MOTIFVERSION") - if (mot) then print(" Motif Version: ", mot) end + if (mot) then str = iup_console.concat(str, " Motif Version: ", mot) end - print(" Screen Size: " .. iup.GetGlobal("SCREENSIZE")) - print(" Screen Depth: " .. iup.GetGlobal("SCREENDEPTH")) + str = iup_console.concat(str, " Screen Size: " .. iup.GetGlobal("SCREENSIZE")) + str = iup_console.concat(str, " Screen Depth: " .. iup.GetGlobal("SCREENDEPTH")) - if (iup.GL_VENDOR) then print(" OpenGL Vendor: " .. iup.GL_VENDOR) end - if (iup.GL_RENDERER) then print(" OpenGL Renderer: " .. iup.GL_RENDERER) end - if (iup.GL_VERSION) then print(" OpenGL Version: " .. iup.GL_VERSION) end + if (iup.GL_VENDOR) then str = iup_console.concat(str, " OpenGL Vendor: " .. iup.GL_VENDOR) end + if (iup.GL_RENDERER) then str = iup_console.concat(str, " OpenGL Renderer: " .. iup.GL_RENDERER) end + if (iup.GL_VERSION) then str = iup_console.concat(str, " OpenGL Version: " .. iup.GL_VERSION) end + + iup_console.mlCode.value=str end -- Console Dialog -iup.console.lastfilename = nil -- Last file open -iup.console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"} -iup.console.lblPosition = iup.label{title="0:0", size="50x"} -iup.console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"} +iup_console.lastfilename = nil -- Last file open +iup_console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"} +iup_console.lblPosition = iup.label{title="0:0", size="50x"} +iup_console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"} + +function iup_console.mlCode:caret_cb(lin, col) + iup_console.lblPosition.title = lin..":"..col +end -function iup.console.mlCode:caret_cb(lin, col) - iup.console.lblPosition.title = lin..":"..col +function iup_console.clear() + iup_console.mlCode.value='' + iup_console.lblFileName.title = '' + iup_console.lastfilename = nil end -iup.console.butExecute = iup.button{size="50x15", title="Execute", - action="iup.dostring(iup.console.mlCode.value)"} -iup.console.butClearCommands = iup.button{size="50x15", title="Clear", - action="iup.console.mlCode.value='' iup.console.lblFileName.title = '' iup.console.lastfilename = nil"} -iup.console.butLoadFile = iup.button{size="50x15", title="Load..."} -iup.console.butSaveasFile = iup.button{size="50x15", title="Save As..."} -iup.console.butSaveFile = iup.button{size="50x15", title="Save"} - -function iup.console.butSaveFile:action() - if (iup.console.lastfilename == nil) then - iup.console.butSaveasFile:action() +iup_console.butExecute = iup.button{size="50x15", title="Execute", + action="iup.dostring(iup_console.mlCode.value)"} +iup_console.butClearCommands = iup.button{size="50x15", title="Clear", action=iup_console.clear} +iup_console.butLoadFile = iup.button{size="50x15", title="Load..."} +iup_console.butSaveasFile = iup.button{size="50x15", title="Save As..."} +iup_console.butSaveFile = iup.button{size="50x15", title="Save"} + +function iup_console.butSaveFile:action() + if (iup_console.lastfilename == nil) then + iup_console.butSaveasFile:action() else - newfile = io.open(iup.console.lastfilename, "w+") + newfile = io.open(iup_console.lastfilename, "w+") if (newfile) then - newfile:write(iup.console.mlCode.value) + newfile:write(iup_console.mlCode.value) newfile:close() else error ("Cannot Save file "..filename) @@ -69,21 +71,26 @@ function iup.console.butSaveFile:action() end end -function iup.console.butSaveasFile:action() - local fd = iup.filedlg{dialogtype="SAVE", title="Save File", +function iup_console.butSaveasFile:action() + local fd = iup.filedlg{dialogtype="SAVE", title="Save File", + nochangedir="NO", directory=iup_console.last_directory, filter="*.*", filterinfo="All files",allownew=yes} + fd:popup(iup.LEFT, iup.LEFT) + local status = fd.status - iup.console.lastfilename = fd.value - iup.console.lblFileName.title = iup.console.lastfilename + iup_console.lastfilename = fd.value + iup_console.lblFileName.title = fd.value + iup_console.last_directory = fd.directory fd:destroy() + if status ~= "-1" then - if (iup.console.lastfilename == nil) then + if (iup_console.lastfilename == nil) then error ("Cannot Save file "..filename) end - local newfile=io.open(iup.console.lastfilename, "w+") + local newfile=io.open(iup_console.lastfilename, "w+") if (newfile) then - newfile:write(iup.console.mlCode.value) + newfile:write(iup_console.mlCode.value) newfile:close(newfile) else error ("Cannot Save file") @@ -91,24 +98,26 @@ function iup.console.butSaveasFile:action() end end -function iup.console.LoadFile(filename) +function iup_console.LoadFile(filename) local newfile = io.open (filename, "r") if (newfile == nil) then error ("Cannot load file "..filename) else - iup.console.mlCode.value=newfile:read("*a") + iup_console.mlCode.value=newfile:read("*a") newfile:close (newfile) - iup.console.lastfilename = filename - iup.console.lblFileName.title = iup.console.lastfilename + iup_console.lastfilename = filename + iup_console.lblFileName.title = iup_console.lastfilename end end -function iup.console.butLoadFile:action() - local fd=iup.filedlg{dialogtype="OPEN", title="Load File", +function iup_console.butLoadFile:action() + local fd=iup.filedlg{dialogtype="OPEN", title="Load File", + nochangedir="NO", directory=iup_console.last_directory, filter="*.*", filterinfo="All Files", allownew="NO"} fd:popup(iup.CENTER, iup.CENTER) local status = fd.status local filename = fd.value + iup_console.last_directory = fd.directory fd:destroy() if (status == "-1") or (status == "1") then @@ -116,21 +125,21 @@ function iup.console.butLoadFile:action() error ("Cannot load file "..filename) end else - iup.console.LoadFile(filename) + iup_console.LoadFile(filename) end end -iup.console.vbxConsole = iup.vbox +iup_console.vbxConsole = iup.vbox { - iup.frame{iup.hbox{iup.vbox{iup.console.butLoadFile, - iup.console.butSaveFile, - iup.console.butSaveasFile, - iup.console.butClearCommands, - iup.console.butExecute; + iup.frame{iup.hbox{iup.vbox{iup_console.butLoadFile, + iup_console.butSaveFile, + iup_console.butSaveasFile, + iup_console.butClearCommands, + iup_console.butExecute; margin="0x0", gap="10"}, - iup.vbox{iup.console.lblFileName, - iup.console.mlCode, - iup.console.lblPosition; + iup.vbox{iup_console.lblFileName, + iup_console.mlCode, + iup_console.lblPosition; alignment = "ARIGHT"}; alignment="ATOP"}; title="Commands"} ;alignment="ACENTER", margin="5x5", gap="5" @@ -138,7 +147,7 @@ iup.console.vbxConsole = iup.vbox -- Main Menu Definition. -iup.console.mnuMain = iup.menu +iup_console.mnuMain = iup.menu { iup.submenu { @@ -149,29 +158,29 @@ iup.console.mnuMain = iup.menu }, iup.submenu{iup.menu { - iup.item{title="Print Version Info...", action=iup.console.print_version_info}, - iup.item{title="About...", action="iup.console.dlgAbout:popup(iup.CENTER, iup.CENTER)"} + iup.item{title="Print Version Info...", action=iup_console.print_version_info}, + iup.item{title="About...", action="iup_console.dlgAbout:popup(iup.CENTER, iup.CENTER)"} };title="Help"} } -- Main Dialog Definition. -iup.console.dlgMain = iup.dialog{iup.console.vbxConsole; +iup_console.dlgMain = iup.dialog{iup_console.vbxConsole; title="IupLua Console", - menu=iup.console.mnuMain, + menu=iup_console.mnuMain, dragdrop = "YES", - defaultenter=iup.console.butExecute, + defaultenter=iup_console.butExecute, close_cb = "return iup.CLOSE"} -function iup.console.dlgMain:dropfiles_cb(filename, num, x, y) +function iup_console.dlgMain:dropfiles_cb(filename, num, x, y) if (num == 0) then - iup.console.LoadFile(filename) + iup_console.LoadFile(filename) end end -- About Dialog Definition. -iup.console.dlgAbout = iup.dialog +iup_console.dlgAbout = iup.dialog { iup.vbox { @@ -195,10 +204,12 @@ iup.console.dlgAbout = iup.dialog -- Displays the Main Dialog -iup.console.dlgMain:show() -iup.SetFocus(iup.console.mlCode) +iup_console.dlgMain:show() +iup.SetFocus(iup_console.mlCode) -iup.MainLoop() +if (not iup.MainLoopLevel or iup.MainLoopLevel()==0) then + iup.MainLoop() +end -iup.console.dlgMain:destroy() -iup.console.dlgAbout:destroy() +iup_console.dlgMain:destroy() +iup_console.dlgAbout:destroy() diff --git a/iup/srcconsole/copy_all_so b/iup/srcconsole/copy_all_so index 52f1fea..ce3c248 100755 --- a/iup/srcconsole/copy_all_so +++ b/iup/srcconsole/copy_all_so @@ -2,10 +2,10 @@ foreach plat ( Linux24 Linux24g3 Linux24g3_64 Linux26 Linux26_64 Linux26g4 Linux26g4_64 Linux26_ia64 SunOS57 SunOS510 SunOS510x86 AIX43 IRIX65 IRIX6465 ) echo $plat - cp -f ../lib/$plat/*.so ../bin/$plat - cp -f ../../cd/lib/$plat/*.so ../bin/$plat - cp -f ../../im/lib/$plat/*.so ../bin/$plat +# cp -f ../lib/$plat/*.so ../bin/$plat +# cp -f ../../cd/lib/$plat/*.so ../bin/$plat +# cp -f ../../im/lib/$plat/*.so ../bin/$plat cp -f ../../luagl/lib/$plat/*.so ../bin/$plat cp -f ../../lfs/lib/$plat/*.so ../bin/$plat - rm -f ../bin/$plat/*3.so +# rm -f ../bin/$plat/*3.so end diff --git a/iup/srcconsole/copy_cygdll.bat b/iup/srcconsole/copy_cygdll.bat new file mode 100644 index 0000000..7cf5dda --- /dev/null +++ b/iup/srcconsole/copy_cygdll.bat @@ -0,0 +1,8 @@ +@echo off +copy /y ..\lib\cygw17\*.dll ..\bin\cygw17 +copy /y ..\..\cd\lib\cygw17\*.dll ..\bin\cygw17 +copy /y ..\..\im\lib\cygw17\*.dll ..\bin\cygw17 +copy /y ..\..\lua5.1\lib\cygw17\*.dll ..\bin\cygw17 +copy /y ..\..\luagl\lib\cygw17\*.dll ..\bin\cygw17 +copy /y ..\..\lfs\lib\cygw17\*.dll ..\bin\cygw17 +del ..\bin\cygw17\*3.dll diff --git a/iup/srcconsole/copy_dylib b/iup/srcconsole/copy_dylib new file mode 100644 index 0000000..a5bfdc8 --- /dev/null +++ b/iup/srcconsole/copy_dylib @@ -0,0 +1,6 @@ +cp -f ../lib/${TEC_UNAME}/*.dylib ../bin/$TEC_UNAME +cp -f ../../cd/lib/${TEC_UNAME}/*.dylib ../bin/$TEC_UNAME +cp -f ../../im/lib/${TEC_UNAME}/*.dylib ../bin/$TEC_UNAME +cp -f ../../luagl/lib/${TEC_UNAME}/*.dylib ../bin/${TEC_UNAME} +cp -f ../../lfs/lib/${TEC_UNAME}/*.dylib ../bin/${TEC_UNAME} +rm -f ../bin/${TEC_UNAME}/*3.dylib diff --git a/iup/srcconsole/copy_so b/iup/srcconsole/copy_so index 2535766..e345d31 100755 --- a/iup/srcconsole/copy_so +++ b/iup/srcconsole/copy_so @@ -1,4 +1,6 @@ cp -f ../lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME cp -f ../../cd/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME cp -f ../../im/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME +cp -f ../../luagl/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME} +cp -f ../../lfs/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME} rm -f ../bin/${TEC_UNAME}/*3.so diff --git a/iup/srcconsole/iuplua3.rc b/iup/srcconsole/iuplua3.rc index e741199..9fcc280 100755 --- a/iup/srcconsole/iuplua3.rc +++ b/iup/srcconsole/iuplua3.rc @@ -13,7 +13,7 @@ BEGIN VALUE "CompanyName", "Tecgraf/PUC-Rio\0" VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0" VALUE "FileVersion", "3.0.0\0" - VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0" + VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0" VALUE "OriginalFilename", "iuplua51.exe\0" VALUE "ProductName", "IUP for Windows\0" VALUE "ProductVersion", "3.0.0\0" diff --git a/iup/srcconsole/iuplua5.rc b/iup/srcconsole/iuplua5.rc index bc02e07..70e40a4 100755 --- a/iup/srcconsole/iuplua5.rc +++ b/iup/srcconsole/iuplua5.rc @@ -13,7 +13,7 @@ BEGIN VALUE "CompanyName", "Tecgraf/PUC-Rio\0" VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0" VALUE "FileVersion", "3.0.0\0" - VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0" + VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0" VALUE "OriginalFilename", "iuplua51.exe\0" VALUE "ProductName", "IUP for Windows\0" VALUE "ProductVersion", "3.0.0\0" diff --git a/iup/srcconsole/loh/console3.loh b/iup/srcconsole/loh/console3.loh deleted file mode 100755 index 5cfd348..0000000 --- a/iup/srcconsole/loh/console3.loh +++ /dev/null @@ -1,254 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/console3.lo"); -*/ -/* ../obj/iuplua3/console3.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111, -108,101, 51, 46,108,117, 97, 0, 0, 0, 2,170, 17, 0, 11, 1, 25, 0, 11, 3, - 25, 2, 11, 5, 25, 4, 11, 7, 25, 6, 4, 0, 25, 8, 15, 10, 22, 3, 11, 11, - 15, 12, 11, 13, 11, 14, 11, 15, 11, 16, 30, 2, 2, 1, 1, 25, 9, 15, 18, 22, - 2, 11, 19, 11, 20, 11, 13, 11, 21, 30, 1, 2, 1, 1, 25, 17, 15, 18, 22, 3, - 11, 19, 11, 23, 11, 13, 11, 21, 11, 11, 11, 24, 30, 2, 2, 1, 1, 25, 22, 15, - 9, 11, 25, 11, 26, 26, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, 31, 11, 32, - 11, 33, 30, 2, 2, 1, 1, 25, 27, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, - 35, 11, 32, 11, 36, 30, 2, 2, 1, 1, 25, 34, 15, 28, 22, 2, 11, 13, 11, 29, - 11, 30, 11, 38, 30, 1, 2, 1, 1, 25, 37, 15, 28, 22, 2, 11, 13, 11, 29, 11, - 30, 11, 40, 30, 1, 2, 1, 1, 25, 39, 15, 28, 22, 2, 11, 13, 11, 29, 11, 30, - 11, 42, 30, 1, 2, 1, 1, 25, 41, 15, 41, 11, 32, 11, 43, 26, 15, 44, 11, 45, - 11, 46, 26, 15, 37, 11, 45, 11, 47, 26, 15, 49, 22, 4, 15, 50, 22, 2, 15, 51, - 22, 3, 15, 49, 22, 7, 15, 37, 15, 41, 15, 44, 15, 34, 15, 27, 29, 0, 5, 11, - 52, 11, 53, 11, 54, 11, 55, 30, 1, 2, 1, 1, 15, 49, 22, 4, 15, 56, 15, 57, - 15, 58, 29, 0, 3, 11, 59, 11, 60, 30, 0, 2, 1, 1, 29, 0, 2, 11, 59, 11, - 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 62, 11, 63, 30, 0, 2, 1, 1, 29, 0, - 1, 11, 59, 11, 64, 11, 52, 11, 65, 11, 54, 11, 66, 30, 2, 2, 1, 1, 25, 48, - 15, 68, 22, 2, 15, 69, 22, 2, 15, 68, 22, 1, 15, 70, 22, 2, 11, 62, 11, 71, - 11, 45, 11, 72, 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 62, - 11, 73, 30, 0, 2, 1, 1, 15, 69, 22, 2, 15, 68, 22, 2, 15, 74, 18, 75, 22, - 2, 11, 62, 11, 76, 11, 45, 15, 6, 30, 1, 2, 1, 1, 15, 70, 22, 2, 11, 62, - 11, 77, 11, 45, 11, 78, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, - 11, 62, 11, 79, 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 67, 15, 81, 22, - 4, 15, 48, 29, 0, 1, 11, 62, 11, 82, 11, 83, 15, 67, 11, 84, 11, 72, 30, 2, - 2, 1, 1, 25, 80, 15, 81, 22, 5, 15, 49, 22, 8, 15, 18, 22, 1, 11, 62, 11, - 82, 30, 0, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, - 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, 50, 22, 1, 15, 49, 22, 3, - 15, 18, 22, 1, 11, 62, 11, 87, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, - 88, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, 89, 30, 0, 2, 1, 1, 29, - 0, 3, 2, 1, 1, 29, 0, 1, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, - 0, 2, 1, 1, 15, 28, 22, 3, 11, 62, 11, 90, 11, 45, 11, 72, 11, 13, 11, 91, - 30, 2, 2, 1, 1, 29, 0, 6, 11, 52, 11, 92, 11, 59, 11, 64, 30, 1, 2, 1, - 1, 29, 0, 1, 11, 93, 15, 94, 11, 95, 15, 94, 11, 96, 15, 94, 11, 62, 11, 97, - 30, 3, 2, 1, 1, 25, 85, 15, 80, 20, 98, 2, 0, 1, 15, 99, 2, 0, 0, 15, -100, 15, 80, 2, 0, 1, 15,100, 15, 85, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0,101, 2, 0, 0, 0, 8,114,101,113,117,105,114,101, 0, 4, 0, 0, 0, 4, - 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 10,112,114, -105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111, -110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 6, 0, 15, 2, 4, - 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, 15, 5, 13, 0, 2, - 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, 1, 15, 2, 13, 0, - 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, 3, 11, 7, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, - 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,114, 0, 2, 0, 0, - 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,112,114,105,110,116, -118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111, -115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 18, 45, - 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, 45, 0, 2, 0, 0, - 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, 0, 17, 0, 0, - 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 71, - 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, 2, 0, 1, 50, 36, - 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, 2, 2, 1, 1, 42, - 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, 1, 13, 1, 4, 0, - 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, - 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 2,118, 0, - 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,112,114,105,110,116, - 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 83, -116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,112,114,105,110,116, -116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, 0, 19,112,114,105, -110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, 0, 4, 0, 0, 0, - 27, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, - 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, 4, 42, 2, 0, 1, - 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, 18, 6, 42, 2, 0, - 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, 18, 1, 11, 2, 42, - 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, 2, 42, 15, 3, 18, - 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, 9, 2, 0, 1, 15, - 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 13, - 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 11, 11, 16, 2, - 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, 15, 0, 11, 18, 15, - 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 20, 15, 3, 18, 11, - 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, 15, 0, 11, 23, 15, - 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, 11, 25, 15, 3, 18, - 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, 15, 3, 18, 26, 42, - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, 0, 6,112,114,105, -110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, - 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 15, 95, 76, - 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 3,105,109, - 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, - 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 9, 73, 85, 80, 32, - 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,116,101,109, 58, 32, - 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, 0, 2, 0, 0, 0, - 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, 83,121,115,116,101, -109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, 0, 14, 83, 89, 83, - 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 4,109,111,116, 0, - 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, - 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, - 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, - 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 2, 0, - 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, - 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 2, 0, 0, - 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, 0, 18, 32, 32, 79, -112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 2, 0, 0, 0, 12, - 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, 0, 20, 32, 32, 79, -112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 2, 0, 0, - 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 19, 32, 32, - 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, - 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 12,109,117,108, 67, -111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,116, -105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 5,115,105,122,101, - 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, 0, 0, 0, 5,102, -111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, - 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, - 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, 2, 0, 0, 0, 4, - 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, 0, 0, 0, 53, 0, - 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, - 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 4, -108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, 0, 0, 9,112,111, -115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,101, 99,117,116,101, - 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, - 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105, -111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,103, 40,109,117,108, - 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, 0, 2, 0, 0, 0, - 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,100,115, 0, 2, 0, - 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,117,108, 67,111,109, -109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, 39, 32, 32,102,105, -108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, 32, -108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, 2, 0, 0, 0, 12, - 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, 0, 8, 76,111, 97, -100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70, -105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, - 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 2, 0, 0, - 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 63, 0, 0, 0, 14, 64, 99,111,110, -115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, 1, 15, 0, 4, 0, - 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, 0, 11, 5, 2, 1, - 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, 7, 18, 8, 2, 0, - 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, 12, 42, 2, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, 97,115,116,102,105, -108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108, -101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,110, -111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, - 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, - 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105, -108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, - 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, - 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, - 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111, -110, 0, 4, 0, 0, 0, 77, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, - 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, - 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, 30, 4, 2, 1, 1, - 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 25, - 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, 13, 2, 11, 19, 31, - 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, 42, 2, 0, 1, 15, - 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, 15, 25, 13, 3, 15, - 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, 15, 20, 11, 28, 2, - 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, 0, 0, 8,102,105, -108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,108, -103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 2, 0, - 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, - 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, 0, 0, 0, 7,102, -105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, 0, 2, 0, 0, - 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, 0, 10, 76,117, - 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,111,119,110,101, -119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, - 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 9,108, 97,115,116, -102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, 73,117,112, 68, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 6, -101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97, -118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,111,118,111, 97,114, -113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, - 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, 2, 0, 0, 0, 12, -109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 10, 99,108,111, -115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83, - 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 98, 0, 0, 0, 14, 64, 99, -111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,153, 13, 1, 15, 1, - 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, - 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, 2, 0, 3, 13, 1, - 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, 11, 18, 32, 46, 5, - 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, 20, 11, 21, 13, 3, - 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, 13, 4, 4, 0, 32, - 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, 25, 11, 16, 15, 26, - 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, 13, 3, 25, 29, 15, - 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105, -108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112, -101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,108,101, 0, 2, 0, - 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, - 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, - 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108, -111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 6,112, -111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, - 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 8,110,101, -119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, - 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, - 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, - 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, 32,102,105,108,101, - 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,111,112,101,110,102, -105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, 12,109,117,108, 67, -111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, 97,100, 0, 2, 0, - 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,108,101, - 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 10, -102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,118, 98,120, 67,111, -110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 2, - 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, 0, 0, 8,105,117, -112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,105,110, 0, 2, 0, - 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, - 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, - 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, - 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, 97,108,105,103,110, -109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, - 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 8, 65, 67, 69, - 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, 0, 0, 0, 2, 53, - 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, 0, 0, 0, 8,105, -117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101, -110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 2, 0, 0, 0, - 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, - 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,108,101, 0, 2, 0, - 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, 0, - 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, - 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 2, 0, - 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,117,112, 40, 73, 85, - 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, - 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, 0, 8,100,108,103, - 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, - 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,117,112, 76,117, 97, - 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, 0, 0, 0, 5,109, -101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, 0, 8,105,117,112, -102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, 97,102, 47, 80, 85, - 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, 47, 79,118,237,100, -105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,117,112, 64,116,101, - 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 2, 0, 0, - 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, 0, 2, 0, 0, 0, - 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, 98,111,120, 0, 2, - 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, 7,109,105,110, 98, -111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 6, - 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 2, 0, 0, 0, - 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, 0, 0, 11, 73,117, -112, 68,101,115,116,114,111,121, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3.lo"); -} diff --git a/iup/srcconsole/loh/console3_be32.loh b/iup/srcconsole/loh/console3_be32.loh deleted file mode 100755 index 8cae3eb..0000000 --- a/iup/srcconsole/loh/console3_be32.loh +++ /dev/null @@ -1,254 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/console3_be32.lo"); -*/ -/* ../obj/iuplua3/console3_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111, -108,101, 51, 46,108,117, 97, 0, 0, 0, 2,170, 17, 0, 11, 1, 25, 0, 11, 3, - 25, 2, 11, 5, 25, 4, 11, 7, 25, 6, 4, 0, 25, 8, 15, 10, 22, 3, 11, 11, - 15, 12, 11, 13, 11, 14, 11, 15, 11, 16, 30, 2, 2, 1, 1, 25, 9, 15, 18, 22, - 2, 11, 19, 11, 20, 11, 13, 11, 21, 30, 1, 2, 1, 1, 25, 17, 15, 18, 22, 3, - 11, 19, 11, 23, 11, 13, 11, 21, 11, 11, 11, 24, 30, 2, 2, 1, 1, 25, 22, 15, - 9, 11, 25, 11, 26, 26, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, 31, 11, 32, - 11, 33, 30, 2, 2, 1, 1, 25, 27, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, - 35, 11, 32, 11, 36, 30, 2, 2, 1, 1, 25, 34, 15, 28, 22, 2, 11, 13, 11, 29, - 11, 30, 11, 38, 30, 1, 2, 1, 1, 25, 37, 15, 28, 22, 2, 11, 13, 11, 29, 11, - 30, 11, 40, 30, 1, 2, 1, 1, 25, 39, 15, 28, 22, 2, 11, 13, 11, 29, 11, 30, - 11, 42, 30, 1, 2, 1, 1, 25, 41, 15, 41, 11, 32, 11, 43, 26, 15, 44, 11, 45, - 11, 46, 26, 15, 37, 11, 45, 11, 47, 26, 15, 49, 22, 4, 15, 50, 22, 2, 15, 51, - 22, 3, 15, 49, 22, 7, 15, 37, 15, 41, 15, 44, 15, 34, 15, 27, 29, 0, 5, 11, - 52, 11, 53, 11, 54, 11, 55, 30, 1, 2, 1, 1, 15, 49, 22, 4, 15, 56, 15, 57, - 15, 58, 29, 0, 3, 11, 59, 11, 60, 30, 0, 2, 1, 1, 29, 0, 2, 11, 59, 11, - 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 62, 11, 63, 30, 0, 2, 1, 1, 29, 0, - 1, 11, 59, 11, 64, 11, 52, 11, 65, 11, 54, 11, 66, 30, 2, 2, 1, 1, 25, 48, - 15, 68, 22, 2, 15, 69, 22, 2, 15, 68, 22, 1, 15, 70, 22, 2, 11, 62, 11, 71, - 11, 45, 11, 72, 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 62, - 11, 73, 30, 0, 2, 1, 1, 15, 69, 22, 2, 15, 68, 22, 2, 15, 74, 18, 75, 22, - 2, 11, 62, 11, 76, 11, 45, 15, 6, 30, 1, 2, 1, 1, 15, 70, 22, 2, 11, 62, - 11, 77, 11, 45, 11, 78, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, - 11, 62, 11, 79, 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 67, 15, 81, 22, - 4, 15, 48, 29, 0, 1, 11, 62, 11, 82, 11, 83, 15, 67, 11, 84, 11, 72, 30, 2, - 2, 1, 1, 25, 80, 15, 81, 22, 5, 15, 49, 22, 8, 15, 18, 22, 1, 11, 62, 11, - 82, 30, 0, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, - 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, 50, 22, 1, 15, 49, 22, 3, - 15, 18, 22, 1, 11, 62, 11, 87, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, - 88, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, 89, 30, 0, 2, 1, 1, 29, - 0, 3, 2, 1, 1, 29, 0, 1, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, - 0, 2, 1, 1, 15, 28, 22, 3, 11, 62, 11, 90, 11, 45, 11, 72, 11, 13, 11, 91, - 30, 2, 2, 1, 1, 29, 0, 6, 11, 52, 11, 92, 11, 59, 11, 64, 30, 1, 2, 1, - 1, 29, 0, 1, 11, 93, 15, 94, 11, 95, 15, 94, 11, 96, 15, 94, 11, 62, 11, 97, - 30, 3, 2, 1, 1, 25, 85, 15, 80, 20, 98, 2, 0, 1, 15, 99, 2, 0, 0, 15, -100, 15, 80, 2, 0, 1, 15,100, 15, 85, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0,101, 2, 0, 0, 0, 8,114,101,113,117,105,114,101, 0, 4, 0, 0, 0, 4, - 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 10,112,114, -105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111, -110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 6, 0, 15, 2, 4, - 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, 15, 5, 13, 0, 2, - 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, 1, 15, 2, 13, 0, - 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, 3, 11, 7, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, - 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,114, 0, 2, 0, 0, - 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,112,114,105,110,116, -118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111, -115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 18, 45, - 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, 45, 0, 2, 0, 0, - 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, 0, 17, 0, 0, - 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 71, - 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, 2, 0, 1, 50, 36, - 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, 2, 2, 1, 1, 42, - 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, 1, 13, 1, 4, 0, - 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, - 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 2,118, 0, - 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,112,114,105,110,116, - 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 83, -116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,112,114,105,110,116, -116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, 0, 19,112,114,105, -110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, 0, 4, 0, 0, 0, - 27, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, - 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, 4, 42, 2, 0, 1, - 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, 18, 6, 42, 2, 0, - 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, 18, 1, 11, 2, 42, - 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, 2, 42, 15, 3, 18, - 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, 9, 2, 0, 1, 15, - 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 13, - 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 11, 11, 16, 2, - 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, 15, 0, 11, 18, 15, - 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 20, 15, 3, 18, 11, - 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, 15, 0, 11, 23, 15, - 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, 11, 25, 15, 3, 18, - 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, 15, 3, 18, 26, 42, - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, 0, 6,112,114,105, -110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, - 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 15, 95, 76, - 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 3,105,109, - 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, - 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 9, 73, 85, 80, 32, - 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,116,101,109, 58, 32, - 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, 0, 2, 0, 0, 0, - 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, 83,121,115,116,101, -109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, 0, 14, 83, 89, 83, - 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 4,109,111,116, 0, - 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, - 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, - 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, - 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 2, 0, - 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, - 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 2, 0, 0, - 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, 0, 18, 32, 32, 79, -112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 2, 0, 0, 0, 12, - 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, 0, 20, 32, 32, 79, -112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 2, 0, 0, - 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 19, 32, 32, - 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, - 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 12,109,117,108, 67, -111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,116, -105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 5,115,105,122,101, - 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, 0, 0, 0, 5,102, -111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, - 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, - 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, 2, 0, 0, 0, 4, - 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, 0, 0, 0, 53, 0, - 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, - 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 4, -108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, 0, 0, 9,112,111, -115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,101, 99,117,116,101, - 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, - 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105, -111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,103, 40,109,117,108, - 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, 0, 2, 0, 0, 0, - 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,100,115, 0, 2, 0, - 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,117,108, 67,111,109, -109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, 39, 32, 32,102,105, -108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, 32, -108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, 2, 0, 0, 0, 12, - 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, 0, 8, 76,111, 97, -100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70, -105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, - 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 2, 0, 0, - 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 63, 0, 0, 0, 14, 64, 99,111,110, -115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, 1, 15, 0, 4, 0, - 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, 0, 11, 5, 2, 1, - 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, 7, 18, 8, 2, 0, - 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, 12, 42, 2, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, 97,115,116,102,105, -108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108, -101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,110, -111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, - 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, - 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105, -108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, - 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, - 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, - 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111, -110, 0, 4, 0, 0, 0, 77, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, - 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, - 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, 30, 4, 2, 1, 1, - 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 25, - 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, 13, 2, 11, 19, 31, - 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, 42, 2, 0, 1, 15, - 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, 15, 25, 13, 3, 15, - 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, 15, 20, 11, 28, 2, - 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, 0, 0, 8,102,105, -108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,108, -103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 2, 0, - 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, - 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, 0, 0, 0, 7,102, -105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, 0, 2, 0, 0, - 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, 0, 10, 76,117, - 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,111,119,110,101, -119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, - 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 9,108, 97,115,116, -102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, 73,117,112, 68, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 6, -101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97, -118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,111,118,111, 97,114, -113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, - 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, 2, 0, 0, 0, 12, -109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 10, 99,108,111, -115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83, - 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 98, 0, 0, 0, 14, 64, 99, -111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,153, 13, 1, 15, 1, - 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, - 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, 2, 0, 3, 13, 1, - 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, 11, 18, 32, 46, 5, - 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, 20, 11, 21, 13, 3, - 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, 13, 4, 4, 0, 32, - 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, 25, 11, 16, 15, 26, - 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, 13, 3, 25, 29, 15, - 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105, -108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112, -101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,108,101, 0, 2, 0, - 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, - 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, - 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108, -111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 6,112, -111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, - 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 8,110,101, -119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, - 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, - 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, - 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, 32,102,105,108,101, - 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,111,112,101,110,102, -105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, 12,109,117,108, 67, -111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, 97,100, 0, 2, 0, - 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,108,101, - 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 10, -102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,118, 98,120, 67,111, -110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 2, - 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, 0, 0, 8,105,117, -112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,105,110, 0, 2, 0, - 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, - 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, - 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, - 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, 97,108,105,103,110, -109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, - 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 8, 65, 67, 69, - 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, 0, 0, 0, 2, 53, - 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, 0, 0, 0, 8,105, -117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101, -110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 2, 0, 0, 0, - 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, - 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,108,101, 0, 2, 0, - 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, 0, - 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, - 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 2, 0, - 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,117,112, 40, 73, 85, - 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, - 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, 0, 8,100,108,103, - 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, - 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,117,112, 76,117, 97, - 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, 0, 0, 0, 5,109, -101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, 0, 8,105,117,112, -102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, 97,102, 47, 80, 85, - 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, 47, 79,118,237,100, -105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,117,112, 64,116,101, - 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 2, 0, 0, - 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, 0, 2, 0, 0, 0, - 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, 98,111,120, 0, 2, - 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, 7,109,105,110, 98, -111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 6, - 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 2, 0, 0, 0, - 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, 0, 0, 11, 73,117, -112, 68,101,115,116,114,111,121, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_be32.lo"); -} diff --git a/iup/srcconsole/loh/console3_be64.loh b/iup/srcconsole/loh/console3_be64.loh deleted file mode 100755 index 879d789..0000000 --- a/iup/srcconsole/loh/console3_be64.loh +++ /dev/null @@ -1,254 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/console3_be64.lo"); -*/ -/* ../obj/iuplua3/console3_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111, -108,101, 51, 46,108,117, 97, 0, 0, 0, 2,170, 17, 0, 11, 1, 25, 0, 11, 3, - 25, 2, 11, 5, 25, 4, 11, 7, 25, 6, 4, 0, 25, 8, 15, 10, 22, 3, 11, 11, - 15, 12, 11, 13, 11, 14, 11, 15, 11, 16, 30, 2, 2, 1, 1, 25, 9, 15, 18, 22, - 2, 11, 19, 11, 20, 11, 13, 11, 21, 30, 1, 2, 1, 1, 25, 17, 15, 18, 22, 3, - 11, 19, 11, 23, 11, 13, 11, 21, 11, 11, 11, 24, 30, 2, 2, 1, 1, 25, 22, 15, - 9, 11, 25, 11, 26, 26, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, 31, 11, 32, - 11, 33, 30, 2, 2, 1, 1, 25, 27, 15, 28, 22, 3, 11, 13, 11, 29, 11, 30, 11, - 35, 11, 32, 11, 36, 30, 2, 2, 1, 1, 25, 34, 15, 28, 22, 2, 11, 13, 11, 29, - 11, 30, 11, 38, 30, 1, 2, 1, 1, 25, 37, 15, 28, 22, 2, 11, 13, 11, 29, 11, - 30, 11, 40, 30, 1, 2, 1, 1, 25, 39, 15, 28, 22, 2, 11, 13, 11, 29, 11, 30, - 11, 42, 30, 1, 2, 1, 1, 25, 41, 15, 41, 11, 32, 11, 43, 26, 15, 44, 11, 45, - 11, 46, 26, 15, 37, 11, 45, 11, 47, 26, 15, 49, 22, 4, 15, 50, 22, 2, 15, 51, - 22, 3, 15, 49, 22, 7, 15, 37, 15, 41, 15, 44, 15, 34, 15, 27, 29, 0, 5, 11, - 52, 11, 53, 11, 54, 11, 55, 30, 1, 2, 1, 1, 15, 49, 22, 4, 15, 56, 15, 57, - 15, 58, 29, 0, 3, 11, 59, 11, 60, 30, 0, 2, 1, 1, 29, 0, 2, 11, 59, 11, - 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 62, 11, 63, 30, 0, 2, 1, 1, 29, 0, - 1, 11, 59, 11, 64, 11, 52, 11, 65, 11, 54, 11, 66, 30, 2, 2, 1, 1, 25, 48, - 15, 68, 22, 2, 15, 69, 22, 2, 15, 68, 22, 1, 15, 70, 22, 2, 11, 62, 11, 71, - 11, 45, 11, 72, 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 62, - 11, 73, 30, 0, 2, 1, 1, 15, 69, 22, 2, 15, 68, 22, 2, 15, 74, 18, 75, 22, - 2, 11, 62, 11, 76, 11, 45, 15, 6, 30, 1, 2, 1, 1, 15, 70, 22, 2, 11, 62, - 11, 77, 11, 45, 11, 78, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, - 11, 62, 11, 79, 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 67, 15, 81, 22, - 4, 15, 48, 29, 0, 1, 11, 62, 11, 82, 11, 83, 15, 67, 11, 84, 11, 72, 30, 2, - 2, 1, 1, 25, 80, 15, 81, 22, 5, 15, 49, 22, 8, 15, 18, 22, 1, 11, 62, 11, - 82, 30, 0, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, - 86, 22, 1, 11, 13, 11, 66, 30, 0, 2, 1, 1, 15, 50, 22, 1, 15, 49, 22, 3, - 15, 18, 22, 1, 11, 62, 11, 87, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, - 88, 30, 0, 2, 1, 1, 15, 18, 22, 1, 11, 62, 11, 89, 30, 0, 2, 1, 1, 29, - 0, 3, 2, 1, 1, 29, 0, 1, 2, 1, 1, 15, 86, 22, 1, 11, 13, 11, 66, 30, - 0, 2, 1, 1, 15, 28, 22, 3, 11, 62, 11, 90, 11, 45, 11, 72, 11, 13, 11, 91, - 30, 2, 2, 1, 1, 29, 0, 6, 11, 52, 11, 92, 11, 59, 11, 64, 30, 1, 2, 1, - 1, 29, 0, 1, 11, 93, 15, 94, 11, 95, 15, 94, 11, 96, 15, 94, 11, 62, 11, 97, - 30, 3, 2, 1, 1, 25, 85, 15, 80, 20, 98, 2, 0, 1, 15, 99, 2, 0, 0, 15, -100, 15, 80, 2, 0, 1, 15,100, 15, 85, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0,101, 2, 0, 0, 0, 8,114,101,113,117,105,114,101, 0, 4, 0, 0, 0, 4, - 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 10,112,114, -105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111, -110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 6, 0, 15, 2, 4, - 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, 15, 5, 13, 0, 2, - 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, 1, 15, 2, 13, 0, - 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, 3, 11, 7, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, - 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97,114, 0, 2, 0, 0, - 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45,112,114,105,110,116, -118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111, -115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 18, 45, - 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, 45, 0, 2, 0, 0, - 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, 0, 17, 0, 0, - 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 71, - 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, 2, 0, 1, 50, 36, - 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, 2, 2, 1, 1, 42, - 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, 1, 13, 1, 4, 0, - 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, - 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 2,118, 0, - 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,112,114,105,110,116, - 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 83, -116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45,112,114,105,110,116, -116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, 0, 19,112,114,105, -110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, 0, 4, 0, 0, 0, - 27, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, - 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, 4, 42, 2, 0, 1, - 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, 18, 6, 42, 2, 0, - 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, 18, 1, 11, 2, 42, - 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, 2, 42, 15, 3, 18, - 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, 9, 2, 0, 1, 15, - 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 13, - 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 11, 11, 16, 2, - 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, 15, 0, 11, 18, 15, - 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, 20, 15, 3, 18, 11, - 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, 15, 0, 11, 23, 15, - 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, 11, 25, 15, 3, 18, - 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, 15, 3, 18, 26, 42, - 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, 0, 6,112,114,105, -110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, - 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 15, 95, 76, - 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 3,105,109, - 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, 0, - 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 9, 73, 85, 80, 32, - 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115,116,101,109, 58, 32, - 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, 0, 2, 0, 0, 0, - 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, 83,121,115,116,101, -109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, 0, 14, 83, 89, 83, - 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 4,109,111,116, 0, - 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, - 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, - 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, - 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 2, 0, - 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, - 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 2, 0, 0, - 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, 0, 18, 32, 32, 79, -112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 2, 0, 0, 0, 12, - 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, 0, 20, 32, 32, 79, -112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 2, 0, 0, - 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, 19, 32, 32, - 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, - 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 12,109,117,108, 67, -111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108,116, -105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 5,115,105,122,101, - 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, 0, 0, 0, 5,102, -111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, - 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, - 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, 2, 0, 0, 0, 4, - 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, - 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, 0, 0, 0, 53, 0, - 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, - 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 4, -108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, 0, 0, 9,112,111, -115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120,101, 99,117,116,101, - 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, - 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105, -111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110,103, 40,109,117,108, - 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, 0, 2, 0, 0, 0, - 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110,100,115, 0, 2, 0, - 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109,117,108, 67,111,109, -109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, 39, 32, 32,102,105, -108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, 32, -108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, 2, 0, 0, 0, 12, - 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, 0, 8, 76,111, 97, -100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70, -105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, - 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 2, 0, 0, - 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 63, 0, 0, 0, 14, 64, 99,111,110, -115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, 1, 15, 0, 4, 0, - 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, 0, 11, 5, 2, 1, - 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, 7, 18, 8, 2, 0, - 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, 12, 42, 2, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, 97,115,116,102,105, -108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108, -101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,110, -111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, - 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, - 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105, -108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, - 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, - 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, - 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111, -110, 0, 4, 0, 0, 0, 77, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, - 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, - 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, 30, 4, 2, 1, 1, - 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 25, - 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, 13, 2, 11, 19, 31, - 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, 42, 2, 0, 1, 15, - 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, 15, 25, 13, 3, 15, - 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, 15, 20, 11, 28, 2, - 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, 0, 0, 8,102,105, -108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100,108, -103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 2, 0, - 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, - 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, 0, 0, 0, 7,102, -105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, 0, 2, 0, 0, - 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, 0, 10, 76,117, - 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108,111,119,110,101, -119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, - 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 9,108, 97,115,116, -102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, 73,117,112, 68, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 6, -101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97, -118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110,111,118,111, 97,114, -113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, - 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, 2, 0, 0, 0, 12, -109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 10, 99,108,111, -115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83, - 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 98, 0, 0, 0, 14, 64, 99, -111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,153, 13, 1, 15, 1, - 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, - 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, 2, 0, 3, 13, 1, - 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, 11, 18, 32, 46, 5, - 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, 20, 11, 21, 13, 3, - 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, 13, 4, 4, 0, 32, - 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, 25, 11, 16, 15, 26, - 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, 13, 3, 25, 29, 15, - 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105, -108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121,112, -101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105,108,101, 0, 2, 0, - 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, 97, - 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, 0, - 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108,108, -111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 6,112, -111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, - 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, 8,110,101, -119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, - 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, - 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, - 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, 32,102,105,108,101, - 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9,111,112,101,110,102, -105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, 12,109,117,108, 67, -111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, 97,100, 0, 2, 0, - 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115,101,102,105,108,101, - 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 10, -102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11,118, 98,120, 67,111, -110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 2, - 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, 0, 0, 8,105,117, -112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103,105,110, 0, 2, 0, - 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, - 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, - 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, - 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, 97,108,105,103,110, -109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, - 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, - 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 8, 65, 67, 69, - 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, 0, 0, 0, 2, 53, - 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, 0, 0, 0, 8,105, -117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101, -110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 2, 0, 0, 0, - 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, - 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105,108,101, 0, 2, 0, - 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, 0, - 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, - 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 2, 0, - 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112,117,112, 40, 73, 85, - 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, - 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, 0, 8,100,108,103, - 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, - 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73,117,112, 76,117, 97, - 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, 0, 0, 0, 5,109, -101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, 0, 8,105,117,112, -102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, 97,102, 47, 80, 85, - 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, 47, 79,118,237,100, -105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105,117,112, 64,116,101, - 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 2, 0, 0, - 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, 0, 2, 0, 0, 0, - 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, 98,111,120, 0, 2, - 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, 7,109,105,110, 98, -111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 6, - 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 2, 0, 0, 0, - 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, 0, 0, 11, 73,117, -112, 68,101,115,116,114,111,121, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_be64.lo"); -} diff --git a/iup/srcconsole/loh/console3_le64.loh b/iup/srcconsole/loh/console3_le64.loh deleted file mode 100755 index 7d64917..0000000 --- a/iup/srcconsole/loh/console3_le64.loh +++ /dev/null @@ -1,251 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/console3_le64.lo"); -*/ -/* ../obj/iuplua3/console3_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111, -108,101, 51, 46,108,117, 97, 0, 0, 0, 2,166, 17, 0, 11, 1, 25, 0, 11, 3, - 25, 2, 11, 5, 25, 4, 4, 0, 25, 6, 15, 8, 22, 3, 11, 9, 15, 10, 11, 11, - 11, 12, 11, 13, 11, 14, 30, 2, 2, 1, 1, 25, 7, 15, 16, 22, 2, 11, 17, 11, - 18, 11, 11, 11, 19, 30, 1, 2, 1, 1, 25, 15, 15, 16, 22, 3, 11, 17, 11, 21, - 11, 11, 11, 19, 11, 9, 11, 22, 30, 2, 2, 1, 1, 25, 20, 15, 7, 11, 23, 11, - 24, 26, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 29, 11, 30, 11, 31, 30, 2, - 2, 1, 1, 25, 25, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 33, 11, 30, 11, - 34, 30, 2, 2, 1, 1, 25, 32, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 36, - 30, 1, 2, 1, 1, 25, 35, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 38, 30, - 1, 2, 1, 1, 25, 37, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 40, 30, 1, - 2, 1, 1, 25, 39, 15, 39, 11, 30, 11, 41, 26, 15, 42, 11, 43, 11, 44, 26, 15, - 35, 11, 43, 11, 45, 26, 15, 47, 22, 4, 15, 48, 22, 2, 15, 49, 22, 3, 15, 47, - 22, 7, 15, 35, 15, 39, 15, 42, 15, 32, 15, 25, 29, 0, 5, 11, 50, 11, 51, 11, - 52, 11, 53, 30, 1, 2, 1, 1, 15, 47, 22, 4, 15, 54, 15, 55, 15, 56, 29, 0, - 3, 11, 57, 11, 58, 30, 0, 2, 1, 1, 29, 0, 2, 11, 57, 11, 59, 30, 0, 2, - 1, 1, 29, 0, 1, 11, 60, 11, 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 57, 11, - 62, 11, 50, 11, 63, 11, 52, 11, 64, 30, 2, 2, 1, 1, 25, 46, 15, 66, 22, 2, - 15, 67, 22, 2, 15, 66, 22, 1, 15, 68, 22, 2, 11, 60, 11, 69, 11, 43, 11, 70, - 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 60, 11, 71, 30, 0, - 2, 1, 1, 15, 67, 22, 2, 15, 66, 22, 2, 15, 72, 18, 73, 22, 2, 11, 60, 11, - 74, 11, 43, 15, 4, 30, 1, 2, 1, 1, 15, 68, 22, 2, 11, 60, 11, 75, 11, 43, - 11, 76, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, 11, 60, 11, 77, - 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 65, 15, 79, 22, 4, 15, 46, 29, - 0, 1, 11, 60, 11, 80, 11, 81, 15, 65, 11, 82, 11, 70, 30, 2, 2, 1, 1, 25, - 78, 15, 79, 22, 5, 15, 47, 22, 8, 15, 16, 22, 1, 11, 60, 11, 80, 30, 0, 2, - 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1, 15, 84, 22, 1, 11, - 11, 11, 64, 30, 0, 2, 1, 1, 15, 48, 22, 1, 15, 47, 22, 3, 15, 16, 22, 1, - 11, 60, 11, 85, 30, 0, 2, 1, 1, 15, 16, 22, 1, 11, 60, 11, 86, 30, 0, 2, - 1, 1, 15, 16, 22, 1, 11, 60, 11, 87, 30, 0, 2, 1, 1, 29, 0, 3, 2, 1, - 1, 29, 0, 1, 2, 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1, - 15, 26, 22, 3, 11, 60, 11, 88, 11, 43, 11, 70, 11, 11, 11, 89, 30, 2, 2, 1, - 1, 29, 0, 6, 11, 50, 11, 90, 11, 57, 11, 62, 30, 1, 2, 1, 1, 29, 0, 1, - 11, 91, 15, 92, 11, 93, 15, 92, 11, 94, 15, 92, 11, 60, 11, 95, 30, 3, 2, 1, - 1, 25, 83, 15, 78, 20, 96, 2, 0, 1, 15, 97, 2, 0, 0, 15, 98, 15, 78, 2, - 0, 1, 15, 98, 15, 83, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 99, 2, 0, - 0, 0, 10,112,114,105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 3, 0, 0, - 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, - 6, 0, 15, 2, 4, 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, - 15, 5, 13, 0, 2, 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, - 1, 15, 2, 13, 0, 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, - 3, 11, 7, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2, -110, 0, 2, 0, 0, 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97, -114, 0, 2, 0, 0, 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45, -112,114,105,110,116,118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, - 0, 0, 9,116,111,115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, - 0, 0, 0, 18, 45, 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, - 45, 0, 2, 0, 0, 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, - 0, 0, 13, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, - 0, 0, 0, 0, 71, 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, - 2, 0, 1, 50, 36, 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, - 2, 2, 1, 1, 42, 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, - 1, 13, 1, 4, 0, 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, - 0, 0, 2,118, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6, -112,114,105,110,116, 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, - 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115, -116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45, -112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, - 0, 19,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, - 0, 4, 0, 0, 0, 23, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46, -108,117, 97, 0, 0, 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, - 4, 42, 2, 0, 1, 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, - 18, 6, 42, 2, 0, 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, - 18, 1, 11, 2, 42, 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, - 2, 42, 15, 3, 18, 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, - 9, 2, 0, 1, 15, 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, - 1, 15, 0, 11, 13, 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, - 18, 11, 11, 16, 2, 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, - 15, 0, 11, 18, 15, 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, - 20, 15, 3, 18, 11, 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, - 15, 0, 11, 23, 15, 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, - 11, 25, 15, 3, 18, 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, - 15, 3, 18, 26, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, - 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, - 78, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 15, 95, 76, 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, - 0, 0, 3,105,109, 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 32, 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115, -116,101,109, 58, 32, 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, - 0, 2, 0, 0, 0, 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, - 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, - 0, 14, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, - 4,109,111,116, 0, 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, - 79, 78, 0, 2, 0, 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115, -105,111,110, 58, 32, 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, - 83,105,122,101, 58, 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, - 90, 69, 0, 2, 0, 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112, -116,104, 58, 32, 0, 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, - 72, 0, 2, 0, 0, 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, - 0, 18, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, - 2, 0, 0, 0, 12, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, - 0, 20, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, - 32, 0, 2, 0, 0, 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, - 0, 0, 19, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, - 32, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, - 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117, -112,109,117,108,116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97, -110,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, - 5,115,105,122,101, 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, - 0, 0, 0, 5,102,111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, - 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115, -108, 97, 98,101,108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, - 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, - 2, 0, 0, 0, 4, 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, - 98,101,108, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, - 0, 0, 0, 49, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, - 97, 0, 0, 0, 0, 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 4,108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, - 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120, -101, 99,117,116,101, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, - 0, 2, 0, 0, 0, 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, - 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110, -103, 40,109,117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, - 0, 2, 0, 0, 0, 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110, -100,115, 0, 2, 0, 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109, -117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, - 39, 32, 32,102,105,108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, - 32, 39, 39, 32, 32,108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, - 2, 0, 0, 0, 12, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, - 0, 8, 76,111, 97,100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97, -118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65, -115, 46, 46, 46, 0, 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108, -101, 0, 2, 0, 0, 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 59, 0, 0, 0, - 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, - 1, 15, 0, 4, 0, 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, - 0, 11, 5, 2, 1, 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, - 7, 18, 8, 2, 0, 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, - 12, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, - 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, - 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 8,110,111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101, -110,102,105,108,101, 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119, -114,105,116,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100, -115, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108, -111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, - 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, - 32, 0, 2, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, - 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, - 97, 99,116,105,111,110, 0, 4, 0, 0, 0, 73, 0, 0, 0, 14, 64, 99,111,110, -115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, - 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, - 30, 4, 2, 1, 1, 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, - 13, 1, 18, 16, 25, 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, - 13, 2, 11, 19, 31, 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, - 42, 2, 0, 1, 15, 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, - 15, 25, 13, 3, 15, 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, - 15, 20, 11, 28, 2, 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, - 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102, -105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121, -112,101, 0, 2, 0, 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, - 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, - 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108, -108,111,119,110,101,119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, - 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, - 69, 70, 84, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, - 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, - 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, - 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110, -111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110, -111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, - 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, - 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 10, 99,108,111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110, -110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 94, 0, - 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, -153, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, - 8, 11, 9, 11, 10, 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, - 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, - 11, 18, 32, 46, 5, 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, - 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, - 13, 4, 4, 0, 32, 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, - 25, 11, 16, 15, 26, 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, - 13, 3, 25, 29, 15, 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 31, 2, 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11, -105,117,112,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108, -111,103,116,121,112,101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, - 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105, -108,101, 0, 2, 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, - 42, 46,108,117, 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102, -111, 0, 2, 0, 0, 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, - 0, 9, 97,108,108,111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, - 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, - 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, - 0, 0, 8,110,101,119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117, -101, 0, 2, 0, 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, - 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114, -114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, - 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9, -111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, - 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, - 97,100, 0, 2, 0, 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115, -101,102,105,108,101, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, - 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, -118, 98,120, 67,111,110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, - 98,111,120, 0, 2, 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, - 0, 0, 8,105,117,112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103, -105,110, 0, 2, 0, 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, - 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, - 98,101,108, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, - 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, - 97,108,105,103,110,109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, - 0, 0, 0, 2, 53, 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, - 0, 0, 0, 8,105,117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112, -115,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, - 0, 2, 0, 0, 0, 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117, -114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105, -108,101, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101, -109, 0, 2, 0, 0, 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, - 32, 73,110,102,111, 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, - 46, 46, 0, 2, 0, 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112, -117,112, 40, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, - 69, 78, 84, 69, 82, 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, - 0, 8,100,108,103, 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, - 97,108,111,103, 0, 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73, -117,112, 76,117, 97, 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, - 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, - 99, 98, 0, 2, 0, 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, - 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, - 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, - 47, 79,118,237,100,105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105, -117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98, -114, 0, 2, 0, 0, 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, - 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, - 98,111,120, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, - 7,109,105,110, 98,111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, - 2, 0, 0, 0, 6, 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, - 0, 2, 0, 0, 0, 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, - 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_le64.lo"); -} diff --git a/iup/srcconsole/loh/console3_le64w.loh b/iup/srcconsole/loh/console3_le64w.loh deleted file mode 100755 index 57e9b6d..0000000 --- a/iup/srcconsole/loh/console3_le64w.loh +++ /dev/null @@ -1,251 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/console3_le64w.lo"); -*/ -/* ../obj/iuplua3/console3_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,110,115,111, -108,101, 51, 46,108,117, 97, 0, 0, 0, 2,166, 17, 0, 11, 1, 25, 0, 11, 3, - 25, 2, 11, 5, 25, 4, 4, 0, 25, 6, 15, 8, 22, 3, 11, 9, 15, 10, 11, 11, - 11, 12, 11, 13, 11, 14, 30, 2, 2, 1, 1, 25, 7, 15, 16, 22, 2, 11, 17, 11, - 18, 11, 11, 11, 19, 30, 1, 2, 1, 1, 25, 15, 15, 16, 22, 3, 11, 17, 11, 21, - 11, 11, 11, 19, 11, 9, 11, 22, 30, 2, 2, 1, 1, 25, 20, 15, 7, 11, 23, 11, - 24, 26, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 29, 11, 30, 11, 31, 30, 2, - 2, 1, 1, 25, 25, 15, 26, 22, 3, 11, 11, 11, 27, 11, 28, 11, 33, 11, 30, 11, - 34, 30, 2, 2, 1, 1, 25, 32, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 36, - 30, 1, 2, 1, 1, 25, 35, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 38, 30, - 1, 2, 1, 1, 25, 37, 15, 26, 22, 2, 11, 11, 11, 27, 11, 28, 11, 40, 30, 1, - 2, 1, 1, 25, 39, 15, 39, 11, 30, 11, 41, 26, 15, 42, 11, 43, 11, 44, 26, 15, - 35, 11, 43, 11, 45, 26, 15, 47, 22, 4, 15, 48, 22, 2, 15, 49, 22, 3, 15, 47, - 22, 7, 15, 35, 15, 39, 15, 42, 15, 32, 15, 25, 29, 0, 5, 11, 50, 11, 51, 11, - 52, 11, 53, 30, 1, 2, 1, 1, 15, 47, 22, 4, 15, 54, 15, 55, 15, 56, 29, 0, - 3, 11, 57, 11, 58, 30, 0, 2, 1, 1, 29, 0, 2, 11, 57, 11, 59, 30, 0, 2, - 1, 1, 29, 0, 1, 11, 60, 11, 61, 30, 0, 2, 1, 1, 29, 0, 1, 11, 57, 11, - 62, 11, 50, 11, 63, 11, 52, 11, 64, 30, 2, 2, 1, 1, 25, 46, 15, 66, 22, 2, - 15, 67, 22, 2, 15, 66, 22, 1, 15, 68, 22, 2, 11, 60, 11, 69, 11, 43, 11, 70, - 30, 1, 2, 1, 1, 29, 0, 1, 2, 1, 1, 29, 0, 1, 11, 60, 11, 71, 30, 0, - 2, 1, 1, 15, 67, 22, 2, 15, 66, 22, 2, 15, 72, 18, 73, 22, 2, 11, 60, 11, - 74, 11, 43, 15, 4, 30, 1, 2, 1, 1, 15, 68, 22, 2, 11, 60, 11, 75, 11, 43, - 11, 76, 30, 1, 2, 1, 1, 29, 0, 2, 2, 1, 1, 29, 0, 1, 11, 60, 11, 77, - 30, 0, 2, 1, 1, 29, 0, 2, 2, 1, 1, 25, 65, 15, 79, 22, 4, 15, 46, 29, - 0, 1, 11, 60, 11, 80, 11, 81, 15, 65, 11, 82, 11, 70, 30, 2, 2, 1, 1, 25, - 78, 15, 79, 22, 5, 15, 47, 22, 8, 15, 16, 22, 1, 11, 60, 11, 80, 30, 0, 2, - 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1, 15, 84, 22, 1, 11, - 11, 11, 64, 30, 0, 2, 1, 1, 15, 48, 22, 1, 15, 47, 22, 3, 15, 16, 22, 1, - 11, 60, 11, 85, 30, 0, 2, 1, 1, 15, 16, 22, 1, 11, 60, 11, 86, 30, 0, 2, - 1, 1, 15, 16, 22, 1, 11, 60, 11, 87, 30, 0, 2, 1, 1, 29, 0, 3, 2, 1, - 1, 29, 0, 1, 2, 1, 1, 15, 84, 22, 1, 11, 11, 11, 64, 30, 0, 2, 1, 1, - 15, 26, 22, 3, 11, 60, 11, 88, 11, 43, 11, 70, 11, 11, 11, 89, 30, 2, 2, 1, - 1, 29, 0, 6, 11, 50, 11, 90, 11, 57, 11, 62, 30, 1, 2, 1, 1, 29, 0, 1, - 11, 91, 15, 92, 11, 93, 15, 92, 11, 94, 15, 92, 11, 60, 11, 95, 30, 3, 2, 1, - 1, 25, 83, 15, 78, 20, 96, 2, 0, 1, 15, 97, 2, 0, 0, 15, 98, 15, 78, 2, - 0, 1, 15, 98, 15, 83, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 99, 2, 0, - 0, 0, 10,112,114,105,110,116,118, 97,114,115, 0, 4, 0, 0, 0, 3, 0, 0, - 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, - 6, 0, 15, 2, 4, 0, 2, 2, 1, 15, 3, 11, 4, 2, 0, 1, 50, 34, 15, 3, - 15, 5, 13, 0, 2, 1, 1, 11, 6, 42, 15, 5, 13, 1, 2, 1, 1, 42, 2, 0, - 1, 15, 2, 13, 0, 2, 2, 1, 23, 1, 23, 0, 13, 0, 4, 0, 31, 54, 41, 15, - 3, 11, 7, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 2, -110, 0, 2, 0, 0, 0, 2,118, 0, 2, 0, 0, 0, 8,110,101,120,116,118, 97, -114, 0, 2, 0, 0, 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 20, 45, 45, -112,114,105,110,116,118, 97,114,115, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, - 0, 0, 9,116,111,115,116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, - 0, 0, 0, 18, 45, 45,112,114,105,110,116,118, 97,114,115, 32, 69,110,100, 45, - 45, 0, 2, 0, 0, 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, - 0, 0, 13, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, - 0, 0, 0, 0, 71, 7, 1, 15, 3, 13, 0, 4, 0, 2, 2, 2, 15, 4, 11, 5, - 2, 0, 1, 50, 36, 15, 4, 15, 6, 13, 1, 2, 1, 1, 11, 7, 42, 15, 6, 13, - 2, 2, 1, 1, 42, 2, 0, 1, 15, 3, 13, 0, 13, 1, 2, 2, 2, 23, 2, 23, - 1, 13, 1, 4, 0, 31, 54, 43, 15, 4, 11, 8, 2, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, - 0, 0, 2,118, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6, -112,114,105,110,116, 0, 2, 0, 0, 0, 21, 45, 45,112,114,105,110,116,116, 97, - 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 2, 0, 0, 0, 9,116,111,115, -116,114,105,110,103, 0, 2, 0, 0, 0, 2, 61, 0, 2, 0, 0, 0, 19, 45, 45, -112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, 2, 0, 0, - 0, 19,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, - 0, 4, 0, 0, 0, 23, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46, -108,117, 97, 0, 0, 0, 0,241, 5, 0, 15, 0, 15, 1, 11, 2, 42, 15, 3, 18, - 4, 42, 2, 0, 1, 15, 5, 52, 17, 15, 0, 15, 5, 18, 1, 11, 2, 42, 15, 5, - 18, 6, 42, 2, 0, 1, 15, 7, 48, 4, 15, 7, 18, 1, 52, 17, 15, 0, 15, 7, - 18, 1, 11, 2, 42, 15, 7, 18, 6, 42, 2, 0, 1, 15, 0, 15, 3, 18, 1, 11, - 2, 42, 15, 3, 18, 6, 42, 2, 0, 1, 15, 0, 11, 8, 2, 0, 1, 15, 0, 11, - 9, 2, 0, 1, 15, 0, 11, 10, 15, 3, 18, 11, 11, 12, 2, 1, 1, 42, 2, 0, - 1, 15, 0, 11, 13, 15, 3, 18, 11, 11, 14, 2, 1, 1, 42, 2, 0, 1, 15, 3, - 18, 11, 11, 16, 2, 1, 1, 13, 0, 52, 9, 15, 0, 11, 17, 13, 0, 2, 0, 2, - 15, 0, 11, 18, 15, 3, 18, 11, 11, 19, 2, 1, 1, 42, 2, 0, 1, 15, 0, 11, - 20, 15, 3, 18, 11, 11, 21, 2, 1, 1, 42, 2, 0, 1, 15, 3, 18, 22, 52, 12, - 15, 0, 11, 23, 15, 3, 18, 22, 42, 2, 0, 1, 15, 3, 18, 24, 52, 12, 15, 0, - 11, 25, 15, 3, 18, 24, 42, 2, 0, 1, 15, 3, 18, 26, 52, 12, 15, 0, 11, 27, - 15, 3, 18, 26, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, - 0, 6,112,114,105,110,116, 0, 2, 0, 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, - 78, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 15, 95, 76, 85, 65, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 2, 0, - 0, 0, 3,105,109, 0, 2, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 3, 99,100, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 32, 73,110,102,111, 0, 2, 0, 0, 0, 11, 32, 32, 83,121,115, -116,101,109, 58, 32, 0, 2, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, 97,108, - 0, 2, 0, 0, 0, 7, 83, 89, 83, 84, 69, 77, 0, 2, 0, 0, 0, 19, 32, 32, - 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 2, 0, 0, - 0, 14, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, 0, 0, - 4,109,111,116, 0, 2, 0, 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, - 79, 78, 0, 2, 0, 0, 0, 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115, -105,111,110, 58, 32, 0, 2, 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, - 83,105,122,101, 58, 32, 0, 2, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, - 90, 69, 0, 2, 0, 0, 0, 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112, -116,104, 58, 32, 0, 2, 0, 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, - 72, 0, 2, 0, 0, 0, 10, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 2, 0, 0, - 0, 18, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, - 2, 0, 0, 0, 12, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 2, 0, 0, - 0, 20, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, - 32, 0, 2, 0, 0, 0, 11, 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 2, 0, - 0, 0, 19, 32, 32, 79,112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, - 32, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, - 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 13,105,117, -112,109,117,108,116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97, -110,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, - 5,115,105,122,101, 0, 2, 0, 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 2, - 0, 0, 0, 5,102,111,110,116, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, - 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 9,112,111,115, -108, 97, 98,101,108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, - 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 4, 48, 58, 48, 0, - 2, 0, 0, 0, 4, 53, 48,120, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, - 98,101,108, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, - 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 8, 99, 97,114,101,116, 99, 98, 0, 4, - 0, 0, 0, 49, 0, 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, - 97, 0, 0, 0, 0, 16, 7, 3, 15, 3, 11, 4, 13, 1, 11, 5, 42, 13, 2, 42, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 4,108,105,110, 0, 2, 0, 0, 0, 4, 99,111,108, 0, 2, 0, - 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 11, 98,117,116, 69,120, -101, 99,117,116,101, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, - 0, 2, 0, 0, 0, 6, 53, 48,120, 49, 53, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 8, 69,120,101, 99,117,116,101, 0, 2, 0, 0, 0, - 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 28,100,111,115,116,114,105,110, -103, 40,109,117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 41, - 0, 2, 0, 0, 0, 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97,110, -100,115, 0, 2, 0, 0, 0, 6, 67,108,101, 97,114, 0, 2, 0, 0, 0, 61,109, -117,108, 67,111,109,109, 97,110,100,115, 46,118, 97,108,117,101, 32, 61, 32, 39, - 39, 32, 32,102,105,108,101,108, 97, 98,101,108, 46,116,105,116,108,101, 32, 61, - 32, 39, 39, 32, 32,108, 97,115,116,102,105,108,101, 32, 61, 32,110,105,108, 0, - 2, 0, 0, 0, 12, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 2, 0, 0, - 0, 8, 76,111, 97,100, 46, 46, 46, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97, -118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 11, 83, 97,118,101, 32, 65, -115, 46, 46, 46, 0, 2, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108, -101, 0, 2, 0, 0, 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 59, 0, 0, 0, - 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, 67, 4, - 1, 15, 0, 4, 0, 32, 52, 9, 15, 1, 20, 2, 2, 0, 1, 50, 48, 15, 4, 15, - 0, 11, 5, 2, 1, 2, 25, 3, 15, 3, 4, 0, 31, 52, 20, 15, 6, 15, 3, 15, - 7, 18, 8, 2, 0, 2, 15, 9, 15, 3, 2, 0, 1, 50, 10, 15, 10, 11, 11, 15, - 12, 42, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 9,108, - 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, - 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 8,110,111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101, -110,102,105,108,101, 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119, -114,105,116,101, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100, -115, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 10, 99,108, -111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, - 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, - 32, 0, 2, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, 0, 2, 0, 0, 0, - 14, 98,117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 2, 0, 0, 0, 7, - 97, 99,116,105,111,110, 0, 4, 0, 0, 0, 73, 0, 0, 0, 14, 64, 99,111,110, -115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0,136, 13, 1, 15, 1, 22, 5, - 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 15, 11, - 30, 4, 2, 1, 1, 15, 12, 13, 1, 15, 13, 15, 13, 2, 0, 3, 13, 1, 18, 14, - 13, 1, 18, 16, 25, 15, 15, 17, 11, 4, 15, 15, 26, 15, 18, 13, 1, 2, 0, 1, - 13, 2, 11, 19, 31, 52, 62, 15, 15, 4, 0, 32, 52, 10, 15, 20, 11, 21, 15, 15, - 42, 2, 0, 1, 15, 23, 15, 15, 11, 24, 2, 1, 2, 13, 3, 4, 0, 31, 52, 20, - 15, 25, 13, 3, 15, 26, 18, 16, 2, 0, 2, 15, 27, 13, 3, 2, 0, 1, 50, 7, - 15, 20, 11, 28, 2, 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 29, 2, 0, - 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102, -105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108,111,103,116,121, -112,101, 0, 2, 0, 0, 0, 5, 83, 65, 86, 69, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 10, 83, 97,118,101, 32, 70,105,108,101, 0, 2, - 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, 42, 46,108,117, - 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32,102,105,108,101,115, 0, 2, 0, 0, 0, 9, 97,108, -108,111,119,110,101,119, 0, 2, 0, 0, 0, 4,121,101,115, 0, 2, 0, 0, 0, - 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 76, - 69, 70, 84, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, 0, 0, - 9,108, 97,115,116,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, - 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, - 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 3, 45, 49, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110, -111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 8,110, -111,118,111, 97,114,113, 0, 2, 0, 0, 0, 9,111,112,101,110,102,105,108,101, - 0, 2, 0, 0, 0, 3,119, 43, 0, 2, 0, 0, 0, 6,119,114,105,116,101, 0, - 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 10, 99,108,111,115,101,102,105,108,101, 0, 2, 0, 0, 0, 17, 67, 97,110, -110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 0, 4, 0, 0, 0, 94, 0, - 0, 0, 14, 64, 99,111,110,115,111,108,101, 51, 46,108,117, 97, 0, 0, 0, 0, -153, 13, 1, 15, 1, 22, 5, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, - 8, 11, 9, 11, 10, 11, 11, 30, 4, 2, 1, 1, 13, 1, 20, 12, 15, 13, 15, 13, - 2, 0, 3, 13, 1, 18, 14, 13, 1, 18, 16, 15, 17, 13, 1, 2, 0, 1, 13, 2, - 11, 18, 32, 46, 5, 13, 2, 11, 19, 32, 52, 19, 13, 2, 11, 19, 32, 52, 10, 15, - 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 62, 15, 23, 13, 3, 11, 24, 2, 1, 2, - 13, 4, 4, 0, 32, 52, 12, 15, 20, 11, 21, 13, 3, 42, 2, 0, 1, 50, 32, 15, - 25, 11, 16, 15, 26, 13, 4, 11, 27, 2, 1, 2, 26, 15, 28, 13, 4, 2, 0, 1, - 13, 3, 25, 29, 15, 30, 11, 4, 15, 29, 26, 5, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 31, 2, 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11, -105,117,112,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 11,100,105, 97,108, -111,103,116,121,112,101, 0, 2, 0, 0, 0, 5, 79, 80, 69, 78, 0, 2, 0, 0, - 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 10, 76,111, 97,100, 32, 70,105, -108,101, 0, 2, 0, 0, 0, 7,102,105,108,116,101,114, 0, 2, 0, 0, 0, 6, - 42, 46,108,117, 97, 0, 2, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102, -111, 0, 2, 0, 0, 0, 10, 76,117, 97, 32, 70,105,108,101,115, 0, 2, 0, 0, - 0, 9, 97,108,108,111,119,110,101,119, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, - 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, - 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 2, 0, - 0, 0, 8,110,101,119,102,105,108,101, 0, 2, 0, 0, 0, 6,118, 97,108,117, -101, 0, 2, 0, 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, - 0, 0, 3, 45, 49, 0, 2, 0, 0, 0, 2, 49, 0, 2, 0, 0, 0, 6,101,114, -114,111,114, 0, 2, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108,111, 97,100, - 32,102,105,108,101, 32, 0, 2, 0, 0, 0, 3,102,112, 0, 2, 0, 0, 0, 9, -111,112,101,110,102,105,108,101, 0, 2, 0, 0, 0, 2,114, 0, 2, 0, 0, 0, - 12,109,117,108, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, 0, 5,114,101, - 97,100, 0, 2, 0, 0, 0, 3, 42, 97, 0, 2, 0, 0, 0, 10, 99,108,111,115, -101,102,105,108,101, 0, 2, 0, 0, 0, 9,108, 97,115,116,102,105,108,101, 0, - 2, 0, 0, 0, 10,102,105,108,101,108, 97, 98,101,108, 0, 2, 0, 0, 0, 11, -118, 98,120, 67,111,110,115,111,108,101, 0, 2, 0, 0, 0, 8,105,117,112,118, - 98,111,120, 0, 2, 0, 0, 0, 9,105,117,112,102,114, 97,109,101, 0, 2, 0, - 0, 0, 8,105,117,112,104, 98,111,120, 0, 2, 0, 0, 0, 7,109, 97,114,103, -105,110, 0, 2, 0, 0, 0, 4, 48,120, 48, 0, 2, 0, 0, 0, 4,103, 97,112, - 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 10,102,105,108,101,108, 97, - 98,101,108, 0, 2, 0, 0, 0, 12,109,117,108, 67,111,109,109, 97,110,100,115, - 0, 2, 0, 0, 0, 9,112,111,115,108, 97, 98,101,108, 0, 2, 0, 0, 0, 10, - 97,108,105,103,110,109,101,110,116, 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 2, 0, 0, - 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 4, 53,120, 53, 0, 2, - 0, 0, 0, 2, 53, 0, 2, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, 2, - 0, 0, 0, 8,105,117,112,109,101,110,117, 0, 2, 0, 0, 0, 11,105,117,112, -115,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, - 0, 2, 0, 0, 0, 5, 69,120,105,116, 0, 2, 0, 0, 0, 17,114,101,116,117, -114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 5, 70,105, -108,101, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,105,116,101, -109, 0, 2, 0, 0, 0, 22, 80,114,105,110,116, 32, 86,101,114,115,105,111,110, - 32, 73,110,102,111, 46, 46, 46, 0, 2, 0, 0, 0, 9, 65, 98,111,117,116, 46, - 46, 46, 0, 2, 0, 0, 0, 39,100,108,103, 65, 98,111,117,116, 58,112,111,112, -117,112, 40, 73, 85, 80, 95, 67, 69, 78, 84, 69, 82, 44, 32, 73, 85, 80, 95, 67, - 69, 78, 84, 69, 82, 41, 0, 2, 0, 0, 0, 5, 72,101,108,112, 0, 2, 0, 0, - 0, 8,100,108,103, 77, 97,105,110, 0, 2, 0, 0, 0, 10,105,117,112,100,105, - 97,108,111,103, 0, 2, 0, 0, 0, 29, 67,111,109,112,108,101,116,101, 32, 73, -117,112, 76,117, 97, 51, 32, 73,110,116,101,114,112,114,101,116,101,114, 0, 2, - 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, - 99, 98, 0, 2, 0, 0, 0, 9,100,108,103, 65, 98,111,117,116, 0, 2, 0, 0, - 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, 0, 16, 84,101, 99,103,114, - 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 2, 0, 0, 0, 18, 77, 97,114,107, - 47, 79,118,237,100,105,111, 47, 83, 99,117,114,105, 0, 2, 0, 0, 0, 23,105, -117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98, -114, 0, 2, 0, 0, 0, 3, 79, 75, 0, 2, 0, 0, 0, 6, 53, 48, 88, 50, 48, - 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, 0, 0, 7,109, 97,120, - 98,111,120, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, 2, 0, 0, 0, - 7,109,105,110, 98,111,120, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, - 2, 0, 0, 0, 6, 65, 98,111,117,116, 0, 2, 0, 0, 0, 5,115,104,111,119, - 0, 2, 0, 0, 0, 12, 73,117,112, 77, 97,105,110, 76,111,111,112, 0, 2, 0, - 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/console3_le64w.lo"); -} diff --git a/iup/srcconsole/loh/console5.loh b/iup/srcconsole/loh/console5.loh deleted file mode 100755 index 9bec168..0000000 --- a/iup/srcconsole/loh/console5.loh +++ /dev/null @@ -1,475 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - if (luaL_loadfile(L,"../obj/iuplua51/console5.lo")==0) lua_call(L, 0, 0); -*/ -/* ../obj/iuplua51/console5.lo */ -static const unsigned char B1[]={ - 27, 76,117, 97, 81, 0, 1, 4, 4, 4, 8, 0, 14, 0, 0, 0, 64, 99,111,110, -115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64, 0, 1, 5,128, - 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192, 64, 0,100, 0, - 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64, 0, 0, 9, 64, -128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192, 66,133,137, 64, - 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192, 68,137,137, 0, - 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0, 69,134,137,192, - 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192, 64, 0, 6, 0, - 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, 71,137,137,128, -199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, 72,137,137, 64, -200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192, 72,137, 92,128, - 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128, -198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128, 0, 1, 9, 64, - 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, - 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64, 0,147, 5,128, - 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64,128,142, 5,128, - 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64,128,142, 5,128, - 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128, 0, 0, 6,192, - 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128, 0, 0,198,192, -202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65, 0, 1,197,129, - 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194,192, 4, 70,130, -200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130, 0, 0,198,194, -192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195, 71, 6, 69,131, - 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2,204,151, 34, 66, -128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66,128, 1,133,130, - 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194,192, 5,198, 2, -194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130,204,152, 98, 66, -128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129, 0, 1, 9, 1, - 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128,205,150,137,192, -205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128, 0, 0,198,128, -206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1, 0, 0,197,129, - 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66,207,142,220, 1, - 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65,128, 0,220,128, - 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129, 0, 0,134, 65, - 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130, 0, 0, 73,194, - 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130,130,142, 28,130, - 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2, 80,137,137, 66, -208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129, 80,137, 98, 65, -128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64, 0,156, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64,129, 0,197,128, - 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129, 0, 0, 6,193, - 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129, 0, 0, 6,193, - 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64,128, 0, 92,128, - 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192, 80, 0,100,192, - 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0, -209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129, 0, 3, 69,129, - 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129, 0, 1,133,129, - 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129, 0, 1,197,129, - 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129, 0, 1, 5,130, - 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130, 74, 5,202, 2, -128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3, 83,137, 28,131, - 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67, 83,137, 92, 3, - 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130, 0, 1, 69,130, - 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130, 0, 1,133,130, - 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66,207,142,201,194, - 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65, 0, 3,220,128, - 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64, 85,137,162, 64, -128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 85, 0, 69,128, - 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128, 0, 0, 6, 0, - 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192, 80, 0, 11, 64, - 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128, 82, 0, 11, 64, - 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8, 0, 0, 0,114, -101,113,117,105,114,101, 0, 4, 7, 0, 0, 0,105,117,112,108,117, 97, 0, 4, - 4, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101, - 0, 4, 11, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 19, 0, - 0, 0,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, - 0, 4, 13, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0, - 4, 7, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0,109,117,108, -116,105,108,105,110,101, 0, 4, 7, 0, 0, 0,101,120,112, 97,110,100, 0, 4, - 4, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0, 0,115,105,122,101, 0, 4, 8, - 0, 0, 0, 50, 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0,102,111,110,116, - 0, 4, 18, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 4, 12, 0, 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, - 0, 4, 6, 0, 0, 0,108, 97, 98,101,108, 0, 4, 6, 0, 0, 0,116,105,116, -108,101, 0, 4, 4, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 53, 48,120, - 0, 4, 12, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 1, - 0, 0, 0, 0, 4, 11, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, - 4, 9, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 98, -117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 98,117,116,116,111, -110, 0, 4, 6, 0, 0, 0, 53, 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 69,120, -101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39, - 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40,105,117,112, 46, - 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101, - 41, 0, 4, 17, 0, 0, 0, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97, -110,100,115, 0, 4, 6, 0, 0, 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, -105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, - 97,108,117,101, 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, - 46,108, 98,108, 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, - 32, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115, -116,102,105,108,101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, - 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 76,111, - 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 98,117,116, 83, 97,118,101, 97,115, - 70,105,108,101, 0, 4, 11, 0, 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, - 0, 4, 12, 0, 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, - 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 76,111, 97,100, 70,105,108, -101, 0, 4, 11, 0, 0, 0,118, 98,120, 67,111,110,115,111,108,101, 0, 4, 5, - 0, 0, 0,118, 98,111,120, 0, 4, 6, 0, 0, 0,102,114, 97,109,101, 0, 4, - 5, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0,109, 97,114,103,105,110, - 0, 4, 4, 0, 0, 0, 48,120, 48, 0, 4, 4, 0, 0, 0,103, 97,112, 0, 4, - 3, 0, 0, 0, 49, 48, 0, 4, 10, 0, 0, 0, 97,108,105,103,110,109,101,110, -116, 0, 4, 7, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5, 0, 0, 0, 65, - 84, 79, 80, 0, 4, 9, 0, 0, 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, - 0, 0, 0, 65, 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 53,120, 53, 0, - 4, 2, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0,109,110,117, 77, 97,105,110, 0, - 4, 5, 0, 0, 0,109,101,110,117, 0, 4, 8, 0, 0, 0,115,117, 98,109,101, -110,117, 0, 4, 5, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 69,120, -105,116, 0, 4, 17, 0, 0, 0,114,101,116,117,114,110, 32,105,117,112, 46, 67, - 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, - 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, - 46, 0, 4, 9, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0, - 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, 65, 98,111,117, -116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, 69, 82, 44, 32, -105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0, 0, 72,101,108, -112, 0, 4, 8, 0, 0, 0,100,108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, -100,105, 97,108,111,103, 0, 4, 15, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67, -111,110,115,111,108,101, 0, 4, 9, 0, 0, 0,100,114, 97,103,100,114,111,112, - 0, 4, 13, 0, 0, 0,100,101,102, 97,117,108,116,101,110,116,101,114, 0, 4, - 9, 0, 0, 0, 99,108,111,115,101, 95, 99, 98, 0, 4, 13, 0, 0, 0,100,114, -111,112,102,105,108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0,100,108,103, 65, - 98,111,117,116, 0, 4, 5, 0, 0, 0,102,105,108,108, 0, 4, 16, 0, 0, 0, - 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 4, 23, 0, 0, - 0,105,117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, - 46, 98,114, 0, 4, 3, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 53, 48, 88, - 50, 48, 0, 4, 6, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7, 0, 0, 0,109, - 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0,109, -105,110, 98,111,120, 0, 4, 7, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6, - 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0,115,104,111,119, 0, 4, - 9, 0, 0, 0, 83,101,116, 70,111, 99,117,115, 0, 4, 9, 0, 0, 0, 77, 97, -105,110, 76,111,111,112, 0, 4, 8, 0, 0, 0,100,101,115,116,114,111,121, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 1, 0, 8, - 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1, 92,192,128, 1, -197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 90, 0, 0, 0, 22, 0, 4,128, -197, 64, 0, 0, 5,193, 0, 0, 64, 1,128, 0, 28,129, 0, 1, 65, 1, 1, 0, -133,193, 0, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2,220, 64, 0, 1, -197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1,128, 0, 0, 2, - 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1, 65, 1, 0,220, 64, 0, 1, - 30, 0,128, 0, 6, 0, 0, 0, 4, 5, 0, 0, 0,110,101,120,116, 0, 4, 6, - 0, 0, 0,112,114,105,110,116, 0, 4, 21, 0, 0, 0, 45, 45,112,114,105,110, -116,116, 97, 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 9, 0, 0, 0, -116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 61, 0, 4, 19, 0, 0, - 0, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, - 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, - 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, - 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, - 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, - 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0,116, 0, 0, 0, - 0, 0, 29, 0, 0, 0, 2, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, - 2, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, 0, 0, 0, 5, 0, - 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,128, 0, 0,133, 0, - 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, 65, 65, 2, 85, 0, -129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, - 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, 0, 1, 0, 5,129, - 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65, 0, - 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, 65, 2, 0, 6, 65, - 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,128, 2, 0, 28, 64, - 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65, 0, - 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,128, 0, 1, 85,128, -128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, 64, 2, 0,134, 64, - 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, - 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, 0, 0, 0, 22,192, - 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, 64,128, 1, 69, 64, - 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, 1, 5, 0,220,128, - 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, 64, 5, 0,197, 64, - 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, - 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, 64, 1,128, 69, 64, - 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,192, 0, 1, 92, 64, - 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, 64, 1,128, 69, 64, - 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,192, 0, 1, 92, 64, - 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, 64, 1,128, 69, 64, - 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,192, 0, 1, 92, 64, - 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0,105,109, 0, 4, 6, - 0, 0, 0,112,114,105,110,116, 0, 4, 4, 0, 0, 0, 73, 77, 32, 0, 4, 9, - 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 32, 32, 0, - 4, 11, 0, 0, 0, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 4, 3, 0, 0, - 0, 99,100, 0, 4, 4, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 73, 85, - 80, 32, 0, 4, 4, 0, 0, 0,105,117,112, 0, 4, 1, 0, 0, 0, 0, 4, 9, - 0, 0, 0, 73, 85, 80, 32, 73,110,102,111, 0, 4, 11, 0, 0, 0, 32, 32, 83, -121,115,116,101,109, 58, 32, 0, 4, 10, 0, 0, 0, 71,101,116, 71,108,111, 98, - 97,108, 0, 4, 7, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, 4, 19, 0, 0, 0, - 32, 32, 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4, - 14, 0, 0, 0, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, - 0, 0, 0, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, - 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4, - 16, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, 32, 0, - 4, 11, 0, 0, 0, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 4, 17, 0, 0, - 0, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, - 0, 0, 0, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, - 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 32, 32, 79,112,101, -110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, 0, 0, 0, 71, 76, - 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 20, 0, 0, 0, 32, 32, 79,112,101, -110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, - 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 32, 32, 79,112, -101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,112, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, - 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, - 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22, - 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, - 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23, - 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25, - 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, - 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29, - 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, - 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, - 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 32, - 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, - 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, - 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, - 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, - 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, - 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,109, -111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, - 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, 9, 0, 0, 0,197, 0, 0, 0,198, - 64,192, 1,198,128,192, 1, 0, 1,128, 0, 65, 1, 1, 0,128, 1, 0, 1, 21, -129, 1, 2,201, 0,129,129, 30, 0,128, 0, 5, 0, 0, 0, 4, 4, 0, 0, 0, -105,117,112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, - 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0,116, -105,116,108,101, 0, 4, 2, 0, 0, 0, 58, 0, 0, 0, 0, 0, 9, 0, 0, 0, - 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, - 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 3, 0, 0, 0, - 5, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, - 0,108,105,110, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 99,111,108, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, - 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, - 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, 0, 0, 70, 64,192, - 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, 6,128, 69,192, 1, - 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, 64, 1,193, 64, 2, - 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 90, 0, 0, 0, 22,128, 2, -128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,192, 1,198,192,194, - 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,195, 0, 92, 64, 0, - 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, 4, 0,149,192, 0, - 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, 0, 0, 0,105,117, -112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, -108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 97, 99, -116,105,111,110, 0, 4, 8, 0, 0, 0,110,101,119,102,105,108,101, 0, 4, 3, - 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, - 0,119, 43, 0, 4, 6, 0, 0, 0,119,114,105,116,101, 0, 4, 7, 0, 0, 0, -109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, - 0, 0, 0, 99,108,111,115,101, 0, 4, 6, 0, 0, 0,101,114,114,111,114, 0, - 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108, -101, 32, 0, 4, 9, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, - 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, - 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, - 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, - 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, - 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, - 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 67, 0, 0, - 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 70, 0, 0, - 0, 1, 0, 0, 0, 5, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, - 0, 7, 65, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, - 64,129,137, 64, 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, - 0,133, 92,128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, - 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192, -195, 1, 6, 65,196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128, -196, 1, 5, 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192, -196, 0,220, 64, 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192, -195, 1,198, 0,196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, - 5, 0, 69, 1, 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128, -198, 1, 5, 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128, -128, 1,218, 0, 0, 0, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, - 67, 3,134, 65, 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1, -128, 1, 28, 65,128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, - 0, 1, 30, 0,128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0,105,117,112, 0, 4, - 8, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, 0, 0,100,105, 97, -108,111,103,116,121,112,101, 0, 4, 5, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, - 0, 0, 0,116,105,116,108,101, 0, 4, 10, 0, 0, 0, 83, 97,118,101, 32, 70, -105,108,101, 0, 4, 7, 0, 0, 0,102,105,108,116,101,114, 0, 4, 4, 0, 0, - 0, 42, 46, 42, 0, 4, 11, 0, 0, 0,102,105,108,116,101,114,105,110,102,111, - 0, 4, 10, 0, 0, 0, 65,108,108, 32,102,105,108,101,115, 0, 4, 9, 0, 0, - 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0,121,101,115, 0, 4, - 6, 0, 0, 0,112,111,112,117,112, 0, 4, 5, 0, 0, 0, 76, 69, 70, 84, 0, - 4, 7, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 99,111,110, -115,111,108,101, 0, 4, 13, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97, -109,101, 0, 4, 6, 0, 0, 0,118, 97,108,117,101, 0, 4, 12, 0, 0, 0,108, - 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 8, 0, 0, 0,100,101,115,116, -114,111,121, 0, 4, 3, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, 0, 0,101,114, -114,111,114, 0, 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, - 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0,102,105,108,101,110, 97,109,101, - 0, 4, 3, 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0,111,112,101,110, 0, 4, - 3, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0,119,114,105,116,101, 0, 4, 7, - 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0, 99,108,111,115,101, - 0, 4, 17, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105, -108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, - 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 74, - 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, - 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, - 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 81, - 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 82, - 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 86, - 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 87, - 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 89, - 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0,115, -101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,102,100, 0, 10, - 0, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, - 0, 0, 64, 0, 0, 0, 8, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,104, 0, - 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,128, 0, - 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, 1,128,133, 0, - 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, 0, 1, 22,192, - 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,194, 0, 65,193, - 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,128, 0,156, 64, -128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, 1, 0,134,192, - 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,195, 1,137,192, -128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0,105,111, 0, 4, 5, - 0, 0, 0,111,112,101,110, 0, 4, 2, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, - 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32,108, -111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0,105,117,112, 0, 4, - 8, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 7, 0, 0, 0,109,108, 67, -111,100,101, 0, 4, 6, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0, -114,101, 97,100, 0, 4, 3, 0, 0, 0, 42, 97, 0, 4, 6, 0, 0, 0, 99,108, -111,115,101, 0, 4, 13, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,109, -101, 0, 4, 12, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, - 6, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, 0, - 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 96, 0, - 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, - 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, - 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0,100, 0, - 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, 0,101, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, 0, 9, 0, - 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 33, 0, 0, 0, 8, - 0, 0, 0,110,101,119,102,105,108,101, 0, 5, 0, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, - 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, - 64, 65,130,137,192, 65,131,137, 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, - 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, - 64, 0, 2,134,128,195, 0,198,192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, - 64, 68, 1, 22, 64, 0,128, 23,128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22, -128, 2,128, 5,193, 4, 0, 65, 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, - 65, 0, 1, 22, 0, 1,128, 5, 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, - 1,128, 1, 28, 65, 0, 1, 30, 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, -105,117,112, 0, 4, 8, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, - 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, 0, 0, 79, 80, - 69, 78, 0, 4, 6, 0, 0, 0,116,105,116,108,101, 0, 4, 10, 0, 0, 0, 76, -111, 97,100, 32, 70,105,108,101, 0, 4, 7, 0, 0, 0,102,105,108,116,101,114, - 0, 4, 4, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0,102,105,108,116,101, -114,105,110,102,111, 0, 4, 10, 0, 0, 0, 65,108,108, 32, 70,105,108,101,115, - 0, 4, 9, 0, 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, 0, 0, 0, - 78, 79, 0, 4, 6, 0, 0, 0,112,111,112,117,112, 0, 4, 7, 0, 0, 0, 67, - 69, 78, 84, 69, 82, 0, 4, 7, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, - 0, 0, 0,118, 97,108,117,101, 0, 4, 8, 0, 0, 0,100,101,115,116,114,111, -121, 0, 4, 3, 0, 0, 0, 45, 49, 0, 4, 2, 0, 0, 0, 49, 0, 4, 6, 0, - 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 67, 97,110,110,111,116, 32, -108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 99,111,110,115, -111,108,101, 0, 4, 9, 0, 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, - 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, - 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,107, 0, - 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, - 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, 0, 0,112, 0, - 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,115, 0, - 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, - 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, - 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0, 0, 0, 5, 0, - 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 36, 0, 0, 0, 3, 0, 0, 0,102, -100, 0, 9, 0, 0, 0, 36, 0, 0, 0, 7, 0, 0, 0,115,116, 97,116,117,115, - 0, 16, 0, 0, 0, 36, 0, 0, 0, 9, 0, 0, 0,102,105,108,101,110, 97,109, -101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, - 0, 0,170, 0, 0, 0, 0, 5, 0, 7, 8, 0, 0, 0, 23, 0, 64, 1, 22, 0, - 1,128, 69, 65, 0, 0, 70,129,192, 2, 70,193,192, 2,128, 1,128, 0, 92, 65, - 0, 1, 30, 0,128, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 4, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 99,111,110,115,111,108,101, - 0, 4, 9, 0, 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 8, - 0, 0, 0,167, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, - 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, 0, 0, 5, - 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, -102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, - 0,110,117,109, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0,120, 0, 0, - 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0,121, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, - 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, - 0, 15, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, - 0, 17, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, - 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, - 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, - 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, - 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, - 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, - 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, - 0, 46, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, - 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, - 0, 51, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, - 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, - 0, 53, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, - 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, - 0, 54, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, - 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, - 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, - 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, - 0, 58, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 58, 0, 0, - 0, 72, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 72, 0, 0, - 0, 94, 0, 0, 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,106, 0, 0, - 0,106, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,123, 0, 0, - 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,127, 0, 0, - 0,127, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0, - 0,129, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,130, 0, 0, - 0,130, 0, 0, 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, - 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,132, 0, 0, - 0,132, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,134, 0, 0, - 0,134, 0, 0, 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, - 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,136, 0, 0, - 0,136, 0, 0, 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,141, 0, 0, - 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,143, 0, 0, - 0,143, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,145, 0, 0, - 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, - 0,147, 0, 0, 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,149, 0, 0, - 0,144, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, - 0,150, 0, 0, 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, - 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, - 0,152, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, - 0,153, 0, 0, 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,154, 0, 0, - 0,154, 0, 0, 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,155, 0, 0, - 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, - 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, - 0,161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, - 0,163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,164, 0, 0, - 0,159, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,166, 0, 0, - 0,170, 0, 0, 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, - 0,174, 0, 0, 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,176, 0, 0, - 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, - 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, - 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, - 0,181, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,183, 0, 0, - 0,183, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, - 0,185, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, - 0,186, 0, 0, 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,182, 0, 0, - 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, - 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, - 0,190, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,192, 0, 0, - 0,177, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, - 0,194, 0, 0, 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,198, 0, 0, - 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,199, 0, 0, - 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,201, 0, 0, - 0,201, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, - 0,203, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, - 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - - if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5.lo")==0) lua_call(L, 0, 0); -} diff --git a/iup/srcconsole/loh/console5_be32.loh b/iup/srcconsole/loh/console5_be32.loh deleted file mode 100755 index 493cae4..0000000 --- a/iup/srcconsole/loh/console5_be32.loh +++ /dev/null @@ -1,475 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - if (luaL_loadfile(L,"../obj/iuplua51/console5_be32.lo")==0) lua_call(L, 0, 0); -*/ -/* ../obj/iuplua51/console5_be32.lo */ -static const unsigned char B1[]={ - 27, 76,117, 97, 81, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0, 14, 64, 99,111,110, -115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 15, 0, 0, 1, 90, 0, 0, 0, 5, 0, 0, 64, 65, 1, 0, 64, 28, 0, 0, -128, 5, 0, 0, 0, 74,129,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, - 0,100,130, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, 64,100,130,128, - 64, 9, 0, 0,128, 5, 0, 64,192, 6,131, 65,192, 9, 0, 0,128, 5, 0, 64, -192, 6, 0, 0,128, 69, 0,194, 64, 70, 0, 0,192,138,133, 66,192,137,134, 67, - 64,137,135, 67,192,137, 1, 0,128, 92,132, 0, 64, 9, 0, 0,128, 5, 0, 64, -192, 6, 0, 0,128, 69, 0,196, 64, 70, 0, 0,128,138,137, 68,192,137,134, 69, - 0,137, 1, 0,128, 92,136, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, -128, 69, 0,196, 64, 70, 0, 0,192,138,137, 69,128,137,134, 69, 0,137,133, 69, -192,137, 1, 0,128, 92,138,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 66, - 0, 6, 0, 0,128,100,140, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, -128, 69, 0,198,128, 70, 0, 0,192,138,134, 70,192,137,137, 71, 0,137,142,199, -128,137, 1, 0,128, 92,140,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, -128, 69, 0,198,128, 70, 0, 0,192,138,134, 70,192,137,137, 72, 0,137,142,200, - 64,137, 1, 0,128, 92,143,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0, -128, 69, 0,198,128, 70, 0, 0,128,138,134, 70,192,137,137, 72,192,137, 1, 0, -128, 92,145, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,198, -128, 70, 0, 0,128,138,134, 70,192,137,137, 73, 64,137, 1, 0,128, 92,146, 0, - 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,198,128, 70, 0, 0, -128,138,134, 70,192,137,137, 73,192,137, 1, 0,128, 92,147, 0, 64, 9, 0, 0, -128, 5, 0, 64,192, 6, 0, 73,128, 6, 0, 0,192,100,142,128, 64, 9, 0, 0, -128, 5, 0, 64,192, 6, 0, 73, 0, 6, 0, 1, 0,100,142,128, 64, 9, 0, 0, -128, 5, 0, 64,192, 6, 0, 1, 64,100,148, 0, 64, 9, 0, 0,128, 5, 0, 64, -192, 6, 0, 72,128, 6, 0, 1,128,100,142,128, 64, 9, 0, 0,128, 5, 0, 64, -192, 6, 0, 0,128, 69, 0,202,128, 70, 0,128,192,138, 0, 0,128,197, 1,202, -192,198, 0,128, 65, 10, 0, 0,129, 69, 2,203, 1, 70, 1, 0, 65,138, 0, 0, -129,197, 3,202,129,198, 2,128,130, 10, 0, 0,130, 69, 4,192,194, 70, 4,200, -130, 70, 0, 0,130,133, 5, 64,194,134, 5, 73,130,134, 0, 0,130,197, 5,192, -194,198, 5,201, 2,198, 0, 0,131, 5, 6, 64,195, 6, 6, 71,195, 6, 0, 0, -131, 69, 6,192,195, 70, 6,198, 67, 70,150,203,130, 9,151,204, 2, 9, 2,128, - 66, 34, 1, 0,129,220, 0, 0,130, 5, 4, 74,130, 6, 1,128, 66, 74, 0, 0, -130,133, 5, 64,194,134, 5, 69, 66,134, 0, 0,130,197, 5,192,194,198, 5,194, - 2,198, 0, 0,131, 5, 6, 64,195, 6, 6, 68, 3, 6,152,204,130, 73, 1,128, - 66, 98, 1, 0,130, 28,152,204,193,137, 1, 0, 65,162, 1, 0,129, 92,137, 77, - 1, 9, 0,128, 65, 34, 1, 0,128,220,152,205, 64,137,150,205,128,137,151,205, -192,137, 0,128, 64,162, 1, 0,128, 92,148,128, 64, 9, 0, 0,128, 5, 0, 64, -192, 6, 0, 0,128, 69, 0,206, 64, 70, 0,128, 0,138, 0, 0,128,197, 1,206, -128,198, 0,128, 65, 10, 0, 0,129, 69, 2,206, 65, 70, 0, 0, 1,138, 0, 0, -129,197, 3,206,193,198, 0, 0,130, 10,137, 79, 2, 9,142,207, 66, 9, 1, 0, - 1,220, 0, 0, 65,162, 1, 0,129, 92,137, 79,129, 9, 0,128, 65, 34, 1, 0, -128,220, 0, 0,129, 5, 2, 78,129, 6, 0,128, 65, 74, 0, 0,129,133, 3, 78, - 65,134, 0,128, 1,202, 0, 0,130, 5, 4, 78,194, 6, 0, 0,130, 74,137, 79, -194, 73, 0, 0,130,133, 5, 64,194,134, 5, 65, 66,134,142,130,130, 73, 1, 0, -130, 28, 0, 0,130, 69, 4,206,194, 70, 0, 0,130,138,137, 80, 2,137,142,208, - 66,137, 1, 0, 2, 92, 0, 0, 65,226, 1, 0,129,156,137, 80,129, 73, 0,128, - 65, 98, 1, 0, 1, 28, 0, 0, 64,162, 1, 0,128, 92,156, 0, 64, 9, 0, 0, -128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,209, 0, 70, 0,129, 64,138, 0, 0, -128,197, 1,192,192,198, 1,202, 64,198,137, 81, 64,137, 0, 0,129, 5, 2, 64, -193, 6, 2, 78, 1, 6,156,129, 0,137,163, 66,192,137, 0, 0,129, 5, 2, 64, -193, 6, 2, 70, 65, 6,163,129, 0,137,164, 79, 64,137, 0,128, 64,162, 1, 0, -128, 92,161,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 80,192, 6, 0, 1, -192,100,164,128, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 0,128, 69, 0,209, - 0, 70, 0,129, 0,138, 0, 0,128,197, 1,202,128,198, 3, 0,129, 10, 0, 0, -129, 69, 2,196, 65, 70, 0, 0, 65,138,137, 81, 65,137, 1, 0,129, 92, 0, 0, -129,133, 3, 82,193,134, 0, 0, 65,202,134, 77,193,201, 1, 0,129,156, 0, 0, -129,197, 3,210,193,198, 0, 0, 66, 10,134, 77,194, 9, 1, 0,129,220, 0, 0, -130, 5, 4, 74,194, 6, 0, 0, 2, 74, 0, 0,130,133, 5, 74,130,134, 0,128, - 2,202, 0, 0,131, 5, 6, 68, 67, 6, 0, 0, 67, 74,137, 83, 3, 73, 1, 0, -131, 28, 0, 0,131, 69, 6,196, 67, 70, 0, 0, 67,138,137, 83, 67,137, 1, 0, - 3, 92, 0, 0, 66,226, 1, 0, 2,156, 0, 0, 66, 98, 1, 0,130, 28, 0, 0, -130, 69, 4,210,194, 70, 0, 0, 66,138,134, 77,194,137, 1, 0,130, 92, 0, 0, -130,133, 5, 70,130,134, 0, 0,194,202,137, 83,130,201,142,207, 66,201,134, 83, -194,201, 1, 0,130,156,150,212, 1, 9,152,205, 65, 9, 3, 0, 65, 34, 1, 0, -128,220,168,212,128,137,169,212,128,137,170, 84,128,137,137, 85, 64,137, 0,128, - 64,162, 1, 0,128, 92,165, 0, 64, 9, 0, 0,128, 5, 0, 64,192, 6, 0, 80, -192, 6, 0, 85,128, 11, 1, 0, 64, 28, 0, 0,128, 5, 0, 85,192, 6, 0, 0, -128, 69, 0,192,192, 70, 0,194, 0, 70, 1, 0, 64, 28, 0, 0,128, 5, 0, 86, - 0, 6, 0,128, 64, 28, 0, 0,128, 5, 0, 64,192, 6, 0, 80,192, 6, 0, 86, - 64, 11, 1, 0, 64, 28, 0, 0,128, 5, 0, 64,192, 6, 0, 82,128, 6, 0, 86, - 64, 11, 1, 0, 64, 28, 0,128, 0, 30, 0, 0, 0, 90, 4, 0, 0, 0, 8,114, -101,113,117,105,114,101, 0, 4, 0, 0, 0, 7,105,117,112,108,117, 97, 0, 4, - 0, 0, 0, 4,105,117,112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101, - 0, 4, 0, 0, 0, 11,112,114,105,110,116,116, 97, 98,108,101, 0, 4, 0, 0, - 0, 19,112,114,105,110,116, 95,118,101,114,115,105,111,110, 95,105,110,102,111, - 0, 4, 0, 0, 0, 13,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0, - 4, 0, 0, 0, 7,109,108, 67,111,100,101, 0, 4, 0, 0, 0, 10,109,117,108, -116,105,108,105,110,101, 0, 4, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 4, - 0, 0, 0, 4, 89, 69, 83, 0, 4, 0, 0, 0, 5,115,105,122,101, 0, 4, 0, - 0, 0, 8, 50, 48, 48,120, 49, 50, 48, 0, 4, 0, 0, 0, 5,102,111,110,116, - 0, 4, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 4, 0, 0, 0, 12,108, 98,108, 80,111,115,105,116,105,111,110, - 0, 4, 0, 0, 0, 6,108, 97, 98,101,108, 0, 4, 0, 0, 0, 6,116,105,116, -108,101, 0, 4, 0, 0, 0, 4, 48, 58, 48, 0, 4, 0, 0, 0, 4, 53, 48,120, - 0, 4, 0, 0, 0, 12,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 0, - 0, 0, 1, 0, 4, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, - 4, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, 98, 0, 4, 0, 0, 0, 11, 98, -117,116, 69,120,101, 99,117,116,101, 0, 4, 0, 0, 0, 7, 98,117,116,116,111, -110, 0, 4, 0, 0, 0, 6, 53, 48,120, 49, 53, 0, 4, 0, 0, 0, 8, 69,120, -101, 99,117,116,101, 0, 4, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 4, 0, - 0, 0, 39,105,117,112, 46,100,111,115,116,114,105,110,103, 40,105,117,112, 46, - 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101, - 41, 0, 4, 0, 0, 0, 17, 98,117,116, 67,108,101, 97,114, 67,111,109,109, 97, -110,100,115, 0, 4, 0, 0, 0, 6, 67,108,101, 97,114, 0, 4, 0, 0, 0, 96, -105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, - 97,108,117,101, 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, - 46,108, 98,108, 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, - 32, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115, -116,102,105,108,101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 0, 0, 0, - 12, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 0, 0, 0, 8, 76,111, - 97,100, 46, 46, 46, 0, 4, 0, 0, 0, 14, 98,117,116, 83, 97,118,101, 97,115, - 70,105,108,101, 0, 4, 0, 0, 0, 11, 83, 97,118,101, 32, 65,115, 46, 46, 46, - 0, 4, 0, 0, 0, 12, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 0, - 0, 0, 5, 83, 97,118,101, 0, 4, 0, 0, 0, 9, 76,111, 97,100, 70,105,108, -101, 0, 4, 0, 0, 0, 11,118, 98,120, 67,111,110,115,111,108,101, 0, 4, 0, - 0, 0, 5,118, 98,111,120, 0, 4, 0, 0, 0, 6,102,114, 97,109,101, 0, 4, - 0, 0, 0, 5,104, 98,111,120, 0, 4, 0, 0, 0, 7,109, 97,114,103,105,110, - 0, 4, 0, 0, 0, 4, 48,120, 48, 0, 4, 0, 0, 0, 4,103, 97,112, 0, 4, - 0, 0, 0, 3, 49, 48, 0, 4, 0, 0, 0, 10, 97,108,105,103,110,109,101,110, -116, 0, 4, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 4, 0, 0, 0, 5, 65, - 84, 79, 80, 0, 4, 0, 0, 0, 9, 67,111,109,109, 97,110,100,115, 0, 4, 0, - 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 4, 0, 0, 0, 4, 53,120, 53, 0, - 4, 0, 0, 0, 2, 53, 0, 4, 0, 0, 0, 8,109,110,117, 77, 97,105,110, 0, - 4, 0, 0, 0, 5,109,101,110,117, 0, 4, 0, 0, 0, 8,115,117, 98,109,101, -110,117, 0, 4, 0, 0, 0, 5,105,116,101,109, 0, 4, 0, 0, 0, 5, 69,120, -105,116, 0, 4, 0, 0, 0, 17,114,101,116,117,114,110, 32,105,117,112, 46, 67, - 76, 79, 83, 69, 0, 4, 0, 0, 0, 5, 70,105,108,101, 0, 4, 0, 0, 0, 22, - 80,114,105,110,116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, - 46, 0, 4, 0, 0, 0, 9, 65, 98,111,117,116, 46, 46, 46, 0, 4, 0, 0, 0, - 51,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, 65, 98,111,117, -116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, 69, 82, 44, 32, -105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 0, 0, 0, 5, 72,101,108, -112, 0, 4, 0, 0, 0, 8,100,108,103, 77, 97,105,110, 0, 4, 0, 0, 0, 7, -100,105, 97,108,111,103, 0, 4, 0, 0, 0, 15, 73,117,112, 76,117, 97, 32, 67, -111,110,115,111,108,101, 0, 4, 0, 0, 0, 9,100,114, 97,103,100,114,111,112, - 0, 4, 0, 0, 0, 13,100,101,102, 97,117,108,116,101,110,116,101,114, 0, 4, - 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 4, 0, 0, 0, 13,100,114, -111,112,102,105,108,101,115, 95, 99, 98, 0, 4, 0, 0, 0, 9,100,108,103, 65, - 98,111,117,116, 0, 4, 0, 0, 0, 5,102,105,108,108, 0, 4, 0, 0, 0, 16, - 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, 82,105,111, 0, 4, 0, 0, 0, - 23,105,117,112, 64,116,101, 99,103,114, 97,102, 46,112,117, 99, 45,114,105,111, - 46, 98,114, 0, 4, 0, 0, 0, 3, 79, 75, 0, 4, 0, 0, 0, 6, 53, 48, 88, - 50, 48, 0, 4, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 4, 0, 0, 0, 7,109, - 97,120, 98,111,120, 0, 4, 0, 0, 0, 3, 78, 79, 0, 4, 0, 0, 0, 7,109, -105,110, 98,111,120, 0, 4, 0, 0, 0, 7,114,101,115,105,122,101, 0, 4, 0, - 0, 0, 6, 65, 98,111,117,116, 0, 4, 0, 0, 0, 5,115,104,111,119, 0, 4, - 0, 0, 0, 9, 83,101,116, 70,111, 99,117,115, 0, 4, 0, 0, 0, 9, 77, 97, -105,110, 76,111,111,112, 0, 4, 0, 0, 0, 8,100,101,115,116,114,111,121, 0, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 1, 0, 8, - 0, 0, 0, 30, 0, 0, 0, 69, 0, 0, 0,128, 1,128, 0,195, 1,128,192, 92, - 0, 0, 64,197, 0, 0,129, 1, 1, 0, 64,220, 0, 0, 0, 90,128, 4, 0, 22, - 0, 0, 64,197, 0, 0,193, 5, 0,128, 1, 64, 1, 0,129, 28, 0, 1, 1, 65, - 0, 0,193,133, 1, 0, 1,192, 1, 0,129,156, 2, 1,129, 21, 1, 0, 64,220, - 0, 0, 0,197, 0, 0, 1, 0, 0,128, 1, 64, 1,128,192,220, 2, 0, 0,128, - 1,128, 0, 64,127,251, 0, 22, 0, 0, 64,197, 0, 1, 65, 1, 1, 0, 64,220, - 0,128, 0, 30, 0, 0, 0, 6, 4, 0, 0, 0, 5,110,101,120,116, 0, 4, 0, - 0, 0, 6,112,114,105,110,116, 0, 4, 0, 0, 0, 21, 45, 45,112,114,105,110, -116,116, 97, 98,108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 0, 0, 0, 9, -116,111,115,116,114,105,110,103, 0, 4, 0, 0, 0, 2, 61, 0, 4, 0, 0, 0, - 19, 45, 45,112,114,105,110,116,116, 97, 98,108,101, 32, 69,110,100, 45, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, - 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 10, - 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, - 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, - 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, - 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 14, - 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 2,116, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 2,110, 0, 0, 0, 0, 4, 0, 0, 0, 29, - 0, 0, 0, 2,118, 0, 0, 0, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 5, 0, 0, 0,112, 0, 0, - 0, 5, 0, 0, 0, 26,128, 2, 0, 22, 0, 0, 64, 5, 0, 0,128, 65, 0, 0, - 0,133, 1, 64,192,134, 0, 1, 0,193, 0, 0, 1, 5, 2, 65, 65, 6, 0,129, - 0, 85, 1, 0, 64, 28, 0, 1,128, 5, 0, 0, 0, 26,128, 2, 0, 22, 0, 0, - 64, 5, 0, 1,192, 65, 0, 1,128,133, 1, 64,192,134, 0, 1, 0,193, 0, 1, -129, 5, 2, 65, 65, 6, 0,129, 0, 85, 1, 0, 64, 28, 0, 0, 64, 5, 0, 2, - 0, 65, 0, 2, 64,133, 1, 64,192,134, 0, 1, 0,193, 0, 2, 65, 5, 2, 65, - 65, 6, 0,129, 0, 85, 1, 0, 64, 28, 0, 0, 64, 5, 0, 2,128, 65, 1, 0, - 64, 28, 0, 0, 64, 5, 0, 2,192, 65, 1, 0, 64, 28, 0, 0, 64, 5, 0, 3, - 0, 65, 0, 2, 64,133, 1, 67, 64,134, 0, 3,128,193, 1, 0,128,156, 0,128, -128, 85, 1, 0, 64, 28, 0, 0, 64, 5, 0, 3,192, 65, 0, 2, 64,133, 1, 67, - 64,134, 0, 4, 0,193, 1, 0,128,156, 0,128,128, 85, 1, 0, 64, 28, 0, 2, - 64, 5, 0, 67, 64, 6, 0, 4, 64, 65, 1, 0,128, 28, 0, 0, 0, 26,128, 0, -192, 22, 0, 0, 64, 69, 0, 4,128,129, 0, 0, 0,192, 1,128, 64, 92, 0, 0, - 64, 69, 0, 4,192,129, 0, 2, 64,197, 1,195, 64,198, 0, 5, 1, 1, 1, 0, -128,220, 1, 0,192,149, 1, 0, 64, 92, 0, 0, 64, 69, 0, 5, 64,129, 0, 2, - 64,197, 1,195, 64,198, 0, 5,129, 1, 1, 0,128,220, 1, 0,192,149, 1, 0, - 64, 92, 0, 2, 64, 69, 0,197,192, 70, 0, 0, 0, 90,128, 1, 64, 22, 0, 0, - 64, 69, 0, 6, 0,129, 0, 2, 64,197, 1,197,192,198, 1, 0,192,149, 1, 0, - 64, 92, 0, 2, 64, 69, 0,198, 64, 70, 0, 0, 0, 90,128, 1, 64, 22, 0, 0, - 64, 69, 0, 6,128,129, 0, 2, 64,197, 1,198, 64,198, 1, 0,192,149, 1, 0, - 64, 92, 0, 2, 64, 69, 0,198,192, 70, 0, 0, 0, 90,128, 1, 64, 22, 0, 0, - 64, 69, 0, 7, 0,129, 0, 2, 64,197, 1,198,192,198, 1, 0,192,149, 1, 0, - 64, 92, 0,128, 0, 30, 0, 0, 0, 29, 4, 0, 0, 0, 3,105,109, 0, 4, 0, - 0, 0, 6,112,114,105,110,116, 0, 4, 0, 0, 0, 4, 73, 77, 32, 0, 4, 0, - 0, 0, 9, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, 0, 0, 3, 32, 32, 0, - 4, 0, 0, 0, 11, 95, 67, 79, 80, 89, 82, 73, 71, 72, 84, 0, 4, 0, 0, 0, - 3, 99,100, 0, 4, 0, 0, 0, 4, 67, 68, 32, 0, 4, 0, 0, 0, 5, 73, 85, - 80, 32, 0, 4, 0, 0, 0, 4,105,117,112, 0, 4, 0, 0, 0, 1, 0, 4, 0, - 0, 0, 9, 73, 85, 80, 32, 73,110,102,111, 0, 4, 0, 0, 0, 11, 32, 32, 83, -121,115,116,101,109, 58, 32, 0, 4, 0, 0, 0, 10, 71,101,116, 71,108,111, 98, - 97,108, 0, 4, 0, 0, 0, 7, 83, 89, 83, 84, 69, 77, 0, 4, 0, 0, 0, 19, - 32, 32, 83,121,115,116,101,109, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4, - 0, 0, 0, 14, 83, 89, 83, 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, - 0, 0, 13, 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, 0, 0, - 18, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4, - 0, 0, 0, 16, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122,101, 58, 32, 0, - 4, 0, 0, 0, 11, 83, 67, 82, 69, 69, 78, 83, 73, 90, 69, 0, 4, 0, 0, 0, - 17, 32, 32, 83, 99,114,101,101,110, 32, 68,101,112,116,104, 58, 32, 0, 4, 0, - 0, 0, 12, 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 0, 0, 0, 10, - 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 0, 0, 0, 18, 32, 32, 79,112,101, -110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 0, 0, 0, 12, 71, 76, - 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 0, 0, 0, 20, 32, 32, 79,112,101, -110, 71, 76, 32, 82,101,110,100,101,114,101,114, 58, 32, 0, 4, 0, 0, 0, 11, - 71, 76, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 0, 0, 0, 19, 32, 32, 79,112, -101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0, 0, - 0, 0,112, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, - 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, - 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, - 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, - 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, - 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, - 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, - 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, - 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, - 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, - 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, - 0, 0, 26, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, - 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, - 0, 0, 29, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, - 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, - 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, - 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, - 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, - 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, - 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, - 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, - 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, - 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4,109, -111,116, 0, 0, 0, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 0, 0, 0, 48, 0, 3, 0, 7, 0, 0, 0, 9, 0, 0, 0,197, 1, -192, 64,198, 1,192,128,198, 0,128, 1, 0, 0, 1, 1, 65, 1, 0, 1,128, 2, - 1,129, 21,129,129, 0,201, 0,128, 0, 30, 0, 0, 0, 5, 4, 0, 0, 0, 4, -105,117,112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101, 0, 4, 0, 0, - 0, 12,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 0, 0, 0, 6,116, -105,116,108,101, 0, 4, 0, 0, 0, 2, 58, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, - 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 3, - 0, 0, 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, - 4,108,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 99,111,108, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 58, 0, 0, 0, 70, 0, 1, 0, 4, 0, 0, 0, 39, 0, 0, 0, 69, 0,192, 64, - 70, 0,192,128, 70, 0,192,192, 23,128, 1, 64, 22, 0, 0, 0, 69, 0,192, 64, - 70, 0,193, 0, 70, 0,193, 64, 75, 1, 0, 64, 92,128, 6,128, 22, 0, 1,192, - 69, 0,194, 0, 70, 0, 0, 0,133, 1, 64, 64,134, 1, 64,128,134, 0, 2, 64, -193, 1,128,128, 92, 0, 1,128, 71, 0, 1,128, 69, 0, 0, 0, 90,128, 2,128, - 22, 0, 1,128, 69, 0,194,128, 75, 0, 0, 0,197, 1,192, 64,198, 1,194,192, -198, 1,195, 0,198, 1,128, 64, 92, 0, 1,128, 69, 0,195, 64, 75, 1, 0, 64, - 92,128, 1, 0, 22, 0, 3,128, 69, 0, 3,192,129, 0, 4, 0,197, 1, 0,192, -149, 1, 0, 64, 92, 0,128, 0, 30, 0, 0, 0, 17, 4, 0, 0, 0, 4,105,117, -112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101, 0, 4, 0, 0, 0, 13, -108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 0, 0, 0, 14, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 0, 0, 0, 7, 97, 99, -116,105,111,110, 0, 4, 0, 0, 0, 8,110,101,119,102,105,108,101, 0, 4, 0, - 0, 0, 3,105,111, 0, 4, 0, 0, 0, 5,111,112,101,110, 0, 4, 0, 0, 0, - 3,119, 43, 0, 4, 0, 0, 0, 6,119,114,105,116,101, 0, 4, 0, 0, 0, 7, -109,108, 67,111,100,101, 0, 4, 0, 0, 0, 6,118, 97,108,117,101, 0, 4, 0, - 0, 0, 6, 99,108,111,115,101, 0, 4, 0, 0, 0, 6,101,114,114,111,114, 0, - 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108, -101, 32, 0, 4, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, - 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, - 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, - 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, - 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, - 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, - 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, - 70, 0, 0, 0, 1, 0, 0, 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, - 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 1, - 0, 7, 0, 0, 0, 65, 0, 0, 0, 69, 0,192, 64, 70, 0, 1, 64,138,129, 64, -192,137,130, 65, 64,137,131, 65,192,137,132, 66, 64,137, 0, 2,192,197,133, 0, -192,137, 1, 0,128, 92, 0,195, 0,139, 0, 0, 1, 5, 2, 67, 65, 6, 0, 0, - 1, 69, 2,195, 65, 70, 2, 0, 64,156, 0,195,128,134, 0, 0, 0,197, 1,195, -192,198, 0,196, 65, 6,136, 1, 0,201, 0, 0, 0,197, 1,195,192,198, 1,196, -128,198, 0, 0, 1, 5, 2, 67,193, 6, 2, 68, 1, 6,130, 1, 0,201, 0,196, -192,203, 1, 0, 64,220, 1, 69, 0, 87,128, 7,192, 22, 0, 0, 0,197, 1,195, -192,198, 1,196, 0,198, 1,197, 64, 23,128, 1, 0, 22, 0, 5,128,197, 0, 5, -193, 1, 0, 6, 1, 69, 2, 1, 65, 21, 1, 0, 64,220, 0, 6, 64,197, 1,198, -128,198, 0, 0, 1, 5, 2, 67,193, 6, 2, 68, 1, 6, 0, 6,193, 65, 1,128, -128,220, 0, 0, 0,218,128, 2, 64, 22, 1,199, 1, 11, 0, 0, 1,133, 3, 67, -193,134, 3, 71, 65,134, 3, 68, 65,134, 1,128, 65, 28, 1,199,129, 11, 1,128, - 1,128, 1,128, 65, 28,128, 0,128, 22, 0, 5,129, 5, 0, 7,193, 65, 1, 0, - 65, 28, 0,128, 0, 30, 0, 0, 0, 32, 4, 0, 0, 0, 4,105,117,112, 0, 4, - 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 4, 0, 0, 0, 11,100,105, 97, -108,111,103,116,121,112,101, 0, 4, 0, 0, 0, 5, 83, 65, 86, 69, 0, 4, 0, - 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 0, 10, 83, 97,118,101, 32, 70, -105,108,101, 0, 4, 0, 0, 0, 7,102,105,108,116,101,114, 0, 4, 0, 0, 0, - 4, 42, 46, 42, 0, 4, 0, 0, 0, 11,102,105,108,116,101,114,105,110,102,111, - 0, 4, 0, 0, 0, 10, 65,108,108, 32,102,105,108,101,115, 0, 4, 0, 0, 0, - 9, 97,108,108,111,119,110,101,119, 0, 4, 0, 0, 0, 4,121,101,115, 0, 4, - 0, 0, 0, 6,112,111,112,117,112, 0, 4, 0, 0, 0, 5, 76, 69, 70, 84, 0, - 4, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 4, 0, 0, 0, 8, 99,111,110, -115,111,108,101, 0, 4, 0, 0, 0, 13,108, 97,115,116,102,105,108,101,110, 97, -109,101, 0, 4, 0, 0, 0, 6,118, 97,108,117,101, 0, 4, 0, 0, 0, 12,108, - 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 0, 0, 0, 8,100,101,115,116, -114,111,121, 0, 4, 0, 0, 0, 3, 45, 49, 0, 0, 4, 0, 0, 0, 6,101,114, -114,111,114, 0, 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, 83, 97,118,101, - 32,102,105,108,101, 32, 0, 4, 0, 0, 0, 9,102,105,108,101,110, 97,109,101, - 0, 4, 0, 0, 0, 3,105,111, 0, 4, 0, 0, 0, 5,111,112,101,110, 0, 4, - 0, 0, 0, 3,119, 43, 0, 4, 0, 0, 0, 6,119,114,105,116,101, 0, 4, 0, - 0, 0, 7,109,108, 67,111,100,101, 0, 4, 0, 0, 0, 6, 99,108,111,115,101, - 0, 4, 0, 0, 0, 17, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105, -108,101, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, - 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, - 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, - 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, - 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, - 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, - 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, - 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, - 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, - 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, - 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, - 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, - 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, - 0, 0, 89, 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5,115, -101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3,102,100, 0, 0, - 0, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 0, 0, - 0, 17, 0, 0, 0, 64, 0, 0, 0, 8,110,101,119,102,105,108,101, 0, 0, 0, - 0, 49, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, - 0,104, 0, 1, 0, 6, 0, 0, 0, 34, 0, 0, 0, 69, 0,192, 64, 70, 0, 0, - 0,128, 0, 0,128,193, 1,128,128, 92, 0,192,192, 23,128, 1, 64, 22, 0, 1, - 0,133, 0, 1, 64,193, 0, 0, 1, 0, 1,129, 0,213, 1, 0, 64,156,128, 4, -192, 22, 0, 1,128,133, 1, 65,192,134, 1, 66, 0,134, 0,194,128,203, 0, 2, -193, 65, 1,128,128,220,132,128,192,137, 0,195, 0,139, 0,128, 1, 0, 1,128, - 64,156, 0, 1,128,133, 1, 65,192,134,134,128, 0,137, 0, 1,128,133, 1, 65, -192,134, 1, 67,128,134, 0, 1,128,197, 1,193,192,198, 1,195, 64,198,135,128, -192,137, 0,128, 0, 30, 0, 0, 0, 16, 4, 0, 0, 0, 3,105,111, 0, 4, 0, - 0, 0, 5,111,112,101,110, 0, 4, 0, 0, 0, 2,114, 0, 0, 4, 0, 0, 0, - 6,101,114,114,111,114, 0, 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32,108, -111, 97,100, 32,102,105,108,101, 32, 0, 4, 0, 0, 0, 4,105,117,112, 0, 4, - 0, 0, 0, 8, 99,111,110,115,111,108,101, 0, 4, 0, 0, 0, 7,109,108, 67, -111,100,101, 0, 4, 0, 0, 0, 6,118, 97,108,117,101, 0, 4, 0, 0, 0, 5, -114,101, 97,100, 0, 4, 0, 0, 0, 3, 42, 97, 0, 4, 0, 0, 0, 6, 99,108, -111,115,101, 0, 4, 0, 0, 0, 13,108, 97,115,116,102,105,108,101,110, 97,109, -101, 0, 4, 0, 0, 0, 12,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, - 0, 0, 0, 6,116,105,116,108,101, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, - 0, 96, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, - 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, - 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, - 0,100, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, - 0,101, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, - 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, - 0, 9,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 8,110,101,119,102,105,108,101, 0, 0, 0, 0, 5, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0,121, 0, 1, 0, 7, 0, - 0, 0, 37, 0, 0, 0, 69, 0,192, 64, 70, 0, 1, 64,138,129, 64,192,137,130, - 65, 64,137,131, 65,192,137,132, 66, 64,137,133, 66,192,137, 1, 0,128, 92, 0, -195, 0,139, 0, 0, 1, 5, 2, 67, 65, 6, 0, 0, 1, 69, 2,195, 65, 70, 2, - 0, 64,156, 0,195,128,134, 0,195,192,198, 0,196, 1, 11, 1, 0, 65, 28, 1, - 68, 64, 87,128, 0, 64, 22, 1, 68,128, 23,128, 1,192, 22, 1, 68,128, 23,128, - 2,128, 22, 0, 4,193, 5, 0, 5, 1, 65, 1,128, 1,128, 2,129,129, 85, 1, - 0, 65, 28,128, 1, 0, 22, 0, 0, 1, 5, 2, 69, 65, 6, 2, 69,129, 6, 1, -128, 1, 64, 1, 0, 65, 28, 0,128, 0, 30, 0, 0, 0, 23, 4, 0, 0, 0, 4, -105,117,112, 0, 4, 0, 0, 0, 8,102,105,108,101,100,108,103, 0, 4, 0, 0, - 0, 11,100,105, 97,108,111,103,116,121,112,101, 0, 4, 0, 0, 0, 5, 79, 80, - 69, 78, 0, 4, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 0, 10, 76, -111, 97,100, 32, 70,105,108,101, 0, 4, 0, 0, 0, 7,102,105,108,116,101,114, - 0, 4, 0, 0, 0, 4, 42, 46, 42, 0, 4, 0, 0, 0, 11,102,105,108,116,101, -114,105,110,102,111, 0, 4, 0, 0, 0, 10, 65,108,108, 32, 70,105,108,101,115, - 0, 4, 0, 0, 0, 9, 97,108,108,111,119,110,101,119, 0, 4, 0, 0, 0, 3, - 78, 79, 0, 4, 0, 0, 0, 6,112,111,112,117,112, 0, 4, 0, 0, 0, 7, 67, - 69, 78, 84, 69, 82, 0, 4, 0, 0, 0, 7,115,116, 97,116,117,115, 0, 4, 0, - 0, 0, 6,118, 97,108,117,101, 0, 4, 0, 0, 0, 8,100,101,115,116,114,111, -121, 0, 4, 0, 0, 0, 3, 45, 49, 0, 4, 0, 0, 0, 2, 49, 0, 4, 0, 0, - 0, 6,101,114,114,111,114, 0, 4, 0, 0, 0, 18, 67, 97,110,110,111,116, 32, -108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 0, 0, 0, 8, 99,111,110,115, -111,108,101, 0, 4, 0, 0, 0, 9, 76,111, 97,100, 70,105,108,101, 0, 0, 0, - 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, - 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0, 0, - 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, - 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, 0, - 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, - 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, - 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0, 0, - 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0, 0, - 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 3,102, -100, 0, 0, 0, 0, 9, 0, 0, 0, 36, 0, 0, 0, 7,115,116, 97,116,117,115, - 0, 0, 0, 0, 16, 0, 0, 0, 36, 0, 0, 0, 9,102,105,108,101,110, 97,109, -101, 0, 0, 0, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,166, 0, 0, 0,170, 0, 5, 0, 7, 0, 0, 0, 8, 1, 64, 0, 23,128, 1, - 0, 22, 0, 0, 65, 69, 2,192,129, 70, 2,192,193, 70, 0,128, 1,128, 1, 0, - 65, 92, 0,128, 0, 30, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 4,105,117,112, 0, 4, 0, 0, 0, 8, 99,111,110,115,111,108,101, - 0, 4, 0, 0, 0, 9, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0,167, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, - 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, - 0, 0, 5,115,101,108,102, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, -102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 4,110,117,109, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2,120, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2,121, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 1, 90, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 7, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, - 37, 0, 0, 0, 17, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, - 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, - 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, - 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, - 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, - 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, - 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, - 46, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, - 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, - 50, 0, 0, 0, 51, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, - 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, - 52, 0, 0, 0, 53, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, - 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, - 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, - 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, - 55, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, - 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, - 56, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, - 58, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, - 72, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0, -106, 0, 0, 0,106, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0, -123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0, -125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0, -125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0, -125, 0, 0, 0,125, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0, -127, 0, 0, 0,127, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, -128, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0, -130, 0, 0, 0,130, 0, 0, 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0, -131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0, -132, 0, 0, 0,132, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0, -134, 0, 0, 0,134, 0, 0, 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0, -125, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0, -136, 0, 0, 0,136, 0, 0, 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0, -141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0, -143, 0, 0, 0,143, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0, -145, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0, -147, 0, 0, 0,147, 0, 0, 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0, -149, 0, 0, 0,144, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0, -150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0, -152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0, -152, 0, 0, 0,152, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0, -153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0, -154, 0, 0, 0,154, 0, 0, 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0, -155, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0, -159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0, -161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0, -163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0, -164, 0, 0, 0,159, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0, -166, 0, 0, 0,170, 0, 0, 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0, -174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0, -176, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0, -178, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0, -179, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0, -180, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0, -183, 0, 0, 0,183, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0, -185, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0, -186, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0, -182, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0, -189, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0, -190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0, -192, 0, 0, 0,177, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0, -193, 0, 0, 0,194, 0, 0, 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0, -198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0, -199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0, -201, 0, 0, 0,201, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0, -203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, -204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - - if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_be32.lo")==0) lua_call(L, 0, 0); -} diff --git a/iup/srcconsole/loh/console5_be64.loh b/iup/srcconsole/loh/console5_be64.loh deleted file mode 100755 index 4e08445..0000000 --- a/iup/srcconsole/loh/console5_be64.loh +++ /dev/null @@ -1,524 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - if (luaL_loadfile(L,"../obj/iuplua51/console5_be64.lo")==0) lua_call(L, 0, 0); -*/ -/* ../obj/iuplua51/console5_be64.lo */ -static const unsigned char B1[]={ - 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 64, 99,111,110,115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64, - 0, 1, 5,128, 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192, - 64, 0,100, 0, 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64, - 0, 0, 9, 64,128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192, - 66,133,137, 64, 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192, - 68,137,137, 0, 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0, - 69,134,137,192, 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192, - 64, 0, 6, 0, 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, - 71,137,137,128,199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, - 72,137,137, 64,200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192, - 72,137, 92,128, 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128, - 0, 1, 9, 64, 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128, -198, 0,138,128, 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64, - 0,147, 5,128, 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64, -128,142, 5,128, 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64, -128,142, 5,128, 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128, - 0, 0, 6,192, 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128, - 0, 0,198,192,202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65, - 0, 1,197,129, 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194, -192, 4, 70,130,200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130, - 0, 0,198,194,192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195, - 71, 6, 69,131, 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2, -204,151, 34, 66,128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66, -128, 1,133,130, 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194, -192, 5,198, 2,194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130, -204,152, 98, 66,128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129, - 0, 1, 9, 1, 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128, -205,150,137,192,205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128, - 0, 0,198,128,206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1, - 0, 0,197,129, 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66, -207,142,220, 1, 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65, -128, 0,220,128, 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129, - 0, 0,134, 65, 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130, - 0, 0, 73,194, 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130, -130,142, 28,130, 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2, - 80,137,137, 66,208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129, - 80,137, 98, 65,128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64, - 0,156, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64, -129, 0,197,128, 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129, - 0, 0, 6,193, 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129, - 0, 0, 6,193, 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64, -128, 0, 92,128, 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0,100,192, 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70, 0,209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129, - 0, 3, 69,129, 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129, - 0, 1,133,129, 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129, - 0, 1,197,129, 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129, - 0, 1, 5,130, 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130, - 74, 5,202, 2,128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3, - 83,137, 28,131, 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67, - 83,137, 92, 3, 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130, - 0, 1, 69,130, 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130, - 0, 1,133,130, 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66, -207,142,201,194, 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65, - 0, 3,220,128, 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64, - 85,137,162, 64,128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192, - 64, 0, 6,192, 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, - 85, 0, 69,128, 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128, - 0, 0, 6, 0, 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0, 11, 64, 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128, - 82, 0, 11, 64, 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8, - 0, 0, 0, 0, 0, 0, 0,114,101,113,117,105,114,101, 0, 4, 7, 0, 0, 0, - 0, 0, 0, 0,105,117,112,108,117, 97, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, -105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, - 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101, - 0, 4, 19, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, 95,118,101,114,115, -105,111,110, 95,105,110,102,111, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97, -115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, - 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,109,117,108, -116,105,108,105,110,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,101,120,112, 97, -110,100, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0,115,105,122,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 50, - 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,111,110,116, - 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 48, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, - 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,108, 97, - 98,101,108, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 4, - 4, 0, 0, 0, 0, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 53, 48,120, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108, -101, 78, 97,109,101, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11, 0, 0, - 0, 0, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 4, 9, 0, 0, - 0, 0, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 0, - 0, 0, 0, 98,117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 0, - 0, 0, 0, 98,117,116,116,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, - 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 69,120,101, 99,117,116, -101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39, - 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40, -105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, - 97,108,117,101, 41, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 98,117,116, 67,108, -101, 97,114, 67,111,109,109, 97,110,100,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, - 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0,105,117,112, 46, - 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101, - 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 98,108, - 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, - 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,116,102,105,108, -101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, 0, 0, 0, 0, - 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 0, 0, - 0, 0, 76,111, 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, - 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, 4, 12, 0, 0, 0, 0, 0, - 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, 0, 0, 0, 0, - 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97, -100, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,118, 98,120, 67,111, -110,115,111,108,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,118, 98,111,120, 0, - 4, 6, 0, 0, 0, 0, 0, 0, 0,102,114, 97,109,101, 0, 4, 5, 0, 0, 0, - 0, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, 97, -114,103,105,110, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 48,120, 48, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0,103, 97,112, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, - 49, 48, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 97,108,105,103,110,109,101,110, -116, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 65, 84, 79, 80, 0, 4, 9, 0, 0, 0, 0, 0, 0, - 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 65, - 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 53,120, 53, 0, - 4, 2, 0, 0, 0, 0, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, -109,110,117, 77, 97,105,110, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,109,101,110, -117, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,115,117, 98,109,101,110,117, 0, 4, - 5, 0, 0, 0, 0, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 69,120,105,116, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0,114,101,116,117, -114,110, 32,105,117,112, 46, 67, 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, 0, 0, 0, 0, 80,114,105,110, -116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, 46, 0, 4, 9, - 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0, - 0, 0, 0, 0, 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, - 65, 98,111,117,116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, - 69, 82, 44, 32,105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 72,101,108,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100, -108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108, -111,103, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67, -111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,114, 97,103, -100,114,111,112, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115, -101, 95, 99, 98, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,114,111,112,102,105, -108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,108,103, 65, - 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,105,108,108, 0, 4, - 16, 0, 0, 0, 0, 0, 0, 0, 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, - 82,105,111, 0, 4, 23, 0, 0, 0, 0, 0, 0, 0,105,117,112, 64,116,101, 99, -103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 4, 3, 0, 0, - 0, 0, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, 48, 88, - 50, 48, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7, - 0, 0, 0, 0, 0, 0, 0,109, 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 0, - 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,105,110, 98,111, -120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6, - 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0,115,104,111,119, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 70, -111, 99,117,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 77, 97,105,110, 76,111, -111,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, - 0, 1, 0, 8, 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1, - 92,192,128, 1,197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 90, 0, 0, 0, - 22, 0, 4,128,197, 64, 0, 0, 5,193, 0, 0, 64, 1,128, 0, 28,129, 0, 1, - 65, 1, 1, 0,133,193, 0, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2, -220, 64, 0, 1,197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1, -128, 0, 0, 2, 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1, 65, 1, 0, -220, 64, 0, 1, 30, 0,128, 0, 6, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, - 0,110,101,120,116, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, - 0, 4, 21, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98, -108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, -116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 61, 0, - 4, 19, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,108, -101, 32, 69,110,100, 45, 45, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, - 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, - 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, - 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, - 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 29, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, 0, - 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,128, - 0, 0,133, 0, 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, 65, - 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, 0, - 2,128, 5, 64, 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, 0, - 1, 0, 5,129, 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, - 0, 0, 65, 0, 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, 65, - 2, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,128, - 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, 64, - 0, 0, 65, 0, 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,128, - 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, 64, - 2, 0,134, 64, 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, 64, - 0, 1, 5, 64, 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, 0, - 0, 0, 22,192, 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, 64, -128, 1, 69, 64, 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, 1, - 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, 64, - 5, 0,197, 64, 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,192, - 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, 64, - 1,128, 69, 64, 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,192, - 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, 64, - 1,128, 69, 64, 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,192, - 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, 64, - 1,128, 69, 64, 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,192, - 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0, 0, - 0, 0, 0,105,109, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, - 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 73, 77, 32, 0, 4, 9, 0, 0, 0, 0, - 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 95, 67, 79, 80, 89, 82, 73, - 71, 72, 84, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 99,100, 0, 4, 4, 0, 0, - 0, 0, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 73, 85, - 80, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 73, 85, 80, 32, 73, -110,102,111, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101, -109, 58, 32, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 71,101,116, 71,108,111, 98, - 97,108, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, 4, - 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,109, 32, 86,101,114, -115,105,111,110, 58, 32, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, - 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 77, - 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4, - 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122, -101, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 83, 67, 82, 69, 69, 78, 83, - 73, 90, 69, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101, -110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, 83, - 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, - 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 32, - 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, 0, - 0, 0, 0, 0, 0, 0, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 20, - 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100, -101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, 86, - 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112, -101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,112, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, - 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, - 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22, - 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, - 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23, - 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25, - 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, - 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29, - 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, - 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, - 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 32, - 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, - 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, - 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, - 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, - 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, - 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0,109,111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, 9, - 0, 0, 0,197, 0, 0, 0,198, 64,192, 1,198,128,192, 1, 0, 1,128, 0, 65, - 1, 1, 0,128, 1, 0, 1, 21,129, 1, 2,201, 0,129,129, 30, 0,128, 0, 5, - 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, - 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, 0, 0, 0, 0, - 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, - 0, 0, 0,116,105,116,108,101, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 58, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, - 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, - 48, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108,105,110, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 99,111,108, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58, 0, 0, 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, 0, - 0, 70, 64,192, 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, 0, - 0, 70, 64,192, 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, 6, -128, 69,192, 1, 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, 64, - 1,193, 64, 2, 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 90, 0, 0, - 0, 22,128, 2,128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,192, - 1,198,192,194, 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,195, - 0, 92, 64, 0, 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, 4, - 0,149,192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, 0, - 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99, -111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116, -102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, - 0, 0, 97, 99,116,105,111,110, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,110,101, -119,102,105,108,101, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,111, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, 0, 0, 0, 0, - 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,119,114,105,116,101, 0, 4, - 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99, -108,111,115,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0, - 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, - 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101, -110, 97,109,101, 0, 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, - 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, - 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0, - 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, - 0, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, - 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, - 0, 65, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, - 0, 67, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, - 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, 0, 7, 65, 0, - 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, - 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, 0,133, 92,128, - 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65, -195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,195, 1, 6, 65, -196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,196, 1, 5, 1, - 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,196, 0,220, 64, - 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,195, 1,198, 0, -196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, 5, 0, 69, 1, - 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,198, 1, 5, 1, - 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,128, 1,218, 0, - 0, 0, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, 67, 3,134, 65, - 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,128, 1, 28, 65, -128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, 0, 1, 30, 0, -128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, - 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, 0, - 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116, -105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 83, 97,118,101, 32, 70, -105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, 0, - 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0, 0, - 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0, 0, - 0, 0, 65,108,108, 32,102,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, - 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,121, -101,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 76, 69, 70, 84, 0, 4, 7, 0, 0, 0, 0, 0, 0, - 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110, -115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116,102,105, -108,101,110, 97,109,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117, -101, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97, -109,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0, - 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, 0, 0, 0, 0, - 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110, -110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, - 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 4, 3, 0, 0, 0, 0, 0, - 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, - 3, 0, 0, 0, 0, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, -119,114,105,116,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100, -101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 17, 0, - 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105, -108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, - 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 74, - 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, - 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, - 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 81, - 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 82, - 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 86, - 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 87, - 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 89, - 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0,102,100, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, 0, 0, 64, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,104, 0, - 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,128, 0, - 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, 1,128,133, 0, - 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, 0, 1, 22,192, - 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,194, 0, 65,193, - 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,128, 0,156, 64, -128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, 1, 0,134,192, - 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,195, 1,137,192, -128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105, -111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 2, 0, 0, - 0, 0, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114, -111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108, -111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105, -117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, - 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, - 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, -114,101, 97,100, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 42, 97, 0, 4, 6, 0, - 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, - 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 4, 12, 0, 0, 0, 0, - 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, 0, - 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 96, 0, - 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, - 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, - 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0,100, 0, - 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, 0,101, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 5, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, - 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, 0, 0, 0, 69, 0, 0, 0, 70, - 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, 65,130,137,192, 65,131,137, - 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, - 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,128,195, 0,198, -192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, 64, 68, 1, 22, 64, 0,128, 23, -128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,128, 2,128, 5,193, 4, 0, 65, - 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, 65, 0, 1, 22, 0, 1,128, 5, - 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, 1,128, 1, 28, 65, 0, 1, 30, - 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, - 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, - 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, - 0, 0, 0, 0, 0, 0, 79, 80, 69, 78, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, -116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 32, - 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, - 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0, - 0, 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0, - 0, 0, 0, 65,108,108, 32, 70,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0, - 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, - 78, 79, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 7, - 0, 0, 0, 0, 0, 0, 0, 67, 69, 78, 84, 69, 82, 0, 4, 7, 0, 0, 0, 0, - 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118, - 97,108,117,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111, -121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 4, 2, 0, 0, 0, 0, - 0, 0, 0, 49, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0, - 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108,111, 97,100, - 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115, -111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 70,105,108, -101, 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, - 0, 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0, - 0, 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, - 0, 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, - 0, 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, - 0, 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, - 0, 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0, - 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0, - 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 36, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,102,100, 0, 9, 0, 0, 0, 36, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 16, 0, 0, - 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109, -101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,166, 0, 0, 0,170, 0, 0, 0, 0, 5, 0, 7, 8, 0, 0, 0, 23, 0, - 64, 1, 22, 0, 1,128, 69, 65, 0, 0, 70,129,192, 2, 70,193,192, 2,128, 1, -128, 0, 92, 65, 0, 1, 30, 0,128, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, - 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, - 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 8, 0, 0, 0,167, - 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, - 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0,110,117,109, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, - 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, - 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0, - 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, - 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, - 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, - 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, - 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, - 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, - 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, - 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, - 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, - 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, - 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, - 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, - 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, - 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, - 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, - 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, - 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 58, 0, 0, - 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 58, 0, 0, 0, 72, 0, 0, - 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 72, 0, 0, 0, 94, 0, 0, - 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,106, 0, 0, 0,106, 0, 0, - 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,123, 0, 0, 0,123, 0, 0, - 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,127, 0, 0, 0,127, 0, 0, - 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,129, 0, 0, - 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,130, 0, 0, 0,130, 0, 0, - 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, - 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,132, 0, 0, 0,132, 0, 0, - 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,134, 0, 0, 0,134, 0, 0, - 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,135, 0, 0, - 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,136, 0, 0, 0,136, 0, 0, - 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,141, 0, 0, 0,141, 0, 0, - 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,143, 0, 0, 0,143, 0, 0, - 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,147, 0, 0, - 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, - 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,149, 0, 0, 0,144, 0, 0, - 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, - 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, - 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, - 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, - 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,154, 0, 0, 0,154, 0, 0, - 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,155, 0, 0, 0,159, 0, 0, - 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, - 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, 0,161, 0, 0, - 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,163, 0, 0, - 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,164, 0, 0, 0,159, 0, 0, - 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,170, 0, 0, - 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, - 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,178, 0, 0, - 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,179, 0, 0, - 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,180, 0, 0, - 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,181, 0, 0, - 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,183, 0, 0, 0,183, 0, 0, - 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, - 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, - 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,182, 0, 0, 0,189, 0, 0, - 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,190, 0, 0, - 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, - 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,192, 0, 0, 0,177, 0, 0, - 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,194, 0, 0, - 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, - 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, - 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,201, 0, 0, 0,201, 0, 0, - 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, - 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, - 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - - if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_be64.lo")==0) lua_call(L, 0, 0); -} diff --git a/iup/srcconsole/loh/console5_le64.loh b/iup/srcconsole/loh/console5_le64.loh deleted file mode 100755 index 083405d..0000000 --- a/iup/srcconsole/loh/console5_le64.loh +++ /dev/null @@ -1,524 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - if (luaL_loadfile(L,"../obj/iuplua51/console5_le64.lo")==0) lua_call(L, 0, 0); -*/ -/* ../obj/iuplua51/console5_le64.lo */ -static const unsigned char B1[]={ - 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 64, 99,111,110,115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64, - 0, 1, 5,128, 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192, - 64, 0,100, 0, 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64, - 0, 0, 9, 64,128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192, - 66,133,137, 64, 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192, - 68,137,137, 0, 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0, - 69,134,137,192, 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192, - 64, 0, 6, 0, 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, - 71,137,137,128,199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, - 72,137,137, 64,200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192, - 72,137, 92,128, 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128, - 0, 1, 9, 64, 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128, -198, 0,138,128, 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64, - 0,147, 5,128, 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64, -128,142, 5,128, 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64, -128,142, 5,128, 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128, - 0, 0, 6,192, 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128, - 0, 0,198,192,202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65, - 0, 1,197,129, 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194, -192, 4, 70,130,200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130, - 0, 0,198,194,192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195, - 71, 6, 69,131, 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2, -204,151, 34, 66,128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66, -128, 1,133,130, 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194, -192, 5,198, 2,194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130, -204,152, 98, 66,128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129, - 0, 1, 9, 1, 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128, -205,150,137,192,205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128, - 0, 0,198,128,206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1, - 0, 0,197,129, 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66, -207,142,220, 1, 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65, -128, 0,220,128, 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129, - 0, 0,134, 65, 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130, - 0, 0, 73,194, 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130, -130,142, 28,130, 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2, - 80,137,137, 66,208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129, - 80,137, 98, 65,128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64, - 0,156, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64, -129, 0,197,128, 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129, - 0, 0, 6,193, 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129, - 0, 0, 6,193, 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64, -128, 0, 92,128, 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0,100,192, 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70, 0,209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129, - 0, 3, 69,129, 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129, - 0, 1,133,129, 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129, - 0, 1,197,129, 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129, - 0, 1, 5,130, 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130, - 74, 5,202, 2,128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3, - 83,137, 28,131, 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67, - 83,137, 92, 3, 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130, - 0, 1, 69,130, 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130, - 0, 1,133,130, 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66, -207,142,201,194, 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65, - 0, 3,220,128, 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64, - 85,137,162, 64,128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192, - 64, 0, 6,192, 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, - 85, 0, 69,128, 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128, - 0, 0, 6, 0, 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0, 11, 64, 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128, - 82, 0, 11, 64, 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8, - 0, 0, 0, 0, 0, 0, 0,114,101,113,117,105,114,101, 0, 4, 7, 0, 0, 0, - 0, 0, 0, 0,105,117,112,108,117, 97, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, -105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, - 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101, - 0, 4, 19, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, 95,118,101,114,115, -105,111,110, 95,105,110,102,111, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97, -115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, - 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,109,117,108, -116,105,108,105,110,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,101,120,112, 97, -110,100, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0,115,105,122,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 50, - 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,111,110,116, - 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 48, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, - 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,108, 97, - 98,101,108, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 4, - 4, 0, 0, 0, 0, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 53, 48,120, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108, -101, 78, 97,109,101, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11, 0, 0, - 0, 0, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 4, 9, 0, 0, - 0, 0, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 0, - 0, 0, 0, 98,117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 0, - 0, 0, 0, 98,117,116,116,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, - 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 69,120,101, 99,117,116, -101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39, - 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40, -105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, - 97,108,117,101, 41, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 98,117,116, 67,108, -101, 97,114, 67,111,109,109, 97,110,100,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, - 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0,105,117,112, 46, - 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101, - 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 98,108, - 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, - 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,116,102,105,108, -101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, 0, 0, 0, 0, - 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 0, 0, - 0, 0, 76,111, 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, - 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, 4, 12, 0, 0, 0, 0, 0, - 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, 0, 0, 0, 0, - 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97, -100, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,118, 98,120, 67,111, -110,115,111,108,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,118, 98,111,120, 0, - 4, 6, 0, 0, 0, 0, 0, 0, 0,102,114, 97,109,101, 0, 4, 5, 0, 0, 0, - 0, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, 97, -114,103,105,110, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 48,120, 48, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0,103, 97,112, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, - 49, 48, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 97,108,105,103,110,109,101,110, -116, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 65, 84, 79, 80, 0, 4, 9, 0, 0, 0, 0, 0, 0, - 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 65, - 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 53,120, 53, 0, - 4, 2, 0, 0, 0, 0, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, -109,110,117, 77, 97,105,110, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,109,101,110, -117, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,115,117, 98,109,101,110,117, 0, 4, - 5, 0, 0, 0, 0, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 69,120,105,116, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0,114,101,116,117, -114,110, 32,105,117,112, 46, 67, 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, 0, 0, 0, 0, 80,114,105,110, -116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, 46, 0, 4, 9, - 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0, - 0, 0, 0, 0, 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, - 65, 98,111,117,116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, - 69, 82, 44, 32,105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 72,101,108,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100, -108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108, -111,103, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67, -111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,114, 97,103, -100,114,111,112, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115, -101, 95, 99, 98, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,114,111,112,102,105, -108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,108,103, 65, - 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,105,108,108, 0, 4, - 16, 0, 0, 0, 0, 0, 0, 0, 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, - 82,105,111, 0, 4, 23, 0, 0, 0, 0, 0, 0, 0,105,117,112, 64,116,101, 99, -103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 4, 3, 0, 0, - 0, 0, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, 48, 88, - 50, 48, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7, - 0, 0, 0, 0, 0, 0, 0,109, 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 0, - 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,105,110, 98,111, -120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6, - 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0,115,104,111,119, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 70, -111, 99,117,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 77, 97,105,110, 76,111, -111,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, - 0, 1, 0, 8, 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1, - 92,192,128, 1,197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 90, 0, 0, 0, - 22, 0, 4,128,197, 64, 0, 0, 5,193, 0, 0, 64, 1,128, 0, 28,129, 0, 1, - 65, 1, 1, 0,133,193, 0, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2, -220, 64, 0, 1,197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1, -128, 0, 0, 2, 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1, 65, 1, 0, -220, 64, 0, 1, 30, 0,128, 0, 6, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, - 0,110,101,120,116, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, - 0, 4, 21, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98, -108,101, 32, 83,116, 97,114,116, 45, 45, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, -116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 61, 0, - 4, 19, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98,108, -101, 32, 69,110,100, 45, 45, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, 0, - 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, - 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, - 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, - 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, - 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 29, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, 0, - 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65,128, - 0, 0,133, 0, 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, 65, - 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, 0, - 2,128, 5, 64, 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, 0, - 1, 0, 5,129, 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, - 0, 0, 65, 0, 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, 65, - 2, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,128, - 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, 64, - 0, 0, 65, 0, 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156,128, - 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, 64, - 2, 0,134, 64, 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, 64, - 0, 1, 5, 64, 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, 0, - 0, 0, 22,192, 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, 64, -128, 1, 69, 64, 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, 1, - 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, 64, - 5, 0,197, 64, 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149,192, - 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, 64, - 1,128, 69, 64, 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149,192, - 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, 64, - 1,128, 69, 64, 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149,192, - 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, 64, - 1,128, 69, 64, 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149,192, - 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0, 0, - 0, 0, 0,105,109, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, - 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 73, 77, 32, 0, 4, 9, 0, 0, 0, 0, - 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 95, 67, 79, 80, 89, 82, 73, - 71, 72, 84, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 99,100, 0, 4, 4, 0, 0, - 0, 0, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 73, 85, - 80, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 73, 85, 80, 32, 73, -110,102,111, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101, -109, 58, 32, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 71,101,116, 71,108,111, 98, - 97,108, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, 4, - 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,109, 32, 86,101,114, -115,105,111,110, 58, 32, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, - 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, 77, - 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, 4, - 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105,122, -101, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 83, 67, 82, 69, 69, 78, 83, - 73, 90, 69, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101, -110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, 83, - 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, - 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 32, - 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, 0, - 0, 0, 0, 0, 0, 0, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, 20, - 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110,100, -101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, 86, - 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112, -101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0,112, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, - 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, - 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, - 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22, - 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, - 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23, - 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25, - 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, - 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, - 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29, - 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, - 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, - 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 32, - 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, - 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, - 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, - 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, - 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, - 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, - 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0,109,111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, 9, - 0, 0, 0,197, 0, 0, 0,198, 64,192, 1,198,128,192, 1, 0, 1,128, 0, 65, - 1, 1, 0,128, 1, 0, 1, 21,129, 1, 2,201, 0,129,129, 30, 0,128, 0, 5, - 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, - 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, 0, 0, 0, 0, - 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, - 0, 0, 0,116,105,116,108,101, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 58, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, - 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, - 48, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108,105,110, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 99,111,108, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58, 0, 0, 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, 0, - 0, 70, 64,192, 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, 0, - 0, 70, 64,192, 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, 6, -128, 69,192, 1, 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, 64, - 1,193, 64, 2, 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 90, 0, 0, - 0, 22,128, 2,128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64,192, - 1,198,192,194, 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64,195, - 0, 92, 64, 0, 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, 4, - 0,149,192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, 0, - 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99, -111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116, -102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, - 0, 0, 97, 99,116,105,111,110, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,110,101, -119,102,105,108,101, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,111, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, 0, 0, 0, 0, - 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,119,114,105,116,101, 0, 4, - 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99, -108,111,115,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0, - 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, - 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101, -110, 97,109,101, 0, 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, - 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, - 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, 0, - 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, - 0, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, - 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, - 0, 65, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, - 0, 67, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, - 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, 0, 7, 65, 0, - 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, - 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, 0,133, 92,128, - 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65, -195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,195, 1, 6, 65, -196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,196, 1, 5, 1, - 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,196, 0,220, 64, - 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,195, 1,198, 0, -196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, 5, 0, 69, 1, - 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,198, 1, 5, 1, - 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,128, 1,218, 0, - 0, 0, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, 67, 3,134, 65, - 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,128, 1, 28, 65, -128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, 0, 1, 30, 0, -128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, - 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, 0, - 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116, -105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 83, 97,118,101, 32, 70, -105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, 0, - 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0, 0, - 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0, 0, - 0, 0, 65,108,108, 32,102,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, - 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,121, -101,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 76, 69, 70, 84, 0, 4, 7, 0, 0, 0, 0, 0, 0, - 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110, -115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115,116,102,105, -108,101,110, 97,109,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117, -101, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97, -109,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0, - 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, 0, 0, 0, 0, - 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110, -110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, - 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 4, 3, 0, 0, 0, 0, 0, - 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, - 3, 0, 0, 0, 0, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, -119,114,105,116,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100, -101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 17, 0, - 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105, -108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, - 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 74, - 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, - 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, - 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, 0, 0, 0, 81, - 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 82, - 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 86, - 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 87, - 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, 0, 0, 0, 89, - 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0,102,100, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, 0, 0, 64, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0,104, 0, - 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,128, 0, - 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, 1,128,133, 0, - 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, 0, 1, 22,192, - 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128,194, 0, 65,193, - 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1,128, 0,156, 64, -128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, 1, 0,134,192, - 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64,195, 1,137,192, -128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105, -111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 2, 0, 0, - 0, 0, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114, -111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108, -111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105, -117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, - 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, - 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, -114,101, 97,100, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 42, 97, 0, 4, 6, 0, - 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, - 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 4, 12, 0, 0, 0, 0, - 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, 0, 0, 95, 0, - 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 96, 0, - 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, - 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, - 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0,100, 0, - 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, 0, 0,101, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 5, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, - 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, 0, 0, 0, 69, 0, 0, 0, 70, - 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, 65,130,137,192, 65,131,137, - 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, - 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, 64, 0, 2,134,128,195, 0,198, -192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, 64, 68, 1, 22, 64, 0,128, 23, -128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,128, 2,128, 5,193, 4, 0, 65, - 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, 65, 0, 1, 22, 0, 1,128, 5, - 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, 1,128, 1, 28, 65, 0, 1, 30, - 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, - 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, - 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, - 0, 0, 0, 0, 0, 0, 79, 80, 69, 78, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, -116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 32, - 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, - 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 42, 46, 42, 0, 4, 11, 0, 0, 0, 0, - 0, 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, 0, 0, 0, - 0, 0, 0, 65,108,108, 32, 70,105,108,101,115, 0, 4, 9, 0, 0, 0, 0, 0, - 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, - 78, 79, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117,112, 0, 4, 7, - 0, 0, 0, 0, 0, 0, 0, 67, 69, 78, 84, 69, 82, 0, 4, 7, 0, 0, 0, 0, - 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,118, - 97,108,117,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111, -121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 4, 2, 0, 0, 0, 0, - 0, 0, 0, 49, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0, - 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32,108,111, 97,100, - 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115, -111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 70,105,108, -101, 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, - 0, 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,108, 0, 0, 0,108, 0, - 0, 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, - 0, 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, - 0, 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, 0, 0,114, 0, - 0, 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, - 0, 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, 0,119, 0, 0, 0,119, 0, - 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,121, 0, 0, 0, 4, 0, - 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 36, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,102,100, 0, 9, 0, 0, 0, 36, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 16, 0, 0, - 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109, -101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,166, 0, 0, 0,170, 0, 0, 0, 0, 5, 0, 7, 8, 0, 0, 0, 23, 0, - 64, 1, 22, 0, 1,128, 69, 65, 0, 0, 70,129,192, 2, 70,193,192, 2,128, 1, -128, 0, 92, 65, 0, 1, 30, 0,128, 0, 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, - 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, - 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 8, 0, 0, 0,167, - 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, - 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, - 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0,110,117,109, 0, 0, 0, 0, 0, 7, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 7, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, - 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, - 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 17, 0, 0, - 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, - 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, - 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, - 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, - 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, - 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, - 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, - 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, - 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, - 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, - 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, - 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, - 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, - 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, - 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, - 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, - 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 58, 0, 0, - 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 58, 0, 0, 0, 72, 0, 0, - 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 72, 0, 0, 0, 94, 0, 0, - 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0,106, 0, 0, 0,106, 0, 0, - 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0,123, 0, 0, 0,123, 0, 0, - 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, - 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,127, 0, 0, 0,127, 0, 0, - 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,129, 0, 0, - 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,130, 0, 0, 0,130, 0, 0, - 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, - 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,132, 0, 0, 0,132, 0, 0, - 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,134, 0, 0, 0,134, 0, 0, - 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,135, 0, 0, - 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0,136, 0, 0, 0,136, 0, 0, - 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0,141, 0, 0, 0,141, 0, 0, - 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,143, 0, 0, 0,143, 0, 0, - 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0,147, 0, 0, - 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, - 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0,149, 0, 0, 0,144, 0, 0, - 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, - 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, - 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, - 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, - 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0,154, 0, 0, 0,154, 0, 0, - 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0,155, 0, 0, 0,159, 0, 0, - 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, - 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,161, 0, 0, 0,161, 0, 0, - 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,163, 0, 0, - 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,164, 0, 0, 0,159, 0, 0, - 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0,170, 0, 0, - 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, - 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0,178, 0, 0, - 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,179, 0, 0, - 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,180, 0, 0, - 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,181, 0, 0, - 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0,183, 0, 0, 0,183, 0, 0, - 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, - 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, - 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0,182, 0, 0, 0,189, 0, 0, - 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,190, 0, 0, - 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, - 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0,192, 0, 0, 0,177, 0, 0, - 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,194, 0, 0, - 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, - 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, - 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,201, 0, 0, 0,201, 0, 0, - 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, - 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, - 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - - if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_le64.lo")==0) lua_call(L, 0, 0); -} diff --git a/iup/srcconsole/loh/console5_le64w.loh b/iup/srcconsole/loh/console5_le64w.loh deleted file mode 100755 index ff23f43..0000000 --- a/iup/srcconsole/loh/console5_le64w.loh +++ /dev/null @@ -1,525 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - if (luaL_loadfile(L,"../obj/iuplua51/console5_le64w.lo")==0) lua_call(L, 0, 0); -*/ -/* ../obj/iuplua51/console5_le64w.lo */ -static const unsigned char B1[]={ - 27, 76,117, 97, 81, 0, 1, 4, 8, 4, 8, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 64, 99,111,110,115,111,108,101, 53, 46,108,117, 97, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 15, 90, 1, 0, 0, 5, 0, 0, 0, 65, 64, 0, 0, 28, 64, - 0, 1, 5,128, 0, 0, 74, 0, 0, 0, 9, 64,128,129, 5,128, 0, 0, 6,192, - 64, 0,100, 0, 0, 0, 9, 64, 0,130, 5,128, 0, 0, 6,192, 64, 0,100, 64, - 0, 0, 9, 64,128,130, 5,128, 0, 0, 6,192, 64, 0, 9,192, 65,131, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,194, 0,138,192, 0, 0,137,192, - 66,133,137, 64, 67,134,137,192, 67,135, 92,128, 0, 1, 9, 64, 0,132, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,128, 0, 0,137,192, - 68,137,137, 0, 69,134, 92,128, 0, 1, 9, 64, 0,136, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70, 64,196, 0,138,192, 0, 0,137,128, 69,137,137, 0, - 69,134,137,192, 69,133, 92,128, 0, 1, 9, 64,128,138, 5,128, 0, 0, 6,192, - 64, 0, 6, 0, 66, 0,100,128, 0, 0, 9, 64, 0,140, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, - 71,137,137,128,199,142, 92,128, 0, 1, 9, 64,128,140, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,192, 0, 0,137,192, 70,134,137, 0, - 72,137,137, 64,200,142, 92,128, 0, 1, 9, 64,128,143, 5,128, 0, 0, 6,192, - 64, 0, 69,128, 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137,192, - 72,137, 92,128, 0, 1, 9, 64, 0,145, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70,128,198, 0,138,128, 0, 0,137,192, 70,134,137, 64, 73,137, 92,128, - 0, 1, 9, 64, 0,146, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128, -198, 0,138,128, 0, 0,137,192, 70,134,137,192, 73,137, 92,128, 0, 1, 9, 64, - 0,147, 5,128, 0, 0, 6,192, 64, 0, 6,128, 73, 0,100,192, 0, 0, 9, 64, -128,142, 5,128, 0, 0, 6,192, 64, 0, 6, 0, 73, 0,100, 0, 1, 0, 9, 64, -128,142, 5,128, 0, 0, 6,192, 64, 0,100, 64, 1, 0, 9, 64, 0,148, 5,128, - 0, 0, 6,192, 64, 0, 6,128, 72, 0,100,128, 1, 0, 9, 64,128,142, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70,128,202, 0,138,192,128, 0,197,128, - 0, 0,198,192,202, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 1,203, 2,138, 65, - 0, 1,197,129, 0, 0,198,129,202, 3, 10,130,128, 2, 69,130, 0, 0, 70,194, -192, 4, 70,130,200, 4,133,130, 0, 0,134,194, 64, 5,134,130, 73, 5,197,130, - 0, 0,198,194,192, 5,198, 2,201, 5, 5,131, 0, 0, 6,195, 64, 6, 6,195, - 71, 6, 69,131, 0, 0, 70,195,192, 6, 70, 67,198, 6, 9,130,203,150, 9, 2, -204,151, 34, 66,128, 2,220,129, 0, 1, 5,130, 0, 0, 6,130, 74, 4, 74, 66, -128, 1,133,130, 0, 0,134,194, 64, 5,134, 66, 69, 5,197,130, 0, 0,198,194, -192, 5,198, 2,194, 5, 5,131, 0, 0, 6,195, 64, 6, 6, 3, 68, 6, 73,130, -204,152, 98, 66,128, 1, 28,130, 0, 1,137,193,204,152,162, 65, 0, 1, 92,129, - 0, 1, 9, 1, 77,137, 34, 65,128, 0,220,128, 0, 1,137, 64,205,152,137,128, -205,150,137,192,205,151,162, 64,128, 0, 92,128, 0, 1, 9, 64,128,148, 5,128, - 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 64,206, 0,138, 0,128, 0,197,128, - 0, 0,198,128,206, 1, 10, 65,128, 0, 69,129, 0, 0, 70, 65,206, 2,138, 1, - 0, 0,197,129, 0, 0,198,193,206, 3, 10,130, 0, 0, 9, 2, 79,137, 9, 66, -207,142,220, 1, 0, 1,162, 65, 0, 0, 92,129, 0, 1, 9,129, 79,137, 34, 65, -128, 0,220,128, 0, 1, 5,129, 0, 0, 6,129, 78, 2, 74, 65,128, 0,133,129, - 0, 0,134, 65, 78, 3,202, 1,128, 0, 5,130, 0, 0, 6,194, 78, 4, 74,130, - 0, 0, 73,194, 79,137,133,130, 0, 0,134,194, 64, 5,134, 66, 65, 5, 73,130, -130,142, 28,130, 0, 1, 69,130, 0, 0, 70,194,206, 4,138,130, 0, 0,137, 2, - 80,137,137, 66,208,142, 92, 2, 0, 1,226, 65, 0, 0,156,129, 0, 1, 73,129, - 80,137, 98, 65,128, 0, 28, 1, 0, 1,162, 64, 0, 0, 92,128, 0, 1, 9, 64, - 0,156, 5,128, 0, 0, 6,192, 64, 0, 69,128, 0, 0, 70, 0,209, 0,138, 64, -129, 0,197,128, 0, 0,198,192,192, 1,198, 64,202, 1,137, 64, 81,137, 5,129, - 0, 0, 6,193, 64, 2, 6, 1, 78, 2,137, 0,129,156,137,192, 66,163, 5,129, - 0, 0, 6,193, 64, 2, 6, 65, 70, 2,137, 0,129,163,137, 64, 79,164,162, 64, -128, 0, 92,128, 0, 1, 9, 64,128,161, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0,100,192, 1, 0, 9, 64,128,164, 5,128, 0, 0, 6,192, 64, 0, 69,128, - 0, 0, 70, 0,209, 0,138, 0,129, 0,197,128, 0, 0,198,128,202, 1, 10,129, - 0, 3, 69,129, 0, 0, 70, 65,196, 2,138, 65, 0, 0,137, 65, 81,137, 92,129, - 0, 1,133,129, 0, 0,134,193, 82, 3,202, 65, 0, 0,201,193, 77,134,156,129, - 0, 1,197,129, 0, 0,198,193,210, 3, 10, 66, 0, 0, 9,194, 77,134,220,129, - 0, 1, 5,130, 0, 0, 6,194, 74, 4, 74, 2, 0, 0,133,130, 0, 0,134,130, - 74, 5,202, 2,128, 0, 5,131, 0, 0, 6, 67, 68, 6, 74, 67, 0, 0, 73, 3, - 83,137, 28,131, 0, 1, 69,131, 0, 0, 70, 67,196, 6,138, 67, 0, 0,137, 67, - 83,137, 92, 3, 0, 1,226, 66, 0, 0,156, 2, 0, 1, 98, 66, 0, 0, 28,130, - 0, 1, 69,130, 0, 0, 70,194,210, 4,138, 66, 0, 0,137,194, 77,134, 92,130, - 0, 1,133,130, 0, 0,134,130, 70, 5,202,194, 0, 0,201,130, 83,137,201, 66, -207,142,201,194, 83,134,156,130, 0, 1, 9, 1,212,150, 9, 65,205,152, 34, 65, - 0, 3,220,128, 0, 1,137,128,212,168,137,128,212,169,137,128, 84,170,137, 64, - 85,137,162, 64,128, 0, 92,128, 0, 1, 9, 64, 0,165, 5,128, 0, 0, 6,192, - 64, 0, 6,192, 80, 0, 11,128, 85, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, - 85, 0, 69,128, 0, 0, 70,192,192, 0, 70, 0,194, 0, 28, 64, 0, 1, 5,128, - 0, 0, 6, 0, 86, 0, 28, 64,128, 0, 5,128, 0, 0, 6,192, 64, 0, 6,192, - 80, 0, 11, 64, 86, 0, 28, 64, 0, 1, 5,128, 0, 0, 6,192, 64, 0, 6,128, - 82, 0, 11, 64, 86, 0, 28, 64, 0, 1, 30, 0,128, 0, 90, 0, 0, 0, 4, 8, - 0, 0, 0, 0, 0, 0, 0,114,101,113,117,105,114,101, 0, 4, 7, 0, 0, 0, - 0, 0, 0, 0,105,117,112,108,117, 97, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, -105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, - 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116,116, 97, 98,108,101, - 0, 4, 19, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, 95,118,101,114,115, -105,111,110, 95,105,110,102,111, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97, -115,116,102,105,108,101,110, 97,109,101, 0, 0, 4, 7, 0, 0, 0, 0, 0, 0, - 0,109,108, 67,111,100,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0,109,117,108, -116,105,108,105,110,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,101,120,112, 97, -110,100, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 89, 69, 83, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0,115,105,122,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 50, - 48, 48,120, 49, 50, 48, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,111,110,116, - 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 48, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, - 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,108, 97, - 98,101,108, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 4, - 4, 0, 0, 0, 0, 0, 0, 0, 48, 58, 48, 0, 4, 4, 0, 0, 0, 0, 0, 0, - 0, 53, 48,120, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108, -101, 78, 97,109,101, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 11, 0, 0, - 0, 0, 0, 0, 0, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 4, 9, 0, 0, - 0, 0, 0, 0, 0, 99, 97,114,101,116, 95, 99, 98, 0, 4, 11, 0, 0, 0, 0, - 0, 0, 0, 98,117,116, 69,120,101, 99,117,116,101, 0, 4, 7, 0, 0, 0, 0, - 0, 0, 0, 98,117,116,116,111,110, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, - 48,120, 49, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 69,120,101, 99,117,116, -101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 39, - 0, 0, 0, 0, 0, 0, 0,105,117,112, 46,100,111,115,116,114,105,110,103, 40, -105,117,112, 46, 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, - 97,108,117,101, 41, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 98,117,116, 67,108, -101, 97,114, 67,111,109,109, 97,110,100,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, - 0, 67,108,101, 97,114, 0, 4, 96, 0, 0, 0, 0, 0, 0, 0,105,117,112, 46, - 99,111,110,115,111,108,101, 46,109,108, 67,111,100,101, 46,118, 97,108,117,101, - 61, 39, 39, 32, 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 98,108, - 70,105,108,101, 78, 97,109,101, 46,116,105,116,108,101, 32, 61, 32, 39, 39, 32, - 32,105,117,112, 46, 99,111,110,115,111,108,101, 46,108, 97,115,116,102,105,108, -101,110, 97,109,101, 32, 61, 32,110,105,108, 0, 4, 12, 0, 0, 0, 0, 0, 0, - 0, 98,117,116, 76,111, 97,100, 70,105,108,101, 0, 4, 8, 0, 0, 0, 0, 0, - 0, 0, 76,111, 97,100, 46, 46, 46, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 98, -117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, - 0, 0, 83, 97,118,101, 32, 65,115, 46, 46, 46, 0, 4, 12, 0, 0, 0, 0, 0, - 0, 0, 98,117,116, 83, 97,118,101, 70,105,108,101, 0, 4, 5, 0, 0, 0, 0, - 0, 0, 0, 83, 97,118,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97, -100, 70,105,108,101, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,118, 98,120, 67,111, -110,115,111,108,101, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,118, 98,111,120, 0, - 4, 6, 0, 0, 0, 0, 0, 0, 0,102,114, 97,109,101, 0, 4, 5, 0, 0, 0, - 0, 0, 0, 0,104, 98,111,120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, 97, -114,103,105,110, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 48,120, 48, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0,103, 97,112, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, - 49, 48, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 97,108,105,103,110,109,101,110, -116, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 65, 82, 73, 71, 72, 84, 0, 4, 5, - 0, 0, 0, 0, 0, 0, 0, 65, 84, 79, 80, 0, 4, 9, 0, 0, 0, 0, 0, 0, - 0, 67,111,109,109, 97,110,100,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 65, - 67, 69, 78, 84, 69, 82, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 53,120, 53, 0, - 4, 2, 0, 0, 0, 0, 0, 0, 0, 53, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, -109,110,117, 77, 97,105,110, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,109,101,110, -117, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,115,117, 98,109,101,110,117, 0, 4, - 5, 0, 0, 0, 0, 0, 0, 0,105,116,101,109, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 69,120,105,116, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0,114,101,116,117, -114,110, 32,105,117,112, 46, 67, 76, 79, 83, 69, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0, 70,105,108,101, 0, 4, 22, 0, 0, 0, 0, 0, 0, 0, 80,114,105,110, -116, 32, 86,101,114,115,105,111,110, 32, 73,110,102,111, 46, 46, 46, 0, 4, 9, - 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 46, 46, 46, 0, 4, 51, 0, 0, - 0, 0, 0, 0, 0,105,117,112, 46, 99,111,110,115,111,108,101, 46,100,108,103, - 65, 98,111,117,116, 58,112,111,112,117,112, 40,105,117,112, 46, 67, 69, 78, 84, - 69, 82, 44, 32,105,117,112, 46, 67, 69, 78, 84, 69, 82, 41, 0, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 72,101,108,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100, -108,103, 77, 97,105,110, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108, -111,103, 0, 4, 15, 0, 0, 0, 0, 0, 0, 0, 73,117,112, 76,117, 97, 32, 67, -111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,114, 97,103, -100,114,111,112, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115, -101, 95, 99, 98, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,100,114,111,112,102,105, -108,101,115, 95, 99, 98, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,100,108,103, 65, - 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,102,105,108,108, 0, 4, - 16, 0, 0, 0, 0, 0, 0, 0, 84,101, 99,103,114, 97,102, 47, 80, 85, 67, 45, - 82,105,111, 0, 4, 23, 0, 0, 0, 0, 0, 0, 0,105,117,112, 64,116,101, 99, -103,114, 97,102, 46,112,117, 99, 45,114,105,111, 46, 98,114, 0, 4, 3, 0, 0, - 0, 0, 0, 0, 0, 79, 75, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 53, 48, 88, - 50, 48, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 49, 48,120, 49, 48, 0, 4, 7, - 0, 0, 0, 0, 0, 0, 0,109, 97,120, 98,111,120, 0, 4, 3, 0, 0, 0, 0, - 0, 0, 0, 78, 79, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,105,110, 98,111, -120, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,114,101,115,105,122,101, 0, 4, 6, - 0, 0, 0, 0, 0, 0, 0, 65, 98,111,117,116, 0, 4, 5, 0, 0, 0, 0, 0, - 0, 0,115,104,111,119, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 83,101,116, 70, -111, 99,117,115, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 77, 97,105,110, 76,111, -111,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116,114,111,121, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, - 0, 1, 0, 8, 30, 0, 0, 0, 69, 0, 0, 0,128, 0, 0, 0,195, 0,128, 1, - 92,192,128, 1,197, 64, 0, 0, 1,129, 0, 0,220, 64, 0, 1, 87,192,192, 0, - 22, 0, 4,128,197, 64, 0, 0, 5, 1, 1, 0, 64, 1,128, 0, 28,129, 0, 1, - 65, 65, 1, 0,133, 1, 1, 0,192, 1, 0, 1,156,129, 0, 1, 21,129, 1, 2, -220, 64, 0, 1,197, 0, 0, 0, 0, 1, 0, 0, 64, 1,128, 0,220,192,128, 1, -128, 0, 0, 2, 64, 0,128, 1, 22, 0,251,127,197, 64, 0, 0, 1,129, 1, 0, -220, 64, 0, 1, 30, 0,128, 0, 7, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, - 0,110,101,120,116, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110,116, - 0, 4, 21, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98, -108,101, 32, 83,116, 97,114,116, 45, 45, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, - 0,116,111,115,116,114,105,110,103, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 61, - 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 45, 45,112,114,105,110,116,116, 97, 98, -108,101, 32, 69,110,100, 45, 45, 0, 0, 0, 0, 0, 30, 0, 0, 0, 8, 0, 0, - 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, - 0, 9, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, - 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, - 0, 11, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, - 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, - 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0,116, 0, 0, 0, 0, 0, 29, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0,110, 0, 4, 0, 0, 0, 29, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0,118, 0, 4, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 5,112, - 0, 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 22, 0, 2,128, 5, 64, 0, 0, 65, -128, 0, 0,133, 0, 0, 0,134,192, 64, 1,193, 0, 1, 0, 5, 1, 0, 0, 6, - 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5,128, 1, 0, 26, 0, 0, 0, 22, - 0, 2,128, 5, 64, 0, 0, 65,192, 1, 0,133,128, 1, 0,134,192, 64, 1,193, - 0, 1, 0, 5,129, 1, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, - 64, 0, 0, 65, 0, 2, 0,133, 64, 2, 0,134,192, 64, 1,193, 0, 1, 0, 5, - 65, 2, 0, 6, 65, 65, 2, 85, 0,129, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65, -128, 2, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 2, 0, 28, 64, 0, 1, 5, - 64, 0, 0, 65, 0, 3, 0,133, 64, 2, 0,134, 64, 67, 1,193,128, 3, 0,156, -128, 0, 1, 85,128,128, 0, 28, 64, 0, 1, 5, 64, 0, 0, 65,192, 3, 0,133, - 64, 2, 0,134, 64, 67, 1,193, 0, 4, 0,156,128, 0, 1, 85,128,128, 0, 28, - 64, 0, 1, 5, 64, 2, 0, 6, 64, 67, 0, 65, 64, 4, 0, 28,128, 0, 1, 26, - 0, 0, 0, 22,192, 0,128, 69, 64, 0, 0,129,128, 4, 0,192, 0, 0, 0, 92, - 64,128, 1, 69, 64, 0, 0,129,192, 4, 0,197, 64, 2, 0,198, 64,195, 1, 1, - 1, 5, 0,220,128, 0, 1,149,192, 0, 1, 92, 64, 0, 1, 69, 64, 0, 0,129, - 64, 5, 0,197, 64, 2, 0,198, 64,195, 1, 1,129, 5, 0,220,128, 0, 1,149, -192, 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,197, 0, 90, 0, 0, 0, 22, - 64, 1,128, 69, 64, 0, 0,129, 0, 6, 0,197, 64, 2, 0,198,192,197, 1,149, -192, 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70, 64,198, 0, 90, 0, 0, 0, 22, - 64, 1,128, 69, 64, 0, 0,129,128, 6, 0,197, 64, 2, 0,198, 64,198, 1,149, -192, 0, 1, 92, 64, 0, 1, 69, 64, 2, 0, 70,192,198, 0, 90, 0, 0, 0, 22, - 64, 1,128, 69, 64, 0, 0,129, 0, 7, 0,197, 64, 2, 0,198,192,198, 1,149, -192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 29, 0, 0, 0, 4, 3, 0, 0, 0, - 0, 0, 0, 0,105,109, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,114,105,110, -116, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 73, 77, 32, 0, 4, 9, 0, 0, 0, - 0, 0, 0, 0, 95, 86, 69, 82, 83, 73, 79, 78, 0, 4, 3, 0, 0, 0, 0, 0, - 0, 0, 32, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 95, 67, 79, 80, 89, 82, - 73, 71, 72, 84, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 99,100, 0, 4, 4, 0, - 0, 0, 0, 0, 0, 0, 67, 68, 32, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 73, - 85, 80, 32, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 73, 85, 80, 32, - 73,110,102,111, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116, -101,109, 58, 32, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 71,101,116, 71,108,111, - 98, 97,108, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, 84, 69, 77, 0, - 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83,121,115,116,101,109, 32, 86,101, -114,115,105,111,110, 58, 32, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, 83, 89, 83, - 84, 69, 77, 86, 69, 82, 83, 73, 79, 78, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0, - 77, 79, 84, 73, 70, 86, 69, 82, 83, 73, 79, 78, 0, 4, 18, 0, 0, 0, 0, 0, - 0, 0, 32, 32, 77,111,116,105,102, 32, 86,101,114,115,105,111,110, 58, 32, 0, - 4, 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101,101,110, 32, 83,105, -122,101, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 83, 67, 82, 69, 69, 78, - 83, 73, 90, 69, 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 32, 32, 83, 99,114,101, -101,110, 32, 68,101,112,116,104, 58, 32, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0, - 83, 67, 82, 69, 69, 78, 68, 69, 80, 84, 72, 0, 4, 10, 0, 0, 0, 0, 0, 0, - 0, 71, 76, 95, 86, 69, 78, 68, 79, 82, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 79,112,101,110, 71, 76, 32, 86,101,110,100,111,114, 58, 32, 0, 4, 12, - 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, 82, 69, 78, 68, 69, 82, 69, 82, 0, 4, - 20, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79,112,101,110, 71, 76, 32, 82,101,110, -100,101,114,101,114, 58, 32, 0, 4, 11, 0, 0, 0, 0, 0, 0, 0, 71, 76, 95, - 86, 69, 82, 83, 73, 79, 78, 0, 4, 19, 0, 0, 0, 0, 0, 0, 0, 32, 32, 79, -112,101,110, 71, 76, 32, 86,101,114,115,105,111,110, 58, 32, 0, 0, 0, 0, 0, -112, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, - 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, - 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, - 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, - 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, - 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, - 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, - 23, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, - 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, - 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, - 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, - 26, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, - 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, 29, 0, 0, 0, - 29, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, - 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, - 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, - 32, 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, - 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, 34, 0, 0, 0, - 34, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, - 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, - 35, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, - 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0, - 36, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0,109,111,116, 0, 59, 0, 0, 0,111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 3, 0, 7, - 9, 0, 0, 0,197, 0, 0, 0,198, 64,192, 1,198,128,192, 1, 0, 1,128, 0, - 65, 1, 1, 0,128, 1, 0, 1, 21,129, 1, 2,201, 0,129,129, 30, 0,128, 0, - 5, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, - 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 12, 0, 0, 0, 0, - 0, 0, 0,108, 98,108, 80,111,115,105,116,105,111,110, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,116,105,116,108,101, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 58, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, - 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, - 0, 48, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108, -102, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108,105, -110, 0, 0, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 99,111, -108, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, 0, 1, 0, 4, 39, 0, 0, 0, 69, 0, - 0, 0, 70, 64,192, 0, 70,128,192, 0, 23,192,192, 0, 22, 64, 1,128, 69, 0, - 0, 0, 70, 64,192, 0, 70, 0,193, 0, 75, 64,193, 0, 92, 64, 0, 1, 22,128, - 6,128, 69,192, 1, 0, 70, 0,194, 0,133, 0, 0, 0,134, 64, 64, 1,134,128, - 64, 1,193, 64, 2, 0, 92,128,128, 1, 71,128, 1, 0, 69,128, 1, 0, 87,192, -192, 0, 22,128, 2,128, 69,128, 1, 0, 75,128,194, 0,197, 0, 0, 0,198, 64, -192, 1,198,192,194, 1,198, 0,195, 1, 92, 64,128, 1, 69,128, 1, 0, 75, 64, -195, 0, 92, 64, 0, 1, 22, 0, 1,128, 69,128, 3, 0,129,192, 3, 0,197, 0, - 4, 0,149,192, 0, 1, 92, 64, 0, 1, 30, 0,128, 0, 17, 0, 0, 0, 4, 4, - 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, - 99,111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97,115, -116,102,105,108,101,110, 97,109,101, 0, 0, 4, 14, 0, 0, 0, 0, 0, 0, 0, - 98,117,116, 83, 97,118,101, 97,115, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, - 0, 0, 0, 97, 99,116,105,111,110, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,110, -101,119,102,105,108,101, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,105,111, 0, 4, - 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, 4, 3, 0, 0, 0, 0, 0, - 0, 0,119, 43, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,119,114,105,116,101, 0, - 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, 4, 6, 0, 0, - 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, - 99,108,111,115,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,101,114,114,111,114, - 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118, -101, 32,102,105,108,101, 32, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108, -101,110, 97,109,101, 0, 0, 0, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 59, 0, - 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 60, 0, - 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 60, 0, 0, 0, 62, 0, - 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 62, 0, - 0, 0, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, - 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 65, 0, 0, 0, 65, 0, - 0, 0, 65, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, 0, 0, 67, 0, - 0, 0, 67, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, - 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, 0, 1, 0, 7, 65, - 0, 0, 0, 69, 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, - 64, 65,130,137,192, 65,131,137, 64, 66,132,197,192, 2, 0,137,192, 0,133, 92, -128, 0, 1,139, 0,195, 0, 5, 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, - 65,195, 2,156, 64, 0, 2,134,128,195, 0,197, 0, 0, 0,198,192,195, 1, 6, - 65,196, 0,201, 0, 1,136,197, 0, 0, 0,198,192,195, 1,198,128,196, 1, 5, - 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2,201, 0, 1,130,203,192,196, 0,220, - 64, 0, 1, 87, 0, 69, 1, 22,192, 7,128,197, 0, 0, 0,198,192,195, 1,198, - 0,196, 1, 23, 64,197, 1, 22, 0, 1,128,197,128, 5, 0, 1,193, 5, 0, 69, - 1, 6, 0, 21, 65, 1, 2,220, 64, 0, 1,197, 64, 6, 0,198,128,198, 1, 5, - 1, 0, 0, 6,193, 67, 2, 6, 1, 68, 2, 65,193, 6, 0,220,128,128, 1, 87, - 64,197, 1, 22, 64, 2,128, 11, 1,199, 1,133, 1, 0, 0,134,193, 67, 3,134, - 65, 71, 3,134, 65, 68, 3, 28, 65,128, 1, 11,129,199, 1,128, 1,128, 1, 28, - 65,128, 1, 22,128, 0,128, 5,129, 5, 0, 65,193, 7, 0, 28, 65, 0, 1, 30, - 0,128, 0, 32, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105,117,112, 0, - 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, 0, 4, 11, 0, - 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, 0, 4, 5, 0, - 0, 0, 0, 0, 0, 0, 83, 65, 86, 69, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, -116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 83, 97,118,101, 32, - 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114, - 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 42, 46,119,108,117, 97, 0, 4, 11, 0, - 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,105,110,102,111, 0, 4, 10, 0, - 0, 0, 0, 0, 0, 0, 76,117, 97, 32,102,105,108,101,115, 0, 4, 9, 0, 0, - 0, 0, 0, 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0,121,101,115, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112,111,112,117, -112, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 76, 69, 70, 84, 0, 4, 7, 0, 0, - 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 8, 0, 0, 0, 0, 0, 0, - 0, 99,111,110,115,111,108,101, 0, 4, 13, 0, 0, 0, 0, 0, 0, 0,108, 97, -115,116,102,105,108,101,110, 97,109,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, -118, 97,108,117,101, 0, 4, 12, 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105, -108,101, 78, 97,109,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,100,101,115,116, -114,111,121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, 0, 0, 4, 6, 0, - 0, 0, 0, 0, 0, 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, - 0, 67, 97,110,110,111,116, 32, 83, 97,118,101, 32,102,105,108,101, 32, 0, 4, - 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 4, 3, 0, - 0, 0, 0, 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112, -101,110, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0,119, 43, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,119,114,105,116,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109, -108, 67,111,100,101, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, - 0, 4, 17, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110,111,116, 32, 83, 97,118, -101, 32,102,105,108,101, 0, 0, 0, 0, 0, 65, 0, 0, 0, 73, 0, 0, 0, 73, - 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 74, - 0, 0, 0, 74, 0, 0, 0, 74, 0, 0, 0, 73, 0, 0, 0, 75, 0, 0, 0, 75, - 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 75, 0, 0, 0, 76, - 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 78, - 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, 0, 0, 0, 78, - 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 80, - 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, 0, 0, 0, 81, - 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, 0, 0, 0, 82, - 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 84, - 0, 0, 0, 84, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 85, 0, 0, 0, 86, - 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, 0, 0, 0, 86, - 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 87, 0, 0, 0, 89, - 0, 0, 0, 89, 0, 0, 0, 89, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 5, - 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 64, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0,102,100, 0, 10, 0, 0, 0, 64, 0, 0, 0, 7, - 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 17, 0, 0, 0, 64, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105,108,101, 0, 49, 0, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, - 0, 0,104, 0, 0, 0, 0, 1, 0, 6, 34, 0, 0, 0, 69, 0, 0, 0, 70, 64, -192, 0,128, 0, 0, 0,193,128, 0, 0, 92,128,128, 1, 23,192,192, 0, 22, 64, - 1,128,133, 0, 1, 0,193, 64, 1, 0, 0, 1, 0, 0,213, 0,129, 1,156, 64, - 0, 1, 22,192, 4,128,133,128, 1, 0,134,192, 65, 1,134, 0, 66, 1,203,128, -194, 0, 65,193, 2, 0,220,128,128, 1,137,192,128,132,139, 0,195, 0, 0, 1, -128, 0,156, 64,128, 1,133,128, 1, 0,134,192, 65, 1,137, 0,128,134,133,128, - 1, 0,134,192, 65, 1,134,128, 67, 1,197,128, 1, 0,198,192,193, 1,198, 64, -195, 1,137,192,128,135, 30, 0,128, 0, 16, 0, 0, 0, 4, 3, 0, 0, 0, 0, - 0, 0, 0,105,111, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0,111,112,101,110, 0, - 4, 2, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 4, 6, 0, 0, 0, 0, 0, 0, - 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110, -111,116, 32,108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 4, 0, 0, 0, 0, - 0, 0, 0,105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115, -111,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,109,108, 67,111,100,101, 0, - 4, 6, 0, 0, 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 5, 0, 0, 0, - 0, 0, 0, 0,114,101, 97,100, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 42, 97, - 0, 4, 6, 0, 0, 0, 0, 0, 0, 0, 99,108,111,115,101, 0, 4, 13, 0, 0, - 0, 0, 0, 0, 0,108, 97,115,116,102,105,108,101,110, 97,109,101, 0, 4, 12, - 0, 0, 0, 0, 0, 0, 0,108, 98,108, 70,105,108,101, 78, 97,109,101, 0, 4, - 6, 0, 0, 0, 0, 0, 0, 0,116,105,116,108,101, 0, 0, 0, 0, 0, 34, 0, - 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, 0, 0, 95, 0, - 0, 0, 96, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, - 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, 99, 0, 0, 0, 99, 0, - 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, 0, 0, 99, 0, - 0, 0,100, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0,101, 0, 0, 0,101, 0, - 0, 0,101, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, - 0, 0,102, 0, 0, 0,102, 0, 0, 0,102, 0, 0, 0,104, 0, 0, 0, 2, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,110,101,119,102,105, -108,101, 0, 5, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0, 0, 1, 0, 7, 37, 0, 0, 0, 69, - 0, 0, 0, 70, 64,192, 0,138, 64, 1, 0,137,192, 64,129,137, 64, 65,130,137, -192, 65,131,137, 64, 66,132,137,192, 66,133, 92,128, 0, 1,139, 0,195, 0, 5, - 1, 0, 0, 6, 65, 67, 2, 69, 1, 0, 0, 70, 65,195, 2,156, 64, 0, 2,134, -128,195, 0,198,192,195, 0, 11, 1,196, 0, 28, 65, 0, 1, 87, 64, 68, 1, 22, - 64, 0,128, 23,128, 68, 1, 22,192, 1,128, 23,128, 68, 1, 22,128, 2,128, 5, -193, 4, 0, 65, 1, 5, 0,128, 1,128, 1, 85,129,129, 2, 28, 65, 0, 1, 22, - 0, 1,128, 5, 1, 0, 0, 6, 65, 69, 2, 6,129, 69, 2, 64, 1,128, 1, 28, - 65, 0, 1, 30, 0,128, 0, 23, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, -105,117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,100,108,103, - 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,100,105, 97,108,111,103,116,121,112,101, - 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 79, 80, 69, 78, 0, 4, 6, 0, 0, 0, - 0, 0, 0, 0,116,105,116,108,101, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76, -111, 97,100, 32, 70,105,108,101, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,102,105, -108,116,101,114, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 42, 46,119,108,117, 97, - 0, 4, 11, 0, 0, 0, 0, 0, 0, 0,102,105,108,116,101,114,105,110,102,111, - 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 76,117, 97, 32, 70,105,108,101,115, 0, - 4, 9, 0, 0, 0, 0, 0, 0, 0, 97,108,108,111,119,110,101,119, 0, 4, 3, - 0, 0, 0, 0, 0, 0, 0, 78, 79, 0, 4, 6, 0, 0, 0, 0, 0, 0, 0,112, -111,112,117,112, 0, 4, 7, 0, 0, 0, 0, 0, 0, 0, 67, 69, 78, 84, 69, 82, - 0, 4, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97,116,117,115, 0, 4, 6, 0, - 0, 0, 0, 0, 0, 0,118, 97,108,117,101, 0, 4, 8, 0, 0, 0, 0, 0, 0, - 0,100,101,115,116,114,111,121, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 45, 49, - 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 49, 0, 4, 6, 0, 0, 0, 0, 0, 0, - 0,101,114,114,111,114, 0, 4, 18, 0, 0, 0, 0, 0, 0, 0, 67, 97,110,110, -111,116, 32,108,111, 97,100, 32,102,105,108,101, 32, 0, 4, 8, 0, 0, 0, 0, - 0, 0, 0, 99,111,110,115,111,108,101, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, - 76,111, 97,100, 70,105,108,101, 0, 0, 0, 0, 0, 37, 0, 0, 0,107, 0, 0, - 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,107, 0, 0, 0,108, 0, 0, - 0,108, 0, 0, 0,108, 0, 0, 0,107, 0, 0, 0,109, 0, 0, 0,109, 0, 0, - 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,109, 0, 0, 0,110, 0, 0, - 0,111, 0, 0, 0,112, 0, 0, 0,112, 0, 0, 0,114, 0, 0, 0,114, 0, 0, - 0,114, 0, 0, 0,114, 0, 0, 0,115, 0, 0, 0,115, 0, 0, 0,116, 0, 0, - 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,116, 0, 0, 0,117, 0, 0, - 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, 0,119, 0, 0, - 0,121, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108, -102, 0, 0, 0, 0, 0, 36, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,102,100, - 0, 9, 0, 0, 0, 36, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,115,116, 97, -116,117,115, 0, 16, 0, 0, 0, 36, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, -102,105,108,101,110, 97,109,101, 0, 17, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0,170, 0, 0, 0, 0, 5, 0, - 7, 8, 0, 0, 0, 23, 0, 64, 1, 22, 0, 1,128, 69, 65, 0, 0, 70,129,192, - 2, 70,193,192, 2,128, 1,128, 0, 92, 65, 0, 1, 30, 0,128, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0,105, -117,112, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 99,111,110,115,111,108,101, 0, - 4, 9, 0, 0, 0, 0, 0, 0, 0, 76,111, 97,100, 70,105,108,101, 0, 0, 0, - 0, 0, 8, 0, 0, 0,167, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,168, 0, - 0, 0,168, 0, 0, 0,168, 0, 0, 0,168, 0, 0, 0,170, 0, 0, 0, 5, 0, - 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,115,101,108,102, 0, 0, 0, 0, 0, 7, - 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,102,105,108,101,110, 97,109,101, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,110,117,109, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 90, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 7, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, - 37, 0, 0, 0, 17, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, 41, 0, 0, 0, - 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, - 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, 42, 0, 0, 0, - 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, - 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, - 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, - 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 44, 0, 0, 0, 46, 0, 0, 0, - 46, 0, 0, 0, 46, 0, 0, 0, 48, 0, 0, 0, 46, 0, 0, 0, 50, 0, 0, 0, - 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, 50, 0, 0, 0, - 50, 0, 0, 0, 51, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, - 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, 52, 0, 0, 0, - 52, 0, 0, 0, 53, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, - 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, - 54, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, - 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, - 55, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, - 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, - 56, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 58, 0, 0, 0, 70, 0, 0, 0, - 58, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 92, 0, 0, 0, - 72, 0, 0, 0, 94, 0, 0, 0, 94, 0, 0, 0,104, 0, 0, 0, 94, 0, 0, 0, -106, 0, 0, 0,106, 0, 0, 0,106, 0, 0, 0,121, 0, 0, 0,106, 0, 0, 0, -123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0,123, 0, 0, 0, -125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0, -125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0,125, 0, 0, 0, -125, 0, 0, 0,125, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0,126, 0, 0, 0, -127, 0, 0, 0,127, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, -128, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0, -130, 0, 0, 0,130, 0, 0, 0,125, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0, -131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0, -132, 0, 0, 0,132, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0,133, 0, 0, 0, -134, 0, 0, 0,134, 0, 0, 0,131, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0, -125, 0, 0, 0,135, 0, 0, 0,135, 0, 0, 0,125, 0, 0, 0,136, 0, 0, 0, -136, 0, 0, 0,136, 0, 0, 0,137, 0, 0, 0,124, 0, 0, 0,137, 0, 0, 0, -141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0,141, 0, 0, 0, -143, 0, 0, 0,143, 0, 0, 0,143, 0, 0, 0,145, 0, 0, 0,145, 0, 0, 0, -145, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0,147, 0, 0, 0, -147, 0, 0, 0,147, 0, 0, 0,148, 0, 0, 0,146, 0, 0, 0,148, 0, 0, 0, -149, 0, 0, 0,144, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0, -150, 0, 0, 0,150, 0, 0, 0,150, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0, -152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0,152, 0, 0, 0, -152, 0, 0, 0,152, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0, -153, 0, 0, 0,153, 0, 0, 0,153, 0, 0, 0,154, 0, 0, 0,151, 0, 0, 0, -154, 0, 0, 0,154, 0, 0, 0,150, 0, 0, 0,155, 0, 0, 0,142, 0, 0, 0, -155, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0, -159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0, -161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,161, 0, 0, 0,162, 0, 0, 0, -163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0, -164, 0, 0, 0,159, 0, 0, 0,164, 0, 0, 0,166, 0, 0, 0,166, 0, 0, 0, -166, 0, 0, 0,170, 0, 0, 0,166, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0, -174, 0, 0, 0,174, 0, 0, 0,174, 0, 0, 0,176, 0, 0, 0,176, 0, 0, 0, -176, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0,178, 0, 0, 0, -178, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0,179, 0, 0, 0, -179, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0,180, 0, 0, 0, -180, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,181, 0, 0, 0,183, 0, 0, 0, -183, 0, 0, 0,183, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0,185, 0, 0, 0, -185, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0,186, 0, 0, 0, -186, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,184, 0, 0, 0,188, 0, 0, 0, -182, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0,189, 0, 0, 0, -189, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0, -190, 0, 0, 0,190, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,191, 0, 0, 0, -192, 0, 0, 0,177, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0,193, 0, 0, 0, -193, 0, 0, 0,194, 0, 0, 0,175, 0, 0, 0,194, 0, 0, 0,198, 0, 0, 0, -198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0, -199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0,199, 0, 0, 0, -201, 0, 0, 0,201, 0, 0, 0,201, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0, -203, 0, 0, 0,203, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, -204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0,204, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -}; - - if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/iuplua51/console5_le64w.lo")==0) lua_call(L, 0, 0); -} diff --git a/iup/srcconsole/make_uname.bat b/iup/srcconsole/make_uname.bat index a5b1d9a..a0db110 100755 --- a/iup/srcconsole/make_uname.bat +++ b/iup/srcconsole/make_uname.bat @@ -6,24 +6,26 @@ if "%1"=="vc8_64" goto iupexe64 if "%1"=="all" goto iupexe goto end +REM Must use dll8 so USE_* will use the correct TEC_UNAME + :iupexe32 call tecmake dll8 relink %2 %3 %4 %5 %6 %7 -REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7 goto end :iupexe64 call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7 -REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7 goto end :iupexe call tecmake dll8 relink %2 %3 %4 %5 %6 %7 -REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7 call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7 -REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7 REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7 goto end diff --git a/iup/srccontrols/Makefile b/iup/srccontrols/Makefile index d02bbc3..c928251 100755 --- a/iup/srccontrols/Makefile +++ b/iup/srccontrols/Makefile @@ -3,4 +3,4 @@ do_all: iupcontrols iupcontrols: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srccontrols/color/iup_colorbrowser.c b/iup/srccontrols/color/iup_colorbrowser.c index 82b4a88..51f8a30 100755 --- a/iup/srccontrols/color/iup_colorbrowser.c +++ b/iup/srccontrols/color/iup_colorbrowser.c @@ -681,7 +681,7 @@ static int iColorBrowserKeypress_CB(Ihandle* ih, int c, int press) static char* iColorBrowserGetHSIAttrib(Ihandle* ih) { char* buffer = iupStrGetMemory(100); - sprintf(buffer, "%f %f %f", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity); + sprintf(buffer, "%g %g %g", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity); return buffer; } @@ -781,10 +781,16 @@ static int iColorBrowserMapMethod(Ihandle* ih) static void iColorBrowserUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static int iColorBrowserCreateMethod(Ihandle* ih, void **params) diff --git a/iup/srccontrols/color/iup_colorbrowserdlg.c b/iup/srccontrols/color/iup_colorbrowserdlg.c index 65e4d37..dc52725 100755 --- a/iup/srccontrols/color/iup_colorbrowserdlg.c +++ b/iup/srccontrols/color/iup_colorbrowserdlg.c @@ -158,7 +158,7 @@ static void iColorBrowserDlgBrowserRGB_Update(IcolorDlgData* colordlg_data) static void iColorBrowserDlgBrowserHSI_Update(IcolorDlgData* colordlg_data) { - IupSetfAttribute(colordlg_data->color_browser, "HSI", "%f %f %f", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity); + IupSetfAttribute(colordlg_data->color_browser, "HSI", "%g %g %g", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity); } /*****************************************\ @@ -575,10 +575,16 @@ static int iColorBrowserDlgColorCnvUnMap_CB(Ihandle* ih) IcolorDlgData* colordlg_data = (IcolorDlgData*)iupAttribGetInherit(ih, "_IUP_GC_DATA"); if (colordlg_data->color_cddbuffer) + { cdKillCanvas(colordlg_data->color_cddbuffer); + colordlg_data->color_cddbuffer = NULL; + } if (colordlg_data->color_cdcanvas) + { cdKillCanvas(colordlg_data->color_cdcanvas); + colordlg_data->color_cdcanvas = NULL; + } return IUP_DEFAULT; } diff --git a/iup/srccontrols/config.mak b/iup/srccontrols/config.mak index 394d607..10f11e1 100755 --- a/iup/srccontrols/config.mak +++ b/iup/srccontrols/config.mak @@ -13,7 +13,7 @@ SRCMATRIX = iupmat_key.c iupmat_mark.c iupmat_aux.c iupmat_mem.c iupmat_mouse.c SRCMATRIX := $(addprefix matrix/, $(SRCMATRIX)) SRC = iup_cdutil.c iup_gauge.c iup_cells.c iup_colorbar.c iup_controls.c \ - iup_dial.c iup_oldtabs.c iup_oldval.c iup_oldmask.c \ + iup_dial.c iup_oldmask.c \ $(SRCCOLOR) $(SRCMATRIX) LIBS = iup iupcd diff --git a/iup/srccontrols/iup_cells.c b/iup/srccontrols/iup_cells.c index d9a7fe4..c771d6e 100755 --- a/iup/srccontrols/iup_cells.c +++ b/iup/srccontrols/iup_cells.c @@ -882,10 +882,16 @@ static int iCellsMapMethod(Ihandle* ih) static void iCellsUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static int iCellsCreateMethod(Ihandle* ih, void **params) diff --git a/iup/srccontrols/iup_colorbar.c b/iup/srccontrols/iup_colorbar.c index 72e717c..1cbcd59 100755 --- a/iup/srccontrols/iup_colorbar.c +++ b/iup/srccontrols/iup_colorbar.c @@ -978,10 +978,16 @@ static int iColorbarMapMethod(Ihandle* ih) static void iColorbarUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static int iColorbarCreateMethod(Ihandle* ih, void **params) diff --git a/iup/srccontrols/iup_dial.c b/iup/srccontrols/iup_dial.c index 1dd2d0f..c8c5656 100755 --- a/iup/srccontrols/iup_dial.c +++ b/iup/srccontrols/iup_dial.c @@ -640,7 +640,7 @@ static int iDialWheel_CB(Ihandle* ih, float delta) static char* iDialGetValueAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->angle); + sprintf(str, "%g", ih->data->angle); return str; } @@ -665,7 +665,7 @@ static int iDialSetDensityAttrib(Ihandle* ih, const char* value) static char* iDialGetDensityAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->density); + sprintf(str, "%g", ih->data->density); return str; } @@ -780,10 +780,16 @@ static int iDialMapMethod(Ihandle* ih) static void iDialUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static int iDialCreateMethod(Ihandle* ih, void **params) diff --git a/iup/srccontrols/iup_gauge.c b/iup/srccontrols/iup_gauge.c index 8732eee..300b28e 100755 --- a/iup/srccontrols/iup_gauge.c +++ b/iup/srccontrols/iup_gauge.c @@ -347,10 +347,16 @@ static char* iGaugeGetTextAttrib(Ihandle* ih) static void iGaugeUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static int iGaugeMapMethod(Ihandle* ih) diff --git a/iup/srccontrols/iup_oldmask.c b/iup/srccontrols/iup_oldmask.c index fec10f3..2ec4012 100755 --- a/iup/srccontrols/iup_oldmask.c +++ b/iup/srccontrols/iup_oldmask.c @@ -42,14 +42,14 @@ int iupmaskMatSetInt(Ihandle *ih, int autofill, int min, int max, int lin, int c int iupmaskSetFloat(Ihandle* ih, int autofill, float min, float max) { (void)autofill; - IupSetfAttribute(ih,"MASKFLOAT", "%f:%f", min, max); + IupSetfAttribute(ih,"MASKFLOAT", "%g:%g", min, max); return 1; } int iupmaskMatSetFloat(Ihandle* ih, int autofill, float min, float max, int lin, int col) { (void)autofill; - IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%f:%f", min, max); + IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%g:%g", min, max); return 0; } diff --git a/iup/srccontrols/iup_oldtabs.c b/iup/srccontrols/iup_oldtabs.c index 43b0c57..5ea7f0a 100755 --- a/iup/srccontrols/iup_oldtabs.c +++ b/iup/srccontrols/iup_oldtabs.c @@ -2487,10 +2487,16 @@ static int iTabsMapMethod(Ihandle* ih) static void iTabsUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static void iTabsDestroyMethod(Ihandle* ih) diff --git a/iup/srccontrols/iup_oldval.c b/iup/srccontrols/iup_oldval.c index 50dae8a..9c14c90 100755 --- a/iup/srccontrols/iup_oldval.c +++ b/iup/srccontrols/iup_oldval.c @@ -533,7 +533,7 @@ static char* iValGetTypeAttrib(Ihandle* ih) static char* iValGetValueAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->val); + sprintf(str, "%g", ih->data->val); return str; } @@ -576,7 +576,7 @@ static int iValSetStepAttrib(Ihandle* ih, const char* step) static char* iValGetStepAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->step); + sprintf(str, "%g", ih->data->step); return str; } @@ -590,7 +590,7 @@ static int iValSetPageStepAttrib(Ihandle* ih, const char* pagestep) static char* iValGetPageStepAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->pagestep); + sprintf(str, "%g", ih->data->pagestep); return str; } @@ -605,7 +605,7 @@ static int iValSetMaxAttrib(Ihandle* ih, const char* max) static char* iValGetMaxAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->vmax); + sprintf(str, "%g", ih->data->vmax); return str; } @@ -620,7 +620,7 @@ static int iValSetMinAttrib(Ihandle* ih, const char* min) static char* iValGetMinAttrib(Ihandle* ih) { char* str = iupStrGetMemory(20); - sprintf(str, "%f", ih->data->vmin); + sprintf(str, "%g", ih->data->vmin); return str; } @@ -719,10 +719,16 @@ static int iValMapMethod(Ihandle* ih) static void iValUnMapMethod(Ihandle* ih) { if (ih->data->cddbuffer) + { cdKillCanvas(ih->data->cddbuffer); + ih->data->cddbuffer = NULL; + } if (ih->data->cdcanvas) + { cdKillCanvas(ih->data->cdcanvas); + ih->data->cdcanvas = NULL; + } } static void iValDestroyMethod(Ihandle* ih) diff --git a/iup/srccontrols/matrix/iupmat_aux.c b/iup/srccontrols/matrix/iupmat_aux.c index f8b85bb..1a8df57 100755 --- a/iup/srccontrols/matrix/iupmat_aux.c +++ b/iup/srccontrols/matrix/iupmat_aux.c @@ -24,16 +24,11 @@ #include "iupmat_getset.h" -static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m) +int iupMatrixAuxIsFullVisibleLast(ImatLinColData *p) { int i, sum = 0; - ImatLinColData *p; - - if (m == IMAT_PROCESS_LIN) - p = &(ih->data->lines); - else - p = &(ih->data->columns); + sum -= p->first_offset; for(i = p->first; i <= p->last; i++) sum += p->sizes[i]; @@ -43,16 +38,20 @@ static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m) return 1; } -int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col) +int iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col) { if(((lin >= ih->data->lines.first) && (lin <= ih->data->lines.last) && (col >= ih->data->columns.first) && (col <= ih->data->columns.last))) { - if (col == ih->data->columns.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_COL)) + if (col == ih->data->columns.first && ih->data->columns.first_offset!=0) + return 0; + if (lin == ih->data->lines.first && ih->data->lines.first_offset!=0) return 0; - if (lin == ih->data->lines.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_LIN)) + if (col == ih->data->columns.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->columns)) + return 0; + if (lin == ih->data->lines.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->lines)) return 0; return 1; @@ -81,18 +80,98 @@ void iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y /* find the position where the column starts */ *x = ih->data->columns.sizes[0]; for(i = ih->data->columns.first; i < col; i++) + { *x += ih->data->columns.sizes[i]; - /* find the column size */ + if (i == ih->data->columns.first) + *x -= ih->data->columns.first_offset; + } + + /* get the column size */ *w = ih->data->columns.sizes[col] - 1; + if (col == ih->data->columns.first) + *w -= ih->data->columns.first_offset; /* find the position where the line starts */ *y = ih->data->lines.sizes[0]; for(i = ih->data->lines.first; i < lin; i++) + { *y += ih->data->lines.sizes[i]; - /* find the line size */ + if (i == ih->data->lines.first) + *y -= ih->data->lines.first_offset; + } + + /* get the line size */ *h = ih->data->lines.sizes[lin] - 1; + if (lin == ih->data->lines.first) + *h -= ih->data->lines.first_offset; +} + +void iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p) +{ + int i, sum = 0; + + /* adjust "first" according to "last" */ + + i = p->last; + sum = p->sizes[i]; + while (i>1 && sum < p->visible_size) + { + i--; + sum += p->sizes[i]; + } + + if (i==1 && sum < p->visible_size) + { + /* if there are room for everyone then position at start */ + p->first = 1; + p->first_offset = 0; + } + else + { + /* the "while" found an index for first */ + p->first = i; + + /* position at the remaing space */ + p->first_offset = sum - p->visible_size; + } +} + +void iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos) +{ + int index, sp, offset = 0; + + sp = 0; + for(index = 1; index < p->num; index++) + { + sp += p->sizes[index]; + if (sp > scroll_pos) + { + sp -= p->sizes[index]; /* get the previous value */ + offset = scroll_pos - sp; + break; + } + } + + if (index == p->num) + { + if (p->num == 1) + { + /* did NOT go trough the "for" above */ + offset = scroll_pos; + index = 1; + } + else + { + /* go all the way trough the "for" above, but still sp < scroll_pos */ + offset = scroll_pos - sp; + index = p->num-1; + } + } + + p->first = index; + p->first_offset = offset; } /* Calculate the size, in pixels, of the invisible columns/lines, @@ -101,10 +180,11 @@ void iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y Depends on the first visible column/line. -> m : choose will operate on lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m) +void iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m) { + float pos; + int i, sb, scroll_pos; char* POS; - int i, sb, visible_pos; ImatLinColData *p; if (m == IMAT_PROCESS_LIN) @@ -120,33 +200,44 @@ void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m) POS = "POSX"; } - visible_pos = 0; - for(i = 1; i < p->first; i++) - visible_pos += p->sizes[i]; + /* "first" was changed, so update "last" and the scroll pos */ - if (ih->data->canvas.sb & sb) + if (p->total_size <= p->visible_size) { - float pos; + /* the matrix is fully visible */ + p->first = 1; + p->first_offset = 0; + p->last = p->num==1? 1: p->num-1; - if (p->total_size) - { - while ((visible_pos + p->visible_size > p->total_size) && p->first>1) - { - /* invalid position, must recalculate first */ - p->first--; - visible_pos -= p->sizes[p->first]; - } + if (ih->data->canvas.sb & sb) + IupSetAttribute(ih, POS, "0"); - pos = (float)visible_pos/(float)p->total_size; - } - else - pos = 0; + return; + } + + /* must check if it is a valid position */ + scroll_pos = 0; + for(i = 1; i < p->first; i++) + scroll_pos += p->sizes[i]; + scroll_pos += p->first_offset; + + if (scroll_pos + p->visible_size > p->total_size) + { + /* invalid condition, must recalculate so it is valid */ + scroll_pos = p->total_size - p->visible_size; - iupMatrixAuxUpdateLast(p); - IupSetfAttribute(ih, POS, "%.5f", (double)pos); + /* position first and first_offset, according to scroll pos */ + iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos); } - else - iupMatrixAuxUpdateLast(p); + + pos = (float)scroll_pos/(float)p->total_size; + + /* update last */ + iupMatrixAuxUpdateLast(p); + + /* update scroll pos */ + if (ih->data->canvas.sb & sb) + IupSetfAttribute(ih, POS, "%g", (double)pos); } /* Calculate which is the last visible column/line of the matrix. @@ -157,18 +248,24 @@ void iupMatrixAuxUpdateLast(ImatLinColData *p) if (p->visible_size > 0) { - /* Find which is the last column/line + /* Find which is the last column/line. Start in the first visible and continue adding the widths - up to the visible size */ + up to the visible size */ + sum -= p->first_offset; for(i = p->first; i < p->num; i++) { - sum += p->sizes[i]; + sum += p->sizes[i]; if(sum >= p->visible_size) break; } if (i == p->num) - p->last = i-1; + { + if (p->num == 1) + p->last = 1; + else + p->last = p->num-1; + } else p->last = i; } @@ -185,7 +282,7 @@ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col) char* str = iupStrGetMemory(100); char* value; - /* can only be called for valid columns */ + /* can be called for invalid columns (col>numcol) */ sprintf(str, "WIDTH%d", col); value = iupAttribGet(ih, str); @@ -219,7 +316,7 @@ int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col) width = max_width; } } - else if (ih->data->use_title_size) + else if (ih->data->use_title_size && (col>=0 && col<ih->data->columns.num)) { char* title_value = iupMatrixCellGetValue(ih, 0, col); if (title_value) @@ -257,7 +354,7 @@ int iupMatrixAuxGetLineHeight(Ihandle* ih, int lin) char* str = iupStrGetMemory(100); char* value; - /* can only be called for valid lines */ + /* can be called for invalid lines (lin>numlin) */ sprintf(str, "HEIGHT%d", lin); value = iupAttribGet(ih, str); @@ -291,7 +388,7 @@ int iupMatrixAuxGetLineHeight(Ihandle* ih, int lin) height = max_height; } } - else if (ih->data->use_title_size) + else if (ih->data->use_title_size && (lin>=0 && lin<ih->data->lines.num)) { char* title_value = iupMatrixCellGetValue(ih, lin, 0); if (title_value && title_value[0]) @@ -374,7 +471,7 @@ static void iMatrixAuxUpdateVisibleSize(Ihandle* ih, int m) p->visible_size = p->total_size; if (p->total_size) - IupSetfAttribute(ih, D, "%f", (double)p->visible_size/(double)p->total_size); + IupSetfAttribute(ih, D, "%g", (double)p->visible_size/(double)p->total_size); else IupSetAttribute(ih, D, "1.0"); } @@ -390,6 +487,7 @@ void iupMatrixAuxCalcSizes(Ihandle* ih) /* when removing lines the first can be positioned after the last line */ if (ih->data->lines.first > ih->data->lines.num-1) { + ih->data->lines.first_offset = 0; if (ih->data->lines.num==1) ih->data->lines.first = 1; else @@ -397,46 +495,50 @@ void iupMatrixAuxCalcSizes(Ihandle* ih) } if (ih->data->columns.first > ih->data->columns.num-1) { + ih->data->columns.first_offset = 0; if (ih->data->columns.num == 1) ih->data->columns.first = 1; else ih->data->columns.first = ih->data->columns.num-1; } - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL); - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN); + /* make sure scroll pos is consistent */ + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL); + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN); ih->data->need_calcsize = 0; } int iupMatrixAuxGetLinColFromXY(Ihandle* ih, int x, int y, int* l, int* c) { - int size, lin, col; + int x_col, y_col, lin, col; - size = ih->data->columns.sizes[0]; /* always visible when non zero */ - if (x < size) + x_col = ih->data->columns.sizes[0]; /* always visible when non zero */ + if (x < x_col) col = 0; /* It is in the column of titles */ else { + x_col -= ih->data->columns.first_offset; for(col = ih->data->columns.first; col <= ih->data->columns.last; col++) /* for all visible columns */ { - size += ih->data->columns.sizes[col]; - if (x < size) + x_col += ih->data->columns.sizes[col]; + if (x < x_col) break; } if (col > ih->data->columns.last) col = -1; } - size = ih->data->lines.sizes[0]; /* always visible when non zero */ - if (y < size) + y_col = ih->data->lines.sizes[0]; /* always visible when non zero */ + if (y < y_col) lin = 0; /* It is in the line of titles */ else { + y_col -= ih->data->lines.first_offset; for(lin = ih->data->lines.first; lin <= ih->data->lines.last; lin++) /* for all visible lines */ { - size += ih->data->lines.sizes[lin]; - if (y < size) + y_col += ih->data->lines.sizes[lin]; + if (y < y_col) break; } if(lin > ih->data->lines.last) diff --git a/iup/srccontrols/matrix/iupmat_aux.h b/iup/srccontrols/matrix/iupmat_aux.h index 296c1f5..01c77f1 100755 --- a/iup/srccontrols/matrix/iupmat_aux.h +++ b/iup/srccontrols/matrix/iupmat_aux.h @@ -12,19 +12,22 @@ extern "C" { #endif -int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col); +int iupMatrixAuxIsFullVisibleLast(ImatLinColData *p); +int iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col); int iupMatrixAuxIsCellVisible(Ihandle* ih, int lin, int col); void iupMatrixAuxGetVisibleCellDim (Ihandle* ih, int lin, int col, int* x, int* y, int* w, int* h); void iupMatrixAuxCalcSizes(Ihandle* ih); -void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m); +void iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p); +void iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos); +void iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m); void iupMatrixAuxUpdateLast(ImatLinColData *p); int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col); int iupMatrixAuxGetLineHeight (Ihandle* ih, int lin); -int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c); +int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c); int iupMatrixAuxCallLeaveCellCb (Ihandle* ih); void iupMatrixAuxCallEnterCellCb (Ihandle* ih); diff --git a/iup/srccontrols/matrix/iupmat_cd.h b/iup/srccontrols/matrix/iupmat_cd.h index 1a10f2b..beb616a 100755 --- a/iup/srccontrols/matrix/iupmat_cd.h +++ b/iup/srccontrols/matrix/iupmat_cd.h @@ -11,12 +11,12 @@ extern "C" { #endif -#define IUPMAT_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMatrixInvertYAxis(_ih, _y1), (_x2), iupMatrixInvertYAxis(_ih, _y2)) -#define IUPMAT_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y)) -#define IUPMAT_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax)) -#define IUPMAT_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax)) -#define IUPMAT_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax)) -#define IUPMAT_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y), (_text)) +#define iupMATRIX_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMATRIX_INVERTYAXIS(_ih, _y1), (_x2), iupMATRIX_INVERTYAXIS(_ih, _y2)) +#define iupMATRIX_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y)) +#define iupMATRIX_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax)) +#define iupMATRIX_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax)) +#define iupMATRIX_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax)) +#define iupMATRIX_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y), (_text)) #ifdef __cplusplus } diff --git a/iup/srccontrols/matrix/iupmat_colres.c b/iup/srccontrols/matrix/iupmat_colres.c index d44b7df..79f389e 100755 --- a/iup/srccontrols/matrix/iupmat_colres.c +++ b/iup/srccontrols/matrix/iupmat_colres.c @@ -34,15 +34,17 @@ if so the resize is started */ int iupMatrixColResStart(Ihandle* ih, int x, int y) { - if (ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX")) + if (ih->data->lines.sizes[0] && + y < ih->data->lines.sizes[0] && + iupAttribGetBoolean(ih, "RESIZEMATRIX")) { - int size, col; + int x_col, col; /* Check if is the column of titles */ - size = ih->data->columns.sizes[0]; - if (abs(size-x) < IMAT_COLRES_TOL) + x_col = ih->data->columns.sizes[0]; + if (abs(x_col-x) < IMAT_COLRES_TOL) { - ih->data->colres_drag_col_start_x = 0; + ih->data->colres_drag_col_start_x = x; ih->data->colres_dragging = 1; ih->data->colres_drag_col_last_x = -1; ih->data->colres_drag_col = 0; @@ -51,12 +53,13 @@ int iupMatrixColResStart(Ihandle* ih, int x, int y) else { /* find the column */ + x_col -= ih->data->columns.first_offset; for(col = ih->data->columns.first; col <= ih->data->columns.last; col++) { - ih->data->colres_drag_col_start_x = size; - size += ih->data->columns.sizes[col]; - if (abs(size-x) < IMAT_COLRES_TOL) + x_col += ih->data->columns.sizes[col]; + if (abs(x_col-x) < IMAT_COLRES_TOL) { + ih->data->colres_drag_col_start_x = x; ih->data->colres_dragging = 1; ih->data->colres_drag_col_last_x = -1; ih->data->colres_drag_col = col; @@ -71,7 +74,8 @@ int iupMatrixColResStart(Ihandle* ih, int x, int y) void iupMatrixColResFinish(Ihandle* ih, int x) { char str[100]; - int width = x - ih->data->colres_drag_col_start_x; + int delta = x - ih->data->colres_drag_col_start_x; + int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta; if (width < 0) width = 0; @@ -83,8 +87,8 @@ void iupMatrixColResFinish(Ihandle* ih, int x) cdCanvasWriteMode(ih->data->cdcanvas, CD_XOR); cdCanvasForeground(ih->data->cdcanvas, IMAT_RESIZE_COLOR); - cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1), - ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2)); + cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1), + ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2)); cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE); } @@ -106,7 +110,8 @@ void iupMatrixColResMove(Ihandle* ih, int x) { int y1, y2; - int width = x - ih->data->colres_drag_col_start_x; + int delta = x - ih->data->colres_drag_col_start_x; + int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta; if (width < 0) return; @@ -119,12 +124,12 @@ void iupMatrixColResMove(Ihandle* ih, int x) /* If it is not the first time, move old line */ if (ih->data->colres_drag_col_last_x != -1) { - cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1), - ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2)); + cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1), + ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2)); } - cdCanvasLine(ih->data->cdcanvas, x, iupMatrixInvertYAxis(ih, y1), - x, iupMatrixInvertYAxis(ih, y2)); + cdCanvasLine(ih->data->cdcanvas, x, iupMATRIX_INVERTYAXIS(ih, y1), + x, iupMATRIX_INVERTYAXIS(ih, y2)); ih->data->colres_drag_col_last_x = x; cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE); @@ -144,20 +149,23 @@ static void iMatrixColResResetMatrixCursor(Ihandle* ih) /* Change the cursor when it passes over a group of the column titles. */ void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y) { - if(ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX")) + if(ih->data->lines.sizes[0] && + y < ih->data->lines.sizes[0] && + iupAttribGetBoolean(ih, "RESIZEMATRIX")) { /* It is in the column titles area and the resize mode is on */ - int found = 0, size, col; + int found = 0, x_col, col; - size = ih->data->columns.sizes[0]; - if (abs(size - x) < IMAT_COLRES_TOL) + x_col = ih->data->columns.sizes[0]; + if (abs(x_col - x) < IMAT_COLRES_TOL) found = 1; /* line titles */ else { + x_col -= ih->data->columns.first_offset; for(col = ih->data->columns.first; col <= ih->data->columns.last && !found; col++) { - size += ih->data->columns.sizes[col]; - if(abs(size - x) < IMAT_COLRES_TOL) + x_col += ih->data->columns.sizes[col]; + if(abs(x_col - x) < IMAT_COLRES_TOL) found = 1; } } @@ -168,7 +176,7 @@ void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y) iupAttribStoreStr(ih, "_IUPMAT_CURSOR", IupGetAttribute(ih, "CURSOR")); IupSetAttribute(ih, "CURSOR", "RESIZE_W"); } - else /* It is in the empty area after the last column */ + else /* It is in the empty area after the last column, or inside a cell */ iMatrixColResResetMatrixCursor(ih); } else diff --git a/iup/srccontrols/matrix/iupmat_def.h b/iup/srccontrols/matrix/iupmat_def.h index d45acde..225cc16 100755 --- a/iup/srccontrols/matrix/iupmat_def.h +++ b/iup/srccontrols/matrix/iupmat_def.h @@ -49,6 +49,7 @@ typedef struct _ImatLinColData int num; /* Number of columns/lines in the matrix, default/minimum=1, always includes the title */ int num_alloc; /* Number of columns/lines allocated, default=5 */ + int first_offset; /* scroll offset of the first visible column/line from right to left (or the invisible part of the first cell) */ int first; /* First visible column/line */ int last; /* Last visible column/line */ @@ -84,7 +85,7 @@ struct _IcontrolData /* attributes */ int mark_continuous, mark_mode, mark_multiple; - int checkframecolor; + int checkframecolor, hidden_text_marks; /* Mouse and Keyboard AUX */ int leftpressed; /* left mouse button is pressed */ @@ -92,8 +93,8 @@ struct _IcontrolData /* ColRes AUX */ int colres_dragging, /* indicates if it is being made a column resize */ - colres_drag_col, /* column being resized */ - colres_drag_col_start_x, /* position of the start of the column being resized */ + colres_drag_col, /* column being resized, handler is at right of the column */ + colres_drag_col_start_x, /* handler start position */ colres_drag_col_last_x; /* previous position */ /* Mark AUX */ @@ -107,12 +108,14 @@ struct _IcontrolData IFniiIII fgcolor_cb; IFniiIII bgcolor_cb; char *bgcolor, *bgcolor_parent, *fgcolor, *font; /* not need to free */ + + int clip_x1, clip_x2, clip_y1, clip_y2; /* aux for cell clipping */ }; int iupMatrixIsValid(Ihandle* ih, int check_cells); -#define iupMatrixInvertYAxis(_ih, _y) ((_ih)->data->h-1 - (_y)) +#define iupMATRIX_INVERTYAXIS(_ih, _y) ((_ih)->data->h-1 - (_y)) #ifdef __cplusplus diff --git a/iup/srccontrols/matrix/iupmat_draw.c b/iup/srccontrols/matrix/iupmat_draw.c index 7c53fb5..ec3df59 100755 --- a/iup/srccontrols/matrix/iupmat_draw.c +++ b/iup/srccontrols/matrix/iupmat_draw.c @@ -47,13 +47,38 @@ #define IMAT_COMBOBOX_W 16 -typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col,int x1, int x2, int y1, int y2, cdCanvas* cnv); +typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col, int x1, int x2, int y1, int y2, cdCanvas* cnv); /**************************************************************************/ /* Private functions */ /**************************************************************************/ +static void iMatrixDrawSetCellClipping(Ihandle* ih, int x1, int x2, int y1, int y2) +{ + int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY); + if (old_clip == CD_CLIPAREA) + { + cdCanvasGetClipArea(ih->data->cddbuffer, &(ih->data->clip_x1), &(ih->data->clip_x2), &(ih->data->clip_y1), &(ih->data->clip_y2)); + y1 = iupMATRIX_INVERTYAXIS(ih, y1); + y2 = iupMATRIX_INVERTYAXIS(ih, y2); + if (x1 > x2) {int tmp = x1; x1 = x2; x2 = tmp;} + if (y1 > y2) {int tmp = y1; y1 = y2; y2 = tmp;} + if (x1 < ih->data->clip_x1) x1 = ih->data->clip_x1; + if (x2 > ih->data->clip_x2) x2 = ih->data->clip_x2; + if (y1 < ih->data->clip_y1) y1 = ih->data->clip_y1; + if (y2 > ih->data->clip_y2) y2 = ih->data->clip_y2; + cdCanvasClipArea(ih->data->cddbuffer, x1, x2, y1, y2); + cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA); + } +} + +static void iMatrixDrawResetCellClipping(Ihandle* ih) +{ + int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY); + if (old_clip == CD_CLIPAREA) + cdCanvasClipArea(ih->data->cddbuffer, ih->data->clip_x1, ih->data->clip_x2, ih->data->clip_y1, ih->data->clip_y2); +} static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str) { @@ -61,6 +86,8 @@ static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str) sprintf(str, "ALIGNMENT%d", col); align = iupAttribGet(ih, str); if (!align) + align = iupAttribGet(ih, "ALIGNMENT"); + if (!align) { if (col == 0) return IMAT_T_LEFT; @@ -80,16 +107,15 @@ static int iMatrixDrawCallDrawCB(Ihandle* ih, int lin, int col, int x1, int x2, int ret; cdCanvas* old_cnv; - IUPMAT_CLIPAREA(ih, x1, x2, y1, y2); - cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA); + iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2); old_cnv = cdActiveCanvas(); if (old_cnv != ih->data->cddbuffer) /* backward compatibility code */ cdActivate(ih->data->cddbuffer); - ret = draw_cb(ih, lin, col, x1, x2, iupMatrixInvertYAxis(ih, y1), iupMatrixInvertYAxis(ih, y2), ih->data->cddbuffer); + ret = draw_cb(ih, lin, col, x1, x2, iupMATRIX_INVERTYAXIS(ih, y1), iupMATRIX_INVERTYAXIS(ih, y2), ih->data->cddbuffer); - cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); + iMatrixDrawResetCellClipping(ih); if (old_cnv && old_cnv != ih->data->cddbuffer) /* backward compatibility code */ { @@ -165,28 +191,36 @@ static void iMatrixDrawFrameHorizLineCell(Ihandle* ih, int lin, int col, int x1, { if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEHCOLOR)) { + char* color; unsigned char r,g,b; sprintf(str, "FRAMEHORIZCOLOR%d:%d", lin, col); - if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b)) + color = iupAttribGet(ih, str); + if (iupStrEqual(color, "BGCOLOR")) + return; + if (iupStrToRGB(color, &r, &g, &b)) framecolor = cdEncodeColor(r, g, b); } cdCanvasForeground(ih->data->cddbuffer, framecolor); - IUPMAT_LINE(ih, x1, y, x2, y); /* bottom horizontal line */ + iupMATRIX_LINE(ih, x1, y, x2, y); /* bottom horizontal line */ } static void iMatrixDrawFrameVertLineCell(Ihandle* ih, int lin, int col, int x, int y1, int y2, long framecolor, char* str) { if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEVCOLOR)) { + char* color; unsigned char r,g,b; sprintf(str, "FRAMEVERTCOLOR%d:%d", lin, col); - if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b)) + color = iupAttribGet(ih, str); + if (iupStrEqual(color, "BGCOLOR")) + return; + if (iupStrToRGB(color, &r, &g, &b)) framecolor = cdEncodeColor(r, g, b); } cdCanvasForeground(ih->data->cddbuffer, framecolor); - IUPMAT_LINE(ih, x, y1, x, y2); /* right vertical line */ + iupMATRIX_LINE(ih, x, y1, x, y2); /* right vertical line */ } static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str) @@ -195,37 +229,43 @@ static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int x2 -= IMAT_FRAME_W/2; y2 -= IMAT_FRAME_H/2; - iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str); /* right vertical line */ + /* right vertical line */ + iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str); if (col==0) { - IUPMAT_LINE(ih, x1, y1, x1, y2); /* left vertical line, reuse Foreground */ + /* left vertical line, reuse Foreground */ + iupMATRIX_LINE(ih, x1, y1, x1, y2); x1++; } else if (col==1 && ih->data->columns.sizes[0] == 0) { /* If does not have line titles then draw the left line of the cell frame */ - IUPMAT_LINE(ih, x1, y1, x1, y2-1); + iupMATRIX_LINE(ih, x1, y1, x1, y2-1); x1++; } - cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */ - IUPMAT_LINE(ih, x1, y1+1, x1, y2-1); + /* Titles have a white line near the frame, at left */ + cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); + iupMATRIX_LINE(ih, x1, y1+1, x1, y2-1); - iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str); /* bottom horizontal line */ + /* bottom horizontal line */ + iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str); if (lin==0) { - IUPMAT_LINE(ih, x1, y1, x2, y1); /* top horizontal line, reuse Foreground */ + /* top horizontal line, reuse Foreground */ + iupMATRIX_LINE(ih, x1, y1, x2, y1); y1++; } else if (lin==1 && ih->data->lines.sizes[0] == 0) { /* If does not have column titles then draw the top line of the cell frame */ - IUPMAT_LINE(ih, x1, y1, x2-1, y1); + iupMATRIX_LINE(ih, x1, y1, x2-1, y1); y1++; } - cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */ - IUPMAT_LINE(ih, x1, y1, x2-1, y1); + /* Titles have a white line near the frame, at top */ + cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); + iupMATRIX_LINE(ih, x1, y1, x2-1, y1); } static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str) @@ -233,20 +273,20 @@ static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int if (col==1 && ih->data->columns.sizes[0] == 0) { /* If does not have line titles then draw the left line of the cell frame */ - iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1-1, framecolor, str); + iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1, framecolor, str); } if (lin==1 && ih->data->lines.sizes[0] == 0) { /* If does not have column titles then draw the top line of the cell frame */ - iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1-1, y1, framecolor, str); + iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y1, framecolor, str); } /* bottom line */ iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y2-1, framecolor, str); /* rigth line */ - iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-1, framecolor, str); + iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-2, framecolor, str); } static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int active, char* str) @@ -274,15 +314,15 @@ static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int if (iupStrEqualNoCase(sort, "DOWN")) { - IUPMAT_VERTEX(ih, x2 - 5, yc + 2); - IUPMAT_VERTEX(ih, x2 - 1, yc - 2); - IUPMAT_VERTEX(ih, x2 - 9, yc - 2); + iupMATRIX_VERTEX(ih, x2 - 5, yc + 2); + iupMATRIX_VERTEX(ih, x2 - 1, yc - 2); + iupMATRIX_VERTEX(ih, x2 - 9, yc - 2); } else { - IUPMAT_VERTEX(ih, x2 - 1, yc + 2); - IUPMAT_VERTEX(ih, x2 - 9, yc + 2); - IUPMAT_VERTEX(ih, x2 - 5, yc - 2); + iupMATRIX_VERTEX(ih, x2 - 1, yc + 2); + iupMATRIX_VERTEX(ih, x2 - 9, yc + 2); + iupMATRIX_VERTEX(ih, x2 - 5, yc - 2); } cdCanvasEnd(ih->data->cddbuffer); @@ -301,20 +341,20 @@ static void iMatrixDrawComboFeedback(Ihandle* ih, int x2, int y1, int y2, int ac /* feedback background */ iMatrixDrawSetBgColor(ih, 0, 0, 0, active); - IUPMAT_BOX(ih, x1, x2, y1, y2); + iupMATRIX_BOX(ih, x1, x2, y1, y2); /* feedback frame */ cdCanvasForeground(ih->data->cddbuffer, framecolor); - IUPMAT_RECT(ih, x1, x2, y1, y2); + iupMATRIX_RECT(ih, x1, x2, y1, y2); /* feedback arrow */ xh2 = x2 - IMAT_COMBOBOX_W / 2; yh2 = y2 - (y2 - y1) / 2; cdCanvasBegin(ih->data->cddbuffer, CD_FILL); - IUPMAT_VERTEX(ih, xh2, yh2 + 3); - IUPMAT_VERTEX(ih, xh2 + 4, yh2 - 1); - IUPMAT_VERTEX(ih, xh2 - 4, yh2 - 1); + iupMATRIX_VERTEX(ih, xh2, yh2 + 3); + iupMATRIX_VERTEX(ih, xh2 + 4, yh2 - 1); + iupMATRIX_VERTEX(ih, xh2 - 4, yh2 - 1); cdCanvasEnd(ih->data->cddbuffer); } @@ -325,7 +365,7 @@ static void iMatrixDrawBackground(Ihandle* ih, int x1, int x2, int y1, int y2, i y2 -= IMAT_FRAME_H/2; iMatrixDrawSetBgColor(ih, lin, col, marked, active); - IUPMAT_BOX(ih, x1, x2, y1, y2); + iupMATRIX_BOX(ih, x1, x2, y1, y2); } /* Put the cell contents in the screen, using the specified color and alignment. @@ -372,7 +412,7 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in if (text && *text) { int num_line, line_height, total_height; - int charheight, ypos; + int charheight, ypos, hidden_text_marks = 0; num_line = iupStrLineCount(text); iupdrvFontGetCharSize(ih, NULL, &charheight); @@ -380,12 +420,18 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in line_height = charheight; total_height = (line_height + IMAT_PADDING_H/2) * num_line - IMAT_PADDING_H/2 - IMAT_FRAME_H/2; - if (lin==0) + if (lin==0 || ih->data->hidden_text_marks) { int text_w; iupdrvFontGetMultiLineStringSize(ih, text, &text_w, NULL); if (text_w > x2 - x1 + 1 - IMAT_PADDING_W - IMAT_FRAME_W) - alignment = IMAT_T_LEFT; + { + if (lin == 0) + alignment = IMAT_T_LEFT; + + if (ih->data->hidden_text_marks) + hidden_text_marks = 1; + } } /* Set the color used to draw the text */ @@ -395,8 +441,13 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in iMatrixDrawSetFgColor(ih, lin, col, marked); /* Set the clip area to the cell region informed, the text maybe greatter than the cell */ - IUPMAT_CLIPAREA(ih, x1, x2, y1, y2); - cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA); + if (hidden_text_marks) + { + int crop = iupdrvFontGetStringWidth(ih, "...") + 2; + iMatrixDrawSetCellClipping(ih, x1, x2-crop, y1, y2); + } + else + iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2); cdCanvasNativeFont(ih->data->cddbuffer, iupMatrixGetFont(ih, lin, col)); @@ -417,11 +468,11 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in /* Put the text */ if (alignment == IMAT_T_CENTER) - IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, text); + iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, text); else if(alignment == IMAT_T_LEFT) - IUPMAT_TEXT(ih, x1, ypos, text); + iupMATRIX_TEXT(ih, x1, ypos, text); else - IUPMAT_TEXT(ih, x2, ypos, text); + iupMATRIX_TEXT(ih, x2, ypos, text); } else { @@ -441,11 +492,11 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in /* Draw the text */ if(alignment == IMAT_T_CENTER) - IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, p); + iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, p); else if(alignment == IMAT_T_LEFT) - IUPMAT_TEXT(ih, x1, ypos, p); + iupMATRIX_TEXT(ih, x1, ypos, p); else - IUPMAT_TEXT(ih, x2, ypos, p); + iupMATRIX_TEXT(ih, x2, ypos, p); /* Advance the string */ if (q) p = q + 1; @@ -457,7 +508,15 @@ static void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in free(newtext); } - cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); + iMatrixDrawResetCellClipping(ih); + + if (hidden_text_marks) + { + cdCanvasTextAlignment(ih->data->cddbuffer, CD_EAST); + ypos = (int)((y1 + y2) / 2.0 - 0.5); + iupMATRIX_TEXT(ih, x2+IMAT_PADDING_W/2, ypos, "..."); + } + } } @@ -522,7 +581,7 @@ static void iMatrixDrawFocus(Ihandle* ih) if (ih->data->lines.focus_cell == 1 && ih->data->lines.sizes[0] == 0) y1++; - cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMatrixInvertYAxis(ih, y1), x2, iupMatrixInvertYAxis(ih, y2)); + cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMATRIX_INVERTYAXIS(ih, y1), x2, iupMATRIX_INVERTYAXIS(ih, y2)); } @@ -560,6 +619,11 @@ void iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2) x2 = ih->data->columns.sizes[0]; y1 = ih->data->lines.sizes[0]; + + iupMATRIX_CLIPAREA(ih, x1, x2, y1, ih->data->h-1); + cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA); + + y1 -= ih->data->lines.first_offset; for(lin = ih->data->lines.first; lin < lin1; lin++) y1 += ih->data->lines.sizes[lin]; @@ -592,6 +656,8 @@ void iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2) y1 = y2; } + + cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); } /* Draw the column titles, visible, between col and lastcol, include it. @@ -623,6 +689,11 @@ void iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2) y2 = ih->data->lines.sizes[0]; x1 = ih->data->columns.sizes[0]; + + iupMATRIX_CLIPAREA(ih, x1, ih->data->w-1, y1, y2); + cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA); + + x1 -= ih->data->columns.first_offset; for(col = ih->data->columns.first; col < col1; col++) x1 += ih->data->columns.sizes[col]; @@ -657,6 +728,8 @@ void iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2) x1 = x2; } + + cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); } /* Redraw a block of cells of the matrix. Handle marked cells, change @@ -673,13 +746,11 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) IFnii dropcheck_cb; IFniiiiiiC draw_cb; - x1 = 0; x2 = ih->data->w-1; - y1 = 0; y2 = ih->data->h-1; old_x2 = x2; - old_y1 = y1; + old_y1 = 0; old_y2 = y2; if (col1 > ih->data->columns.last || @@ -697,8 +768,14 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) if (lin2 > ih->data->lines.last) lin2 = ih->data->lines.last; + x1 = ih->data->columns.sizes[0]; + y1 = ih->data->lines.sizes[0]; + + iupMATRIX_CLIPAREA(ih, x1, x2, y1, y2); + cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); /* wait for background */ + /* Find the initial position of the first column */ - x1 += ih->data->columns.sizes[0]; + x1 -= ih->data->columns.first_offset; for(col = ih->data->columns.first; col < col1; col++) x1 += ih->data->columns.sizes[col]; @@ -708,7 +785,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) x2 += ih->data->columns.sizes[col]; /* Find the initial position of the first line */ - y1 += ih->data->lines.sizes[0]; + y1 -= ih->data->lines.first_offset; for(lin = ih->data->lines.first; lin < lin1; lin++) y1 += ih->data->lines.sizes[lin]; @@ -724,7 +801,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) /* If it was drawn until the last column and remains space in the right of it, then delete this area with the the background color. */ - IUPMAT_BOX(ih, x2, old_x2, old_y1, old_y2); + iupMATRIX_BOX(ih, x2, old_x2, old_y1, old_y2); } if ((lin2 == ih->data->lines.num-1) && (old_y2 > y2)) @@ -735,9 +812,12 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) /* If it was drawn until the last line visible and remains space below it, then delete this area with the the background color. */ - IUPMAT_BOX(ih, 0, old_x2, y2, old_y2); + iupMATRIX_BOX(ih, 0, old_x2, y2, old_y2); } + /* after the background */ + cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA); + /***** Draw the cell values and frame */ old_y1 = y1; framecolor = cdIupConvertColor(iupAttribGetStr(ih, "FRAMECOLOR")); @@ -775,7 +855,7 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) if (dropcheck_cb && dropcheck_cb(ih, lin, col) == IUP_DEFAULT) { - drop = IMAT_COMBOBOX_W; + drop = IMAT_COMBOBOX_W+IMAT_PADDING_W/2; iMatrixDrawComboFeedback(ih, x2, y1, y2, active, framecolor); } @@ -788,6 +868,8 @@ void iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2) x1 = x2; y1 = old_y1; /* must reset also y */ } + + cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); } void iupMatrixDraw(Ihandle* ih, int update) diff --git a/iup/srccontrols/matrix/iupmat_edit.c b/iup/srccontrols/matrix/iupmat_edit.c index a7e0a74..551baed 100755 --- a/iup/srccontrols/matrix/iupmat_edit.c +++ b/iup/srccontrols/matrix/iupmat_edit.c @@ -67,7 +67,7 @@ static int iMatrixEditDropDownAction_CB(Ihandle* ih, char* t, int i, int v) if (ret == IUP_CONTINUE) { iupMatrixEditHide(ih_matrix); - iupMatrixDrawUpdate(ih); + iupMatrixDrawUpdate(ih_matrix); } } @@ -137,13 +137,31 @@ static int iMatrixEditCancel(Ihandle* ih, int focus, int update, int ignore) return IUP_DEFAULT; } +static int iMatrixEditDropDown_CB(Ihandle* ih, int state) +{ + /* In Motif if DROPDOWN=YES then when the dropdown button is clicked + the list looses its focus and when the dropped list is closed + the list regain the focus, also when that happen if the list looses its focus + to another control the kill focus callback is not called. */ + Ihandle* ih_matrix = ih->parent; + if (state == 1) + iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", "1"); + + return IUP_DEFAULT; +} + static int iMatrixEditKillFocus_CB(Ihandle* ih) { Ihandle* ih_matrix = ih->parent; - if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif")) + if (IupGetGlobal("MOTIFVERSION")) { - if (iupAttribGet(ih_matrix, "_IUPMAT_DOUBLE_CLICK")) + if (iupAttribGet(ih_matrix, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */ + iupAttribGet(ih_matrix, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */ + { + iupAttribSetStr(ih_matrix, "_IUPMAT_DOUBLECLICK", NULL); + iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", NULL); return IUP_DEFAULT; + } } iupMatrixEditForceHidden(ih_matrix); @@ -200,7 +218,7 @@ int iupMatrixEditShow(Ihandle* ih) /* position the cell to make it visible */ /* If the focus is not visible, a scroll is done for that the focus to be visible */ - if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell)) + if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell)) iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell); /* set attributes */ @@ -235,7 +253,7 @@ int iupMatrixEditShow(Ihandle* ih) ih->data->datah->y = y; if (IupGetGlobal("GTKVERSION")) { - /* In GTK, IupCanvas is not the actual container of the IupText/IupList */ + /* In GTK, IupCanvas is NOT the actual container of the IupText/IupList */ ih->data->datah->x += ih->x; ih->data->datah->y += ih->y; } @@ -366,7 +384,7 @@ static int iMatrixEditTextKeyAny_CB(Ihandle* ih, int c) if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE) { - iupMatrixScrollKeyCr(ih_matrix); + iupMATRIX_ScrollKeyCr(ih_matrix); iupMatrixAuxCallEnterCellCb(ih_matrix); } iupMatrixDrawUpdate(ih_matrix); @@ -399,7 +417,7 @@ static int iMatrixEditDropDownKeyAny_CB(Ihandle* ih, int c) { if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE) { - iupMatrixScrollKeyCr(ih_matrix); + iupMATRIX_ScrollKeyCr(ih_matrix); iupMatrixAuxCallEnterCellCb(ih_matrix); } iupMatrixDrawUpdate(ih_matrix); @@ -440,6 +458,9 @@ void iupMatrixEditCreate(Ihandle* ih) ih->data->droph = IupList(NULL); iupChildTreeAppend(ih, ih->data->droph); + if (IupGetGlobal("MOTIFVERSION")) + IupSetCallback(ih->data->droph, "DROPDOWN_CB", (Icallback)iMatrixEditDropDown_CB); + IupSetCallback(ih->data->droph, "ACTION", (Icallback)iMatrixEditDropDownAction_CB); IupSetCallback(ih->data->droph, "KILLFOCUS_CB", (Icallback)iMatrixEditKillFocus_CB); IupSetCallback(ih->data->droph, "K_ANY", (Icallback)iMatrixEditDropDownKeyAny_CB); diff --git a/iup/srccontrols/matrix/iupmat_focus.c b/iup/srccontrols/matrix/iupmat_focus.c index 3c000f8..0cf680d 100755 --- a/iup/srccontrols/matrix/iupmat_focus.c +++ b/iup/srccontrols/matrix/iupmat_focus.c @@ -35,13 +35,11 @@ int iupMatrixFocus_CB(Ihandle* ih, int focus) if (!iupMatrixIsValid(ih, 1)) return IUP_DEFAULT; - if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif")) + if (IupGetGlobal("MOTIFVERSION")) { - if (focus && iupAttribGet(ih, "_IUPMAT_DOUBLE_CLICK")) - { - iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", NULL); + if (iupAttribGet(ih, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */ + iupAttribGet(ih, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */ return IUP_DEFAULT; - } } ih->data->has_focus = focus; diff --git a/iup/srccontrols/matrix/iupmat_getset.c b/iup/srccontrols/matrix/iupmat_getset.c index 34947b6..4424948 100755 --- a/iup/srccontrols/matrix/iupmat_getset.c +++ b/iup/srccontrols/matrix/iupmat_getset.c @@ -313,7 +313,7 @@ char* iupMatrixGetFont(Ihandle* ih, int lin, int col) return font; } -char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels) +char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit) { char* str; int size; @@ -342,7 +342,7 @@ char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels) else size -= IMAT_PADDING_H + IMAT_FRAME_H; - if (!pixels) + if (!pixels_unit) { int charwidth, charheight; iupdrvFontGetCharSize(ih, &charwidth, &charheight); diff --git a/iup/srccontrols/matrix/iupmat_getset.h b/iup/srccontrols/matrix/iupmat_getset.h index 9ae3d07..f26e01e 100755 --- a/iup/srccontrols/matrix/iupmat_getset.h +++ b/iup/srccontrols/matrix/iupmat_getset.h @@ -26,7 +26,7 @@ void iupMatrixGetFgRGB(Ihandle* ih, int lin, int col, unsigned char *r, unsigned void iupMatrixCellUpdateValue(Ihandle* ih); -char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels); +char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit); int iupMatrixCheckCellPos(Ihandle* ih, int lin, int col); diff --git a/iup/srccontrols/matrix/iupmat_key.c b/iup/srccontrols/matrix/iupmat_key.c index ae9ed55..4824438 100755 --- a/iup/srccontrols/matrix/iupmat_key.c +++ b/iup/srccontrols/matrix/iupmat_key.c @@ -37,7 +37,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) int ret = IUP_IGNORE; /* default for processed keys */ /* If the focus is not visible, a scroll is done for that the focus to be visible */ - if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell)) + if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell)) iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell); switch (c) @@ -47,7 +47,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_HOME: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyHome(ih); + iupMATRIX_ScrollKeyHome(ih); ih->data->homekeycount++; iupMatrixAuxCallEnterCellCb(ih); break; @@ -57,7 +57,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_END: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyEnd(ih); + iupMATRIX_ScrollKeyEnd(ih); ih->data->endkeycount++; iupMatrixAuxCallEnterCellCb(ih); break; @@ -71,7 +71,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_LEFT: if (iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyLeft(ih); + iupMATRIX_ScrollKeyLeft(ih); iupMatrixAuxCallEnterCellCb(ih); break; @@ -80,7 +80,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_RIGHT: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyRight(ih); + iupMATRIX_ScrollKeyRight(ih); iupMatrixAuxCallEnterCellCb(ih); break; @@ -89,7 +89,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_UP: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyUp(ih); + iupMATRIX_ScrollKeyUp(ih); iupMatrixAuxCallEnterCellCb(ih); break ; @@ -98,7 +98,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_DOWN: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyDown(ih); + iupMATRIX_ScrollKeyDown(ih); iupMatrixAuxCallEnterCellCb(ih); break; @@ -106,7 +106,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_PGUP: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyPgUp(ih); + iupMATRIX_ScrollKeyPgUp(ih); iupMatrixAuxCallEnterCellCb(ih); break; @@ -114,7 +114,7 @@ int iupMatrixProcessKeyPress(Ihandle* ih, int c) case K_PGDN: if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE) break; - iupMatrixScrollKeyPgDown(ih); + iupMATRIX_ScrollKeyPgDown(ih); iupMatrixAuxCallEnterCellCb(ih); break; diff --git a/iup/srccontrols/matrix/iupmat_mouse.c b/iup/srccontrols/matrix/iupmat_mouse.c index 33b5fe7..a3ffa82 100755 --- a/iup/srccontrols/matrix/iupmat_mouse.c +++ b/iup/srccontrols/matrix/iupmat_mouse.c @@ -80,12 +80,18 @@ static void iMatrixMouseLeftPress(Ihandle* ih, int lin, int col, int shift, int if (iupMatrixEditShow(ih)) { - if(ih->data->datah == ih->data->droph) + if (ih->data->datah == ih->data->droph) IupSetAttribute(ih->data->datah, "SHOWDROPDOWN", "YES"); - if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif")) - if(atoi(IupGetGlobal("MOTIFNUMBER")) < 2203) /* since OpenMotif version 2.2.3 this is not necessary */ - iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", "1"); + if (IupGetGlobal("MOTIFVERSION")) + { + /* Sequece of focus_cb in Motif from here: + Matrix-Focus(0) - ok + Edit-KillFocus - weird, must avoid using _IUPMAT_DOUBLECLICK + Since OpenMotif version 2.2.3 this is not necessary anymore. */ + if (atoi(IupGetGlobal("MOTIFNUMBER")) < 2203) + iupAttribSetStr(ih, "_IUPMAT_DOUBLECLICK", "1"); + } } } else /* single click */ @@ -182,14 +188,14 @@ int iupMatrixMouseMove_CB(Ihandle* ih, int x, int y) if (ih->data->leftpressed && ih->data->mark_multiple && ih->data->mark_mode != IMAT_MARK_NO) { if ((x < ih->data->columns.sizes[0] || x < IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.first > 1)) - iupMatrixScrollLeft(ih); + iupMATRIX_ScrollLeft(ih); else if ((x > ih->data->w - IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.last < ih->data->columns.num-1)) - iupMatrixScrollRight(ih); + iupMATRIX_ScrollRight(ih); if ((y < ih->data->lines.sizes[0] || y < IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.first > 1)) - iupMatrixScrollUp(ih); + iupMATRIX_ScrollUp(ih); else if ((y > ih->data->h - IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.last < ih->data->lines.num-1)) - iupMatrixScrollDown(ih); + iupMATRIX_ScrollDown(ih); if (iupMatrixAuxGetLinColFromXY(ih, x, y, &lin, &col)) { diff --git a/iup/srccontrols/matrix/iupmat_numlc.c b/iup/srccontrols/matrix/iupmat_numlc.c index e48720a..6e628b7 100755 --- a/iup/srccontrols/matrix/iupmat_numlc.c +++ b/iup/srccontrols/matrix/iupmat_numlc.c @@ -294,7 +294,7 @@ int iupMatrixSetAddLinAttrib(Ihandle* ih, const char* value) { int base, count, lines_num = ih->data->lines.num; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 0)) @@ -326,7 +326,7 @@ int iupMatrixSetDelLinAttrib(Ihandle* ih, const char* value) { int base, count, lines_num = ih->data->lines.num; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 1)) @@ -366,7 +366,7 @@ int iupMatrixSetAddColAttrib(Ihandle* ih, const char* value) { int base, count, columns_num = ih->data->columns.num; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 0)) @@ -398,7 +398,7 @@ int iupMatrixSetDelColAttrib(Ihandle* ih, const char* value) { int base, count, columns_num = ih->data->columns.num; - if (!ih->handle) /* do not store the action before map */ + if (!ih->handle) /* do not do the action before map */ return 0; if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 1)) diff --git a/iup/srccontrols/matrix/iupmat_scroll.c b/iup/srccontrols/matrix/iupmat_scroll.c index 24bbef2..845d248 100755 --- a/iup/srccontrols/matrix/iupmat_scroll.c +++ b/iup/srccontrols/matrix/iupmat_scroll.c @@ -32,54 +32,32 @@ /* Private functions */ /**************************************************************************/ - -static int iMatrixScrollIsFullVisibleLast(ImatLinColData *p) -{ - int i, sum = 0; - - for(i = p->first; i <= p->last; i++) - sum += p->sizes[i]; - - if (sum > p->visible_size) - return 0; - else - return 1; -} - -/* Scroll columns/lines in the left/top side of the matriz until the last column/line is FULLY visible. - -> m : Define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -static void iMatrixScrollToVisible(Ihandle* ih, int m, int index) +static void iMatrixScrollToVisible(ImatLinColData* p, int index) { - ImatLinColData* p; + /* The work here is just to position first and first_offset, + so "index" is between "first" and "last". */ + + /* It is called only for discrete scrolling, + so first_offset usually will be set to 0. */ + + /* already visible, change nothing */ + if (index > p->first && index < p->last) + return; - if (m == IMAT_PROCESS_LIN) - p = &(ih->data->lines); - else - p = &(ih->data->columns); + /* scroll to visible, means position the cell so the start at left is visible */ - if (index < p->first) + if (index <= p->first) { p->first = index; + p->first_offset = 0; return; } - else if (index > p->last) + else /* (index >= p->last) */ { - /* Increment the first column/line until the index is visible */ - while(index > p->last && p->last != (p->num - 1)) - { - p->first++; - iupMatrixAuxUpdateLast(p); - } - } + p->last = index; - if (index == p->last) - { - /* must increment util the last is fully visible */ - while(index == p->last && p->last != (p->num - 1) && !iMatrixScrollIsFullVisibleLast(p)) - { - p->first++; - iupMatrixAuxUpdateLast(p); - } + /* adjust "first" according to "last" */ + iupMatrixAuxAdjustFirstFromLast(p); } } @@ -133,119 +111,114 @@ static int iMatrixScrollGetPrevNonEmpty(Ihandle* ih, int m, int index) return index; } -static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int m, int index) +static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int lin, int col) +{ + /* moving focus and eventually scrolling */ + iupMatrixFocusSet(ih, lin, col); + + /* set for both because focus maybe hidden */ + iMatrixScrollToVisible(&ih->data->columns, ih->data->columns.focus_cell); + iMatrixScrollToVisible(&ih->data->lines, ih->data->lines.focus_cell); +} + +static void iMatrixScrollSetFocusScrollToVisibleLinCol(Ihandle* ih, int m, int index) { if (m == IMAT_PROCESS_COL) - iupMatrixFocusSet(ih, ih->data->lines.focus_cell, index); + iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.focus_cell, index); else - iupMatrixFocusSet(ih, index, ih->data->columns.focus_cell); - - /* set for both because current focus maybe hidden */ - iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell); - iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell); + iMatrixScrollSetFocusScrollToVisible(ih, index, ih->data->columns.focus_cell); } + /**************************************************************************/ /* Exported functions */ /**************************************************************************/ -/* Move using the cells of matrix. - Receive as a parameter a pointer to a function that will make the work, - in fact. This is done to avoid a test to each of the manipulation cursor - functions, verifying if it is necessary to call or not the scroll - callback. This is only done here. - -> func - pointer to the function that will make the movement - -> mode - parameter passed to func, specify if the movement request is of - the scrollbar or the keyboard - -> pos - parameter passed to func, that will be the handle position function - of the scrollbar, returning the scrollbar thumb position... - if func is other function, this parameter will be ignored - -> m - parameter passed to func, specify which is the mode of operation: - lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] -*/ -void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m) +void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col) { int old_lines_first = ih->data->lines.first; int old_columns_first = ih->data->columns.first; + int old_lines_first_offset = ih->data->lines.first_offset; + int old_columns_first_offset = ih->data->columns.first_offset; - iupMatrixEditForceHidden(ih); + iMatrixScrollToVisible(&ih->data->columns, col); + iMatrixScrollToVisible(&ih->data->lines, lin); - func(ih, mode, pos, m); - - if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first) + if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) || + (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)) { - if (ih->data->columns.first != old_columns_first) - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL); + /* when "first" is changed must update scroll pos */ + if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset) + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL); - if (ih->data->lines.first != old_lines_first) - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN); + if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN); iMatrixScrollCallScrollTopCb(ih); - iupMatrixDraw(ih, 0); + iupMatrixDraw(ih, 1); } } -void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col) +void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m) { int old_lines_first = ih->data->lines.first; int old_columns_first = ih->data->columns.first; + int old_lines_first_offset = ih->data->lines.first_offset; + int old_columns_first_offset = ih->data->columns.first_offset; - iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, col); - iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, lin); + iupMatrixEditForceHidden(ih); - if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first) + func(ih, mode, pos, m); + + if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) || + (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)) { - if (ih->data->columns.first != old_columns_first) - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL); + /* when "first" is changed must update scroll pos */ + if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset) + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL); - if (ih->data->lines.first != old_lines_first) - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN); + if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN); iMatrixScrollCallScrollTopCb(ih); - iupMatrixDraw(ih, 1); + iupMatrixDraw(ih, 0); } } +/************************************************************************************/ + /* This function is called when the "home" key is pressed. In the first time, go to the beginning of the line. In the second time, go to the beginning of the page. In the third time, go to the beginning of the matrix. -> mode and pos : DO NOT USED. */ -void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unused_m) +void iupMatrixScrollHomeFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m) { (void)unused_m; (void)unused_mode; (void)unused_pos; /* called only for mode==IMAT_SCROLLKEY */ + /* moving focus and eventually scrolling */ if(ih->data->homekeycount == 0) /* go to the beginning of the line */ { - ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1); - iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.first); + int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1); + iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col); } else if(ih->data->homekeycount == 1) /* go to the beginning of the visible page */ { - iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first); - - /* set for both because current focus maybe hidden */ - iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell); - iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell); + iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.first, ih->data->columns.first); } else if(ih->data->homekeycount == 2) /* go to the beginning of the matrix 1:1 */ { - ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1); - ih->data->lines.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1); - - iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first); - - /* set for both because current focus maybe hidden */ - iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell); - iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell); + int lin = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1); + int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1); + iMatrixScrollSetFocusScrollToVisible(ih, lin, col); } } @@ -255,37 +228,29 @@ void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unu In the third time, go to the end of the matrix. -> mode and pos : DO NOT USED. */ -void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unused_m) +void iupMatrixScrollEndFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m) { (void)unused_m; (void)unused_mode; (void)unused_pos; /* called only for mode==IMAT_SCROLLKEY */ + /* moving focus and eventually scrolling */ if(ih->data->endkeycount == 0) /* go to the end of the line */ { - int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1); - iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, last_col); + int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1); + iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col); } else if(ih->data->endkeycount == 1) /* go to the end of the visible page */ { - iupMatrixFocusSet(ih, ih->data->lines.last, ih->data->columns.last); - - /* set for both because current focus maybe hidden */ - iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell); - iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell); + iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.last, ih->data->columns.last); } else if(ih->data->endkeycount == 2) /* go to the end of the matrix */ { - int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1); - int last_lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1); - - iupMatrixFocusSet(ih, last_lin, last_col); - - /* set for both because current focus maybe hidden */ - iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell); - iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell); + int lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1); + int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1); + iMatrixScrollSetFocusScrollToVisible(ih, lin, col); } } @@ -295,7 +260,7 @@ void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unus -> pos : DO NOT USED -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m) +void iupMatrixScrollLeftUpFunc(Ihandle* ih, int mode, float pos, int m) { ImatLinColData* p; (void)pos; @@ -307,12 +272,15 @@ void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m) if (mode == IMAT_SCROLLKEY) { + /* moving focus and eventually scrolling */ int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell-1); - iMatrixScrollSetFocusScrollToVisible(ih, m, next); + iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next); } else /* IMAT_SCROLLBAR */ { + /* always scrolling without changing focus */ p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first-1); + p->first_offset = 0; } } @@ -322,7 +290,7 @@ void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m) -> pos : DO NOT USED -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m) +void iupMatrixScrollRightDownFunc(Ihandle* ih, int mode, float pos, int m) { ImatLinColData* p; (void)pos; @@ -334,12 +302,15 @@ void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m) if (mode == IMAT_SCROLLKEY) { + /* moving focus and eventually scrolling */ int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell+1); - iMatrixScrollSetFocusScrollToVisible(ih, m, next); + iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next); } else /* IMAT_SCROLLBAR */ { + /* always scrolling without changing focus */ p->first = iMatrixScrollGetNextNonEmpty(ih, m, p->first+1); + p->first_offset = 0; } } @@ -349,7 +320,7 @@ void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m) -> pos : DO NOT USED -> m : define the mode of operation: lines (PgLeft) or columns (PgUp) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m) +void iupMatrixScrollPgLeftUpFunc(Ihandle* ih, int mode, float pos, int m) { ImatLinColData* p; (void)pos; @@ -361,12 +332,15 @@ void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m) if (mode == IMAT_SCROLLKEY) { + /* moving focus and eventually scrolling */ int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell - (p->last - p->first)); - iMatrixScrollSetFocusScrollToVisible(ih, m, next); + iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next); } else /* IMAT_SCROLLBAR */ { + /* always scrolling without changing focus */ p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first - (p->last - p->first)); + p->first_offset = 0; } } @@ -376,7 +350,7 @@ void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m) -> pos : DO NOT USED -> m : define the mode of operation: lines (PgDown) or columns (PgRight) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m) +void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int mode, float pos, int m) { ImatLinColData* p; (void)pos; @@ -388,16 +362,19 @@ void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m) if (mode == IMAT_SCROLLKEY) { - int next = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, p->focus_cell + (p->last - p->first)); - iMatrixScrollSetFocusScrollToVisible(ih, m, next); + /* moving focus and eventually scrolling */ + int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell + (p->last - p->first)); + iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next); } else /* IMAT_SCROLLBAR */ { + /* always scrolling without changing focus */ p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first + (p->last - p->first)); + p->first_offset = 0; } } -void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unused_m) +void iupMatrixScrollCrFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m) { int oldlin = ih->data->lines.focus_cell; int oldcol = ih->data->columns.focus_cell; @@ -408,13 +385,13 @@ void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse /* called only for mode==IMAT_SCROLLKEY */ /* try the normal processing of next cell down */ - iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN); + iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN); if(ih->data->lines.focus_cell == oldlin && ih->data->columns.focus_cell == oldcol) { /* If focus was not changed, it was because it is in the last line of the column. Go to the next column of the same line. */ - iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL); + iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL); } } @@ -423,70 +400,51 @@ void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse -> mode : DO NOT USED -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */ -void iupMatrixScrollPos(Ihandle* ih, int mode, float pos, int m) +void iupMatrixScrollPosFunc(Ihandle* ih, int mode, float pos, int m) { - int scroll_pos, index, vp; - float d; + int scroll_pos; ImatLinColData* p; (void)mode; if (m == IMAT_PROCESS_LIN) - { p = &(ih->data->lines); - d = IupGetFloat(ih, "DY"); - } else - { p = &(ih->data->columns); - d = IupGetFloat(ih, "DX"); - } if (p->num == 1) { p->first = 1; + p->first_offset = 0; return; } scroll_pos = (int)(pos * p->total_size + 0.5); - vp = 0; - for(index = 1; index < p->num; index++) - { - vp += p->sizes[index]; - if (vp > scroll_pos) - break; - } - - if (index == p->num) - { - if (p->num == 1) - index = 1; - else - index = p->num-1; - } - - p->first = index; + /* position first and first_offset, according to scroll pos */ + iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos); } -int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y) +/************************************************************************************/ + +int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy) { if (!iupMatrixIsValid(ih, 0)) return IUP_DEFAULT; switch(action) { - case IUP_SBUP : iupMatrixScrollUp(ih); break; - case IUP_SBDN : iupMatrixScrollDown(ih); break; - case IUP_SBPGUP : iupMatrixScrollPgUp(ih); break; - case IUP_SBPGDN : iupMatrixScrollPgDown(ih); break; - case IUP_SBRIGHT : iupMatrixScrollRight(ih); break; - case IUP_SBLEFT : iupMatrixScrollLeft(ih); break; - case IUP_SBPGRIGHT : iupMatrixScrollPgRight(ih); break; - case IUP_SBPGLEFT : iupMatrixScrollPgLeft(ih); break; - case IUP_SBPOSV : iupMatrixScrollPosVer(ih,y); break; - case IUP_SBPOSH : iupMatrixScrollPosHor(ih,x); break; - case IUP_SBDRAGV : iupMatrixScrollPosVer(ih,y); break; - case IUP_SBDRAGH : iupMatrixScrollPosHor(ih,x); break; + case IUP_SBUP : iupMATRIX_ScrollUp(ih); break; + case IUP_SBDN : iupMATRIX_ScrollDown(ih); break; + case IUP_SBPGUP : iupMATRIX_ScrollPgUp(ih); break; + case IUP_SBPGDN : iupMATRIX_ScrollPgDown(ih); break; + case IUP_SBRIGHT : iupMATRIX_ScrollRight(ih); break; + case IUP_SBLEFT : iupMATRIX_ScrollLeft(ih); break; + case IUP_SBPGRIGHT : iupMATRIX_ScrollPgRight(ih); break; + case IUP_SBPGLEFT : iupMATRIX_ScrollPgLeft(ih); break; + case IUP_SBPOSV : iupMATRIX_ScrollPosVer(ih,posy); break; + case IUP_SBPOSH : iupMATRIX_ScrollPosHor(ih,posx); break; + case IUP_SBDRAGV : iupMATRIX_ScrollPosVer(ih,posy); break; + case IUP_SBDRAGH : iupMATRIX_ScrollPosHor(ih,posx); break; } iupMatrixDrawUpdate(ih); diff --git a/iup/srccontrols/matrix/iupmat_scroll.h b/iup/srccontrols/matrix/iupmat_scroll.h index 582442b..45d7417 100755 --- a/iup/srccontrols/matrix/iupmat_scroll.h +++ b/iup/srccontrols/matrix/iupmat_scroll.h @@ -12,54 +12,54 @@ extern "C" { #endif -int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y); +int iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy); void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col); -typedef void (*iupMatrixScrollMoveF)(Ihandle* ih, int mode, float pos, int m); -void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m); +typedef void (*iupMatrixScrollMoveFunc)(Ihandle* ih, int mode, float pos, int m); +void iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m); /* Used only by the macros bellow */ -void iupMatrixScrollHome (Ihandle* ih, int, float, int); -void iupMatrixScrollEnd (Ihandle* ih, int, float, int); -void iupMatrixScrollLeftUp (Ihandle* ih, int, float, int); -void iupMatrixScrollRightDown (Ihandle* ih, int, float, int); -void iupMatrixScrollPgLeftUp (Ihandle* ih, int, float, int); -void iupMatrixScrollPgRightDown(Ihandle* ih, int, float, int); -void iupMatrixScrollPos (Ihandle* ih, int, float, int); -void iupMatrixScrollCr (Ihandle* ih, int, float, int); +void iupMatrixScrollHomeFunc (Ihandle* ih, int, float, int); +void iupMatrixScrollEndFunc (Ihandle* ih, int, float, int); +void iupMatrixScrollLeftUpFunc (Ihandle* ih, int, float, int); +void iupMatrixScrollRightDownFunc (Ihandle* ih, int, float, int); +void iupMatrixScrollPgLeftUpFunc (Ihandle* ih, int, float, int); +void iupMatrixScrollPgRightDownFunc(Ihandle* ih, int, float, int); +void iupMatrixScrollPosFunc (Ihandle* ih, int, float, int); +void iupMatrixScrollCrFunc (Ihandle* ih, int, float, int); /* Mode used to "walk" inside the matrix. It shows if the movement request was from the scrollbar or from a key. - Possible values for the "mode" parameter of the iupMatrixScrollMoveCursor function. + Possible values for the "mode" parameter of the iupMatrixScrollMove function. */ #define IMAT_SCROLLBAR 0 #define IMAT_SCROLLKEY 1 -/* Macros to help during the call of iupMatrixScrollMoveCursor function */ +/* Macros to help during the call of iupMatrixScrollMove function */ /* used in the keyboard processing module */ -#define iupMatrixScrollKeyHome(ih) iupMatrixScrollMoveCursor(iupMatrixScrollHome , ih, IMAT_SCROLLKEY, 0, 0) -#define iupMatrixScrollKeyEnd(ih) iupMatrixScrollMoveCursor(iupMatrixScrollEnd , ih, IMAT_SCROLLKEY, 0, 0) -#define iupMatrixScrollKeyPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollKeyPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollKeyDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollKeyRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL) -#define iupMatrixScrollKeyUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollKeyLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL) -#define iupMatrixScrollKeyCr(ih) iupMatrixScrollMoveCursor(iupMatrixScrollCr , ih, IMAT_SCROLLKEY, 0, 0) +#define iupMATRIX_ScrollKeyHome(ih) iupMatrixScrollMove(iupMatrixScrollHomeFunc , ih, IMAT_SCROLLKEY, 0, 0) +#define iupMATRIX_ScrollKeyEnd(ih) iupMatrixScrollMove(iupMatrixScrollEndFunc , ih, IMAT_SCROLLKEY, 0, 0) +#define iupMATRIX_ScrollKeyPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollKeyPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollKeyDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollKeyRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollKeyUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollKeyLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollKeyCr(ih) iupMatrixScrollMove(iupMatrixScrollCrFunc , ih, IMAT_SCROLLKEY, 0, 0) /* Used by the scrollbar callback only */ -#define iupMatrixScrollUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) -#define iupMatrixScrollDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) -#define iupMatrixScrollPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollPgLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) -#define iupMatrixScrollPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) -#define iupMatrixScrollPgRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) -#define iupMatrixScrollPosVer(ih, y) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, y, IMAT_PROCESS_LIN) -#define iupMatrixScrollPosHor(ih, x) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, x, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollPgLeft(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollPgRight(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL) +#define iupMATRIX_ScrollPosVer(ih, y) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posy, IMAT_PROCESS_LIN) +#define iupMATRIX_ScrollPosHor(ih, x) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posx, IMAT_PROCESS_COL) #ifdef __cplusplus diff --git a/iup/srccontrols/matrix/iupmatrix.c b/iup/srccontrols/matrix/iupmatrix.c index 20d618d..9e379e2 100755 --- a/iup/srccontrols/matrix/iupmatrix.c +++ b/iup/srccontrols/matrix/iupmatrix.c @@ -76,10 +76,13 @@ static int iMatrixSetOriginAttrib(Ihandle* ih, const char* value) return 0; ih->data->columns.first = col; + ih->data->columns.first_offset = 0; ih->data->lines.first = lin; + ih->data->lines.first_offset = 0; - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL); - iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN); + /* when "first" is changed must update scroll pos */ + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL); + iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN); iupMatrixDraw(ih, 1); return 0; @@ -109,7 +112,7 @@ static int iMatrixSetShowAttrib(Ihandle* ih, const char* value) if((lin < 1) || (col < 1)) return 0; - if (!iupMatrixAuxIsCellFullVisible(ih, lin, col)) + if (!iupMatrixAuxIsCellStartVisible(ih, lin, col)) iupMatrixScrollToVisible(ih, lin, col); return 0; @@ -173,6 +176,23 @@ static char* iMatrixGetUseTitleSizeAttrib(Ihandle* ih) return "NO"; } +static int iMatrixSetHiddenTextMarksAttrib(Ihandle* ih, const char* value) +{ + if (iupStrBoolean(value)) + ih->data->hidden_text_marks = 1; + else + ih->data->hidden_text_marks = 0; + return 0; +} + +static char* iMatrixGetHiddenTextMarksAttrib(Ihandle* ih) +{ + if (ih->data->hidden_text_marks) + return "YES"; + else + return "NO"; +} + static int iMatrixSetValueAttrib(Ihandle* ih, const char* value) { if (IupGetInt(ih->data->datah, "VISIBLE")) @@ -228,14 +248,14 @@ static char* iMatrixGetMultilineAttrib(Ihandle* ih) static char* iMatrixGetNumLinAttrib(Ihandle* ih) { char* num = iupStrGetMemory(100); - sprintf(num, "%d", ih->data->lines.num-1); + sprintf(num, "%d", ih->data->lines.num-1); /* the attribute does not include the title */ return num; } static char* iMatrixGetNumColAttrib(Ihandle* ih) { char* num = iupStrGetMemory(100); - sprintf(num, "%d", ih->data->columns.num-1); + sprintf(num, "%d", ih->data->columns.num-1); /* the attribute does not include the title */ return num; } @@ -427,13 +447,19 @@ static char* iMatrixGetAlignmentAttrib(Ihandle* ih, const char* name_id) align = iupAttribGet(ih, str); if (!align) { - int col; - if (iupStrToInt(name_id, &col)) + align = iupAttribGet(ih, "ALIGNMENT"); + if (align) + return align; + else { - if (col == 0) - return "ALEFT"; - else - return "ACENTER"; + int col; + if (iupStrToInt(name_id, &col)) + { + if (col == 0) + return "ALEFT"; + else + return "ACENTER"; + } } } @@ -642,7 +668,7 @@ static int iMatrixCreateMethod(Ihandle* ih, void **params) /* Create the edit fields */ iupMatrixEditCreate(ih); - /* defaults */ + /* defaults that are non zero */ ih->data->datah = ih->data->texth; ih->data->mark_continuous = 1; ih->data->columns.num = 1; @@ -656,7 +682,6 @@ static int iMatrixCreateMethod(Ihandle* ih, void **params) ih->data->mark_col1 = -1; ih->data->mark_lin2 = -1; ih->data->mark_col2 = -1; - ih->data->use_title_size = 0; return IUP_NOERROR; } @@ -700,11 +725,34 @@ static void iMatrixUnMapMethod(Ihandle* ih) iupMatrixMemRelease(ih); } +static char* iMatrixGetDefault(Ihandle* ih, const char* name) +{ + int inherit; + char *def_value; + iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit); + return def_value; +} + +static int iMatrixGetInt(Ihandle* ih, const char* name) +{ + char *value = iupAttribGet(ih, name); + if (!value) value = iMatrixGetDefault(ih, name); + if (value) + { + int i = 0; + if (iupStrToInt(value, &i)) + return i; + } + return 0; +} + static int iMatrixGetNaturalWidth(Ihandle* ih) { int width = 0, num, col; - num = iupAttribGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */ + /* must use this custom function because + the get method for this attribute returns a value with a different meaning */ + num = iMatrixGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */ if (iupAttribGetInt(ih, "NUMCOL_VISIBLE_LAST")) { @@ -716,9 +764,7 @@ static int iMatrixGetNaturalWidth(Ihandle* ih) } else { - if (num > ih->data->columns.num) - num = ih->data->columns.num; - for(col = 0; col < num; col++) + for(col = 0; col < num; col++) /* num can be > numcol */ width += iupMatrixAuxGetColumnWidth(ih, col); } @@ -729,7 +775,9 @@ static int iMatrixGetNaturalHeight(Ihandle* ih) { int height = 0, num, lin; - num = iupAttribGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */ + /* must use this custom function because + the get method for this attribute returns a value with a different meaning */ + num = iMatrixGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */ if (iupAttribGetInt(ih, "NUMLIN_VISIBLE_LAST")) { @@ -741,9 +789,7 @@ static int iMatrixGetNaturalHeight(Ihandle* ih) } else { - if (num > ih->data->lines.num) - num = ih->data->lines.num; - for(lin = 0; lin < num; lin++) + for(lin = 0; lin < num; lin++) /* num can be > numlin */ height += iupMatrixAuxGetLineHeight(ih, lin); } @@ -902,6 +948,8 @@ Iclass* iupMatrixGetClass(void) /* IupMatrix Attributes - GENERAL */ iupClassRegisterAttribute(ic, "USETITLESIZE", iMatrixGetUseTitleSizeAttrib, iMatrixSetUseTitleSizeAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "HIDDENTEXTMARKS", iMatrixGetHiddenTextMarksAttrib, iMatrixSetHiddenTextMarksAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "FRAMECOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "100 100 100", IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "READONLY", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "RESIZEMATRIX", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); diff --git a/iup/srcgl/Makefile b/iup/srcgl/Makefile index 882d0d2..48037f0 100755 --- a/iup/srcgl/Makefile +++ b/iup/srcgl/Makefile @@ -3,4 +3,4 @@ do_all: iupgl iupgl: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srcim/Makefile b/iup/srcim/Makefile index 933ded1..d47e014 100755 --- a/iup/srcim/Makefile +++ b/iup/srcim/Makefile @@ -3,4 +3,4 @@ do_all: iupim iupim: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srcim/iup_im.c b/iup/srcim/iup_im.c index c26a3ff..ce58d80 100755 --- a/iup/srcim/iup_im.c +++ b/iup/srcim/iup_im.c @@ -23,7 +23,7 @@ #include "iup_image.h" -static void PrintError(int error) +static void iSaveErrorMsg(int error) { char* lang = IupGetLanguage(); char* msg; @@ -31,20 +31,22 @@ static void PrintError(int error) { switch (error) { + case IM_ERR_NONE: + msg = NULL; case IM_ERR_OPEN: - msg = "Error Opening File.\n"; + msg = "Error Opening Image File.\n"; break; case IM_ERR_MEM: msg = "Insuficient memory.\n"; break; case IM_ERR_ACCESS: - msg = "Error Accessing File.\n"; + msg = "Error Accessing Image File.\n"; break; case IM_ERR_DATA: msg = "Image type not Suported.\n"; break; case IM_ERR_FORMAT: - msg = "Invalid Format.\n"; + msg = "Invalid Image File Format.\n"; break; case IM_ERR_COMPRESS: msg = "Invalid or unsupported compression.\n"; @@ -57,20 +59,22 @@ static void PrintError(int error) { switch (error) { + case IM_ERR_NONE: + msg = NULL; case IM_ERR_OPEN: - msg = "Erro Abrindo Arquivo.\n"; + msg = "Erro Abrindo Arquivo de Imagem.\n"; break; case IM_ERR_MEM: msg = "Memória Insuficiente.\n"; break; case IM_ERR_ACCESS: - msg = "Erro Acessando Arquivo.\n"; + msg = "Erro Acessando Arquivo de Imagem.\n"; break; case IM_ERR_DATA: msg = "Tipo de Imagem não Suportado.\n"; break; case IM_ERR_FORMAT: - msg = "Formato Inválido.\n"; + msg = "Formato de Arquivo de Imagem Inválido.\n"; break; case IM_ERR_COMPRESS: msg = "Compressão Inválida ou não Suportada.\n"; @@ -80,7 +84,7 @@ static void PrintError(int error) } } - IupMessage("Error", msg); + IupSetGlobal("IUPIM_LASTERROR", msg); } Ihandle* IupLoadImage(const char* file_name) @@ -165,7 +169,7 @@ load_finish: imCounterSetCallback(NULL, old_callback); if (ifile) imFileClose(ifile); if (image_data) free(image_data); - if (error) PrintError(error); + iSaveErrorMsg(error); return iup_image; } @@ -188,7 +192,7 @@ int IupSaveImage(Ihandle* ih, const char* file_name, const char* format) ifile = imFileNew(file_name, format, &error); if (!ifile) { - PrintError(error); + iSaveErrorMsg(error); return 0; } @@ -238,8 +242,7 @@ int IupSaveImage(Ihandle* ih, const char* file_name, const char* format) imFileClose(ifile); - if (error) - PrintError(error); + iSaveErrorMsg(error); return error == IM_ERR_NONE? 1: 0; } diff --git a/iup/srcimglib/Makefile b/iup/srcimglib/Makefile index 261537a..873715f 100755 --- a/iup/srcimglib/Makefile +++ b/iup/srcimglib/Makefile @@ -3,4 +3,4 @@ do_all: iupimglib iupimglib: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srcledc/Makefile b/iup/srcledc/Makefile index 8854269..71b9235 100755 --- a/iup/srcledc/Makefile +++ b/iup/srcledc/Makefile @@ -3,4 +3,4 @@ do_all: ledc ledc: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srclua3/Makefile b/iup/srclua3/Makefile index b63716a..0551725 100755 --- a/iup/srclua3/Makefile +++ b/iup/srclua3/Makefile @@ -3,19 +3,19 @@ do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim iuplua: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak iupluacd: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd iupluacontrols: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols iuplua_pplot: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot iupluagl: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl iupluaim: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim diff --git a/iup/srclua3/config.mak b/iup/srclua3/config.mak index fae6145..a3ffb1d 100755 --- a/iup/srclua3/config.mak +++ b/iup/srclua3/config.mak @@ -6,9 +6,9 @@ OPT = YES LOHDIR = loh SRCLUA = iuplua.lua iuplua_widgets.lua constants.lua spin.lua \ - sbox.lua val.lua tree.lua tabs.lua + sbox.lua split.lua val.lua tree.lua tabs.lua SRC = iuplua.c iuplua_api.c iuplua_widgets.c il_scanf.c il_cbox.c \ - il_sbox.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c + il_sbox.c il_split.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c USE_LUA = Yes diff --git a/iup/srclua3/il.h b/iup/srclua3/il.h index 406ccc4..63f9866 100755 --- a/iup/srclua3/il.h +++ b/iup/srclua3/il.h @@ -15,6 +15,7 @@ int iupluaapi_open(void); int iupluawidgets_open(int tag); int sboxlua_open(void); +int splitlua_open(void); int spinlua_open(void); int cboxlua_open(void); int gclua_open (void); diff --git a/iup/srclua3/il_getparam.c b/iup/srclua3/il_getparam.c index 28a41be..6005ce8 100755 --- a/iup/srclua3/il_getparam.c +++ b/iup/srclua3/il_getparam.c @@ -93,6 +93,8 @@ static void GetParam(void) param_data[i] = malloc(sizeof(float)); *(float*)(param_data[i]) = (float)luaL_check_number(lua_param_start); lua_param_start++; break; + case 'f': + case 'c': case 's': case 'm': s = luaL_check_string(lua_param_start); lua_param_start++; @@ -136,6 +138,8 @@ static void GetParam(void) case 'r': lua_pushnumber(*(float*)(param_data[i])); break; + case 'f': + case 'c': case 's': case 'm': lua_pushstring((char*)(param_data[i])); diff --git a/iup/srclua3/il_split.c b/iup/srclua3/il_split.c new file mode 100644 index 0000000..9d6f70c --- /dev/null +++ b/iup/srclua3/il_split.c @@ -0,0 +1,50 @@ +/** \file + * \brief Bindig of iupsplit to Lua 3. + * + * See Copyright Notice in "iup.h" + */ + +#include <stdlib.h> + +#include "iup.h" + +#include <lua.h> + +#include "iuplua.h" +#include "il.h" +#include "il_controls.h" + +static void CreateSplit(void) +{ + int tag = (int)lua_getnumber(lua_getglobal("iuplua_tag")); + lua_pushusertag(IupSplit(iuplua_checkihandle(1), iuplua_checkihandle(2)), tag); +} + +int splitlua_open(void) +{ + lua_register("iupCreateSplit", CreateSplit); + +#ifdef IUPLUA_USELOH +#ifdef TEC_BIGENDIAN +#ifdef TEC_64 +#include "loh/split_be64.loh" +#else +#include "loh/split_be32.loh" +#endif +#else +#ifdef TEC_64 +#ifdef WIN64 +#include "loh/split_le64w.loh" +#else +#include "loh/split_le64.loh" +#endif +#else +#include "loh/split.loh" +#endif +#endif +#else + iuplua_dofile("luasplit.lua"); +#endif + + return 1; +} diff --git a/iup/srclua3/il_tree.c b/iup/srclua3/il_tree.c index 8d5fcf8..5d145bf 100755 --- a/iup/srclua3/il_tree.c +++ b/iup/srclua3/il_tree.c @@ -91,6 +91,29 @@ static int TREE_multiselection (Ihandle *handle, int *ids, int n) return iuplua_call(); } +static int TREE_multiunselection (Ihandle *handle, int *ids, int n) +{ + int i; + lua_Object tb; + + iuplua_call_start(handle, "multiunselection"); + + tb = lua_createtable(); + for (i = 0; i < n; i++) + { + lua_beginblock(); + lua_pushobject(tb); + lua_pushnumber(i+1); + lua_pushnumber(ids[i]); + lua_settable(); + lua_endblock(); + } + lua_pushobject(tb); + + lua_pushnumber (n); + return iuplua_call(); +} + static int TREE_dragdrop(Ihandle* handle, int drag_id, int drop_id, int isshift, int iscontrol) { iuplua_call_start(handle, "dragdrop"); @@ -232,6 +255,7 @@ int treelua_open(void) lua_CFunction func; } TreeAssocList [] = { {"iup_tree_multiselection_cb", (lua_CFunction)TREE_multiselection}, + {"iup_tree_multiunselection_cb", (lua_CFunction)TREE_multiunselection}, {"iup_tree_selection_cb", (lua_CFunction)TREE_selection}, {"iup_tree_branchopen_cb", (lua_CFunction)TREE_branchopen}, {"iup_tree_branchclose_cb", (lua_CFunction)TREE_branchclose}, diff --git a/iup/srclua3/iuplua.c b/iup/srclua3/iuplua.c index 7789ce8..5563699 100755 --- a/iup/srclua3/iuplua.c +++ b/iup/srclua3/iuplua.c @@ -481,6 +481,7 @@ int iuplua_open(void) iupluawidgets_open(iuplua_tag); sboxlua_open(); + splitlua_open(); spinlua_open(); cboxlua_open(); vallua_open(); diff --git a/iup/srclua3/iuplua_api.c b/iup/srclua3/iuplua_api.c index 3221658..a9acf1d 100755 --- a/iup/srclua3/iuplua_api.c +++ b/iup/srclua3/iuplua_api.c @@ -182,7 +182,7 @@ static void GetAttribute(void) char *name = luaL_check_string(2); Ihandle* ih = iuplua_checkihandle(1); char *value = IupGetAttribute(ih, name); - if (!value || iupAttribIsInternal(name)) + if (!value || iupATTRIB_ISINTERNAL(name)) lua_pushnil(); else { diff --git a/iup/srclua3/iuplua_widgets.c b/iup/srclua3/iuplua_widgets.c index f6b801b..7591580 100755 --- a/iup/srclua3/iuplua_widgets.c +++ b/iup/srclua3/iuplua_widgets.c @@ -170,6 +170,12 @@ static int iupluaUnMapCb(Ihandle* handle) return iuplua_call(); } +static int iupluaDestroyCb(Ihandle* handle) +{ + iuplua_call_start(handle, "destroycb"); + return iuplua_call(); +} + static int iupluaMapCb(Ihandle* handle) { iuplua_call_start(handle, "mapcb"); @@ -610,6 +616,7 @@ int iupluawidgets_open(int tag) { "iup_show_cb", (lua_CFunction)dialog_show}, { "iup_map_cb", (lua_CFunction)iupluaMapCb}, { "iup_unmap_cb", (lua_CFunction)iupluaUnMapCb}, + { "iup_destroy_cb", (lua_CFunction)iupluaDestroyCb}, { "iup_dropfiles_cb", (lua_CFunction)iupluaDropfilesCb}, { "iup_trayclick_cb", (lua_CFunction)dialog_trayclick}, { "iup_getfocus_cb", (lua_CFunction)iupluaGetfocusCb}, diff --git a/iup/srclua3/iuplua_widgets.lua b/iup/srclua3/iuplua_widgets.lua index 33be9e3..a59bde6 100755 --- a/iup/srclua3/iuplua_widgets.lua +++ b/iup/srclua3/iuplua_widgets.lua @@ -875,6 +875,7 @@ iup_callbacks = showcb = {"SHOW_CB", iup_show_cb}, mapcb = {"MAP_CB", iup_map_cb}, unmapcb = {"UNMAP_CB", iup_unmap_cb}, + destroycb = {"DESTROY_CB", iup_destroy_cb}, dropfiles = {"DROPFILES_CB", iup_dropfiles_cb}, menuclose = {"MENUCLOSE_CB", iup_menuclose_cb}, highlight = {"HIGHLIGHT_CB", iup_highlight_cb}, @@ -921,6 +922,7 @@ iup_callbacks.open_cb = iup_callbacks.open iup_callbacks.show_cb = iup_callbacks.showcb iup_callbacks.map_cb = iup_callbacks.mapcb iup_callbacks.unmap_cb = iup_callbacks.unmapcb +iup_callbacks.destroy_cb = iup_callbacks.destroycb iup_callbacks.dropfiles_cb = iup_callbacks.dropfiles iup_callbacks.menuclose_cb = iup_callbacks.menuclose iup_callbacks.highlight_cb = iup_callbacks.highlight diff --git a/iup/srclua3/loh/cells.loh b/iup/srclua3/loh/cells.loh deleted file mode 100755 index 78336b8..0000000 --- a/iup/srclua3/loh/cells.loh +++ /dev/null @@ -1,76 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacells.lo"); -*/ -/* ../obj/iupluacontrols3/luacells.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8, - 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29, - 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11, - 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15, - 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, - 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11, - 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, - 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15, - 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18, - 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26, - 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11, - 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, - 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, - 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101, -109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0, - 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108, -117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0, - 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115, -101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101, -108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108, -108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97, -108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111, -117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117, -115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77, - 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101, -108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83, - 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, - 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, - 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84, - 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95, -119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, - 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, - 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98, - 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76, - 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108, -108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99, -111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99, - 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83, - 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108, -115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97, -110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0, - 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, - 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0, - 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103, -104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9, -104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95, - 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells.lo"); -} diff --git a/iup/srclua3/loh/cells_be32.loh b/iup/srclua3/loh/cells_be32.loh deleted file mode 100755 index d1db35f..0000000 --- a/iup/srclua3/loh/cells_be32.loh +++ /dev/null @@ -1,76 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacells_be32.lo"); -*/ -/* ../obj/iupluacontrols3/luacells_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8, - 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29, - 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11, - 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15, - 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, - 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11, - 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, - 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15, - 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18, - 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26, - 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11, - 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, - 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, - 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101, -109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0, - 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108, -117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0, - 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115, -101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101, -108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108, -108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97, -108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111, -117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117, -115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77, - 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101, -108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83, - 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, - 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, - 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84, - 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95, -119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, - 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, - 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98, - 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76, - 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108, -108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99, -111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99, - 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83, - 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108, -115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97, -110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0, - 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, - 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0, - 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103, -104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9, -104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95, - 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells_be32.lo"); -} diff --git a/iup/srclua3/loh/cells_be64.loh b/iup/srclua3/loh/cells_be64.loh deleted file mode 100755 index b832e4b..0000000 --- a/iup/srclua3/loh/cells_be64.loh +++ /dev/null @@ -1,75 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/cells_be64.lo"); -*/ -/* ../obj/iupluacontrols3/cells_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64, 99,101,108,108,115, - 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8, 25, 7, 15, - 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0, 2, 26, - 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11, 18, 22, 2, - 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, - 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 11, 11, 27, - 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11, 31, 15, 32, - 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 11, - 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15, 11, 18, 12, - 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18, 18, 26, 15, - 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26, 15, 11, 11, - 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11, 11, 46, 15, - 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, - 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64, 99,101,108,108,115, 46,108,117, - 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67, -114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0, 0, 7,114,101,100,114, - 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 11, 64, 99,101,108,108,115, 46,108, -117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0, 11, 1, 15, 2, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 8, -114,101,112, 97,105,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, - 0, 2, 0, 0, 0, 9,105,117,112, 99,101,108,108,115, 0, 4, 0, 0, 0, 11, - 0, 0, 0, 11, 64, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, - 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, - 11,109,111,117,115,101, 99,108,105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, - 83, 69, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, - 99,101,108,108,115, 95,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, - 2, 0, 0, 0, 12,109,111,117,115,101,109,111,116,105,111,110, 0, 2, 0, 0, - 0, 15, 77, 79, 85, 83, 69, 77, 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, - 0, 25,105,117,112, 95, 99,101,108,108,115, 95,109,111,117,115,101,109,111,116, -105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,105,110, -103, 0, 2, 0, 0, 0, 13, 83, 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, - 2, 0, 0, 0, 23,105,117,112, 95, 99,101,108,108,115, 95,115, 99,114,111,108, -108,105,110,103, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, - 0, 0, 0, 9, 87, 73, 68, 84, 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117, -112, 95, 99,101,108,108,115, 95,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, - 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, - 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108,108,115, 95,104, -101,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, - 0, 2, 0, 0, 0, 10, 78, 76, 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, - 20,105,117,112, 95, 99,101,108,108,115, 95,110,108,105,110,101,115, 95, 99, 98, - 0, 2, 0, 0, 0, 6,110, 99,111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, - 76, 83, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, - 95,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, - 0, 2, 0, 0, 0, 9, 72, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19, -105,117,112, 95, 99,101,108,108,115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, - 0, 0, 0, 6,118,115,112, 97,110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, - 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,118, -115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,111,117,115,101, 99,108, -105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,111,117,115,101,109,111,116, -105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,105,110, -103, 95, 99, 98, 0, 2, 0, 0, 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, - 0, 0, 0, 10,104,101,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110, -108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, - 99, 98, 0, 2, 0, 0, 0, 9,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, - 0, 9,118,115,112, 97,110, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/cells_be64.lo"); -} diff --git a/iup/srclua3/loh/cells_le64.loh b/iup/srclua3/loh/cells_le64.loh deleted file mode 100755 index 11a2caf..0000000 --- a/iup/srclua3/loh/cells_le64.loh +++ /dev/null @@ -1,76 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacells_le64.lo"); -*/ -/* ../obj/iupluacontrols3/luacells_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8, - 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29, - 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11, - 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15, - 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, - 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11, - 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, - 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15, - 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18, - 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26, - 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11, - 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, - 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, - 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101, -109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0, - 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108, -117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0, - 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115, -101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101, -108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108, -108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97, -108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111, -117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117, -115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77, - 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101, -108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83, - 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, - 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, - 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84, - 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95, -119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, - 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, - 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98, - 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76, - 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108, -108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99, -111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99, - 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83, - 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108, -115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97, -110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0, - 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, - 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0, - 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103, -104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9, -104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95, - 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells_le64.lo"); -} diff --git a/iup/srclua3/loh/cells_le64w.loh b/iup/srclua3/loh/cells_le64w.loh deleted file mode 100755 index 9084ea9..0000000 --- a/iup/srclua3/loh/cells_le64w.loh +++ /dev/null @@ -1,76 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacells_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luacells_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0,245, 5, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 11, 8, - 25, 7, 15, 9, 11, 10, 15, 7, 26, 15, 11, 11, 12, 22, 2, 11, 13, 15, 14, 29, - 0, 2, 26, 15, 11, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 11, 11, - 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 11, 11, 21, 22, 2, 11, 22, 15, - 23, 29, 0, 2, 26, 15, 11, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, - 11, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 11, 11, 30, 22, 2, 11, - 31, 15, 32, 29, 0, 2, 26, 15, 11, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, - 26, 15, 11, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 11, 11, 39, 15, - 11, 18, 12, 26, 15, 11, 11, 40, 15, 11, 18, 15, 26, 15, 11, 11, 41, 15, 11, 18, - 18, 26, 15, 11, 11, 42, 15, 11, 18, 21, 26, 15, 11, 11, 43, 15, 11, 18, 24, 26, - 15, 11, 11, 44, 15, 11, 18, 27, 26, 15, 11, 11, 45, 15, 11, 18, 30, 26, 15, 11, - 11, 46, 15, 11, 18, 33, 26, 15, 11, 11, 47, 15, 11, 18, 36, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 2, 0, 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, - 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, - 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101, -109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97, 99,101, -108,108,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 15,105,117,112, 67,114,101, 97,116,101, 67,101,108,108,115, 0, 2, 0, 0, - 0, 7,114,101,100,114, 97,119, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108, -117, 97, 99,101,108,108,115, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 1, 13, 0, - 11, 1, 15, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115, -101,108,102, 0, 2, 0, 0, 0, 8,114,101,112, 97,105,110,116, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 9,105,117,112, 99,101, -108,108,115, 0, 4, 0, 0, 0, 11, 0, 0, 0, 14, 64,108,117, 97, 99,101,108, -108,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 67, 69, 76, 76, 83, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 6, 99,101,108,108,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97, -108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 11,109,111,117,115,101, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 77, 79, 85, 83, 69, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95, 99,101,108,108,115, 95,109,111, -117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12,109,111,117, -115,101,109,111,116,105,111,110, 0, 2, 0, 0, 0, 15, 77, 79, 85, 83, 69, 77, - 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,101, -108,108,115, 95,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108,105,110,103, 0, 2, 0, 0, 0, 13, 83, - 67, 82, 79, 76, 76, 73, 78, 71, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, - 95, 99,101,108,108,115, 95,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, - 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 9, 87, 73, 68, 84, - 72, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95, -119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, - 0, 2, 0, 0, 0, 10, 72, 69, 73, 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, - 20,105,117,112, 95, 99,101,108,108,115, 95,104,101,105,103,104,116, 95, 99, 98, - 0, 2, 0, 0, 0, 7,110,108,105,110,101,115, 0, 2, 0, 0, 0, 10, 78, 76, - 73, 78, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95, 99,101,108, -108,115, 95,110,108,105,110,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 6,110, 99, -111,108,115, 0, 2, 0, 0, 0, 9, 78, 67, 79, 76, 83, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95, 99,101,108,108,115, 95,110, 99,111,108,115, 95, 99, - 98, 0, 2, 0, 0, 0, 6,104,115,112, 97,110, 0, 2, 0, 0, 0, 9, 72, 83, - 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, 99,101,108,108, -115, 95,104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 6,118,115,112, 97, -110, 0, 2, 0, 0, 0, 9, 86, 83, 80, 65, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 19,105,117,112, 95, 99,101,108,108,115, 95,118,115,112, 97,110, 95, 99, 98, 0, - 2, 0, 0, 0, 14,109,111,117,115,101, 99,108,105, 99,107, 95, 99, 98, 0, 2, - 0, 0, 0, 15,109,111,117,115,101,109,111,116,105,111,110, 95, 99, 98, 0, 2, - 0, 0, 0, 13,115, 99,114,111,108,108,105,110,103, 95, 99, 98, 0, 2, 0, 0, - 0, 9,119,105,100,116,104, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,101,105,103, -104,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,110,108,105,110,101,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,110, 99,111,108,115, 95, 99, 98, 0, 2, 0, 0, 0, 9, -104,115,112, 97,110, 95, 99, 98, 0, 2, 0, 0, 0, 9,118,115,112, 97,110, 95, - 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacells_le64w.lo"); -} diff --git a/iup/srclua3/loh/colorbar.loh b/iup/srclua3/loh/colorbar.loh deleted file mode 100755 index 6dd3f7e..0000000 --- a/iup/srclua3/loh/colorbar.loh +++ /dev/null @@ -1,49 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacolorbar.lo"); -*/ -/* ../obj/iupluacontrols3/luacolorbar.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111, -108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11, - 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, - 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, - 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11, - 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2, - 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15, - 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, - 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108, -117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, - 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99, -111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76, - 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97, -114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99, -116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, - 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108, -101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98, - 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0, - 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104, - 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0, - 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0, - 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, -115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar.lo"); -} diff --git a/iup/srclua3/loh/colorbar_be32.loh b/iup/srclua3/loh/colorbar_be32.loh deleted file mode 100755 index 2a33b10..0000000 --- a/iup/srclua3/loh/colorbar_be32.loh +++ /dev/null @@ -1,49 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacolorbar_be32.lo"); -*/ -/* ../obj/iupluacontrols3/luacolorbar_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111, -108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11, - 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, - 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, - 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11, - 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2, - 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15, - 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, - 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108, -117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, - 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99, -111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76, - 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97, -114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99, -116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, - 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108, -101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98, - 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0, - 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104, - 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0, - 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0, - 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, -115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar_be32.lo"); -} diff --git a/iup/srclua3/loh/colorbar_be64.loh b/iup/srclua3/loh/colorbar_be64.loh deleted file mode 100755 index cb0ed3e..0000000 --- a/iup/srclua3/loh/colorbar_be64.loh +++ /dev/null @@ -1,48 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/colorbar_be64.lo"); -*/ -/* ../obj/iupluacontrols3/colorbar_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 99,111,108,111,114, - 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, - 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, - 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11, 17, 15, 18, - 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2, 26, 15, 9, - 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15, 9, 11, 24, - 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, - 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, 64, 99,111,108,111, -114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, - 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, - 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, 67,111,108,111,114, 98, - 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,111,114, 98, 97,114, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 14, 64, 99,111,108,111,114, 98, 97,114, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, - 0, 9, 99,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, - 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7, 99,101,108,108, 99, - 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76, 95, 67, 66, 0, 2, 0, 0, 0, 21, -105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95, 99,101,108,108, 95, 99, 98, - 0, 2, 0, 0, 0, 9,115,101,108,101, 99,116, 99, 98, 0, 2, 0, 0, 0, 10, - 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95, 99, -111,108,111,114, 98, 97,114, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, - 0, 0, 9,115,119,105,116, 99,104, 99, 98, 0, 2, 0, 0, 0, 10, 83, 87, 73, - 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95, 99,111,108,111, -114, 98, 97,114, 95,115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 11, -101,120,116,101,110,100,101,100, 99, 98, 0, 2, 0, 0, 0, 12, 69, 88, 84, 69, - 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95, 99,111,108, -111,114, 98, 97,114, 95,101,120,116,101,110,100,101,100, 95, 99, 98, 0, 2, 0, - 0, 0, 8, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 10,115,101,108,101, - 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10,115,119,105,116, 99,104, 95, 99, 98, - 0, 2, 0, 0, 0, 12,101,120,116,101,110,100,101,100, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/colorbar_be64.lo"); -} diff --git a/iup/srclua3/loh/colorbar_le64.loh b/iup/srclua3/loh/colorbar_le64.loh deleted file mode 100755 index 583e9d3..0000000 --- a/iup/srclua3/loh/colorbar_le64.loh +++ /dev/null @@ -1,49 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacolorbar_le64.lo"); -*/ -/* ../obj/iupluacontrols3/luacolorbar_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111, -108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11, - 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, - 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, - 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11, - 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2, - 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15, - 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, - 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108, -117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, - 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99, -111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76, - 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97, -114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99, -116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, - 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108, -101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98, - 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0, - 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104, - 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0, - 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0, - 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, -115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar_le64.lo"); -} diff --git a/iup/srclua3/loh/colorbar_le64w.loh b/iup/srclua3/loh/colorbar_le64w.loh deleted file mode 100755 index ce8d260..0000000 --- a/iup/srclua3/loh/colorbar_le64w.loh +++ /dev/null @@ -1,49 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacolorbar_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luacolorbar_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 17, 64,108,117, 97, 99,111, -108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0,123, 5, 0, 22, 1, 11, - 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, - 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, - 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 22, 2, 11, - 17, 15, 18, 29, 0, 2, 26, 15, 9, 11, 19, 22, 2, 11, 20, 15, 21, 29, 0, 2, - 26, 15, 9, 11, 22, 15, 9, 18, 10, 26, 15, 9, 11, 23, 15, 9, 18, 13, 26, 15, - 9, 11, 24, 15, 9, 18, 16, 26, 15, 9, 11, 25, 15, 9, 18, 19, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, - 65, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 17, 64,108, -117, 97, 99,111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, - 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 98, 97,114, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114, 98, 97,114, 0, 4, 0, 0, 0, 7, 0, 0, 0, 17, 64,108,117, 97, 99, -111,108,111,114, 98, 97,114, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 66, 65, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 9, 99,111,108,111,114, 98, 97,114, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 7, 99,101,108,108, 99, 98, 0, 2, 0, 0, 0, 8, 67, 69, 76, 76, - 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95, 99,111,108,111,114, 98, 97, -114, 95, 99,101,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,101,108,101, 99, -116, 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, - 0, 0, 0, 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,101,108, -101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 9,115,119,105,116, 99,104, 99, 98, - 0, 2, 0, 0, 0, 10, 83, 87, 73, 84, 67, 72, 95, 67, 66, 0, 2, 0, 0, 0, - 23,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,115,119,105,116, 99,104, - 95, 99, 98, 0, 2, 0, 0, 0, 11,101,120,116,101,110,100,101,100, 99, 98, 0, - 2, 0, 0, 0, 12, 69, 88, 84, 69, 78, 68, 69, 68, 95, 67, 66, 0, 2, 0, 0, - 0, 25,105,117,112, 95, 99,111,108,111,114, 98, 97,114, 95,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, 2, 0, 0, 0, 8, 99,101,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, -115,119,105,116, 99,104, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,116,101,110, -100,101,100, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacolorbar_le64w.lo"); -} diff --git a/iup/srclua3/loh/colorbrowser.loh b/iup/srclua3/loh/colorbrowser.loh deleted file mode 100755 index eb3301a..0000000 --- a/iup/srclua3/loh/colorbrowser.loh +++ /dev/null @@ -1,39 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacb.lo"); -*/ -/* ../obj/iupluacontrols3/luacb.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98, - 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11, - 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17, - 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73, - 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7, -112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, - 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, - 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, - 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112, - 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2, - 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67, - 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5, -100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, -100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0, - 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27, -105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97, -110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0, - 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb.lo"); -} diff --git a/iup/srclua3/loh/colorbrowser_be32.loh b/iup/srclua3/loh/colorbrowser_be32.loh deleted file mode 100755 index 950ac0b..0000000 --- a/iup/srclua3/loh/colorbrowser_be32.loh +++ /dev/null @@ -1,39 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacb_be32.lo"); -*/ -/* ../obj/iupluacontrols3/luacb_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98, - 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11, - 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17, - 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73, - 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7, -112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, - 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, - 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, - 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112, - 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2, - 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67, - 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5, -100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, -100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0, - 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27, -105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97, -110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0, - 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb_be32.lo"); -} diff --git a/iup/srclua3/loh/colorbrowser_be64.loh b/iup/srclua3/loh/colorbrowser_be64.loh deleted file mode 100755 index e307445..0000000 --- a/iup/srclua3/loh/colorbrowser_be64.loh +++ /dev/null @@ -1,40 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/colorbrowser_be64.lo"); -*/ -/* ../obj/iupluacontrols3/colorbrowser_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 18, 64, 99,111,108,111,114, - 98,114,111,119,115,101,114, 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, - 11, 1, 15, 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, - 7, 11, 8, 15, 5, 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, - 15, 9, 11, 13, 22, 2, 11, 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, - 18, 10, 26, 15, 9, 11, 17, 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 2, 0, 0, 0, 16, 73, 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, - 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80, -101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 18, 64, 99,111, -108,111,114, 98,114,111,119,115,101,114, 46,108,117, 97, 0, 0, 0, 0, 10, 4, - 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2, 0, 0, 0, 16,105,117, -112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 4, 0, 0, 0, 7, 0, - 0, 0, 18, 64, 99,111,108,111,114, 98,114,111,119,115,101,114, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, - 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, - 0, 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, - 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, - 5,100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, - 0, 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, - 95,100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, - 0, 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, - 27,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, - 97,110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, - 0, 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/colorbrowser_be64.lo"); -} diff --git a/iup/srclua3/loh/colorbrowser_le64.loh b/iup/srclua3/loh/colorbrowser_le64.loh deleted file mode 100755 index dbf21d2..0000000 --- a/iup/srclua3/loh/colorbrowser_le64.loh +++ /dev/null @@ -1,39 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacb_le64.lo"); -*/ -/* ../obj/iupluacontrols3/luacb_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98, - 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11, - 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17, - 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73, - 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7, -112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, - 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, - 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, - 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112, - 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2, - 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67, - 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5, -100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, -100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0, - 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27, -105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97, -110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0, - 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb_le64.lo"); -} diff --git a/iup/srclua3/loh/colorbrowser_le64w.loh b/iup/srclua3/loh/colorbrowser_le64w.loh deleted file mode 100755 index 5738bec..0000000 --- a/iup/srclua3/loh/colorbrowser_le64w.loh +++ /dev/null @@ -1,39 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luacb_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luacb_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,108,117, 97, 99, 98, - 46,108,117, 97, 0, 0, 0, 0, 77, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 22, 2, 11, - 14, 15, 15, 29, 0, 2, 26, 15, 9, 11, 16, 15, 9, 18, 10, 26, 15, 9, 11, 17, - 15, 9, 18, 13, 26, 0, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 0, 0, 16, 73, - 85, 80, 67, 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 7, -112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, - 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, - 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, - 0, 0, 0, 0, 10, 4, 2, 15, 1, 13, 1, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 22,105,117,112, - 67,114,101, 97,116,101, 67,111,108,111,114, 66,114,111,119,115,101,114, 0, 2, - 0, 0, 0, 16,105,117,112, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,108,117, 97, 99, 98, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 16, 73, 85, 80, 67, - 79, 76, 79, 82, 66, 82, 79, 87, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 13, 99,111,108,111,114, 98,114,111,119,115,101,114, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5, -100,114, 97,103, 0, 2, 0, 0, 0, 8, 68, 82, 65, 71, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, -100,114, 97,103, 95, 99, 98, 0, 2, 0, 0, 0, 7, 99,104, 97,110,103,101, 0, - 2, 0, 0, 0, 10, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 27, -105,117,112, 95, 99,111,108,111,114, 98,114,111,119,115,101,114, 95, 99,104, 97, -110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,103, 95, 99, 98, 0, - 2, 0, 0, 0, 10, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luacb_le64w.lo"); -} diff --git a/iup/srclua3/loh/constants.loh b/iup/srclua3/loh/constants.loh deleted file mode 100755 index c9c3c4b..0000000 --- a/iup/srclua3/loh/constants.loh +++ /dev/null @@ -1,301 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/constants.lo"); -*/ -/* ../obj/iuplua3/constants.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116, - 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,182, 4, 0, 7, 1, 25, 0, 15, - 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25, - 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6, -255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12, - 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15, - 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6, -255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15, - 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11, - 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15, - 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25, - 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9, - 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39, - 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44, - 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1, - 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51, - 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6, - 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26, - 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15, - 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11, - 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15, - 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25, - 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15, - 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15, - 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15, - 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15, - 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15, - 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15, - 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11, - 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86, - 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91, - 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1, - 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98, - 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103, - 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26, - 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15, -108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11, -113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15, - 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25, -120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11, -125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126, - 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131, - 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1, - 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138, - 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143, - 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26, - 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15, -148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11, -153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15, - 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25, -160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11, -165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166, - 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171, - 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1, - 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178, - 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183, - 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26, - 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15, -188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11, -193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15, - 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25, -200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11, -205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206, - 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211, - 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1, - 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218, - 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223, - 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26, - 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15, -228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11, -233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15, - 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25, -240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 15, - 1, 11,244, 11,245, 26, 15, 1, 11,246, 11,247, 26, 15, 1, 11,248, 11,249, 26, - 15, 1, 11,250, 11,251, 26, 15, 1, 11,252, 11,253, 26, 0, 0, 0, 0, 0, 0, - 0, 0,254, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, - 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, 79, 82, 0, 2, 0, - 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 8, - 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 79, 80, 69, - 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 8, 73, 78, - 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, - 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, 70, 84, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 6, 82, 73, - 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, 85, 83, 69, 80, 79, - 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 67, 85, - 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 67, 69, 78, 84, 69, - 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, 78, 84, 69, 82, 80, - 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 84, 79, 80, 0, 2, - 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 66, 79, 84, - 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, - 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, - 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 73, 71, 78, 79, 82, - 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 8, 68, 69, 70, 65, - 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, - 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 67, - 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, 78, 84, 73, 78, 85, - 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, 0, 2, 0, 0, 0, - 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 68, 78, 0, - 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, - 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, 85, 80, 0, 2, 0, - 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 7, 83, - 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 79, 83, - 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 8, 83, 66, 68, 82, - 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, 0, 12, 73, 85, 80, - 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, 66, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 10, 83, 66, - 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, - 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 8, 83, 66, - 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 72, 79, 87, 0, - 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 82, - 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, 84, 79, 82, 69, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, - 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, - 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 77, 65, 88, 73, 77, - 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, 68, 69, 0, 2, 0, - 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, 68, 0, 2, 0, 0, - 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, 82, 69, 69, 78, 0, - 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, 66, 76, 65, 67, 75, - 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, 0, 7, 89, 69, 76, - 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, 0, 2, 0, 0, 0, - 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, 70, 0, 2, 0, 0, - 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, - 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 80, 80, - 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 9, 86, - 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, 80, 95, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, 69, 78, 84, 69, 82, - 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 10, 73, - 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, - 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 65, 84, 79, - 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 12, 73, 85, 80, - 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, 66, 79, 84, 84, 79, - 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, 72, 0, 2, 0, 0, - 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 83, 79, 85, - 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, 83, 84, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, 0, 5, 69, 65, 83, - 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, 0, 0, 0, 3, 78, - 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, 0, 0, 0, 3, 83, - 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, 0, 0, 0, 3, 78, - 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, 0, 0, 0, 3, 83, - 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, 0, 2, 0, 0, 0, - 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 65, 76, 70, 0, - 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 84, - 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 8, 81, 85, - 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 69, 73, 71, 72, 84, - 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 10, 73, - 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, 82, 82, 79, 87, 0, - 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, 0, 0, 0, 5, 66, - 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, - 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 9, 82, - 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, - 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 69, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, - 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, - 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, - 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, - 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, - 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, - 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 10, 82, 69, - 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 77, 79, 86, - 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, 78, 79, 78, 69, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, 0, 0, 4, 73, 85, - 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, 83, 0, 2, 0, 0, - 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 80, 69, 78, - 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 84, - 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 9, 82, 69, 83, - 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 79, 80, 69, 78, 72, - 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, - 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, - 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, - 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, - 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, - 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, - 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, - 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, - 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, - 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, - 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, - 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, - 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, - 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, - 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, - 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, - 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 52, - 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, - 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, - 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, - 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, - 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, - 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, - 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, - 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, - 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, - 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, - 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, - 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, - 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, - 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, - 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, - 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, - 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 16, - 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, - 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, - 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, - 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, - 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, - 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 52, - 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, - 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, - 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, - 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 13, 84, 73, 77, - 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 16, - 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, - 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, - 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, - 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, - 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, - 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 16, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, - 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, - 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, - 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, - 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 14, 84, 73, - 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 11, 77, 65, 83, - 75, 95, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 24, 91, 43, 47, 45, 93, 63, 40, - 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0, - 0, 12, 77, 65, 83, 75, 95, 85, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 18, 40, - 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0, - 0, 12, 77, 65, 83, 75, 95, 69, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 40, 91, - 43, 47, 45, 93, 63, 40, 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, - 43, 41, 40, 91,101, 69, 93, 91, 43, 47, 45, 93, 63, 47,100, 43, 41, 63, 0, 2, - 0, 0, 0, 9, 77, 65, 83, 75, 95, 73, 78, 84, 0, 2, 0, 0, 0, 10, 91, 43, - 47, 45, 93, 63, 47,100, 43, 0, 2, 0, 0, 0, 10, 77, 65, 83, 75, 95, 85, 73, - 78, 84, 0, 2, 0, 0, 0, 4, 47,100, 43, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants.lo"); -} diff --git a/iup/srclua3/loh/constants_be32.loh b/iup/srclua3/loh/constants_be32.loh deleted file mode 100755 index 0b6a3a8..0000000 --- a/iup/srclua3/loh/constants_be32.loh +++ /dev/null @@ -1,289 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/constants_be32.lo"); -*/ -/* ../obj/iuplua3/constants_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116, - 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,147, 4, 0, 7, 1, 25, 0, 15, - 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25, - 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6, -255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12, - 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15, - 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6, -255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15, - 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11, - 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15, - 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25, - 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9, - 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39, - 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44, - 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1, - 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51, - 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6, - 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26, - 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15, - 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11, - 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15, - 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25, - 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15, - 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15, - 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15, - 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15, - 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15, - 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15, - 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11, - 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86, - 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91, - 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1, - 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98, - 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103, - 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26, - 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15, -108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11, -113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15, - 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25, -120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11, -125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126, - 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131, - 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1, - 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138, - 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143, - 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26, - 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15, -148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11, -153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15, - 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25, -160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11, -165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166, - 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171, - 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1, - 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178, - 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183, - 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26, - 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15, -188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11, -193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15, - 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25, -200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11, -205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206, - 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211, - 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1, - 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218, - 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223, - 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26, - 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15, -228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11, -233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15, - 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25, -240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 0, - 0, 0, 0, 0, 0, 0, 0,244, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, - 79, 82, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, - 79, 82, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, - 2, 0, 0, 0, 8, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, - 0, 0, 8, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, - 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, - 70, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, - 0, 0, 6, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, - 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, - 0, 0, 8, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, - 67, 69, 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, - 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 84, 79, 80, 0, 2, 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, - 0, 0, 8, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, - 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, - 0, 0, 8, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, - 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, - 0, 0, 8, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, - 0, 0, 0, 12, 73, 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, - 8, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, - 79, 83, 69, 0, 2, 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, - 73, 85, 80, 95, 67, 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, - 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, - 0, 2, 0, 0, 0, 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, - 83, 66, 68, 78, 0, 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, - 73, 85, 80, 95, 83, 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, - 85, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, - 0, 0, 0, 7, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, - 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, - 8, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, - 76, 69, 70, 84, 0, 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, - 0, 12, 73, 85, 80, 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, - 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, - 76, 69, 70, 84, 0, 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, - 0, 0, 0, 14, 73, 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, - 0, 0, 10, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, - 0, 0, 8, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, - 83, 72, 79, 87, 0, 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, - 73, 85, 80, 95, 82, 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, - 84, 79, 82, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, - 90, 69, 0, 2, 0, 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, - 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, - 68, 69, 0, 2, 0, 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, - 68, 0, 2, 0, 0, 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, - 82, 69, 69, 78, 0, 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, - 66, 76, 65, 67, 75, 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, - 0, 7, 89, 69, 76, 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, - 0, 2, 0, 0, 0, 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, - 70, 0, 2, 0, 0, 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, - 80, 95, 78, 79, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, - 0, 0, 0, 9, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, - 80, 95, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, - 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, - 76, 69, 70, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, - 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95, 65, 84, 79, 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, - 0, 12, 73, 85, 80, 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, - 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, - 72, 0, 2, 0, 0, 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, - 80, 95, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, - 0, 0, 0, 9, 73, 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, - 83, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, - 0, 5, 69, 65, 83, 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, - 0, 0, 0, 3, 78, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, - 0, 0, 0, 3, 83, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, - 0, 0, 0, 3, 78, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, - 0, 0, 0, 3, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, - 0, 2, 0, 0, 0, 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, - 72, 65, 76, 70, 0, 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, - 73, 85, 80, 95, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, - 0, 0, 8, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, - 82, 82, 79, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, - 0, 0, 0, 5, 66, 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, - 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, - 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, - 80, 95, 82, 69, 83, 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, - 90, 69, 95, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, - 95, 87, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, - 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, - 10, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, - 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, - 69, 95, 78, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, - 95, 83, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, - 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, - 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95, 77, 79, 86, 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, - 0, 9, 73, 85, 80, 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, - 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, - 78, 79, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, - 0, 0, 4, 73, 85, 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, - 83, 0, 2, 0, 0, 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, - 80, 95, 80, 69, 78, 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 95, 84, 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, - 0, 9, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, - 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, - 78, 68, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, - 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, - 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, - 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, - 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, - 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, - 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, - 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, - 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, - 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, - 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, - 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, - 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, - 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, - 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, - 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, - 76, 95, 49, 52, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, - 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, - 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, - 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, - 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, - 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, - 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, - 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, - 73, 67, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, - 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, - 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, - 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, - 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, - 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, - 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, - 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, - 76, 95, 49, 50, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, - 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, - 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, - 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, - 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, - 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, - 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, - 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, - 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, - 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, - 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, - 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, - 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, - 0, 13, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, - 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, - 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, - 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, - 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, - 83, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, - 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, - 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, - 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, - 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, - 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, - 95, 49, 50, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, - 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, - 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, - 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, - 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_be32.lo"); -} diff --git a/iup/srclua3/loh/constants_be64.loh b/iup/srclua3/loh/constants_be64.loh deleted file mode 100755 index bb31b19..0000000 --- a/iup/srclua3/loh/constants_be64.loh +++ /dev/null @@ -1,301 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/constants_be64.lo"); -*/ -/* ../obj/iuplua3/constants_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116, - 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,182, 4, 0, 7, 1, 25, 0, 15, - 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25, - 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6, -255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12, - 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15, - 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6, -255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15, - 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11, - 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15, - 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25, - 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9, - 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39, - 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44, - 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1, - 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51, - 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6, - 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26, - 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15, - 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11, - 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15, - 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25, - 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15, - 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15, - 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15, - 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15, - 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15, - 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15, - 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11, - 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86, - 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91, - 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1, - 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98, - 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103, - 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26, - 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15, -108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11, -113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15, - 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25, -120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11, -125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126, - 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131, - 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1, - 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138, - 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143, - 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26, - 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15, -148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11, -153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15, - 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25, -160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11, -165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166, - 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171, - 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1, - 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178, - 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183, - 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26, - 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15, -188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11, -193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15, - 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25, -200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11, -205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206, - 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211, - 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1, - 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218, - 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223, - 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26, - 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15, -228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11, -233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15, - 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25, -240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 15, - 1, 11,244, 11,245, 26, 15, 1, 11,246, 11,247, 26, 15, 1, 11,248, 11,249, 26, - 15, 1, 11,250, 11,251, 26, 15, 1, 11,252, 11,253, 26, 0, 0, 0, 0, 0, 0, - 0, 0,254, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, - 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, 79, 82, 0, 2, 0, - 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 8, - 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 79, 80, 69, - 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 8, 73, 78, - 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, - 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, 70, 84, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 6, 82, 73, - 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, 85, 83, 69, 80, 79, - 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 67, 85, - 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 67, 69, 78, 84, 69, - 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, 78, 84, 69, 82, 80, - 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 84, 79, 80, 0, 2, - 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 66, 79, 84, - 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, - 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, - 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 73, 71, 78, 79, 82, - 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 8, 68, 69, 70, 65, - 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, - 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 67, - 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, 78, 84, 73, 78, 85, - 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, 0, 2, 0, 0, 0, - 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 68, 78, 0, - 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, - 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, 85, 80, 0, 2, 0, - 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 7, 83, - 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 79, 83, - 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 8, 83, 66, 68, 82, - 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, 0, 12, 73, 85, 80, - 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, 66, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 10, 83, 66, - 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, - 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 8, 83, 66, - 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 72, 79, 87, 0, - 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 82, - 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, 84, 79, 82, 69, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, - 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, - 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 77, 65, 88, 73, 77, - 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, 68, 69, 0, 2, 0, - 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, 68, 0, 2, 0, 0, - 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, 82, 69, 69, 78, 0, - 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, 66, 76, 65, 67, 75, - 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, 0, 7, 89, 69, 76, - 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, 0, 2, 0, 0, 0, - 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, 70, 0, 2, 0, 0, - 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, - 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 80, 80, - 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 9, 86, - 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, 80, 95, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, 69, 78, 84, 69, 82, - 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 10, 73, - 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, - 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 65, 84, 79, - 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 12, 73, 85, 80, - 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, 66, 79, 84, 84, 79, - 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, 72, 0, 2, 0, 0, - 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 83, 79, 85, - 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, 83, 84, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, 0, 5, 69, 65, 83, - 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, 0, 0, 0, 3, 78, - 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, 0, 0, 0, 3, 83, - 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, 0, 0, 0, 3, 78, - 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, 0, 0, 0, 3, 83, - 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, 0, 2, 0, 0, 0, - 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 65, 76, 70, 0, - 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 84, - 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 8, 81, 85, - 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 69, 73, 71, 72, 84, - 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 10, 73, - 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, 82, 82, 79, 87, 0, - 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, 0, 0, 0, 5, 66, - 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, - 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 9, 82, - 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, - 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 69, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, - 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, - 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, - 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, - 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, - 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, - 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 10, 82, 69, - 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 77, 79, 86, - 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, 78, 79, 78, 69, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, 0, 0, 4, 73, 85, - 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, 83, 0, 2, 0, 0, - 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 80, 69, 78, - 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 84, - 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 9, 82, 69, 83, - 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 79, 80, 69, 78, 72, - 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, - 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, - 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, - 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, - 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, - 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, - 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, - 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, - 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, - 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, - 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, - 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, - 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, - 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, - 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, - 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, - 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 52, - 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, - 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, - 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, - 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, - 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, - 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, - 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, - 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, - 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, - 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, - 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, - 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, - 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, - 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, - 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, - 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, - 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 16, - 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, - 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, - 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, - 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, - 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, - 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 52, - 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, - 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, - 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, - 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 13, 84, 73, 77, - 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 16, - 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, - 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, - 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, - 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, - 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, - 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 16, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, - 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, - 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, - 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, - 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 14, 84, 73, - 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 11, 77, 65, 83, - 75, 95, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 24, 91, 43, 47, 45, 93, 63, 40, - 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0, - 0, 12, 77, 65, 83, 75, 95, 85, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 18, 40, - 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0, - 0, 12, 77, 65, 83, 75, 95, 69, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 40, 91, - 43, 47, 45, 93, 63, 40, 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, - 43, 41, 40, 91,101, 69, 93, 91, 43, 47, 45, 93, 63, 47,100, 43, 41, 63, 0, 2, - 0, 0, 0, 9, 77, 65, 83, 75, 95, 73, 78, 84, 0, 2, 0, 0, 0, 10, 91, 43, - 47, 45, 93, 63, 47,100, 43, 0, 2, 0, 0, 0, 10, 77, 65, 83, 75, 95, 85, 73, - 78, 84, 0, 2, 0, 0, 0, 4, 47,100, 43, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_be64.lo"); -} diff --git a/iup/srclua3/loh/constants_le64.loh b/iup/srclua3/loh/constants_le64.loh deleted file mode 100755 index 54ece5d..0000000 --- a/iup/srclua3/loh/constants_le64.loh +++ /dev/null @@ -1,289 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/constants_le64.lo"); -*/ -/* ../obj/iuplua3/constants_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116, - 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,147, 4, 0, 7, 1, 25, 0, 15, - 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25, - 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6, -255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12, - 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15, - 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6, -255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15, - 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11, - 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15, - 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25, - 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9, - 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39, - 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44, - 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1, - 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51, - 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6, - 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26, - 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15, - 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11, - 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15, - 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25, - 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15, - 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15, - 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15, - 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15, - 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15, - 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15, - 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11, - 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86, - 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91, - 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1, - 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98, - 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103, - 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26, - 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15, -108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11, -113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15, - 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25, -120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11, -125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126, - 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131, - 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1, - 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138, - 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143, - 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26, - 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15, -148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11, -153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15, - 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25, -160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11, -165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166, - 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171, - 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1, - 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178, - 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183, - 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26, - 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15, -188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11, -193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15, - 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25, -200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11, -205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206, - 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211, - 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1, - 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218, - 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223, - 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26, - 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15, -228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11, -233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15, - 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25, -240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 0, - 0, 0, 0, 0, 0, 0, 0,244, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, - 79, 82, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, - 79, 82, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, - 2, 0, 0, 0, 8, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, - 0, 0, 8, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, - 0, 0, 0, 9, 73, 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, - 70, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, - 0, 0, 6, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, - 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, - 0, 0, 8, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, - 67, 69, 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, - 78, 84, 69, 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 84, 79, 80, 0, 2, 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, - 0, 0, 8, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, - 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, - 0, 0, 8, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, - 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, - 0, 0, 8, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, - 0, 0, 0, 12, 73, 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, - 8, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, - 79, 83, 69, 0, 2, 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, - 73, 85, 80, 95, 67, 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, - 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, - 0, 2, 0, 0, 0, 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, - 83, 66, 68, 78, 0, 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, - 73, 85, 80, 95, 83, 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, - 85, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, - 0, 0, 0, 7, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, - 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, - 8, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, - 76, 69, 70, 84, 0, 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, - 0, 12, 73, 85, 80, 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, - 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, - 76, 69, 70, 84, 0, 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, - 0, 0, 0, 14, 73, 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, - 0, 0, 10, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, - 0, 0, 8, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, - 83, 72, 79, 87, 0, 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, - 73, 85, 80, 95, 82, 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, - 84, 79, 82, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, - 90, 69, 0, 2, 0, 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, - 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, - 68, 69, 0, 2, 0, 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, - 68, 0, 2, 0, 0, 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, - 82, 69, 69, 78, 0, 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, - 66, 76, 65, 67, 75, 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, - 0, 7, 89, 69, 76, 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, - 0, 2, 0, 0, 0, 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, - 70, 0, 2, 0, 0, 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, - 80, 95, 78, 79, 0, 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 95, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, - 0, 0, 0, 9, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, - 80, 95, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, - 82, 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, - 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, - 76, 69, 70, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, - 0, 2, 0, 0, 0, 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95, 65, 84, 79, 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, - 0, 12, 73, 85, 80, 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, - 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, - 72, 0, 2, 0, 0, 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, - 80, 95, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, - 0, 0, 0, 9, 73, 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, - 83, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, - 0, 5, 69, 65, 83, 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, - 0, 0, 0, 3, 78, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, - 0, 0, 0, 3, 83, 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, - 0, 0, 0, 3, 78, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, - 0, 0, 0, 3, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, - 0, 2, 0, 0, 0, 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, - 72, 65, 76, 70, 0, 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, - 73, 85, 80, 95, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, - 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, - 0, 0, 8, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, - 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, - 82, 82, 79, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, - 0, 0, 0, 5, 66, 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, - 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, - 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, - 80, 95, 82, 69, 83, 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, - 90, 69, 95, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, - 95, 87, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, - 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, - 10, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, - 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, - 69, 95, 78, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, - 95, 83, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, - 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, - 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95, 77, 79, 86, 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, - 0, 9, 73, 85, 80, 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, - 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, - 78, 79, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, - 0, 0, 4, 73, 85, 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, - 83, 0, 2, 0, 0, 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, - 80, 95, 80, 69, 78, 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 95, 84, 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, - 0, 9, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, - 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, - 78, 68, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, - 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, - 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, - 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, - 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, - 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, - 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, - 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, - 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, - 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, - 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, - 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, - 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, - 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, - 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, - 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, - 76, 95, 49, 52, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, - 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, - 0, 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, - 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, - 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, - 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, - 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, - 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, - 73, 67, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, - 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, - 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, - 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, - 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, - 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, - 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, - 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, - 76, 95, 49, 50, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, - 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, - 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, - 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, - 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, - 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, - 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, - 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, - 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, - 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, - 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, - 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, - 83, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, - 0, 13, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, - 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, - 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, - 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, - 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, - 83, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, - 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, - 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, - 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, - 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, - 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, - 95, 49, 50, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, - 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, - 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, - 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, - 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, - 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, - 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_le64.lo"); -} diff --git a/iup/srclua3/loh/constants_le64w.loh b/iup/srclua3/loh/constants_le64w.loh deleted file mode 100755 index 6e7ed93..0000000 --- a/iup/srclua3/loh/constants_le64w.loh +++ /dev/null @@ -1,301 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/constants_le64w.lo"); -*/ -/* ../obj/iuplua3/constants_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64, 99,111,110,115,116, - 97,110,116,115, 46,108,117, 97, 0, 0, 0, 5,182, 4, 0, 7, 1, 25, 0, 15, - 1, 11, 2, 15, 0, 26, 7, 0, 25, 3, 15, 1, 11, 4, 15, 3, 26, 9, 1, 25, - 5, 15, 1, 11, 6, 15, 5, 26, 9, 1, 25, 7, 15, 1, 11, 8, 15, 7, 26, 6, -255,255, 25, 9, 15, 1, 11, 10, 15, 9, 26, 6,255,254, 25, 11, 15, 1, 11, 12, - 15, 11, 26, 6,255,253, 25, 13, 15, 1, 11, 14, 15, 13, 26, 6,255,252, 25, 15, - 15, 1, 11, 16, 15, 15, 26, 6,255,251, 25, 17, 15, 1, 11, 18, 15, 17, 26, 6, -255,250, 25, 19, 15, 1, 11, 20, 15, 19, 26, 15, 11, 25, 21, 15, 1, 11, 22, 15, - 21, 26, 15, 13, 25, 23, 15, 1, 11, 24, 15, 23, 26, 7, 49, 25, 25, 15, 1, 11, - 26, 15, 25, 26, 7, 50, 25, 27, 15, 1, 11, 28, 15, 27, 26, 7, 51, 25, 29, 15, - 1, 11, 30, 15, 29, 26, 7, 52, 25, 31, 15, 1, 11, 32, 15, 31, 26, 7, 53, 25, - 33, 15, 1, 11, 34, 15, 33, 26, 9, 1, 25, 35, 15, 1, 11, 36, 15, 35, 26, 9, - 2, 25, 37, 15, 1, 11, 38, 15, 37, 26, 9, 3, 25, 39, 15, 1, 11, 40, 15, 39, - 26, 9, 4, 25, 41, 15, 1, 11, 42, 15, 41, 26, 7, 0, 25, 43, 15, 1, 11, 44, - 15, 43, 26, 7, 1, 25, 45, 15, 1, 11, 46, 15, 45, 26, 7, 2, 25, 47, 15, 1, - 11, 48, 15, 47, 26, 7, 3, 25, 49, 15, 1, 11, 50, 15, 49, 26, 7, 4, 25, 51, - 15, 1, 11, 52, 15, 51, 26, 7, 5, 25, 53, 15, 1, 11, 54, 15, 53, 26, 7, 6, - 25, 55, 15, 1, 11, 56, 15, 55, 26, 7, 7, 25, 57, 15, 1, 11, 58, 15, 57, 26, - 7, 8, 25, 59, 15, 1, 11, 60, 15, 59, 26, 7, 9, 25, 61, 15, 1, 11, 62, 15, - 61, 26, 7, 10, 25, 63, 15, 1, 11, 64, 15, 63, 26, 7, 11, 25, 65, 15, 1, 11, - 66, 15, 65, 26, 7, 0, 25, 67, 15, 1, 11, 68, 15, 67, 26, 7, 1, 25, 69, 15, - 1, 11, 70, 15, 69, 26, 7, 2, 25, 71, 15, 1, 11, 72, 15, 71, 26, 7, 3, 25, - 73, 15, 1, 11, 74, 15, 73, 26, 7, 4, 25, 75, 15, 1, 11, 76, 15, 75, 26, 15, - 78, 7, 1, 7, 0, 7, 0, 2, 1, 3, 25, 77, 15, 1, 11, 77, 15, 77, 26, 15, - 78, 7, 0, 7, 1, 7, 0, 2, 1, 3, 25, 79, 15, 1, 11, 79, 15, 79, 26, 15, - 78, 7, 0, 7, 0, 7, 1, 2, 1, 3, 25, 80, 15, 1, 11, 80, 15, 80, 26, 15, - 78, 7, 0, 7, 0, 7, 0, 2, 1, 3, 25, 81, 15, 1, 11, 81, 15, 81, 26, 15, - 78, 7, 1, 7, 1, 7, 1, 2, 1, 3, 25, 82, 15, 1, 11, 82, 15, 82, 26, 15, - 78, 7, 1, 7, 1, 7, 0, 2, 1, 3, 25, 83, 15, 1, 11, 83, 15, 83, 26, 11, - 85, 25, 84, 15, 1, 11, 85, 15, 84, 26, 11, 87, 25, 86, 15, 1, 11, 87, 15, 86, - 26, 11, 89, 25, 88, 15, 1, 11, 89, 15, 88, 26, 11, 91, 25, 90, 15, 1, 11, 91, - 15, 90, 26, 11, 93, 25, 92, 15, 1, 11, 93, 15, 92, 26, 11, 95, 25, 94, 15, 1, - 11, 95, 15, 94, 26, 11, 97, 25, 96, 15, 1, 11, 97, 15, 96, 26, 11, 99, 25, 98, - 15, 1, 11, 99, 15, 98, 26, 11,101, 25,100, 15, 1, 11,101, 15,100, 26, 11,103, - 25,102, 15, 1, 11,103, 15,102, 26, 11,105, 25,104, 15, 1, 11,105, 15,104, 26, - 11,107, 25,106, 15, 1, 11,107, 15,106, 26, 11,109, 25,108, 15, 1, 11,109, 15, -108, 26, 11,111, 25,110, 15, 1, 11,111, 15,110, 26, 11,113, 25,112, 15, 1, 11, -113, 15,112, 26, 11,115, 25,114, 15, 1, 11,115, 15,114, 26, 11,117, 25,116, 15, - 1, 11,117, 15,116, 26, 11,119, 25,118, 15, 1, 11,119, 15,118, 26, 11,121, 25, -120, 15, 1, 11,121, 15,120, 26, 11,123, 25,122, 15, 1, 11,123, 15,122, 26, 11, -125, 25,124, 15, 1, 11,125, 15,124, 26, 11,127, 25,126, 15, 1, 11,127, 15,126, - 26, 11,129, 25,128, 15, 1, 11,129, 15,128, 26, 11,131, 25,130, 15, 1, 11,131, - 15,130, 26, 11,133, 25,132, 15, 1, 11,133, 15,132, 26, 11,135, 25,134, 15, 1, - 11,135, 15,134, 26, 11,137, 25,136, 15, 1, 11,137, 15,136, 26, 11,139, 25,138, - 15, 1, 11,139, 15,138, 26, 11,141, 25,140, 15, 1, 11,141, 15,140, 26, 11,143, - 25,142, 15, 1, 11,143, 15,142, 26, 11,145, 25,144, 15, 1, 11,145, 15,144, 26, - 11,147, 25,146, 15, 1, 11,147, 15,146, 26, 11,149, 25,148, 15, 1, 11,149, 15, -148, 26, 11,151, 25,150, 15, 1, 11,151, 15,150, 26, 11,153, 25,152, 15, 1, 11, -153, 15,152, 26, 11,155, 25,154, 15, 1, 11,155, 15,154, 26, 11,157, 25,156, 15, - 1, 11,157, 15,156, 26, 11,159, 25,158, 15, 1, 11,159, 15,158, 26, 11,161, 25, -160, 15, 1, 11,161, 15,160, 26, 11,163, 25,162, 15, 1, 11,163, 15,162, 26, 11, -165, 25,164, 15, 1, 11,165, 15,164, 26, 11,167, 25,166, 15, 1, 11,167, 15,166, - 26, 11,169, 25,168, 15, 1, 11,169, 15,168, 26, 11,171, 25,170, 15, 1, 11,171, - 15,170, 26, 11,173, 25,172, 15, 1, 11,173, 15,172, 26, 11,175, 25,174, 15, 1, - 11,175, 15,174, 26, 11,177, 25,176, 15, 1, 11,177, 15,176, 26, 11,179, 25,178, - 15, 1, 11,179, 15,178, 26, 11,181, 25,180, 15, 1, 11,181, 15,180, 26, 11,183, - 25,182, 15, 1, 11,183, 15,182, 26, 11,185, 25,184, 15, 1, 11,185, 15,184, 26, - 11,187, 25,186, 15, 1, 11,187, 15,186, 26, 11,189, 25,188, 15, 1, 11,189, 15, -188, 26, 11,191, 25,190, 15, 1, 11,191, 15,190, 26, 11,193, 25,192, 15, 1, 11, -193, 15,192, 26, 11,195, 25,194, 15, 1, 11,195, 15,194, 26, 11,197, 25,196, 15, - 1, 11,197, 15,196, 26, 11,199, 25,198, 15, 1, 11,199, 15,198, 26, 11,201, 25, -200, 15, 1, 11,201, 15,200, 26, 11,203, 25,202, 15, 1, 11,203, 15,202, 26, 11, -205, 25,204, 15, 1, 11,205, 15,204, 26, 11,207, 25,206, 15, 1, 11,207, 15,206, - 26, 11,209, 25,208, 15, 1, 11,209, 15,208, 26, 11,211, 25,210, 15, 1, 11,211, - 15,210, 26, 11,213, 25,212, 15, 1, 11,213, 15,212, 26, 11,215, 25,214, 15, 1, - 11,215, 15,214, 26, 11,217, 25,216, 15, 1, 11,217, 15,216, 26, 11,219, 25,218, - 15, 1, 11,219, 15,218, 26, 11,221, 25,220, 15, 1, 11,221, 15,220, 26, 11,223, - 25,222, 15, 1, 11,223, 15,222, 26, 11,225, 25,224, 15, 1, 11,225, 15,224, 26, - 11,227, 25,226, 15, 1, 11,227, 15,226, 26, 11,229, 25,228, 15, 1, 11,229, 15, -228, 26, 11,231, 25,230, 15, 1, 11,231, 15,230, 26, 11,233, 25,232, 15, 1, 11, -233, 15,232, 26, 11,235, 25,234, 15, 1, 11,235, 15,234, 26, 11,237, 25,236, 15, - 1, 11,237, 15,236, 26, 11,239, 25,238, 15, 1, 11,239, 15,238, 26, 11,241, 25, -240, 15, 1, 11,241, 15,240, 26, 11,243, 25,242, 15, 1, 11,243, 15,242, 26, 15, - 1, 11,244, 11,245, 26, 15, 1, 11,246, 11,247, 26, 15, 1, 11,248, 11,249, 26, - 15, 1, 11,250, 11,251, 26, 15, 1, 11,252, 11,253, 26, 0, 0, 0, 0, 0, 0, - 0, 0,254, 2, 0, 0, 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, - 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6, 69, 82, 82, 79, 82, 0, 2, 0, - 0, 0, 12, 73, 85, 80, 95, 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 8, - 78, 79, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 79, 80, 69, - 78, 69, 68, 0, 2, 0, 0, 0, 7, 79, 80, 69, 78, 69, 68, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 73, 78, 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 8, 73, 78, - 86, 65, 76, 73, 68, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 67, 69, 78, 84, 69, - 82, 0, 2, 0, 0, 0, 7, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 95, 76, 69, 70, 84, 0, 2, 0, 0, 0, 5, 76, 69, 70, 84, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 95, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 6, 82, 73, - 71, 72, 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 79, 85, 83, 69, 80, 79, - 83, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 80, 79, 83, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 67, 85, 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 67, 85, - 82, 82, 69, 78, 84, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 67, 69, 78, 84, 69, - 82, 80, 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 13, 67, 69, 78, 84, 69, 82, 80, - 65, 82, 69, 78, 84, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 84, 79, 80, 0, 2, - 0, 0, 0, 4, 84, 79, 80, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 66, 79, 84, - 84, 79, 77, 0, 2, 0, 0, 0, 7, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 49, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, - 78, 50, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 50, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 51, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, - 78, 52, 0, 2, 0, 0, 0, 8, 66, 85, 84, 84, 79, 78, 52, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 66, 85, 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 8, 66, 85, - 84, 84, 79, 78, 53, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 73, 71, 78, 79, 82, - 69, 0, 2, 0, 0, 0, 7, 73, 71, 78, 79, 82, 69, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 95, 68, 69, 70, 65, 85, 76, 84, 0, 2, 0, 0, 0, 8, 68, 69, 70, 65, - 85, 76, 84, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 76, 79, 83, 69, 0, 2, - 0, 0, 0, 6, 67, 76, 79, 83, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 67, - 79, 78, 84, 73, 78, 85, 69, 0, 2, 0, 0, 0, 9, 67, 79, 78, 84, 73, 78, 85, - 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 85, 80, 0, 2, 0, 0, 0, - 5, 83, 66, 85, 80, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 66, 68, 78, 0, - 2, 0, 0, 0, 5, 83, 66, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, - 66, 80, 71, 85, 80, 0, 2, 0, 0, 0, 7, 83, 66, 80, 71, 85, 80, 0, 2, 0, - 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 7, 83, - 66, 80, 71, 68, 78, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, 79, 83, - 86, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 86, 0, 2, 0, 0, 0, 12, 73, - 85, 80, 95, 83, 66, 68, 82, 65, 71, 86, 0, 2, 0, 0, 0, 8, 83, 66, 68, 82, - 65, 71, 86, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 7, 83, 66, 76, 69, 70, 84, 0, 2, 0, 0, 0, 12, 73, 85, 80, - 95, 83, 66, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 8, 83, 66, 82, 73, 71, 72, - 84, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 83, 66, 80, 71, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 9, 83, 66, 80, 71, 76, 69, 70, 84, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 95, 83, 66, 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 10, 83, 66, - 80, 71, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 83, 66, 80, - 79, 83, 72, 0, 2, 0, 0, 0, 7, 83, 66, 80, 79, 83, 72, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 83, 66, 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 8, 83, 66, - 68, 82, 65, 71, 72, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 83, 72, 79, 87, 0, - 2, 0, 0, 0, 5, 83, 72, 79, 87, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 82, - 69, 83, 84, 79, 82, 69, 0, 2, 0, 0, 0, 8, 82, 69, 83, 84, 79, 82, 69, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 95, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, - 0, 0, 9, 77, 73, 78, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 13, 73, 85, 80, - 95, 77, 65, 88, 73, 77, 73, 90, 69, 0, 2, 0, 0, 0, 9, 77, 65, 88, 73, 77, - 73, 90, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 73, 68, 69, 0, 2, 0, - 0, 0, 5, 72, 73, 68, 69, 0, 2, 0, 0, 0, 4, 82, 69, 68, 0, 2, 0, 0, - 0, 7, 73,117,112, 82, 71, 66, 0, 2, 0, 0, 0, 6, 71, 82, 69, 69, 78, 0, - 2, 0, 0, 0, 5, 66, 76, 85, 69, 0, 2, 0, 0, 0, 6, 66, 76, 65, 67, 75, - 0, 2, 0, 0, 0, 6, 87, 72, 73, 84, 69, 0, 2, 0, 0, 0, 7, 89, 69, 76, - 76, 79, 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 79, 78, 0, 2, 0, 0, 0, - 3, 79, 78, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 79, 70, 70, 0, 2, 0, 0, - 0, 4, 79, 70, 70, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, 69, 83, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 79, 0, - 2, 0, 0, 0, 3, 78, 79, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 80, 80, - 69, 78, 68, 0, 2, 0, 0, 0, 7, 65, 80, 80, 69, 78, 68, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 95, 86, 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 9, 86, - 69, 82, 84, 73, 67, 65, 76, 0, 2, 0, 0, 0, 15, 73, 85, 80, 95, 72, 79, 82, - 73, 90, 79, 78, 84, 65, 76, 0, 2, 0, 0, 0, 11, 72, 79, 82, 73, 90, 79, 78, - 84, 65, 76, 0, 2, 0, 0, 0, 12, 73, 85, 80, 95, 65, 67, 69, 78, 84, 69, 82, - 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 10, 73, - 85, 80, 95, 65, 76, 69, 70, 84, 0, 2, 0, 0, 0, 6, 65, 76, 69, 70, 84, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, - 7, 65, 82, 73, 71, 72, 84, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 65, 84, 79, - 80, 0, 2, 0, 0, 0, 5, 65, 84, 79, 80, 0, 2, 0, 0, 0, 12, 73, 85, 80, - 95, 65, 66, 79, 84, 84, 79, 77, 0, 2, 0, 0, 0, 8, 65, 66, 79, 84, 84, 79, - 77, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 78, 79, 82, 84, 72, 0, 2, 0, 0, - 0, 6, 78, 79, 82, 84, 72, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 83, 79, 85, - 84, 72, 0, 2, 0, 0, 0, 6, 83, 79, 85, 84, 72, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 95, 87, 69, 83, 84, 0, 2, 0, 0, 0, 5, 87, 69, 83, 84, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95, 69, 65, 83, 84, 0, 2, 0, 0, 0, 5, 69, 65, 83, - 84, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 69, 0, 2, 0, 0, 0, 3, 78, - 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 69, 0, 2, 0, 0, 0, 3, 83, - 69, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 78, 87, 0, 2, 0, 0, 0, 3, 78, - 87, 0, 2, 0, 0, 0, 7, 73, 85, 80, 95, 83, 87, 0, 2, 0, 0, 0, 3, 83, - 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 70, 85, 76, 76, 0, 2, 0, 0, 0, - 5, 70, 85, 76, 76, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 72, 65, 76, 70, 0, - 2, 0, 0, 0, 5, 72, 65, 76, 70, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 84, - 72, 73, 82, 68, 0, 2, 0, 0, 0, 6, 84, 72, 73, 82, 68, 0, 2, 0, 0, 0, - 12, 73, 85, 80, 95, 81, 85, 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 8, 81, 85, - 65, 82, 84, 69, 82, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, 69, 73, 71, 72, 84, - 72, 0, 2, 0, 0, 0, 7, 69, 73, 71, 72, 84, 72, 0, 2, 0, 0, 0, 10, 73, - 85, 80, 95, 65, 82, 82, 79, 87, 0, 2, 0, 0, 0, 6, 65, 82, 82, 79, 87, 0, - 2, 0, 0, 0, 9, 73, 85, 80, 95, 66, 85, 83, 89, 0, 2, 0, 0, 0, 5, 66, - 85, 83, 89, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, - 78, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 78, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 9, 82, - 69, 83, 73, 90, 69, 95, 83, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, - 73, 90, 69, 95, 69, 0, 2, 0, 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 69, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, - 0, 0, 9, 82, 69, 83, 73, 90, 69, 95, 87, 0, 2, 0, 0, 0, 14, 73, 85, 80, - 95, 82, 69, 83, 73, 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, - 90, 69, 95, 78, 69, 0, 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, - 69, 95, 78, 87, 0, 2, 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 78, 87, 0, - 2, 0, 0, 0, 14, 73, 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, - 0, 0, 0, 10, 82, 69, 83, 73, 90, 69, 95, 83, 69, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 10, 82, 69, - 83, 73, 90, 69, 95, 83, 87, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 77, 79, 86, - 69, 0, 2, 0, 0, 0, 5, 77, 79, 86, 69, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 95, 72, 65, 78, 68, 0, 2, 0, 0, 0, 5, 72, 65, 78, 68, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 95, 78, 79, 78, 69, 0, 2, 0, 0, 0, 5, 78, 79, 78, 69, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 95, 73, 85, 80, 0, 2, 0, 0, 0, 4, 73, 85, - 80, 0, 2, 0, 0, 0, 10, 73, 85, 80, 95, 67, 82, 79, 83, 83, 0, 2, 0, 0, - 0, 6, 67, 82, 79, 83, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 80, 69, 78, - 0, 2, 0, 0, 0, 4, 80, 69, 78, 0, 2, 0, 0, 0, 9, 73, 85, 80, 95, 84, - 69, 88, 84, 0, 2, 0, 0, 0, 5, 84, 69, 88, 84, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 95, 82, 69, 83, 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 9, 82, 69, 83, - 73, 90, 69, 95, 67, 0, 2, 0, 0, 0, 13, 73, 85, 80, 95, 79, 80, 69, 78, 72, - 65, 78, 68, 0, 2, 0, 0, 0, 9, 79, 80, 69, 78, 72, 65, 78, 68, 0, 2, 0, - 0, 0, 23, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 23, 73, 85, 80, 95, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, - 0, 0, 19, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, - 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 17, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, - 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, - 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, - 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, 0, 0, 20, 72, 69, - 76, 86, 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, 0, 2, 0, - 0, 0, 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, - 68, 95, 49, 48, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, - 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, - 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, - 0, 20, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, - 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, - 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, - 69, 84, 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, - 49, 50, 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, - 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, - 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 20, - 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 78, 79, 82, 77, 65, 76, 95, 49, 52, 0, - 2, 0, 0, 0, 24, 73, 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 20, 72, 69, 76, 86, 69, 84, - 73, 67, 65, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, - 85, 80, 95, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, 95, 49, 52, - 0, 2, 0, 0, 0, 18, 72, 69, 76, 86, 69, 84, 73, 67, 65, 95, 66, 79, 76, 68, - 95, 49, 52, 0, 2, 0, 0, 0, 21, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 17, 67, 79, 85, 82, 73, - 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 21, 73, 85, 80, - 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, - 0, 0, 17, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, - 2, 0, 0, 0, 19, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, - 68, 95, 56, 0, 2, 0, 0, 0, 15, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, - 68, 95, 56, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, - 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, - 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, - 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, - 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, - 82, 95, 66, 79, 76, 68, 95, 49, 48, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, - 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, - 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, - 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 73, 84, 65, - 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, - 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 67, - 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, 16, - 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, 65, 76, 95, - 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, 85, 82, 73, 69, 82, 95, 78, 79, 82, 77, - 65, 76, 95, 49, 52, 0, 2, 0, 0, 0, 22, 73, 85, 80, 95, 67, 79, 85, 82, 73, - 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 67, 79, - 85, 82, 73, 69, 82, 95, 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, - 20, 73, 85, 80, 95, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, 52, - 0, 2, 0, 0, 0, 16, 67, 79, 85, 82, 73, 69, 82, 95, 66, 79, 76, 68, 95, 49, - 52, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, 95, 78, 79, 82, - 77, 65, 76, 95, 56, 0, 2, 0, 0, 0, 19, 73, 85, 80, 95, 84, 73, 77, 69, 83, - 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 15, 84, 73, 77, 69, 83, - 95, 73, 84, 65, 76, 73, 67, 95, 56, 0, 2, 0, 0, 0, 17, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 13, 84, 73, 77, - 69, 83, 95, 66, 79, 76, 68, 95, 56, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, 16, - 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, 49, 48, 0, 2, 0, 0, 0, - 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 48, - 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, - 48, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, - 68, 95, 49, 48, 0, 2, 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, - 95, 49, 48, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, - 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, - 78, 79, 82, 77, 65, 76, 95, 49, 50, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, 16, - 84, 73, 77, 69, 83, 95, 73, 84, 65, 76, 73, 67, 95, 49, 50, 0, 2, 0, 0, 0, - 18, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, - 0, 0, 0, 14, 84, 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 50, 0, 2, 0, - 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, 95, - 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, 78, 79, 82, 77, 65, 76, - 95, 49, 52, 0, 2, 0, 0, 0, 20, 73, 85, 80, 95, 84, 73, 77, 69, 83, 95, 73, - 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 16, 84, 73, 77, 69, 83, 95, - 73, 84, 65, 76, 73, 67, 95, 49, 52, 0, 2, 0, 0, 0, 18, 73, 85, 80, 95, 84, - 73, 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 14, 84, 73, - 77, 69, 83, 95, 66, 79, 76, 68, 95, 49, 52, 0, 2, 0, 0, 0, 11, 77, 65, 83, - 75, 95, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 24, 91, 43, 47, 45, 93, 63, 40, - 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0, - 0, 12, 77, 65, 83, 75, 95, 85, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 18, 40, - 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, 43, 41, 0, 2, 0, 0, - 0, 12, 77, 65, 83, 75, 95, 69, 70, 76, 79, 65, 84, 0, 2, 0, 0, 0, 40, 91, - 43, 47, 45, 93, 63, 40, 47,100, 43, 47, 46, 63, 47,100, 42,124, 47, 46, 47,100, - 43, 41, 40, 91,101, 69, 93, 91, 43, 47, 45, 93, 63, 47,100, 43, 41, 63, 0, 2, - 0, 0, 0, 9, 77, 65, 83, 75, 95, 73, 78, 84, 0, 2, 0, 0, 0, 10, 91, 43, - 47, 45, 93, 63, 47,100, 43, 0, 2, 0, 0, 0, 10, 77, 65, 83, 75, 95, 85, 73, - 78, 84, 0, 2, 0, 0, 0, 4, 47,100, 43, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/constants_le64w.lo"); -} diff --git a/iup/srclua3/loh/dial.loh b/iup/srclua3/loh/dial.loh deleted file mode 100755 index f1811dd..0000000 --- a/iup/srclua3/loh/dial.loh +++ /dev/null @@ -1,31 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luadial.lo"); -*/ -/* ../obj/iupluacontrols3/luadial.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105, - 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114, -101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, - 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, - 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117, -112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100, -105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108, -108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118, -101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101, -109,111,118,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial.lo"); -} diff --git a/iup/srclua3/loh/dial_be32.loh b/iup/srclua3/loh/dial_be32.loh deleted file mode 100755 index 8a2e8ed..0000000 --- a/iup/srclua3/loh/dial_be32.loh +++ /dev/null @@ -1,31 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luadial_be32.lo"); -*/ -/* ../obj/iupluacontrols3/luadial_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105, - 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114, -101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, - 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, - 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117, -112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100, -105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108, -108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118, -101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101, -109,111,118,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial_be32.lo"); -} diff --git a/iup/srclua3/loh/dial_be64.loh b/iup/srclua3/loh/dial_be64.loh deleted file mode 100755 index d6a30c1..0000000 --- a/iup/srclua3/loh/dial_be64.loh +++ /dev/null @@ -1,30 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/dial_be64.lo"); -*/ -/* ../obj/iupluacontrols3/dial_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,100,105, 97,108, 46, -108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, - 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, - 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, - 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114, -101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, - 0, 0, 0, 10, 64,100,105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, - 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117,112,100,105, 97,108, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,100,105, 97,108, 46,108,117, 97, 0, 0, - 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 68, 73, - 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,100,105, 97,108, 0, 2, - 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, - 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117, -112, 95,118, 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/dial_be64.lo"); -} diff --git a/iup/srclua3/loh/dial_le64.loh b/iup/srclua3/loh/dial_le64.loh deleted file mode 100755 index e68eb83..0000000 --- a/iup/srclua3/loh/dial_le64.loh +++ /dev/null @@ -1,31 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luadial_le64.lo"); -*/ -/* ../obj/iupluacontrols3/luadial_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105, - 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114, -101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, - 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, - 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117, -112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100, -105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108, -108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118, -101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101, -109,111,118,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial_le64.lo"); -} diff --git a/iup/srclua3/loh/dial_le64w.loh b/iup/srclua3/loh/dial_le64w.loh deleted file mode 100755 index ace3d04..0000000 --- a/iup/srclua3/loh/dial_le64w.loh +++ /dev/null @@ -1,31 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luadial_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luadial_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,100,105, - 97,108, 46,108,117, 97, 0, 0, 0, 0, 40, 3, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 7,112, 97,114, -101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, - 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, - 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,100,105, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 68,105, 97,108, 0, 2, 0, 0, 0, 8,105,117, -112,100,105, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,100, -105, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 68, 73, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, - 0, 0, 5,100,105, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108, -108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111,118, -101, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101, -109,111,118,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luadial_le64w.lo"); -} diff --git a/iup/srclua3/loh/gauge.loh b/iup/srclua3/loh/gauge.loh deleted file mode 100755 index f4f22bf..0000000 --- a/iup/srclua3/loh/gauge.loh +++ /dev/null @@ -1,28 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luagauge.lo"); -*/ -/* ../obj/iupluacontrols3/luagauge.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97, -117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, - 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, - 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, - 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, - 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117, -103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103, -101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge.lo"); -} diff --git a/iup/srclua3/loh/gauge_be32.loh b/iup/srclua3/loh/gauge_be32.loh deleted file mode 100755 index c4ef637..0000000 --- a/iup/srclua3/loh/gauge_be32.loh +++ /dev/null @@ -1,28 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luagauge_be32.lo"); -*/ -/* ../obj/iupluacontrols3/luagauge_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97, -117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, - 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, - 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, - 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, - 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117, -103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103, -101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge_be32.lo"); -} diff --git a/iup/srclua3/loh/gauge_be64.loh b/iup/srclua3/loh/gauge_be64.loh deleted file mode 100755 index 99ce14d..0000000 --- a/iup/srclua3/loh/gauge_be64.loh +++ /dev/null @@ -1,27 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/gauge_be64.lo"); -*/ -/* ../obj/iupluacontrols3/gauge_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,103, 97,117,103,101, - 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71, 65, 85, 71, - 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80, -101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 11, 64,103, 97, -117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117,103,101, 0, 2, 0, 0, - 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0, 0, 7, 0, 0, 0, 11, - 64,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, - 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71, 65, 85, 71, 69, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117, -112, 0, 2, 0, 0, 0, 6,103, 97,117,103,101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/gauge_be64.lo"); -} diff --git a/iup/srclua3/loh/gauge_le64.loh b/iup/srclua3/loh/gauge_le64.loh deleted file mode 100755 index 5c3803c..0000000 --- a/iup/srclua3/loh/gauge_le64.loh +++ /dev/null @@ -1,28 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luagauge_le64.lo"); -*/ -/* ../obj/iupluacontrols3/luagauge_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97, -117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, - 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, - 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, - 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, - 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117, -103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103, -101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge_le64.lo"); -} diff --git a/iup/srclua3/loh/gauge_le64w.loh b/iup/srclua3/loh/gauge_le64w.loh deleted file mode 100755 index 7aeedac..0000000 --- a/iup/srclua3/loh/gauge_le64w.loh +++ /dev/null @@ -1,28 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luagauge_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luagauge_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,103, 97, -117,103,101, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, - 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, - 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 14, - 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, - 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 71, 97,117, -103,101, 0, 2, 0, 0, 0, 9,105,117,112,103, 97,117,103,101, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 14, 64,108,117, 97,103, 97,117,103,101, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 71, - 65, 85, 71, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,103, 97,117,103, -101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luagauge_le64w.lo"); -} diff --git a/iup/srclua3/loh/iuplua.loh b/iup/srclua3/loh/iuplua.loh deleted file mode 100755 index d55bd40..0000000 --- a/iup/srclua3/loh/iuplua.loh +++ /dev/null @@ -1,170 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua.lo"); -*/ -/* ../obj/iuplua3/iuplua.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2, - 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1, - 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13, - 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23, - 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33, - 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26, - 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, - 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11, -105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116, - 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98, -108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, - 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4, -116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10, -105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82, - 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108, -117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11, - 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13, - 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13, - 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2, - 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1, - 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15, - 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10, -105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2, - 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, - 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108, -121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48, - 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105, -117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110, -116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, -109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, - 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3, -100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101, -102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99, -117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114, -111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, - 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, - 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, - 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, - 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101, - 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, - 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2, - 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0, - 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3, - 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105, -117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101, - 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1, - 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100, -103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105, -116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97, - 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25, - 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0, - 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, - 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0, - 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29, - 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3, - 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8, - 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11, - 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5, - 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, - 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, - 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, - 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114, -108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, - 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116, -105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112, - 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117, -108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112, - 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13, - 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11, - 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114, -109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77, - 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0, - 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15, - 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1, - 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13, - 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, - 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, - 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7, -255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11, - 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114, -101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102, -108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, - 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101, -103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0, - 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2, - 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42, - 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8, - 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, - 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0, - 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125, - 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27, - 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, - 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73, -117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, - 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0, - 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15, - 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2, - 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71, -101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103, -105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112, - 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua.lo"); -} diff --git a/iup/srclua3/loh/iuplua_be32.loh b/iup/srclua3/loh/iuplua_be32.loh deleted file mode 100755 index 2d41b1b..0000000 --- a/iup/srclua3/loh/iuplua_be32.loh +++ /dev/null @@ -1,170 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_be32.lo"); -*/ -/* ../obj/iuplua3/iuplua_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2, - 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1, - 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13, - 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23, - 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33, - 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26, - 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, - 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11, -105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116, - 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98, -108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, - 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4, -116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10, -105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82, - 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108, -117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11, - 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13, - 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13, - 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2, - 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1, - 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15, - 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10, -105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2, - 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, - 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108, -121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48, - 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105, -117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110, -116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, -109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, - 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3, -100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101, -102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99, -117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114, -111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, - 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, - 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, - 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, - 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101, - 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, - 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2, - 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0, - 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3, - 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105, -117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101, - 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1, - 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100, -103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105, -116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97, - 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25, - 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0, - 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, - 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0, - 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29, - 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3, - 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8, - 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11, - 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5, - 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, - 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, - 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, - 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114, -108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, - 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116, -105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112, - 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117, -108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112, - 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13, - 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11, - 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114, -109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77, - 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0, - 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15, - 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1, - 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13, - 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, - 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, - 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7, -255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11, - 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114, -101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102, -108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, - 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101, -103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0, - 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2, - 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42, - 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8, - 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, - 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0, - 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125, - 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27, - 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, - 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73, -117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, - 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0, - 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15, - 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2, - 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71, -101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103, -105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112, - 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_be32.lo"); -} diff --git a/iup/srclua3/loh/iuplua_be64.loh b/iup/srclua3/loh/iuplua_be64.loh deleted file mode 100755 index f9f7162..0000000 --- a/iup/srclua3/loh/iuplua_be64.loh +++ /dev/null @@ -1,170 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_be64.lo"); -*/ -/* ../obj/iuplua3/iuplua_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2, - 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1, - 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13, - 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23, - 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33, - 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26, - 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, - 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11, -105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116, - 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98, -108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, - 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4, -116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10, -105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82, - 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108, -117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11, - 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13, - 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13, - 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2, - 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1, - 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15, - 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10, -105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2, - 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, - 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108, -121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48, - 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105, -117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110, -116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, -109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, - 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3, -100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101, -102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99, -117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114, -111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, - 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, - 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, - 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, - 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101, - 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, - 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2, - 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0, - 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3, - 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105, -117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101, - 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1, - 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100, -103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105, -116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97, - 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25, - 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0, - 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, - 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0, - 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29, - 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3, - 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8, - 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11, - 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5, - 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, - 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, - 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, - 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114, -108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, - 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116, -105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112, - 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117, -108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112, - 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13, - 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11, - 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114, -109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77, - 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0, - 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15, - 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1, - 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13, - 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, - 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, - 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7, -255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11, - 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114, -101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102, -108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, - 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101, -103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0, - 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2, - 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42, - 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8, - 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, - 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0, - 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125, - 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27, - 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, - 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73, -117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, - 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0, - 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15, - 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2, - 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71, -101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103, -105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112, - 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_be64.lo"); -} diff --git a/iup/srclua3/loh/iuplua_le64.loh b/iup/srclua3/loh/iuplua_le64.loh deleted file mode 100755 index 0e58b29..0000000 --- a/iup/srclua3/loh/iuplua_le64.loh +++ /dev/null @@ -1,170 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_le64.lo"); -*/ -/* ../obj/iuplua3/iuplua_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2, - 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1, - 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13, - 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23, - 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33, - 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26, - 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, - 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11, -105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116, - 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98, -108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, - 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4, -116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10, -105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82, - 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108, -117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11, - 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13, - 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13, - 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2, - 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1, - 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15, - 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10, -105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2, - 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, - 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108, -121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48, - 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105, -117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110, -116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, -109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, - 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3, -100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101, -102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99, -117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114, -111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, - 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, - 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, - 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, - 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101, - 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, - 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2, - 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0, - 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3, - 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105, -117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101, - 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1, - 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100, -103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105, -116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97, - 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25, - 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0, - 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, - 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0, - 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29, - 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3, - 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8, - 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11, - 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5, - 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, - 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, - 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, - 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114, -108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, - 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116, -105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112, - 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117, -108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112, - 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13, - 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11, - 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114, -109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77, - 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0, - 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15, - 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1, - 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13, - 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, - 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, - 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7, -255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11, - 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114, -101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102, -108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, - 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101, -103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0, - 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2, - 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42, - 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8, - 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, - 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0, - 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125, - 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27, - 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, - 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73, -117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, - 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0, - 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15, - 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2, - 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71, -101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103, -105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112, - 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_le64.lo"); -} diff --git a/iup/srclua3/loh/iuplua_le64w.loh b/iup/srclua3/loh/iuplua_le64w.loh deleted file mode 100755 index 6755c03..0000000 --- a/iup/srclua3/loh/iuplua_le64w.loh +++ /dev/null @@ -1,170 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_le64w.lo"); -*/ -/* ../obj/iuplua3/iuplua_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0,122, 4, 0, 22, 0, 25, 0, 15, 1, 15, 2, - 11, 3, 15, 4, 2, 0, 3, 15, 1, 15, 2, 11, 5, 15, 6, 2, 0, 3, 15, 1, - 15, 7, 22, 0, 2, 1, 1, 11, 8, 15, 9, 2, 0, 3, 11, 11, 25, 10, 11, 13, - 25, 12, 11, 15, 25, 14, 11, 17, 25, 16, 11, 19, 25, 18, 11, 21, 25, 20, 11, 23, - 25, 22, 11, 25, 25, 24, 11, 27, 25, 26, 11, 29, 25, 28, 11, 31, 25, 30, 11, 33, - 25, 32, 15, 34, 11, 35, 15, 32, 26, 11, 37, 25, 36, 15, 34, 11, 38, 15, 36, 26, - 11, 40, 25, 39, 15, 34, 11, 41, 11, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, - 0, 13,115,101,116,116, 97,103,109,101,116,104,111,100, 0, 2, 0, 0, 0, 11, -105,117,112,108,117, 97, 95,116, 97,103, 0, 2, 0, 0, 0, 9,103,101,116,116, - 97, 98,108,101, 0, 2, 0, 0, 0, 13,105,117,112, 95,103,101,116,116, 97, 98, -108,101, 0, 2, 0, 0, 0, 9,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, - 0, 13,105,117,112, 95,115,101,116,116, 97, 98,108,101, 0, 2, 0, 0, 0, 4, -116, 97,103, 0, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 10, -105,117,112, 95,105,110,100,101,120, 0, 2, 0, 0, 0, 7, 95, 65, 76, 69, 82, - 84, 0, 4, 0, 0, 0, 14, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108, -117, 97, 0, 0, 0, 0,125, 14, 1, 15, 2, 22, 3, 11, 3, 11, 4, 11, 5, 11, - 6, 11, 7, 11, 8, 30, 2, 2, 1, 1, 15, 10, 22, 4, 11, 11, 11, 12, 11, 13, - 11, 12, 11, 14, 13, 0, 11, 5, 11, 15, 30, 3, 2, 1, 1, 15, 17, 22, 5, 13, - 2, 13, 1, 29, 0, 2, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 30, 2, - 2, 1, 1, 15, 25, 22, 5, 13, 3, 29, 0, 1, 11, 3, 11, 26, 11, 27, 13, 1, - 11, 28, 13, 1, 11, 29, 13, 1, 30, 3, 2, 1, 1, 13, 4, 20, 30, 15, 31, 15, - 31, 2, 0, 3, 13, 4, 20, 32, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 2, 0, 0, 0, 2,115, 0, 2, 0, 0, 0, 3, 98,116, 0, 2, 0, 0, 0, 10, -105,117,112, 98,117,116,116,111,110, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 3, 79,107, 0, 2, 0, 0, 0, 5,115,105,122,101, 0, 2, - 0, 0, 0, 3, 54, 48, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, - 0, 0, 0, 17,114,101,116,117,114,110, 32, 73, 85, 80, 95, 67, 76, 79, 83, 69, - 0, 2, 0, 0, 0, 3,109,108, 0, 2, 0, 0, 0, 13,105,117,112,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 7,101,120,112, 97,110,100, 0, 2, - 0, 0, 0, 4, 89, 69, 83, 0, 2, 0, 0, 0, 9,114,101, 97,100,111,110,108, -121, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8, 51, 48, - 48,120, 49, 53, 48, 0, 2, 0, 0, 0, 3,118, 98, 0, 2, 0, 0, 0, 8,105, -117,112,118, 98,111,120, 0, 2, 0, 0, 0, 10, 97,108,105,103,110,109,101,110, -116, 0, 2, 0, 0, 0, 8, 65, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 7, -109, 97,114,103,105,110, 0, 2, 0, 0, 0, 6, 49, 48,120, 49, 48, 0, 2, 0, - 0, 0, 4,103, 97,112, 0, 2, 0, 0, 0, 3, 49, 48, 0, 2, 0, 0, 0, 3, -100,103, 0, 2, 0, 0, 0, 10,105,117,112,100,105, 97,108,111,103, 0, 2, 0, - 0, 0, 10, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 11,100,101, -102, 97,117,108,116,101,115, 99, 0, 2, 0, 0, 0, 13,100,101,102, 97,117,108, -116,101,110,116,101,114, 0, 2, 0, 0, 0, 11,115,116, 97,114,116,102,111, 99, -117,115, 0, 2, 0, 0, 0, 6,112,111,112,117,112, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 95, 67, 69, 78, 84, 69, 82, 0, 2, 0, 0, 0, 8,100,101,115,116,114, -111,121, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, - 4, 0, 0, 0, 23, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, - 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 7,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 4, 0, 0, 0, 27, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, - 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, - 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 9,116,121,112,101, - 95,110,105,108, 0, 4, 0, 0, 0, 31, 0, 0, 0, 12, 64,105,117,112,108,117, - 97, 46,108,117, 97, 0, 0, 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, - 2, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 4,110,105,108, 0, 2, - 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116,105,111,110, 0, 4, 0, - 0, 0, 35, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0, 15, 3, 1, 15, 1, 13, 0, 2, 1, 1, 11, 2, 32, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 9,102,117,110, 99,116,105,111,110, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, 39, 0, - 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 20, 3, - 1, 13, 0, 52, 9, 15, 1, 13, 0, 16, 1, 1, 50, 4, 4, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 2,119, 0, 2, 0, 0, 0, 12,105, -117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 10,116,121,112,101, - 95,109,101,110,117, 0, 4, 0, 0, 0, 47, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 21, 3, 1, 15, 1, 13, 0, 2, 1, 1, - 48, 7, 13, 0, 18, 2, 15, 3, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100, -103,101,116, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116,121,112,101, 95,105, -116,101,109, 0, 4, 0, 0, 0, 51, 0, 0, 0, 12, 64,105,117,112,108,117, 97, - 46,108,117, 97, 0, 0, 0, 0, 39, 3, 1, 15, 1, 13, 0, 2, 1, 1, 48, 25, - 13, 0, 18, 2, 15, 3, 32, 46, 7, 13, 0, 18, 2, 15, 4, 32, 46, 7, 13, 0, - 18, 2, 15, 5, 32, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 73, 84, 69, 77, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, - 0, 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, - 0, 0, 0, 14,105,117,112, 67, 97,108,108, 77,101,116,104,111,100, 0, 4, 0, - 0, 0, 55, 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, - 0, 0,105, 7,129, 13, 1, 7, 1, 16, 13, 2, 13, 0, 16, 13, 3, 44, 52, 29, - 15, 5, 15, 6, 13, 0, 16, 7, 1, 16, 2, 1, 1, 13, 2, 13, 4, 16, 23, 3, - 13, 3, 44, 52, 2, 1, 5, 5, 1, 15, 7, 13, 3, 2, 1, 1, 52, 11, 15, 8, - 13, 3, 13, 1, 3, 4, 2, 50, 38, 15, 9, 13, 3, 2, 1, 1, 52, 25, 15, 11, - 13, 2, 25, 11, 15, 13, 13, 3, 2, 1, 1, 13, 4, 25, 11, 13, 5, 1, 6, 5, - 2, 50, 4, 15, 14, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, - 5,110, 97,109,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, - 0, 0, 4, 97,114,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, - 0, 10,102,117,108,108, 95,110, 97,109,101, 0, 2, 0, 0, 0, 9,115,116,114, -108,111,119,101,114, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, - 97, 99,107,115, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99,116, -105,111,110, 0, 2, 0, 0, 0, 5, 99, 97,108,108, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 5,116,101,109,112, - 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,114,101,115,117, -108,116, 0, 2, 0, 0, 0, 9,100,111,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 95, 69, 82, 82, 79, 82, 0, 2, 0, 0, 0, 11,105,117,112, - 83,101,116, 78, 97,109,101, 0, 4, 0, 0, 0, 81, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 51, 7, 1, 15, 1, 15, 2, 13, - 0, 16, 18, 3, 2, 1, 1, 44, 52, 33, 15, 2, 13, 0, 16, 11, 3, 15, 4, 11, - 5, 15, 6, 13, 0, 2, 1, 1, 2, 1, 2, 26, 15, 7, 13, 0, 18, 3, 13, 0, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, - 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, - 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 7,102,111,114, -109, 97,116, 0, 2, 0, 0, 0, 17, 95, 73, 85, 80, 76, 85, 65, 95, 78, 65, 77, - 69, 40, 37,115, 41, 0, 2, 0, 0, 0, 9,116,111,115,116,114,105,110,103, 0, - 2, 0, 0, 0, 13, 73,117,112, 83,101,116, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 4, 0, 0, 0, 88, 0, 0, 0, 12, 64,105,117,112,108, -117, 97, 46,108,117, 97, 0, 0, 0, 0, 74, 5, 1, 13, 0, 18, 1, 18, 1, 15, - 2, 32, 52, 32, 7, 1, 50, 17, 15, 4, 13, 0, 13, 1, 16, 2, 0, 1, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 54, 24, 5, 1, 50, 28, 13, 0, 18, 1, - 15, 5, 32, 52, 12, 15, 4, 13, 0, 7, 1, 16, 2, 0, 1, 50, 7, 15, 6, 13, - 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 12, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, - 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67,104,105,108,100,114,101,110, - 78, 97,109,101,115, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, - 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, - 7, 73,117,112, 82, 71, 66, 0, 4, 0, 0, 0,108, 0, 0, 0, 12, 64,105,117, -112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 43, 7, 3, 15, 3, 13, 0, 7, -255, 39, 2, 1, 1, 11, 4, 42, 15, 3, 13, 1, 7,255, 39, 2, 1, 1, 42, 11, - 4, 42, 15, 3, 13, 2, 7,255, 39, 2, 1, 1, 42, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 2, 0, 0, 0, 4,114,101,100, 0, 2, 0, 0, 0, 6,103,114, -101,101,110, 0, 2, 0, 0, 0, 5, 98,108,117,101, 0, 2, 0, 0, 0, 6,102, -108,111,111,114, 0, 2, 0, 0, 0, 2, 32, 0, 2, 0, 0, 0, 4,105,117,112, - 0, 2, 0, 0, 0, 4, 82, 71, 66, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101, -103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 4, 0, 0, 0,113, 0, 0, - 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 58, 10, 2, - 15, 2, 13, 0, 16, 44, 52, 43, 15, 4, 11, 5, 15, 6, 13, 1, 2, 1, 1, 42, - 2, 1, 1, 13, 2, 44, 52, 4, 15, 7, 23, 2, 15, 2, 13, 0, 22, 2, 11, 8, - 13, 2, 11, 0, 13, 0, 30, 1, 26, 5, 1, 13, 0, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 9,116,121,112,101,110, 97,109,101, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, - 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 10,103,101,116,103,108,111, 98, 97,108, 0, 2, 0, 0, 0, 4, 73, 85, 80, 0, - 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 7, 87, - 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 15, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, - 0, 0, 12, 73,117,112, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,125, - 0, 0, 0, 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 27, - 6, 1, 15, 2, 13, 0, 7, 1, 16, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, - 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, - 13, 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73, -117,112, 82,101,103,105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, - 0, 0, 9, 71,101,116, 70,114,111,109, 67, 0, 4, 0, 0, 0,130, 0, 0, 0, - 12, 64,105,117,112,108,117, 97, 46,108,117, 97, 0, 0, 0, 0, 24, 6, 1, 15, - 2, 13, 0, 2, 1, 1, 15, 3, 13, 1, 15, 4, 13, 1, 2, 1, 1, 3, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 5,110, 97,109,101, 0, 2, - 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71, -101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 18, 73,117,112, 82,101,103, -105,115,116,101,114, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 16, 73,117,112, - 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_le64w.lo"); -} diff --git a/iup/srclua3/loh/iuplua_widgets.loh b/iup/srclua3/loh/iuplua_widgets.loh deleted file mode 100755 index efaed40..0000000 --- a/iup/srclua3/loh/iuplua_widgets.loh +++ /dev/null @@ -1,939 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_widgets.lo"); -*/ -/* ../obj/iuplua3/iuplua_widgets.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0, - 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11, - 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0, - 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15, - 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26, - 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11, - 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15, - 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36, - 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, - 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42, - 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46, - 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49, - 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55, - 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60, - 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30, - 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25, - 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11, - 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0, - 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26, - 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89, - 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26, - 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98, - 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1, - 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15, - 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26, - 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0, - 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119, - 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0, - 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26, - 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25, -131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135, - 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26, - 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26, - 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0, - 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156, - 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15, -158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11, -163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165, - 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172, - 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11, - 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15, -178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25, -181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189, - 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11, - 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197, - 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15, -199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11, -205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207, - 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0, - 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26, - 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25, -218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0, - 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228, - 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233, - 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2, - 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244, - 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2, - 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29, - 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22, - 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1, - 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1, - 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16, - 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2, - 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10, - 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0, - 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2, - 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36, - 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40, - 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14, - 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10, - 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1, - 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0, - 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25, -221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62, - 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63, - 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63, - 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66, - 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226, - 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232, - 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26, - 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26, - 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26, - 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0, - 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17, - 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15, -221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1, - 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221, - 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15, -221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32, - 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17, - 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15, -221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1, - 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221, - 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26, - 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100, - 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112, -101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4, - 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0, - 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1, - 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13, - 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97, -114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, - 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2, - 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0, - 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12, - 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2, - 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, - 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23, - 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102, -117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101, -114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, - 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108, -117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108, -105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117, -116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22, - 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15, - 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0, - 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0, - 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116, -101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116, - 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4, - 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1, - 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15, - 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52, - 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3, - 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121, -112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, - 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112, -112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16, - 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, - 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72, - 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15, - 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8, - 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55, - 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1, - 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2, - 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2, - 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13, - 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15, - 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10, - 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1, - 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18, - 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6, -118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115, -116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7, -114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108, - 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, - 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111, -103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112, - 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95, -110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2, - 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, - 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111, -121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13, - 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52, - 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20, - 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0, - 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2, - 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110, - 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105, -116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, - 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11, - 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97, - 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0, - 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26, - 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2, - 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, - 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37, - 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5, -115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0, - 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1, - 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13, - 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13, - 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, - 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, - 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101, - 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, - 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112, -116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117, -112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0, - 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13, - 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98, -111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, - 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, - 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, - 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, - 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0, - 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4, - 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, - 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, - 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119, - 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111, -112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, - 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, - 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16, - 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16, - 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101, - 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114, - 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, - 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1, - 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4, - 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1, - 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1, - 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7, - 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13, - 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13, - 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13, - 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, - 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, - 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, - 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0, - 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106, - 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100, -104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35, - 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1, - 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108, -101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2, - 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100, -104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, - 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111, -103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101, -115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, - 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3, - 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6, - 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11, - 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42, - 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7, - 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48, - 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2, - 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, - 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, - 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111, -114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0, - 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110, -111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111, -101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103, - 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, - 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103, -101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97, -118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109, -101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15, - 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2, - 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7, - 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52, - 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16, - 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13, - 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13, - 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1, - 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1, - 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54, -173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13, -105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112, -105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, - 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, - 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, - 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1, - 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7, - 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114, -114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, - 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117, -101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105, -122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13, - 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1, - 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23, - 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, - 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, - 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13, - 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37, - 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, - 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, - 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13, - 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101, -109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, - 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80, - 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101, -110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, - 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104, - 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104, - 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1, -156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, - 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, - 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, - 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15, - 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4, - 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10, - 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50, - 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2, - 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1, - 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2, -102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114, -111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101, -114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, - 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32, -104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105, -115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, - 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120, -116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101, -100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4, - 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, - 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0, - 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, - 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8, -105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1, - 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24, - 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83, -101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, - 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, - 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, - 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116, -116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4, - 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116, -111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1, -252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117, -112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2, - 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, - 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, - 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, - 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19, -105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2, - 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0, - 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76, - 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, - 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116, -105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101, -108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2, - 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85, - 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114, -101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0, - 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4, - 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1, - 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26, - 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, - 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0, - 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0, - 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0, - 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101, -112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, - 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, - 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101, -100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69, - 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, - 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67, -114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0, - 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14, - 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115, - 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, - 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, - 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, - 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, - 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105, -117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79, - 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116, -111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0, - 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114, - 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, - 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, - 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, - 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, - 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, - 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114, -111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32, -105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4, - 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24, - 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105, -117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2, - 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111, -108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114, - 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80, - 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105, -122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, - 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, - 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67, - 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, - 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97, -110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0, - 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110, -118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0, - 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52, - 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18, - 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, - 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, - 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101, -116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0, - 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2, - 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2, - 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2, - 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11, - 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3, - 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101, -120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, - 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, - 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0, - 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50, - 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15, - 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3, - 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52, - 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26, - 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9, - 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0, - 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45, -110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97, -103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101, -110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0, - 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5, - 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2, - 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13, - 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109, - 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7, -104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, - 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, - 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116, -116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103, -101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, - 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109, - 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, - 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, - 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67, -114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, - 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97, -103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, - 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18, - 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103, -101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, - 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115, - 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4, - 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105, -109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, - 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115, - 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115, - 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83, - 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, - 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0, - 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, - 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78, - 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10, - 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111, - 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66, - 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99, - 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0, - 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17, -105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, - 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67, - 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0, - 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78, - 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0, - 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0, - 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0, - 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84, - 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0, - 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115, - 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66, - 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13, - 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117, -112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6, - 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0, - 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66, - 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0, - 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0, - 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95, - 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2, - 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77, - 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2, - 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0, - 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77, - 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, - 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104, -105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73, - 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104, -108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0, - 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119, -111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0, - 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, -119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78, - 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10, - 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114, -101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2, - 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99, - 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2, - 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, - 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95, - 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0, - 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, - 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119, - 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69, - 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116, - 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66, - 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99, -116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0, - 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102, -105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118, - 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65, - 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99, -116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100, -111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110, - 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0, - 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, - 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, - 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120, -116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117, -116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, - 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111, -110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99, -116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95, - 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8, -104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116, -114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111, -115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2, - 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0, - 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0, - 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104, -105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109, - 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0, - 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101, -115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98, - 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115, -101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116, -105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99, - 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, - 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, - 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0, - 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets.lo"); -} diff --git a/iup/srclua3/loh/iuplua_widgets_be32.loh b/iup/srclua3/loh/iuplua_widgets_be32.loh deleted file mode 100755 index 4ed9835..0000000 --- a/iup/srclua3/loh/iuplua_widgets_be32.loh +++ /dev/null @@ -1,939 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_widgets_be32.lo"); -*/ -/* ../obj/iuplua3/iuplua_widgets_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0, - 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11, - 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0, - 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15, - 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26, - 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11, - 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15, - 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36, - 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, - 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42, - 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46, - 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49, - 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55, - 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60, - 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30, - 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25, - 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11, - 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0, - 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26, - 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89, - 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26, - 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98, - 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1, - 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15, - 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26, - 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0, - 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119, - 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0, - 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26, - 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25, -131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135, - 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26, - 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26, - 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0, - 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156, - 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15, -158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11, -163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165, - 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172, - 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11, - 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15, -178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25, -181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189, - 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11, - 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197, - 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15, -199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11, -205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207, - 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0, - 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26, - 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25, -218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0, - 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228, - 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233, - 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2, - 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244, - 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2, - 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29, - 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22, - 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1, - 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1, - 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16, - 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2, - 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10, - 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0, - 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2, - 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36, - 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40, - 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14, - 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10, - 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1, - 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0, - 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25, -221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62, - 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63, - 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63, - 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66, - 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226, - 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232, - 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26, - 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26, - 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26, - 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0, - 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17, - 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15, -221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1, - 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221, - 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15, -221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32, - 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17, - 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15, -221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1, - 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221, - 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26, - 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100, - 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112, -101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4, - 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0, - 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1, - 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13, - 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97, -114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, - 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2, - 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0, - 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12, - 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2, - 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, - 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23, - 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102, -117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101, -114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, - 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108, -117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108, -105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117, -116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22, - 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15, - 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0, - 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0, - 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116, -101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116, - 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4, - 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1, - 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15, - 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52, - 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3, - 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121, -112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, - 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112, -112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16, - 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, - 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72, - 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15, - 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8, - 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55, - 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1, - 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2, - 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2, - 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13, - 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15, - 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10, - 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1, - 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18, - 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6, -118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115, -116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7, -114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108, - 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, - 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111, -103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112, - 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95, -110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2, - 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, - 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111, -121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13, - 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52, - 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20, - 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0, - 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2, - 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110, - 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105, -116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, - 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11, - 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97, - 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0, - 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26, - 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2, - 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, - 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37, - 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5, -115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0, - 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1, - 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13, - 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13, - 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, - 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, - 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101, - 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, - 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112, -116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117, -112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0, - 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13, - 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98, -111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, - 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, - 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, - 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, - 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0, - 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4, - 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, - 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, - 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119, - 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111, -112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, - 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, - 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16, - 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16, - 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101, - 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114, - 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, - 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1, - 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4, - 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1, - 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1, - 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7, - 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13, - 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13, - 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13, - 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, - 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, - 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, - 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0, - 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106, - 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100, -104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35, - 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1, - 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108, -101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2, - 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100, -104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, - 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111, -103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101, -115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, - 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3, - 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6, - 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11, - 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42, - 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7, - 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48, - 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2, - 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, - 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, - 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111, -114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0, - 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110, -111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111, -101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103, - 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, - 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103, -101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97, -118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109, -101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15, - 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2, - 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7, - 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52, - 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16, - 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13, - 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13, - 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1, - 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1, - 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54, -173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13, -105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112, -105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, - 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, - 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, - 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1, - 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7, - 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114, -114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, - 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117, -101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105, -122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13, - 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1, - 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23, - 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, - 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, - 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13, - 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37, - 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, - 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, - 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13, - 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101, -109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, - 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80, - 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101, -110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, - 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104, - 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104, - 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1, -156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, - 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, - 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, - 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15, - 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4, - 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10, - 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50, - 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2, - 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1, - 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2, -102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114, -111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101, -114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, - 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32, -104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105, -115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, - 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120, -116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101, -100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4, - 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, - 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0, - 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, - 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8, -105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1, - 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24, - 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83, -101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, - 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, - 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, - 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116, -116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4, - 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116, -111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1, -252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117, -112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2, - 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, - 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, - 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, - 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19, -105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2, - 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0, - 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76, - 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, - 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116, -105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101, -108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2, - 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85, - 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114, -101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0, - 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4, - 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1, - 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26, - 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, - 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0, - 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0, - 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0, - 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101, -112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, - 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, - 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101, -100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69, - 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, - 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67, -114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0, - 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14, - 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115, - 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, - 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, - 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, - 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, - 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105, -117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79, - 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116, -111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0, - 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114, - 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, - 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, - 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, - 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, - 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, - 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114, -111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32, -105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4, - 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24, - 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105, -117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2, - 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111, -108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114, - 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80, - 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105, -122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, - 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, - 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67, - 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, - 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97, -110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0, - 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110, -118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0, - 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52, - 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18, - 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, - 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, - 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101, -116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0, - 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2, - 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2, - 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2, - 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11, - 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3, - 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101, -120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, - 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, - 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0, - 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50, - 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15, - 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3, - 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52, - 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26, - 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9, - 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0, - 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45, -110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97, -103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101, -110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0, - 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5, - 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2, - 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13, - 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109, - 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7, -104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, - 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, - 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116, -116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103, -101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, - 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109, - 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, - 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, - 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67, -114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, - 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97, -103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, - 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18, - 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103, -101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, - 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115, - 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4, - 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105, -109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, - 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115, - 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115, - 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83, - 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, - 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0, - 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, - 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78, - 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10, - 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111, - 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66, - 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99, - 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0, - 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17, -105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, - 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67, - 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0, - 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78, - 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0, - 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0, - 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0, - 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84, - 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0, - 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115, - 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66, - 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13, - 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117, -112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6, - 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0, - 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66, - 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0, - 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0, - 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95, - 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2, - 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77, - 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2, - 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0, - 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77, - 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, - 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104, -105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73, - 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104, -108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0, - 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119, -111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0, - 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, -119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78, - 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10, - 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114, -101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2, - 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99, - 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2, - 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, - 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95, - 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0, - 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, - 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119, - 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69, - 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116, - 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66, - 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99, -116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0, - 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102, -105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118, - 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65, - 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99, -116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100, -111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110, - 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0, - 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, - 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, - 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120, -116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117, -116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, - 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111, -110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99, -116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95, - 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8, -104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116, -114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111, -115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2, - 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0, - 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0, - 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104, -105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109, - 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0, - 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101, -115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98, - 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115, -101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116, -105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99, - 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, - 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, - 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0, - 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_be32.lo"); -} diff --git a/iup/srclua3/loh/iuplua_widgets_be64.loh b/iup/srclua3/loh/iuplua_widgets_be64.loh deleted file mode 100755 index 6ca1eb6..0000000 --- a/iup/srclua3/loh/iuplua_widgets_be64.loh +++ /dev/null @@ -1,939 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_widgets_be64.lo"); -*/ -/* ../obj/iuplua3/iuplua_widgets_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0, - 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11, - 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0, - 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15, - 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26, - 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11, - 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15, - 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36, - 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, - 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42, - 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46, - 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49, - 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55, - 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60, - 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30, - 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25, - 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11, - 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0, - 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26, - 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89, - 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26, - 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98, - 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1, - 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15, - 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26, - 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0, - 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119, - 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0, - 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26, - 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25, -131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135, - 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26, - 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26, - 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0, - 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156, - 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15, -158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11, -163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165, - 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172, - 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11, - 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15, -178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25, -181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189, - 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11, - 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197, - 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15, -199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11, -205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207, - 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0, - 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26, - 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25, -218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0, - 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228, - 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233, - 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2, - 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244, - 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2, - 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29, - 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22, - 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1, - 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1, - 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16, - 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2, - 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10, - 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0, - 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2, - 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36, - 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40, - 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14, - 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10, - 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1, - 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0, - 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25, -221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62, - 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63, - 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63, - 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66, - 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226, - 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232, - 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26, - 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26, - 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26, - 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0, - 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17, - 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15, -221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1, - 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221, - 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15, -221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32, - 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17, - 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15, -221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1, - 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221, - 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26, - 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100, - 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112, -101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4, - 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0, - 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1, - 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13, - 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97, -114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, - 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2, - 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0, - 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12, - 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2, - 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, - 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23, - 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102, -117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101, -114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, - 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108, -117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108, -105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117, -116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22, - 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15, - 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0, - 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0, - 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116, -101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116, - 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4, - 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1, - 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15, - 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52, - 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3, - 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121, -112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, - 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112, -112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16, - 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, - 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72, - 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15, - 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8, - 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55, - 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1, - 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2, - 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2, - 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13, - 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15, - 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10, - 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1, - 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18, - 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6, -118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115, -116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7, -114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108, - 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, - 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111, -103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112, - 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95, -110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2, - 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, - 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111, -121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13, - 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52, - 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20, - 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0, - 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2, - 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110, - 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105, -116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, - 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11, - 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97, - 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0, - 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26, - 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2, - 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, - 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37, - 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5, -115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0, - 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1, - 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13, - 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13, - 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, - 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, - 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101, - 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, - 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112, -116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117, -112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0, - 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13, - 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98, -111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, - 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, - 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, - 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, - 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0, - 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4, - 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, - 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, - 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119, - 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111, -112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, - 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, - 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16, - 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16, - 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101, - 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114, - 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, - 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1, - 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4, - 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1, - 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1, - 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7, - 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13, - 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13, - 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13, - 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, - 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, - 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, - 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0, - 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106, - 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100, -104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35, - 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1, - 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108, -101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2, - 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100, -104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, - 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111, -103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101, -115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, - 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3, - 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6, - 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11, - 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42, - 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7, - 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48, - 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2, - 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, - 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, - 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111, -114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0, - 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110, -111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111, -101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103, - 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, - 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103, -101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97, -118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109, -101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15, - 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2, - 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7, - 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52, - 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16, - 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13, - 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13, - 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1, - 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1, - 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54, -173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13, -105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112, -105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, - 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, - 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, - 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1, - 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7, - 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114, -114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, - 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117, -101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105, -122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13, - 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1, - 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23, - 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, - 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, - 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13, - 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37, - 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, - 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, - 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13, - 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101, -109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, - 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80, - 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101, -110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, - 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104, - 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104, - 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1, -156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, - 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, - 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, - 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15, - 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4, - 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10, - 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50, - 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2, - 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1, - 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2, -102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114, -111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101, -114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, - 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32, -104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105, -115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, - 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120, -116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101, -100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4, - 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, - 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0, - 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, - 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8, -105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1, - 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24, - 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83, -101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, - 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, - 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, - 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116, -116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4, - 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116, -111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1, -252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117, -112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2, - 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, - 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, - 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, - 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19, -105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2, - 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0, - 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76, - 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, - 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116, -105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101, -108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2, - 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85, - 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114, -101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0, - 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4, - 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1, - 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26, - 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, - 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0, - 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0, - 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0, - 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101, -112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, - 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, - 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101, -100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69, - 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, - 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67, -114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0, - 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14, - 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115, - 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, - 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, - 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, - 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, - 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105, -117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79, - 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116, -111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0, - 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114, - 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, - 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, - 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, - 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, - 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, - 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114, -111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32, -105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4, - 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24, - 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105, -117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2, - 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111, -108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114, - 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80, - 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105, -122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, - 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, - 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67, - 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, - 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97, -110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0, - 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110, -118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0, - 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52, - 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18, - 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, - 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, - 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101, -116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0, - 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2, - 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2, - 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2, - 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11, - 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3, - 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101, -120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, - 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, - 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0, - 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50, - 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15, - 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3, - 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52, - 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26, - 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9, - 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0, - 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45, -110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97, -103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101, -110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0, - 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5, - 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2, - 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13, - 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109, - 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7, -104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, - 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, - 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116, -116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103, -101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, - 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109, - 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, - 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, - 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67, -114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, - 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97, -103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, - 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18, - 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103, -101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, - 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115, - 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4, - 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105, -109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, - 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115, - 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115, - 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83, - 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, - 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0, - 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, - 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78, - 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10, - 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111, - 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66, - 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99, - 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0, - 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17, -105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, - 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67, - 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0, - 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78, - 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0, - 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0, - 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0, - 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84, - 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0, - 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115, - 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66, - 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13, - 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117, -112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6, - 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0, - 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66, - 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0, - 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0, - 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95, - 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2, - 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77, - 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2, - 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0, - 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77, - 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, - 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104, -105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73, - 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104, -108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0, - 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119, -111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0, - 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, -119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78, - 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10, - 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114, -101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2, - 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99, - 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2, - 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, - 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95, - 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0, - 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, - 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119, - 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69, - 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116, - 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66, - 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99, -116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0, - 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102, -105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118, - 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65, - 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99, -116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100, -111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110, - 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0, - 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, - 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, - 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120, -116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117, -116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, - 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111, -110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99, -116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95, - 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8, -104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116, -114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111, -115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2, - 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0, - 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0, - 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104, -105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109, - 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0, - 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101, -115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98, - 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115, -101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116, -105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99, - 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, - 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, - 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0, - 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_be64.lo"); -} diff --git a/iup/srclua3/loh/iuplua_widgets_le64.loh b/iup/srclua3/loh/iuplua_widgets_le64.loh deleted file mode 100755 index dd42bf4..0000000 --- a/iup/srclua3/loh/iuplua_widgets_le64.loh +++ /dev/null @@ -1,939 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_widgets_le64.lo"); -*/ -/* ../obj/iuplua3/iuplua_widgets_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,202, 67, 0, - 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11, - 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0, - 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15, - 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26, - 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11, - 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 1, 11, 25, 15, - 0, 30, 0, 25, 32, 15, 32, 11, 26, 11, 33, 26, 11, 35, 25, 34, 15, 30, 11, 36, - 15, 34, 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, - 25, 37, 15, 37, 11, 26, 11, 39, 26, 15, 37, 11, 40, 11, 41, 26, 15, 37, 11, 42, - 11, 43, 26, 15, 37, 11, 44, 11, 45, 26, 11, 47, 25, 46, 15, 30, 11, 48, 15, 46, - 26, 22, 2, 11, 25, 15, 0, 11, 1, 22, 1, 15, 38, 29, 0, 1, 30, 1, 25, 49, - 15, 49, 11, 26, 11, 50, 26, 11, 52, 25, 51, 15, 30, 11, 53, 15, 51, 26, 11, 55, - 25, 54, 11, 57, 25, 56, 11, 59, 25, 58, 22, 1, 11, 25, 15, 0, 30, 0, 25, 60, - 15, 60, 11, 4, 11, 61, 26, 15, 60, 11, 26, 11, 62, 26, 11, 64, 25, 63, 15, 30, - 11, 65, 15, 63, 26, 15, 66, 11, 44, 11, 67, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 68, 15, 68, 11, 4, 11, 69, 26, 15, 68, 11, 26, 11, 70, 26, 22, 1, 11, 25, - 15, 68, 30, 0, 25, 71, 15, 71, 11, 72, 11, 73, 26, 11, 75, 25, 74, 15, 30, 11, - 76, 15, 74, 26, 11, 78, 25, 77, 11, 80, 25, 79, 22, 1, 11, 25, 15, 68, 30, 0, - 25, 81, 15, 81, 11, 72, 11, 82, 26, 11, 84, 25, 83, 15, 30, 11, 85, 15, 83, 26, - 11, 87, 25, 86, 22, 1, 11, 25, 15, 68, 30, 0, 25, 88, 15, 88, 11, 72, 11, 89, - 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 1, 11, 25, 15, 0, 30, 0, - 25, 93, 15, 93, 11, 26, 11, 94, 26, 11, 96, 25, 95, 15, 30, 11, 97, 15, 95, 26, - 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 11,100, 15,101, 30, 0, 30, 1, 25, 98, - 15, 98, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1, - 11, 25, 15, 0, 30, 0, 25,106, 15,106, 11, 26, 11,107, 26, 11,109, 25,108, 15, - 30, 11,110, 15,108, 26, 22, 1, 11, 25, 15,112, 30, 0, 25,111, 15,111, 11, 26, - 11,113, 26, 11,115, 25,114, 15, 30, 11,116, 15,114, 26, 22, 2, 11, 25, 15, 0, - 11, 99, 22, 1, 11,118, 15,101, 30, 0, 30, 1, 25,117, 15,117, 11, 26, 11,119, - 26, 11,121, 25,120, 15, 30, 11,122, 15,120, 26, 22, 1, 11, 25, 15,124, 30, 0, - 25,123, 15,123, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26, - 22, 1, 11, 25, 15,124, 30, 0, 25,129, 15,129, 11, 26, 11,130, 26, 11,132, 25, -131, 15, 30, 11,133, 15,131, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 2, 15,135, - 29, 0, 1, 11,136, 15,101, 30, 0, 30, 1, 25,134, 15,134, 11, 26, 11,137, 26, - 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -141, 15,141, 11, 26, 11,142, 26, 11,144, 25,143, 15, 30, 11,145, 15,143, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,146, 15,146, 11, 44, 11,147, 26, 15,146, 11, 26, - 11,148, 26, 11,150, 25,149, 15, 30, 11,151, 15,149, 26, 22, 1, 11, 25, 15, 0, - 30, 0, 25,152, 15,152, 11, 44, 11,153, 26, 15,152, 11, 26, 11,154, 26, 11,156, - 25,155, 15, 30, 11,157, 15,155, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,158, 15, -158, 11, 44, 11,159, 26, 15,158, 11, 26, 11,160, 26, 11,162, 25,161, 15, 30, 11, -163, 15,161, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,164, 15,164, 11, 44, 11,165, - 26, 15,164, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 26, 11,171, 26, 11,173, 25,172, - 15, 30, 11,174, 15,172, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,175, 15,175, 11, - 4, 11,176, 26, 15,175, 11, 26, 11,177, 26, 11,179, 25,178, 15, 30, 11,180, 15, -178, 26, 22, 2, 11, 25, 15, 0, 11, 99, 22, 1, 15,182, 29, 0, 1, 30, 1, 25, -181, 15,181, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 11,190, 25,189, - 15, 30, 11,191, 15,189, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,192, 15,192, 11, - 26, 11,193, 26, 15,192, 11, 8, 11,194, 26, 15,192, 11, 10, 11,195, 26, 11,197, - 25,196, 15, 30, 11,198, 15,196, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,199, 15, -199, 11, 4, 11,201, 26, 15,199, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11, -205, 15,203, 26, 22, 1, 11, 25, 15,200, 30, 0, 25,206, 15,206, 11, 26, 11,207, - 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,200, 30, 0, - 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26, - 22, 1, 11, 25, 15,200, 30, 0, 25,216, 15,216, 11, 26, 11,217, 26, 11,219, 25, -218, 15, 30, 11,220, 15,218, 26, 22, 33, 11,222, 22, 2, 11,223, 4, 0, 29, 0, - 2, 11,224, 22, 2, 11,225, 4, 0, 29, 0, 2, 11,226, 22, 2, 11,227, 15,228, - 29, 0, 2, 11,229, 22, 2, 11,230, 15,231, 29, 0, 2, 11,232, 22, 2, 11,233, - 15,234, 29, 0, 2, 11,235, 22, 2, 11,236, 15,237, 29, 0, 2, 11,238, 22, 2, - 11,239, 15,240, 29, 0, 2, 11,241, 22, 2, 11,242, 15,243, 29, 0, 2, 11,244, - 22, 2, 11,245, 15,246, 29, 0, 2, 11,247, 22, 2, 11,248, 15,249, 29, 0, 2, - 11,250, 22, 2, 11,251, 15,252, 29, 0, 2, 11,253, 22, 2, 11,254, 15,255, 29, - 0, 2, 10, 1, 0, 22, 2, 10, 1, 1, 14, 1, 2, 29, 0, 2, 10, 1, 3, 22, - 2, 10, 1, 4, 14, 1, 5, 29, 0, 2, 10, 1, 6, 22, 2, 10, 1, 7, 14, 1, - 8, 29, 0, 2, 10, 1, 9, 22, 2, 10, 1, 10, 14, 1, 11, 29, 0, 2, 10, 1, - 12, 22, 2, 10, 1, 13, 14, 1, 14, 29, 0, 2, 10, 1, 15, 22, 2, 10, 1, 16, - 14, 1, 17, 29, 0, 2, 10, 1, 18, 22, 2, 10, 1, 19, 14, 1, 20, 29, 0, 2, - 10, 1, 21, 22, 2, 10, 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10, - 1, 25, 14, 1, 26, 29, 0, 2, 11,105, 22, 2, 10, 1, 27, 14, 1, 28, 29, 0, - 2, 10, 1, 29, 22, 2, 10, 1, 30, 14, 1, 31, 29, 0, 2, 10, 1, 32, 22, 2, - 10, 1, 30, 14, 1, 33, 29, 0, 2, 10, 1, 34, 22, 2, 10, 1, 35, 14, 1, 36, - 29, 0, 2, 10, 1, 37, 22, 2, 10, 1, 38, 14, 1, 39, 29, 0, 2, 10, 1, 40, - 22, 2, 10, 1, 41, 14, 1, 42, 29, 0, 2, 10, 1, 43, 22, 2, 10, 1, 44, 14, - 1, 45, 29, 0, 2, 10, 1, 46, 22, 2, 10, 1, 47, 14, 1, 48, 29, 0, 2, 10, - 1, 49, 22, 2, 10, 1, 50, 14, 1, 51, 29, 0, 2, 10, 1, 52, 22, 2, 10, 1, - 53, 14, 1, 54, 29, 0, 2, 10, 1, 55, 22, 2, 10, 1, 56, 14, 1, 57, 29, 0, - 2, 30, 31, 10, 1, 58, 22, 2, 10, 1, 59, 14, 1, 60, 29, 0, 2, 30, 0, 25, -221, 15,221, 18,222, 11,128, 14, 1, 61, 26, 15,221, 18,222, 11,116, 14, 1, 62, - 26, 15,221, 18,222, 11,110, 14, 1, 62, 26, 15,221, 18,222, 11,105, 14, 1, 63, - 26, 15,221, 18,222, 11,198, 14, 1, 64, 26, 15,221, 18,222, 11,133, 14, 1, 63, - 26, 15,221, 18,222, 11,191, 14, 1, 65, 26, 15,221, 18,224, 11, 31, 14, 1, 66, - 26, 15,221, 10, 1, 67, 15,221, 18,224, 26, 15,221, 10, 1, 68, 15,221, 18,226, - 26, 15,221, 10, 1, 69, 15,221, 18,229, 26, 15,221, 10, 1, 70, 15,221, 18,232, - 26, 15,221, 11,235, 15,221, 18,235, 26, 15,221, 10, 1, 71, 15,221, 18,238, 26, - 15,221, 10, 1, 72, 15,221, 18,241, 26, 15,221, 10, 1, 73, 15,221, 18,244, 26, - 15,221, 10, 1, 74, 15,221, 18,247, 26, 15,221, 10, 1, 75, 15,221, 18,250, 26, - 15,221, 10, 1, 76, 15,221, 18,253, 26, 15,221, 10, 1, 77, 15,221, 17, 1, 0, - 26, 15,221, 10, 1, 78, 15,221, 17, 1, 3, 26, 15,221, 10, 1, 79, 15,221, 17, - 1, 6, 26, 15,221, 10, 1, 80, 15,221, 17, 1, 9, 26, 15,221, 10, 1, 81, 15, -221, 17, 1, 12, 26, 15,221, 10, 1, 82, 15,221, 17, 1, 15, 26, 15,221, 10, 1, - 83, 15,221, 17, 1, 18, 26, 15,221, 10, 1, 84, 15,221, 17, 1, 21, 26, 15,221, - 10, 1, 85, 15,221, 17, 1, 24, 26, 15,221, 10, 1, 86, 15,221, 18,105, 26, 15, -221, 10, 1, 87, 15,221, 17, 1, 29, 26, 15,221, 10, 1, 88, 15,221, 17, 1, 32, - 26, 15,221, 10, 1, 89, 15,221, 17, 1, 34, 26, 15,221, 10, 1, 90, 15,221, 17, - 1, 37, 26, 15,221, 10, 1, 91, 15,221, 17, 1, 40, 26, 15,221, 10, 1, 92, 15, -221, 17, 1, 43, 26, 15,221, 10, 1, 93, 15,221, 17, 1, 46, 26, 15,221, 10, 1, - 94, 15,221, 17, 1, 52, 26, 15,221, 10, 1, 95, 15,221, 17, 1, 49, 26, 15,221, - 10, 1, 96, 15,221, 17, 1, 55, 26, 15,221, 10, 1, 97, 15,221, 17, 1, 58, 26, - 15,221, 10, 1, 98, 15,221, 17, 1, 99, 26, 0, 0, 0, 0, 0, 0, 0, 1,100, - 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 5,116,121,112, -101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 4, - 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, 2, 13, 1, 11, 1, 13, 0, - 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, 4, 13, 0, 20, 5, 13, 1, - 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, 15, 7, 13, 1, 18, 4, 13, - 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97, -114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, - 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 2, - 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117,116,101,115, 0, 2, 0, - 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, 0, 0, 0, 12, - 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, 0, 0, 0, 32, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, 13, 2, 4, 0, 2, 2, 2, - 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, - 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, 3, 2, 2, 2, 23, 4, 23, - 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, 0, 2, 0, 0, 0, 5,102, -117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 6,101, -114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, - 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108, -117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108, -105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98,117, -116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 80, 9, 2, 22, - 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, 2, 13, 3, 7, 1, 26, 15, - 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 22, 15, 3, 13, 2, 4, 0, - 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, 13, 1, 13, 3, 16, 2, 0, - 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, 29, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116, -101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, 0, 0, 5,110,101,120,116, - 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4, - 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, 2, 15, 1, 13, 1, 2, 1, - 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, 1, 16, 1, 2, 50, 47, 15, - 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, 2, 2, 1, 2, 13, 3, 52, - 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, 4, 1, 5, 50, 4, 13, 3, - 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 12,116,121, -112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, - 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115,116,114,117,112, -112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 16, - 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, - 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, 73,117,112, 71,101,116, 72, - 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101,116, 0, 4, 0, 0, 0, 77, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, 1, 2, 1, 1, 52,209, 15, - 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, 11, 7, 32, 48, 12, 15, 8, - 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, 0, 23, 4, 13, 4, 52, 55, - 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, 8, 13, 0, 18, 10, 2, 1, - 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, 1, 16, 13, 5, 13, 2, 2, - 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, 50,111, 15, 2, 13, 2, 2, - 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, 15, 15, 13, 0, 18, 10, 13, - 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, 2, 2, 1, 1, 52, 34, 15, - 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, 15, 15, 15, 13, 0, 18, 10, - 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, 15, 19, 13, 2, 2, 1, 1, - 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 18, - 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, 2, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 6, -118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, 0, 9,115, -116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, 99, 98, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7, -114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 67,108, - 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, - 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 7,100,105, 97,108,111, -103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 15,105,117,112, - 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,116,121,112,101, 95, -110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95,118, 97,108,117,101, 0, 2, - 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, - 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111, -121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 89, 6, 1, 7, 1, 13, - 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, 48, 4, 13, 2, 18, 4, 52, - 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, 4, 4, 0, 26, 13, 2, 20, - 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, 15, 8, 2, 0, 0, 13, 1, - 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, 2, 54, 70, 15, 9, 13, 0, - 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 2,105, 0, 2, - 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 10,114, 95,100, -101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, 97, 98,108,101, 32,105,110, - 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, 0, 0, 0, 5,101,120,105, -116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, 2, - 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,133, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, 1, 15, 2, 13, 0, 2, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 11, - 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, 0, 0, 7,100,101,116, 97, - 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 96, 8, 1, 15, 0, - 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, 13, 0, 11, 3, 4, 0, 26, - 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, 41, 50, 20, 13, 1, 13, 2, - 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, - 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, 1, 3, 13, 2, 7, 1, 37, - 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99,104, 0, 2, 0, 0, 0, 5, -115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 2,105, 0, - 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, 0, 0, 0,158, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, 2, 1, 2, 52, 57, 13, 1, - 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, 16, 13, 1, 32, 52, 4, 13, - 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 28, 15, 5, 13, - 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, 50, 4, 4, 0, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, - 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101,115, 0, - 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0,175, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, 0, 0, 0,179, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105,100,101, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 17, 67,114,101, - 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0,187, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, - 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, 0, 0, 0, 9,105,117,112, -116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 84, 73, 77, 69, 82, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105,109,101,114, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 4, 0, 0, 0,200, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105,117, -112, 67,114,101, 97,116,101, 67,108,105,112, 98,111, 97,114,100, 0, 2, 0, 0, - 0, 13,105,117,112, 99,108,105,112, 98,111, 97,114,100, 0, 4, 0, 0, 0,204, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 13, - 73, 85, 80, 67, 76, 73, 80, 66, 79, 65, 82, 68, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10, 99,108,105,112, 98, -111, 97,114,100, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, - 0,213, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, - 1, 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, - 97,110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, - 68,105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,219, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0, - 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4, - 0, 0, 0,223, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, - 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, - 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119, - 88, 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111, -112,117,112, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, - 0, 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,231, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, - 68, 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,240, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16, - 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,246, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16, - 2, 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101, - 67,104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114, - 97,100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, - 0, 4, 0, 0, 0,254, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1, - 50, 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4, - 22, 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1, - 26, 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1, - 37, 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7, - 13, 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13, - 0, 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13, - 3, 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13, - 0, 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, - 0, 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, - 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, - 6,101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0, - 2, 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105, -110,103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106, - 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100, -104,114, 97,100,105,111, 0, 4, 0, 0, 1, 26, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35, - 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1, - 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108, -101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2, - 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100, -104, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, - 9,101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 32, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, - 2, 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111, -103,103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101, -115, 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, - 7,101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 41, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3, - 2, 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6, - 11, 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11, - 15, 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42, - 11, 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7, - 2, 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48, - 11, 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2, - 42, 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, - 16, 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, - 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111, -114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0, - 0, 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110, -111,114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111, -101,115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103, - 32,116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, - 99,116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103, -101,116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97, -118,101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109, -101,110,117, 0, 4, 0, 0, 1, 59, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15, - 2, 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2, - 1, 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7, - 22, 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52, - 38, 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16, - 26, 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13, - 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13, - 4, 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1, - 23, 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1, - 13, 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54, -173, 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105, - 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13, -105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112, -105,116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, - 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, - 8,105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, - 85, 0, 4, 0, 0, 1, 94, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, - 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, - 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80, -111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, - 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1,102, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1, - 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7, - 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114, -114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, - 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117, -101, 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105, -122,101,100, 0, 4, 0, 0, 1,112, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13, - 0, 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1, - 37, 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23, - 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, - 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, - 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13, - 4, 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37, - 23, 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, - 2, 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, - 1, 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13, - 2, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101, -109,101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, - 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80, - 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101, -110,116, 0, 4, 0, 0, 1,146, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, - 67,114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104, - 98,111,120, 0, 4, 0, 0, 1,150, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104, - 98,111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1, -156, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, - 20, 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, - 73, 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, - 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, - 0, 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,162, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15, - 5, 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4, - 30, 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10, - 52, 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50, - 17, 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2, - 48, 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1, - 50, 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2, -102, 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114, -111,109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101, -114, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, - 6,116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, - 0, 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32, -104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105, -115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, - 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120, -116, 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101, -100,104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4, - 0, 0, 1,185, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, - 4, 0, 0, 1,189, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0, - 2, 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, - 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,204, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, - 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8, -105,117,112,122, 98,111,120, 0, 4, 0, 0, 1,208, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 44, 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1, - 13, 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24, - 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83, -101,116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0, - 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,223, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97, -116,101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, - 4, 0, 0, 1,227, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, - 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,236, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, - 7, 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, - 0, 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116, -116,111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4, - 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116, -111,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1, -252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117, -112,116,101,120,116, 0, 4, 0, 0, 2, 0, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2, - 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, - 5,116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, - 73, 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, - 2, 9, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19, -105,117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2, - 0, 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0, - 2, 13, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108, -116,105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76, - 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 22, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, - 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116, -105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101, -108, 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2, - 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85, - 80, 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 38, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114, -101, 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0, - 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 51, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4, - 0, 0, 2, 55, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10, -116,121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 4, 0, 0, 2, 64, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1, - 18, 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26, - 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, - 97,116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108, -101, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 70, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0, - 2, 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0, - 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 19,105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0, - 2, 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0, - 0, 2, 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101, -112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, - 68, 76, 71, 0, 4, 0, 0, 2, 92, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2, 96, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, - 70,105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101, -100,108,103, 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69, - 83, 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2,109, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, - 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67, -114,101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0, - 14,105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,117, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14, - 73, 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115, - 97,103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, - 68, 76, 71, 0, 4, 0, 0, 2,126, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, - 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, - 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117, -112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, - 2,130, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, - 67,111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108, -111,114,100,108,103, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, - 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73, - 85, 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,143, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, - 0, 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, - 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, - 67,114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105, -117,112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79, - 78, 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116, -111,114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,160, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0, - 0, 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,164, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114, - 0, 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, - 4, 0, 0, 2,173, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, - 2, 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, - 5, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, - 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, - 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114, -111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32, -105,110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,183, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4, - 13, 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24, - 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105, -117,112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2, - 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111, -108, 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114, - 0, 4, 0, 0, 2,193, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1, - 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80, - 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105, -122,101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0, - 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,202, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, - 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9, -105,117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,208, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, - 77, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67, - 65, 78, 86, 65, 83, 0, 4, 0, 0, 2,217, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, - 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97, -110,118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0, - 4, 0, 0, 2,221, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110, -118, 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0, - 2,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,234, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52, - 16, 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18, - 8, 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, - 0, 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, - 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101, -116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0, - 4, 0, 0, 2,242, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2, - 1, 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2, - 2, 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2, - 42, 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11, - 9, 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3, - 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101, -120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121, -112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112, -101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, - 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, - 0, 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,253, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 76, 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80, - 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0, - 0, 3, 6, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50, - 32, 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15, - 5, 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3, - 16, 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52, - 9, 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26, - 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9, - 13, 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4, -111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0, - 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45, -110,117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97, -103,101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101, -110,116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0, - 7,104,101,105,103,104,116, 0, 4, 0, 0, 3, 29, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 74, 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5, - 13, 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2, - 13, 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13, - 1, 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109, - 97,103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7, -104,101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, - 0, 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, - 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116, -116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103, -101, 0, 4, 0, 0, 3, 41, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, - 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109, - 97,103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, - 0, 4, 0, 0, 3, 49, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, - 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67, -114,101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119, -105,100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, - 0, 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97, -103,101,114,103, 98, 0, 4, 0, 0, 3, 53, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, - 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, - 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, - 71, 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73, - 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 61, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18, - 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103, -101, 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, - 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115, - 0, 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4, - 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0, - 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105, -109, 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, - 71, 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 74, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115, - 66, 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115, - 98, 97,114, 0, 4, 0, 0, 3, 78, 0, 0, 0, 20, 64,105,117,112,108,117, 97, - 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, - 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83, - 66, 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, - 0, 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0, - 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, - 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78, - 0, 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10, - 65, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111, - 99,117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66, - 0, 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99, - 98, 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0, - 0, 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17, -105,117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, - 0, 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67, - 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0, - 2, 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78, - 89, 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0, - 0, 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0, - 2, 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0, - 0, 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84, - 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0, - 12, 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115, - 99,114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66, - 0, 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0, - 2, 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13, - 84, 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117, -112, 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6, - 99,108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0, - 2, 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66, - 0, 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0, - 0, 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0, - 2, 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95, - 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2, - 0, 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77, - 65, 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2, - 0, 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0, - 0, 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77, - 69, 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, - 95,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104, -105,103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73, - 71, 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104, -108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0, - 0, 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119, -111,109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0, - 0, 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, -119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78, - 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10, - 82, 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114, -101,115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,109,111,118,101, 0, 2, - 0, 0, 0, 12,105,117,112, 95,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 7,109,111,116,105,111,110, 0, 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,109,111,116,105,111,110, 95, 99, - 98, 0, 2, 0, 0, 0, 12,101,110,116,101,114,119,105,110,100,111,119, 0, 2, - 0, 0, 0, 15, 69, 78, 84, 69, 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, - 0, 0, 0, 19,105,117,112, 95,101,110,116,101,114,119,105,110,100,111,119, 95, - 99, 98, 0, 2, 0, 0, 0, 12,108,101, 97,118,101,119,105,110,100,111,119, 0, - 2, 0, 0, 0, 15, 76, 69, 65, 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, - 2, 0, 0, 0, 19,105,117,112, 95,108,101, 97,118,101,119,105,110,100,111,119, - 95, 99, 98, 0, 2, 0, 0, 0, 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69, - 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109,117,108,116,105,115,101,108,101, 99,116, - 0, 2, 0, 0, 0, 15, 77, 85, 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66, - 0, 2, 0, 0, 0, 19,105,117,112, 95,109,117,108,116,105,115,101,108,101, 99, -116, 95, 99, 98, 0, 2, 0, 0, 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0, - 0, 8, 70, 73, 76, 69, 95, 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102, -105,108,101, 95, 99, 98, 0, 2, 0, 0, 0, 14,109,100,105, 97, 99,116,105,118, - 97,116,101, 99, 98, 0, 2, 0, 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65, - 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109,100,105, 97, 99, -116,105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100, -111,119,110, 99, 98, 0, 2, 0, 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100,114,111,112,100,111,119,110, - 95, 99, 98, 0, 2, 0, 0, 0, 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0, - 2, 0, 0, 0, 12, 68, 66, 76, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, - 0, 16,105,117,112, 95,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, - 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95,116,111,103,103,108,101, - 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,116,101,120, -116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 98,117, -116,116,111,110, 0, 2, 0, 0, 0, 16,105,117,112, 95, 97, 99,116,105,111,110, - 95,108,105,115,116, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, 99,116,105,111, -110, 95, 99, 97,110,118, 97,115, 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99, -116,105,111,110, 95,116,105,109,101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,103,101,116,102,111, 99,117,115, 95, - 99, 98, 0, 2, 0, 0, 0, 13,107,105,108,108,102,111, 99,117,115, 95, 99, 98, - 0, 2, 0, 0, 0, 9,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8, -104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, - 98, 0, 2, 0, 0, 0, 12,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115, 99,114,111,108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116, -114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111, -115,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2, - 0, 0, 0, 8,115,104,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112, - 95, 99, 98, 0, 2, 0, 0, 0, 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0, - 0, 0, 13,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0, - 13,109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104, -105,103,104,108,105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109, - 95, 99, 98, 0, 2, 0, 0, 0, 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0, - 0, 0, 10, 98,117,116,116,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101, -115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,109,111,118,101, 95, 99, 98, - 0, 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 15,101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 15,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115, -101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116, -105,118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99, - 98, 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, - 0, 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, - 16,118, 97,108,117,101, 99,104, 97,110,103,101,100, 95, 99, 98, 0, 2, 0, 0, - 0, 15,118, 97,108,117,101, 99,104, 97,110,103,101,100, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_le64.lo"); -} diff --git a/iup/srclua3/loh/iuplua_widgets_le64w.loh b/iup/srclua3/loh/iuplua_widgets_le64w.loh deleted file mode 100755 index cce26b4..0000000 --- a/iup/srclua3/loh/iuplua_widgets_le64w.loh +++ /dev/null @@ -1,920 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/iuplua_widgets_le64w.lo"); -*/ -/* ../obj/iuplua3/iuplua_widgets_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 7,129, 67, 0, - 22, 1, 11, 1, 22, 0, 30, 0, 25, 0, 15, 0, 11, 2, 11, 3, 26, 15, 0, 11, - 4, 11, 5, 26, 15, 0, 11, 6, 11, 7, 26, 15, 0, 11, 8, 11, 9, 26, 15, 0, - 11, 10, 11, 11, 26, 15, 0, 11, 12, 11, 13, 26, 15, 0, 11, 14, 11, 15, 26, 15, - 0, 11, 16, 11, 17, 26, 15, 0, 11, 18, 11, 19, 26, 15, 0, 11, 20, 11, 21, 26, - 15, 0, 11, 22, 11, 23, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 24, 15, 24, 11, - 26, 11, 27, 26, 11, 29, 25, 28, 15, 30, 11, 31, 15, 28, 26, 22, 2, 11, 25, 15, - 0, 11, 1, 22, 1, 15, 33, 29, 0, 1, 30, 1, 25, 32, 15, 32, 11, 26, 11, 34, - 26, 15, 32, 11, 35, 11, 36, 26, 15, 32, 11, 37, 11, 38, 26, 15, 32, 11, 39, 11, - 40, 26, 11, 42, 25, 41, 15, 30, 11, 43, 15, 41, 26, 22, 2, 11, 25, 15, 0, 11, - 1, 22, 1, 15, 33, 29, 0, 1, 30, 1, 25, 44, 15, 44, 11, 26, 11, 45, 26, 11, - 47, 25, 46, 15, 30, 11, 48, 15, 46, 26, 11, 50, 25, 49, 11, 52, 25, 51, 11, 54, - 25, 53, 22, 1, 11, 25, 15, 0, 30, 0, 25, 55, 15, 55, 11, 4, 11, 56, 26, 15, - 55, 11, 26, 11, 57, 26, 11, 59, 25, 58, 15, 30, 11, 60, 15, 58, 26, 15, 61, 11, - 39, 11, 62, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 63, 15, 63, 11, 4, 11, 64, - 26, 15, 63, 11, 26, 11, 65, 26, 22, 1, 11, 25, 15, 63, 30, 0, 25, 66, 15, 66, - 11, 67, 11, 68, 26, 11, 70, 25, 69, 15, 30, 11, 71, 15, 69, 26, 11, 73, 25, 72, - 11, 75, 25, 74, 22, 1, 11, 25, 15, 63, 30, 0, 25, 76, 15, 76, 11, 67, 11, 77, - 26, 11, 79, 25, 78, 15, 30, 11, 80, 15, 78, 26, 11, 82, 25, 81, 22, 1, 11, 25, - 15, 63, 30, 0, 25, 83, 15, 83, 11, 67, 11, 84, 26, 11, 86, 25, 85, 15, 30, 11, - 87, 15, 85, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, 88, 15, 88, 11, 26, 11, 89, - 26, 11, 91, 25, 90, 15, 30, 11, 92, 15, 90, 26, 22, 2, 11, 25, 15, 0, 11, 94, - 22, 1, 11, 95, 15, 96, 30, 0, 30, 1, 25, 93, 15, 93, 11, 26, 11, 97, 26, 11, - 99, 25, 98, 15, 30, 11,100, 15, 98, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,101, - 15,101, 11, 26, 11,102, 26, 11,104, 25,103, 15, 30, 11,105, 15,103, 26, 22, 1, - 11, 25, 15,107, 30, 0, 25,106, 15,106, 11, 26, 11,108, 26, 11,110, 25,109, 15, - 30, 11,111, 15,109, 26, 22, 2, 11, 25, 15, 0, 11, 94, 22, 1, 11,113, 15, 96, - 30, 0, 30, 1, 25,112, 15,112, 11, 26, 11,114, 26, 11,116, 25,115, 15, 30, 11, -117, 15,115, 26, 22, 1, 11, 25, 15,119, 30, 0, 25,118, 15,118, 11, 26, 11,120, - 26, 11,122, 25,121, 15, 30, 11,123, 15,121, 26, 22, 1, 11, 25, 15,119, 30, 0, - 25,124, 15,124, 11, 26, 11,125, 26, 11,127, 25,126, 15, 30, 11,128, 15,126, 26, - 22, 2, 11, 25, 15, 0, 11, 94, 22, 2, 15,130, 29, 0, 1, 11,131, 15, 96, 30, - 0, 30, 1, 25,129, 15,129, 11, 26, 11,132, 26, 11,134, 25,133, 15, 30, 11,135, - 15,133, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,136, 15,136, 11, 26, 11,137, 26, - 11,139, 25,138, 15, 30, 11,140, 15,138, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -141, 15,141, 11, 39, 11,142, 26, 15,141, 11, 26, 11,143, 26, 11,145, 25,144, 15, - 30, 11,146, 15,144, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,147, 15,147, 11, 39, - 11,148, 26, 15,147, 11, 26, 11,149, 26, 11,151, 25,150, 15, 30, 11,152, 15,150, - 26, 22, 1, 11, 25, 15, 0, 30, 0, 25,153, 15,153, 11, 39, 11,154, 26, 15,153, - 11, 26, 11,155, 26, 11,157, 25,156, 15, 30, 11,158, 15,156, 26, 22, 1, 11, 25, - 15, 0, 30, 0, 25,159, 15,159, 11, 39, 11,160, 26, 15,159, 11, 26, 11,161, 26, - 11,163, 25,162, 15, 30, 11,164, 15,162, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -165, 15,165, 11, 26, 11,166, 26, 11,168, 25,167, 15, 30, 11,169, 15,167, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,170, 15,170, 11, 4, 11,171, 26, 15,170, 11, 26, - 11,172, 26, 11,174, 25,173, 15, 30, 11,175, 15,173, 26, 22, 2, 11, 25, 15, 0, - 11, 94, 22, 1, 15,177, 29, 0, 1, 30, 1, 25,176, 15,176, 11, 26, 11,178, 26, - 11,180, 25,179, 15, 30, 11,181, 15,179, 26, 22, 1, 11, 25, 15, 0, 30, 0, 25, -182, 15,182, 11, 26, 11,183, 26, 11,185, 25,184, 15, 30, 11,186, 15,184, 26, 22, - 1, 11, 25, 15, 0, 30, 0, 25,187, 15,187, 11, 26, 11,188, 26, 15,187, 11, 8, - 11,189, 26, 15,187, 11, 10, 11,190, 26, 11,192, 25,191, 15, 30, 11,193, 15,191, - 26, 22, 1, 11, 25, 15,195, 30, 0, 25,194, 15,194, 11, 4, 11,196, 26, 15,194, - 11, 26, 11,197, 26, 11,199, 25,198, 15, 30, 11,200, 15,198, 26, 22, 1, 11, 25, - 15,195, 30, 0, 25,201, 15,201, 11, 26, 11,202, 26, 11,204, 25,203, 15, 30, 11, -205, 15,203, 26, 22, 1, 11, 25, 15,195, 30, 0, 25,206, 15,206, 11, 26, 11,207, - 26, 11,209, 25,208, 15, 30, 11,210, 15,208, 26, 22, 1, 11, 25, 15,195, 30, 0, - 25,211, 15,211, 11, 26, 11,212, 26, 11,214, 25,213, 15, 30, 11,215, 15,213, 26, - 22, 32, 11,217, 22, 2, 11,218, 4, 0, 29, 0, 2, 11,219, 22, 2, 11,220, 4, - 0, 29, 0, 2, 11,221, 22, 2, 11,222, 15,223, 29, 0, 2, 11,224, 22, 2, 11, -225, 15,226, 29, 0, 2, 11,227, 22, 2, 11,228, 15,229, 29, 0, 2, 11,230, 22, - 2, 11,231, 15,232, 29, 0, 2, 11,233, 22, 2, 11,234, 15,235, 29, 0, 2, 11, -236, 22, 2, 11,237, 15,238, 29, 0, 2, 11,239, 22, 2, 11,240, 15,241, 29, 0, - 2, 11,242, 22, 2, 11,243, 15,244, 29, 0, 2, 11,245, 22, 2, 11,246, 15,247, - 29, 0, 2, 11,248, 22, 2, 11,249, 15,250, 29, 0, 2, 11,251, 22, 2, 11,252, - 15,253, 29, 0, 2, 11,254, 22, 2, 11,255, 14, 1, 0, 29, 0, 2, 10, 1, 1, - 22, 2, 10, 1, 2, 14, 1, 3, 29, 0, 2, 10, 1, 4, 22, 2, 10, 1, 5, 14, - 1, 6, 29, 0, 2, 10, 1, 7, 22, 2, 10, 1, 8, 14, 1, 9, 29, 0, 2, 10, - 1, 10, 22, 2, 10, 1, 11, 14, 1, 12, 29, 0, 2, 10, 1, 13, 22, 2, 10, 1, - 14, 14, 1, 15, 29, 0, 2, 10, 1, 16, 22, 2, 10, 1, 17, 14, 1, 18, 29, 0, - 2, 10, 1, 19, 22, 2, 10, 1, 20, 14, 1, 21, 29, 0, 2, 11,100, 22, 2, 10, - 1, 22, 14, 1, 23, 29, 0, 2, 10, 1, 24, 22, 2, 10, 1, 25, 14, 1, 26, 29, - 0, 2, 10, 1, 27, 22, 2, 10, 1, 28, 14, 1, 29, 29, 0, 2, 10, 1, 30, 22, - 2, 10, 1, 31, 14, 1, 32, 29, 0, 2, 10, 1, 33, 22, 2, 10, 1, 34, 14, 1, - 35, 29, 0, 2, 10, 1, 36, 22, 2, 10, 1, 37, 14, 1, 38, 29, 0, 2, 10, 1, - 39, 22, 2, 10, 1, 40, 14, 1, 41, 29, 0, 2, 10, 1, 42, 22, 2, 10, 1, 43, - 14, 1, 44, 29, 0, 2, 10, 1, 45, 22, 2, 10, 1, 46, 14, 1, 47, 29, 0, 2, - 10, 1, 48, 22, 2, 10, 1, 49, 14, 1, 50, 29, 0, 2, 10, 1, 51, 22, 2, 10, - 1, 52, 14, 1, 53, 29, 0, 2, 30, 31, 25,216, 15,216, 18,217, 11,123, 14, 1, - 54, 26, 15,216, 18,217, 11,111, 14, 1, 55, 26, 15,216, 18,217, 11,105, 14, 1, - 55, 26, 15,216, 18,217, 11,100, 14, 1, 56, 26, 15,216, 18,217, 11,193, 14, 1, - 57, 26, 15,216, 18,217, 11,128, 14, 1, 56, 26, 15,216, 18,217, 11,186, 14, 1, - 58, 26, 15,216, 18,219, 11, 31, 14, 1, 59, 26, 15,216, 10, 1, 60, 15,216, 18, -219, 26, 15,216, 10, 1, 61, 15,216, 18,221, 26, 15,216, 10, 1, 62, 15,216, 18, -224, 26, 15,216, 10, 1, 63, 15,216, 18,227, 26, 15,216, 11,230, 15,216, 18,230, - 26, 15,216, 10, 1, 64, 15,216, 18,233, 26, 15,216, 10, 1, 65, 15,216, 18,236, - 26, 15,216, 10, 1, 66, 15,216, 18,239, 26, 15,216, 10, 1, 67, 15,216, 18,242, - 26, 15,216, 10, 1, 68, 15,216, 18,245, 26, 15,216, 10, 1, 69, 15,216, 18,248, - 26, 15,216, 10, 1, 70, 15,216, 18,251, 26, 15,216, 10, 1, 71, 15,216, 18,254, - 26, 15,216, 10, 1, 72, 15,216, 17, 1, 1, 26, 15,216, 10, 1, 73, 15,216, 17, - 1, 4, 26, 15,216, 10, 1, 74, 15,216, 17, 1, 7, 26, 15,216, 10, 1, 75, 15, -216, 17, 1, 10, 26, 15,216, 10, 1, 76, 15,216, 17, 1, 13, 26, 15,216, 10, 1, - 77, 15,216, 17, 1, 16, 26, 15,216, 10, 1, 78, 15,216, 17, 1, 19, 26, 15,216, - 10, 1, 79, 15,216, 18,100, 26, 15,216, 10, 1, 80, 15,216, 17, 1, 24, 26, 15, -216, 10, 1, 81, 15,216, 17, 1, 27, 26, 15,216, 10, 1, 82, 15,216, 17, 1, 30, - 26, 15,216, 10, 1, 83, 15,216, 17, 1, 33, 26, 15,216, 10, 1, 84, 15,216, 17, - 1, 36, 26, 15,216, 10, 1, 85, 15,216, 17, 1, 39, 26, 15,216, 10, 1, 86, 15, -216, 17, 1, 45, 26, 15,216, 10, 1, 87, 15,216, 17, 1, 42, 26, 15,216, 10, 1, - 88, 15,216, 17, 1, 48, 26, 15,216, 10, 1, 89, 15,216, 17, 1, 51, 26, 0, 0, - 0, 0, 0, 0, 0, 1, 90, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, - 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 4, 0, 0, 0, 12, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 57, 7, - 2, 13, 1, 11, 1, 13, 0, 26, 13, 0, 20, 3, 13, 1, 2, 0, 2, 13, 1, 11, - 4, 13, 0, 20, 5, 13, 1, 2, 1, 2, 26, 13, 0, 20, 6, 13, 1, 2, 0, 2, - 15, 7, 13, 1, 18, 4, 13, 1, 26, 13, 1, 18, 4, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,112, 97, -114,101,110,116, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, - 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 2, 0, 0, 0, 7,104, 97,110, -100,108,101, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 2, 0, 0, 0, 14,115,101,116, 65,116,116,114,105, 98, -117,116,101,115, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97,110,100,108,101, -115, 0, 2, 0, 0, 0, 12, 99,104,101, 99,107, 80, 97,114, 97,109,115, 0, 4, - 0, 0, 0, 32, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 61, 8, 2, 13, 0, 18, 1, 15, 5, - 13, 2, 4, 0, 2, 2, 2, 50, 39, 13, 4, 13, 1, 13, 3, 16, 2, 1, 1, 44, - 52, 13, 15, 6, 11, 7, 13, 3, 42, 11, 8, 42, 2, 0, 1, 15, 5, 13, 2, 13, - 3, 2, 2, 2, 23, 4, 23, 3, 13, 3, 54, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, - 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112, 97,114, 97,109, - 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, 0, 0, 0, 5,110,101,120,116, - 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, - 97,109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114, -111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32, -105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, 0, 0, 14,115,101,116, - 65,116,116,114,105, 98,117,116,101,115, 0, 4, 0, 0, 0, 43, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 80, 9, 2, 22, 0, 15, 3, 13, 1, 4, 0, 2, 1, 2, 50, 18, 13, - 2, 13, 3, 7, 1, 26, 15, 3, 13, 1, 13, 3, 2, 1, 2, 23, 3, 13, 3, 54, - 22, 15, 3, 13, 2, 4, 0, 2, 1, 2, 23, 3, 50, 25, 13, 1, 20, 4, 13, 3, - 13, 1, 13, 3, 16, 2, 0, 3, 15, 3, 13, 2, 13, 3, 2, 1, 2, 23, 3, 13, - 3, 54, 29, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 5,116,101,109,112, 0, 2, 0, 0, 0, 2,102, 0, 2, 0, - 0, 0, 5,110,101,120,116, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, 0, - 0, 4,103,101,116, 0, 4, 0, 0, 0, 57, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 82, 6, - 2, 15, 1, 13, 1, 2, 1, 1, 52, 63, 15, 2, 13, 1, 16, 52, 9, 13, 0, 13, - 1, 16, 1, 2, 50, 47, 15, 5, 13, 1, 2, 1, 1, 15, 7, 13, 0, 18, 8, 13, - 2, 2, 1, 2, 13, 3, 52, 23, 15, 9, 13, 3, 2, 1, 1, 13, 4, 52, 6, 13, - 4, 1, 5, 50, 4, 13, 3, 1, 5, 5, 1, 5, 2, 13, 0, 13, 1, 16, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 6,105,110,100,101,120, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, 0, 2, 0, 0, - 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 6,118, 97,108,117, -101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 13, - 73,117,112, 71,101,116, 72, 97,110,100,108,101, 0, 2, 0, 0, 0, 4,115,101, -116, 0, 4, 0, 0, 0, 77, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,228, 11, 3, 15, 2, 13, - 1, 2, 1, 1, 52,209, 15, 4, 13, 1, 2, 1, 1, 15, 6, 13, 1, 16, 13, 1, - 11, 7, 32, 48, 12, 15, 8, 13, 0, 18, 10, 2, 1, 1, 11, 11, 32, 52, 4, 4, - 0, 23, 4, 13, 4, 52, 55, 13, 4, 7, 2, 16, 13, 5, 44, 52, 14, 13, 4, 15, - 8, 13, 0, 18, 10, 2, 1, 1, 16, 23, 5, 15, 13, 13, 0, 18, 10, 13, 4, 7, - 1, 16, 13, 5, 13, 2, 2, 0, 4, 13, 0, 13, 1, 13, 2, 26, 1, 6, 5, 1, - 50,111, 15, 2, 13, 2, 2, 1, 1, 46, 7, 15, 14, 13, 2, 2, 1, 1, 52, 17, - 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 2, 0, 3, 1, 5, 50, 76, 15, 16, 13, - 2, 2, 1, 1, 52, 34, 15, 18, 13, 0, 18, 10, 13, 3, 2, 1, 2, 13, 5, 52, - 15, 15, 15, 13, 0, 18, 10, 13, 3, 13, 2, 2, 0, 3, 1, 6, 5, 1, 50, 33, - 15, 19, 13, 2, 2, 1, 1, 52, 24, 15, 20, 13, 2, 2, 0, 1, 15, 15, 13, 0, - 18, 10, 13, 3, 13, 2, 18, 21, 2, 0, 3, 1, 5, 5, 2, 13, 0, 13, 1, 13, - 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 6,105,110,100,101, -120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 12,116,121, -112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 6, 73, 78, 68, 69, 88, - 0, 2, 0, 0, 0, 9,115,116,114,117,112,112,101,114, 0, 2, 0, 0, 0, 3, - 99, 98, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107, -115, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 16, 73, -117,112, 71,101,116, 67,108, 97,115,115, 78, 97,109,101, 0, 2, 0, 0, 0, 5, -115,101,108,102, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, - 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, 5,102,117,110, 99, 0, 2, - 0, 0, 0, 15,105,117,112, 83,101,116, 67, 97,108,108, 98, 97, 99,107, 0, 2, - 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, - 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, - 0, 9,116,121,112,101, 95,110,105,108, 0, 2, 0, 0, 0, 10,111,108,100, 95, -118, 97,108,117,101, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116, -114,105, 98,117,116,101, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100, -103,101,116, 0, 2, 0, 0, 0, 11,105,117,112, 83,101,116, 78, 97,109,101, 0, - 2, 0, 0, 0, 9, 73, 85, 80, 95,110, 97,109,101, 0, 2, 0, 0, 0, 10,114, - 95,100,101,115,116,114,111,121, 0, 4, 0, 0, 0,113, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 89, 6, 1, 7, 1, 13, 0, 13, 1, 16, 50, 66, 15, 3, 13, 2, 2, 1, 1, - 48, 4, 13, 2, 18, 4, 52, 37, 13, 2, 18, 4, 13, 0, 32, 52, 16, 13, 2, 11, - 4, 4, 0, 26, 13, 2, 20, 5, 2, 0, 1, 50, 12, 15, 6, 11, 7, 2, 0, 1, - 15, 8, 2, 0, 0, 13, 1, 7, 1, 37, 23, 1, 13, 0, 13, 1, 16, 23, 2, 13, - 2, 54, 70, 15, 9, 13, 0, 4, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, - 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103, -101,116, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, - 0, 0, 0, 10,114, 95,100,101,115,116,114,111,121, 0, 2, 0, 0, 0, 6,101, -114,114,111,114, 0, 2, 0, 0, 0, 29, 73,110,116,101,114,110, 97,108, 32,116, - 97, 98,108,101, 32,105,110, 99,111,110,115,105,115,116,101,110, 99,121, 0, 2, - 0, 0, 0, 5,101,120,105,116, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, 97, -110,100,108,101,115, 0, 2, 0, 0, 0, 8,100,101,115,116,114,111,121, 0, 4, - 0, 0, 0,133, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 17, 3, 1, 13, 0, 20, 1, 2, 0, - 1, 15, 2, 13, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 10,114, 95,100,101,115,116,114,111, -121, 0, 2, 0, 0, 0, 11, 73,117,112, 68,101,115,116,114,111,121, 0, 2, 0, - 0, 0, 7,100,101,116, 97, 99,104, 0, 4, 0, 0, 0,138, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0, 96, 8, 1, 15, 0, 13, 0, 2, 0, 1, 13, 0, 18, 3, 13, 1, 52, 78, - 13, 0, 11, 3, 4, 0, 26, 7, 1, 50, 58, 13, 1, 13, 2, 16, 13, 0, 32, 52, - 41, 50, 20, 13, 1, 13, 2, 13, 1, 13, 2, 7, 1, 37, 16, 26, 13, 2, 7, 1, - 37, 23, 2, 13, 1, 13, 2, 7, 1, 37, 16, 54, 30, 13, 1, 13, 2, 4, 0, 26, - 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 65, 5, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 10, 73,117,112, 68,101,116, 97, 99, -104, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 7,112, 97,114, -101,110,116, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, - 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 7, 97,112,112,101,110,100, 0, 4, - 0, 0, 0,158, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 75, 6, 2, 15, 1, 13, 0, 13, 1, - 2, 1, 2, 52, 57, 13, 1, 11, 3, 13, 0, 26, 7, 1, 50, 21, 13, 0, 13, 2, - 16, 13, 1, 32, 52, 4, 13, 2, 1, 3, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, - 2, 16, 54, 28, 15, 5, 13, 0, 16, 13, 2, 13, 1, 26, 13, 2, 1, 3, 5, 1, - 50, 4, 4, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, - 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 12,105,117,112, 95,104, - 97,110,100,108,101,115, 0, 2, 0, 0, 0, 4,109, 97,112, 0, 4, 0, 0, 0, -175, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 7, 73,117,112, 77, 97,112, 0, 2, - 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 5,104,105,100,101, 0, 4, - 0, 0, 0,179, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 72,105, -100,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 84, 73, 77, 69, 82, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, - 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, - 0, 4, 0, 0, 0,187, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, - 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 84,105,109,101,114, 0, 2, - 0, 0, 0, 9,105,117,112,116,105,109,101,114, 0, 4, 0, 0, 0,191, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, - 80, 84, 73, 77, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99, -116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,116,105, -109,101,114, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, 73, 65, 76, 79, 71, 0, 2, - 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 0, -200, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, - 1, 13, 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97, -110,100,108,101, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 68, -105, 97,108,111,103, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110, -116, 0, 2, 0, 0, 0, 5,115,104,111,119, 0, 4, 0, 0, 0,206, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 10, 3, 1, 15, 0, 13, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 8, 73,117,112, 83,104,111,119, 0, 2, 0, 0, 0, - 5,115,101,108,102, 0, 2, 0, 0, 0, 7,115,104,111,119,120,121, 0, 4, 0, - 0, 0,210, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, - 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, - 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 10, 73,117,112, 83,104,111,119, 88, - 89, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 6,112,111,112, -117,112, 0, 4, 0, 0, 0,214, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, - 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, - 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, - 10,105,117,112,100,105, 97,108,111,103, 0, 4, 0, 0, 0,218, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 68, - 73, 65, 76, 79, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116, -111,114, 0, 2, 0, 0, 0, 7,100,105, 97,108,111,103, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 82, 65, 68, 73, 79, 0, 4, 0, 0, 0,227, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, 1, 7, 1, 16, 11, - 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, - 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 82, 97,100,105,111, 0, 2, 0, - 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,105, -117,112,114, 97,100,105,111, 0, 4, 0, 0, 0,233, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 26, 5, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 15, 4, 13, 1, 7, 1, 16, 2, - 0, 1, 13, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 9, 73, - 85, 80, 82, 65, 68, 73, 79, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, - 99,116,111,114, 0, 2, 0, 0, 0, 23,105,117,112, 67,114,101, 97,116,101, 67, -104,105,108,100,114,101,110, 78, 97,109,101,115, 0, 2, 0, 0, 0, 6,114, 97, -100,105,111, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, - 4, 0, 0, 0,241, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,156, 11, 1, 22, 0, 7, 1, 50, - 61, 15, 3, 13, 0, 13, 2, 16, 2, 1, 1, 52, 29, 13, 1, 13, 2, 15, 4, 22, - 2, 11, 5, 13, 0, 13, 2, 16, 11, 6, 13, 0, 18, 6, 30, 1, 2, 1, 1, 26, - 50, 13, 15, 7, 11, 8, 13, 2, 42, 11, 9, 42, 2, 0, 1, 13, 2, 7, 1, 37, - 23, 2, 13, 0, 13, 2, 16, 54, 68, 13, 0, 18, 10, 52, 51, 7, 1, 50, 7, 13, - 3, 7, 1, 37, 23, 3, 13, 0, 13, 3, 16, 48, 10, 13, 0, 13, 3, 16, 13, 0, - 18, 10, 31, 54, 26, 13, 0, 13, 3, 16, 52, 10, 13, 1, 11, 10, 13, 1, 13, 3, - 16, 26, 5, 1, 50, 18, 13, 0, 18, 12, 52, 12, 13, 1, 11, 10, 13, 1, 13, 0, - 18, 12, 16, 26, 13, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, - 0, 2,104, 0, 2, 0, 0, 0, 4,116,109,112, 0, 2, 0, 0, 0, 2,105, 0, - 2, 0, 0, 0, 12,116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, - 0, 10,105,117,112,116,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 6, -101,114,114,111,114, 0, 2, 0, 0, 0, 8,111,112,116,105,111,110, 32, 0, 2, - 0, 0, 0, 18, 32,109,117,115,116, 32, 98,101, 32, 97, 32,115,116,114,105,110, -103, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 2,106, 0, - 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 9,101,100,104, -114, 97,100,105,111, 0, 4, 0, 0, 1, 13, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 35, 6, - 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, 1, 1, 29, - 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103,103,108,101, -115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, 0, 2, 0, - 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7,101,100,104, - 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 9, -101,100,118,114, 97,100,105,111, 0, 4, 0, 0, 1, 19, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 35, 6, 1, 15, 2, 13, 0, 2, 1, 1, 15, 3, 22, 2, 15, 4, 13, 1, 2, - 1, 1, 29, 0, 1, 11, 5, 13, 1, 18, 5, 30, 0, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8,116,111,103, -103,108,101,115, 0, 2, 0, 0, 0, 11,101,100,110,116,111,103,103,108,101,115, - 0, 2, 0, 0, 0, 9,105,117,112,114, 97,100,105,111, 0, 2, 0, 0, 0, 7, -101,100,118, 98,111,120, 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, 0, 4, 0, 0, 1, 28, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0,159, 7, 2, 7, 1, 50,145, 13, 1, 13, 2, 16, 15, 3, 13, 3, 2, - 1, 1, 44, 52,121, 15, 4, 13, 3, 2, 1, 1, 11, 5, 31, 52, 15, 15, 6, 11, - 7, 13, 2, 42, 11, 8, 42, 2, 0, 1, 50, 94, 13, 3, 7, 1, 16, 48, 11, 15, - 9, 13, 3, 7, 1, 16, 2, 1, 1, 44, 52, 15, 15, 6, 11, 7, 13, 2, 42, 11, - 10, 42, 2, 0, 1, 50, 59, 13, 3, 7, 2, 16, 48, 11, 15, 9, 13, 3, 7, 2, - 16, 2, 1, 1, 44, 48, 11, 15, 11, 13, 3, 7, 2, 16, 2, 1, 1, 44, 48, 11, - 15, 12, 13, 3, 7, 2, 16, 2, 1, 1, 44, 52, 13, 15, 6, 11, 7, 13, 2, 42, - 11, 13, 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, - 54,152, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98,106, 0, - 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10,116, -121,112,101, 95,105,116,101,109, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, - 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, - 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, 0, 0, - 0, 32, 32,105,115, 32,110,111,116, 32, 97, 32,116, 97, 98,108,101, 32,110,111, -114, 32, 97, 32,109,101,110,117, 32,105,116,101,109, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 30, 32,100,111,101, -115, 32,110,111,116, 32,104, 97,118,101, 32, 97, 32,115,116,114,105,110,103, 32, -116,105,116,108,101, 0, 2, 0, 0, 0, 14,116,121,112,101, 95,102,117,110, 99, -116,105,111,110, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101, -116, 0, 2, 0, 0, 0, 36, 32,100,111,101,115, 32,110,111,116, 32,104, 97,118, -101, 32, 97,110, 32, 97, 99,116,105,111,110, 32,110,111,114, 32, 97, 32,109,101, -110,117, 0, 4, 0, 0, 1, 46, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,189, 10, 2, 15, 2, - 2, 1, 0, 7, 1, 50,166, 13, 1, 13, 3, 16, 4, 0, 15, 6, 13, 4, 2, 1, - 1, 52, 6, 13, 4, 23, 5, 50,112, 13, 4, 7, 1, 16, 44, 52, 11, 15, 7, 22, - 0, 2, 1, 1, 23, 5, 50, 93, 15, 6, 13, 4, 7, 2, 16, 2, 1, 1, 52, 38, - 13, 4, 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 7, 1, 13, 4, 7, 2, 16, 26, - 13, 4, 7, 2, 4, 0, 26, 15, 9, 13, 4, 2, 1, 1, 23, 5, 50, 43, 13, 4, - 11, 8, 13, 4, 7, 1, 16, 26, 13, 4, 11, 10, 13, 4, 7, 2, 16, 26, 13, 4, - 7, 1, 4, 0, 26, 13, 4, 7, 2, 4, 0, 26, 15, 11, 13, 4, 2, 1, 1, 23, - 5, 15, 12, 13, 2, 13, 5, 2, 0, 2, 13, 5, 11, 13, 13, 2, 26, 13, 1, 13, - 3, 13, 5, 26, 13, 3, 7, 1, 37, 23, 3, 5, 2, 13, 1, 13, 3, 16, 54,173, - 13, 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 4,111, 98, -106, 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 77,101,110,117, 0, 2, 0, 0, 0, 2,105, 0, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 5,101,108,101,109, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 13,105, -117,112,115,101,112, 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 6,116,105,116, -108,101, 0, 2, 0, 0, 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 2, - 0, 0, 0, 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 8,105,117,112,105, -116,101,109, 0, 2, 0, 0, 0, 10, 73,117,112, 65,112,112,101,110,100, 0, 2, - 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, -105,117,112,109,101,110,117, 0, 4, 0, 0, 1, 76, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, - 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, - 0, 0, 5,109,101,110,117, 0, 2, 0, 0, 0, 8, 73, 85, 80, 77, 69, 78, 85, - 0, 4, 0, 0, 1, 81, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, 13, 0, - 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, - 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, 80,111, -112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 12, 67, - 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 0, 4, 0, 0, 1, 89, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, 13, 1, 13, 2, 16, 2, 1, 1, - 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, 42, 2, 0, 1, 13, 2, 7, 1, - 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, - 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,119,105,100,103,101,116, 0, 2, 0, 0, 0, 6,101,114,114, -111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97,109,101,116,101,114, 32, 0, 2, - 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, - 32,111,114, 32,105,115, 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122, -101,100, 0, 4, 0, 0, 1, 99, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0,187, 11, 2, 13, 0, - 20, 3, 2, 1, 1, 13, 1, 18, 4, 7, 1, 7, 0, 50, 14, 13, 5, 7, 1, 37, - 23, 5, 13, 4, 7, 1, 37, 23, 4, 13, 1, 13, 4, 16, 54, 21, 7, 1, 23, 4, - 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, 1, - 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, 13, - 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 50, 79, 15, 9, 13, 2, 13, 1, 13, 4, - 16, 2, 0, 2, 13, 1, 13, 4, 16, 11, 10, 13, 2, 26, 13, 4, 7, 1, 37, 23, - 4, 13, 3, 15, 7, 32, 52, 43, 13, 1, 13, 4, 13, 5, 37, 15, 8, 22, 0, 2, - 1, 1, 26, 15, 9, 13, 2, 13, 1, 13, 4, 13, 5, 37, 16, 2, 0, 2, 13, 1, - 13, 4, 13, 5, 37, 16, 11, 10, 13, 2, 26, 13, 4, 13, 5, 34, 54, 86, 13, 2, - 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, 4,111, 98,106, 0, - 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109, -101,110,116, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, - 2,105, 0, 2, 0, 0, 0, 2,110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, - 69, 83, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 2, 0, 0, 0, - 10, 73,117,112, 65,112,112,101,110,100, 0, 2, 0, 0, 0, 11, 73, 85, 80, 95, -112, 97,114,101,110,116, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 66,111,120, 69,108,101,109,101,110, -116, 0, 4, 0, 0, 1,133, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67, -114,101, 97,116,101, 72, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,104, 98, -111,120, 0, 4, 0, 0, 1,137, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,104, 98, -111,120, 0, 2, 0, 0, 0, 7,101,100,104, 98,111,120, 0, 4, 0, 0, 1,143, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, - 4, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, - 85, 80, 95, 89, 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 72, 66, 79, 88, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 8,101,100,102,105,101,108,100, 0, 4, 0, 0, 1,149, 0, 0, 0, 20, 64, -105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, - 0, 0,123, 7, 1, 4, 1, 15, 3, 13, 0, 18, 4, 2, 1, 1, 46, 9, 15, 5, - 13, 0, 18, 4, 2, 1, 1, 52, 19, 15, 6, 22, 1, 11, 7, 13, 0, 18, 4, 30, - 0, 2, 1, 1, 23, 1, 50, 7, 15, 8, 11, 9, 2, 0, 1, 13, 0, 18, 10, 52, - 19, 15, 11, 22, 1, 11, 10, 13, 0, 18, 10, 30, 0, 2, 1, 1, 23, 2, 50, 17, - 15, 11, 22, 1, 11, 10, 13, 0, 18, 12, 30, 0, 2, 1, 1, 23, 2, 13, 2, 48, - 2, 13, 1, 52, 16, 15, 13, 22, 2, 13, 1, 13, 2, 29, 0, 2, 3, 3, 1, 50, - 4, 4, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 2,102, - 0, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 7,112,114,111, -109,112,116, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,110,117,109, 98,101,114, - 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 2, 0, 0, 0, 6, -116,105,116,108,101, 0, 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, - 0, 55,112, 97,114, 97,109,101,116,101,114, 32,112,114,111,109,112,116, 32,104, - 97,115, 32,119,114,111,110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, - 32,110,111,116, 32,105,110,105,116,105, 97,108,105,122,101,100, 0, 2, 0, 0, - 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 8,105,117,112,116,101,120,116, - 0, 2, 0, 0, 0, 7,110,118, 97,108,117,101, 0, 2, 0, 0, 0, 7,101,100, -104, 98,111,120, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 4, 0, - 0, 1,172, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116, -101, 86, 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,118, 98,111,120, 0, 4, - 0, 0, 1,176, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,118, 98,111,120, 0, 2, - 0, 0, 0, 7,101,100,118, 98,111,120, 0, 4, 0, 0, 1,182, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 19, 4, 1, 13, 0, 11, 1, 15, 2, 26, 15, 3, 20, 4, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 7,102,105,108,108,101,100, 0, 2, 0, 0, 0, 8, 73, 85, 80, 95, 89, - 69, 83, 0, 2, 0, 0, 0, 8, 73, 85, 80, 86, 66, 79, 88, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 8, 73, 85, - 80, 90, 66, 79, 88, 0, 4, 0, 0, 1,191, 0, 0, 0, 20, 64,105,117,112,108, -117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, - 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 90, 98,111,120, 0, 2, 0, 0, 0, 8,105, -117,112,122, 98,111,120, 0, 4, 0, 0, 1,195, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 44, - 6, 1, 15, 2, 20, 3, 13, 0, 2, 1, 2, 7, 1, 50, 17, 15, 5, 13, 1, 13, - 2, 16, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 0, 13, 2, 16, 54, 24, 13, - 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 8, 73, 85, - 80, 90, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116, -111,114, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 11,105,117,112, 83,101, -116, 78, 97,109,101, 0, 2, 0, 0, 0, 5,122, 98,111,120, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 70, 73, 76, 76, 0, 4, 0, 0, 1,210, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116, -101, 70,105,108,108, 0, 2, 0, 0, 0, 8,105,117,112,102,105,108,108, 0, 4, - 0, 0, 1,214, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 8, 73, 85, 80, 70, 73, 76, 76, 0, 2, 0, 0, 0, 12, 67,111,110, -115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,102,105,108,108, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 5,116, -121,112,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, 2, 0, 0, 0, 12, -116,121,112,101, 95,115,116,114,105,110,103, 0, 4, 0, 0, 1,223, 0, 0, 0, - 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, - 0, 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, - 13, 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116, -105,116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 66,117,116,116, -111,110, 0, 2, 0, 0, 0, 10,105,117,112, 98,117,116,116,111,110, 0, 4, 0, - 0, 1,230, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 10, 73, 85, 80, 66, 85, 84, 84, 79, 78, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 98,117,116,116,111, -110, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1,239, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117, -112, 67,114,101, 97,116,101, 84,101,120,116, 0, 2, 0, 0, 0, 8,105,117,112, -116,101,120,116, 0, 4, 0, 0, 1,243, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, - 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, - 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 2, 0, - 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5, -116,101,120,116, 0, 2, 0, 0, 0, 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, - 78, 69, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 69, 88, 84, 0, 4, 0, 0, 1, -252, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19,105, -117,112, 67,114,101, 97,116,101, 77,117,108,116,105, 76,105,110,101, 0, 2, 0, - 0, 0, 13,105,117,112,109,117,108,116,105,108,105,110,101, 0, 4, 0, 0, 2, - 0, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 13, 73, 85, 80, 77, 85, 76, 84, 73, 76, 73, 78, 69, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,109,117,108,116, -105,108,105,110,101, 0, 2, 0, 0, 0, 9, 73, 85, 80, 76, 65, 66, 69, 76, 0, - 2, 0, 0, 0, 6,116,105,116,108,101, 0, 4, 0, 0, 2, 9, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 32, 5, 2, 13, 1, 18, 1, 44, 48, 4, 13, 1, 18, 2, 52, 7, 13, - 1, 11, 1, 11, 3, 26, 15, 4, 13, 1, 18, 1, 3, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 6,116,105, -116,108,101, 0, 2, 0, 0, 0, 6,105,109, 97,103,101, 0, 2, 0, 0, 0, 1, - 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 76, 97, 98,101,108, - 0, 2, 0, 0, 0, 9,105,117,112,108, 97, 98,101,108, 0, 4, 0, 0, 2, 16, - 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46, -108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, - 73, 85, 80, 76, 65, 66, 69, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 6,108, 97, 98,101,108, 0, 2, 0, 0, - 0, 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 10, 73, 85, 80, - 66, 85, 84, 84, 79, 78, 0, 4, 0, 0, 2, 25, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, - 97,116,101, 84,111,103,103,108,101, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 10,105,117,112,116,111,103,103,108,101, 0, 4, 0, 0, 2, - 29, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 10, 73, 85, 80, 84, 79, 71, 71, 76, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7,116,111,103,103,108,101, 0, - 2, 0, 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 4, 0, 0, 2, 38, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 2, 15, 1, 13, 1, 18, 2, 3, 2, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14, -105,117,112, 67,114,101, 97,116,101, 73,116,101,109, 0, 2, 0, 0, 0, 6,116, -105,116,108,101, 0, 2, 0, 0, 0, 8,105,117,112,105,116,101,109, 0, 4, 0, - 0, 2, 42, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 73, 84, 69, 77, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,105,116,101,109, 0, 2, 0, - 0, 0, 11, 73, 85, 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 10,116, -121,112,101, 95,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, 0, - 4, 0, 0, 2, 51, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 31, 6, 2, 15, 2, 13, 1, 18, - 3, 13, 1, 7, 1, 16, 2, 1, 2, 13, 1, 7, 1, 16, 11, 4, 13, 2, 26, 13, - 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 2,104, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97, -116,101, 83,117, 98,109,101,110,117, 0, 2, 0, 0, 0, 6,116,105,116,108,101, - 0, 2, 0, 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, - 0, 11,105,117,112,115,117, 98,109,101,110,117, 0, 4, 0, 0, 2, 57, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 83, 85, 66, 77, 69, 78, 85, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,117, 98,109,101,110,117, 0, 2, - 0, 0, 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 4, 0, 0, - 2, 66, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 19, -105,117,112, 67,114,101, 97,116,101, 83,101,112, 97,114, 97,116,111,114, 0, 2, - 0, 0, 0, 13,105,117,112,115,101,112, 97,114, 97,116,111,114, 0, 4, 0, 0, - 2, 70, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, - 0, 13, 73, 85, 80, 83, 69, 80, 65, 82, 65, 84, 79, 82, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,115,101,112, - 97,114, 97,116,111,114, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, - 76, 71, 0, 4, 0, 0, 2, 79, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, - 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, - 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, 2, - 83, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 70, -105,108,101, 68,108,103, 0, 2, 0, 0, 0, 11,105,117,112,102,105,108,101,100, -108,103, 0, 4, 0, 0, 2, 87, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 73, 76, 69, 68, 76, 71, 0, 2, - 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, - 8,102,105,108,101,100,108,103, 0, 2, 0, 0, 0, 14, 73, 85, 80, 77, 69, 83, - 83, 65, 71, 69, 68, 76, 71, 0, 4, 0, 0, 2, 96, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, - 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, - 0, 4, 0, 0, 2,100, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 20,105,117,112, 67,114, -101, 97,116,101, 77,101,115,115, 97,103,101, 68,108,103, 0, 2, 0, 0, 0, 14, -105,117,112,109,101,115,115, 97,103,101,100,108,103, 0, 4, 0, 0, 2,104, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 14, 73, - 85, 80, 77, 69, 83, 83, 65, 71, 69, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,109,101,115,115, 97, -103,101,100,108,103, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, - 76, 71, 0, 4, 0, 0, 2,113, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 14, 7, 3, 15, 2, - 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0, - 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, 0, 0, 9, 73,117,112, - 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 4, 0, 0, 2, -117, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 0, 0, 0, 18,105,117,112, 67,114,101, 97,116,101, 67, -111,108,111,114, 68,108,103, 0, 2, 0, 0, 0, 12,105,117,112, 99,111,108,111, -114,100,108,103, 0, 4, 0, 0, 2,121, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, - 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, - 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 67, 79, 76, 79, 82, 68, 76, - 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 9, 99,111,108,111,114,100,108,103, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 70, 79, 78, 84, 68, 76, 71, 0, 4, 0, 0, 2,130, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 14, 7, 3, 15, 2, 13, 0, 13, 1, 13, 2, 3, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 2, 0, 0, 0, 2,120, 0, 2, 0, 0, 0, 2,121, 0, 2, 0, - 0, 0, 9, 73,117,112, 80,111,112,117,112, 0, 2, 0, 0, 0, 5,115,101,108, -102, 0, 4, 0, 0, 2,134, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119, -105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 2, 1, 15, 0, 3, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 17,105,117,112, 67, -114,101, 97,116,101, 70,111,110,116, 68,108,103, 0, 2, 0, 0, 0, 11,105,117, -112,102,111,110,116,100,108,103, 0, 4, 0, 0, 2,138, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 70, 79, 78, - 84, 68, 76, 71, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 8,102,111,110,116,100,108,103, 0, 2, 0, 0, 0, 8, - 73, 85, 80, 85, 83, 69, 82, 0, 4, 0, 0, 2,147, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, - 0, 14,105,117,112, 67,114,101, 97,116,101, 85,115,101,114, 0, 2, 0, 0, 0, - 8,105,117,112,117,115,101,114, 0, 4, 0, 0, 2,151, 0, 0, 0, 20, 64,105, -117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, - 0, 10, 2, 0, 15, 0, 20, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 8, 73, 85, 80, 85, 83, 69, 82, 0, 2, 0, 0, 0, 12, 67,111, -110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 5,117,115,101,114, 0, - 2, 0, 0, 0, 14, 73, 85, 80, 78, 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 4, - 0, 0, 2,160, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 47, 6, 2, 7, 1, 50, 33, 15, 2, - 13, 1, 13, 2, 16, 2, 1, 1, 44, 52, 13, 15, 3, 11, 4, 13, 2, 42, 11, 5, - 42, 2, 0, 1, 13, 2, 7, 1, 37, 23, 2, 13, 1, 13, 2, 16, 54, 40, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 2,105, 0, 2, 0, 0, 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, - 2, 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 11,112, 97,114, 97, -109,101,116,101,114, 32, 0, 2, 0, 0, 0, 39, 32,104, 97,115, 32,119,114,111, -110,103, 32,118, 97,108,117,101, 32,111,114, 32,105,115, 32,110,111,116, 32,105, -110,105,116,105, 97,108,105,122,101,100, 0, 4, 0, 0, 2,170, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 40, 8, 2, 15, 2, 2, 1, 0, 7, 1, 50, 17, 13, 2, 11, 4, 13, - 1, 13, 3, 16, 26, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 3, 16, 54, 24, 13, - 2, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 20,105,117, -112, 67,114,101, 97,116,101, 78,111,114,109, 97,108,105,122,101,114, 0, 2, 0, - 0, 0, 2,105, 0, 2, 0, 0, 0, 11, 97,100,100, 99,111,110,116,114,111,108, - 0, 2, 0, 0, 0, 14,105,117,112,110,111,114,109, 97,108,105,122,101,114, 0, - 4, 0, 0, 2,180, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 10, 2, 0, 15, 0, 20, 1, 3, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 14, 73, 85, 80, 78, - 79, 82, 77, 65, 76, 73, 90, 69, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116, -114,117, 99,116,111,114, 0, 2, 0, 0, 0, 11,110,111,114,109, 97,108,105,122, -101,114, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, 69, 0, 2, 0, 0, - 0, 12,116,121,112,101, 95,119,105,100,103,101,116, 0, 4, 0, 0, 2,189, 0, - 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108, -117, 97, 0, 0, 0, 0, 27, 6, 2, 15, 2, 13, 1, 7, 1, 16, 2, 1, 1, 13, - 1, 7, 1, 16, 11, 3, 13, 2, 26, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 2,104, 0, 2, 0, - 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 70,114, 97,109,101, 0, 2, 0, - 0, 0, 11, 73, 85, 80, 95,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 9,105, -117,112,102,114, 97,109,101, 0, 4, 0, 0, 2,195, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 70, 82, 65, 77, - 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 6,102,114, 97,109,101, 0, 2, 0, 0, 0, 10, 73, 85, 80, 67, 65, - 78, 86, 65, 83, 0, 4, 0, 0, 2,204, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, - 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 67, 97,110, -118, 97,115, 0, 2, 0, 0, 0, 10,105,117,112, 99, 97,110,118, 97,115, 0, 4, - 0, 0, 2,208, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, - 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, - 0, 0, 0, 10, 73, 85, 80, 67, 65, 78, 86, 65, 83, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 7, 99, 97,110,118, - 97,115, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, 73, 83, 84, 0, 4, 0, 0, 2, -217, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, - 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105, -117,112, 67,114,101, 97,116,101, 76,105,115,116, 0, 4, 0, 0, 2,221, 0, 0, - 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, - 97, 0, 0, 0, 0, 42, 6, 2, 15, 1, 13, 1, 2, 1, 1, 11, 2, 32, 52, 16, - 15, 3, 13, 0, 18, 5, 11, 6, 13, 1, 42, 3, 2, 2, 50, 11, 15, 7, 18, 8, - 13, 0, 13, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, - 6,105,110,100,101,120, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, - 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, - 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, - 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,103,101,116, 0, 4, - 0, 0, 2,229, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103, -101,116,115, 46,108,117, 97, 0, 0, 0, 0, 90, 8, 3, 15, 2, 13, 1, 2, 1, - 1, 11, 3, 32, 52, 62, 15, 4, 13, 2, 2, 1, 1, 46, 7, 15, 5, 13, 2, 2, - 1, 1, 52, 21, 15, 6, 13, 0, 18, 8, 11, 9, 13, 1, 42, 11, 9, 13, 2, 42, - 3, 3, 3, 50, 23, 13, 2, 4, 0, 32, 52, 16, 15, 6, 13, 0, 18, 8, 11, 9, - 13, 1, 42, 13, 2, 3, 3, 3, 15, 10, 18, 11, 13, 0, 13, 1, 13, 2, 3, 3, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 6,105,110,100,101,120, - 0, 2, 0, 0, 0, 6,118, 97,108,117,101, 0, 2, 0, 0, 0, 5,116,121,112, -101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 12,116, -121,112,101, 95,115,116,114,105,110,103, 0, 2, 0, 0, 0, 12,116,121,112,101, - 95,110,117,109, 98,101,114, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65, -116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, - 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, - 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 4,115,101,116, 0, 2, 0, - 0, 0, 8,105,117,112,108,105,115,116, 0, 4, 0, 0, 2,240, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 76, - 73, 83, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, - 0, 2, 0, 0, 0, 5,108,105,115,116, 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, - 77, 65, 71, 69, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 4, 0, 0, - 2,249, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116, -115, 46,108,117, 97, 0, 0, 0, 0,116, 8, 2, 7, 1, 50, 92, 7, 1, 50, 32, - 15, 3, 13, 1, 13, 2, 16, 13, 3, 16, 2, 1, 1, 11, 4, 31, 52, 7, 15, 5, - 11, 6, 2, 0, 1, 13, 3, 7, 1, 37, 23, 3, 13, 1, 13, 2, 16, 13, 3, 16, - 54, 42, 13, 1, 18, 7, 48, 10, 13, 3, 7, 1, 38, 13, 1, 18, 7, 31, 52, 9, - 15, 5, 11, 8, 2, 0, 1, 50, 10, 13, 1, 11, 7, 13, 3, 7, 1, 38, 26, 13, - 2, 7, 1, 37, 23, 2, 5, 1, 13, 1, 13, 2, 16, 54, 99, 13, 1, 11, 9, 13, - 2, 7, 1, 38, 26, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, 0, 4,111, - 98,106, 0, 2, 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 2,106, 0, 2, 0, 0, - 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 7,110,117,109, 98,101,114, 0, 2, - 0, 0, 0, 6,101,114,114,111,114, 0, 2, 0, 0, 0, 38,110,111,110, 45,110, -117,109,101,114,105, 99, 32,118, 97,108,117,101, 32,105,110, 32,105,109, 97,103, -101, 32,100,101,102,105,110,105,116,105,111,110, 0, 2, 0, 0, 0, 6,119,105, -100,116,104, 0, 2, 0, 0, 0, 26,105,110, 99,111,110,115,105,115,116,101,110, -116, 32,105,109, 97,103,101, 32,108,101,110,103,104,116, 0, 2, 0, 0, 0, 7, -104,101,105,103,104,116, 0, 4, 0, 0, 3, 16, 0, 0, 0, 20, 64,105,117,112, -108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 74, - 9, 2, 15, 2, 13, 1, 18, 3, 13, 1, 18, 4, 13, 1, 2, 1, 3, 15, 5, 13, - 1, 18, 6, 2, 1, 1, 11, 7, 32, 52, 38, 7, 1, 50, 23, 15, 9, 13, 2, 13, - 3, 13, 1, 18, 6, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 37, 23, 3, 13, 1, - 18, 6, 13, 3, 16, 54, 32, 5, 1, 13, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 7,104, 97,110,100, -108,101, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, 73,109, 97, -103,101, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, 7,104, -101,105,103,104,116, 0, 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, - 7, 99,111,108,111,114,115, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, - 0, 0, 0, 2,105, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116, -114,105, 98,117,116,101, 0, 2, 0, 0, 0, 9,105,117,112,105,109, 97,103,101, - 0, 4, 0, 0, 3, 28, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105, -100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, - 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, - 0, 2, 0, 0, 0, 9, 73, 85, 80, 73, 77, 65, 71, 69, 0, 2, 0, 0, 0, 12, - 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 6,105,109, 97, -103,101, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 0, - 4, 0, 0, 3, 36, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100, -103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, - 2, 13, 1, 18, 3, 13, 1, 18, 4, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 18,105,117,112, 67,114, -101, 97,116,101, 73,109, 97,103,101, 82, 71, 66, 0, 2, 0, 0, 0, 6,119,105, -100,116,104, 0, 2, 0, 0, 0, 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, - 7,112,105,120,101,108,115, 0, 2, 0, 0, 0, 12,105,117,112,105,109, 97,103, -101,114,103, 98, 0, 4, 0, 0, 3, 40, 0, 0, 0, 20, 64,105,117,112,108,117, - 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, - 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, - 0, 0, 2,111, 0, 2, 0, 0, 0, 12, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, - 66, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 9,105,109, 97,103,101,114,103, 98, 0, 2, 0, 0, 0, 13, 73, 85, - 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 4, 0, 0, 3, 48, 0, 0, 0, 20, - 64,105,117,112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, - 0, 0, 0, 20, 6, 2, 15, 1, 13, 1, 18, 2, 13, 1, 18, 3, 13, 1, 18, 4, - 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 4,111, 98,106, - 0, 2, 0, 0, 0, 19,105,117,112, 67,114,101, 97,116,101, 73,109, 97,103,101, - 82, 71, 66, 65, 0, 2, 0, 0, 0, 6,119,105,100,116,104, 0, 2, 0, 0, 0, - 7,104,101,105,103,104,116, 0, 2, 0, 0, 0, 7,112,105,120,101,108,115, 0, - 2, 0, 0, 0, 13,105,117,112,105,109, 97,103,101,114,103, 98, 97, 0, 4, 0, - 0, 3, 52, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95,119,105,100,103,101, -116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 13, 73, 85, 80, 73, 77, 65, 71, 69, 82, 71, 66, 65, 0, 2, 0, 0, 0, - 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 10,105,109, - 97,103,101,114,103, 98, 97, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, - 82, 69, 83, 83, 66, 65, 82, 0, 4, 0, 0, 3, 61, 0, 0, 0, 20, 64,105,117, -112,108,117, 97, 95,119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, - 8, 2, 1, 15, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, - 0, 21,105,117,112, 67,114,101, 97,116,101, 80,114,111,103,114,101,115,115, 66, - 97,114, 0, 2, 0, 0, 0, 15,105,117,112,112,114,111,103,114,101,115,115, 98, - 97,114, 0, 4, 0, 0, 3, 65, 0, 0, 0, 20, 64,105,117,112,108,117, 97, 95, -119,105,100,103,101,116,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, - 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, - 2,111, 0, 2, 0, 0, 0, 15, 73, 85, 80, 80, 82, 79, 71, 82, 69, 83, 83, 66, - 65, 82, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 12,112,114,111,103,114,101,115,115, 98, 97,114, 0, 2, 0, 0, - 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, - 7, 97, 99,116,105,111,110, 0, 2, 0, 0, 0, 7, 65, 67, 84, 73, 79, 78, 0, - 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 10, 65, - 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 9,103,101,116,102,111, 99, -117,115, 0, 2, 0, 0, 0, 12, 71, 69, 84, 70, 79, 67, 85, 83, 95, 67, 66, 0, - 2, 0, 0, 0, 16,105,117,112, 95,103,101,116,102,111, 99,117,115, 95, 99, 98, - 0, 2, 0, 0, 0, 10,107,105,108,108,102,111, 99,117,115, 0, 2, 0, 0, 0, - 13, 75, 73, 76, 76, 70, 79, 67, 85, 83, 95, 67, 66, 0, 2, 0, 0, 0, 17,105, -117,112, 95,107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, - 6,102,111, 99,117,115, 0, 2, 0, 0, 0, 9, 70, 79, 67, 85, 83, 95, 67, 66, - 0, 2, 0, 0, 0, 13,105,117,112, 95,102,111, 99,117,115, 95, 99, 98, 0, 2, - 0, 0, 0, 6,107, 95, 97,110,121, 0, 2, 0, 0, 0, 6, 75, 95, 65, 78, 89, - 0, 2, 0, 0, 0, 10,105,117,112, 95,107, 95, 97,110,121, 0, 2, 0, 0, 0, - 5,104,101,108,112, 0, 2, 0, 0, 0, 8, 72, 69, 76, 80, 95, 67, 66, 0, 2, - 0, 0, 0, 12,105,117,112, 95,104,101,108,112, 95, 99, 98, 0, 2, 0, 0, 0, - 8, 99, 97,114,101,116, 99, 98, 0, 2, 0, 0, 0, 9, 67, 65, 82, 69, 84, 95, - 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95, 99, 97,114,101,116, 95, 99, 98, - 0, 2, 0, 0, 0, 9,107,101,121,112,114,101,115,115, 0, 2, 0, 0, 0, 12, - 75, 69, 89, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, - 95,107,101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 7,115, 99, -114,111,108,108, 0, 2, 0, 0, 0, 10, 83, 67, 82, 79, 76, 76, 95, 67, 66, 0, - 2, 0, 0, 0, 14,105,117,112, 95,115, 99,114,111,108,108, 95, 99, 98, 0, 2, - 0, 0, 0, 10,116,114, 97,121, 99,108,105, 99,107, 0, 2, 0, 0, 0, 13, 84, - 82, 65, 89, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, - 95,116,114, 97,121, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99, -108,111,115,101, 0, 2, 0, 0, 0, 9, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, - 0, 0, 0, 13,105,117,112, 95, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, - 0, 5,111,112,101,110, 0, 2, 0, 0, 0, 8, 79, 80, 69, 78, 95, 67, 66, 0, - 2, 0, 0, 0, 12,105,117,112, 95,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, - 0, 7,115,104,111,119, 99, 98, 0, 2, 0, 0, 0, 8, 83, 72, 79, 87, 95, 67, - 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,104,111,119, 95, 99, 98, 0, 2, - 0, 0, 0, 6,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 7, 77, 65, 80, 95, 67, - 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,109, 97,112, 95, 99, 98, 0, 2, 0, - 0, 0, 8,117,110,109, 97,112, 99, 98, 0, 2, 0, 0, 0, 9, 85, 78, 77, 65, - 80, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,117,110,109, 97,112, 95, - 99, 98, 0, 2, 0, 0, 0, 10,100,114,111,112,102,105,108,101,115, 0, 2, 0, - 0, 0, 13, 68, 82, 79, 80, 70, 73, 76, 69, 83, 95, 67, 66, 0, 2, 0, 0, 0, - 17,105,117,112, 95,100,114,111,112,102,105,108,101,115, 95, 99, 98, 0, 2, 0, - 0, 0, 10,109,101,110,117, 99,108,111,115,101, 0, 2, 0, 0, 0, 13, 77, 69, - 78, 85, 67, 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95, -109,101,110,117, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,104,105, -103,104,108,105,103,104,116, 0, 2, 0, 0, 0, 13, 72, 73, 71, 72, 76, 73, 71, - 72, 84, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,104,105,103,104,108, -105,103,104,116, 95, 99, 98, 0, 2, 0, 0, 0, 4,119,111,109, 0, 2, 0, 0, - 0, 7, 87, 79, 77, 95, 67, 66, 0, 2, 0, 0, 0, 11,105,117,112, 95,119,111, -109, 95, 99, 98, 0, 2, 0, 0, 0, 6,119,104,101,101,108, 0, 2, 0, 0, 0, - 9, 87, 72, 69, 69, 76, 95, 67, 66, 0, 2, 0, 0, 0, 13,105,117,112, 95,119, -104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 66, 85, 84, 84, 79, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95, 98,117,116,116,111,110, 95, 99, - 98, 0, 2, 0, 0, 0, 7,114,101,115,105,122,101, 0, 2, 0, 0, 0, 10, 82, - 69, 83, 73, 90, 69, 95, 67, 66, 0, 2, 0, 0, 0, 14,105,117,112, 95,114,101, -115,105,122,101, 95, 99, 98, 0, 2, 0, 0, 0, 7,109,111,116,105,111,110, 0, - 2, 0, 0, 0, 10, 77, 79, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 14, -105,117,112, 95,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 12,101, -110,116,101,114,119,105,110,100,111,119, 0, 2, 0, 0, 0, 15, 69, 78, 84, 69, - 82, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95, -101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, -108,101, 97,118,101,119,105,110,100,111,119, 0, 2, 0, 0, 0, 15, 76, 69, 65, - 86, 69, 87, 73, 78, 68, 79, 87, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, - 95,108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, - 5,101,100,105,116, 0, 2, 0, 0, 0, 8, 69, 68, 73, 84, 95, 67, 66, 0, 2, - 0, 0, 0, 12,105,117,112, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, - 12,109,117,108,116,105,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 15, 77, 85, - 76, 84, 73, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117, -112, 95,109,117,108,116,105,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, - 0, 7,102,105,108,101, 99, 98, 0, 2, 0, 0, 0, 8, 70, 73, 76, 69, 95, 67, - 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,102,105,108,101, 95, 99, 98, 0, 2, - 0, 0, 0, 14,109,100,105, 97, 99,116,105,118, 97,116,101, 99, 98, 0, 2, 0, - 0, 0, 15, 77, 68, 73, 65, 67, 84, 73, 86, 65, 84, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95,109,100,105, 97, 99,116,105,118, 97,116,101, 95, 99, - 98, 0, 2, 0, 0, 0, 11,100,114,111,112,100,111,119,110, 99, 98, 0, 2, 0, - 0, 0, 12, 68, 82, 79, 80, 68, 79, 87, 78, 95, 67, 66, 0, 2, 0, 0, 0, 16, -105,117,112, 95,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, 0, 0, 0, - 11,100, 98,108, 99,108,105, 99,107, 99, 98, 0, 2, 0, 0, 0, 12, 68, 66, 76, - 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,100, 98, -108, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 18,105,117,112, 95, 97, - 99,116,105,111,110, 95,116,111,103,103,108,101, 0, 2, 0, 0, 0, 16,105,117, -112, 95, 97, 99,116,105,111,110, 95,116,101,120,116, 0, 2, 0, 0, 0, 18,105, -117,112, 95, 97, 99,116,105,111,110, 95, 98,117,116,116,111,110, 0, 2, 0, 0, - 0, 16,105,117,112, 95, 97, 99,116,105,111,110, 95,108,105,115,116, 0, 2, 0, - 0, 0, 18,105,117,112, 95, 97, 99,116,105,111,110, 95, 99, 97,110,118, 97,115, - 0, 2, 0, 0, 0, 17,105,117,112, 95, 97, 99,116,105,111,110, 95,116,105,109, -101,114, 0, 2, 0, 0, 0, 10, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, - 0, 0, 12,103,101,116,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 13, -107,105,108,108,102,111, 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 9,102,111, - 99,117,115, 95, 99, 98, 0, 2, 0, 0, 0, 8,104,101,108,112, 95, 99, 98, 0, - 2, 0, 0, 0, 9, 99, 97,114,101,116, 95, 99, 98, 0, 2, 0, 0, 0, 12,107, -101,121,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 10,115, 99,114,111, -108,108, 95, 99, 98, 0, 2, 0, 0, 0, 13,116,114, 97,121, 99,108,105, 99,107, - 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, - 0, 0, 8,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 8,115,104,111,119, - 95, 99, 98, 0, 2, 0, 0, 0, 7,109, 97,112, 95, 99, 98, 0, 2, 0, 0, 0, - 9,117,110,109, 97,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112,102, -105,108,101,115, 95, 99, 98, 0, 2, 0, 0, 0, 13,109,101,110,117, 99,108,111, -115,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,104,105,103,104,108,105,103,104,116, - 95, 99, 98, 0, 2, 0, 0, 0, 7,119,111,109, 95, 99, 98, 0, 2, 0, 0, 0, - 9,119,104,101,101,108, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,117,116,116,111, -110, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,115,105,122,101, 95, 99, 98, 0, - 2, 0, 0, 0, 10,109,111,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, -101,110,116,101,114,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 15, -108,101, 97,118,101,119,105,110,100,111,119, 95, 99, 98, 0, 2, 0, 0, 0, 8, -101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,101, -108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,100,105, 97, 99,116,105, -118, 97,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,102,105,108,101, 95, 99, 98, - 0, 2, 0, 0, 0, 12,100,114,111,112,100,111,119,110, 95, 99, 98, 0, 2, 0, - 0, 0, 12,100, 98,108, 99,108,105, 99,107, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/iuplua_widgets_le64w.lo"); -} diff --git a/iup/srclua3/loh/matrix.loh b/iup/srclua3/loh/matrix.loh deleted file mode 100755 index 3f8ee52..0000000 --- a/iup/srclua3/loh/matrix.loh +++ /dev/null @@ -1,120 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/matrix.lo"); -*/ -/* ../obj/iupluacontrols3/matrix.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105, -120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, - 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7, - 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12, - 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19, - 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, - 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2, - 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, - 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36, - 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41, - 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13, - 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49, - 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26, - 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2, - 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0, - 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66, - 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15, - 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11, - 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15, - 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18, - 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26, - 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13, - 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0, - 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, - 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116, -101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108, - 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, - 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42, - 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108, - 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8, -103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97, -116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13, - 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, - 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97, -108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, - 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15, - 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73, - 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117, -112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95, -109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101, -100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0, - 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100, -114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97, -116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, - 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69, - 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97, -116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10, -108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69, - 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, - 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99, -108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98, - 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0, - 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105, -117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0, - 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65, - 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, -118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2, - 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, - 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114, -111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69, - 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100, -114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99, -111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95, - 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111, -108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99, - 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99, - 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0, - 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, - 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98, - 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95, - 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, - 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97, -116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101, - 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0, - 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79, - 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102, -111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, - 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13, -101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101, - 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99, -107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95, - 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99, -104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114, - 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0, - 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix.lo"); -} diff --git a/iup/srclua3/loh/matrix_be32.loh b/iup/srclua3/loh/matrix_be32.loh deleted file mode 100755 index 5f88a5b..0000000 --- a/iup/srclua3/loh/matrix_be32.loh +++ /dev/null @@ -1,120 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/matrix_be32.lo"); -*/ -/* ../obj/iupluacontrols3/matrix_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105, -120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, - 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7, - 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12, - 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19, - 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, - 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2, - 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, - 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36, - 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41, - 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13, - 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49, - 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26, - 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2, - 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0, - 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66, - 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15, - 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11, - 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15, - 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18, - 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26, - 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13, - 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0, - 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, - 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116, -101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108, - 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, - 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42, - 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108, - 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8, -103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97, -116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13, - 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, - 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97, -108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, - 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15, - 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73, - 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117, -112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95, -109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101, -100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0, - 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100, -114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97, -116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, - 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69, - 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97, -116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10, -108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69, - 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, - 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99, -108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98, - 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0, - 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105, -117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0, - 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65, - 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, -118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2, - 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, - 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114, -111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69, - 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100, -114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99, -111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95, - 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111, -108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99, - 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99, - 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0, - 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, - 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98, - 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95, - 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, - 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97, -116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101, - 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0, - 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79, - 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102, -111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, - 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13, -101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101, - 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99, -107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95, - 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99, -104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114, - 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0, - 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix_be32.lo"); -} diff --git a/iup/srclua3/loh/matrix_be64.loh b/iup/srclua3/loh/matrix_be64.loh deleted file mode 100755 index 87c64b7..0000000 --- a/iup/srclua3/loh/matrix_be64.loh +++ /dev/null @@ -1,120 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/matrix_be64.lo"); -*/ -/* ../obj/iupluacontrols3/matrix_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105, -120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, - 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7, - 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12, - 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19, - 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, - 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2, - 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, - 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36, - 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41, - 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13, - 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49, - 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26, - 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2, - 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0, - 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66, - 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15, - 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11, - 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15, - 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18, - 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26, - 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13, - 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0, - 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, - 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116, -101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108, - 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, - 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42, - 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108, - 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8, -103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97, -116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13, - 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, - 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97, -108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, - 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15, - 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73, - 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117, -112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95, -109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101, -100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0, - 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100, -114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97, -116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, - 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69, - 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97, -116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10, -108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69, - 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, - 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99, -108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98, - 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0, - 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105, -117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0, - 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65, - 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, -118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2, - 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, - 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114, -111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69, - 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100, -114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99, -111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95, - 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111, -108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99, - 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99, - 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0, - 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, - 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98, - 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95, - 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, - 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97, -116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101, - 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0, - 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79, - 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102, -111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, - 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13, -101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101, - 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99, -107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95, - 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99, -104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114, - 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0, - 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix_be64.lo"); -} diff --git a/iup/srclua3/loh/matrix_le64.loh b/iup/srclua3/loh/matrix_le64.loh deleted file mode 100755 index 208d715..0000000 --- a/iup/srclua3/loh/matrix_le64.loh +++ /dev/null @@ -1,120 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/matrix_le64.lo"); -*/ -/* ../obj/iupluacontrols3/matrix_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,109, 97,116,114,105, -120, 46,108,117, 97, 0, 0, 0, 1,162, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, - 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, 0, 11, 7, - 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, 14, 11, 12, - 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, 2, 11, 19, - 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, - 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, 27, 22, 2, - 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, - 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 13, 11, 36, - 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, 40, 15, 41, - 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 13, - 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, 2, 11, 49, - 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, 0, 2, 26, - 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, 57, 22, 2, - 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, 62, 29, 0, - 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, 13, 11, 66, - 22, 2, 11, 67, 15, 68, 29, 0, 2, 26, 15, 13, 11, 69, 15, 13, 18, 18, 26, 15, - 13, 11, 70, 15, 13, 18, 21, 26, 15, 13, 11, 71, 15, 13, 18, 24, 26, 15, 13, 11, - 72, 15, 13, 18, 27, 26, 15, 13, 11, 73, 15, 13, 18, 30, 26, 15, 13, 11, 74, 15, - 13, 18, 33, 26, 15, 13, 11, 75, 15, 13, 18, 36, 26, 15, 13, 11, 76, 15, 13, 18, - 39, 26, 15, 13, 11, 77, 15, 13, 18, 42, 26, 15, 13, 11, 78, 15, 13, 18, 45, 26, - 15, 13, 11, 79, 15, 13, 18, 48, 26, 15, 13, 11, 80, 15, 13, 18, 51, 26, 15, 13, - 11, 81, 15, 13, 18, 54, 26, 0, 0, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0, - 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, - 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, - 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 16,105,117,112, 67,114,101, 97,116, -101, 77, 97,116,114,105,120, 0, 2, 0, 0, 0, 8,115,101,116, 99,101,108,108, - 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, - 97, 0, 0, 0, 0, 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42, - 13, 3, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108, - 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8, -103,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 12, 64,109, 97, -116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13, - 1, 11, 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, - 0, 0, 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97, -108, 0, 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, - 2, 0, 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15, - 0, 0, 0, 12, 64,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73, - 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, - 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105,117, -112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, - 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, 95, -109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,101, -100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, 0, - 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11,100, -114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, 97, -116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, - 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, 69, - 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97, -116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 10, -108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, 69, - 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, - 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, 99, -108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, 98, - 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, 0, - 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21,105, -117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0, - 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, 65, - 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, -118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, 2, - 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, - 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,114, -111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, 69, - 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95,100, -114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, 99, -111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, 95, - 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99,111, -108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, 99, - 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, 0, - 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, 99, - 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, 0, - 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, 0, - 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, 98, - 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, 95, - 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, - 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97, -116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115,101, - 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, 0, - 2, 0, 0, 0, 8,102,111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 8, 70, 79, - 78, 84, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, 97,116, 95,102, -111,110,116, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, - 14,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13, -101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101, - 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99, -107, 95, 99, 98, 0, 2, 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95, - 99, 98, 0, 2, 0, 0, 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, - 0, 8,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99, -104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114, - 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0, - 2, 0, 0, 0, 14,118, 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/matrix_le64.lo"); -} diff --git a/iup/srclua3/loh/matrix_le64w.loh b/iup/srclua3/loh/matrix_le64w.loh deleted file mode 100755 index ed95bb7..0000000 --- a/iup/srclua3/loh/matrix_le64w.loh +++ /dev/null @@ -1,118 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luamatrix_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luamatrix_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 15, 64,108,117, 97,109, 97, -116,114,105,120, 46,108,117, 97, 0, 0, 0, 1,148, 5, 0, 22, 1, 11, 1, 15, - 2, 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 15, 0, 11, 5, 11, 6, 26, 15, - 0, 11, 7, 11, 8, 26, 11, 10, 25, 9, 15, 11, 11, 12, 15, 9, 26, 15, 13, 18, - 14, 11, 12, 15, 15, 26, 15, 13, 18, 16, 11, 12, 15, 17, 26, 15, 13, 11, 18, 22, - 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 13, 11, 21, 22, 2, 11, 22, 15, 23, 29, - 0, 2, 26, 15, 13, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 13, 11, - 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 13, 11, 30, 22, 2, 11, 31, 15, - 32, 29, 0, 2, 26, 15, 13, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, - 13, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 13, 11, 39, 22, 2, 11, - 40, 15, 41, 29, 0, 2, 26, 15, 13, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, - 26, 15, 13, 11, 45, 22, 2, 11, 46, 15, 47, 29, 0, 2, 26, 15, 13, 11, 48, 22, - 2, 11, 49, 15, 50, 29, 0, 2, 26, 15, 13, 11, 51, 22, 2, 11, 52, 15, 53, 29, - 0, 2, 26, 15, 13, 11, 54, 22, 2, 11, 55, 15, 56, 29, 0, 2, 26, 15, 13, 11, - 57, 22, 2, 11, 58, 15, 59, 29, 0, 2, 26, 15, 13, 11, 60, 22, 2, 11, 61, 15, - 62, 29, 0, 2, 26, 15, 13, 11, 63, 22, 2, 11, 64, 15, 65, 29, 0, 2, 26, 15, - 13, 11, 66, 15, 13, 18, 18, 26, 15, 13, 11, 67, 15, 13, 18, 21, 26, 15, 13, 11, - 68, 15, 13, 18, 24, 26, 15, 13, 11, 69, 15, 13, 18, 27, 26, 15, 13, 11, 70, 15, - 13, 18, 30, 26, 15, 13, 11, 71, 15, 13, 18, 33, 26, 15, 13, 11, 72, 15, 13, 18, - 36, 26, 15, 13, 11, 73, 15, 13, 18, 39, 26, 15, 13, 11, 74, 15, 13, 18, 42, 26, - 15, 13, 11, 75, 15, 13, 18, 45, 26, 15, 13, 11, 76, 15, 13, 18, 48, 26, 15, 13, - 11, 77, 15, 13, 18, 51, 26, 15, 13, 11, 78, 15, 13, 18, 54, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, 73, 88, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, - 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 15, 64,108,117, 97,109, - 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, - 0, 0, 0, 16,105,117,112, 67,114,101, 97,116,101, 77, 97,116,114,105,120, 0, - 2, 0, 0, 0, 8,115,101,116, 99,101,108,108, 0, 4, 0, 0, 0, 7, 0, 0, - 0, 15, 64,108,117, 97,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, - 20, 8, 4, 15, 3, 13, 0, 13, 1, 11, 5, 42, 13, 2, 42, 13, 3, 2, 0, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, 0, 2,108, 0, 2, 0, 0, 0, - 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, 0, 16, 73,117,112, - 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 5,115,101, -108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, 0, 0, 8,103,101,116, 99,101, -108,108, 0, 4, 0, 0, 0, 11, 0, 0, 0, 15, 64,108,117, 97,109, 97,116,114, -105,120, 46,108,117, 97, 0, 0, 0, 0, 18, 8, 4, 15, 3, 13, 0, 13, 1, 11, - 5, 42, 13, 2, 42, 3, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 0, 0, - 0, 2,108, 0, 2, 0, 0, 0, 2, 99, 0, 2, 0, 0, 0, 4,118, 97,108, 0, - 2, 0, 0, 0, 16, 73,117,112, 71,101,116, 65,116,116,114,105, 98,117,116,101, - 0, 2, 0, 0, 0, 5,115,101,108,102, 0, 2, 0, 0, 0, 2, 58, 0, 2, 0, - 0, 0, 10,105,117,112,109, 97,116,114,105,120, 0, 4, 0, 0, 0, 15, 0, 0, - 0, 15, 64,108,117, 97,109, 97,116,114,105,120, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 10, 73, 85, 80, 77, 65, 84, 82, - 73, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 7,109, 97,116,114,105,120, - 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, - 2, 0, 0, 0, 9, 97, 99,116,105,111,110, 99, 98, 0, 2, 0, 0, 0, 18,105, -117,112, 95,109, 97,116, 95, 97, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, - 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 21,105,117,112, - 95,109, 97,116, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, - 0, 0, 8,101,100,105,116,105,111,110, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, - 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95, -101,100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114,111,112, - 0, 2, 0, 0, 0, 8, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 16,105, -117,112, 95,109, 97,116, 95,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 11, -100,114,111,112,115,101,108,101, 99,116, 0, 2, 0, 0, 0, 14, 68, 82, 79, 80, - 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,109, - 97,116, 95,100,114,111,112,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, - 0, 10,101,110,116,101,114,105,116,101,109, 0, 2, 0, 0, 0, 13, 69, 78, 84, - 69, 82, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, - 97,116, 95,101,110,116,101,114,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, - 10,108,101, 97,118,101,105,116,101,109, 0, 2, 0, 0, 0, 13, 76, 69, 65, 86, - 69, 73, 84, 69, 77, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97, -116, 95,108,101, 97,118,101,105,116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 6, - 99,108,105, 99,107, 0, 2, 0, 0, 0, 9, 67, 76, 73, 67, 75, 95, 67, 66, 0, - 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95, 99,108,105, 99,107, 95, 99, - 98, 0, 2, 0, 0, 0, 10,115, 99,114,111,108,108,116,111,112, 0, 2, 0, 0, - 0, 13, 83, 67, 82, 79, 76, 76, 84, 79, 80, 95, 67, 66, 0, 2, 0, 0, 0, 21, -105,117,112, 95,109, 97,116, 95,115, 99,114,111,108,108,116,111,112, 95, 99, 98, - 0, 2, 0, 0, 0, 8,118, 97,108,117,101, 99, 98, 0, 2, 0, 0, 0, 9, 86, - 65, 76, 85, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,109, 97,116, - 95,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 5,100,114, 97,119, 0, - 2, 0, 0, 0, 8, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117, -112, 95,109, 97,116, 95,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 10,100, -114,111,112, 99,104,101, 99,107, 0, 2, 0, 0, 0, 13, 68, 82, 79, 80, 67, 72, - 69, 67, 75, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,109, 97,116, 95, -100,114,111,112, 99,104,101, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 10,102,103, - 99,111,108,111,114, 99, 98, 0, 2, 0, 0, 0, 11, 70, 71, 67, 79, 76, 79, 82, - 95, 67, 66, 0, 2, 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95,102,103, 99, -111,108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 10, 98,103, 99,111,108,111,114, - 99, 98, 0, 2, 0, 0, 0, 11, 66, 71, 67, 79, 76, 79, 82, 95, 67, 66, 0, 2, - 0, 0, 0, 19,105,117,112, 95,109, 97,116, 95, 98,103, 99,111,108,111,114, 95, - 99, 98, 0, 2, 0, 0, 0, 11,118, 97,108,117,101, 95,101,100,105,116, 0, 2, - 0, 0, 0, 14, 86, 65, 76, 85, 69, 95, 69, 68, 73, 84, 95, 67, 66, 0, 2, 0, - 0, 0, 22,105,117,112, 95,109, 97,116, 95,118, 97,108,117,101, 95,101,100,105, -116, 95, 99, 98, 0, 2, 0, 0, 0, 12,109, 97,114,107,101,100,105,116, 95, 99, - 98, 0, 2, 0, 0, 0, 12, 77, 65, 82, 75, 69, 68, 73, 84, 95, 67, 66, 0, 2, - 0, 0, 0, 20,105,117,112, 95,109, 97,116, 95,109, 97,114,107,101,100,105,116, - 95, 99, 98, 0, 2, 0, 0, 0, 8,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, - 0, 8, 77, 65, 82, 75, 95, 67, 66, 0, 2, 0, 0, 0, 16,105,117,112, 95,109, - 97,116, 95,109, 97,114,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,109,111,117,115, -101, 95, 99, 98, 0, 2, 0, 0, 0, 9, 77, 79, 85, 83, 69, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,109, 97,116, 95,109,111,117,115,101, 95, 99, 98, - 0, 2, 0, 0, 0, 11,101,100,105,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, - 0, 8,100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 14,100,114,111,112,115, -101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,101,110,116,101,114,105, -116,101,109, 95, 99, 98, 0, 2, 0, 0, 0, 13,108,101, 97,118,101,105,116,101, -109, 95, 99, 98, 0, 2, 0, 0, 0, 9, 99,108,105, 99,107, 95, 99, 98, 0, 2, - 0, 0, 0, 13,115, 99,114,111,108,108,116,111,112, 95, 99, 98, 0, 2, 0, 0, - 0, 9,118, 97,108,117,101, 95, 99, 98, 0, 2, 0, 0, 0, 8,100,114, 97,119, - 95, 99, 98, 0, 2, 0, 0, 0, 13,100,114,111,112, 99,104,101, 99,107, 95, 99, - 98, 0, 2, 0, 0, 0, 11,102,103, 99,111,108,111,114, 95, 99, 98, 0, 2, 0, - 0, 0, 11, 98,103, 99,111,108,111,114, 95, 99, 98, 0, 2, 0, 0, 0, 14,118, - 97,108,117,101, 95,101,100,105,116, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luamatrix_le64w.lo"); -} diff --git a/iup/srclua3/loh/pplot.loh b/iup/srclua3/loh/pplot.loh deleted file mode 100755 index 1a7aff0..0000000 --- a/iup/srclua3/loh/pplot.loh +++ /dev/null @@ -1,68 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua_pplot3/pplot.lo"); -*/ -/* ../obj/iuplua_pplot3/pplot.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116, - 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0, - 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18, - 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23, - 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9, - 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31, - 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, - 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2, - 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0, - 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0, - 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, - 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80, - 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111, -116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, - 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105, -117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, - 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13, - 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98, - 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112, -108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115, -101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83, - 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105, -117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110, - 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99, - 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0, - 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99, -116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95, - 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101, -108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101, -108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69, - 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112, -108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82, - 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112, -108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, -112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83, - 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112, -108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot.lo"); -} diff --git a/iup/srclua3/loh/pplot_be32.loh b/iup/srclua3/loh/pplot_be32.loh deleted file mode 100755 index 37f3b47..0000000 --- a/iup/srclua3/loh/pplot_be32.loh +++ /dev/null @@ -1,68 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua_pplot3/pplot_be32.lo"); -*/ -/* ../obj/iuplua_pplot3/pplot_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116, - 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0, - 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18, - 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23, - 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9, - 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31, - 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, - 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2, - 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0, - 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0, - 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, - 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80, - 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111, -116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, - 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105, -117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, - 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13, - 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98, - 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112, -108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115, -101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83, - 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105, -117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110, - 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99, - 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0, - 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99, -116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95, - 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101, -108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101, -108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69, - 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112, -108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82, - 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112, -108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, -112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83, - 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112, -108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot_be32.lo"); -} diff --git a/iup/srclua3/loh/pplot_be64.loh b/iup/srclua3/loh/pplot_be64.loh deleted file mode 100755 index 893c368..0000000 --- a/iup/srclua3/loh/pplot_be64.loh +++ /dev/null @@ -1,68 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua_pplot3/pplot_be64.lo"); -*/ -/* ../obj/iuplua_pplot3/pplot_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116, - 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0, - 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18, - 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23, - 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9, - 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31, - 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, - 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2, - 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0, - 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0, - 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, - 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80, - 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111, -116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, - 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105, -117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, - 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13, - 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98, - 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112, -108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115, -101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83, - 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105, -117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110, - 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99, - 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0, - 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99, -116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95, - 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101, -108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101, -108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69, - 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112, -108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82, - 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112, -108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, -112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83, - 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112, -108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot_be64.lo"); -} diff --git a/iup/srclua3/loh/pplot_le64.loh b/iup/srclua3/loh/pplot_le64.loh deleted file mode 100755 index 05a718d..0000000 --- a/iup/srclua3/loh/pplot_le64.loh +++ /dev/null @@ -1,68 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua_pplot3/pplot_le64.lo"); -*/ -/* ../obj/iuplua_pplot3/pplot_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 11, 64,112,112,108,111,116, - 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, - 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, - 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, 14, 29, 0, - 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 9, 11, 18, - 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, 22, 15, 23, - 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 9, - 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, 2, 11, 31, - 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, - 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, 39, 22, 2, - 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, 2, 0, 0, - 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, 0, 0, 0, - 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, 67,114,101, 97,116,101, - 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112,112,112,108,111,116, 0, - 4, 0, 0, 0, 7, 0, 0, 0, 11, 64,112,112,108,111,116, 46,108,117, 97, 0, - 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 9, 73, 85, 80, 80, - 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 6,112,112,108,111, -116, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, - 0, 2, 0, 0, 0, 8,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, 0, 18,105, -117,112, 95,112,112,108,111,116, 95,101,100,105,116, 95, 99, 98, 0, 2, 0, 0, - 0, 13,101,100,105,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13, - 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116, 98,101,103,105,110, 95, 99, 98, - 0, 2, 0, 0, 0, 11,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117, -112, 95,112,112,108,111,116, 95,101,100,105,116,101,110,100, 95, 99, 98, 0, 2, - 0, 0, 0, 10,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 10, 83, - 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112, -108,111,116, 95,115,101,108,101, 99,116, 95, 99, 98, 0, 2, 0, 0, 0, 15,115, -101,108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 83, - 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105, -117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 98,101,103,105,110, - 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,101,110,100, 95, 99, - 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 69, 78, 68, 95, 67, 66, 0, - 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99, -116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, 69, 84, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101, 95, - 99, 98, 0, 2, 0, 0, 0, 15,100,101,108,101,116,101, 98,101,103,105,110, 95, - 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, 69, 84, 69, 66, 69, 71, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,100,101, -108,101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,100,101, -108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 68, 69, 76, 69, - 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112, -108,111,116, 95,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 11,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 11, 80, 82, - 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112, -108,111,116, 95,112,114,101,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, -112,111,115,116,100,114, 97,119, 95, 99, 98, 0, 2, 0, 0, 0, 12, 80, 79, 83, - 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,112,112, -108,111,116, 95,112,111,115,116,100,114, 97,119, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/pplot_le64.lo"); -} diff --git a/iup/srclua3/loh/pplot_le64w.loh b/iup/srclua3/loh/pplot_le64w.loh deleted file mode 100755 index fc37ccc..0000000 --- a/iup/srclua3/loh/pplot_le64w.loh +++ /dev/null @@ -1,69 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua_pplot3/luapplot_le64w.lo"); -*/ -/* ../obj/iuplua_pplot3/luapplot_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64,108,117, 97,112,112, -108,111,116, 46,108,117, 97, 0, 0, 0, 0,180, 5, 0, 22, 1, 11, 1, 15, 2, - 30, 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, - 5, 26, 15, 9, 18, 10, 11, 8, 15, 11, 26, 15, 9, 11, 12, 22, 2, 11, 13, 15, - 14, 29, 0, 2, 26, 15, 9, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, - 9, 11, 18, 22, 2, 11, 19, 15, 20, 29, 0, 2, 26, 15, 9, 11, 21, 22, 2, 11, - 22, 15, 23, 29, 0, 2, 26, 15, 9, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, - 26, 15, 9, 11, 27, 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 9, 11, 30, 22, - 2, 11, 31, 15, 32, 29, 0, 2, 26, 15, 9, 11, 33, 22, 2, 11, 34, 15, 35, 29, - 0, 2, 26, 15, 9, 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 9, 11, - 39, 22, 2, 11, 40, 15, 41, 29, 0, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 2, 0, 0, 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 7,112, - 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, - 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, - 4, 0, 0, 0, 3, 0, 0, 0, 14, 64,108,117, 97,112,112,108,111,116, 46,108, -117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 15,105,117,112, - 67,114,101, 97,116,101, 80, 80,108,111,116, 0, 2, 0, 0, 0, 9,105,117,112, -112,112,108,111,116, 0, 4, 0, 0, 0, 7, 0, 0, 0, 14, 64,108,117, 97,112, -112,108,111,116, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, - 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, - 2, 0, 0, 0, 9, 73, 85, 80, 80, 80, 76, 79, 84, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 6,112,112,108,111,116, 0, 2, 0, 0, 0, 14,105,117,112, 95, - 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 8,101,100,105,116, 95, - 99, 98, 0, 2, 0, 0, 0, 18,105,117,112, 95,112,112,108,111,116, 95,101,100, -105,116, 95, 99, 98, 0, 2, 0, 0, 0, 13,101,100,105,116, 98,101,103,105,110, - 95, 99, 98, 0, 2, 0, 0, 0, 13, 69, 68, 73, 84, 66, 69, 71, 73, 78, 95, 67, - 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,101,100,105, -116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 11,101,100,105,116,101, -110,100, 95, 99, 98, 0, 2, 0, 0, 0, 11, 69, 68, 73, 84, 69, 78, 68, 95, 67, - 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,112,112,108,111,116, 95,101,100,105, -116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 10,115,101,108,101, 99,116, 95, - 99, 98, 0, 2, 0, 0, 0, 10, 83, 69, 76, 69, 67, 84, 95, 67, 66, 0, 2, 0, - 0, 0, 20,105,117,112, 95,112,112,108,111,116, 95,115,101,108,101, 99,116, 95, - 99, 98, 0, 2, 0, 0, 0, 15,115,101,108,101, 99,116, 98,101,103,105,110, 95, - 99, 98, 0, 2, 0, 0, 0, 15, 83, 69, 76, 69, 67, 84, 66, 69, 71, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, 95,112,112,108,111,116, 95,115,101, -108,101, 99,116, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101, -108,101, 99,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, - 67, 84, 69, 78, 68, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,112,112, -108,111,116, 95,115,101,108,101, 99,116,101,110,100, 95, 99, 98, 0, 2, 0, 0, - 0, 10,100,101,108,101,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 10, 68, 69, 76, - 69, 84, 69, 95, 67, 66, 0, 2, 0, 0, 0, 20,105,117,112, 95,112,112,108,111, -116, 95,100,101,108,101,116,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,100,101,108, -101,116,101, 98,101,103,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 68, 69, 76, - 69, 84, 69, 66, 69, 71, 73, 78, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117,112, - 95,112,112,108,111,116, 95,100,101,108,101,116,101, 98,101,103,105,110, 95, 99, - 98, 0, 2, 0, 0, 0, 13,100,101,108,101,116,101,101,110,100, 95, 99, 98, 0, - 2, 0, 0, 0, 13, 68, 69, 76, 69, 84, 69, 69, 78, 68, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,112,112,108,111,116, 95,100,101,108,101,116,101,101, -110,100, 95, 99, 98, 0, 2, 0, 0, 0, 11,112,114,101,100,114, 97,119, 95, 99, - 98, 0, 2, 0, 0, 0, 11, 80, 82, 69, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, - 0, 0, 21,105,117,112, 95,112,112,108,111,116, 95,112,114,101,100,114, 97,119, - 95, 99, 98, 0, 2, 0, 0, 0, 12,112,111,115,116,100,114, 97,119, 95, 99, 98, - 0, 2, 0, 0, 0, 12, 80, 79, 83, 84, 68, 82, 65, 87, 95, 67, 66, 0, 2, 0, - 0, 0, 22,105,117,112, 95,112,112,108,111,116, 95,112,111,115,116,100,114, 97, -119, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua_pplot3/luapplot_le64w.lo"); -} diff --git a/iup/srclua3/loh/sbox.loh b/iup/srclua3/loh/sbox.loh deleted file mode 100755 index 4a5af85..0000000 --- a/iup/srclua3/loh/sbox.loh +++ /dev/null @@ -1,27 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/sbox.lo"); -*/ -/* ../obj/iuplua3/sbox.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46, -108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, - 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120, - 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, - 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0, - 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, - 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, - 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 5,115, 98,111,120, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox.lo"); -} diff --git a/iup/srclua3/loh/sbox_be32.loh b/iup/srclua3/loh/sbox_be32.loh deleted file mode 100755 index 5b50619..0000000 --- a/iup/srclua3/loh/sbox_be32.loh +++ /dev/null @@ -1,27 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/sbox_be32.lo"); -*/ -/* ../obj/iuplua3/sbox_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46, -108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, - 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120, - 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, - 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0, - 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, - 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, - 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 5,115, 98,111,120, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox_be32.lo"); -} diff --git a/iup/srclua3/loh/sbox_be64.loh b/iup/srclua3/loh/sbox_be64.loh deleted file mode 100755 index eddb0ff..0000000 --- a/iup/srclua3/loh/sbox_be64.loh +++ /dev/null @@ -1,27 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/sbox_be64.lo"); -*/ -/* ../obj/iuplua3/sbox_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46, -108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, - 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120, - 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, - 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0, - 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, - 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, - 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 5,115, 98,111,120, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox_be64.lo"); -} diff --git a/iup/srclua3/loh/sbox_le64.loh b/iup/srclua3/loh/sbox_le64.loh deleted file mode 100755 index 089ccc2..0000000 --- a/iup/srclua3/loh/sbox_le64.loh +++ /dev/null @@ -1,27 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/sbox_le64.lo"); -*/ -/* ../obj/iuplua3/sbox_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115, 98,111,120, 46, -108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, - 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, - 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108, -101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,115, 98,111,120, - 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, - 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, 98,111,120, 0, 2, 0, - 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, - 64,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, - 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 5,115, 98,111,120, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/sbox_le64.lo"); -} diff --git a/iup/srclua3/loh/sbox_le64w.loh b/iup/srclua3/loh/sbox_le64w.loh deleted file mode 100755 index cc44ebb..0000000 --- a/iup/srclua3/loh/sbox_le64w.loh +++ /dev/null @@ -1,27 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luasbox_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luasbox_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,115, 98, -111,120, 46,108,117, 97, 0, 0, 0, 0, 31, 3, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, - 79, 88, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 13, 64,108, -117, 97,115, 98,111,120, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, - 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, - 98,111,120, 0, 2, 0, 0, 0, 8,105,117,112,115, 98,111,120, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 13, 64,108,117, 97,115, 98,111,120, 46,108,117, 97, 0, 0, - 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 66, - 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, - 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115, 98,111,120, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luasbox_le64w.lo"); -} diff --git a/iup/srclua3/loh/spin.loh b/iup/srclua3/loh/spin.loh deleted file mode 100755 index cd4cc02..0000000 --- a/iup/srclua3/loh/spin.loh +++ /dev/null @@ -1,43 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/spin.lo"); -*/ -/* ../obj/iuplua3/spin.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46, -108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1, - 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15, - 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, - 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0, - 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8, - 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0, - 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, - 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98, -111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2, - 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, - 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0, - 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin.lo"); -} diff --git a/iup/srclua3/loh/spin_be32.loh b/iup/srclua3/loh/spin_be32.loh deleted file mode 100755 index 9e1f9e4..0000000 --- a/iup/srclua3/loh/spin_be32.loh +++ /dev/null @@ -1,43 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/spin_be32.lo"); -*/ -/* ../obj/iuplua3/spin_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46, -108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1, - 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15, - 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, - 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0, - 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8, - 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0, - 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, - 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98, -111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2, - 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, - 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0, - 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin_be32.lo"); -} diff --git a/iup/srclua3/loh/spin_be64.loh b/iup/srclua3/loh/spin_be64.loh deleted file mode 100755 index 12af7ac..0000000 --- a/iup/srclua3/loh/spin_be64.loh +++ /dev/null @@ -1,43 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/spin_be64.lo"); -*/ -/* ../obj/iuplua3/spin_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46, -108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1, - 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15, - 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, - 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0, - 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8, - 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0, - 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, - 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98, -111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2, - 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, - 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0, - 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin_be64.lo"); -} diff --git a/iup/srclua3/loh/spin_le64.loh b/iup/srclua3/loh/spin_le64.loh deleted file mode 100755 index 1e7aea7..0000000 --- a/iup/srclua3/loh/spin_le64.loh +++ /dev/null @@ -1,43 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/spin_le64.lo"); -*/ -/* ../obj/iuplua3/spin_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,115,112,105,110, 46, -108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 22, 1, - 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, 25, 11, 15, - 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, - 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0, - 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, 97,114,101, -110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, - 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, - 0, 3, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 8, - 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112,105,110, 0, 4, 0, 0, - 0, 7, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,115,112,105,110, 0, 2, 0, 0, 0, - 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, 0, 4, 0, 0, 0, 14, 0, 0, 0, - 10, 64,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, - 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, - 4,111, 98,106, 0, 2, 0, 0, 0, 17,105,117,112, 67,114,101, 97,116,101, 83, -112,105,110, 98,111,120, 0, 2, 0, 0, 0, 11,105,117,112,115,112,105,110, 98, -111,120, 0, 4, 0, 0, 0, 18, 0, 0, 0, 10, 64,115,112,105,110, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, - 80, 83, 80, 73, 78, 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2, - 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, - 0, 0, 7,115,112,105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0, - 2, 0, 0, 0, 8,115,112,105,110, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/spin_le64.lo"); -} diff --git a/iup/srclua3/loh/spin_le64w.loh b/iup/srclua3/loh/spin_le64w.loh deleted file mode 100755 index de49021..0000000 --- a/iup/srclua3/loh/spin_le64w.loh +++ /dev/null @@ -1,44 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luaspin_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luaspin_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,115,112, -105,110, 46,108,117, 97, 0, 0, 0, 0, 82, 5, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 22, 1, 11, 1, 15, 2, 30, 0, 25, 9, 15, 9, 11, 3, 11, 10, 26, 11, 12, - 25, 11, 15, 7, 11, 13, 15, 11, 26, 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, - 0, 2, 26, 15, 14, 11, 18, 15, 14, 18, 15, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 2, 0, 0, 0, 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 7,112, - 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, - 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110,116, 0, - 4, 0, 0, 0, 3, 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, 46,108,117, - 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67, -114,101, 97,116,101, 83,112,105,110, 0, 2, 0, 0, 0, 8,105,117,112,115,112, -105,110, 0, 4, 0, 0, 0, 7, 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, - 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, - 8, 73, 85, 80, 83, 80, 73, 78, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114, -117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5, -115,112,105,110, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 80, 73, 78, 66, 79, 88, - 0, 4, 0, 0, 0, 14, 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, 46,108, -117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, - 0, 17,105,117,112, 67,114,101, 97,116,101, 83,112,105,110, 98,111,120, 0, 2, - 0, 0, 0, 11,105,117,112,115,112,105,110, 98,111,120, 0, 4, 0, 0, 0, 18, - 0, 0, 0, 13, 64,108,117, 97,115,112,105,110, 46,108,117, 97, 0, 0, 0, 0, - 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 11, 73, 85, 80, 83, 80, 73, 78, - 66, 79, 88, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, - 0, 2, 0, 0, 0, 8,115,112,105,110, 98,111,120, 0, 2, 0, 0, 0, 14,105, -117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 7,115,112, -105,110, 99, 98, 0, 2, 0, 0, 0, 8, 83, 80, 73, 78, 95, 67, 66, 0, 2, 0, - 0, 0, 12,105,117,112, 95,115,112,105,110, 95, 99, 98, 0, 2, 0, 0, 0, 8, -115,112,105,110, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luaspin_le64w.lo"); -} diff --git a/iup/srclua3/loh/tabs.loh b/iup/srclua3/loh/tabs.loh deleted file mode 100755 index 86c4ab0..0000000 --- a/iup/srclua3/loh/tabs.loh +++ /dev/null @@ -1,33 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/tabs.lo"); -*/ -/* ../obj/iuplua3/tabs.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46, -108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, - 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65, - 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116, - 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2, - 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, - 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8, -105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97, - 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, - 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, - 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101, - 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, - 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs.lo"); -} diff --git a/iup/srclua3/loh/tabs_be32.loh b/iup/srclua3/loh/tabs_be32.loh deleted file mode 100755 index 4eb4b83..0000000 --- a/iup/srclua3/loh/tabs_be32.loh +++ /dev/null @@ -1,33 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/tabs_be32.lo"); -*/ -/* ../obj/iuplua3/tabs_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46, -108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, - 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65, - 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116, - 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2, - 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, - 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8, -105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97, - 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, - 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, - 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101, - 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, - 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs_be32.lo"); -} diff --git a/iup/srclua3/loh/tabs_be64.loh b/iup/srclua3/loh/tabs_be64.loh deleted file mode 100755 index c4ada05..0000000 --- a/iup/srclua3/loh/tabs_be64.loh +++ /dev/null @@ -1,33 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/tabs_be64.lo"); -*/ -/* ../obj/iuplua3/tabs_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46, -108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, - 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65, - 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116, - 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2, - 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, - 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8, -105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97, - 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, - 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, - 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101, - 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, - 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs_be64.lo"); -} diff --git a/iup/srclua3/loh/tabs_le64.loh b/iup/srclua3/loh/tabs_le64.loh deleted file mode 100755 index 7a4c6b1..0000000 --- a/iup/srclua3/loh/tabs_le64.loh +++ /dev/null @@ -1,33 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/tabs_le64.lo"); -*/ -/* ../obj/iuplua3/tabs_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116, 97, 98,115, 46, -108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, - 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, 9, 18, 10, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65, - 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, - 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, - 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 10, 64,116, - 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, 15, 1, 13, 1, 15, 2, - 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, - 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114,101, 97,116,101, - 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 8, -105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, 0, 0, 10, 64,116, 97, - 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, - 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, - 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 12, 67,111,110,115, -116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, - 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, - 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,116, 97, 98, 99,104, 97,110,103,101, - 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, 65, 78, 71, 69, 95, 67, 66, 0, 2, - 0, 0, 0, 17,105,117,112, 95,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, - 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/tabs_le64.lo"); -} diff --git a/iup/srclua3/loh/tabs_le64w.loh b/iup/srclua3/loh/tabs_le64w.loh deleted file mode 100755 index 24a87dc..0000000 --- a/iup/srclua3/loh/tabs_le64w.loh +++ /dev/null @@ -1,34 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luatabs_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luatabs_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,116, 97, - 98,115, 46,108,117, 97, 0, 0, 0, 0, 54, 5, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, - 26, 15, 9, 11, 10, 22, 2, 11, 11, 15, 12, 29, 0, 2, 26, 15, 9, 11, 13, 15, - 9, 18, 10, 26, 0, 0, 0, 0, 0, 0, 0, 0, 14, 2, 0, 0, 0, 8, 73, 85, - 80, 84, 65, 66, 83, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, - 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116, -101, 73, 85, 80,101,108,101,109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, - 13, 64,108,117, 97,116, 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 17, 6, 2, - 15, 1, 13, 1, 15, 2, 13, 1, 2, 1, 1, 3, 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, - 67,114,101, 97,116,101, 84, 97, 98,115, 0, 2, 0, 0, 0, 5,103,101,116,110, - 0, 2, 0, 0, 0, 8,105,117,112,116, 97, 98,115, 0, 4, 0, 0, 0, 7, 0, - 0, 0, 13, 64,108,117, 97,116, 97, 98,115, 46,108,117, 97, 0, 0, 0, 0, 12, - 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 65, 66, 83, 0, - 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, - 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116, 97, 98,115, 0, 2, 0, 0, 0, - 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10, -116, 97, 98, 99,104, 97,110,103,101, 0, 2, 0, 0, 0, 13, 84, 65, 66, 67, 72, - 65, 78, 71, 69, 95, 67, 66, 0, 2, 0, 0, 0, 17,105,117,112, 95,116, 97, 98, - 99,104, 97,110,103,101, 95, 99, 98, 0, 2, 0, 0, 0, 13,116, 97, 98, 99,104, - 97,110,103,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luatabs_le64w.lo"); -} diff --git a/iup/srclua3/loh/tree.loh b/iup/srclua3/loh/tree.loh deleted file mode 100755 index f3af92c..0000000 --- a/iup/srclua3/loh/tree.loh +++ /dev/null @@ -1,115 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/tree.lo"); -*/ -/* ../obj/iupluacontrols3/tree.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46, -108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15, - 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11, - 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15, - 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15, - 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11, - 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2, - 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22, - 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29, - 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11, - 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15, - 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18, - 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26, - 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14, - 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0, - 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, - 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85, - 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114, -101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101, -101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101, - 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, - 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1, - 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66, - 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2, - 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13, - 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1, - 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13, - 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7, - 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97, -110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0, - 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, - 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10, - 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1, - 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13, - 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0, - 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0, - 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, - 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115, - 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116, - 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109, -101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105, -117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101, -108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95, -115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117, -108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85, - 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99, -116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111, -112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97, -110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110, - 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67, - 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101, -101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, - 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69, - 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95, - 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2, - 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111, -100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0, - 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21, -105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98, - 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2, - 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97, -109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103, -104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103, -100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67, - 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103, -100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101, - 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104, -111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99, -108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101, -108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110, -111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99, - 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98, - 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0, - 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree.lo"); -} diff --git a/iup/srclua3/loh/tree_be32.loh b/iup/srclua3/loh/tree_be32.loh deleted file mode 100755 index c7a5992..0000000 --- a/iup/srclua3/loh/tree_be32.loh +++ /dev/null @@ -1,115 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/tree_be32.lo"); -*/ -/* ../obj/iupluacontrols3/tree_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46, -108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15, - 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11, - 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15, - 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15, - 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11, - 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2, - 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22, - 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29, - 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11, - 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15, - 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18, - 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26, - 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14, - 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0, - 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, - 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85, - 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114, -101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101, -101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101, - 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, - 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1, - 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66, - 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2, - 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13, - 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1, - 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13, - 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7, - 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97, -110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0, - 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, - 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10, - 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1, - 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13, - 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0, - 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0, - 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, - 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115, - 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116, - 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109, -101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105, -117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101, -108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95, -115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117, -108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85, - 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99, -116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111, -112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97, -110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110, - 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67, - 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101, -101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, - 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69, - 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95, - 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2, - 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111, -100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0, - 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21, -105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98, - 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2, - 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97, -109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103, -104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103, -100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67, - 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103, -100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101, - 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104, -111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99, -108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101, -108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110, -111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99, - 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98, - 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0, - 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree_be32.lo"); -} diff --git a/iup/srclua3/loh/tree_be64.loh b/iup/srclua3/loh/tree_be64.loh deleted file mode 100755 index d46105b..0000000 --- a/iup/srclua3/loh/tree_be64.loh +++ /dev/null @@ -1,115 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/tree_be64.lo"); -*/ -/* ../obj/iupluacontrols3/tree_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46, -108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15, - 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11, - 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15, - 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15, - 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11, - 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2, - 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22, - 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29, - 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11, - 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15, - 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18, - 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26, - 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14, - 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0, - 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, - 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85, - 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114, -101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101, -101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101, - 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, - 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1, - 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66, - 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2, - 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13, - 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1, - 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13, - 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7, - 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97, -110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0, - 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, - 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10, - 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1, - 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13, - 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0, - 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0, - 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, - 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115, - 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116, - 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109, -101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105, -117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101, -108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95, -115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117, -108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85, - 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99, -116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111, -112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97, -110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110, - 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67, - 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101, -101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, - 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69, - 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95, - 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2, - 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111, -100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0, - 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21, -105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98, - 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2, - 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97, -109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103, -104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103, -100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67, - 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103, -100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101, - 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104, -111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99, -108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101, -108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110, -111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99, - 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98, - 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0, - 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree_be64.lo"); -} diff --git a/iup/srclua3/loh/tree_le64.loh b/iup/srclua3/loh/tree_le64.loh deleted file mode 100755 index e308539..0000000 --- a/iup/srclua3/loh/tree_le64.loh +++ /dev/null @@ -1,115 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/tree_le64.lo"); -*/ -/* ../obj/iupluacontrols3/tree_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 10, 64,116,114,101,101, 46, -108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, - 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, 11, 9, 15, - 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, 15, 14, 11, - 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, 11, 19, 15, - 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, 2, 26, 15, - 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, 22, 2, 11, - 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, 29, 0, 2, - 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, 11, 36, 22, - 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, 15, 41, 29, - 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, 15, 14, 11, - 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, 11, 47, 15, - 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, 15, 14, 18, - 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, 18, 33, 26, - 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, 26, 15, 14, - 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, 0, 0, 0, - 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114,101,110,116, - 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, 22, 73, 85, - 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, 76, 69, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 14,105,117,112, 67,114, -101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8,105,117,112,116,114,101, -101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 8, 73, 85, 80, - 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 5,116,114,101,101, - 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, - 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 10, 64,116,114,101,101, 46,108,117, 97, - 0, 0, 0, 0,140, 9, 3, 13, 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1, - 2, 1, 1, 50,112, 15, 5, 13, 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66, - 13, 1, 13, 3, 16, 18, 7, 4, 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2, - 42, 13, 1, 13, 3, 16, 18, 7, 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13, - 2, 42, 11, 10, 2, 0, 3, 15, 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1, - 37, 2, 0, 3, 50, 24, 13, 1, 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13, - 2, 42, 13, 1, 13, 3, 16, 2, 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7, - 0, 36, 54,119, 0, 0, 0, 0, 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97, -110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0, - 2, 0, 0, 0, 5, 99,111,110,116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 10, 65, 68, 68, 66, 82, 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2, - 0, 0, 0, 16, 84,114,101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, - 2, 0, 0, 0, 8, 65, 68, 68, 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 10, - 64,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1, - 2, 1, 1, 11, 3, 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13, - 1, 18, 7, 4, 0, 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0, - 3, 15, 10, 13, 0, 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, - 2, 0, 0, 0, 5,116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, - 0, 2, 0, 0, 0, 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0, - 0, 14, 84,114,101,101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, - 45, 73,110, 99,111,114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115, - 32,116,111, 32,102,117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116, - 86, 97,108,117,101, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109, -101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117, -116,101, 0, 2, 0, 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114, -101,101, 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105, -117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101, -108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73, - 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95, -115,101,108,101, 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117, -108,116,105,115,101,108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85, - 76, 84, 73, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, - 27,105,117,112, 95,116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99, -116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111, -112,101,110, 0, 2, 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97, -110, 99,104,111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110, - 99,104, 99,108,111,115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67, - 76, 79, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101, -101, 95, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, - 0, 12,101,120,101, 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69, - 88, 69, 67, 85, 84, 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,116,114,101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95, - 99, 98, 0, 2, 0, 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2, - 0, 0, 0, 14, 82, 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111, -100,101, 95, 99, 98, 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0, - 2, 0, 0, 0, 10, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21, -105,117,112, 95,116,114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98, - 0, 2, 0, 0, 0, 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2, - 0, 0, 0, 14, 83, 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, - 0, 0, 25,105,117,112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97, -109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108, -105, 99,107, 0, 2, 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95, - 67, 66, 0, 2, 0, 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103, -104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103, -100,114,111,112, 0, 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67, - 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103, -100,114,111,112, 95, 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105, -111,110, 95, 99, 98, 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101, - 99,116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104, -111,112,101,110, 95, 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99, -108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101, -108,101, 97,102, 95, 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110, -111,100,101, 95, 99, 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99, - 98, 0, 2, 0, 0, 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98, - 0, 2, 0, 0, 0, 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0, - 2, 0, 0, 0, 12,100,114, 97,103,100,114,111,112, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/tree_le64.lo"); -} diff --git a/iup/srclua3/loh/tree_le64w.loh b/iup/srclua3/loh/tree_le64w.loh deleted file mode 100755 index 4db63e3..0000000 --- a/iup/srclua3/loh/tree_le64w.loh +++ /dev/null @@ -1,116 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luatree_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luatree_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 13, 64,108,117, 97,116,114, -101,101, 46,108,117, 97, 0, 0, 0, 1, 24, 5, 0, 22, 1, 11, 1, 15, 2, 30, - 0, 25, 0, 22, 0, 25, 3, 15, 0, 11, 4, 11, 5, 26, 11, 7, 25, 6, 15, 8, - 11, 9, 15, 6, 26, 11, 11, 25, 10, 11, 13, 25, 12, 15, 8, 11, 12, 15, 12, 26, - 15, 14, 11, 15, 22, 2, 11, 16, 15, 17, 29, 0, 2, 26, 15, 14, 11, 18, 22, 2, - 11, 19, 15, 20, 29, 0, 2, 26, 15, 14, 11, 21, 22, 2, 11, 22, 15, 23, 29, 0, - 2, 26, 15, 14, 11, 24, 22, 2, 11, 25, 15, 26, 29, 0, 2, 26, 15, 14, 11, 27, - 22, 2, 11, 28, 15, 29, 29, 0, 2, 26, 15, 14, 11, 30, 22, 2, 11, 31, 15, 32, - 29, 0, 2, 26, 15, 14, 11, 33, 22, 2, 11, 34, 15, 35, 29, 0, 2, 26, 15, 14, - 11, 36, 22, 2, 11, 37, 15, 38, 29, 0, 2, 26, 15, 14, 11, 39, 22, 2, 11, 40, - 15, 41, 29, 0, 2, 26, 15, 14, 11, 42, 22, 2, 11, 43, 15, 44, 29, 0, 2, 26, - 15, 14, 11, 45, 15, 14, 18, 15, 26, 15, 14, 11, 46, 15, 14, 18, 18, 26, 15, 14, - 11, 47, 15, 14, 18, 21, 26, 15, 14, 11, 48, 15, 14, 18, 24, 26, 15, 14, 11, 49, - 15, 14, 18, 27, 26, 15, 14, 11, 50, 15, 14, 18, 30, 26, 15, 14, 11, 51, 15, 14, - 18, 33, 26, 15, 14, 11, 52, 15, 14, 18, 36, 26, 15, 14, 11, 53, 15, 14, 18, 39, - 26, 15, 14, 11, 54, 15, 14, 18, 42, 26, 0, 0, 0, 0, 0, 0, 0, 0, 55, 2, - 0, 0, 0, 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 7,112, 97,114, -101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, 2, 0, 0, 0, - 22, 73, 85, 80, 84, 82, 69, 69, 82, 69, 70, 69, 82, 69, 78, 67, 69, 84, 65, 66, - 76, 69, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101, -109,101,110,116, 0, 4, 0, 0, 0, 4, 0, 0, 0, 13, 64,108,117, 97,116,114, -101,101, 46,108,117, 97, 0, 0, 0, 0, 8, 3, 2, 15, 1, 3, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, - 14,105,117,112, 67,114,101, 97,116,101, 84,114,101,101, 0, 2, 0, 0, 0, 8, -105,117,112,116,114,101,101, 0, 4, 0, 0, 0, 8, 0, 0, 0, 13, 64,108,117, - 97,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, - 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, - 0, 2, 0, 0, 0, 8, 73, 85, 80, 84, 82, 69, 69, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 5,116,114,101,101, 0, 2, 0, 0, 0, 16, 84,114,101,101, 83, -101,116, 86, 97,108,117,101, 82,101, 99, 0, 4, 0, 0, 0, 13, 0, 0, 0, 13, - 64,108,117, 97,116,114,101,101, 46,108,117, 97, 0, 0, 0, 0,140, 9, 3, 13, - 1, 4, 0, 32, 52, 2, 1, 3, 15, 4, 13, 1, 2, 1, 1, 50,112, 15, 5, 13, - 1, 13, 3, 16, 2, 1, 1, 11, 6, 32, 52, 66, 13, 1, 13, 3, 16, 18, 7, 4, - 0, 31, 52, 21, 15, 8, 13, 0, 11, 9, 13, 2, 42, 13, 1, 13, 3, 16, 18, 7, - 2, 0, 3, 50, 14, 15, 8, 13, 0, 11, 9, 13, 2, 42, 11, 10, 2, 0, 3, 15, - 11, 13, 0, 13, 1, 13, 3, 16, 13, 2, 7, 1, 37, 2, 0, 3, 50, 24, 13, 1, - 13, 3, 16, 52, 17, 15, 8, 13, 0, 11, 12, 13, 2, 42, 13, 1, 13, 3, 16, 2, - 0, 3, 13, 3, 7, 1, 38, 23, 3, 13, 3, 7, 0, 36, 54,119, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 2, 0, 0, 0, 7,104, 97,110,100,108,101, 0, 2, 0, 0, - 0, 2,116, 0, 2, 0, 0, 0, 3,105,100, 0, 2, 0, 0, 0, 5, 99,111,110, -116, 0, 2, 0, 0, 0, 5,103,101,116,110, 0, 2, 0, 0, 0, 5,116,121,112, -101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, 11, 98,114, - 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, 0, 16, 73,117,112, 83,101,116, - 65,116,116,114,105, 98,117,116,101, 0, 2, 0, 0, 0, 10, 65, 68, 68, 66, 82, - 65, 78, 67, 72, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 16, 84,114,101,101, - 83,101,116, 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 8, 65, 68, 68, - 76, 69, 65, 70, 0, 2, 0, 0, 0, 13, 84,114,101,101, 83,101,116, 86, 97,108, -117,101, 0, 4, 0, 0, 0, 36, 0, 0, 0, 13, 64,108,117, 97,116,114,101,101, - 46,108,117, 97, 0, 0, 0, 0, 59, 6, 2, 15, 2, 13, 1, 2, 1, 1, 11, 3, - 31, 52, 11, 15, 4, 11, 5, 11, 6, 2, 0, 2, 1, 2, 13, 1, 18, 7, 4, 0, - 31, 52, 13, 15, 8, 13, 0, 11, 9, 13, 1, 18, 7, 2, 0, 3, 15, 10, 13, 0, - 13, 1, 7, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 11, 2, 0, 0, 0, - 7,104, 97,110,100,108,101, 0, 2, 0, 0, 0, 2,116, 0, 2, 0, 0, 0, 5, -116,121,112,101, 0, 2, 0, 0, 0, 6,116, 97, 98,108,101, 0, 2, 0, 0, 0, - 11, 73,117,112, 77,101,115,115, 97,103,101, 0, 2, 0, 0, 0, 14, 84,114,101, -101, 76,117, 97, 32, 69,114,114,111,114, 0, 2, 0, 0, 0, 45, 73,110, 99,111, -114,114,101, 99,116, 32, 97,114,103,117,109,101,110,116,115, 32,116,111, 32,102, -117,110, 99,116,105,111,110, 32, 84,114,101,101, 83,101,116, 86, 97,108,117,101, - 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,110, 97,109,101, 0, 2, 0, 0, - 0, 16, 73,117,112, 83,101,116, 65,116,116,114,105, 98,117,116,101, 0, 2, 0, - 0, 0, 5, 78, 65, 77, 69, 0, 2, 0, 0, 0, 16, 84,114,101,101, 83,101,116, - 86, 97,108,117,101, 82,101, 99, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97, -108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,115,101,108,101, 99,116,105, -111,110, 0, 2, 0, 0, 0, 13, 83, 69, 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, - 0, 2, 0, 0, 0, 22,105,117,112, 95,116,114,101,101, 95,115,101,108,101, 99, -116,105,111,110, 95, 99, 98, 0, 2, 0, 0, 0, 15,109,117,108,116,105,115,101, -108,101, 99,116,105,111,110, 0, 2, 0, 0, 0, 18, 77, 85, 76, 84, 73, 83, 69, - 76, 69, 67, 84, 73, 79, 78, 95, 67, 66, 0, 2, 0, 0, 0, 27,105,117,112, 95, -116,114,101,101, 95,109,117,108,116,105,115,101,108,101, 99,116,105,111,110, 95, - 99, 98, 0, 2, 0, 0, 0, 11, 98,114, 97,110, 99,104,111,112,101,110, 0, 2, - 0, 0, 0, 14, 66, 82, 65, 78, 67, 72, 79, 80, 69, 78, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,116,114,101,101, 95, 98,114, 97,110, 99,104,111,112, -101,110, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,114, 97,110, 99,104, 99,108,111, -115,101, 0, 2, 0, 0, 0, 15, 66, 82, 65, 78, 67, 72, 67, 76, 79, 83, 69, 95, - 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114,101,101, 95, 98,114, 97, -110, 99,104, 99,108,111,115,101, 95, 99, 98, 0, 2, 0, 0, 0, 12,101,120,101, - 99,117,116,101,108,101, 97,102, 0, 2, 0, 0, 0, 15, 69, 88, 69, 67, 85, 84, - 69, 76, 69, 65, 70, 95, 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,116,114, -101,101, 95,101,120,101, 99,117,116,101,108,101, 97,102, 95, 99, 98, 0, 2, 0, - 0, 0, 11,114,101,110, 97,109,101,110,111,100,101, 0, 2, 0, 0, 0, 14, 82, - 69, 78, 65, 77, 69, 78, 79, 68, 69, 95, 67, 66, 0, 2, 0, 0, 0, 23,105,117, -112, 95,116,114,101,101, 95,114,101,110, 97,109,101,110,111,100,101, 95, 99, 98, - 0, 2, 0, 0, 0, 9,114,101,110, 97,109,101, 99, 98, 0, 2, 0, 0, 0, 10, - 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 21,105,117,112, 95,116, -114,101,101, 95,114,101,110, 97,109,101, 99, 98, 95, 99, 98, 0, 2, 0, 0, 0, - 13,115,104,111,119,114,101,110, 97,109,101, 99, 98, 0, 2, 0, 0, 0, 14, 83, - 72, 79, 87, 82, 69, 78, 65, 77, 69, 95, 67, 66, 0, 2, 0, 0, 0, 25,105,117, -112, 95,116,114,101,101, 95,115,104,111,119,114,101,110, 97,109,101, 99, 98, 95, - 99, 98, 0, 2, 0, 0, 0, 11,114,105,103,104,116, 99,108,105, 99,107, 0, 2, - 0, 0, 0, 14, 82, 73, 71, 72, 84, 67, 76, 73, 67, 75, 95, 67, 66, 0, 2, 0, - 0, 0, 23,105,117,112, 95,116,114,101,101, 95,114,105,103,104,116, 99,108,105, - 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 9,100,114, 97,103,100,114,111,112, 0, - 2, 0, 0, 0, 12, 68, 82, 65, 71, 68, 82, 79, 80, 95, 67, 66, 0, 2, 0, 0, - 0, 21,105,117,112, 95,116,114,101,101, 95,100,114, 97,103,100,114,111,112, 95, - 99, 98, 0, 2, 0, 0, 0, 13,115,101,108,101, 99,116,105,111,110, 95, 99, 98, - 0, 2, 0, 0, 0, 18,109,117,108,116,105,115,101,108,101, 99,116,105,111,110, - 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,114, 97,110, 99,104,111,112,101,110, 95, - 99, 98, 0, 2, 0, 0, 0, 15, 98,114, 97,110, 99,104, 99,108,111,115,101, 95, - 99, 98, 0, 2, 0, 0, 0, 15,101,120,101, 99,117,116,101,108,101, 97,102, 95, - 99, 98, 0, 2, 0, 0, 0, 14,114,101,110, 97,109,101,110,111,100,101, 95, 99, - 98, 0, 2, 0, 0, 0, 10,114,101,110, 97,109,101, 95, 99, 98, 0, 2, 0, 0, - 0, 14,115,104,111,119,114,101,110, 97,109,101, 95, 99, 98, 0, 2, 0, 0, 0, - 14,114,105,103,104,116, 99,108,105, 99,107, 95, 99, 98, 0, 2, 0, 0, 0, 12, -100,114, 97,103,100,114,111,112, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luatree_le64w.lo"); -} diff --git a/iup/srclua3/loh/val.loh b/iup/srclua3/loh/val.loh deleted file mode 100755 index 19d0a55..0000000 --- a/iup/srclua3/loh/val.loh +++ /dev/null @@ -1,45 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/val.lo"); -*/ -/* ../obj/iuplua3/val.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108, -117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15, - 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11, - 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26, - 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29, - 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11, - 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0, - 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105, -117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112, -118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85, - 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77, - 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117, -115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, - 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85, - 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, - 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115, -101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83, - 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117, -116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0, - 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, - 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, - -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val.lo"); -} diff --git a/iup/srclua3/loh/val_be32.loh b/iup/srclua3/loh/val_be32.loh deleted file mode 100755 index 58971c8..0000000 --- a/iup/srclua3/loh/val_be32.loh +++ /dev/null @@ -1,45 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/val_be32.lo"); -*/ -/* ../obj/iuplua3/val_be32.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108, -117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15, - 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11, - 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26, - 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29, - 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11, - 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0, - 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105, -117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112, -118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85, - 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77, - 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117, -115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, - 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85, - 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, - 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115, -101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83, - 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117, -116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0, - 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, - 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, - -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val_be32.lo"); -} diff --git a/iup/srclua3/loh/val_be64.loh b/iup/srclua3/loh/val_be64.loh deleted file mode 100755 index d65e14b..0000000 --- a/iup/srclua3/loh/val_be64.loh +++ /dev/null @@ -1,45 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/val_be64.lo"); -*/ -/* ../obj/iuplua3/val_be64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108, -117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15, - 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11, - 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26, - 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29, - 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11, - 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0, - 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105, -117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112, -118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85, - 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77, - 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117, -115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, - 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85, - 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, - 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115, -101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83, - 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117, -116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0, - 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, - 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, - -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val_be64.lo"); -} diff --git a/iup/srclua3/loh/val_le64.loh b/iup/srclua3/loh/val_le64.loh deleted file mode 100755 index 179e80a..0000000 --- a/iup/srclua3/loh/val_le64.loh +++ /dev/null @@ -1,45 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iuplua3/val_le64.lo"); -*/ -/* ../obj/iuplua3/val_le64.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 9, 64,118, 97,108, 46,108, -117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, 25, 0, 15, - 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, 15, 9, 11, - 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, 18, 10, 26, - 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, 15, 16, 29, - 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, 15, 9, 11, - 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0, - 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, 69, 84, 0, - 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101,109,101,110, -116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, 97, 0, - 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, 2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, 2, 0, 0, 0, 13,105, -117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, 0, 0, 7,105,117,112, -118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 9, 64,118, 97,108, 46,108,117, - 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, 2, 13, 0, 3, 1, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2,111, 0, 2, 0, 0, 0, 7, 73, 85, - 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67,111,110,115,116,114,117, 99,116,111, -114, 0, 2, 0, 0, 0, 4,105,117,112, 0, 2, 0, 0, 0, 4,118, 97,108, 0, - 2, 0, 0, 0, 14,105,117,112, 95, 99, 97,108,108, 98, 97, 99,107,115, 0, 2, - 0, 0, 0, 10,109,111,117,115,101,109,111,118,101, 0, 2, 0, 0, 0, 13, 77, - 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, 0, 2, 0, 0, 0, 13,109,111,117, -115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, 21,105,117,112, 95,118, - 97,108, 95,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, 0, 0, 0, - 12, 98,117,116,116,111,110,112,114,101,115,115, 0, 2, 0, 0, 0, 16, 66, 85, - 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, 67, 66, 0, 2, 0, 0, 0, 24,105, -117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, - 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116,116,111,110,114,101,108,101, 97,115, -101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, 79, 78, 95, 82, 69, 76, 69, 65, 83, - 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105,117,112, 95,118, 97,108, 95, 98,117, -116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, 2, 0, 0, 0, - 16, 98,117,116,116,111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, - 0, 18, 98,117,116,116,111,110, 95,114,101,108,101, 97,115,101, 95, 99, 98, 0, - -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iuplua3/val_le64.lo"); -} diff --git a/iup/srclua3/loh/val_le64w.loh b/iup/srclua3/loh/val_le64w.loh deleted file mode 100755 index 65ce1be..0000000 --- a/iup/srclua3/loh/val_le64w.loh +++ /dev/null @@ -1,45 +0,0 @@ -/* code automatically generated by bin2c -- DO NOT EDIT */ -{ -/* #include'ing this file in a C program is equivalent to calling - lua_dofile("../obj/iupluacontrols3/luaval_le64w.lo"); -*/ -/* ../obj/iupluacontrols3/luaval_le64w.lo */ -static unsigned char B1[]={ - 27, 76,117, 97, 50, 0, 0, 0, 0, 0, 0, 0, 0, 12, 64,108,117, 97,118, 97, -108, 46,108,117, 97, 0, 0, 0, 0,109, 5, 0, 22, 1, 11, 1, 15, 2, 30, 0, - 25, 0, 15, 0, 11, 3, 11, 4, 26, 11, 6, 25, 5, 15, 7, 11, 8, 15, 5, 26, - 15, 9, 11, 10, 22, 2, 11, 11, 4, 0, 29, 0, 2, 26, 15, 9, 11, 12, 15, 9, - 18, 10, 26, 15, 9, 18, 10, 11, 8, 15, 13, 26, 15, 9, 11, 14, 22, 2, 11, 15, - 15, 16, 29, 0, 2, 26, 15, 9, 11, 17, 22, 2, 11, 18, 15, 19, 29, 0, 2, 26, - 15, 9, 11, 20, 15, 9, 18, 14, 26, 15, 9, 11, 21, 15, 9, 18, 17, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, - 0, 0, 0, 7,112, 97,114,101,110,116, 0, 2, 0, 0, 0, 7, 87, 73, 68, 71, - 69, 84, 0, 2, 0, 0, 0, 17, 67,114,101, 97,116,101, 73, 85, 80,101,108,101, -109,101,110,116, 0, 4, 0, 0, 0, 3, 0, 0, 0, 12, 64,108,117, 97,118, 97, -108, 46,108,117, 97, 0, 0, 0, 0, 13, 5, 2, 15, 1, 13, 1, 7, 1, 16, 3, - 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4,111, 98,106, 0, - 2, 0, 0, 0, 13,105,117,112, 67,114,101, 97,116,101, 86, 97,108, 0, 2, 0, - 0, 0, 7,105,117,112,118, 97,108, 0, 4, 0, 0, 0, 7, 0, 0, 0, 12, 64, -108,117, 97,118, 97,108, 46,108,117, 97, 0, 0, 0, 0, 12, 4, 1, 15, 1, 20, - 2, 13, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 2, -111, 0, 2, 0, 0, 0, 7, 73, 85, 80, 86, 65, 76, 0, 2, 0, 0, 0, 12, 67, -111,110,115,116,114,117, 99,116,111,114, 0, 2, 0, 0, 0, 4,105,117,112, 0, - 2, 0, 0, 0, 4,118, 97,108, 0, 2, 0, 0, 0, 14,105,117,112, 95, 99, 97, -108,108, 98, 97, 99,107,115, 0, 2, 0, 0, 0, 10,109,111,117,115,101,109,111, -118,101, 0, 2, 0, 0, 0, 13, 77, 79, 85, 83, 69, 77, 79, 86, 69, 95, 67, 66, - 0, 2, 0, 0, 0, 13,109,111,117,115,101,109,111,118,101, 95, 99, 98, 0, 2, - 0, 0, 0, 21,105,117,112, 95,118, 97,108, 95,109,111,117,115,101,109,111,118, -101, 95, 99, 98, 0, 2, 0, 0, 0, 12, 98,117,116,116,111,110,112,114,101,115, -115, 0, 2, 0, 0, 0, 16, 66, 85, 84, 84, 79, 78, 95, 80, 82, 69, 83, 83, 95, - 67, 66, 0, 2, 0, 0, 0, 24,105,117,112, 95,118, 97,108, 95, 98,117,116,116, -111,110, 95,112,114,101,115,115, 95, 99, 98, 0, 2, 0, 0, 0, 14, 98,117,116, -116,111,110,114,101,108,101, 97,115,101, 0, 2, 0, 0, 0, 18, 66, 85, 84, 84, - 79, 78, 95, 82, 69, 76, 69, 65, 83, 69, 95, 67, 66, 0, 2, 0, 0, 0, 26,105, -117,112, 95,118, 97,108, 95, 98,117,116,116,111,110, 95,114,101,108,101, 97,115, -101, 95, 99, 98, 0, 2, 0, 0, 0, 16, 98,117,116,116,111,110, 95,112,114,101, -115,115, 95, 99, 98, 0, 2, 0, 0, 0, 18, 98,117,116,116,111,110, 95,114,101, -108,101, 97,115,101, 95, 99, 98, 0, -}; - - lua_dobuffer((char*)B1,sizeof(B1),"../obj/iupluacontrols3/luaval_le64w.lo"); -} diff --git a/iup/srclua3/split.lua b/iup/srclua3/split.lua new file mode 100644 index 0000000..6deaae3 --- /dev/null +++ b/iup/srclua3/split.lua @@ -0,0 +1,10 @@ +IUPSPLIT = {parent = WIDGET} + +function IUPSPLIT:CreateIUPelement (obj) + return iupCreateSplit(obj[1], obj[2]) +end + +function iupsplit (o) + return IUPSPLIT:Constructor (o) +end +iup.split = iupplit diff --git a/iup/srclua3/tree.lua b/iup/srclua3/tree.lua index 659afdb..bf53bca 100755 --- a/iup/srclua3/tree.lua +++ b/iup/srclua3/tree.lua @@ -47,6 +47,7 @@ iup.TreeSetValue = TreeSetValue iup_callbacks.selection = {"SELECTION_CB", iup_tree_selection_cb} iup_callbacks.multiselection = {"MULTISELECTION_CB", iup_tree_multiselection_cb} +iup_callbacks.multiunselection = {"MULTIUNSELECTION_CB", iup_tree_multiunselection_cb} iup_callbacks.branchopen = {"BRANCHOPEN_CB", iup_tree_branchopen_cb} iup_callbacks.branchclose = {"BRANCHCLOSE_CB", iup_tree_branchclose_cb} iup_callbacks.executeleaf = {"EXECUTELEAF_CB", iup_tree_executeleaf_cb} @@ -58,6 +59,7 @@ iup_callbacks.dragdrop = {"DRAGDROP_CB", iup_tree_dragdrop_cb} iup_callbacks.selection_cb = iup_callbacks.selection iup_callbacks.multiselection_cb = iup_callbacks.multiselection +iup_callbacks.multiunselection_cb = iup_callbacks.multiunselection iup_callbacks.branchopen_cb = iup_callbacks.branchopen iup_callbacks.branchclose_cb = iup_callbacks.branchclose iup_callbacks.executeleaf_cb = iup_callbacks.executeleaf diff --git a/iup/srclua5/Makefile b/iup/srclua5/Makefile index 3942e79..1189d32 100755 --- a/iup/srclua5/Makefile +++ b/iup/srclua5/Makefile @@ -3,22 +3,22 @@ do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim iupluaimglib iuplua: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak iupluacd: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd iupluacontrols: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols iuplua_pplot: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot iupluagl: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl iupluaim: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim iupluaimglib: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupimglib + @$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupimglib diff --git a/iup/srclua5/button.lua b/iup/srclua5/button.lua index 946a05e..fc57b1a 100755 --- a/iup/srclua5/button.lua +++ b/iup/srclua5/button.lua @@ -3,16 +3,16 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "button", - parent = WIDGET, + parent = iup.WIDGET, creation = "S-", callback = { action = "", } } -function ctrl.createElement(class, arg) - return Button(arg.title) +function ctrl.createElement(class, param) + return iup.Button(param.title) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/canvas.lua b/iup/srclua5/canvas.lua index 562d671..101c4f4 100755 --- a/iup/srclua5/canvas.lua +++ b/iup/srclua5/canvas.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "canvas", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", callback = { action = "ff", @@ -21,9 +21,9 @@ local ctrl = { } } -function ctrl.createElement(class, arg) - return Canvas() +function ctrl.createElement(class, param) + return iup.Canvas() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/cbox.lua b/iup/srclua5/cbox.lua index 3533970..81ba9be 100755 --- a/iup/srclua5/cbox.lua +++ b/iup/srclua5/cbox.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "cbox", - parent = WIDGET, + parent = iup.WIDGET, creation = "v", callback = {}, funcname = "Cboxv", @@ -20,9 +20,9 @@ static int Cboxv(lua_State *L) ]], } -function ctrl.createElement(class, arg) - return Cboxv(arg) +function ctrl.createElement(class, param) + return iup.Cboxv(param) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/cells.lua b/iup/srclua5/cells.lua index 9c914f2..0355b17 100755 --- a/iup/srclua5/cells.lua +++ b/iup/srclua5/cells.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "cells", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { mouseclick_cb = "nnnnnns", @@ -24,9 +24,9 @@ function ctrl.redraw(handle) handle.repaint = "YES" end -function ctrl.createElement(class, arg) - return Cells() +function ctrl.createElement(class, param) + return iup.Cells() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/clipboard.lua b/iup/srclua5/clipboard.lua index e60b8bd..663215b 100755 --- a/iup/srclua5/clipboard.lua +++ b/iup/srclua5/clipboard.lua @@ -3,15 +3,15 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "clipboard", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { }, } -function ctrl.createElement(class, arg) - return Clipboard() +function ctrl.createElement(class, param) + return iup.Clipboard() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/clua/button.clua b/iup/srclua5/clua/button.clua index bd286bc..109f451 100644 --- a/iup/srclua5/clua/button.clua +++ b/iup/srclua5/clua/button.clua @@ -13,19 +13,20 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, - 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, - 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, 0x0a, + 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, + 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, + 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "button.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/canvas.clua b/iup/srclua5/clua/canvas.clua index a8247cc..e328744 100644 --- a/iup/srclua5/clua/canvas.clua +++ b/iup/srclua5/clua/canvas.clua @@ -13,35 +13,35 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x3d, 0x20, 0x22, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, - 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, - 0x61, 0x76, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, - 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, - 0x22, 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x65, 0x79, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x77, 0x6f, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, - 0x22, 0x66, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x64, 0x69, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, - 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, - 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x61, - 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x22, 0x29, 0x0a, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, + 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x62, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, + 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, + 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6b, + 0x65, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x6f, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, + 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x63, + 0x62, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x64, 0x69, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x5f, 0x63, + 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "canvas.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/cbox.clua b/iup/srclua5/clua/cbox.clua index 8dc38dc..31f0a1d 100644 --- a/iup/srclua5/clua/cbox.clua +++ b/iup/srclua5/clua/cbox.clua @@ -13,33 +13,34 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, - 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, - 0x22, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x6c, 0x75, 0x61, 0x5f, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x49, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, 0x20, - 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x68, 0x20, 0x3d, 0x20, - 0x49, 0x75, 0x70, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, - 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, - 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, - 0x65, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x5d, 0x5d, 0x2c, 0x0a, 0x7d, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, + 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, + 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, + 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, + 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x43, 0x62, 0x6f, 0x78, 0x76, 0x28, 0x68, 0x6c, 0x69, + 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, + 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x5d, 0x5d, + 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, + 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x62, 0x6f, 0x78, + 0x76, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "cbox.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/cells.clua b/iup/srclua5/clua/cells.clua index 60afca4..e843234 100644 --- a/iup/srclua5/clua/cells.clua +++ b/iup/srclua5/clua/cells.clua @@ -13,40 +13,41 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x63, 0x6c, 0x69, 0x63, 0x6b, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, - 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, - 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x63, 0x6f, 0x6c, 0x73, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x73, 0x70, - 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x76, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77, 0x28, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, - 0x72, 0x65, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x59, 0x45, 0x53, 0x22, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, - 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x28, 0x29, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, - 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, - 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, - 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, + 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x2d, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, + 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, + 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x63, + 0x6f, 0x6c, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x68, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x72, 0x65, 0x64, 0x72, 0x61, + 0x77, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x59, + 0x45, 0x53, 0x22, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "cells.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/clipboard.clua b/iup/srclua5/clua/clipboard.clua index 5941f1b..1de67fb 100644 --- a/iup/srclua5/clua/clipboard.clua +++ b/iup/srclua5/clua/clipboard.clua @@ -14,18 +14,19 @@ static const unsigned char B1[] = { 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6c, 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, - 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x6c, 0x69, 0x70, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, - 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x65, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x43, 0x6c, 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x28, 0x29, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, + 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, + 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, + 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "clipboard.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/colorbar.clua b/iup/srclua5/clua/colorbar.clua index c789780..ddc4cd0 100644 --- a/iup/srclua5/clua/colorbar.clua +++ b/iup/srclua5/clua/colorbar.clua @@ -14,29 +14,31 @@ static const unsigned char B1[] = { 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, - 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x22, - 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, - 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x2c, - 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, - 0x59, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, - 0x20, 0x3d, 0x20, 0x2d, 0x32, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61, - 0x72, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, - 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, + 0x7b, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x63, 0x62, 0x20, + 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x20, 0x3d, 0x20, 0x2d, + 0x32, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, + 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x62, 0x61, 0x72, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, + 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, + 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "colorbar.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/colorbrowser.clua b/iup/srclua5/clua/colorbrowser.clua index 21216af..775f5fc 100644 --- a/iup/srclua5/clua/colorbrowser.clua +++ b/iup/srclua5/clua/colorbrowser.clua @@ -14,25 +14,26 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x63, - 0x63, 0x63, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x63, 0x63, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, - 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, - 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x28, 0x61, 0x72, 0x67, - 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, - 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x5f, 0x63, 0x62, 0x20, + 0x3d, 0x20, 0x22, 0x63, 0x63, 0x63, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x63, 0x63, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, + 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x42, + 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, + 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, + 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "colorbrowser.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/colordlg.clua b/iup/srclua5/clua/colordlg.clua index 7282120..4193ff2 100644 --- a/iup/srclua5/clua/colordlg.clua +++ b/iup/srclua5/clua/colordlg.clua @@ -14,26 +14,27 @@ static const unsigned char B1[] = { 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x64, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, - 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x6c, 0x67, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, - 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, - 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, - 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, + 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, + 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "colordlg.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/constants.clua b/iup/srclua5/clua/constants.clua index 1129521..92a9e7f 100644 --- a/iup/srclua5/clua/constants.clua +++ b/iup/srclua5/clua/constants.clua @@ -16,10 +16,11 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x20, 0x20, 0x20, 0x3d, 0x20, 0x20, 0x31, 0x0a, 0x4e, 0x4f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, - 0x3d, 0x20, 0x20, 0x30, 0x0a, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x20, 0x20, 0x3d, 0x20, 0x2d, - 0x31, 0x0a, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x0a, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x20, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x4e, 0x4f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x20, 0x3d, 0x20, 0x20, 0x30, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x20, 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, @@ -32,9 +33,10 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x0a, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x31, - 0x0a, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x32, 0x0a, 0x43, - 0x4c, 0x4f, 0x53, 0x45, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x33, 0x0a, 0x43, 0x4f, 0x4e, + 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x2d, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, + 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x32, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4c, 0x4f, 0x53, 0x45, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x2d, 0x33, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x45, 0x20, 0x3d, 0x20, 0x2d, 0x34, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, @@ -47,15 +49,17 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, 0x4c, 0x45, 0x46, 0x54, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x34, - 0x0a, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, - 0x36, 0x35, 0x35, 0x33, 0x33, 0x0a, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x50, 0x4f, 0x53, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x32, 0x0a, 0x43, 0x55, 0x52, 0x52, 0x45, - 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x31, 0x0a, - 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x41, 0x52, 0x45, 0x4e, 0x54, 0x20, 0x3d, 0x20, 0x36, - 0x35, 0x35, 0x33, 0x30, 0x0a, 0x54, 0x4f, 0x50, 0x20, 0x3d, 0x20, 0x4c, 0x45, 0x46, 0x54, 0x0a, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x45, 0x4e, 0x54, 0x45, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x35, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x34, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, + 0x33, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x50, 0x4f, 0x53, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x32, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, + 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x36, 0x35, + 0x35, 0x33, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x41, + 0x52, 0x45, 0x4e, 0x54, 0x20, 0x3d, 0x20, 0x36, 0x35, 0x35, 0x33, 0x30, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x54, 0x4f, 0x50, 0x20, 0x3d, 0x20, 0x4c, 0x45, 0x46, 0x54, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x20, 0x3d, 0x20, 0x52, 0x49, 0x47, 0x48, 0x54, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, @@ -67,18 +71,21 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x53, 0x42, 0x55, 0x50, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x44, 0x4e, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x31, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x55, 0x50, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x32, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x44, 0x4e, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x33, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x4f, 0x53, 0x56, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x34, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x56, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x35, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x36, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x37, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x4c, 0x45, 0x46, 0x54, - 0x20, 0x20, 0x3d, 0x20, 0x38, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x47, 0x52, 0x49, 0x47, 0x48, - 0x54, 0x20, 0x3d, 0x20, 0x39, 0x20, 0x20, 0x0a, 0x53, 0x42, 0x50, 0x4f, 0x53, 0x48, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x20, 0x0a, 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x48, 0x20, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x55, 0x50, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x42, 0x44, 0x4e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x20, 0x20, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x47, 0x55, 0x50, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x32, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x47, 0x44, 0x4e, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x33, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x4f, + 0x53, 0x56, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x34, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x56, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x35, 0x20, 0x20, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x36, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x37, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x47, + 0x4c, 0x45, 0x46, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x38, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x42, 0x50, 0x47, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x3d, 0x20, 0x39, 0x20, 0x20, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x50, 0x4f, 0x53, 0x48, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x31, 0x30, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x42, 0x44, 0x52, 0x41, 0x47, 0x48, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x31, 0x20, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, @@ -91,53 +98,57 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x53, 0x48, 0x4f, 0x57, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, - 0x30, 0x0a, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x4d, - 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x32, 0x0a, 0x4d, 0x41, 0x58, 0x49, - 0x4d, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x33, 0x0a, 0x48, 0x49, 0x44, 0x45, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x34, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x48, 0x4f, 0x57, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, + 0x45, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x49, 0x4e, 0x49, 0x4d, + 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x32, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x58, 0x49, + 0x4d, 0x49, 0x5a, 0x45, 0x20, 0x3d, 0x20, 0x33, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x48, 0x49, 0x44, + 0x45, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x34, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x5f, 0x43, - 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x42, 0x55, 0x54, 0x54, + 0x4f, 0x4e, 0x5f, 0x43, 0x42, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x31, 0x20, 0x3d, - 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x31, 0x27, - 0x29, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x32, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x32, 0x27, 0x29, 0x0a, 0x42, 0x55, 0x54, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, + 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x31, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x31, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, + 0x54, 0x54, 0x4f, 0x4e, 0x32, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, + 0x79, 0x74, 0x65, 0x28, 0x27, 0x32, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x33, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, - 0x74, 0x65, 0x28, 0x27, 0x33, 0x27, 0x29, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x34, 0x20, - 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x34, - 0x27, 0x29, 0x0a, 0x42, 0x55, 0x54, 0x54, 0x4f, 0x4e, 0x35, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x28, 0x27, 0x35, 0x27, 0x29, 0x0a, 0x0a, 0x2d, + 0x74, 0x65, 0x28, 0x27, 0x33, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, 0x54, 0x54, + 0x4f, 0x4e, 0x34, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, + 0x65, 0x28, 0x27, 0x34, 0x27, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x55, 0x54, 0x54, 0x4f, + 0x4e, 0x35, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, + 0x28, 0x27, 0x35, 0x27, 0x29, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, - 0x50, 0x72, 0x65, 0x2d, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x4d, 0x61, 0x73, 0x6b, - 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x50, 0x72, 0x65, 0x2d, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x4d, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x46, 0x4c, 0x4f, 0x41, - 0x54, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64, - 0x2b, 0x2f, 0x2e, 0x3f, 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x22, 0x0a, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64, 0x2b, 0x2f, 0x2e, 0x3f, + 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x22, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x55, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x28, 0x2f, 0x64, 0x2b, 0x2f, 0x2e, 0x3f, 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, - 0x29, 0x22, 0x0a, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x20, 0x20, - 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64, 0x2b, 0x2f, 0x2e, 0x3f, - 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x28, 0x5b, 0x65, 0x45, 0x5d, 0x5b, - 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x29, 0x3f, 0x22, 0x0a, 0x4d, 0x41, 0x53, 0x4b, - 0x5f, 0x49, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, - 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x22, 0x0a, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x55, 0x49, 0x4e, 0x54, - 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x2f, 0x64, 0x2b, 0x22, 0x0a, + 0x29, 0x22, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x45, 0x46, 0x4c, 0x4f, + 0x41, 0x54, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x28, 0x2f, 0x64, + 0x2b, 0x2f, 0x2e, 0x3f, 0x2f, 0x64, 0x2a, 0x7c, 0x2f, 0x2e, 0x2f, 0x64, 0x2b, 0x29, 0x28, 0x5b, + 0x65, 0x45, 0x5d, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x29, 0x3f, 0x22, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x49, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x2b, 0x2f, 0x2d, 0x5d, 0x3f, 0x2f, 0x64, 0x2b, 0x22, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x4d, 0x41, 0x53, 0x4b, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x2f, 0x64, 0x2b, 0x22, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "constants.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/dial.clua b/iup/srclua5/clua/dial.clua index 71504f4..72d1c35 100644 --- a/iup/srclua5/clua/dial.clua +++ b/iup/srclua5/clua/dial.clua @@ -13,33 +13,34 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, - 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, - 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, - 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x0a, 0x2d, 0x2d, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, - 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x0a, 0x20, 0x20, - 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, - 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, - 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x69, 0x61, 0x6c, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, - 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, - 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, - 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x76, 0x61, 0x6c, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20, + 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x0a, 0x2d, 0x2d, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x2d, + 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x0a, + 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x20, + 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x61, + 0x6c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, + 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, + 0x69, 0x61, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, + 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, + 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "dial.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/dialog.clua b/iup/srclua5/clua/dialog.clua index 273a74b..1af9ef1 100644 --- a/iup/srclua5/clua/dialog.clua +++ b/iup/srclua5/clua/dialog.clua @@ -13,39 +13,42 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x70, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x6f, - 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x6b, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, - 0x22, 0x73, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, - 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, - 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x68, - 0x6f, 0x77, 0x78, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, - 0x79, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x68, 0x6f, 0x77, - 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x70, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x63, 0x62, + 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x72, 0x61, 0x79, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, + 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x44, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, + 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, + 0x72, 0x6c, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x78, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "dialog.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/filedlg.clua b/iup/srclua5/clua/filedlg.clua index cc2b7c9..b145a80 100644 --- a/iup/srclua5/clua/filedlg.clua +++ b/iup/srclua5/clua/filedlg.clua @@ -13,28 +13,30 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x64, 0x6c, 0x67, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, - 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, - 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x46, 0x69, 0x6c, - 0x65, 0x44, 0x6c, 0x67, 0x22, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, - 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, - 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, + 0x22, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6c, 0x67, 0x22, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, + 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, + 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, + 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, + 0x0a, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "filedlg.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/fill.clua b/iup/srclua5/clua/fill.clua index 5941d4b..872b85a 100644 --- a/iup/srclua5/clua/fill.clua +++ b/iup/srclua5/clua/fill.clua @@ -13,17 +13,18 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, - 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, - 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, 0x69, 0x6c, 0x6c, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x46, 0x69, 0x6c, 0x6c, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "fill.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/fontdlg.clua b/iup/srclua5/clua/fontdlg.clua index f902d37..920ef10 100644 --- a/iup/srclua5/clua/fontdlg.clua +++ b/iup/srclua5/clua/fontdlg.clua @@ -13,27 +13,28 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x6f, 0x6e, 0x74, 0x64, 0x6c, 0x67, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, - 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x3d, 0x20, 0x22, 0x46, 0x6f, 0x6e, 0x74, 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, - 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, - 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, - 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, - 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, 0x6f, 0x6e, 0x74, - 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, - 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x46, 0x6f, 0x6e, 0x74, 0x44, 0x6c, 0x67, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, + 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x46, 0x6f, + 0x6e, 0x74, 0x44, 0x6c, 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, + 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "fontdlg.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/frame.clua b/iup/srclua5/clua/frame.clua index 0ae9e52..7d238ab 100644 --- a/iup/srclua5/clua/frame.clua +++ b/iup/srclua5/clua/frame.clua @@ -13,18 +13,19 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, - 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x28, 0x61, - 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, + 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, + 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, + 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, + 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "frame.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/gauge.clua b/iup/srclua5/clua/gauge.clua index 3f25c09..3821bf1 100644 --- a/iup/srclua5/clua/gauge.clua +++ b/iup/srclua5/clua/gauge.clua @@ -13,20 +13,21 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x67, 0x61, 0x75, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, - 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, - 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, - 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, - 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x61, 0x75, 0x67, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2e, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, - 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, - 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, + 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x47, 0x61, 0x75, 0x67, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "gauge.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/glcanvas.clua b/iup/srclua5/clua/glcanvas.clua index 3ed6b8c..cb86316 100644 --- a/iup/srclua5/clua/glcanvas.clua +++ b/iup/srclua5/clua/glcanvas.clua @@ -14,49 +14,48 @@ static const unsigned char B1[] = { 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x67, 0x6c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, - 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x67, 0x6c, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, - 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, - 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, - 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x6c, 0x75, - 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x20, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x75, - 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x49, - 0x75, 0x70, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x28, 0x29, - 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x67, - 0x6c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, - 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, - 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, - 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x22, - 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, - 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, - 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x35, 0x31, 0x22, 0x20, - 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, - 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x35, 0x31, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, - 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, - 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x47, 0x4c, 0x43, 0x61, + 0x6e, 0x76, 0x61, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x67, 0x6c, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, + 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, + 0x64, 0x65, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, + 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x28, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, + 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x4f, 0x70, + 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, + 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, + 0x70, 0x67, 0x6c, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, + 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, + 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, + 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, + 0x61, 0x67, 0x6c, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, + 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, + 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, + 0x75, 0x70, 0x6c, 0x75, 0x61, 0x67, 0x6c, 0x35, 0x31, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, + 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, + 0x67, 0x6c, 0x35, 0x31, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, + 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, + 0x70, 0x67, 0x6c, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, + 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x47, 0x4c, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, + 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, + 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, + 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "glcanvas.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/hbox.clua b/iup/srclua5/clua/hbox.clua index e1bafd5..3a38586 100644 --- a/iup/srclua5/clua/hbox.clua +++ b/iup/srclua5/clua/hbox.clua @@ -13,19 +13,20 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x68, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x48, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, - 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c, + 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, + 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x48, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, + 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; diff --git a/iup/srclua5/clua/image.clua b/iup/srclua5/clua/image.clua index 899327a..c22bdb9 100644 --- a/iup/srclua5/clua/image.clua +++ b/iup/srclua5/clua/image.clua @@ -13,129 +13,131 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x28, 0x6c, - 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x63, 0x2c, 0x20, 0x6e, - 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, - 0x6c, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2a, 0x20, 0x69, - 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x73, 0x74, 0x72, 0x5b, 0x32, 0x30, - 0x5d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x69, 0x73, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x2c, 0x20, 0x6a, 0x3b, 0x0a, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2a, - 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67, - 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x6f, - 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, - 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, - 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, - 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x31, 0x29, 0x3b, 0x20, - 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, - 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, - 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x29, 0x20, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x20, - 0x28, 0x68, 0x2a, 0x77, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x28, 0x69, 0x3d, 0x31, 0x3b, 0x20, 0x69, 0x3c, 0x3d, 0x68, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, - 0x5f, 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x69, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x6a, 0x3d, 0x31, 0x3b, 0x20, 0x6a, 0x3c, 0x3d, - 0x77, 0x3b, 0x20, 0x6a, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, - 0x3d, 0x20, 0x28, 0x69, 0x2d, 0x31, 0x29, 0x2a, 0x77, 0x2b, 0x28, 0x6a, 0x2d, 0x31, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, - 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x6a, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x5b, 0x69, 0x64, 0x78, 0x5d, 0x20, - 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, - 0x29, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, - 0x20, 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, - 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, - 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, - 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, 0x68, 0x2c, 0x70, 0x69, 0x78, 0x65, 0x6c, - 0x73, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, - 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67, - 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, - 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6d, 0x5f, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, 0x35, 0x3f, 0x20, 0x32, 0x35, 0x35, 0x3a, - 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, 0x20, 0x63, 0x3c, 0x3d, 0x6e, 0x75, 0x6d, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x63, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x61, - 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x73, 0x74, - 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, 0x2c, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x6c, 0x75, - 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x4c, 0x2c, 0x2d, 0x31, 0x29, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, - 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, - 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x20, - 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, - 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, - 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, - 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x20, 0x3d, - 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, - 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x65, - 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, - 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x34, 0x29, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6e, - 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, 0x36, 0x3f, 0x20, 0x32, - 0x35, 0x36, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, 0x20, 0x63, 0x3c, 0x3d, - 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x63, 0x2b, 0x2b, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, - 0x5f, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, 0x34, 0x2c, 0x20, 0x63, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, - 0x28, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, 0x63, 0x2d, 0x31, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, 0x2c, 0x20, 0x73, 0x74, - 0x72, 0x2c, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, - 0x4c, 0x2c, 0x2d, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, - 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, - 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, - 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, - 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, - 0x7d, 0x20, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, - 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, - 0x73, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, - 0x20, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, - 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, + 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, + 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x20, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x20, 0x4c, + 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, + 0x63, 0x2c, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x0a, 0x20, + 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, + 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x2a, 0x20, 0x69, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x73, 0x74, + 0x72, 0x5b, 0x32, 0x30, 0x5d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6c, 0x75, + 0x61, 0x5f, 0x69, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x29, + 0x0a, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x2c, 0x20, + 0x6a, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, + 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x20, 0x20, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, + 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x20, + 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x2d, + 0x31, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, + 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x29, 0x20, 0x6d, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x20, 0x28, 0x68, 0x2a, 0x77, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x3d, 0x31, 0x3b, 0x20, 0x69, 0x3c, 0x3d, 0x68, 0x3b, 0x20, + 0x69, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, + 0x4c, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, + 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x6a, 0x3d, 0x31, 0x3b, + 0x20, 0x6a, 0x3c, 0x3d, 0x77, 0x3b, 0x20, 0x6a, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, + 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x69, 0x2d, 0x31, 0x29, 0x2a, 0x77, 0x2b, 0x28, 0x6a, + 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, + 0x5f, 0x70, 0x75, 0x73, 0x68, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x6a, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x67, + 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x32, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x5b, 0x69, + 0x64, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x29, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x28, 0x4c, 0x2c, 0x20, 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x20, + 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, 0x68, 0x2c, 0x70, + 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, + 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, + 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, 0x20, + 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, 0x35, 0x3f, 0x20, + 0x32, 0x35, 0x35, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, 0x20, 0x63, 0x3c, + 0x3d, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, 0x63, 0x2b, 0x2b, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, + 0x61, 0x5f, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x2c, 0x20, + 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x74, + 0x66, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, 0x63, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, 0x2c, 0x20, 0x73, 0x74, 0x72, + 0x2c, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x4c, + 0x2c, 0x2d, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x75, 0x61, + 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x7d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, + 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, + 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x77, 0x2c, + 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x20, 0x3d, + 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x67, 0x65, 0x74, 0x6e, 0x28, 0x4c, 0x2c, 0x20, 0x34, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, + 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3e, 0x32, 0x35, + 0x36, 0x3f, 0x20, 0x32, 0x35, 0x36, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x31, 0x3b, + 0x20, 0x63, 0x3c, 0x3d, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x3b, 0x20, + 0x63, 0x2b, 0x2b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x69, 0x28, 0x4c, 0x2c, 0x20, + 0x34, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x66, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x22, 0x25, 0x64, 0x22, 0x2c, 0x20, + 0x63, 0x2d, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, 0x70, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x69, 0x68, + 0x2c, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x4c, 0x2c, 0x2d, 0x31, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6f, 0x70, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, + 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, + 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, + 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, + 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x20, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x20, 0x74, + 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, + 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x28, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, - 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, + 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "image.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/imagergb.clua b/iup/srclua5/clua/imagergb.clua index 0bf1b63..cdf18b7 100644 --- a/iup/srclua5/clua/imagergb.clua +++ b/iup/srclua5/clua/imagergb.clua @@ -14,42 +14,43 @@ static const unsigned char B1[] = { 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x72, 0x67, 0x62, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, - 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, - 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x47, 0x42, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, - 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, - 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, - 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, - 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x2a, 0x33, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, - 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x28, 0x77, 0x2c, 0x20, 0x68, 0x2c, - 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, - 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, - 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, - 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, - 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, - 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, - 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, - 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x20, 0x61, 0x72, - 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, - 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, + 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, + 0x22, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, + 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x52, 0x47, 0x42, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, + 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, + 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, + 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, + 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, + 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x2a, 0x33, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x69, 0x68, + 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x28, 0x77, + 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, + 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, + 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, + 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, + 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "imagergb.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/imagergba.clua b/iup/srclua5/clua/imagergba.clua index 5f84ea8..301a404 100644 --- a/iup/srclua5/clua/imagergba.clua +++ b/iup/srclua5/clua/imagergba.clua @@ -14,42 +14,43 @@ static const unsigned char B1[] = { 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x72, 0x67, 0x62, 0x61, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x2d, 0x2d, - 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x47, 0x42, 0x41, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, - 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x6c, - 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, - 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x6c, 0x75, - 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, 0x4c, 0x2c, 0x20, 0x32, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, - 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, - 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x61, - 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, 0x2a, 0x68, 0x2a, 0x34, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x69, 0x68, - 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, - 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, - 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, - 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, - 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, 0x61, 0x72, 0x67, - 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, + 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x3d, 0x20, 0x22, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x22, 0x2c, 0x20, 0x0a, + 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, + 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, + 0x5b, 0x5b, 0x20, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x77, + 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, + 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x68, 0x20, + 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x4c, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x74, 0x28, + 0x4c, 0x2c, 0x20, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x20, 0x3d, + 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x75, 0x63, 0x68, + 0x61, 0x72, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x33, 0x2c, 0x20, 0x77, + 0x2a, 0x68, 0x2a, 0x34, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x20, 0x2a, 0x69, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x47, 0x42, 0x41, 0x28, 0x77, 0x2c, 0x20, 0x68, 0x2c, 0x20, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x69, 0x68, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x20, 0x0a, 0x5d, + 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, + 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x52, 0x47, 0x42, 0x41, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x29, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, + 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "imagergba.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/item.clua b/iup/srclua5/clua/item.clua index e1040b8..ac02b51 100644 --- a/iup/srclua5/clua/item.clua +++ b/iup/srclua5/clua/item.clua @@ -13,21 +13,22 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x2d, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, - 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, - 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, - 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x65, 0x6d, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, - 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, - 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x69, 0x67, 0x68, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "item.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/iuplua.clua b/iup/srclua5/clua/iuplua.clua index 7ed6181..90bf48f 100644 --- a/iup/srclua5/clua/iuplua.clua +++ b/iup/srclua5/clua/iuplua.clua @@ -15,21 +15,22 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x63, - 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, - 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, - 0x3d, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, - 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, - 0x6e, 0x63, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x20, 0x3d, 0x20, 0x7b, + 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x43, 0x61, 0x6c, 0x6c, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, + 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x20, 0x2d, 0x2d, + 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x20, + 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x0a, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x74, + 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x28, 0x75, 0x6e, 0x70, 0x61, 0x63, + 0x6b, 0x28, 0x61, 0x72, 0x67, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x20, 0x3d, 0x20, @@ -41,14 +42,15 @@ static const unsigned char B1[] = { 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x28, - 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, - 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x20, - 0x3d, 0x20, 0x7b, 0x7d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, + 0x65, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x20, 0x3d, 0x20, 0x7b, 0x7d, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x62, 0x20, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x62, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x5d, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, @@ -78,63 +80,64 @@ static const unsigned char B1[] = { 0x72, 0x65, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x69, - 0x75, 0x70, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x22, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, - 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x28, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x49, 0x4e, 0x44, - 0x45, 0x58, 0x5d, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, - 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x74, 0x68, - 0x65, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, - 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, - 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, - 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x69, 0x68, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x68, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x68, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x69, 0x20, - 0x3d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x76, 0x20, 0x3d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x57, 0x69, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, + 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x65, + 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x73, 0x5b, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5d, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, + 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x5d, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x29, 0x7e, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x20, 0x65, 0x6e, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x29, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x6f, + 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, + 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x68, 0x20, 0x3d, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x68, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x68, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x69, 0x20, 0x3d, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x76, 0x20, 0x3d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x7e, 0x3d, 0x22, @@ -148,33 +151,34 @@ static const unsigned char B1[] = { 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x5b, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x28, 0x63, 0x62, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, - 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x20, 0x3d, 0x20, 0x63, 0x62, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, 0x20, 0x74, 0x68, 0x65, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, - 0x20, 0x63, 0x62, 0x5b, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, - 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x20, 0x43, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, - 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, - 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, - 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, - 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, - 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x61, 0x6c, 0x20, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5b, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x62, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, + 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6e, + 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x63, 0x62, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x29, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x63, 0x62, 0x5b, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, + 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x2d, 0x2d, + 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, + 0x65, 0x2d, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x43, 0x20, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, + 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, + 0x61, 0x20, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x2d, @@ -186,306 +190,324 @@ static const unsigned char B1[] = { 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x76, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x69, 0x6c, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x2c, - 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, - 0x6c, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, - 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x4c, - 0x75, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, - 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, - 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, - 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x69, 0x75, 0x70, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, - 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, - 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, - 0x6e, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x69, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x6f, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x65, 0x71, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x0a, - 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x0a, 0x2d, 0x2d, 0x20, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x0a, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, - 0x73, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x76, 0x29, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, - 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x79, 0x20, 0x72, 0x61, 0x64, 0x69, - 0x6f, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x7a, 0x62, 0x6f, 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x28, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x61, - 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x5f, 0x49, 0x55, 0x50, - 0x4c, 0x55, 0x41, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x28, 0x25, 0x73, 0x29, 0x22, 0x2c, 0x20, 0x74, - 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x76, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, - 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x49, 0x4e, + 0x44, 0x45, 0x58, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, + 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x20, + 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x69, 0x74, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, + 0x6c, 0x73, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x73, + 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x4c, 0x75, 0x61, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, + 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x67, 0x65, + 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x6e, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x2c, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x2c, 0x20, + 0x22, 0x5f, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x28, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x22, 0x2c, 0x20, 0x22, 0x5f, 0x5f, 0x65, 0x71, 0x22, 0x2c, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x29, + 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x20, + 0x69, 0x6e, 0x20, 0x43, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x76, + 0x29, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, + 0x62, 0x79, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x7a, 0x62, 0x6f, + 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x76, 0x29, 0x0a, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x5f, 0x49, 0x55, 0x50, 0x4c, 0x55, 0x41, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x28, 0x25, 0x73, 0x29, 0x22, 0x2c, 0x20, 0x74, 0x6f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x76, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, + 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, + 0x65, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x65, 0x6e, + 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x20, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x5b, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x6e, 0x69, 0x63, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x3a, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x74, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x29, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x6e, 0x69, 0x63, + 0x6b, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x6f, 0x72, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x47, - 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, - 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x5b, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, - 0x6d, 0x65, 0x29, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x3d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, - 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, - 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x65, 0x6e, 0x64, 0x0a, + 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x5b, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x28, 0x74, 0x79, 0x70, 0x65, + 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, + 0x54, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x3d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x20, 0x28, 0x74, 0x6f, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x29, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, - 0x2d, 0x2d, 0x20, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, - 0x28, 0x74, 0x6f, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x29, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x57, 0x49, 0x44, - 0x47, 0x45, 0x54, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x28, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x53, 0x68, 0x6f, 0x77, 0x28, 0x6f, + 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x20, 0x3d, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, + 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x28, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x28, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, + 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x68, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x48, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x2e, 0x68, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, - 0x20, 0x20, 0x48, 0x69, 0x64, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x4d, 0x61, 0x70, 0x28, 0x6f, 0x62, 0x6a, + 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x61, 0x70, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x61, 0x72, - 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, - 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, - 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x2c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x3a, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, - 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x2c, 0x76, 0x20, 0x69, - 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x61, 0x72, 0x67, 0x29, 0x20, 0x64, 0x6f, 0x20, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x69, 0x29, 0x20, - 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x76, 0x29, 0x20, 0x3d, - 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x73, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x69, - 0x75, 0x70, 0x74, 0x65, 0x78, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x6e, 0x65, 0x6f, 0x73, 0x6c, 0x79, - 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x20, 0x69, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x72, 0x61, 0x77, 0x73, 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, - 0x20, 0x69, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, - 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x69, 0x65, - 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x0a, 0x2d, 0x2d, 0x20, 0x4d, - 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6e, - 0x65, 0x77, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x20, 0x22, 0x69, - 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, - 0x42, 0x6f, 0x78, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x69, 0x6e, 0x68, 0x65, 0x72, - 0x69, 0x74, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x29, - 0x20, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x0a, 0x0a, 0x42, 0x4f, 0x58, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x4f, 0x58, 0x2e, 0x73, 0x65, 0x74, 0x41, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, + 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, + 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x57, 0x69, + 0x64, 0x67, 0x65, 0x74, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3a, 0x73, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x28, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, - 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x61, 0x72, - 0x67, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6e, - 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, - 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, - 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, - 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, - 0x29, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, - 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x42, 0x4f, 0x58, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, - 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, - 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x65, 0x72, 0x72, 0x2c, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x72, 0x72, 0x20, 0x3d, 0x20, 0x65, - 0x72, 0x72, 0x2e, 0x2e, 0x28, 0x74, 0x72, 0x61, 0x63, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f, - 0x72, 0x20, 0x22, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x29, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x2e, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, - 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x74, 0x20, - 0x3d, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, - 0x4f, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x36, 0x30, 0x22, 0x2c, 0x20, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, - 0x6c, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, - 0x6d, 0x6c, 0x20, 0x3d, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x65, - 0x78, 0x70, 0x61, 0x6e, 0x64, 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x61, - 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3d, 0x65, 0x72, 0x72, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x33, 0x30, - 0x30, 0x78, 0x31, 0x35, 0x30, 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x20, 0x76, 0x62, 0x20, 0x3d, 0x20, 0x76, 0x62, 0x6f, 0x78, 0x7b, 0x6d, 0x6c, 0x2c, 0x20, - 0x62, 0x74, 0x3b, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x41, - 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x22, 0x2c, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3d, - 0x22, 0x31, 0x30, 0x78, 0x31, 0x30, 0x22, 0x2c, 0x20, 0x67, 0x61, 0x70, 0x3d, 0x22, 0x31, 0x30, - 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x67, 0x20, - 0x3d, 0x20, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x7b, 0x76, 0x62, 0x3b, 0x20, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x3d, 0x22, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x73, 0x63, 0x3d, 0x62, 0x74, - 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3d, 0x62, 0x74, - 0x2c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x3d, 0x62, 0x74, 0x7d, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6d, 0x6c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x67, 0x3a, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, - 0x2c, 0x20, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x67, - 0x3a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x2c, + 0x76, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x29, 0x20, 0x64, 0x6f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x28, 0x69, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x28, 0x76, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, + 0x20, 0x73, 0x65, 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x72, 0x20, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x28, 0x73, 0x75, 0x63, + 0x68, 0x20, 0x61, 0x73, 0x20, 0x69, 0x75, 0x70, 0x74, 0x65, 0x78, 0x74, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, + 0x6e, 0x65, 0x6f, 0x73, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x20, 0x69, + 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x77, 0x73, 0x65, 0x74, 0x28, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x69, 0x2c, 0x20, 0x76, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x65, + 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x69, + 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x6c, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x20, 0x6d, 0x75, 0x73, + 0x74, 0x20, 0x62, 0x65, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x22, 0x0a, 0x2d, 0x2d, 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x65, + 0x76, 0x65, 0x72, 0x79, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x69, 0x75, 0x70, + 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, + 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x42, 0x6f, 0x78, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x20, 0x28, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x73, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x29, 0x20, 0x0a, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x42, 0x4f, 0x58, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x0a, 0x7d, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, + 0x4f, 0x58, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, + 0x20, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, + 0x22, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x0a, 0x20, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6e, 0x20, 0x64, 0x6f, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, + 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, + 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, + 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x28, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, 0x2d, 0x20, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, + 0x69, 0x6c, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x65, + 0x72, 0x72, 0x2c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x20, + 0x65, 0x72, 0x72, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x2e, 0x2e, 0x28, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x6f, 0x72, 0x20, 0x22, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x2e, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x74, 0x20, 0x3d, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x3d, 0x22, 0x4f, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x36, 0x30, + 0x22, 0x2c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, - 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x7b, 0x2e, 0x2e, 0x2e, 0x7d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, 0x61, - 0x6c, 0x6c, 0x5f, 0x28, 0x66, 0x2c, 0x20, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, - 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x65, - 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x0a, - 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, - 0x74, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x28, 0x70, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x66, - 0x29, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x74, 0x5b, - 0x31, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x72, 0x65, 0x74, 0x5b, 0x32, - 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, 0x20, - 0x65, 0x6c, 0x73, 0x65, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x72, 0x65, 0x74, 0x2c, 0x20, 0x31, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, - 0x6b, 0x28, 0x72, 0x65, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x72, - 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x6c, 0x6f, 0x61, - 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x28, - 0x66, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x6c, 0x6f, 0x61, 0x64, 0x66, 0x69, 0x6c, - 0x65, 0x28, 0x66, 0x29, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x47, 0x42, 0x28, 0x72, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x62, 0x29, - 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x64, 0x20, 0x25, 0x64, 0x20, 0x25, - 0x64, 0x22, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x72, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x67, - 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x62, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, - 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, - 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, - 0x6d, 0x65, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x2d, - 0x2d, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x0a, 0x69, 0x66, 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x5f, 0x47, 0x2e, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x69, - 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, - 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x5b, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x35, 0x31, 0x22, 0x5d, 0x20, 0x3d, - 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x4d, 0x20, 0x3d, - 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x50, 0x41, 0x43, - 0x4b, 0x41, 0x47, 0x45, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, + 0x75, 0x70, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x3b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x6c, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, + 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, + 0x3d, 0x22, 0x59, 0x45, 0x53, 0x22, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x65, 0x72, + 0x72, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x22, 0x33, 0x30, 0x30, 0x78, 0x31, 0x35, 0x30, + 0x22, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x76, 0x62, 0x20, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x76, 0x62, 0x6f, 0x78, 0x7b, 0x6d, 0x6c, 0x2c, 0x20, 0x62, + 0x74, 0x3b, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x41, 0x43, + 0x45, 0x4e, 0x54, 0x45, 0x52, 0x22, 0x2c, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3d, 0x22, + 0x31, 0x30, 0x78, 0x31, 0x30, 0x22, 0x2c, 0x20, 0x67, 0x61, 0x70, 0x3d, 0x22, 0x31, 0x30, 0x22, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x67, 0x20, 0x3d, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x7b, 0x76, 0x62, 0x3b, 0x20, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x73, 0x63, + 0x3d, 0x62, 0x74, 0x2c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x3d, 0x62, 0x74, 0x2c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x3d, 0x62, + 0x74, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, + 0x20, 0x6d, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x67, 0x3a, 0x70, 0x6f, 0x70, 0x75, 0x70, + 0x28, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x2c, 0x20, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x67, 0x3a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x3d, 0x20, + 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, + 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x66, 0x2c, 0x20, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x28, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x70, 0x61, 0x63, + 0x6b, 0x28, 0x70, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x66, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x74, 0x5b, 0x31, 0x5d, 0x20, 0x74, 0x68, 0x65, 0x6e, + 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x28, 0x72, 0x65, 0x74, 0x5b, 0x32, 0x5d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x0a, 0x20, 0x20, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x72, 0x65, 0x74, 0x2c, 0x20, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x28, 0x72, + 0x65, 0x74, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x64, 0x6f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x28, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x73, 0x29, 0x29, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x64, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x66, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x28, 0x6c, 0x6f, 0x61, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x66, + 0x29, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x47, 0x42, 0x28, 0x72, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x62, + 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x64, 0x20, 0x25, 0x64, 0x20, + 0x25, 0x64, 0x22, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x72, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, + 0x67, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2a, 0x62, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, + 0x2d, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x74, 0x6f, 0x20, + 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x61, 0x6d, 0x65, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x0a, 0x69, 0x66, 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x5f, 0x47, 0x2e, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, + 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, + 0x20, 0x20, 0x5f, 0x47, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x5b, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x35, 0x31, 0x22, 0x5d, 0x20, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x4d, 0x20, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x5f, 0x50, 0x41, + 0x43, 0x4b, 0x41, 0x47, 0x45, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x22, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "iuplua.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/label.clua b/iup/srclua5/clua/label.clua index a0a24d9..5528af9 100644 --- a/iup/srclua5/clua/label.clua +++ b/iup/srclua5/clua/label.clua @@ -13,18 +13,19 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, - 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x28, 0x61, - 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, - 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, + 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "label.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/list.clua b/iup/srclua5/clua/list.clua index d064bf9..468d296 100644 --- a/iup/srclua5/clua/list.clua +++ b/iup/srclua5/clua/list.clua @@ -13,25 +13,26 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, - 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, - 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x64, 0x62, 0x6c, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, - 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, + 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x62, 0x6c, 0x63, 0x6c, 0x69, 0x63, 0x6b, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, + 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "list.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/matrix.clua b/iup/srclua5/clua/matrix.clua index 02b4643..955f76f 100644 --- a/iup/srclua5/clua/matrix.clua +++ b/iup/srclua5/clua/matrix.clua @@ -13,72 +13,73 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, - 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x6e, 0x6e, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, - 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, - 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x73, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, + 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, + 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, + 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, + 0x74, 0x72, 0x69, 0x78, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, + 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x69, 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, + 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, + 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x74, 0x6f, 0x70, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, - 0x20, 0x22, 0x6e, 0x6e, 0x69, 0x73, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, - 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x74, 0x65, - 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, - 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x74, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x67, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, - 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, - 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x66, 0x75, 0x6e, 0x63, - 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x67, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, - 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, - 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, - 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x74, 0x20, - 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, - 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, - 0x72, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, - 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, - 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c, 0x28, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6c, 0x2c, 0x20, 0x63, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x29, - 0x0a, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, + 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x5f, 0x63, 0x62, 0x20, + 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, + 0x73, 0x22, 0x7d, 0x2c, 0x20, 0x2d, 0x2d, 0x20, 0x72, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x7b, 0x22, 0x6e, 0x6e, 0x22, 0x2c, + 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x7d, 0x2c, 0x20, 0x2d, 0x2d, 0x20, + 0x72, 0x65, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, + 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, + 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, + 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x6c, 0x2c, 0x20, 0x63, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x29, 0x0a, 0x20, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x6c, 0x2e, 0x2e, 0x22, 0x3a, 0x22, 0x2e, 0x2e, 0x63, 0x2c, 0x76, 0x61, 0x6c, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x63, 0x65, 0x6c, 0x6c, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6c, 0x2c, 0x20, 0x63, 0x29, 0x0a, 0x20, - 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x6c, 0x2e, 0x2e, 0x22, - 0x3a, 0x22, 0x2e, 0x2e, 0x63, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, + 0x6c, 0x2e, 0x2e, 0x22, 0x3a, 0x22, 0x2e, 0x2e, 0x63, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, + 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "matrix.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/menu.clua b/iup/srclua5/clua/menu.clua index 9f82efa..6d579a8 100644 --- a/iup/srclua5/clua/menu.clua +++ b/iup/srclua5/clua/menu.clua @@ -13,74 +13,78 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, - 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, - 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, - 0x20, 0x20, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, - 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, - 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, - 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x61, - 0x72, 0x67, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x6e, 0x20, 0x64, - 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, 0x72, - 0x67, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, - 0x6d, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x75, 0x2c, 0x76, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, - 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x75, 0x29, 0x20, 0x7e, - 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, - 0x67, 0x5b, 0x75, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, 0x72, 0x67, - 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, 0x72, - 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x61, - 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c, + 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, + 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, + 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, + 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x65, 0x6e, + 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, + 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x6e, 0x20, 0x64, + 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, + 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x2c, 0x76, 0x20, + 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, + 0x5d, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x75, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x5b, 0x75, 0x5d, 0x20, 0x3d, + 0x20, 0x76, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, + 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, + 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x20, - 0x3d, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, - 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x79, 0x70, - 0x65, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, - 0x22, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x5b, - 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x0a, 0x20, + 0x65, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, + 0x5d, 0x5b, 0x32, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x69, 0x74, 0x65, 0x6d, + 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x75, + 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, + 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, 0x32, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x2e, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x5b, 0x31, 0x5d, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x20, - 0x3d, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, - 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x65, 0x6e, 0x75, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, - 0x68, 0x6f, 0x77, 0x78, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, - 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x68, 0x6f, - 0x77, 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, - 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, - 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, - 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x74, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x5b, + 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, + 0x75, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x4d, 0x65, 0x6e, 0x75, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x78, 0x79, + 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x68, 0x6f, 0x77, + 0x58, 0x59, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "menu.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/messagedlg.clua b/iup/srclua5/clua/messagedlg.clua index f51bcf9..15d6653 100644 --- a/iup/srclua5/clua/messagedlg.clua +++ b/iup/srclua5/clua/messagedlg.clua @@ -14,27 +14,28 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x64, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, 0x29, 0x0a, 0x20, 0x20, - 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, - 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x44, 0x65, - 0x73, 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, - 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6c, 0x67, 0x28, - 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, - 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, - 0x29, 0x0a, 0x0a, + 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, + 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6c, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x70, 0x6f, + 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x79, + 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x78, 0x2c, 0x79, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x64, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x6c, + 0x67, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "messagedlg.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/multiline.clua b/iup/srclua5/clua/multiline.clua index efb174c..c682a49 100644 --- a/iup/srclua5/clua/multiline.clua +++ b/iup/srclua5/clua/multiline.clua @@ -14,20 +14,21 @@ static const unsigned char B1[] = { 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x20, 0x0a, 0x20, - 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, - 0x20, 0x22, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x2c, 0x0a, 0x7d, 0x20, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x28, 0x29, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, - 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, - 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, + 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x22, + 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, + 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, + 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, + 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "multiline.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/normalizer.clua b/iup/srclua5/clua/normalizer.clua index d506035..b1bb2f0 100644 --- a/iup/srclua5/clua/normalizer.clua +++ b/iup/srclua5/clua/normalizer.clua @@ -14,33 +14,35 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x67, - 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x22, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, - 0x20, 0x23, 0x61, 0x72, 0x67, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, - 0x31, 0x2c, 0x20, 0x6e, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, - 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x69, - 0x5d, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x5b, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x28, 0x29, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, + 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, + 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, + 0x3d, 0x20, 0x72, 0x61, 0x77, 0x67, 0x65, 0x74, 0x28, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, + 0x20, 0x22, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x23, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x0a, 0x20, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6e, 0x20, 0x64, 0x6f, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x29, 0x20, 0x3d, 0x3d, + 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x61, 0x64, 0x64, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x3d, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x5b, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, + 0x54, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, + 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "normalizer.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/olecontrol.clua b/iup/srclua5/clua/olecontrol.clua index aebe246..883b20b 100644 --- a/iup/srclua5/clua/olecontrol.clua +++ b/iup/srclua5/clua/olecontrol.clua @@ -14,66 +14,65 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x6f, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x4f, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x2e, 0x68, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20, - 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x6c, 0x75, - 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x75, 0x70, - 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x49, 0x75, - 0x70, 0x4f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x65, 0x6e, 0x28, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x75, - 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, - 0x6c, 0x75, 0x61, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x76, 0x28, 0x4c, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, - 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, - 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, - 0x65, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, - 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, - 0x65, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, - 0x0a, 0x2f, 0x2a, 0x20, 0x6f, 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, - 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, - 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x35, 0x31, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, - 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, - 0x6f, 0x6c, 0x65, 0x35, 0x31, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, - 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, - 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, - 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4f, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, - 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x75, 0x61, 0x43, 0x4f, 0x4d, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x66, 0x20, 0x6c, - 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2c, - 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6f, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, 0x3d, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x69, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4c, 0x75, 0x61, 0x43, 0x4f, 0x4d, 0x28, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x2e, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x49, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28, 0x70, 0x75, 0x6e, - 0x6b, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, - 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x22, 0x29, 0x0a, + 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, + 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, + 0x4f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x0a, 0x20, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x6f, 0x6c, + 0x65, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x20, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x75, 0x70, 0x6f, + 0x6c, 0x65, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, + 0x28, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x28, 0x4c, 0x29, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x49, 0x75, 0x70, 0x4f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x69, 0x75, + 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x28, 0x4c, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, + 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, + 0x6c, 0x65, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, 0x6f, 0x70, + 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x28, 0x6c, 0x75, 0x61, + 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, 0x6c, 0x75, 0x61, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2a, 0x20, 0x6f, + 0x62, 0x6c, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, + 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x22, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, + 0x6c, 0x65, 0x35, 0x31, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x69, 0x6e, 0x74, 0x20, 0x6c, 0x75, 0x61, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x6f, 0x6c, 0x65, 0x35, 0x31, + 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x20, 0x4c, 0x29, 0x0a, 0x7b, + 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x6f, 0x6c, 0x65, + 0x6c, 0x75, 0x61, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x4c, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, + 0x5d, 0x5d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x4f, 0x6c, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, + 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x75, 0x61, 0x43, 0x4f, + 0x4d, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x69, + 0x66, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x64, 0x2c, 0x20, 0x75, 0x73, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x20, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x2d, 0x2d, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x6e, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, + 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x69, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x70, 0x75, 0x6e, 0x6b, 0x20, 0x74, 0x68, + 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4c, 0x75, 0x61, 0x43, 0x4f, 0x4d, 0x28, 0x6c, 0x75, 0x61, 0x63, 0x6f, 0x6d, + 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x28, + 0x70, 0x75, 0x6e, 0x6b, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "olecontrol.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/pplot.clua b/iup/srclua5/clua/pplot.clua index 54d807d..77208ad 100644 --- a/iup/srclua5/clua/pplot.clua +++ b/iup/srclua5/clua/pplot.clua @@ -13,49 +13,50 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, - 0x22, 0x50, 0x50, 0x6c, 0x6f, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, 0x66, 0x6e, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x70, - 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x62, - 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, - 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x70, - 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, - 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, - 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, - 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, - 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, - 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x5f, 0x70, 0x70, 0x6c, 0x6f, - 0x74, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, - 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, - 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x50, 0x50, 0x6c, - 0x6f, 0x74, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, - 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, - 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, - 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x3d, 0x20, 0x22, 0x50, 0x50, 0x6c, 0x6f, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, + 0x66, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, + 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x64, 0x72, 0x61, + 0x77, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, + 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, + 0x62, 0x79, 0x20, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x62, + 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, + 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x64, 0x69, 0x74, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x65, 0x64, 0x69, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x62, 0x20, + 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x66, 0x66, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x65, 0x6e, 0x64, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, + 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x5f, + 0x70, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x68, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x50, 0x6c, 0x6f, 0x74, 0x28, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, + 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "pplot.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/progressbar.clua b/iup/srclua5/clua/progressbar.clua index ec3c3ff..2cbbd76 100644 --- a/iup/srclua5/clua/progressbar.clua +++ b/iup/srclua5/clua/progressbar.clua @@ -14,19 +14,20 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x62, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x28, 0x29, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, - 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, - 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, + 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, + 0x22, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, + 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, + 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, + 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, + 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "progressbar.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/radio.clua b/iup/srclua5/clua/radio.clua index e0f0211..d781c3d 100644 --- a/iup/srclua5/clua/radio.clua +++ b/iup/srclua5/clua/radio.clua @@ -13,41 +13,42 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, - 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x20, 0x74, 0x68, 0x65, - 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x20, - 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, - 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, - 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x62, 0x6a, 0x5b, - 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x3d, 0x20, - 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x49, 0x55, 0x50, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x20, - 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, + 0x58, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x68, 0x69, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x62, + 0x6a, 0x5b, 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x3d, 0x20, 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x74, + 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x28, 0x6f, 0x62, 0x6a, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, - 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x63, - 0x74, 0x72, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x28, - 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, - 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, - 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x6f, 0x62, + 0x6a, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, + 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "radio.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/sbox.clua b/iup/srclua5/clua/sbox.clua index 85daca5..baba878 100644 --- a/iup/srclua5/clua/sbox.clua +++ b/iup/srclua5/clua/sbox.clua @@ -11,18 +11,19 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x09, 0x6e, 0x69, 0x63, - 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x22, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, - 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, - 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x62, 0x6f, 0x78, 0x28, 0x61, 0x72, 0x67, 0x5b, 0x31, 0x5d, - 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, - 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, + 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x53, 0x62, 0x6f, 0x78, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; diff --git a/iup/srclua5/clua/separator.clua b/iup/srclua5/clua/separator.clua index d2b0e74..5b5ab83 100644 --- a/iup/srclua5/clua/separator.clua +++ b/iup/srclua5/clua/separator.clua @@ -14,17 +14,18 @@ static const unsigned char B1[] = { 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, - 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, - 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, - 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, - 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, - 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, - 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, + 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "separator.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/spin.clua b/iup/srclua5/clua/spin.clua index 95ba6ed..5df74ee 100644 --- a/iup/srclua5/clua/spin.clua +++ b/iup/srclua5/clua/spin.clua @@ -13,19 +13,20 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, - 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x70, 0x69, - 0x6e, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, - 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, + 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x70, 0x69, 0x6e, 0x28, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "spin.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/spinbox.clua b/iup/srclua5/clua/spinbox.clua index cfe86dd..13f7a02 100644 --- a/iup/srclua5/clua/spinbox.clua +++ b/iup/srclua5/clua/spinbox.clua @@ -13,20 +13,20 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x62, 0x6f, 0x78, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, - 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x3d, 0x20, 0x22, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x69, 0x6e, 0x5f, - 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x53, 0x70, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x28, 0x61, 0x72, 0x67, 0x5b, - 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, - 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, - 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, - 0x0a, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x70, + 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, + 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "spinbox.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/split.clua b/iup/srclua5/clua/split.clua new file mode 100644 index 0000000..76bd186 --- /dev/null +++ b/iup/srclua5/clua/split.clua @@ -0,0 +1,32 @@ +{ +static const unsigned char B1[] = { + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x2d, + 0x2d, 0x20, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x0a, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, + 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, + 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x49, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, + 0x31, 0x5d, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x32, 0x5d, 0x29, 0x0a, 0x65, 0x6e, + 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, + 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, +}; + + if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "split.lua") == 0) lua_call(L, 0, 0); +} diff --git a/iup/srclua5/clua/submenu.clua b/iup/srclua5/clua/submenu.clua index 975e4d7..11b4b2d 100644 --- a/iup/srclua5/clua/submenu.clua +++ b/iup/srclua5/clua/submenu.clua @@ -13,25 +13,26 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75, - 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, - 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x3d, 0x20, 0x22, 0x53, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, - 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x49, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x2d, 0x2d, 0x20, 0x20, + 0x20, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, + 0x6e, 0x75, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, - 0x65, 0x6e, 0x75, 0x0a, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x63, 0x6c, - 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, - 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x0a, - 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75, - 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x5b, - 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, + 0x65, 0x6e, 0x75, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x65, 0x6e, 0x75, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, + 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, + 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; diff --git a/iup/srclua5/clua/tabs.clua b/iup/srclua5/clua/tabs.clua index e22e024..114ce8b 100644 --- a/iup/srclua5/clua/tabs.clua +++ b/iup/srclua5/clua/tabs.clua @@ -13,35 +13,36 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, - 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x54, 0x61, 0x62, - 0x73, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66, 0x75, 0x6e, - 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x69, 0x6e, - 0x74, 0x20, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x6c, 0x75, 0x61, 0x5f, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x6c, - 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, - 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x49, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x68, 0x20, 0x3d, 0x20, 0x49, 0x75, 0x70, 0x54, - 0x61, 0x62, 0x73, 0x76, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, - 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x28, - 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, - 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x77, 0x28, - 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, 0x65, 0x28, 0x68, 0x6c, - 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, - 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, - 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x61, 0x62, - 0x73, 0x76, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, - 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, - 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x69, 0x69, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, + 0x22, 0x54, 0x61, 0x62, 0x73, 0x76, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x66, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x5b, 0x5b, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x63, 0x20, 0x69, 0x6e, 0x74, 0x20, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x6c, 0x75, 0x61, 0x5f, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x2a, 0x4c, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x49, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x2a, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d, 0x20, + 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x28, 0x4c, 0x2c, 0x20, 0x31, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x49, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x2a, 0x68, 0x20, 0x3d, 0x20, + 0x49, 0x75, 0x70, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, + 0x6c, 0x75, 0x61, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, + 0x72, 0x61, 0x77, 0x28, 0x4c, 0x2c, 0x20, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x72, 0x65, + 0x65, 0x28, 0x68, 0x6c, 0x69, 0x73, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x5d, 0x5d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x61, 0x62, 0x73, 0x76, 0x28, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, + 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "tabs.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/text.clua b/iup/srclua5/clua/text.clua index cd7f932..f23f7fa 100644 --- a/iup/srclua5/clua/text.clua +++ b/iup/srclua5/clua/text.clua @@ -13,24 +13,24 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, - 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, - 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x61, 0x72, 0x65, 0x74, 0x5f, 0x63, - 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, - 0x79, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, - 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, - 0x65, 0x78, 0x74, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, - 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, - 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x61, 0x72, + 0x65, 0x74, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x75, 0x73, + 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x0a, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x28, 0x29, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, + 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "text.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/timer.clua b/iup/srclua5/clua/timer.clua index c1cdbd2..6842674 100644 --- a/iup/srclua5/clua/timer.clua +++ b/iup/srclua5/clua/timer.clua @@ -14,18 +14,19 @@ static const unsigned char B1[] = { 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, - 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x7d, - 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, - 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, - 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, - 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x20, + 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, + 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, + 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "timer.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/toggle.clua b/iup/srclua5/clua/toggle.clua index 4e0cf74..e9dcd4b 100644 --- a/iup/srclua5/clua/toggle.clua +++ b/iup/srclua5/clua/toggle.clua @@ -13,20 +13,21 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, 0x7d, 0x20, 0x0a, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x20, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x28, 0x61, 0x72, 0x67, 0x2e, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, - 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, - 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x22, 0x29, 0x0a, + 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x53, 0x2d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x0a, + 0x7d, 0x20, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, + 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, + 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, + 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "toggle.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/tree.clua b/iup/srclua5/clua/tree.clua index beafb16..42d4736 100644 --- a/iup/srclua5/clua/tree.clua +++ b/iup/srclua5/clua/tree.clua @@ -13,24 +13,28 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x72, 0x65, 0x65, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, - 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, - 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x72, 0x65, - 0x65, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x6c, 0x65, 0x61, 0x66, - 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, - 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x73, 0x22, 0x2c, 0x20, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, + 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, + 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x74, 0x72, 0x65, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x75, 0x6e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x22, + 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x72, 0x65, 0x65, 0x66, 0x75, 0x6e, 0x63, + 0x73, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x2c, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x61, 0x6b, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x72, 0x65, 0x65, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, @@ -42,117 +46,186 @@ static const unsigned char B1[] = { 0x20, 0x20, 0x20, 0x64, 0x72, 0x61, 0x67, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x6e, 0x6e, 0x6e, 0x6e, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x66, 0x75, 0x6e, 0x63, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x0a, - 0x7d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x69, 0x66, 0x20, 0x69, 0x75, 0x70, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x20, 0x3d, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, - 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, - 0x22, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, - 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x6e, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x53, 0x54, 0x41, 0x54, 0x45, 0x22, 0x2e, 0x2e, - 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74, + 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x64, + 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, + 0x74, 0x74, 0x72, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x28, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x61, 0x74, 0x74, 0x72, 0x2e, 0x2e, 0x69, 0x64, 0x5d, + 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, + 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, + 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x69, 0x6e, 0x69, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, + 0x69, 0x6e, 0x69, 0x20, 0x3d, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x22, 0x2e, 0x2e, 0x69, 0x6e, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x69, 0x20, 0x64, 0x6f, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x28, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2c, 0x20, 0x31, 0x2c, 0x20, 0x69, 0x6e, 0x69, + 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x20, 0x3d, 0x20, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x2e, 0x2e, 0x69, + 0x6e, 0x69, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x23, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x20, + 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, + 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5b, 0x69, + 0x5d, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x6e, 0x69, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, + 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x69, + 0x0a, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x2e, 0x2e, 0x69, 0x6e, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x64, 0x20, 0x3d, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, + 0x64, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5b, 0x22, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x2e, 0x2e, + 0x69, 0x64, 0x5d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x22, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x64, 0x20, 0x3d, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2c, 0x20, 0x61, 0x74, 0x74, 0x72, 0x73, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, + 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, + 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, + 0x65, 0x65, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, + 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, + 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, + 0x20, 0x22, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, + 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x66, + 0x6f, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x46, 0x4f, 0x4e, 0x54, 0x22, 0x2e, 0x2e, 0x69, - 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x66, 0x6f, 0x6e, - 0x74, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, - 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x2c, 0x20, 0x22, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, - 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, - 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x22, 0x2e, 0x2e, 0x69, 0x64, - 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x29, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x54, - 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x49, - 0x4d, 0x41, 0x47, 0x45, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x22, 0x2e, 0x2e, 0x69, - 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x65, 0x78, 0x70, - 0x61, 0x6e, 0x64, 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, - 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, - 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x20, - 0x3d, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x23, 0x74, 0x0a, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x74, - 0x5b, 0x63, 0x6f, 0x6e, 0x74, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x28, 0x6e, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, - 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x22, 0x2e, - 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, - 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, - 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65, - 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, - 0x65, 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, - 0x44, 0x4c, 0x45, 0x41, 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, - 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x64, - 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, - 0x4c, 0x45, 0x41, 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x29, + 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x66, 0x6f, + 0x6e, 0x74, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, + 0x64, 0x65, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x44, 0x22, + 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, + 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, + 0x20, 0x22, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, + 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, + 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x65, + 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, + 0x22, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x22, 0x2e, + 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x69, + 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x69, 0x64, 0x29, + 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, + 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x20, 0x3d, 0x3d, 0x20, + 0x6e, 0x69, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x20, 0x3d, 0x20, 0x23, 0x74, 0x0a, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x5b, 0x63, + 0x6f, 0x6e, 0x74, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x28, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, + 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, + 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, 0x42, 0x52, 0x41, 0x4e, + 0x43, 0x48, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x62, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, + 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x41, 0x64, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, + 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2e, + 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, + 0x41, 0x44, 0x44, 0x4c, 0x45, 0x41, 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, + 0x6f, 0x64, 0x65, 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x69, 0x64, 0x2b, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, - 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6f, - 0x6e, 0x74, 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, - 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, - 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6e, 0x6f, - 0x74, 0x20, 0x69, 0x64, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x64, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x54, 0x49, 0x54, - 0x4c, 0x45, 0x30, 0x22, 0x2c, 0x20, 0x74, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, - 0x6d, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65, - 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, - 0x64, 0x0a, 0x20, 0x20, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x65, 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, - 0x64, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x72, 0x65, 0x65, 0x28, 0x29, 0x0a, - 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, - 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x6e, 0x6f, + 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x22, 0x41, 0x44, 0x44, 0x4c, 0x45, 0x41, + 0x46, 0x22, 0x2e, 0x2e, 0x69, 0x64, 0x2c, 0x20, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6e, 0x74, + 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, + 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, + 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, + 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x64, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x2e, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x2c, 0x20, 0x22, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x30, 0x22, 0x2c, 0x20, 0x74, 0x2e, 0x62, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, + 0x74, 0x2c, 0x20, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x63, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, 0x20, 0x69, 0x64, 0x29, + 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0x20, + 0x74, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x74, 0x2c, + 0x20, 0x30, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, + 0x62, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x53, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x54, 0x72, + 0x65, 0x65, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "tree.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/user.clua b/iup/srclua5/clua/user.clua index 3ffcab7..3629189 100644 --- a/iup/srclua5/clua/user.clua +++ b/iup/srclua5/clua/user.clua @@ -13,17 +13,18 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x75, 0x73, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x20, 0x20, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, - 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, - 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, - 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, - 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x55, 0x73, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, - 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, - 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, - 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, + 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x3d, 0x20, 0x22, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x70, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, + 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, + 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, + 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "user.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/val.clua b/iup/srclua5/clua/val.clua index c9109e5..4e896e2 100644 --- a/iup/srclua5/clua/val.clua +++ b/iup/srclua5/clua/val.clua @@ -13,23 +13,23 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x61, 0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, 0x2c, 0x0a, 0x20, 0x20, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x73, 0x22, 0x2c, 0x0a, - 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x62, 0x20, - 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, - 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x28, 0x61, 0x72, 0x67, - 0x5b, 0x31, 0x5d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, - 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, - 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, - 0x29, 0x0a, + 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x57, 0x49, 0x44, 0x47, 0x45, 0x54, + 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, + 0x53, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, + 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x62, 0x20, 0x3d, + 0x20, 0x22, 0x64, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x22, 0x64, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x56, 0x61, 0x6c, 0x28, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5b, 0x31, 0x5d, 0x29, + 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, + 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "val.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/clua/vbox.clua b/iup/srclua5/clua/vbox.clua index 4f93a86..fc50b71 100644 --- a/iup/srclua5/clua/vbox.clua +++ b/iup/srclua5/clua/vbox.clua @@ -13,19 +13,20 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x76, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, - 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x20, 0x56, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, - 0x69, 0x75, 0x70, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c, + 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, + 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, + 0x70, 0x2e, 0x56, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, + 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; diff --git a/iup/srclua5/clua/zbox.clua b/iup/srclua5/clua/zbox.clua index d47e433..5a6a309 100644 --- a/iup/srclua5/clua/zbox.clua +++ b/iup/srclua5/clua/zbox.clua @@ -13,34 +13,35 @@ static const unsigned char B1[] = { 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x6e, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x7a, 0x62, 0x6f, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x4f, 0x58, 0x2c, 0x0a, 0x20, 0x20, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x0a, 0x7d, - 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, - 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, - 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, - 0x73, 0x65, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, - 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, - 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, - 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, 0x20, 0x20, - 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x65, - 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, - 0x61, 0x72, 0x67, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5a, - 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x75, 0x70, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x28, 0x63, 0x74, 0x72, - 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x53, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, - 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x22, 0x29, 0x0a, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x42, 0x4f, 0x58, 0x2c, + 0x0a, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x2d, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x7b, 0x7d, 0x0a, 0x7d, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x74, 0x72, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x28, 0x68, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, + 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x28, 0x65, 0x6c, + 0x65, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x75, 0x70, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, + 0x28, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x2c, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x29, 0x0a, 0x65, + 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x28, 0x6f, 0x62, 0x6a, 0x29, 0x0a, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x62, 0x6a, + 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, + 0x69, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, + 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x28, 0x6f, 0x62, 0x6a, 0x5b, 0x69, 0x5d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x20, 0x3d, 0x20, 0x69, 0x2b, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, + 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2c, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x63, 0x74, 0x72, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x28, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x75, 0x70, 0x2e, 0x5a, 0x62, 0x6f, 0x78, 0x28, 0x29, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x29, 0x0a, 0x69, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x28, 0x63, 0x74, 0x72, 0x6c, 0x2c, 0x20, 0x22, 0x69, 0x75, 0x70, 0x20, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x22, 0x29, 0x0a, }; if (luaL_loadbuffer(L, (const char *)B1, sizeof(B1), "zbox.lua") == 0) lua_call(L, 0, 0); diff --git a/iup/srclua5/colorbar.lua b/iup/srclua5/colorbar.lua index 524d5f3..7cc07db 100755 --- a/iup/srclua5/colorbar.lua +++ b/iup/srclua5/colorbar.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "colorbar", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { select_cb = "nn", @@ -15,12 +15,12 @@ local ctrl = { include = "iupcontrols.h", } -PRIMARY = -1 -SECONDARY = -2 +iup.PRIMARY = -1 +iup.SECONDARY = -2 -function ctrl.createElement(class, arg) - return Colorbar(arg.action) +function ctrl.createElement(class, param) + return iup.Colorbar(param.action) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/colorbrowser.lua b/iup/srclua5/colorbrowser.lua index 16ac58f..496ce21 100755 --- a/iup/srclua5/colorbrowser.lua +++ b/iup/srclua5/colorbrowser.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "colorbrowser", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { drag_cb = "ccc", @@ -13,9 +13,9 @@ local ctrl = { include = "iupcontrols.h", } -function ctrl.createElement(class, arg) - return ColorBrowser(arg.action) +function ctrl.createElement(class, param) + return iup.ColorBrowser(param.action) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/colordlg.lua b/iup/srclua5/colordlg.lua index 6eea53b..d6a71a4 100755 --- a/iup/srclua5/colordlg.lua +++ b/iup/srclua5/colordlg.lua @@ -3,24 +3,24 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "colordlg", - parent = WIDGET, + parent = iup.WIDGET, creation = "", funcname = "ColorDlg", callback = {} } function ctrl.popup(handle, x, y) - Popup(handle,x,y) + iup.Popup(handle,x,y) end function ctrl.destroy(handle) - return Destroy(handle) + return iup.Destroy(handle) end -function ctrl.createElement(class, arg) - return ColorDlg() +function ctrl.createElement(class, param) + return iup.ColorDlg() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/config.mak b/iup/srclua5/config.mak index 7979f0e..921aa29 100755 --- a/iup/srclua5/config.mak +++ b/iup/srclua5/config.mak @@ -17,7 +17,7 @@ CTRLUA = button.lua canvas.lua dialog.lua colordlg.lua clipboard.lua \ item.lua image.lua imagergb.lua imagergba.lua label.lua \ menu.lua multiline.lua list.lua separator.lua user.lua \ submenu.lua text.lua toggle.lua vbox.lua zbox.lua timer.lua \ - sbox.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \ + sbox.lua split.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \ radio.lua val.lua tabs.lua fontdlg.lua tree.lua progressbar.lua GC := $(addsuffix .c, $(basename $(CTRLUA))) diff --git a/iup/srclua5/constants.lua b/iup/srclua5/constants.lua index 9a72f6a..2a1e76f 100755 --- a/iup/srclua5/constants.lua +++ b/iup/srclua5/constants.lua @@ -3,70 +3,70 @@ ---------------------------------------------------------------------------- -- Common return values ---------------------------------------------------------------------------- -ERROR = 1 -NOERROR = 0 -OPENED = -1 -INVALID = -1 +iup.ERROR = 1 +iup.NOERROR = 0 +iup.OPENED = -1 +iup.INVALID = -1 ---------------------------------------------------------------------------- -- Callback return values ---------------------------------------------------------------------------- -IGNORE = -1 -DEFAULT = -2 -CLOSE = -3 -CONTINUE = -4 +iup.IGNORE = -1 +iup.DEFAULT = -2 +iup.CLOSE = -3 +iup.CONTINUE = -4 ---------------------------------------------------------------------------- -- IupPopup e IupShowXY ---------------------------------------------------------------------------- -CENTER = 65535 -LEFT = 65534 -RIGHT = 65533 -MOUSEPOS = 65532 -CURRENT = 65531 -CENTERPARENT = 65530 -TOP = LEFT -BOTTOM = RIGHT +iup.CENTER = 65535 +iup.LEFT = 65534 +iup.RIGHT = 65533 +iup.MOUSEPOS = 65532 +iup.CURRENT = 65531 +iup.CENTERPARENT = 65530 +iup.TOP = LEFT +iup.BOTTOM = RIGHT ---------------------------------------------------------------------------- -- Scrollbar ---------------------------------------------------------------------------- -SBUP = 0 -SBDN = 1 -SBPGUP = 2 -SBPGDN = 3 -SBPOSV = 4 -SBDRAGV = 5 -SBLEFT = 6 -SBRIGHT = 7 -SBPGLEFT = 8 -SBPGRIGHT = 9 -SBPOSH = 10 -SBDRAGH = 11 +iup.SBUP = 0 +iup.SBDN = 1 +iup.SBPGUP = 2 +iup.SBPGDN = 3 +iup.SBPOSV = 4 +iup.SBDRAGV = 5 +iup.SBLEFT = 6 +iup.SBRIGHT = 7 +iup.SBPGLEFT = 8 +iup.SBPGRIGHT = 9 +iup.SBPOSH = 10 +iup.SBDRAGH = 11 ---------------------------------------------------------------------------- -- SHOW_CB ---------------------------------------------------------------------------- -SHOW = 0 -RESTORE = 1 -MINIMIZE = 2 -MAXIMIZE = 3 -HIDE = 4 +iup.SHOW = 0 +iup.RESTORE = 1 +iup.MINIMIZE = 2 +iup.MAXIMIZE = 3 +iup.HIDE = 4 ---------------------------------------------------------------------------- -- BUTTON_CB ---------------------------------------------------------------------------- -BUTTON1 = string.byte('1') -BUTTON2 = string.byte('2') -BUTTON3 = string.byte('3') -BUTTON4 = string.byte('4') -BUTTON5 = string.byte('5') +iup.BUTTON1 = string.byte('1') +iup.BUTTON2 = string.byte('2') +iup.BUTTON3 = string.byte('3') +iup.BUTTON4 = string.byte('4') +iup.BUTTON5 = string.byte('5') ---------------------------------------------------------------------------- -- Pre-Defined Masks ---------------------------------------------------------------------------- -MASK_FLOAT = "[+/-]?(/d+/.?/d*|/./d+)" -MASK_UFLOAT = "(/d+/.?/d*|/./d+)" -MASK_EFLOAT = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?" -MASK_INT = "[+/-]?/d+" -MASK_UINT = "/d+" +iup.MASK_FLOAT = "[+/-]?(/d+/.?/d*|/./d+)" +iup.MASK_UFLOAT = "(/d+/.?/d*|/./d+)" +iup.MASK_EFLOAT = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?" +iup.MASK_INT = "[+/-]?/d+" +iup.MASK_UINT = "/d+" diff --git a/iup/srclua5/ctrl_template.lua b/iup/srclua5/ctrl_template.lua index f314ac6..d7f509e 100755 --- a/iup/srclua5/ctrl_template.lua +++ b/iup/srclua5/ctrl_template.lua @@ -6,7 +6,7 @@ local ctrl = { nick = "mycontrol", -- name of the control, used in the control creation: iup.mycontrol{} -- also used for the generated C module - parent = WIDGET, -- used to define a few methods used fro creation and set attribute + parent = iup.WIDGET, -- used to define a few methods used fro creation and set attribute creation = "nn", -- the creation parameters in Lua -- "n" = int -- "d" = double @@ -81,14 +81,14 @@ int luaopen_iupluamycontrol51(lua_State* L) } -- must be defined so the WIDGET constructor can call it -function ctrl.createElement(class, arg) - return myControl() +function ctrl.createElement(class, param) + return iup.myControl() end -- here you can add some custom methods to the class function ctrl.popup(handle, x, y) - Popup(handle,x,y) + iup.Popup(handle,x,y) end -iupRegisterWidget(ctrl) -- will make iup.mycontrol available -iupSetClass(ctrl, "iup widget") -- register the class in the registry +iup.RegisterWidget(ctrl) -- will make iup.mycontrol available +iup.SetClass(ctrl, "iup widget") -- register the class in the registry diff --git a/iup/srclua5/dial.lua b/iup/srclua5/dial.lua index 0384b43..29f3fa1 100755 --- a/iup/srclua5/dial.lua +++ b/iup/srclua5/dial.lua @@ -3,8 +3,8 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "dial", - parent = WIDGET, - creation = "s", + parent = iup.WIDGET, + creation = "S", callback = { mousemove_cb = "d", -- already registered by the val, but has a name conflict -- button_press_cb = "d", -- already registered by the val @@ -13,9 +13,9 @@ local ctrl = { include = "iupcontrols.h", } -function ctrl.createElement(class, arg) - return Dial(arg[1]) +function ctrl.createElement(class, param) + return iup.Dial(param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/dialog.lua b/iup/srclua5/dialog.lua index a996ad7..ac9b786 100755 --- a/iup/srclua5/dialog.lua +++ b/iup/srclua5/dialog.lua @@ -3,11 +3,12 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "dialog", - parent = WIDGET, + parent = iup.WIDGET, creation = "I", callback = { map_cb = "", unmap_cb = "", + destroy_cb = "", close_cb = "", show_cb = "n", move_cb = "nn", @@ -16,21 +17,21 @@ local ctrl = { } } -function ctrl.createElement(class, arg) - return Dialog(arg[1]) +function ctrl.createElement(class, param) + return iup.Dialog(param[1]) end function ctrl.popup(handle, x, y) - Popup(handle,x,y) + iup.Popup(handle,x,y) end function ctrl.showxy(handle, x, y) - return ShowXY(handle, x, y) + return iup.ShowXY(handle, x, y) end function ctrl.destroy(handle) - return Destroy(handle) + return iup.Destroy(handle) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/filedlg.lua b/iup/srclua5/filedlg.lua index 71c4bb4..c0e6db5 100755 --- a/iup/srclua5/filedlg.lua +++ b/iup/srclua5/filedlg.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "filedlg", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { file_cb = "ss", @@ -12,17 +12,17 @@ local ctrl = { } function ctrl.popup(handle, x, y) - Popup(handle,x,y) + iup.Popup(handle,x,y) end function ctrl.destroy(handle) - return Destroy(handle) + return iup.Destroy(handle) end -function ctrl.createElement(class, arg) - return FileDlg() +function ctrl.createElement(class, param) + return iup.FileDlg() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/fill.lua b/iup/srclua5/fill.lua index 4bf7803..62c1bf0 100755 --- a/iup/srclua5/fill.lua +++ b/iup/srclua5/fill.lua @@ -3,14 +3,14 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "fill", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = {} } -function ctrl.createElement(class, arg) - return Fill() +function ctrl.createElement(class, param) + return iup.Fill() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/fontdlg.lua b/iup/srclua5/fontdlg.lua index 2c88d26..45bc02f 100755 --- a/iup/srclua5/fontdlg.lua +++ b/iup/srclua5/fontdlg.lua @@ -3,24 +3,24 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "fontdlg", - parent = WIDGET, + parent = iup.WIDGET, creation = "", funcname = "FontDlg", callback = {} } function ctrl.popup(handle, x, y) - Popup(handle,x,y) + iup.Popup(handle,x,y) end function ctrl.destroy(handle) - return Destroy(handle) + return iup.Destroy(handle) end -function ctrl.createElement(class, arg) - return FontDlg() +function ctrl.createElement(class, param) + return iup.FontDlg() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/frame.lua b/iup/srclua5/frame.lua index 7a1c1cc..96bfbb1 100755 --- a/iup/srclua5/frame.lua +++ b/iup/srclua5/frame.lua @@ -3,14 +3,14 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "frame", - parent = WIDGET, - creation = "i", + parent = iup.WIDGET, + creation = "I", callback = {} } -function ctrl.createElement(class, arg) - return Frame(arg[1]) +function ctrl.createElement(class, param) + return iup.Frame(param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/gauge.lua b/iup/srclua5/gauge.lua index 45a72b3..e25756c 100755 --- a/iup/srclua5/gauge.lua +++ b/iup/srclua5/gauge.lua @@ -3,15 +3,15 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "gauge", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = {}, include = "iupcontrols.h", } -function ctrl.createElement(class, arg) - return Gauge(arg.action) +function ctrl.createElement(class, param) + return iup.Gauge(param.action) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/generator.lua b/iup/srclua5/generator.lua index 3732364..efbab5a 100755 --- a/iup/srclua5/generator.lua +++ b/iup/srclua5/generator.lua @@ -1,17 +1,18 @@ function dofile(f) - pcall(loadfile(f)) + pcall(loadfile(f)) end -- compatibility functions (with iuplua.lua) -function iupSetClass(ctrl, name) +iup = {} +function iup.SetClass(ctrl, name) element = ctrl end -- dummy functions -iupluaNewClass = function() end -iupSetMethod = iupluaNewClass -iupRegisterWidget = iupluaNewClass +iupDoNothing = function() end +iupSetMethod = iupDoNothing +iup.RegisterWidget = iupDoNothing c_types = { n = "int", diff --git a/iup/srclua5/glcanvas.lua b/iup/srclua5/glcanvas.lua index 782e974..6a3fe75 100755 --- a/iup/srclua5/glcanvas.lua +++ b/iup/srclua5/glcanvas.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "glcanvas", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", funcname = "GLCanvas", include = "iupgl.h", @@ -17,9 +17,8 @@ int iupgllua_open(lua_State * L) if (iuplua_opencall_internal(L)) IupGLCanvasOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iupglcanvaslua_open(L); - iuplua_returnEnv(L); return 0; } @@ -38,9 +37,9 @@ int luaopen_iupluagl51(lua_State* L) ]] } -function ctrl.createElement(class, arg) - return GLCanvas() +function ctrl.createElement(class, param) + return iup.GLCanvas() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/hbox.lua b/iup/srclua5/hbox.lua index 38213bb..5a1b844 100755 --- a/iup/srclua5/hbox.lua +++ b/iup/srclua5/hbox.lua @@ -3,18 +3,18 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "hbox", - parent = BOX, + parent = iup.BOX, creation = "-", callback = {} } function ctrl.append(handle, elem) - Append(handle, elem) + iup.Append(handle, elem) end -function ctrl.createElement(class, arg) - return Hbox() +function ctrl.createElement(class, param) + return iup.Hbox() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/il.h b/iup/srclua5/il.h index 81a0140..5ef6b86 100755 --- a/iup/srclua5/il.h +++ b/iup/srclua5/il.h @@ -36,6 +36,7 @@ int iupcboxlua_open (lua_State * L); int iupspinboxlua_open (lua_State * L); int iupspinlua_open (lua_State * L); int iupsboxlua_open (lua_State * L); +int iupsplitlua_open (lua_State * L); int iupgclua_open (lua_State * L); int iupvallua_open (lua_State * L); int iuptabslua_open (lua_State * L); @@ -53,20 +54,15 @@ int iupclipboardlua_open(lua_State * L); void iupgetparamlua_open (lua_State * L); int iupluaScanf(lua_State *L); -int iupluaapi_open(lua_State * L); +void iupluaapi_open(lua_State * L); /* Registration */ -/** Sets the global index as the table "iup". - * Used to simplify the registration of functions and constants in the "iup" namespace. +/** Gets the global enviroment "iup". + Used by secondary iuplua modules. */ -void iuplua_changeEnv(lua_State *L); - -/** Resets the global index. - * Must match a iuplua_changeEnv call. - */ -void iuplua_returnEnv(lua_State *L); +void iuplua_get_env(lua_State *L); /** Returns true if IupOpen was called from inside the IupLua initialization function (iuplua_open). * All the other C intialization functions are called from the respective IupLua initialization functions. diff --git a/iup/srclua5/il_dial.c b/iup/srclua5/il_dial.c index 35532cd..242e838 100755 --- a/iup/srclua5/il_dial.c +++ b/iup/srclua5/il_dial.c @@ -22,7 +22,7 @@ static int dial_mousemove_cb(Ihandle *self, double p0) static int Dial(lua_State *L) { - Ihandle *ih = IupDial((char *) luaL_checkstring(L, 1)); + Ihandle *ih = IupDial((char *) luaL_optstring(L, 1, NULL)); iuplua_plugstate(L, ih); iuplua_pushihandle_raw(L, ih); return 1; diff --git a/iup/srclua5/il_dialog.c b/iup/srclua5/il_dialog.c index cc130c9..d3e8c29 100755 --- a/iup/srclua5/il_dialog.c +++ b/iup/srclua5/il_dialog.c @@ -12,24 +12,18 @@ #include "il.h" -static int dialog_move_cb(Ihandle *self, int p0, int p1) -{ - lua_State *L = iuplua_call_start(self, "move_cb"); - lua_pushnumber(L, p0); - lua_pushnumber(L, p1); - return iuplua_call(L, 2); -} - static int dialog_map_cb(Ihandle *self) { lua_State *L = iuplua_call_start(self, "map_cb"); return iuplua_call(L, 0); } -static int dialog_unmap_cb(Ihandle *self) +static int dialog_move_cb(Ihandle *self, int p0, int p1) { - lua_State *L = iuplua_call_start(self, "unmap_cb"); - return iuplua_call(L, 0); + lua_State *L = iuplua_call_start(self, "move_cb"); + lua_pushnumber(L, p0); + lua_pushnumber(L, p1); + return iuplua_call(L, 2); } static int dialog_dropfiles_cb(Ihandle *self, char * p0, int p1, int p2, int p3) @@ -42,6 +36,12 @@ static int dialog_dropfiles_cb(Ihandle *self, char * p0, int p1, int p2, int p3) return iuplua_call(L, 4); } +static int dialog_unmap_cb(Ihandle *self) +{ + lua_State *L = iuplua_call_start(self, "unmap_cb"); + return iuplua_call(L, 0); +} + static int dialog_show_cb(Ihandle *self, int p0) { lua_State *L = iuplua_call_start(self, "show_cb"); @@ -58,6 +58,12 @@ static int dialog_trayclick_cb(Ihandle *self, int p0, int p1, int p2) return iuplua_call(L, 3); } +static int dialog_destroy_cb(Ihandle *self) +{ + lua_State *L = iuplua_call_start(self, "destroy_cb"); + return iuplua_call(L, 0); +} + static int dialog_close_cb(Ihandle *self) { lua_State *L = iuplua_call_start(self, "close_cb"); @@ -76,12 +82,13 @@ int iupdialoglua_open(lua_State * L) { iuplua_register(L, Dialog, "Dialog"); - iuplua_register_cb(L, "MOVE_CB", (lua_CFunction)dialog_move_cb, NULL); iuplua_register_cb(L, "MAP_CB", (lua_CFunction)dialog_map_cb, NULL); - iuplua_register_cb(L, "UNMAP_CB", (lua_CFunction)dialog_unmap_cb, NULL); + iuplua_register_cb(L, "MOVE_CB", (lua_CFunction)dialog_move_cb, NULL); iuplua_register_cb(L, "DROPFILES_CB", (lua_CFunction)dialog_dropfiles_cb, NULL); + iuplua_register_cb(L, "UNMAP_CB", (lua_CFunction)dialog_unmap_cb, NULL); iuplua_register_cb(L, "SHOW_CB", (lua_CFunction)dialog_show_cb, NULL); iuplua_register_cb(L, "TRAYCLICK_CB", (lua_CFunction)dialog_trayclick_cb, NULL); + iuplua_register_cb(L, "DESTROY_CB", (lua_CFunction)dialog_destroy_cb, NULL); iuplua_register_cb(L, "CLOSE_CB", (lua_CFunction)dialog_close_cb, NULL); #include "clua/dialog.clua" diff --git a/iup/srclua5/il_frame.c b/iup/srclua5/il_frame.c index 7bf41db..cfc5314 100755 --- a/iup/srclua5/il_frame.c +++ b/iup/srclua5/il_frame.c @@ -14,7 +14,7 @@ static int Frame(lua_State *L) { - Ihandle *ih = IupFrame(iuplua_checkihandle(L, 1)); + Ihandle *ih = IupFrame(iuplua_checkihandleornil(L, 1)); iuplua_plugstate(L, ih); iuplua_pushihandle_raw(L, ih); return 1; diff --git a/iup/srclua5/il_getcolor.c b/iup/srclua5/il_getcolor.c index d468d38..4d6cf71 100755 --- a/iup/srclua5/il_getcolor.c +++ b/iup/srclua5/il_getcolor.c @@ -37,10 +37,10 @@ static int GetColor(lua_State *L) return 1; } } + int iupgclua_open(lua_State * L) { - lua_pushcfunction(L, GetColor); - lua_setglobal(L, "GetColor"); + iuplua_register(L, GetColor, "GetColor"); return 0; } diff --git a/iup/srclua5/il_getparam.c b/iup/srclua5/il_getparam.c index c7f4936..72c4303 100755 --- a/iup/srclua5/il_getparam.c +++ b/iup/srclua5/il_getparam.c @@ -94,6 +94,8 @@ static int GetParam(lua_State *L) param_data[i] = malloc(sizeof(float)); *(float*)(param_data[i]) = (float)luaL_checknumber(L, lua_param_start); lua_param_start++; break; + case 'f': + case 'c': case 's': case 'm': s = luaL_checkstring(L, lua_param_start); lua_param_start++; @@ -136,6 +138,8 @@ static int GetParam(lua_State *L) case 'r': lua_pushnumber(L, *(float*)(param_data[i])); break; + case 'f': + case 'c': case 's': case 'm': lua_pushstring(L, (char*)(param_data[i])); diff --git a/iup/srclua5/il_glcanvas.c b/iup/srclua5/il_glcanvas.c index 2100dd3..27f7277 100755 --- a/iup/srclua5/il_glcanvas.c +++ b/iup/srclua5/il_glcanvas.c @@ -49,9 +49,8 @@ int iupgllua_open(lua_State * L) if (iuplua_opencall_internal(L)) IupGLCanvasOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iupglcanvaslua_open(L); - iuplua_returnEnv(L); return 0; } diff --git a/iup/srclua5/il_olecontrol.c b/iup/srclua5/il_olecontrol.c index eeeae21..0878e96 100755 --- a/iup/srclua5/il_olecontrol.c +++ b/iup/srclua5/il_olecontrol.c @@ -36,9 +36,8 @@ int iupolelua_open(lua_State* L) if (iuplua_opencall_internal(L)) IupOleControlOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iupolecontrollua_open(L); - iuplua_returnEnv(L); return 0; } diff --git a/iup/srclua5/il_radio.c b/iup/srclua5/il_radio.c index c1b0fb4..3eaf250 100755 --- a/iup/srclua5/il_radio.c +++ b/iup/srclua5/il_radio.c @@ -14,7 +14,7 @@ static int Radio(lua_State *L) { - Ihandle *ih = IupRadio(iuplua_checkihandle(L, 1)); + Ihandle *ih = IupRadio(iuplua_checkihandleornil(L, 1)); iuplua_plugstate(L, ih); iuplua_pushihandle_raw(L, ih); return 1; diff --git a/iup/srclua5/il_sbox.c b/iup/srclua5/il_sbox.c index a9b196e..a617ecb 100755 --- a/iup/srclua5/il_sbox.c +++ b/iup/srclua5/il_sbox.c @@ -14,7 +14,7 @@ static int Sbox(lua_State *L) { - Ihandle *ih = IupSbox(iuplua_checkihandle(L, 1)); + Ihandle *ih = IupSbox(iuplua_checkihandleornil(L, 1)); iuplua_plugstate(L, ih); iuplua_pushihandle_raw(L, ih); return 1; diff --git a/iup/srclua5/il_split.c b/iup/srclua5/il_split.c new file mode 100644 index 0000000..416cc6f --- /dev/null +++ b/iup/srclua5/il_split.c @@ -0,0 +1,31 @@ +/****************************************************************************** + * Automatically generated file (iuplua5). Please don't change anything. * + *****************************************************************************/ + +#include <stdlib.h> + +#include <lua.h> +#include <lauxlib.h> + +#include "iup.h" +#include "iuplua.h" +#include "il.h" + + +static int Split(lua_State *L) +{ + Ihandle *ih = IupSplit(iuplua_checkihandleornil(L, 1), iuplua_checkihandleornil(L, 2)); + iuplua_plugstate(L, ih); + iuplua_pushihandle_raw(L, ih); + return 1; +} + +int iupsplitlua_open(lua_State * L) +{ + iuplua_register(L, Split, "Split"); + +#include "clua/split.clua" + + return 0; +} + diff --git a/iup/srclua5/il_submenu.c b/iup/srclua5/il_submenu.c index 81fd741..3465b3e 100755 --- a/iup/srclua5/il_submenu.c +++ b/iup/srclua5/il_submenu.c @@ -14,7 +14,7 @@ static int Submenu(lua_State *L) { - Ihandle *ih = IupSubmenu((char *) luaL_optstring(L, 1, NULL), iuplua_checkihandle(L, 2)); + Ihandle *ih = IupSubmenu((char *) luaL_optstring(L, 1, NULL), iuplua_checkihandleornil(L, 2)); iuplua_plugstate(L, ih); iuplua_pushihandle_raw(L, ih); return 1; diff --git a/iup/srclua5/il_tree.c b/iup/srclua5/il_tree.c index 16168d3..4ddc1a4 100755 --- a/iup/srclua5/il_tree.c +++ b/iup/srclua5/il_tree.c @@ -45,17 +45,17 @@ static int tree_rename_cb(Ihandle *self, int p0, char * p1) return iuplua_call(L, 2); } -static int tree_renamenode_cb(Ihandle *self, int p0, char * p1) +static int tree_multiunselection_cb(Ihandle *self, int p0, int p1) { - lua_State *L = iuplua_call_start(self, "renamenode_cb"); + lua_State *L = iuplua_call_start(self, "multiunselection_cb"); lua_pushnumber(L, p0); - lua_pushstring(L, p1); + lua_pushnumber(L, p1); return iuplua_call(L, 2); } -static int tree_showrename_cb(Ihandle *self, int p0) +static int tree_rightclick_cb(Ihandle *self, int p0) { - lua_State *L = iuplua_call_start(self, "showrename_cb"); + lua_State *L = iuplua_call_start(self, "rightclick_cb"); lua_pushnumber(L, p0); return iuplua_call(L, 1); } @@ -82,19 +82,18 @@ static int tree_executeleaf_cb(Ihandle *self, int p0) return iuplua_call(L, 1); } -static int tree_rightclick_cb(Ihandle *self, int p0) +static int tree_showrename_cb(Ihandle *self, int p0) { - lua_State *L = iuplua_call_start(self, "rightclick_cb"); + lua_State *L = iuplua_call_start(self, "showrename_cb"); lua_pushnumber(L, p0); return iuplua_call(L, 1); } -static int tree_noderemoved_cb(Ihandle *self, int p0, char * p1) +static int tree_noderemoved_cb(Ihandle *self, char * p0) { lua_State *L = iuplua_call_start(self, "noderemoved_cb"); - lua_pushnumber(L, p0); - lua_pushstring(L, p1); - return iuplua_call(L, 2); + lua_pushstring(L, p0); + return iuplua_call(L, 1); } static int Tree(lua_State *L) @@ -115,12 +114,12 @@ int iuptreelua_open(lua_State * L) iuplua_register_cb(L, "SELECTION_CB", (lua_CFunction)tree_selection_cb, NULL); iuplua_register_cb(L, "DRAGDROP_CB", (lua_CFunction)tree_dragdrop_cb, NULL); iuplua_register_cb(L, "RENAME_CB", (lua_CFunction)tree_rename_cb, NULL); - iuplua_register_cb(L, "RENAMENODE_CB", (lua_CFunction)tree_renamenode_cb, NULL); - iuplua_register_cb(L, "SHOWRENAME_CB", (lua_CFunction)tree_showrename_cb, NULL); + iuplua_register_cb(L, "MULTIUNSELECTION_CB", (lua_CFunction)tree_multiunselection_cb, NULL); + iuplua_register_cb(L, "RIGHTCLICK_CB", (lua_CFunction)tree_rightclick_cb, NULL); iuplua_register_cb(L, "MULTISELECTION_CB", (lua_CFunction)tree_multiselection_cb, NULL); iuplua_register_cb(L, "BRANCHCLOSE_CB", (lua_CFunction)tree_branchclose_cb, NULL); iuplua_register_cb(L, "EXECUTELEAF_CB", (lua_CFunction)tree_executeleaf_cb, NULL); - iuplua_register_cb(L, "RIGHTCLICK_CB", (lua_CFunction)tree_rightclick_cb, NULL); + iuplua_register_cb(L, "SHOWRENAME_CB", (lua_CFunction)tree_showrename_cb, NULL); iuplua_register_cb(L, "NODEREMOVED_CB", (lua_CFunction)tree_noderemoved_cb, NULL); iuplua_treefuncs_open(L); diff --git a/iup/srclua5/il_tree_aux.c b/iup/srclua5/il_tree_aux.c index 99e721b..6ebaa09 100755 --- a/iup/srclua5/il_tree_aux.c +++ b/iup/srclua5/il_tree_aux.c @@ -151,12 +151,26 @@ static int tree_multiselection_cb(Ihandle *ih, int* ids, int p1) return iuplua_call(L, 2); } -static int tree_noderemoved_cb(Ihandle *ih, int id, void* p1) +static int tree_multiunselection_cb(Ihandle *ih, int* ids, int p1) +{ + int i; + lua_State *L = iuplua_call_start(ih, "multiunselection_cb"); + lua_newtable(L); + for (i = 0; i < p1; i++) + { + lua_pushnumber(L,i+1); + lua_pushnumber(L,ids[i]); + lua_settable(L,-3); + } + lua_pushnumber(L, p1); + return iuplua_call(L, 2); +} + +static int tree_noderemoved_cb(Ihandle *ih, void* p1) { lua_State *L = iuplua_call_start(ih, "noderemoved_cb"); - lua_pushnumber(L, id); tree_push_userid(L, p1); - return iuplua_call(L, 2); + return iuplua_call(L, 1); } void iuplua_treefuncs_open (lua_State *L) @@ -164,6 +178,7 @@ void iuplua_treefuncs_open (lua_State *L) iuplua_dostring(L, "IUPTREEREFTABLE={}", ""); iuplua_register_cb(L, "MULTISELECTION_CB", (lua_CFunction)tree_multiselection_cb, NULL); + iuplua_register_cb(L, "MULTIUNSELECTION_CB", (lua_CFunction)tree_multiunselection_cb, NULL); iuplua_register_cb(L, "NODEREMOVED_CB", (lua_CFunction)tree_noderemoved_cb, NULL); /* In Lua 5: diff --git a/iup/srclua5/il_val.c b/iup/srclua5/il_val.c index eb6d731..f0420de 100755 --- a/iup/srclua5/il_val.c +++ b/iup/srclua5/il_val.c @@ -35,7 +35,7 @@ static int val_button_release_cb(Ihandle *self, double p0) static int Val(lua_State *L) { - Ihandle *ih = IupVal((char *) luaL_checkstring(L, 1)); + Ihandle *ih = IupVal((char *) luaL_optstring(L, 1, NULL)); iuplua_plugstate(L, ih); iuplua_pushihandle_raw(L, ih); return 1; diff --git a/iup/srclua5/image.lua b/iup/srclua5/image.lua index 38ef556..3a82063 100755 --- a/iup/srclua5/image.lua +++ b/iup/srclua5/image.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "image", - parent = WIDGET, + parent = iup.WIDGET, creation = "nns", -- fake definition callback = {}, createfunc = [[ @@ -84,13 +84,13 @@ static int Image (lua_State * L) ]] } -function ctrl.createElement(class, arg) - if (arg.width and arg.height and arg.pixels) then - return Image(arg.width, arg.height, arg.pixels, arg.colors) +function ctrl.createElement(class, param) + if (param.width and param.height and param.pixels) then + return iup.Image(param.width, param.height, param.pixels, param.colors) else - return Image(arg, arg.colors) + return iup.Image(param, param.colors) end end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/imagergb.lua b/iup/srclua5/imagergb.lua index caab772..e05a4bc 100755 --- a/iup/srclua5/imagergb.lua +++ b/iup/srclua5/imagergb.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "imagergb", - parent = WIDGET, + parent = iup.WIDGET, creation = "nns", -- fake definition funcname = "ImageRGB", callback = {}, @@ -23,9 +23,9 @@ static int ImageRGB(lua_State *L) ]] } -function ctrl.createElement(class, arg) - return ImageRGB(arg.width, arg.height, arg.pixels) +function ctrl.createElement(class, param) + return iup.ImageRGB(param.width, param.height, param.pixels) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/imagergba.lua b/iup/srclua5/imagergba.lua index 87eb967..0d77cb5 100755 --- a/iup/srclua5/imagergba.lua +++ b/iup/srclua5/imagergba.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "imagergba", - parent = WIDGET, + parent = iup.WIDGET, creation = "nns", -- fake definition funcname = "ImageRGBA", callback = {}, @@ -23,9 +23,9 @@ static int ImageRGBA(lua_State *L) ]] } -function ctrl.createElement(class, arg) - return ImageRGBA(arg.width, arg.height, arg.pixels) +function ctrl.createElement(class, param) + return iup.ImageRGBA(param.width, param.height, param.pixels) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/item.lua b/iup/srclua5/item.lua index cbd0c1e..d0ef38f 100755 --- a/iup/srclua5/item.lua +++ b/iup/srclua5/item.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "item", - parent = WIDGET, + parent = iup.WIDGET, creation = "S-", callback = { action = "", @@ -11,9 +11,9 @@ local ctrl = { } } -function ctrl.createElement(class, arg) - return Item(arg.title) +function ctrl.createElement(class, param) + return iup.Item(param.title) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/iuplua.c b/iup/srclua5/iuplua.c index c10d95e..4158990 100755 --- a/iup/srclua5/iuplua.c +++ b/iup/srclua5/iuplua.c @@ -91,10 +91,12 @@ static int traceback (lua_State *L) { lua_pushliteral(L, ""); lua_pushinteger(L, 2); /* skip this function */ lua_call(L, 2, 1); /* call debug.traceback */ + lua_getglobal(L, "iup"); /* store traceback in iup._LASTTRACEBACK */ lua_pushstring(L, "_LASTTRACEBACK"); lua_pushvalue(L, -3); lua_settable(L, -3); + lua_pop(L, 2); return 1; } @@ -107,7 +109,8 @@ static int docall (lua_State *L, int narg, int nret) lua_insert(L, base); /* put it under chunk and args */ status = lua_pcall(L, narg, nret, base); lua_remove(L, base); /* remove traceback function */ - if (status != 0) { + if (status != 0) + { /* force a complete garbage collection in case of errors */ lua_gc(L, LUA_GCCOLLECT, 0); /* put _LASTTRACEBACK at stack position 2 */ @@ -115,14 +118,17 @@ static int docall (lua_State *L, int narg, int nret) lua_pushliteral(L, "_LASTTRACEBACK"); lua_gettable(L, -2); lua_remove(L, -2); - if (!lua_isstring(L, -1)) { + if (!lua_isstring(L, -1)) + { lua_pop(L, 1); lua_pushliteral(L, ""); + /* set _LASTTRACEBACK as nil */ lua_getglobal(L, "iup"); lua_pushliteral(L, "_LASTTRACEBACK"); lua_pushnil(L); lua_settable(L, -3); + lua_pop(L, 1); } } @@ -330,9 +336,9 @@ lua_State* iuplua_call_start(Ihandle *ih, const char* name) { lua_State *L = iuplua_getstate(ih); - /* prepare to call iupCallMethod(name, handle, ...) */ + /* prepare to call iup.CallMethod(name, handle, ...) */ lua_getglobal(L,"iup"); - lua_pushstring(L,"iupCallMethod"); + lua_pushstring(L,"CallMethod"); lua_gettable(L, -2); lua_remove(L, -2); @@ -380,14 +386,16 @@ int iuplua_call_raw(lua_State* L, int nargs, int nresults) void iuplua_register_cb(lua_State *L, const char* name, lua_CFunction func, const char* type) { - lua_getglobal(L, "RegisterCallback"); + lua_getglobal(L,"iup"); + lua_pushstring(L,"RegisterCallback"); + lua_gettable(L, -2); lua_pushstring(L, name); lua_pushcfunction(L, func); lua_pushstring(L, type); lua_call(L, 3, 0); } -/* iupSetCallback(handle, name, func, value) */ +/* iup.SetCallback(handle, name, func, value) */ static int SetCallback(lua_State *L) { Icallback func; @@ -415,10 +423,10 @@ static int SetCallback(lua_State *L) /*************************************/ /* metatable */ -/* iupNewClass(class_name) +/* iup.NewClass(class_name) Calls: - iupNewClass("iup handle") - iupNewClass("iup widget") + iup.NewClass("iup handle") + iup.NewClass("iup widget") */ static int NewClass(lua_State *L) { @@ -430,10 +438,10 @@ static int NewClass(lua_State *L) return 0; } -/* iupSetClass(t, class_name) +/* iup.SetClass(t, class_name) Calls: - iupSetClass(handle, "iup handle") --Used only in RegisterHandle and WIDGET.constructor - iupSetClass(object, "iup widget") --Used whenever a new control class is created. + iup.SetClass(handle, "iup handle") --Used only in iup.RegisterHandle and WIDGET.constructor + iup.SetClass(object, "iup widget") --Used whenever a new control class is created. */ static int SetClass(lua_State *L) { @@ -447,7 +455,7 @@ static int SetClass(lua_State *L) return 0; } -/* class_name = iupGetClass(t) */ +/* class_name = iup.GetClass(t) */ static int GetClass(lua_State *L) { if (lua_istable(L, 1) || lua_isuserdata(L, 1)) @@ -464,9 +472,9 @@ static int GetClass(lua_State *L) return 1; } -/* iupSetMethod(class_name, method, function) +/* iup.SetMethod(class_name, method, function) For ex: - iupSetMethod("iup handle", "__index", ihandle_gettable) + iup.SetMethod("iup handle", "__index", ihandle_gettable) */ static int SetMethod(lua_State *L) { @@ -507,7 +515,7 @@ static int ihandle_compare(lua_State *L) /*************************************/ /* table <-> ihandle */ -/* local object = iupGetWidget(handle) */ +/* local object = iup.GetWidget(handle) */ static int GetWidget(lua_State *L) { /* Pushes a table that is associanted with an ihandle */ @@ -521,7 +529,7 @@ static int GetWidget(lua_State *L) return 1; } -/* iupSetWidget(handle, object) */ +/* iup.SetWidget(handle, object) */ static int SetWidget(lua_State *L) { /* Saves the object table reference as an attribute, @@ -540,18 +548,9 @@ static int SetWidget(lua_State *L) /*************************************/ /* registration */ -void iuplua_changeEnv(lua_State *L) +void iuplua_get_env(lua_State *L) { - /* Replaces global environment */ - lua_pushvalue(L, LUA_GLOBALSINDEX); lua_getglobal(L, "iup"); - lua_replace(L, LUA_GLOBALSINDEX); -} - -void iuplua_returnEnv(lua_State *L) -{ - /* reestablishes global environment */ - lua_replace(L, LUA_GLOBALSINDEX); } int iuplua_opencall_internal(lua_State * L) @@ -568,16 +567,18 @@ int iuplua_opencall_internal(lua_State * L) return ret; } +/* iup[name] = func */ void iuplua_register(lua_State *L, lua_CFunction func, const char* name) { lua_pushcfunction(L, func); - lua_setglobal(L, name); + lua_setfield(L, -2, name); } +/* iup[name] = s */ void iuplua_regstring(lua_State *L, const char* s, const char* name) { lua_pushstring(L, s); - lua_setglobal(L, name); + lua_setfield(L, -2, name); } /***************************************************************************** @@ -675,7 +676,8 @@ static int GetFromC(lua_State *L) static void register_key(char *name, int code, void* user_data) { lua_State *L = (lua_State*)user_data; - lua_pushnumber(L, code); lua_setglobal(L, name); + lua_pushnumber(L, code); + lua_setfield(L, -2, name); } /* from iupkey.c */ @@ -740,29 +742,23 @@ static void setinfo (lua_State *L) { /* table "iup" is at the stack */ - lua_pushliteral (L, "_COPYRIGHT"); lua_pushliteral (L, IUP_COPYRIGHT); - lua_settable (L, -3); + lua_setfield(L, -2, "_COPYRIGHT"); - lua_pushliteral (L, "_DESCRIPTION"); lua_pushliteral (L, IUP_DESCRIPTION); - lua_settable (L, -3); + lua_setfield(L, -2, "_DESCRIPTION"); - lua_pushliteral (L, "_NAME"); lua_pushliteral (L, IUP_NAME); - lua_settable (L, -3); + lua_setfield(L, -2, "_NAME"); - lua_pushliteral (L, "_VERSION"); lua_pushstring (L, IupVersion()); - lua_settable (L, -3); + lua_setfield(L, -2, "_VERSION"); - lua_pushliteral (L, "_VERSION_DATE"); lua_pushliteral (L, IUP_VERSION_DATE); - lua_settable (L, -3); + lua_setfield(L, -2, "_VERSION_DATE"); - lua_pushliteral (L, "_VERSION_NUMBER"); lua_pushinteger (L, IupVersionNumber()); - lua_settable (L, -3); + lua_setfield(L, -2, "_VERSION_NUMBER"); } int iuplua_open(lua_State * L) @@ -775,13 +771,13 @@ int iuplua_open(lua_State * L) {"Close", iuplua_close}, {"SetIdle", SetIdle}, {"GetFromC", GetFromC}, - {"iupGetWidget", GetWidget}, - {"iupSetWidget", SetWidget}, - {"iupNewClass", NewClass}, - {"iupSetClass", SetClass}, - {"iupGetClass", GetClass}, - {"iupSetMethod", SetMethod}, - {"iupSetCallback", SetCallback}, + {"GetWidget", GetWidget}, + {"SetWidget", SetWidget}, + {"NewClass", NewClass}, + {"SetClass", SetClass}, + {"GetClass", GetClass}, + {"SetMethod", SetMethod}, + {"SetCallback", SetCallback}, {"ihandle_compare", ihandle_compare}, {"ihandle_tostring", ihandle_tostring}, {NULL, NULL}, @@ -793,35 +789,22 @@ int iuplua_open(lua_State * L) ret = lua_tointeger(L, -1); /* retrieve IupOpen return value */ lua_pop(L, -1); - /* Creating global namespace iup */ - lua_newtable(L); - lua_setglobal(L, "iup"); - /* Registers functions in iup namespace */ - luaL_openlib(L, "iup", funcs, 0); + luaL_register(L, "iup", funcs); /* leave "iup" table at the top of the stack */ iupluaapi_open(L); /* set version info */ setinfo(L); /* register if IupOpen was called here or from outside IupLua */ - lua_pushliteral (L, "_IUPOPEN_CALL"); + /* iup._IUPOPEN_CALL = EXTERNAL|INTERNAL */ if (ret == IUP_OPENED) lua_pushliteral (L, "EXTERNAL"); else lua_pushliteral (L, "INTERNAL"); - lua_settable (L, -3); + lua_setfield(L, -2, "_IUPOPEN_CALL"); - /* used by Idle */ + /* used by Idle in Lua */ IupSetGlobal("_IUP_LUA_DEFAULT_STATE", (char *) L); - /* Creating new environment with metamethod __index - * (so that normal Lua functions will be found while GLOBALSINDEX is the "iup" environment) */ - iuplua_dostring(L, "iup._G = _G\ - setmetatable(iup, {__index = iup._G})", "iuplua_setmetatable_global"); - - /* Changing environment to iup - * (all created variables and functions from now on will be put in "iup" environment) */ - iuplua_changeEnv(L); - #include "clua/iuplua.clua" #include "clua/constants.clua" @@ -857,6 +840,7 @@ int iuplua_open(lua_State * L) iupzboxlua_open(L); iuptimerlua_open(L); iupsboxlua_open(L); + iupsplitlua_open(L); iupspinlua_open(L); iupspinboxlua_open(L); iupcboxlua_open(L); @@ -875,8 +859,6 @@ int iuplua_open(lua_State * L) iuptreelua_open(L); iupclipboardlua_open(L); - iuplua_returnEnv(L); - return 0; /* nothing in stack */ } diff --git a/iup/srclua5/iuplua.lua b/iup/srclua5/iuplua.lua index a88bf5d..6cd64b4 100755 --- a/iup/srclua5/iuplua.lua +++ b/iup/srclua5/iuplua.lua @@ -4,17 +4,17 @@ -- Callback handler ------------------------------------------------------------------------------ -callbacks = {} +iup.callbacks = {} -function iupCallMethod(name, ...) - local handle = ... -- always the handle +function iup.CallMethod(name, ...) + local handle = arg[1] -- always the handle local func = handle[name] if (not func) then return end if type(func) == "function" then - return func(...) + return func(unpack(arg)) elseif type(func) == "string" then local temp = self self = handle @@ -26,9 +26,9 @@ function iupCallMethod(name, ...) end end -function RegisterCallback(name, func, type) - if not callbacks[name] then callbacks[name] = {} end - local cb = callbacks[name] +function iup.RegisterCallback(name, func, type) + if not iup.callbacks[name] then iup.callbacks[name] = {} end + local cb = iup.callbacks[name] if type then cb[type] = func else @@ -52,24 +52,24 @@ local widget_gettable = function(object, index) end end -iupNewClass("iup widget") -iupSetMethod("iup widget", "__index", widget_gettable) +iup.NewClass("iup widget") +iup.SetMethod("iup widget", "__index", widget_gettable) local ihandle_gettable = function(handle, index) local INDEX = string.upper(index) - if (callbacks[INDEX]) then - local object = iupGetWidget(handle) + if (iup.callbacks[INDEX]) then + local object = iup.GetWidget(handle) if (not object or type(object)~="table") then error("invalid iup handle") end return object[index] else - local value = GetAttribute(handle, INDEX) + local value = iup.GetAttribute(handle, INDEX) if (not value) then - local object = iupGetWidget(handle) + local object = iup.GetWidget(handle) if (not object or type(object)~="table") then error("invalid iup handle") end return object[index] - elseif type(value)== "number" or type(value) == "string" then - local ih = GetHandle(value) + elseif type(value)== "number" or type(value) == "string" then + local ih = iup.GetHandle(value) if ih then return ih else return value end else @@ -81,24 +81,24 @@ end local ihandle_settable = function(handle, index, value) local ti = type(index) local tv = type(value) - local object = iupGetWidget(handle) + local object = iup.GetWidget(handle) if (not object or type(object)~="table") then error("invalid iup handle") end if ti == "number" or ti == "string" then -- check if a valid C name local INDEX = string.upper(index) - local cb = callbacks[INDEX] + local cb = iup.callbacks[INDEX] if (cb) then -- if a callback name local func = cb[1] if (not func) then - func = cb[GetClassName(handle)] + func = cb[iup.GetClassName(handle)] end - iupSetCallback(handle, INDEX, func, value) -- register the pre-defined C callback + iup.SetCallback(handle, INDEX, func, value) -- register the pre-defined C callback object[index] = value -- store also in Lua - elseif iupGetClass(value) == "iup handle" then -- if a iup handle - local name = ihandle_setname(value) - SetAttribute(handle, INDEX, name) + elseif iup.GetClass(value) == "iup handle" then -- if a iup handle + local name = iup.SetHandleName(value) + iup.SetAttribute(handle, INDEX, name) object[index] = nil -- if there was something in Lua remove it elseif tv == "string" or tv == "number" or tv == "nil" then -- if a common value - SetAttribute(handle, INDEX, value) + iup.SetAttribute(handle, INDEX, value) object[index] = nil -- if there was something in Lua remove it else object[index] = value -- store also in Lua @@ -108,38 +108,39 @@ local ihandle_settable = function(handle, index, value) end end -iupNewClass("iup handle") -iupSetMethod("iup handle", "__index", ihandle_gettable) -iupSetMethod("iup handle", "__newindex", ihandle_settable) -iupSetMethod("iup handle", "__tostring", ihandle_tostring) -iupSetMethod("iup handle", "__eq", ihandle_compare) -- implemented in C +iup.NewClass("iup handle") +iup.SetMethod("iup handle", "__index", ihandle_gettable) +iup.SetMethod("iup handle", "__newindex", ihandle_settable) +iup.SetMethod("iup handle", "__tostring", iup.ihandle_tostring) -- implemented in C +iup.SetMethod("iup handle", "__eq", iup.ihandle_compare) -- implemented in C ------------------------------------------------------------------------------ -- Utilities ------------------------------------------------------------------------------ -function ihandle_setname(v) -- used also by radio and zbox - local name = GetName(v) +function iup.SetHandleName(v) -- used also by radio and zbox + local name = iup.GetName(v) if not name then local autoname = string.format("_IUPLUA_NAME(%s)", tostring(v)) - SetHandle(autoname, v) + iup.SetHandle(autoname, v) return autoname end return name end -function iupRegisterWidget(ctrl) -- called by all the controls initialization functions - iup[ctrl.nick] = function(arg) - return ctrl:constructor(arg) +function iup.RegisterWidget(ctrl) -- called by all the controls initialization functions + iup[ctrl.nick] = function(param) + if (not ctrl.constructor) then print(ctrl.nick) end + return ctrl:constructor(param) end end -function RegisterHandle(handle, typename) +function iup.RegisterHandle(handle, typename) - iupSetClass(handle, "iup handle") + iup.SetClass(handle, "iup handle") - local object = iupGetWidget(handle) + local object = iup.GetWidget(handle) if not object then local class = iup[string.upper(typename)] @@ -148,8 +149,8 @@ function RegisterHandle(handle, typename) end local object = { parent=class, handle=handle } - iupSetClass(object, "iup widget") - iupSetWidget(handle, object) + iup.SetClass(object, "iup widget") + iup.SetWidget(handle, object) end return handle @@ -159,39 +160,39 @@ end -- Widget class (top class) ------------------------------------------------------------------------------ -WIDGET = { +iup.WIDGET = { callback = {} } -function WIDGET.show(object) - Show(object.handle) +function iup.WIDGET.show(object) + iup.Show(object.handle) end -function WIDGET.hide(object) - Hide(object.handle) +function iup.WIDGET.hide(object) + iup.Hide(object.handle) end -function WIDGET.map(object) - Map(object.handle) +function iup.WIDGET.map(object) + iup.Map(object.handle) end -function WIDGET.constructor(class, arg) - local handle = class:createElement(arg) +function iup.WIDGET.constructor(class, param) + local handle = class:createElement(param) local object = { parent = class, handle = handle } - iupSetClass(handle, "iup handle") - iupSetClass(object, "iup widget") - iupSetWidget(handle, object) - object:setAttributes(arg) + iup.SetClass(handle, "iup handle") + iup.SetClass(object, "iup widget") + iup.SetWidget(handle, object) + object:setAttributes(param) return handle end -function WIDGET.setAttributes(object, arg) +function iup.WIDGET.setAttributes(object, param) local handle = object.handle - for i,v in pairs(arg) do - if type(i) == "number" and iupGetClass(v) == "iup handle" then + for i,v in pairs(param) do + if type(i) == "number" and iup.GetClass(v) == "iup handle" then -- We should not set this or other elements (such as iuptext) -- will erroneosly inherit it rawset(object, i, v) @@ -204,63 +205,63 @@ end -- all the objects in the hierarchy must be "iup widget" -- Must repeat this call for every new widget -iupSetClass(WIDGET, "iup widget") +iup.SetClass(iup.WIDGET, "iup widget") ------------------------------------------------------------------------------ -- Box class (inherits from WIDGET) ------------------------------------------------------------------------------ -BOX = { - parent = WIDGET +iup.BOX = { + parent = iup.WIDGET } -function BOX.setAttributes(object, arg) +function iup.BOX.setAttributes(object, param) local handle = rawget(object, "handle") - local n = #arg + local n = #param for i = 1, n do - if iupGetClass(arg[i]) == "iup handle" then - Append(handle, arg[i]) + if iup.GetClass(param[i]) == "iup handle" then + iup.Append(handle, param[i]) end end - WIDGET.setAttributes(object, arg) + iup.WIDGET.setAttributes(object, param) end -iupSetClass(BOX, "iup widget") +iup.SetClass(iup.BOX, "iup widget") ------------------------------------------------------------------------------ -- Compatibility functions. ------------------------------------------------------------------------------ -error_message_popup = nil +iup.error_message_popup = nil -function _ERRORMESSAGE(err,traceback) +function iup._ERRORMESSAGE(err,traceback) err = err..(traceback or "") - if (error_message_popup) then - error_message_popup.value = err + if (iup.error_message_popup) then + iup.error_message_popup.value = err else - local bt = button{title="Ok", size="60", action="error_message_popup = nil; return iup.CLOSE"} - local ml = multiline{expand="YES", readonly="YES", value=err, size="300x150"} - local vb = vbox{ml, bt; alignment="ACENTER", margin="10x10", gap="10"} - local dg = dialog{vb; title="Error Message",defaultesc=bt,defaultenter=bt,startfocus=bt} - error_message_popup = ml + local bt = iup.button{title="Ok", size="60", action="iup.error_message_popup = nil; return iup.CLOSE"} + local ml = iup.multiline{expand="YES", readonly="YES", value=err, size="300x150"} + local vb = iup.vbox{ml, bt; alignment="ACENTER", margin="10x10", gap="10"} + local dg = iup.dialog{vb; title="Error Message",defaultesc=bt,defaultenter=bt,startfocus=bt} + iup.error_message_popup = ml dg:popup(CENTER, CENTER) dg:destroy() - error_message_popup = nil + iup.error_message_popup = nil end end -pack = function (...) return {...} end +iup.pack = function (...) return arg end -function protectedcall_(f, err) +function iup.protectedcall_(f, err) if not f then - _ERRORMESSAGE(err) + iup._ERRORMESSAGE(err) return end - local ret = pack(pcall(f)) + local ret = iup.pack(pcall(f)) if not ret[1] then - _ERRORMESSAGE(ret[2]) + iup._ERRORMESSAGE(ret[2]) return else table.remove(ret, 1) @@ -268,10 +269,10 @@ function protectedcall_(f, err) end end -function dostring(s) return protectedcall_(loadstring(s)) end -function dofile(f) return protectedcall_(loadfile(f)) end +function iup.dostring(s) return iup.protectedcall_(loadstring(s)) end +function iup.dofile(f) return iup.protectedcall_(loadfile(f)) end -function RGB(r, g, b) +function iup.RGB(r, g, b) return string.format("%d %d %d", 255*r, 255*g, 255*b) end diff --git a/iup/srclua5/iuplua5.def b/iup/srclua5/iuplua5.def index 78b2a6f..667f81d 100755 --- a/iup/srclua5/iuplua5.def +++ b/iup/srclua5/iuplua5.def @@ -8,13 +8,12 @@ EXPORTS iuplua_call iuplua_call_rs iuplua_call_raw + iuplua_get_env iuplua_pushihandle iuplua_pushihandle_raw iuplua_dofile iuplua_dostring iupkey_open - iuplua_returnEnv - iuplua_changeEnv iuplua_opencall_internal luaopen_iuplua luaopen_iuplua51 diff --git a/iup/srclua5/iuplua_api.c b/iup/srclua5/iuplua_api.c index 8673442..adf5383 100755 --- a/iup/srclua5/iuplua_api.c +++ b/iup/srclua5/iuplua_api.c @@ -99,7 +99,7 @@ static int GetAttribute (lua_State *L) Ihandle *ih = iuplua_checkihandle(L,1); const char *name = luaL_checkstring(L,2); const char *value = IupGetAttribute(ih, name); - if (!value || iupAttribIsInternal(name)) + if (!value || iupATTRIB_ISINTERNAL(name)) lua_pushnil(L); else { @@ -313,6 +313,12 @@ static int LoopStep(lua_State *L) return 1; } +static int LoopStepWait(lua_State *L) +{ + lua_pushnumber(L,IupLoopStepWait()); + return 1; +} + static int ExitLoop(lua_State *L) { (void)L; @@ -774,7 +780,7 @@ static int UnMapFont (lua_State *L) ****************************************************************************/ -int iupluaapi_open(lua_State * L) +void iupluaapi_open(lua_State * L) { struct luaL_reg funcs[] = { {"Append", Append}, @@ -806,6 +812,7 @@ int iupluaapi_open(lua_State * L) {"Load", Load}, {"LoadBuffer", LoadBuffer}, {"LoopStep", LoopStep}, + {"LoopStepWait", LoopStepWait}, {"ExitLoop", ExitLoop}, {"MainLoop", MainLoop}, {"MainLoopLevel", MainLoopLevel}, @@ -867,8 +874,6 @@ int iupluaapi_open(lua_State * L) {NULL, NULL}, }; - /* Registers functions in iup namespace */ - luaL_openlib(L, NULL, funcs, 0); - - return 0; /* nothing in stack */ + /* "iup" table is at the top of the stack */ + luaL_register(L, NULL, funcs); } diff --git a/iup/srclua5/iuplua_controls.c b/iup/srclua5/iuplua_controls.c index bd961bf..22992f4 100755 --- a/iup/srclua5/iuplua_controls.c +++ b/iup/srclua5/iuplua_controls.c @@ -20,7 +20,7 @@ int iupcontrolslua_open(lua_State * L) if (iuplua_opencall_internal(L)) IupControlsOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iupgaugelua_open(L); iupmatrixlua_open(L); @@ -30,8 +30,6 @@ int iupcontrolslua_open(lua_State * L) iupcellslua_open(L); iupcolorbarlua_open(L); - iuplua_returnEnv(L); - return 0; } diff --git a/iup/srclua5/iuplua_glcanvas.c b/iup/srclua5/iuplua_glcanvas.c index c50ba8f..8a13616 100755 --- a/iup/srclua5/iuplua_glcanvas.c +++ b/iup/srclua5/iuplua_glcanvas.c @@ -29,11 +29,10 @@ static int GLMakeCurrent(lua_State *L) { IupGLMakeCurrent(iuplua_checkihandle(L,1)); - iuplua_changeEnv(L); + iuplua_get_env(L); iuplua_regstring(L, (const char*)glGetString(GL_VENDOR), "GL_VENDOR"); iuplua_regstring(L, (const char*)glGetString(GL_RENDERER), "GL_RENDERER"); iuplua_regstring(L, (const char*)glGetString(GL_VERSION), "GL_VERSION"); - iuplua_returnEnv(L); return 0; } diff --git a/iup/srclua5/iuplua_im.c b/iup/srclua5/iuplua_im.c index b700e1a..0d9005d 100755 --- a/iup/srclua5/iuplua_im.c +++ b/iup/srclua5/iuplua_im.c @@ -34,10 +34,9 @@ static int LoadImage(lua_State *L) int iupimlua_open(lua_State *L) { - iuplua_changeEnv(L); + iuplua_get_env(L); iuplua_register(L, LoadImage, "LoadImage"); iuplua_register(L, SaveImage, "SaveImage"); - iuplua_returnEnv(L); return 0; /* nothing in stack */ } diff --git a/iup/srclua5/iuplua_imglib.c b/iup/srclua5/iuplua_imglib.c index bece6d5..9eb1123 100755 --- a/iup/srclua5/iuplua_imglib.c +++ b/iup/srclua5/iuplua_imglib.c @@ -27,9 +27,8 @@ static int iupluaimglib_open (lua_State *L) { IupImageLibOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iuplua_register(L, imagelibopen, "ImageLibOpen"); - iuplua_returnEnv(L); return 0; /* nothing in stack */ } diff --git a/iup/srclua5/iuplua_pplot.c b/iup/srclua5/iuplua_pplot.c index 08b04bd..21b5090 100755 --- a/iup/srclua5/iuplua_pplot.c +++ b/iup/srclua5/iuplua_pplot.c @@ -140,9 +140,8 @@ int iup_pplotlua_open(lua_State * L) if (iuplua_opencall_internal(L)) IupPPlotOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iuppplotlua_open(L); - iuplua_returnEnv(L); return 0; } diff --git a/iup/srclua5/label.lua b/iup/srclua5/label.lua index 11894a6..a62165c 100755 --- a/iup/srclua5/label.lua +++ b/iup/srclua5/label.lua @@ -3,14 +3,14 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "label", - parent = WIDGET, + parent = iup.WIDGET, creation = "S", callback = {} } -function ctrl.createElement(class, arg) - return Label(arg.title) +function ctrl.createElement(class, param) + return iup.Label(param.title) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/list.lua b/iup/srclua5/list.lua index 5c927f2..f0dcc2a 100755 --- a/iup/srclua5/list.lua +++ b/iup/srclua5/list.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "list", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", callback = { action = "snn", @@ -14,9 +14,9 @@ local ctrl = { } } -function ctrl.createElement(class, arg) - return List() +function ctrl.createElement(class, param) + return iup.List() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/matrix.lua b/iup/srclua5/matrix.lua index 81aa732..ca52048 100755 --- a/iup/srclua5/matrix.lua +++ b/iup/srclua5/matrix.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "matrix", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", callback = { action_cb = "nnnns", @@ -30,17 +30,17 @@ local ctrl = { extrafuncs = 1, } -function ctrl.createElement(class, arg) - return Matrix(arg.action) +function ctrl.createElement(class, param) + return iup.Matrix(param.action) end function ctrl.setcell(handle, l, c, val) - SetAttribute(handle,l..":"..c,val) + iup.SetAttribute(handle,l..":"..c,val) end function ctrl.getcell(handle, l, c) - return GetAttribute(handle,l..":"..c) + return iup.GetAttribute(handle,l..":"..c) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/menu.lua b/iup/srclua5/menu.lua index 89cd241..70be236 100755 --- a/iup/srclua5/menu.lua +++ b/iup/srclua5/menu.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "menu", - parent = BOX, + parent = iup.BOX, creation = "-", callback = { open_cb = "", @@ -12,44 +12,44 @@ local ctrl = { } function ctrl.popup(handle, x, y) - Popup(handle, x, y) + iup.Popup(handle, x, y) end function ctrl.append(handle, elem) - Append(handle, elem) + iup.Append(handle, elem) end -function ctrl.createElement(class, arg) - local n = #arg +function ctrl.createElement(class, param) + local n = #param for i=1,n do - if type(arg[i]) == "table" then - itemarg = {} - for u,v in pairs(arg[i]) do + if type(param[i]) == "table" then + local itemarg = {} + for u,v in pairs(param[i]) do if type(u) ~= "number" then itemarg[u] = v end end - if type(arg[i][1]) == "string" and (type(arg[i][2]) == "function" or type(arg[i][2]) == "string") then - itemarg.title = arg[i][1] - itemarg.action = arg[i][2] - arg[i] = item(itemarg) - elseif type(arg[i][1]) == "string" and type(arg[i][2]) == "userdata" then - itemarg[1] = arg[i][2] - itemarg.title = arg[i][1] - arg[i] = submenu(itemarg) + if type(param[i][1]) == "string" and (type(param[i][2]) == "function" or type(param[i][2]) == "string") then + itemarg.title = param[i][1] + itemarg.action = param[i][2] + param[i] = iup.item(itemarg) + elseif type(param[i][1]) == "string" and type(param[i][2]) == "userdata" then + itemarg[1] = param[i][2] + itemarg.title = param[i][1] + param[i] = iup.submenu(itemarg) end end end - return Menu() + return iup.Menu() end function ctrl.showxy(handle, x, y) - return ShowXY(handle, x, y) + return iup.ShowXY(handle, x, y) end function ctrl.destroy(handle) - return Destroy(handle) + return iup.Destroy(handle) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/messagedlg.lua b/iup/srclua5/messagedlg.lua index e81eede..2dcb73d 100755 --- a/iup/srclua5/messagedlg.lua +++ b/iup/srclua5/messagedlg.lua @@ -3,24 +3,24 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "messagedlg", - parent = WIDGET, + parent = iup.WIDGET, creation = "", funcname = "MessageDlg", callback = {} } function ctrl.popup(handle, x, y) - Popup(handle,x,y) + iup.Popup(handle,x,y) end function ctrl.destroy(handle) - return Destroy(handle) + return iup.Destroy(handle) end -function ctrl.createElement(class, arg) - return MessageDlg() +function ctrl.createElement(class, param) + return iup.MessageDlg() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/multiline.lua b/iup/srclua5/multiline.lua index 9ae766e..a20ba83 100755 --- a/iup/srclua5/multiline.lua +++ b/iup/srclua5/multiline.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "multiline", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", callback = { action = "ns", @@ -11,9 +11,9 @@ local ctrl = { funcname = "MultiLine", } -function ctrl.createElement(class, arg) - return MultiLine() +function ctrl.createElement(class, param) + return iup.MultiLine() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/normalizer.lua b/iup/srclua5/normalizer.lua index 201aab0..293e460 100755 --- a/iup/srclua5/normalizer.lua +++ b/iup/srclua5/normalizer.lua @@ -4,25 +4,25 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "normalizer", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", callback = {} } -function ctrl.setAttributes(object, arg) +function ctrl.setAttributes(object, param) local handle = rawget(object, "handle") - local n = #arg + local n = #param for i = 1, n do - if iupGetClass(arg[i]) == "iup handle" then - object.addcontrol = arg[i] + if iup.GetClass(param[i]) == "iup handle" then + object.addcontrol = param[i] end end - WIDGET.setAttributes(object, arg) + iup.WIDGET.setAttributes(object, param) end -function ctrl.createElement(class, arg) - return Normalizer() +function ctrl.createElement(class, param) + return iup.Normalizer() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/olecontrol.lua b/iup/srclua5/olecontrol.lua index 902977b..ab7afd5 100755 --- a/iup/srclua5/olecontrol.lua +++ b/iup/srclua5/olecontrol.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "olecontrol", - parent = WIDGET, + parent = iup.WIDGET, creation = "s", funcname = "OleControl", callback = {}, @@ -14,9 +14,8 @@ int iupolelua_open(lua_State* L) if (iuplua_opencall_internal(L)) IupOleControlOpen(); - iuplua_changeEnv(L); + iuplua_get_env(L); iupolecontrollua_open(L); - iuplua_returnEnv(L); return 0; } @@ -35,8 +34,8 @@ int luaopen_iupluaole51(lua_State* L) ]] } -function ctrl.createElement(class, arg) - return OleControl(arg[1]) +function ctrl.createElement(class, param) + return iup.OleControl(param[1]) end function ctrl.CreateLuaCOM(handle) @@ -50,5 +49,5 @@ function ctrl.CreateLuaCOM(handle) end end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/pplot.lua b/iup/srclua5/pplot.lua index 5d6a2f4..eb79876 100755 --- a/iup/srclua5/pplot.lua +++ b/iup/srclua5/pplot.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "pplot", - parent = WIDGET, + parent = iup.WIDGET, creation = "", funcname = "PPlot", callback = { @@ -23,9 +23,9 @@ local ctrl = { extrafuncs = 1, } -function ctrl.createElement(class, arg) - return PPlot(arg.action) +function ctrl.createElement(class, param) + return iup.PPlot(param.action) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/progressbar.lua b/iup/srclua5/progressbar.lua index 16b4a09..e591e49 100755 --- a/iup/srclua5/progressbar.lua +++ b/iup/srclua5/progressbar.lua @@ -3,15 +3,15 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "progressbar", - parent = WIDGET, + parent = iup.WIDGET, creation = "", funcname = "ProgressBar", callback = {} } -function ctrl.createElement(class, arg) - return ProgressBar() +function ctrl.createElement(class, param) + return iup.ProgressBar() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/radio.lua b/iup/srclua5/radio.lua index 1cdd3a6..7af6540 100755 --- a/iup/srclua5/radio.lua +++ b/iup/srclua5/radio.lua @@ -3,31 +3,31 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "radio", - parent = WIDGET, - creation = "i", + parent = iup.WIDGET, + creation = "I", callback = {} } -function ctrl.CreateChildrenNames(obj) +function ctrl.SetChildrenNames(obj) if obj then - if obj.parent.parent == BOX then + if obj.parent.parent == iup.BOX then local i = 1 while obj[i] do - ctrl.CreateChildrenNames (obj[i]) + ctrl.SetChildrenNames (obj[i]) i = i+1 end - elseif obj.parent == IUPFRAME then - ctrl.CreateChildrenNames (obj[1]) + elseif obj.parent == iup.FRAME then + ctrl.SetChildrenNames (obj[1]) else - ihandle_setname(obj) + iup.SetHandleName(obj) end end end -function ctrl.createElement(class, arg) - ctrl.CreateChildrenNames(arg[1]) - return Radio(arg[1]) +function ctrl.createElement(class, param) + ctrl.SetChildrenNames(param[1]) + return iup.Radio(param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/sbox.lua b/iup/srclua5/sbox.lua index 9ee63ba..7bc7bb1 100755 --- a/iup/srclua5/sbox.lua +++ b/iup/srclua5/sbox.lua @@ -2,15 +2,15 @@ -- Sbox class ------------------------------------------------------------------------------ local ctrl = { - nick = "sbox", - parent = WIDGET, - creation = "i", + nick = "sbox", + parent = iup.WIDGET, + creation = "I", callback = {} } -function ctrl.createElement(class, arg) - return Sbox(arg[1]) +function ctrl.createElement(class, param) + return iup.Sbox(param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/separator.lua b/iup/srclua5/separator.lua index 1841d6a..bc86422 100755 --- a/iup/srclua5/separator.lua +++ b/iup/srclua5/separator.lua @@ -3,14 +3,14 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "separator", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = {} } -function ctrl.createElement(class, arg) - return Separator() +function ctrl.createElement(class, param) + return iup.Separator() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/spin.lua b/iup/srclua5/spin.lua index b6e2044..5118a0e 100755 --- a/iup/srclua5/spin.lua +++ b/iup/srclua5/spin.lua @@ -3,16 +3,16 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "spin", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { spin_cb = "n", }, } -function ctrl.createElement(class, arg) - return Spin(arg.action) +function ctrl.createElement(class, param) + return iup.Spin(param.action) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/spinbox.lua b/iup/srclua5/spinbox.lua index c671e6a..3b6c7f1 100755 --- a/iup/srclua5/spinbox.lua +++ b/iup/srclua5/spinbox.lua @@ -3,16 +3,16 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "spinbox", - parent = WIDGET, + parent = iup.WIDGET, creation = "i", callback = { spin_cb = "n", }, } -function ctrl.createElement(class, arg) - return Spinbox(arg[1]) +function ctrl.createElement(class, param) + return iup.Spinbox(param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/split.lua b/iup/srclua5/split.lua new file mode 100644 index 0000000..7b1bc2b --- /dev/null +++ b/iup/srclua5/split.lua @@ -0,0 +1,16 @@ +------------------------------------------------------------------------------ +-- Split class +------------------------------------------------------------------------------ +local ctrl = { + nick = "split", + parent = iup.WIDGET, + creation = "II", + callback = {} +} + +function ctrl.createElement(class, param) + return iup.Split(param[1], param[2]) +end + +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/submenu.lua b/iup/srclua5/submenu.lua index 5dc76d4..faba80e 100755 --- a/iup/srclua5/submenu.lua +++ b/iup/srclua5/submenu.lua @@ -3,17 +3,17 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "submenu", - parent = WIDGET, - creation = "Si", + parent = iup.WIDGET, + creation = "SI", callback = { -- open_cb = "", -- already registered by the menu -- menuclose_cb = "", -- already registered by the menu } } -function ctrl.createElement(class, arg) - return Submenu(arg.title, arg[1]) +function ctrl.createElement(class, param) + return iup.Submenu(param.title, param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/tabs.lua b/iup/srclua5/tabs.lua index 3dc69bb..249caa9 100755 --- a/iup/srclua5/tabs.lua +++ b/iup/srclua5/tabs.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "tabs", - parent = WIDGET, + parent = iup.WIDGET, creation = "v", callback = { tabchange_cb = "ii", @@ -23,9 +23,9 @@ static int Tabsv(lua_State *L) ]], } -function ctrl.createElement(class, arg) - return Tabsv(arg) +function ctrl.createElement(class, param) + return iup.Tabsv(param) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/text.lua b/iup/srclua5/text.lua index e01dab5..5064e07 100755 --- a/iup/srclua5/text.lua +++ b/iup/srclua5/text.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "text", - parent = WIDGET, + parent = iup.WIDGET, creation = "-", callback = { action = "ns", @@ -12,9 +12,9 @@ local ctrl = { } } -function ctrl.createElement(class, arg) - return Text() +function ctrl.createElement(class, param) + return iup.Text() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/timer.lua b/iup/srclua5/timer.lua index 53cda70..d9e3914 100755 --- a/iup/srclua5/timer.lua +++ b/iup/srclua5/timer.lua @@ -3,16 +3,16 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "timer", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { action_cb = "", }, } -function ctrl.createElement(class, arg) - return Timer() +function ctrl.createElement(class, param) + return iup.Timer() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/toggle.lua b/iup/srclua5/toggle.lua index da9380b..7f65c74 100755 --- a/iup/srclua5/toggle.lua +++ b/iup/srclua5/toggle.lua @@ -3,16 +3,16 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "toggle", - parent = WIDGET, + parent = iup.WIDGET, creation = "S-", callback = { action = "n", } } -function ctrl.createElement(class, arg) - return Toggle(arg.title) +function ctrl.createElement(class, param) + return iup.Toggle(param.title) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/tree.lua b/iup/srclua5/tree.lua index bd8daf7..5bd21c4 100755 --- a/iup/srclua5/tree.lua +++ b/iup/srclua5/tree.lua @@ -3,16 +3,16 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "tree", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = { selection_cb = "nn", multiselection_cb = "nn", -- fake definition to be replaced by treefuncs module + multiunselection_cb = "nn", -- fake definition to be replaced by treefuncs module branchopen_cb = "n", branchclose_cb = "n", executeleaf_cb = "n", - renamenode_cb = "ns", - noderemoved_cb = "ns", -- fake definition to be replaced by treefuncs module + noderemoved_cb = "s", -- fake definition to be replaced by treefuncs module rename_cb = "ns", showrename_cb = "n", rightclick_cb = "n", @@ -21,56 +21,95 @@ local ctrl = { extrafuncs = 1, } -local function TreeSetAttributeHandle(handle, name, value) - if iupGetClass(value) == "iup handle" then value = ihandle_setname(value) end - SetAttribute(handle, name, value) +function iup.TreeSetNodeAttributes(handle, id, attrs) + for attr, val in pairs(attrs) do + handle[attr..id] = val + end +end + +function iup.TreeSetAncestorsAttributes(handle, ini, attrs) + ini = handle["parent"..ini] + local stack = {} + while ini do + table.insert(stack, 1, ini) + ini = handle["parent"..ini] + end + for i = 1, #stack do + iup.TreeSetNodeAttributes(handle, stack[i], attrs) + end +end + +function iup.TreeSetDescentsAttributes(handle, ini, attrs) + local id = ini + for i = 1, handle["childcount"..ini] do + id = id+1 + iup.TreeSetNodeAttributes(handle, id, attrs) + if handle["kind"..id] == "BRANCH" then + id = iup.TreeSetDescentsAttributes(handle, id, attrs) + end + end + return id +end + +function iup.TreeSetAttributeHandle(handle, name, value) + if iup.GetClass(value) == "iup handle" then value = iup.SetHandleName(value) end + iup.SetAttribute(handle, name, value) end -function TreeSetNodeAttrib(handle, node, id) - if node.color then SetAttribute(handle, "COLOR"..id, node.color) end - if node.state then SetAttribute(handle, "STATE"..id, node.state) end - if node.titlefont then SetAttribute(handle, "TITLEFONT"..id, node.titlefont) end - if node.marked then SetAttribute(handle, "MARKED"..id, node.marked) end - if node.image then TreeSetAttributeHandle(handle, "IMAGE"..id, node.image) end - if node.imageexpanded then TreeSetAttributeHandle(handle, "IMAGEEXPANDED"..id, node.imageexpanded) end - if node.userid then TreeSetUserId(handle, id, node.userid) end +-- must be after the branch has nodes +function iup.TreeSetState(handle, tnode, id) + if tnode.state then iup.SetAttribute(handle, "STATE"..id, tnode.state) end end -function TreeSetValueRec(handle, t, id) +function iup.TreeSetNodeAttrib(handle, tnode, id) + if tnode.color then iup.SetAttribute(handle, "COLOR"..id, tnode.color) end + if tnode.titlefont then iup.SetAttribute(handle, "TITLEFONT"..id, tnode.titlefont) end + if tnode.marked then iup.SetAttribute(handle, "MARKED"..id, tnode.marked) end + if tnode.image then iup.TreeSetAttributeHandle(handle, "IMAGE"..id, tnode.image) end + if tnode.imageexpanded then iup.TreeSetAttributeHandle(handle, "IMAGEEXPANDED"..id, tnode.imageexpanded) end + if tnode.userid then iup.TreeSetUserId(handle, id, tnode.userid) end +end + +function iup.TreeAddNodesRec(handle, t, id) if t == nil then return end local cont = #t while cont >= 0 do - local node = t[cont] - if type(node) == "table" then - if node.branchname then - SetAttribute(handle, "ADDBRANCH"..id, node.branchname) - TreeSetNodeAttrib(handle, node, id+1) - TreeSetValueRec(handle, node, id+1) - elseif node.leafname then - SetAttribute(handle, "ADDLEAF"..id, node.leafname) - TreeSetNodeAttrib(handle, node, id+1) + local tnode = t[cont] + if type(tnode) == "table" then + if tnode.branchname then + iup.SetAttribute(handle, "ADDBRANCH"..id, tnode.branchname) + iup.TreeSetNodeAttrib(handle, tnode, id+1) + iup.TreeAddNodesRec(handle, tnode, id+1) + iup.TreeSetState(handle, tnode, id+1) + elseif tnode.leafname then + iup.SetAttribute(handle, "ADDLEAF"..id, tnode.leafname) + iup.TreeSetNodeAttrib(handle, tnode, id+1) end else - if node then - SetAttribute(handle, "ADDLEAF"..id, node) + if tnode then + iup.SetAttribute(handle, "ADDLEAF"..id, tnode) end end cont = cont - 1 end end -function TreeSetValue(handle, t, id) +function iup.TreeAddNodes(handle, t, id) if (not id) then id = 0 -- default is the root - if t.branchname then SetAttribute(handle, "TITLE0", t.branchname) end - TreeSetNodeAttrib(handle, t, 0) + if t.branchname then iup.SetAttribute(handle, "TITLE0", t.branchname) end + iup.TreeSetNodeAttrib(handle, t, 0) end - TreeSetValueRec(handle, t, id) + iup.TreeAddNodesRec(handle, t, id) + if (id == 0) then iup.TreeSetState(handle, t, 0) end end -function ctrl.createElement(class, arg) - return Tree() +-- backward compatibility +iup.TreeSetValue = iup.TreeAddNodes + +function ctrl.createElement(class, param) + return iup.Tree() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/user.lua b/iup/srclua5/user.lua index c202be3..18ed950 100755 --- a/iup/srclua5/user.lua +++ b/iup/srclua5/user.lua @@ -4,14 +4,14 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "user", - parent = WIDGET, + parent = iup.WIDGET, creation = "", callback = {} } -function ctrl.createElement(class, arg) - return User() +function ctrl.createElement(class, param) + return iup.User() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/val.lua b/iup/srclua5/val.lua index ba94255..cd22c6d 100755 --- a/iup/srclua5/val.lua +++ b/iup/srclua5/val.lua @@ -3,8 +3,8 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "val", - parent = WIDGET, - creation = "s", + parent = iup.WIDGET, + creation = "S", callback = { mousemove_cb = "d", button_press_cb = "d", @@ -12,9 +12,9 @@ local ctrl = { }, } -function ctrl.createElement(class, arg) - return Val(arg[1]) +function ctrl.createElement(class, param) + return iup.Val(param[1]) end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/vbox.lua b/iup/srclua5/vbox.lua index b98984c..da578d9 100755 --- a/iup/srclua5/vbox.lua +++ b/iup/srclua5/vbox.lua @@ -3,18 +3,18 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "vbox", - parent = BOX, + parent = iup.BOX, creation = "-", callback = {} } function ctrl.append (handle, elem) - Append(handle, elem) + iup.Append(handle, elem) end -function ctrl.createElement(class, arg) - return Vbox() +function ctrl.createElement(class, param) + return iup.Vbox() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srclua5/zbox.lua b/iup/srclua5/zbox.lua index 579c00b..7b0a348 100755 --- a/iup/srclua5/zbox.lua +++ b/iup/srclua5/zbox.lua @@ -3,30 +3,30 @@ ------------------------------------------------------------------------------ local ctrl = { nick = "zbox", - parent = BOX, + parent = iup.BOX, creation = "-", callback = {} } function ctrl.append (handle, elem) - ihandle_setname(elem) - Append(handle, elem) + iup.SetHandleName(elem) + iup.Append(handle, elem) end function ctrl.SetChildrenNames(obj) if obj then local i = 1 while obj[i] do - ihandle_setname(obj[i]) + iup.SetHandleName(obj[i]) i = i+1 end end end -function ctrl.createElement(class, arg) - ctrl.SetChildrenNames(arg) - return Zbox() +function ctrl.createElement(class, param) + ctrl.SetChildrenNames(param) + return iup.Zbox() end -iupRegisterWidget(ctrl) -iupSetClass(ctrl, "iup widget") +iup.RegisterWidget(ctrl) +iup.SetClass(ctrl, "iup widget") diff --git a/iup/srcole/config.mak b/iup/srcole/config.mak index af0ef50..b1f223e 100755 --- a/iup/srcole/config.mak +++ b/iup/srcole/config.mak @@ -15,3 +15,8 @@ SRC = iup_olecontrol.cpp \ tOleHandler.cpp \ tOleInPlaceFrame.cpp \ tOleInPlaceSite.cpp + + +ifneq ($(findstring cygw, $(TEC_UNAME)), ) + LIBS += uuid ole32 gdi32 oleaut32 +endif diff --git a/iup/srcole/tLegacy.h b/iup/srcole/tLegacy.h index 3294e20..1cd9cfc 100755 --- a/iup/srcole/tLegacy.h +++ b/iup/srcole/tLegacy.h @@ -53,7 +53,7 @@ #endif #ifdef WIN32 -#include <tchar.h> +//#include <tchar.h> #ifdef UNICODE #include <wchar.h> #endif diff --git a/iup/srcole/tOleInPlaceSite.cpp b/iup/srcole/tOleInPlaceSite.cpp index 977777c..de55653 100755 --- a/iup/srcole/tOleInPlaceSite.cpp +++ b/iup/srcole/tOleInPlaceSite.cpp @@ -477,7 +477,17 @@ STDMETHODIMP tOleInPlaceSite::Scroll(SIZE sz) STDMETHODIMP tOleInPlaceSite::OnPosRectChange(LPCRECT prcPos) { if (NULL!=prcPos) + { + // This change was necessary because some controls were not working, and being positioned in a wrong place. + // Contribution by Kommit + LPRECT pPos = (LPRECT)prcPos; // convert the const pointer to non-const pointer to modify it's member values. + pPos->right -= pPos->left; + pPos->bottom -= pPos->top; + pPos->left = 0; + pPos->top = 0; + m_pTen->m_rcPos=*prcPos; + } m_pTen->UpdateInPlaceObjectRects(prcPos, FALSE); return NOERROR; diff --git a/iup/srcpplot/Makefile b/iup/srcpplot/Makefile index e10ef19..b73d532 100755 --- a/iup/srcpplot/Makefile +++ b/iup/srcpplot/Makefile @@ -3,4 +3,4 @@ do_all: iup_pplot iup_pplot: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak diff --git a/iup/srcpplot/iupPPlot.cpp b/iup/srcpplot/iupPPlot.cpp index c0d07c9..c0658bc 100755 --- a/iup/srcpplot/iupPPlot.cpp +++ b/iup/srcpplot/iupPPlot.cpp @@ -942,7 +942,7 @@ PPlot::PPlot (): mHasAnyModifyingCalculatorBeenActive (false) { mMargins = kDefaultMargins; - mYAxisSetup.mAscending = false; + mYAxisSetup.mAscending = false; /* default inverted for Y */ } PPlot::~PPlot () { diff --git a/iup/srcpplot/iup_pplot.cpp b/iup/srcpplot/iup_pplot.cpp index 6f5c93a..f111d10 100755 --- a/iup/srcpplot/iup_pplot.cpp +++ b/iup/srcpplot/iup_pplot.cpp @@ -544,9 +544,6 @@ PPainterIup::PPainterIup(Ihandle *ih) : PPainterIup::~PPainterIup() { - if (_cddbuffer != NULL) - cdKillCanvas(_cddbuffer); - delete _InteractionContainer; } /* d-tor */ @@ -741,9 +738,9 @@ static int iPPlotSetLegendPosAttrib(Ihandle* ih, const char* value) { if (iupStrEqualNoCase(value, "TOPLEFT")) ih->data->plt->_plot.mLegendPos = PPLOT_TOPLEFT; - if (iupStrEqualNoCase(value, "BOTTOMLEFT")) + else if (iupStrEqualNoCase(value, "BOTTOMLEFT")) ih->data->plt->_plot.mLegendPos = PPLOT_BOTTOMLEFT; - if (iupStrEqualNoCase(value, "BOTTOMRIGHT")) + else if (iupStrEqualNoCase(value, "BOTTOMRIGHT")) ih->data->plt->_plot.mLegendPos = PPLOT_BOTTOMRIGHT; else ih->data->plt->_plot.mLegendPos = PPLOT_TOPRIGHT; @@ -1380,7 +1377,7 @@ static int iPPlotSetDSRemoveAttrib(Ihandle* ih, const char* value) /* ========== */ /* axis title */ -static int iPPlotSetAXSXLabelAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXLabelAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1393,7 +1390,7 @@ static int iPPlotSetAXSXLabelAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYLabelAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYLabelAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1406,7 +1403,7 @@ static int iPPlotSetAXSYLabelAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXLabelAttrib(Ihandle* ih) +static char* iPPlotGetAxisXLabelAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(256); @@ -1415,7 +1412,7 @@ static char* iPPlotGetAXSXLabelAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYLabelAttrib(Ihandle* ih) +static char* iPPlotGetAxisYLabelAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(256); @@ -1425,7 +1422,7 @@ static char* iPPlotGetAXSYLabelAttrib(Ihandle* ih) } /* axis title position */ -static int iPPlotSetAXSXLabelCenteredAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXLabelCenteredAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1438,7 +1435,7 @@ static int iPPlotSetAXSXLabelCenteredAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYLabelCenteredAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYLabelCenteredAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1451,7 +1448,7 @@ static int iPPlotSetAXSYLabelCenteredAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXLabelCenteredAttrib(Ihandle* ih) +static char* iPPlotGetAxisXLabelCenteredAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1461,7 +1458,7 @@ static char* iPPlotGetAXSXLabelCenteredAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYLabelCenteredAttrib(Ihandle* ih) +static char* iPPlotGetAxisYLabelCenteredAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1472,7 +1469,7 @@ static char* iPPlotGetAXSYLabelCenteredAttrib(Ihandle* ih) } /* axis, ticks and label color */ -static int iPPlotSetAXSXColorAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXColorAttrib(Ihandle* ih, const char* value) { unsigned char rr, gg, bb; if (iupStrToRGB(value, &rr, &gg, &bb)) @@ -1484,7 +1481,7 @@ static int iPPlotSetAXSXColorAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYColorAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYColorAttrib(Ihandle* ih, const char* value) { unsigned char rr, gg, bb; if (iupStrToRGB(value, &rr, &gg, &bb)) @@ -1496,7 +1493,7 @@ static int iPPlotSetAXSYColorAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXColorAttrib(Ihandle* ih) +static char* iPPlotGetAxisXColorAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1507,7 +1504,7 @@ static char* iPPlotGetAXSXColorAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYColorAttrib(Ihandle* ih) +static char* iPPlotGetAxisYColorAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1519,7 +1516,7 @@ static char* iPPlotGetAXSYColorAttrib(Ihandle* ih) } /* autoscaling */ -static int iPPlotSetAXSXAutoMinAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXAutoMinAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1532,7 +1529,7 @@ static int iPPlotSetAXSXAutoMinAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYAutoMinAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYAutoMinAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1545,7 +1542,7 @@ static int iPPlotSetAXSYAutoMinAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXAutoMinAttrib(Ihandle* ih) +static char* iPPlotGetAxisXAutoMinAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1555,7 +1552,7 @@ static char* iPPlotGetAXSXAutoMinAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYAutoMinAttrib(Ihandle* ih) +static char* iPPlotGetAxisYAutoMinAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1566,7 +1563,7 @@ static char* iPPlotGetAXSYAutoMinAttrib(Ihandle* ih) } /* autoscaling */ -static int iPPlotSetAXSXAutoMaxAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXAutoMaxAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1579,7 +1576,7 @@ static int iPPlotSetAXSXAutoMaxAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYAutoMaxAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYAutoMaxAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1592,7 +1589,7 @@ static int iPPlotSetAXSYAutoMaxAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXAutoMaxAttrib(Ihandle* ih) +static char* iPPlotGetAxisXAutoMaxAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1602,7 +1599,7 @@ static char* iPPlotGetAXSXAutoMaxAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYAutoMaxAttrib(Ihandle* ih) +static char* iPPlotGetAxisYAutoMaxAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1613,7 +1610,7 @@ static char* iPPlotGetAXSYAutoMaxAttrib(Ihandle* ih) } /* min visible val */ -static int iPPlotSetAXSXMinAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXMinAttrib(Ihandle* ih, const char* value) { float xx; if (iupStrToFloat(value, &xx)) @@ -1625,7 +1622,7 @@ static int iPPlotSetAXSXMinAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYMinAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYMinAttrib(Ihandle* ih, const char* value) { float xx; if (iupStrToFloat(value, &xx)) @@ -1637,7 +1634,7 @@ static int iPPlotSetAXSYMinAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXMinAttrib(Ihandle* ih) +static char* iPPlotGetAxisXMinAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1645,7 +1642,7 @@ static char* iPPlotGetAXSXMinAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYMinAttrib(Ihandle* ih) +static char* iPPlotGetAxisYMinAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1654,7 +1651,7 @@ static char* iPPlotGetAXSYMinAttrib(Ihandle* ih) } /* max visible val */ -static int iPPlotSetAXSXMaxAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXMaxAttrib(Ihandle* ih, const char* value) { float xx; if (iupStrToFloat(value, &xx)) @@ -1666,7 +1663,7 @@ static int iPPlotSetAXSXMaxAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYMaxAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYMaxAttrib(Ihandle* ih, const char* value) { float xx; if (iupStrToFloat(value, &xx)) @@ -1678,7 +1675,7 @@ static int iPPlotSetAXSYMaxAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXMaxAttrib(Ihandle* ih) +static char* iPPlotGetAxisXMaxAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1686,7 +1683,7 @@ static char* iPPlotGetAXSXMaxAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYMaxAttrib(Ihandle* ih) +static char* iPPlotGetAxisYMaxAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1695,12 +1692,12 @@ static char* iPPlotGetAXSYMaxAttrib(Ihandle* ih) } /* values from left/top to right/bottom */ -static int iPPlotSetAXSXReverseAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXReverseAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; if(iupStrEqualNoCase(value, "YES") || iupStrEqualNoCase(value, "ON")) - axis->mAscending = false; // inverted + axis->mAscending = false; // inverted for X else axis->mAscending = true; @@ -1708,41 +1705,41 @@ static int iPPlotSetAXSXReverseAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYReverseAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYReverseAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; if(iupStrEqualNoCase(value, "YES") || iupStrEqualNoCase(value, "ON")) - axis->mAscending = false; // inverted + axis->mAscending = true; // NOT inverted for Y else - axis->mAscending = true; + axis->mAscending = false; ih->data->plt->_redraw = 1; return 0; } -static char* iPPlotGetAXSXReverseAttrib(Ihandle* ih) +static char* iPPlotGetAxisXReverseAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; if (axis->mAscending) - return "NO"; /* inverted */ + return "NO"; /* inverted for X */ else return "YES"; } -static char* iPPlotGetAXSYReverseAttrib(Ihandle* ih) +static char* iPPlotGetAxisYReverseAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; if (axis->mAscending) - return "NO"; /* inverted */ + return "YES"; /* NOT inverted for Y */ else - return "YES"; + return "NO"; } /* axis mode */ -static int iPPlotSetAXSXCrossOriginAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXCrossOriginAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1755,7 +1752,7 @@ static int iPPlotSetAXSXCrossOriginAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYCrossOriginAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYCrossOriginAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1768,7 +1765,7 @@ static int iPPlotSetAXSYCrossOriginAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXCrossOriginAttrib(Ihandle* ih) +static char* iPPlotGetAxisXCrossOriginAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1778,7 +1775,7 @@ static char* iPPlotGetAXSXCrossOriginAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYCrossOriginAttrib(Ihandle* ih) +static char* iPPlotGetAxisYCrossOriginAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1789,7 +1786,7 @@ static char* iPPlotGetAXSYCrossOriginAttrib(Ihandle* ih) } /* log/lin scale */ -static int iPPlotSetAXSXScaleAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXScaleAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1817,7 +1814,7 @@ static int iPPlotSetAXSXScaleAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYScaleAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYScaleAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1845,7 +1842,7 @@ static int iPPlotSetAXSYScaleAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXScaleAttrib(Ihandle* ih) +static char* iPPlotGetAxisXScaleAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1865,7 +1862,7 @@ static char* iPPlotGetAXSXScaleAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYScaleAttrib(Ihandle* ih) +static char* iPPlotGetAxisYScaleAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -1886,7 +1883,7 @@ static char* iPPlotGetAXSYScaleAttrib(Ihandle* ih) } /* axis label font size */ -static int iPPlotSetAXSXFontSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXFontSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -1898,7 +1895,7 @@ static int iPPlotSetAXSXFontSizeAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYFontSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYFontSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -1910,20 +1907,20 @@ static int iPPlotSetAXSYFontSizeAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXFontSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisXFontSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; return iPPlotGetPlotFontSize(axis->mStyle.mFontSize); } -static char* iPPlotGetAXSYFontSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisYFontSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; return iPPlotGetPlotFontSize(axis->mStyle.mFontSize); } /* axis label font style */ -static int iPPlotSetAXSXFontStyleAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXFontStyleAttrib(Ihandle* ih, const char* value) { int style = iPPlotGetCDFontStyle(value); if (style != -1) @@ -1935,7 +1932,7 @@ static int iPPlotSetAXSXFontStyleAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYFontStyleAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYFontStyleAttrib(Ihandle* ih, const char* value) { int style = iPPlotGetCDFontStyle(value); if (style != -1) @@ -1947,20 +1944,20 @@ static int iPPlotSetAXSYFontStyleAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXFontStyleAttrib(Ihandle* ih) +static char* iPPlotGetAxisXFontStyleAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; return iPPlotGetPlotFontStyle(axis->mStyle.mFontStyle); } -static char* iPPlotGetAXSYFontStyleAttrib(Ihandle* ih) +static char* iPPlotGetAxisYFontStyleAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; return iPPlotGetPlotFontStyle(axis->mStyle.mFontStyle); } /* automatic tick size */ -static int iPPlotSetAXSXAutoTickSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXAutoTickSizeAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1973,7 +1970,7 @@ static int iPPlotSetAXSXAutoTickSizeAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYAutoTickSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYAutoTickSizeAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -1986,7 +1983,7 @@ static int iPPlotSetAXSYAutoTickSizeAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXAutoTickSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisXAutoTickSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -1996,7 +1993,7 @@ static char* iPPlotGetAXSXAutoTickSizeAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYAutoTickSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisYAutoTickSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2007,7 +2004,7 @@ static char* iPPlotGetAXSYAutoTickSizeAttrib(Ihandle* ih) } /* size of ticks (in pixels) */ -static int iPPlotSetAXSXTickSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2019,7 +2016,7 @@ static int iPPlotSetAXSXTickSizeAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2031,7 +2028,7 @@ static int iPPlotSetAXSYTickSizeAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2039,7 +2036,7 @@ static char* iPPlotGetAXSXTickSizeAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYTickSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2048,7 +2045,7 @@ static char* iPPlotGetAXSYTickSizeAttrib(Ihandle* ih) } /* size of major ticks (in pixels) */ -static int iPPlotSetAXSXTickMajorSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickMajorSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2060,7 +2057,7 @@ static int iPPlotSetAXSXTickMajorSizeAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickMajorSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickMajorSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2072,7 +2069,7 @@ static int iPPlotSetAXSYTickMajorSizeAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickMajorSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickMajorSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2080,7 +2077,7 @@ static char* iPPlotGetAXSXTickMajorSizeAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYTickMajorSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickMajorSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2089,7 +2086,7 @@ static char* iPPlotGetAXSYTickMajorSizeAttrib(Ihandle* ih) } /* axis ticks font size */ -static int iPPlotSetAXSXTickFontSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickFontSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2101,7 +2098,7 @@ static int iPPlotSetAXSXTickFontSizeAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickFontSizeAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickFontSizeAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2113,14 +2110,14 @@ static int iPPlotSetAXSYTickFontSizeAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickFontSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickFontSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; return iPPlotGetPlotFontSize(axis->mTickInfo.mStyle.mFontSize); } -static char* iPPlotGetAXSYTickFontSizeAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickFontSizeAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2128,7 +2125,7 @@ static char* iPPlotGetAXSYTickFontSizeAttrib(Ihandle* ih) } /* axis ticks number font style */ -static int iPPlotSetAXSXTickFontStyleAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickFontStyleAttrib(Ihandle* ih, const char* value) { int style = iPPlotGetCDFontStyle(value); if (style != -1) @@ -2140,7 +2137,7 @@ static int iPPlotSetAXSXTickFontStyleAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickFontStyleAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickFontStyleAttrib(Ihandle* ih, const char* value) { int style = iPPlotGetCDFontStyle(value); if (style != -1) @@ -2152,14 +2149,14 @@ static int iPPlotSetAXSYTickFontStyleAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickFontStyleAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickFontStyleAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; return iPPlotGetPlotFontSize(axis->mTickInfo.mStyle.mFontStyle); } -static char* iPPlotGetAXSYTickFontStyleAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickFontStyleAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2167,7 +2164,7 @@ static char* iPPlotGetAXSYTickFontStyleAttrib(Ihandle* ih) } /* axis ticks number format */ -static int iPPlotSetAXSXTickFormatAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickFormatAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -2180,7 +2177,7 @@ static int iPPlotSetAXSXTickFormatAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickFormatAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickFormatAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2193,7 +2190,7 @@ static int iPPlotSetAXSYTickFormatAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickFormatAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickFormatAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(256); @@ -2202,7 +2199,7 @@ static char* iPPlotGetAXSXTickFormatAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYTickFormatAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickFormatAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(256); @@ -2212,7 +2209,7 @@ static char* iPPlotGetAXSYTickFormatAttrib(Ihandle* ih) } /* axis ticks */ -static int iPPlotSetAXSXTickAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -2225,7 +2222,7 @@ static int iPPlotSetAXSXTickAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2238,7 +2235,7 @@ static int iPPlotSetAXSYTickAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -2248,7 +2245,7 @@ static char* iPPlotGetAXSXTickAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYTickAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2259,7 +2256,7 @@ static char* iPPlotGetAXSYTickAttrib(Ihandle* ih) } /* major tick spacing */ -static int iPPlotSetAXSXTickMajorSpanAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickMajorSpanAttrib(Ihandle* ih, const char* value) { float xx; if (iupStrToFloat(value, &xx)) @@ -2271,7 +2268,7 @@ static int iPPlotSetAXSXTickMajorSpanAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickMajorSpanAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickMajorSpanAttrib(Ihandle* ih, const char* value) { float xx; if (iupStrToFloat(value, &xx)) @@ -2283,7 +2280,7 @@ static int iPPlotSetAXSYTickMajorSpanAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickMajorSpanAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickMajorSpanAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2291,7 +2288,7 @@ static char* iPPlotGetAXSXTickMajorSpanAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYTickMajorSpanAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickMajorSpanAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2300,7 +2297,7 @@ static char* iPPlotGetAXSYTickMajorSpanAttrib(Ihandle* ih) } /* number of ticks between major ticks */ -static int iPPlotSetAXSXTickDivisionAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXTickDivisionAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2312,7 +2309,7 @@ static int iPPlotSetAXSXTickDivisionAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYTickDivisionAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYTickDivisionAttrib(Ihandle* ih, const char* value) { int ii; if (iupStrToInt(value, &ii)) @@ -2324,7 +2321,7 @@ static int iPPlotSetAXSYTickDivisionAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXTickDivisionAttrib(Ihandle* ih) +static char* iPPlotGetAxisXTickDivisionAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2332,7 +2329,7 @@ static char* iPPlotGetAXSXTickDivisionAttrib(Ihandle* ih) return att_buffer; } -static char* iPPlotGetAXSYTickDivisionAttrib(Ihandle* ih) +static char* iPPlotGetAxisYTickDivisionAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; char* att_buffer = iupStrGetMemory(30); @@ -2341,7 +2338,7 @@ static char* iPPlotGetAXSYTickDivisionAttrib(Ihandle* ih) } /* auto tick spacing */ -static int iPPlotSetAXSXAutoTickAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisXAutoTickAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -2354,7 +2351,7 @@ static int iPPlotSetAXSXAutoTickAttrib(Ihandle* ih, const char* value) return 0; } -static int iPPlotSetAXSYAutoTickAttrib(Ihandle* ih, const char* value) +static int iPPlotSetAxisYAutoTickAttrib(Ihandle* ih, const char* value) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2367,7 +2364,7 @@ static int iPPlotSetAXSYAutoTickAttrib(Ihandle* ih, const char* value) return 0; } -static char* iPPlotGetAXSXAutoTickAttrib(Ihandle* ih) +static char* iPPlotGetAxisXAutoTickAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mXAxisSetup; @@ -2377,7 +2374,7 @@ static char* iPPlotGetAXSXAutoTickAttrib(Ihandle* ih) return "NO"; } -static char* iPPlotGetAXSYAutoTickAttrib(Ihandle* ih) +static char* iPPlotGetAxisYAutoTickAttrib(Ihandle* ih) { AxisSetup* axis = &ih->data->plt->_plot.mYAxisSetup; @@ -2775,7 +2772,7 @@ void PPainterIup::SetStyle(const PStyle &inStyle) cdCanvasMarkSize(_cddbuffer, inStyle.mMarkSize); } -int iPPlotMapMethod(Ihandle* ih) +static int iPPlotMapMethod(Ihandle* ih) { int old_gdi = 0; @@ -2800,12 +2797,27 @@ int iPPlotMapMethod(Ihandle* ih) return IUP_NOERROR; } -void iPPlotDestroyMethod(Ihandle* ih) +static void iPPlotUnMapMethod(Ihandle* ih) +{ + if (ih->data->plt->_cddbuffer != NULL) + { + cdKillCanvas(ih->data->plt->_cddbuffer); + ih->data->plt->_cddbuffer = NULL; + } + + if (ih->data->plt->_cdcanvas != NULL) + { + cdKillCanvas(ih->data->plt->_cdcanvas); + ih->data->plt->_cdcanvas = NULL; + } +} + +static void iPPlotDestroyMethod(Ihandle* ih) { delete ih->data->plt; } -int iPPlotCreateMethod(Ihandle* ih, void **params) +static int iPPlotCreateMethod(Ihandle* ih, void **params) { (void)params; @@ -2841,6 +2853,7 @@ static Iclass* iupPPlotGetClass(void) ic->Create = iPPlotCreateMethod; ic->Destroy = iPPlotDestroyMethod; ic->Map = iPPlotMapMethod; + ic->UnMap = iPPlotUnMapMethod; /* IupPPlot Callbacks */ iupClassRegisterCallback(ic, "POSTDRAW_CB", "v"); @@ -2888,52 +2901,52 @@ static Iclass* iupPPlotGetClass(void) iupClassRegisterAttribute(ic, "DS_EDIT", iPPlotGetDSEditAttrib, iPPlotSetDSEditAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "DS_REMOVE", NULL, iPPlotSetDSRemoveAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XLABEL", iPPlotGetAXSXLabelAttrib, iPPlotSetAXSXLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YLABEL", iPPlotGetAXSYLabelAttrib, iPPlotSetAXSYLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XLABELCENTERED", iPPlotGetAXSXLabelCenteredAttrib, iPPlotSetAXSXLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YLABELCENTERED", iPPlotGetAXSYLabelCenteredAttrib, iPPlotSetAXSYLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XCOLOR", iPPlotGetAXSXColorAttrib, iPPlotSetAXSXColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YCOLOR", iPPlotGetAXSYColorAttrib, iPPlotSetAXSYColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XAUTOMIN", iPPlotGetAXSXAutoMinAttrib, iPPlotSetAXSXAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YAUTOMIN", iPPlotGetAXSYAutoMinAttrib, iPPlotSetAXSYAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XAUTOMAX", iPPlotGetAXSXAutoMaxAttrib, iPPlotSetAXSXAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YAUTOMAX", iPPlotGetAXSYAutoMaxAttrib, iPPlotSetAXSYAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XMIN", iPPlotGetAXSXMinAttrib, iPPlotSetAXSXMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YMIN", iPPlotGetAXSYMinAttrib, iPPlotSetAXSYMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XMAX", iPPlotGetAXSXMaxAttrib, iPPlotSetAXSXMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YMAX", iPPlotGetAXSYMaxAttrib, iPPlotSetAXSYMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XREVERSE", iPPlotGetAXSXReverseAttrib, iPPlotSetAXSXReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YREVERSE", iPPlotGetAXSYReverseAttrib, iPPlotSetAXSYReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XCROSSORIGIN", iPPlotGetAXSXCrossOriginAttrib, iPPlotSetAXSXCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YCROSSORIGIN", iPPlotGetAXSYCrossOriginAttrib, iPPlotSetAXSYCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XSCALE", iPPlotGetAXSXScaleAttrib, iPPlotSetAXSXScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YSCALE", iPPlotGetAXSYScaleAttrib, iPPlotSetAXSYScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XFONTSIZE", iPPlotGetAXSXFontSizeAttrib, iPPlotSetAXSXFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YFONTSIZE", iPPlotGetAXSYFontSizeAttrib, iPPlotSetAXSYFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XFONTSTYLE", iPPlotGetAXSXFontStyleAttrib, iPPlotSetAXSXFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YFONTSTYLE", iPPlotGetAXSYFontStyleAttrib, iPPlotSetAXSYFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICK", iPPlotGetAXSXTickAttrib, iPPlotSetAXSXTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICK", iPPlotGetAXSYTickAttrib, iPPlotSetAXSYTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKSIZE", iPPlotGetAXSXTickSizeAttrib, iPPlotSetAXSXTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKSIZE", iPPlotGetAXSYTickSizeAttrib, iPPlotSetAXSYTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKFORMAT", iPPlotGetAXSXTickFormatAttrib, iPPlotSetAXSXTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKFORMAT", iPPlotGetAXSYTickFormatAttrib, iPPlotSetAXSYTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKFONTSIZE", iPPlotGetAXSXTickFontSizeAttrib, iPPlotSetAXSXTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKFONTSIZE", iPPlotGetAXSYTickFontSizeAttrib, iPPlotSetAXSYTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKFONTSTYLE", iPPlotGetAXSXTickFontStyleAttrib, iPPlotSetAXSXTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKFONTSTYLE", iPPlotGetAXSYTickFontStyleAttrib, iPPlotSetAXSYTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XAUTOTICK", iPPlotGetAXSXAutoTickAttrib, iPPlotSetAXSXAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YAUTOTICK", iPPlotGetAXSYAutoTickAttrib, iPPlotSetAXSYAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAXSXAutoTickSizeAttrib, iPPlotSetAXSXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAXSYAutoTickSizeAttrib, iPPlotSetAXSYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSPAN", iPPlotGetAXSXTickMajorSpanAttrib, iPPlotSetAXSXTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSPAN", iPPlotGetAXSYTickMajorSpanAttrib, iPPlotSetAXSYTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKDIVISION", iPPlotGetAXSXTickDivisionAttrib, iPPlotSetAXSXTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKDIVISION", iPPlotGetAXSYTickDivisionAttrib, iPPlotSetAXSYTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAXSXAutoTickSizeAttrib, iPPlotSetAXSXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAXSYAutoTickSizeAttrib, iPPlotSetAXSYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSIZE", iPPlotGetAXSXTickMajorSizeAttrib, iPPlotSetAXSXTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); - iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSIZE", iPPlotGetAXSYTickMajorSizeAttrib, iPPlotSetAXSYTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XLABEL", iPPlotGetAxisXLabelAttrib, iPPlotSetAxisXLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YLABEL", iPPlotGetAxisYLabelAttrib, iPPlotSetAxisYLabelAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XLABELCENTERED", iPPlotGetAxisXLabelCenteredAttrib, iPPlotSetAxisXLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YLABELCENTERED", iPPlotGetAxisYLabelCenteredAttrib, iPPlotSetAxisYLabelCenteredAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XCOLOR", iPPlotGetAxisXColorAttrib, iPPlotSetAxisXColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YCOLOR", iPPlotGetAxisYColorAttrib, iPPlotSetAxisYColorAttrib, IUPAF_SAMEASSYSTEM, "0 0 0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XAUTOMIN", iPPlotGetAxisXAutoMinAttrib, iPPlotSetAxisXAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YAUTOMIN", iPPlotGetAxisYAutoMinAttrib, iPPlotSetAxisYAutoMinAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XAUTOMAX", iPPlotGetAxisXAutoMaxAttrib, iPPlotSetAxisXAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YAUTOMAX", iPPlotGetAxisYAutoMaxAttrib, iPPlotSetAxisYAutoMaxAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XMIN", iPPlotGetAxisXMinAttrib, iPPlotSetAxisXMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YMIN", iPPlotGetAxisYMinAttrib, iPPlotSetAxisYMinAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XMAX", iPPlotGetAxisXMaxAttrib, iPPlotSetAxisXMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YMAX", iPPlotGetAxisYMaxAttrib, iPPlotSetAxisYMaxAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XREVERSE", iPPlotGetAxisXReverseAttrib, iPPlotSetAxisXReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YREVERSE", iPPlotGetAxisYReverseAttrib, iPPlotSetAxisYReverseAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XCROSSORIGIN", iPPlotGetAxisXCrossOriginAttrib, iPPlotSetAxisXCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YCROSSORIGIN", iPPlotGetAxisYCrossOriginAttrib, iPPlotSetAxisYCrossOriginAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XSCALE", iPPlotGetAxisXScaleAttrib, iPPlotSetAxisXScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YSCALE", iPPlotGetAxisYScaleAttrib, iPPlotSetAxisYScaleAttrib, IUPAF_SAMEASSYSTEM, "LIN", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XFONTSIZE", iPPlotGetAxisXFontSizeAttrib, iPPlotSetAxisXFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YFONTSIZE", iPPlotGetAxisYFontSizeAttrib, iPPlotSetAxisYFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XFONTSTYLE", iPPlotGetAxisXFontStyleAttrib, iPPlotSetAxisXFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YFONTSTYLE", iPPlotGetAxisYFontStyleAttrib, iPPlotSetAxisYFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICK", iPPlotGetAxisXTickAttrib, iPPlotSetAxisXTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICK", iPPlotGetAxisYTickAttrib, iPPlotSetAxisYTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKSIZE", iPPlotGetAxisXTickSizeAttrib, iPPlotSetAxisXTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKSIZE", iPPlotGetAxisYTickSizeAttrib, iPPlotSetAxisYTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKFORMAT", iPPlotGetAxisXTickFormatAttrib, iPPlotSetAxisXTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKFORMAT", iPPlotGetAxisYTickFormatAttrib, iPPlotSetAxisYTickFormatAttrib, IUPAF_SAMEASSYSTEM, "%.0f", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKFONTSIZE", iPPlotGetAxisXTickFontSizeAttrib, iPPlotSetAxisXTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKFONTSIZE", iPPlotGetAxisYTickFontSizeAttrib, iPPlotSetAxisYTickFontSizeAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKFONTSTYLE", iPPlotGetAxisXTickFontStyleAttrib, iPPlotSetAxisXTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKFONTSTYLE", iPPlotGetAxisYTickFontStyleAttrib, iPPlotSetAxisYTickFontStyleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XAUTOTICK", iPPlotGetAxisXAutoTickAttrib, iPPlotSetAxisXAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YAUTOTICK", iPPlotGetAxisYAutoTickAttrib, iPPlotSetAxisYAutoTickAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAxisXAutoTickSizeAttrib, iPPlotSetAxisXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAxisYAutoTickSizeAttrib, iPPlotSetAxisYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSPAN", iPPlotGetAxisXTickMajorSpanAttrib, iPPlotSetAxisXTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSPAN", iPPlotGetAxisYTickMajorSpanAttrib, iPPlotSetAxisYTickMajorSpanAttrib, IUPAF_SAMEASSYSTEM, "1", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKDIVISION", iPPlotGetAxisXTickDivisionAttrib, iPPlotSetAxisXTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKDIVISION", iPPlotGetAxisYTickDivisionAttrib, iPPlotSetAxisYTickDivisionAttrib, IUPAF_SAMEASSYSTEM, "5", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XAUTOTICKSIZE", iPPlotGetAxisXAutoTickSizeAttrib, iPPlotSetAxisXAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YAUTOTICKSIZE", iPPlotGetAxisYAutoTickSizeAttrib, iPPlotSetAxisYAutoTickSizeAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_XTICKMAJORSIZE", iPPlotGetAxisXTickMajorSizeAttrib, iPPlotSetAxisXTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); + iupClassRegisterAttribute(ic, "AXS_YTICKMAJORSIZE", iPPlotGetAxisYTickMajorSizeAttrib, iPPlotSetAxisYTickMajorSizeAttrib, IUPAF_SAMEASSYSTEM, "8", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "REMOVE", NULL, iPPlotSetRemoveAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); iupClassRegisterAttribute(ic, "CLEAR", NULL, iPPlotSetClearAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); diff --git a/iup/srcview/Makefile b/iup/srcview/Makefile index 1779960..e49c397 100755 --- a/iup/srcview/Makefile +++ b/iup/srcview/Makefile @@ -3,7 +3,7 @@ do_all: iupview iupview: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak + @$(MAKE) --no-print-directory -f ../tecmake.mak iupviewgtk: - @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes + @$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes diff --git a/iup/srcview/config.mak b/iup/srcview/config.mak index 4967582..9d03f3e 100755 --- a/iup/srcview/config.mak +++ b/iup/srcview/config.mak @@ -12,18 +12,17 @@ USE_CD = Yes USE_IUPCONTROLS = Yes USE_IUP3 = Yes -# ifdef USE_GTK -# ifndef GTK_DEFAULT -# # Build GTK version in IRIX,SunOS,AIX,Win32 -# APPNAME = iupviewgtk -# endif -# else -# ifdef GTK_DEFAULT -# # Build Motif version in Linux,Darwin,FreeBSD -# USE_MOTIF = Yes -# APPNAME = iupviewmot -# endif -# endif +ifdef GTK_DEFAULT + ifdef USE_MOTIF + # Build Motif version in Linux,Darwin,FreeBSD + APPNAME = iupviewmot + endif +else + ifdef USE_GTK + # Build GTK version in IRIX,SunOS,AIX,Win32 + APPNAME = iupviewgtk + endif +endif ifeq "$(TEC_UNAME)" "SunOS510x86" DEFINES = USE_NO_OPENGL @@ -37,7 +36,11 @@ ifdef USE_IM ifneq ($(findstring Win, $(TEC_SYSNAME)), ) LIBS = iupim iupimglib else - IUPLIB = $(IUP)/lib/$(TEC_UNAME) + ifdef DBG_DIR + IUPLIB = $(IUP)/lib/$(TEC_UNAME)d + else + IUPLIB = $(IUP)/lib/$(TEC_UNAME) + endif SLIB = $(IUPLIB)/libiupim.a $(IUPLIB)/libiupimglib.a endif endif diff --git a/iup/srcview/iup_view.c b/iup/srcview/iup_view.c index f6d400b..b2c877b 100755 --- a/iup/srcview/iup_view.c +++ b/iup/srcview/iup_view.c @@ -7,10 +7,12 @@ #include "iup.h" #include "iupcontrols.h" #include "iupgl.h" + #include "iup_str.h" +#include "iup_object.h" -#define MAX_NAMES 500 +#define MAX_NAMES 5000 #ifdef USE_IM #include "iupim.h" @@ -234,8 +236,13 @@ static int saveallimages_cb(void) if (!IupSaveImageAsText(elem, file_name, imgtype, names[i])) { #ifdef USE_IM - if (!IupSaveImage(elem, file_name, StrUpper(imgtype))) /* already displayed an error message */ + if (!IupSaveImage(elem, file_name, StrUpper(imgtype))) + { + char* err_msg = IupGetGlobal("IUPIM_LASTERROR"); + if (err_msg) + IupMessage("Error", err_msg); return IUP_DEFAULT; + } #else IupMessage("Error", "Failed to save the image."); return IUP_DEFAULT; @@ -434,11 +441,19 @@ static int saveimage_cb(Ihandle* self) if (GetSaveAsFile(file_name, imgtype) != -1) { if (!IupSaveImageAsText(elem, file_name, imgtype, name)) + { #ifdef USE_IM - IupSaveImage(elem, file_name, StrUpper(imgtype)); /* already displayed an error message */ + if (!IupSaveImage(elem, file_name, StrUpper(imgtype))) + { + char* err_msg = IupGetGlobal("IUPIM_LASTERROR"); + if (err_msg) + IupMessage("Error", err_msg); + return IUP_DEFAULT; + } #else IupMessage("Error", "Failed to save the image."); #endif + } } } else @@ -544,16 +559,44 @@ static void mainUpdateInternals(void) } } +static int checkArray(Ihandle* *ih_array, int count, Ihandle* ih) +{ + int i; + for (i = 0; i < count; i++) + { + if (ih_array[i] == ih) + return 0; + } + return 1; +} + static int destroyall_cb(Ihandle* self) { char *names[MAX_NAMES]; + Ihandle* ih; + Ihandle* ih_names[MAX_NAMES]; Ihandle* list = (Ihandle*)IupGetAttribute(self, "mainList"); - int i, num_names = IupGetAllNames(names, MAX_NAMES); + int i, j=0, num_names = IupGetAllNames(names, MAX_NAMES); for (i = 0; i < num_names; i++) { - Ihandle* elem = IupGetHandle(names[i]); + ih = IupGetHandle(names[i]); + if (iupObjectCheck(ih) && IupGetInt(ih, "_INTERNAL") == 0) + { + ih = IupGetDialog(ih); + if (checkArray(ih_names, j, ih)) + { + ih_names[j] = ih; + j++; + } + } + } + num_names = j; + + for (i = 0; i < num_names; i++) + { + Ihandle* elem = ih_names[i]; - if (elem && IupGetInt(elem, "_INTERNAL") == 0) + if (iupObjectCheck(elem)) { char* type = IupGetClassName(elem); @@ -567,6 +610,7 @@ static int destroyall_cb(Ihandle* self) } } } + IupSetAttribute(list, "1", NULL); IupSetAttribute(list, "VALUE", "1"); return IUP_DEFAULT; @@ -689,6 +733,12 @@ static void LoadImageFile(Ihandle* self, const char* file_name) free(file_title); mainUpdateList(self, file_name); } + else + { + char* err_msg = IupGetGlobal("IUPIM_LASTERROR"); + if (err_msg) + IupMessage("Error", err_msg); + } } static int GetOpenFileName(char* file) @@ -803,6 +853,7 @@ static Ihandle* mainDialog(void) IupFrame(label = IupLabel("")), NULL); IupSetAttribute(box, "MARGIN", "10x10"); + IupSetAttribute(list, "SORT", "YES"); IupSetCallback(list, "ACTION", (Icallback)list_cb); IupSetCallback(list, "DBLCLICK_CB", (Icallback)list_dbclick_cb); @@ -817,6 +868,7 @@ static Ihandle* mainDialog(void) IupSetAttribute(main_dialog, "mainLabel", (char*)label); IupSetCallback(main_dialog, "CLOSE_CB", (Icallback)close_cb); IupSetCallback(main_dialog, "DROPFILES_CB", (Icallback)dropfile_cb); + IupSetAttribute(main_dialog, "_INTERNAL", "YES"); IupSetAttribute(menu, "mainList", (char*)list); IupSetAttribute(menu, "mainLabel", (char*)label); @@ -841,8 +893,6 @@ int main (int argc, char **argv) IupShow(main_dialog); IupMainLoop(); - destroyall_cb(main_dialog); - IupDestroy(main_dialog); IupControlsClose(); IupClose(); diff --git a/iup/srcview/make_uname.bat b/iup/srcview/make_uname.bat index ab63bd3..1a98efe 100755 --- a/iup/srcview/make_uname.bat +++ b/iup/srcview/make_uname.bat @@ -8,19 +8,19 @@ goto end :iupexe32 call tecmake vc8 relink %2 %3 %4 %5 %6 %7 -#call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 goto end :iupexe64 call tecmake vc8_64 relink %2 %3 %4 %5 %6 %7 -#call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 goto end :iupexe call tecmake vc8 relink %2 %3 %4 %5 %6 %7 -#call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 call tecmake vc8_64 relink %2 %3 %4 %5 %6 %7 -#call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 +REM call tecmake vc8_64 "USE_GTK=Yes" relink %2 %3 %4 %5 %6 %7 goto end :end diff --git a/iup/tecmake_compact.mak b/iup/tecmake_compact.mak deleted file mode 100755 index 08e642e..0000000 --- a/iup/tecmake_compact.mak +++ /dev/null @@ -1,1172 +0,0 @@ -#-------------------------------------------------------------------------# -#- Tecmake (Compact Version) -# -#- Generic Makefile to build applications and libraries at TeCGraf -# -#- The user makefile usually has the name "config.mak". -# -#-------------------------------------------------------------------------# - -# Tecmake Version -VERSION = 3.19 - -# First target -.PHONY: build -build: tecmake - - -#---------------------------------# -# System Variables Definitions - -# Base Defintions -TEC_SYSNAME:=$(shell uname -s) -TEC_SYSVERSION:=$(shell uname -r|cut -f1 -d.) -TEC_SYSMINOR:=$(shell uname -r|cut -f2 -d.) -TEC_SYSARCH:=$(shell uname -m) - -# Fixes -ifeq ($(TEC_SYSNAME), SunOS) - TEC_SYSARCH:=$(shell uname -p) -endif -ifeq ($(TEC_SYSNAME), IRIX) - TEC_SYSARCH:=$(shell uname -p) -endif -ifeq ($(TEC_SYSNAME), FreeBSD) - TEC_SYSMINOR:=$(shell uname -r|cut -f2 -d.|cut -f1 -d-) -endif -ifeq ($(TEC_SYSNAME), AIX) - TEC_SYSVERSION:=$(shell uname -v) - TEC_SYSMINOR:=$(shell uname -r) - TEC_SYSARCH:=ppc -endif -ifeq ($(TEC_SYSNAME), Darwin) - TEC_SYSARCH:=$(shell uname -p) -endif - -ifeq ($(TEC_SYSARCH), powerpc) - TEC_SYSARCH:=ppc -endif -ifeq ($(TEC_SYSARCH), i686) - TEC_SYSARCH:=x86 -endif -ifeq ($(TEC_SYSARCH), i386) - TEC_SYSARCH:=x86 -endif -ifeq ($(TEC_SYSARCH), x86_64) - TEC_SYSARCH:=x64 -endif - -# Compose -TEC_SYSRELEASE:=$(TEC_SYSVERSION).$(TEC_SYSMINOR) -TEC_UNAME:=$(TEC_SYSNAME)$(TEC_SYSVERSION)$(TEC_SYSMINOR) - -# Linux 2.4 and GCC 3.x -ifeq ($(TEC_UNAME), Linux24) - GCCVER:=$(shell gcc -dumpversion|cut -f1 -d.) - ifeq ($(GCCVER), 3) - TEC_UNAME:=$(TEC_UNAME)g3 - endif -endif - -# Linux 2.6 and GCC 4.x -ifeq ($(TEC_UNAME), Linux26) - GCCVER:=$(shell gcc -dumpversion|cut -f1 -d.) - ifeq ($(GCCVER), 4) - TEC_UNAME:=$(TEC_UNAME)g4 - endif -endif - -# Linux and PowerPC -ifeq ($(TEC_SYSNAME), Linux) - ifeq ($(TEC_SYSARCH), ppc) - TEC_UNAME:=$(TEC_UNAME)ppc - endif -endif - -# 64-bits Linux -ifeq ($(TEC_SYSARCH), x64) - BUILD_64=Yes - TEC_UNAME:=$(TEC_UNAME)_64 -endif - -ifeq ($(TEC_SYSARCH), ia64) - BUILD_64=Yes - TEC_UNAME:=$(TEC_UNAME)_ia64 -endif - -# Solaris and Intel -ifeq ($(TEC_SYSNAME), SunOS) - ifeq ($(TEC_SYSARCH) , x86) - TEC_UNAME:=$(TEC_UNAME)x86 - endif -endif - -# Darwin and Intel -ifeq ($(TEC_SYSNAME), Darwin) -ifeq ($(TEC_SYSARCH), x86) - TEC_UNAME:=$(TEC_UNAME)x86 - endif -endif - -# System Info -.PHONY: sysinfo -sysinfo: - @echo ''; echo 'Tecmake - System Info' - @echo 'TEC_SYSNAME = $(TEC_SYSNAME)' - @echo 'TEC_SYSVERSION = $(TEC_SYSVERSION)' - @echo 'TEC_SYSMINOR = $(TEC_SYSMINOR)' - @echo 'TEC_SYSARCH = $(TEC_SYSARCH)' - @echo 'TEC_UNAME = $(TEC_UNAME)'; echo '' - -#---------------------------------# -# Directories Definitions -PROJDIR = .. -SRCDIR = . -OBJROOT = $(PROJDIR)/obj - - -#---------------------------------# -# Byte Order and Word Size - -ifneq ($(findstring x86, $(TEC_SYSARCH)), ) - TEC_BYTEORDER = TEC_LITTLEENDIAN -else -ifeq ($(TEC_SYSARCH), arm) - TEC_BYTEORDER = TEC_LITTLEENDIAN -else - TEC_BYTEORDER = TEC_LITTLEENDIAN -endif -endif - -ifeq ($(TEC_SYSARCH), x64) - TEC_WORDSIZE = TEC_64 -else -ifdef BUILD_64 - TEC_WORDSIZE = TEC_64 -else - TEC_WORDSIZE = TEC_32 -endif -endif - -# Itanium Exception -ifeq ($(TEC_SYSARCH), ia64) - TEC_BYTEORDER = TEC_LITTLEENDIAN - TEC_WORDSIZE = TEC_64 -endif - - -#---------------------------------# -# Compilation Flags -STDFLAGS := -Wall -STDDEFS := -DTEC_UNAME=$(TEC_UNAME) -DTEC_SYSNAME=$(TEC_SYSNAME) -D$(TEC_SYSNAME)=$(TEC_SYSRELEASE) -D$(TEC_BYTEORDER) -D$(TEC_WORDSIZE) -DFUNCPROTO=15 -STDINCS := -OPTFLAGS := -O3 -STDLFLAGS := r -DEBUGFLAGS := -g -STDLDFLAGS := -shared -DLIBEXT := so - -ifneq ($(findstring Linux, $(TEC_UNAME)), ) - GTK_DEFAULT := -endif -ifneq ($(findstring Darwin, $(TEC_UNAME)), ) - GTK_DEFAULT := -endif -ifneq ($(findstring FreeBSD, $(TEC_UNAME)), ) - GTK_DEFAULT := -endif -ifneq ($(findstring Linux24, $(TEC_UNAME)), ) - GTK_DEFAULT := -endif - -#---------------------------------# -# Build Tools - -CC := $(TEC_TOOLCHAIN)gcc -CPPC := $(TEC_TOOLCHAIN)g++ -FF := $(TEC_TOOLCHAIN)g77 -RANLIB := $(TEC_TOOLCHAIN)ranlib -AR := $(TEC_TOOLCHAIN)ar -DEBUGGER := $(TEC_TOOLCHAIN)gdb -RCC := $(TEC_TOOLCHAIN)windres -LD := $(TEC_TOOLCHAIN)gcc - -ifeq ($(TEC_UNAME), gcc2) - ifdef USE_GCC_2 - CC := $(CC)-2 - CPPC := $(CPPC)-2 - FF := $(FF)-2 - endif -endif - - -#---------------------------------# -# User Configuration File - -MAKENAME = config.mak - -ifdef MF - MAKENAME = $(MF).mak -endif - -################### -include $(MAKENAME) -################### - - -#---------------------------------# -# Definitions of public variables - -ifdef LIBNAME - TARGETNAME = $(LIBNAME) - MAKETYPE = LIB -else - TARGETNAME = $(APPNAME) - MAKETYPE = APP -endif - -ifndef TARGETNAME - $(error LIBNAME nor APPNAME defined in $(MAKENAME)) -endif - -PROJNAME ?= $(TARGETNAME) - -DEPEND := $(TARGETNAME).dep - -ifdef DEPENDDIR - DEPEND := $(DEPENDDIR)/$(TARGETNAME).dep.$(TEC_UNAME) -endif - -SRCLUADIR ?= $(SRCDIR) -LOHDIR ?= $(SRCLUADIR) - -ifeq ($(MAKETYPE), APP) - TARGETROOT ?= $(PROJDIR)/bin -else - TARGETROOT ?= $(PROJDIR)/lib -endif - -ifneq ($(PROJNAME), $(TARGETNAME)) - OBJROOT := $(OBJROOT)/$(TARGETNAME) -endif - -ifdef DBG - STDFLAGS += $(DEBUGFLAGS) - STDDEFS += -DDEBUG -else - STDDEFS += -DNDEBUG - ifdef OPT - STDFLAGS += $(OPTFLAGS) - ifeq ($(findstring gcc, $(TEC_UNAME)), ) - STRIP ?= Yes - endif - endif -endif - -ifdef BUILD_64 - ifneq ($(findstring SunOS, $(TEC_UNAME)), ) - USE_CC = Yes - BUILD_64_DIR = Yes - endif - ifneq ($(findstring AIX, $(TEC_UNAME)), ) - USE_CC = Yes - BUILD_64_DIR = Yes - endif - ifneq ($(findstring IRIX, $(TEC_UNAME)), ) - USE_CC = Yes - BUILD_64_DIR = Yes - endif -endif - -ifdef USE_CC - CC := cc - CPPC := CC - STDFLAGS = - ifdef USE_CC_DIR - TEC_UNAME := $(TEC_UNAME)cc - endif -endif - -ifdef BUILD_64 - ifdef BUILD_64_DIR - TEC_UNAME := $(TEC_UNAME)_64 - endif -endif - -ifneq ($(findstring gcc, $(TEC_UNAME)), ) - ifeq ($(MAKETYPE), APP) - TEC_UNAME_DIR ?= $(TEC_SYSNAME) - endif -endif - -TEC_UNAME_DIR ?= $(TEC_UNAME) -ifdef DBG - ifdef DBG_DIR - TEC_UNAME_DIR := $(TEC_UNAME_DIR)d - endif -endif - -OBJDIR := $(OBJROOT)/$(TEC_UNAME_DIR) -TARGETDIR := $(TARGETROOT)/$(TEC_UNAME_DIR) - -# Change linker if any C++ source -ifndef LINKER - ifneq "$(findstring .cpp, $(SRC))" "" - LINKER := $(CPPC) - else - LINKER := $(CC) - endif -endif - - -#---------------------------------# -# LO and LOH Suffix - -ifeq ($(TEC_BYTEORDER), TEC_BIGENDIAN) - ifeq ($(TEC_WORDSIZE), TEC_64) - LO_SUFFIX ?= _be64 - else - LO_SUFFIX ?= _be32 - endif -else - ifeq ($(TEC_WORDSIZE), TEC_64) - LO_SUFFIX ?= _le64 - else - LO_SUFFIX ?= - endif -endif - - -#---------------------------------# -# Platform specific variables - -# Definicoes para o X11 -X11_LIBS := Xmu Xt Xext X11 -#X11_LIB := -#X11_INC := #include <X11/X.h> - -# Definicoes para o OpenGL -OPENGL_LIBS := GLU GL -#OPENGL_LIB := -#OPENGL_INC := #include <GL/gl.h> and possibly -MOTIFGL_LIB := GLw #include <GL/GLwMDrawA.h> - -# Definicoes para o Motif -#MOTIF_LIB := -#MOTIF_INC := #include <Xm/Xm.h> - -# Definicoes para o GLUT -#GLUT_LIB := -#GLUT_INC := - - -ifneq ($(findstring cygw, $(TEC_UNAME)), ) - NO_DYNAMIC ?= Yes - ifdef BUILD_64 - X11_LIB := /usr/X11R6/lib64 - else - X11_LIB := /usr/X11R6/lib - endif - X11_INC := /usr/X11R6/include - MOTIFGL_LIB := -endif - -ifneq ($(findstring Linux, $(TEC_UNAME)), ) - ifdef BUILD_64 - ifeq ($(TEC_SYSARCH), ia64) - STDFLAGS += -fPIC - X11_LIB := /usr/X11R6/lib - else - STDFLAGS += -m64 -fPIC - X11_LIB := /usr/X11R6/lib64 - endif - else - X11_LIB := /usr/X11R6/lib - endif - X11_INC := /usr/X11R6/include - MOTIFGL_LIB := -endif - -ifneq ($(findstring IRIX, $(TEC_UNAME)), ) # any IRIX - LD = ld - STDLDFLAGS := -elf -shared -rdata_shared -soname lib$(TARGETNAME).so - RANLIB := /bin/true - X11_LIBS := Xmu Xt X11 - ifdef BUILD_64 - ifdef USE_CC - STDFLAGS += -64 -KPIC - STDLDFLAGS += -64 - LINKER += -64 - endif - X11_LIB := /usr/lib64 - MOTIF_LIB := /usr/Motif-2.1/lib64 - else - X11_LIB := /usr/lib32 - MOTIF_LIB := /usr/Motif-2.1/lib32 - endif - MOTIF_INC = /usr/Motif-2.1/include -endif - -ifneq ($(findstring AIX, $(TEC_UNAME)), ) - NO_DYNAMIC ?= Yes - ifdef BUILD_64 - ifdef USE_CC - STDFLAGS += -q64 # to compilers C and C++ - STDLFLAGS := -X64 $(STDLFLAGS) # to librarian - STDLDFLAGS += -64 - LINKER += -q64 # to linker - endif - endif -endif - -ifneq ($(findstring HP-UX, $(TEC_UNAME)), ) - NO_DYNAMIC ?= Yes - MOTIF_INC := /usr/include/Motif2.1 - X11_LIBS := Xt Xext X11 - OPENGL_LIB := /opt/graphics/OpenGL/lib - OPENGL_INC := /opt/graphics/OpenGL/include - STDDEFS := -DTEC_UNAME=$(TEC_UNAME) -DTEC_SYSNAME=$(TEC_SYSNAME) -D$(TEC_BYTEORDER) -D$(TEC_WORDSIZE) -DFUNCPROTO=15 - CC := aCC - CPPC := aCC - LINKER := aCC -endif - -ifneq ($(findstring SunOS, $(TEC_UNAME)), ) - LD = ld - STDLDFLAGS := -G - X11_INC := /usr/openwin/share/include - X11_LIB := /usr/openwin/lib - MOTIF_INC := /usr/dt/share/include - MOTIF_LIB := /usr/dt/lib - OPENGL_INC := /usr/openwin/share/include/X11 - GLUT_LIB := /usr/local/glut-3.7/lib/glut - GLUT_INC := /usr/local/glut-3.7/include - ifdef BUILD_64 - ifdef USE_CC - STDFLAGS += -xarch=v9 -KPIC - # have to force these PATHs because of a conflict with standard PATHs - STDLDFLAGS += -64 -L/usr/lib/64 -L/usr/ucblib/sparcv9 - LINKER += -xarch=v9 - endif - endif -endif - -ifneq ($(findstring Darwin, $(TEC_UNAME)), ) - X11_LIBS := Xmu Xp Xt Xext X11 - X11_LIB := /usr/X11R6/lib - X11_INC := /usr/X11R6/include - MOTIF_INC := /usr/OpenMotif/include - MOTIF_LIB := /usr/OpenMotif/lib - ifdef BUILD_DYLIB - STDLDFLAGS := -dynamiclib -install_name lib$(TARGETNAME).dylib - DLIBEXT := dylib - else - STDLDFLAGS := -bundle -undefined dynamic_lookup - endif -endif - -ifneq ($(findstring FreeBSD, $(TEC_UNAME)), ) - X11_LIB := /usr/X11R6/lib - X11_INC := /usr/X11R6/include -endif - - -################################ -# Allows an extra configuration file. -ifdef EXTRA_CONFIG -include $(EXTRA_CONFIG) -endif -################################ - - -#---------------------------------# -# Tecgraf Libraries Location -TECTOOLS_HOME ?= ../.. - -IUP ?= $(TECTOOLS_HOME)/iup -CD ?= $(TECTOOLS_HOME)/cd -IM ?= $(TECTOOLS_HOME)/im -LUA ?= $(TECTOOLS_HOME)/lua -LUA51 ?= $(TECTOOLS_HOME)/lua5.1 - - -#---------------------------------# -# Pre-defined libraries - -# Library order: -# user + iupcd + cd + iup + motif + X -# Library path order is the oposite - -USE_MOTIF = Yes - -ifdef USE_LUA - LUASUFX := - LIBLUASUFX := 3 -endif - -ifdef USE_LUA4 - LUASUFX := 4 - LIBLUASUFX := 4 - override USE_LUA = Yes - LUA := $(LUA4) -endif - -ifdef USE_LUA5 - LUASUFX := 5 - LIBLUASUFX := 5 - override USE_LUA = Yes - LUA := $(LUA5) -endif - -ifdef USE_LUA50 - LUASUFX := 50 - LIBLUASUFX := 5 - override USE_LUA = Yes - LUA := $(LUA50) - NO_LUALIB := Yes -endif - -ifdef USE_LUA51 - LUASUFX := 5.1 - LIBLUASUFX := 51 - override USE_LUA = Yes - LUA := $(LUA51) - NO_LUALIB := Yes -endif - -ifdef USE_IUP3 - override USE_IUP = Yes -endif - -ifdef USE_IUP3BETA - IUP := $(IUP)3 -endif - -ifdef USE_IUPBETA - IUP := $(IUP)/beta -endif - -ifdef USE_CDBETA - CD := $(CD)/beta -endif - -ifdef USE_IMBETA - IM := $(IM)/beta -endif - -ifdef USE_GLUT - override USE_OPENGL = Yes -endif - -ifdef USE_IUPCONTROLS - override USE_CD = Yes - override USE_IUP = Yes - ifdef USE_IUPLUA - ifdef USE_STATIC - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupluacontrols$(LIBLUASUFX).a - else - LIBS += iupluacontrols$(LIBLUASUFX) - endif - override USE_CDLUA = Yes - endif - ifdef USE_STATIC - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupcontrols.a - else - LIBS += iupcontrols - endif -endif - -ifdef USE_IMLUA - override USE_IM = Yes - ifdef USE_STATIC - SLIB += $(IM)/lib/$(TEC_UNAME)/libimlua$(LIBLUASUFX).a - else - LIBS += imlua$(LIBLUASUFX) - endif -endif - -ifdef USE_CDLUA - override USE_CD = Yes - ifdef USE_STATIC - ifdef USE_IUP - ifdef USE_OLDNAMES - SLIB += $(CD)/lib/$(TEC_UNAME)/libcdluaiup$(LIBLUASUFX).a - endif - endif - SLIB += $(CD)/lib/$(TEC_UNAME)/libcdlua$(LIBLUASUFX).a - else - ifdef USE_IUP - ifdef USE_OLDNAMES - LIBS += cdluaiup$(LIBLUASUFX) - endif - endif - LIBS += cdlua$(LIBLUASUFX) - endif -endif - -ifdef USE_IUPLUA - override USE_IUP = Yes - ifdef USE_STATIC - ifdef USE_CD - ifndef USE_OLDNAMES - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupluacd$(LIBLUASUFX).a - endif - endif - ifdef USE_OPENGL - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupluagl$(LIBLUASUFX).a - endif - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiuplua$(LIBLUASUFX).a - else - ifdef USE_CD - ifndef USE_OLDNAMES - LIBS += iupluacd$(LIBLUASUFX) - endif - endif - ifdef USE_OPENGL - LIBS += iupluagl$(LIBLUASUFX) - endif - LIBS += iuplua$(LIBLUASUFX) - endif -endif - -ifdef USE_LUA - LUA_LIB ?= $(LUA)/lib/$(TEC_UNAME) - ifdef USE_STATIC - ifndef NO_LUALIB - SLIB += $(LUA_LIB)/liblualib$(LUASUFX).a - endif - SLIB += $(LUA_LIB)/liblua$(LUASUFX).a - else - ifndef NO_LUALIB - LIBS += lualib$(LUASUFX) - endif - ifndef NO_LUALINK - LIBS += lua$(LUASUFX) - LDIR += $(LUA_LIB) - endif - endif - - LUA_INC ?= $(LUA)/include - INCLUDES += $(LUA_INC) - - LUA_BIN ?= $(LUA)/bin/$(TEC_UNAME) - BIN2C := $(LUA_BIN)/bin2c$(LUASUFX) - LUAC := $(LUA_BIN)/luac$(LUASUFX) - LUABIN := $(LUA_BIN)/lua$(LUASUFX) -endif - -ifdef USE_IUP - IUPSUFX := - ifdef USE_IUP3 - ifdef GTK_DEFAULT - ifdef USE_MOTIF - IUPSUFX := mot - else - override USE_GTK = Yes - endif - else - ifdef USE_GTK - IUPSUFX := gtk - else - override USE_MOTIF = Yes - endif - endif - else - override USE_MOTIF = Yes - endif - ifdef USE_STATIC - ifdef USE_CD - ifndef USE_OLDNAMES - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupcd.a - endif - endif - ifdef USE_OPENGL - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupgl.a - endif - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiup$(IUPSUFX).a - else - ifdef USE_CD - ifndef USE_OLDNAMES - LIBS += iupcd - endif - endif - ifdef USE_OPENGL - LIBS += iupgl - endif - LIBS += iup$(IUPSUFX) - LDIR += $(IUP)/lib/$(TEC_UNAME) - endif - INCLUDES += $(IUP)/include -endif - -ifdef USE_CD - override USE_X11 = Yes - ifdef USE_STATIC - ifdef USE_IUP - ifdef USE_OLDNAMES - SLIB += $(CD)/lib/$(TEC_UNAME)/libcdiup.a - endif - endif - ifdef USE_XRENDER - ifdef USE_OLDNAMES - SLIB += $(CD)/lib/$(TEC_UNAME)/libcdxrender.a - else - SLIB += $(CD)/lib/$(TEC_UNAME)/libcdcontextplus.a - endif - endif - SLIB += $(CD)/lib/$(TEC_UNAME)/libcd.a - ifdef USE_XRENDER - LIBS += Xrender Xft - else - ifndef USE_GTK - ifndef USE_OLDNAMES - # Freetype is included in GTK -# SLIB += $(CD)/lib/$(TEC_UNAME)/libfreetype.a - endif - endif - endif - else - ifdef USE_XRENDER - ifdef USE_OLDNAMES - LIBS += cdxrender - else - LIBS += cdcontextplus - endif - endif - LIBS += cd - LDIR += $(CD)/lib/$(TEC_UNAME) - ifdef USE_XRENDER - LIBS += Xrender Xft - else - ifndef USE_GTK - ifndef USE_OLDNAMES - # Freetype is included in GTK - LIBS += freetype - endif - endif - endif - endif - INCLUDES += $(CD)/include -endif - -ifdef USE_IM - ifdef USE_STATIC - SLIB += $(IM)/lib/$(TEC_UNAME)/libim.a - else - LIBS += im - LDIR += $(IM)/lib/$(TEC_UNAME) - endif - INCLUDES += $(IM)/include -endif - -# All except gcc in Windows (Cygwin) -ifeq ($(findstring gcc, $(TEC_UNAME)), ) - -ifdef USE_GLUT - LIBS += glut - LDIR += $(GLUT_LIB) - STDINCS += $(GLUT_INC) -endif - -ifdef USE_OPENGL - override USE_X11 = Yes - ifdef USE_MOTIF - LIBS += $(MOTIFGL_LIB) - endif - LIBS += $(OPENGL_LIBS) - LDIR += $(OPENGL_LIB) - STDINCS += $(OPENGL_INC) -endif - -ifdef USE_MOTIF - override USE_X11 = Yes - LIBS += Xm - LDIR += $(MOTIF_LIB) - STDINCS += $(MOTIF_INC) - ifneq ($(findstring Linux, $(TEC_UNAME)), ) - X11_LIBS := Xpm $(X11_LIBS) - endif - ifneq ($(findstring cygw, $(TEC_UNAME)), ) - X11_LIBS := Xpm $(X11_LIBS) - endif -endif - -ifdef USE_GTK -# ifneq ($(findstring Darwin, $(TEC_UNAME)), ) -# STDINCS += /Library/Frameworks/Gtk.framework/Headers -# STDINCS += /Library/Frameworks/GLib.framework/Headers -# STDINCS += /Library/Frameworks/Cairo.framework/Headers -# LFLAGS += -framework Gtk -# else - ifneq ($(findstring Darwin, $(TEC_UNAME)), ) - GTK_BASE := /sw - LDIR += /sw/lib - LIBS += freetype - else - GTK_BASE := /usr - endif - override USE_X11 = Yes - LIBS += gtk-x11-2.0 gdk-x11-2.0 gdk_pixbuf-2.0 pango-1.0 pangox-1.0 gobject-2.0 gmodule-2.0 glib-2.0 - STDINCS += $(GTK_BASE)/include/atk-1.0 $(GTK_BASE)/include/gtk-2.0 $(GTK_BASE)/include/cairo $(GTK_BASE)/include/pango-1.0 $(GTK_BASE)/include/glib-2.0 - ifeq ($(TEC_SYSARCH), x64) - STDINCS += $(GTK_BASE)/lib64/glib-2.0/include $(GTK_BASE)/lib64/gtk-2.0/include - else - ifeq ($(TEC_SYSARCH), ia64) - STDINCS += $(GTK_BASE)/lib64/glib-2.0/include $(GTK_BASE)/lib64/gtk-2.0/include - else - STDINCS += $(GTK_BASE)/lib/glib-2.0/include $(GTK_BASE)/lib/gtk-2.0/include - endif - endif - ifneq ($(findstring FreeBSD, $(TEC_UNAME)), ) - STDINCS += /lib/X11R6/include/gtk-2.0 - endif -# endif -endif - -ifdef USE_QT - override USE_X11 = Yes - LIBS += QtGui QtCore - QT_BASE_INC := /usr/include/qt4 - STDINCS += $(QT_BASE_INC) $(QT_BASE_INC)/QtCore $(QT_BASE_INC)/QtGui - STDDEFS += -DQT_DLL -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -endif - -ifdef USE_X11 - LIBS += $(X11_LIBS) - LDIR += $(X11_LIB) - STDINCS += $(X11_INC) -endif - -LIBS += m - -else - # gcc in Windows - NO_DYNAMIC ?= Yes - STDDEFS += -DWIN32 - - ifdef USE_NOCYGWIN - STDFLAGS += -mno-cygwin - endif - - ifdef USE_GLUT - LIBS += glut32 - endif - - ifdef USE_OPENGL - LIBS += opengl32 glu32 glaux - endif - - LIBS += gdi32 winspool comdlg32 comctl32 ole32 - - ifdef USE_GTK - LIBS += gtk-win32-2.0 gdk-win32-2.0 gdk_pixbuf-2.0 pango-1.0 pangowin32-1.0 gobject-2.0 gmodule-2.0 glib-2.0 - #LDIR += $(GTK)/lib - GTK_INC = /usr - STDINCS += $(GTK_INC)/include/atk-1.0 $(GTK_INC)/include/gtk-2.0 $(GTK_INC)/include/cairo $(GTK_INC)/include/pango-1.0 $(GTK_INC)/include/glib-2.0 $(GTK_INC)/lib/glib-2.0/include $(GTK_INC)/lib/gtk-2.0/include - endif - - APPTYPE ?= windows - - ifeq ($(APPTYPE), windows) - LFLAGS += -mwindows - - ifdef USE_NOCYGWIN - LFLAGS += -mno-cygwin - endif - endif -endif - - -#---------------------------------# -# Building compilation flags that are sets - -INCLUDES := $(addprefix -I, $(INCLUDES)) -STDINCS := $(addprefix -I, $(STDINCS)) -EXTRAINCS := $(addprefix -I, $(EXTRAINCS)) -DEFINES := $(addprefix -D, $(DEFINES)) - -LIBS := $(addprefix -l, $(LIBS)) -ifdef LDIR - LDIR := $(addprefix -L, $(LDIR)) -endif - - -#---------------------------------# -# Definitions of private variables - -# Library flags for application and dynamic library linker -LFLAGS += $(LDIR) $(LIBS) -# C compiler flags -CFLAGS = $(FLAGS) $(STDFLAGS) $(INCLUDES) $(STDINCS) $(EXTRAINCS) $(DEFINES) $(STDDEFS) -# C++ compiler flags -CXXFLAGS = $(CPPFLAGS) $(STDFLAGS) $(INCLUDES) $(STDINCS) $(EXTRAINCS) $(DEFINES) $(STDDEFS) - -# Sources with relative path -SOURCES := $(addprefix $(SRCDIR)/, $(SRC)) - -# Target for applications or libraries -ifeq ($(MAKETYPE), APP) - TARGET := $(TARGETDIR)/$(TARGETNAME) -else - ifeq ($(NO_DYNAMIC), Yes) - TARGET := $(TARGETDIR)/lib$(TARGETNAME).a - else - TARGET := $(TARGETDIR)/lib$(TARGETNAME).a $(TARGETDIR)/lib$(TARGETNAME).$(DLIBEXT) - endif -endif - -# OBJ: list of .o, without path -# OBJS: list of .o with relative path -OBJ = $(notdir $(SRC)) -OBJ := $(OBJ:.c=.o) -OBJ := $(OBJ:.cpp=.o) -OBJ := $(OBJ:.cxx=.o) -OBJ := $(OBJ:.cc=.o) -OBJ := $(OBJ:.f=.o) -OBJ := $(OBJ:.for=.o) -OBJ := $(OBJ:.rc=.ro) -OBJS = $(addprefix $(OBJDIR)/, $(OBJ)) - -# LOH: list of .loh, without path -# LOHS: list of .loh, with relative path -LO = $(notdir $(SRCLUA)) -LO := $(LO:.lua=$(LO_SUFFIX).lo) -LOS = $(addprefix $(OBJROOT)/, $(LO)) - -LOH = $(notdir $(SRCLUA)) -LOH := $(LOH:.lua=$(LO_SUFFIX).loh) -LOHS = $(addprefix $(LOHDIR)/, $(LOH)) - -# Construct VPATH variable -P-SRC = $(dir $(SRC)) -P-SRC += $(dir $(SRCLUA)) -VPATH = .:$(foreach dir,$(P-SRC),$(if $(dir)="./",:$(dir))) - - -#---------------------------------# -# Main Rule - Build Everything that it is necessary - -.PHONY: tecmake -ifeq ($(MAKETYPE), APP) - tecmake: print-start directories application scripts -else - ifeq ($(NO_DYNAMIC), Yes) - tecmake: print-start directories static-lib - else - tecmake: print-start directories static-lib dynamic-lib - endif -endif - -.PHONY: print-start -print-start: - @echo ''; echo 'Tecmake - Starting [ $(TARGETNAME):$(TEC_UNAME) ]' - - -#---------------------------------# -# Dynamic Library Build - -.PHONY: dynamic-lib -dynamic-lib: $(TARGETDIR)/lib$(TARGETNAME).$(DLIBEXT) - -$(TARGETDIR)/lib$(TARGETNAME).$(DLIBEXT) : $(LOHS) $(OBJS) $(EXTRADEPS) - $(LD) $(STDLDFLAGS) -o $@ $(OBJS) $(SLIB) $(LFLAGS) - @echo 'Tecmake - Dynamic Library ($@) Done.'; echo '' - - -#---------------------------------# -# Static Library Build - -.PHONY: static-lib -static-lib: $(TARGETDIR)/lib$(TARGETNAME).a - -$(TARGETDIR)/lib$(TARGETNAME).a : $(LOHS) $(OBJS) $(EXTRADEPS) - $(AR) $(STDLFLAGS) $@ $(OBJS) $(SLIB) $(LCFLAGS) - -$(RANLIB) $@ - @echo 'Tecmake - Static Library ($@) Done.'; echo '' - - -#---------------------------------# -# Application Build - -.PHONY: application -application: $(TARGETDIR)/$(TARGETNAME) - -$(TARGETDIR)/$(TARGETNAME) : $(LOHS) $(OBJS) $(EXTRADEPS) - $(LINKER) -o $@ $(OBJS) $(SLIB) $(LFLAGS) - @if [ ! -z "$(STRIP)" ]; then \ - echo "Striping debug information" ;\ - strip $@ ;\ - fi - @echo 'Tecmake - Application ($@) Done.'; echo '' - - -#---------------------------------# -# Application Scripts - -# Script name -SRELEASE := $(SRCDIR)/$(TARGETNAME) - -.PHONY: scripts -ifdef NO_SCRIPTS - scripts: ; -else - scripts: $(SRELEASE) ; -endif - -$(SRELEASE): $(MAKENAME) - @echo 'Building script $(@F)' - @echo "#!/bin/csh" > $@ - @echo "# Script generated automatically by tecmake v$(VERSION)" >> $@ - @echo "# Remove the comment bellow to set the LD_LIBRARY_PATH if needed." >> $@ - @echo '#setenv LD_LIBRARY_PATH $(MYLIB1)/lib/$${TEC_UNAME}:$(MYLIB2)/lib/$${TEC_UNAME}:$$LD_LIBRARY_PATH' >> $@ - @echo 'if ( -r app.env ) source app.env' >> $@ - @echo 'exec $(TARGETROOT)/$$TEC_UNAME/$(TARGETNAME) $$*' >> $@ - @chmod a+x $@ - - -#---------------------------------# -# Directories Creation - -.PHONY: directories -directories: $(OBJDIR) $(TARGETDIR) $(EXTRADIR) $(LOHDIR) - -$(OBJDIR) $(TARGETDIR): - if [ ! -d $@ ] ; then mkdir -p $@ ; fi - -ifdef EXTRADIR - $(EXTRADIR): - if [ ! -d $@ ] ; then mkdir -p $@ ; fi -else - $(EXTRADIR): ; -endif - -ifdef LOHDIR - $(LOHDIR): - if [ ! -d $@ ] ; then mkdir -p $@ ; fi -else - $(LOHDIR): ; -endif - - -#---------------------------------# -# Compilation Rules - -$(OBJDIR)/%.o: $(SRCDIR)/%.c - @echo Compiling $(<F)... - $(CC) -c $(CFLAGS) -o $@ $< - -$(OBJDIR)/%.o: $(SRCDIR)/%.cpp - @echo Compiling $(<F)... - $(CPPC) -c $(CXXFLAGS) -o $@ $< - -$(OBJDIR)/%.o: $(SRCDIR)/%.cxx - @echo Compiling $(<F)... - $(CPPC) -c $(CXXFLAGS) -o $@ $< - -$(OBJDIR)/%.o: $(SRCDIR)/%.cc - @echo Compiling $(<F)... - $(CPPC) -c $(CXXFLAGS) -o $@ $< - -$(OBJDIR)/%.o: $(SRCDIR)/%.f - @echo Compiling $(<F)... - $(FC) -c $(FFLAGS) -o $@ $< - -$(OBJDIR)/%.o: $(SRCDIR)/%.for - @echo Compiling $(<F)... - $(FC) -c $(FFLAGS) -o $@ $< - -$(OBJDIR)/%.ro: $(SRCDIR)/%.rc - @echo Compiling $(<F)... - $(RCC) $(RCFLAGS) -O coff -o $@ $< - -$(LOHDIR)/%.loh: $(OBJROOT)/%.lo - @echo Generating $(<F)... - $(BIN2C) $< > $@ - -$(OBJROOT)/%$(LO_SUFFIX).lo: $(SRCLUADIR)/%.lua - @echo Compiling $(<F)... - $(LUAC) -o $@ $< - - -#---------------------------------# -# Dependencies - -# make depend -# Build dependencies -.PHONY: depend -depend: $(DEPEND) - -$(DEPEND): $(MAKENAME) - ifdef SRC - @echo "" > $(DEPEND) - @which $(CPPC) 2> /dev/null 1>&2 ;\ - if [ $$? -eq 0 ]; then \ - echo "Building dependencies... (can be slow)" ;\ - $(CPPC) $(INCLUDES) $(DEFINES) $(STDDEFS) -MM $(SOURCES) | \ - sed -e '1,$$s/^\([^ ]\)/$$(OBJDIR)\/\1/' > $(DEPEND) ;\ - else \ - echo "" ;\ - echo "$(CPPC) not found. Dependencies can not be built." ;\ - echo "Must set USE_NODEPEND=Yes." ;\ - echo "" ;\ - exit 1 ;\ - fi - endif - -################### -ifndef USE_NODEPEND -include $(DEPEND) -endif -################### - - -#---------------------------------# -# Management Rules - -# make clean-extra -# Remove extra files -.PHONY: clean-extra -clean-extra: - rm -f $(DEPEND) $(SRELEASE) so_locations - -# make clean-lohs -# Remove Lua object inclusion files -.PHONY: clean-lohs -clean-lohs: - rm -f $(LOS) $(LOHS) - -# make clean-obj -# Remove object files -.PHONY: clean-obj -clean-obj: - rm -f $(OBJS) - -# make clean-target -# Remove target -.PHONY: clean-target -clean-target: - rm -f $(TARGET) - -# make clean -# Remove target and object files -.PHONY: clean -clean: clean-target clean-obj - -# make rebuild -# Remove symbols from executables -.PHONY: strip -strip: - test -r $(TARGETDIR)/$(TARGETNAME) && strip $(TARGETDIR)/$(TARGETNAME) - -# make rebuild -# Rebuild target and object files -.PHONY: rebuild -rebuild: clean-extra clean-lohs clean-obj clean-target tecmake - -# make relink -# Rebuild target without rebuilding object files -.PHONY: relink -relink: clean-target tecmake - -.PHONY: version -version: - @echo "Tecmake Compact Version $(VERSION)" - -#---------------------------------# diff --git a/iup/test/bigtest.c b/iup/test/bigtest.c index 713e752..84905e6 100755 --- a/iup/test/bigtest.c +++ b/iup/test/bigtest.c @@ -62,6 +62,7 @@ void ConfTest(void); void ZboxTest(void); void ScanfTest(void); void SboxTest(void); +void SplitTest(void); void ClipboardTest(void); void HelpTest(void) @@ -115,6 +116,7 @@ static TestItems test_list[] = { {"Progressbar", ProgressbarTest}, {"Sample", SampleTest}, {"Sbox", SboxTest}, + {"Split", SplitTest}, {"Scanf", ScanfTest}, {"Spin", SpinTest}, {"SysInfo", SysInfoTest}, @@ -164,8 +166,6 @@ int main(int argc, char* argv[]) IupOpen(&argc, &argv); IupControlsOpen(); -// IupOldValOpen(); -// IupOldTabsOpen(); dlg = IupDialog(IupVbox(list = IupList(NULL), NULL)); IupSetAttribute(dlg, "MARGIN", "10x10"); diff --git a/iup/test/button.c b/iup/test/button.c index da2906d..f04f082 100755 --- a/iup/test/button.c +++ b/iup/test/button.c @@ -346,13 +346,13 @@ void ButtonTest(void) // IupSetAttribute(button, "ALIGNMENT", "ALEFT:ATOP"); // IupSetAttribute(button, "RASTERSIZE", "200x100"); // IupSetAttribute(button, "IMAGEPOSITION", "BOTTOM"); - IupSetAttribute(button, "PADDING", "5x5"); +// IupSetAttribute(button, "PADDING", "5x5"); // IupSetAttribute(button, "TITLE", "Text1"); - IupSetAttribute(button, "FONT", "Helvetica, 14"); +// IupSetAttribute(button, "FONT", "Helvetica, 14"); // IupSetAttribute(button, "IMAGE", "IUP_Tecgraf"); IupSetAttributeHandle(button, "IMAGE", image1); // IupSetAttributeHandle(button, "IMINACTIVE", image1i); -// IupSetAttributeHandle(button, "XXX__IMPRESS", image1p); + IupSetAttributeHandle(button, "IMPRESS", image1p); IupSetAttribute(button, "TIP", "Image Label"); IupSetAttribute(button, "NAME", "button4"); set_callbacks(button); @@ -360,13 +360,15 @@ void ButtonTest(void) button = IupButton(NULL, NULL); IupSetAttributeHandle(button, "IMAGE", image2); - IupSetAttribute(button, "TITLE", "Text2"); +// IupSetAttribute(button, "TITLE", "Text2"); // IupSetAttribute(button, "IMAGEPOSITION", "TOP"); // IupSetAttribute(button, "SPACING", "30"); // IupSetAttribute(button, "ALIGNMENT", "ALEFT"); // IupSetAttribute(button, "RASTERSIZE", "200x100"); IupSetAttribute(button, "FLAT", "YES"); - IupSetAttribute(button, "FOCUSONCLICK", "NO"); +// IupSetAttributeHandle(button, "IMPRESS", image2); +// IupSetAttribute(button, "FOCUSONCLICK", "NO"); +// IupSetAttribute(button, "RASTERSIZE", "15x15"); IupSetAttribute(button, "NAME", "button5"); set_callbacks(button); IupAppend(box2, button); @@ -382,12 +384,18 @@ void ButtonTest(void) label = IupLabel(NULL); IupSetAttribute(label, "SEPARATOR", "VERTICAL"); + IupSetHandle("teste1", label); + IupSetHandle("xxxx", label); + IupSetHandle("teste2", label); + IupSetHandle("yyy", label); + IupSetHandle("dasdasdas", label); + IupSetHandle("label", label); dlg = IupDialog(IupHbox(box1, label, box2, NULL)); IupSetAttribute(dlg, "TITLE", "IupButton Test"); // IupSetAttribute(box1, "BGCOLOR", "128 0 0"); // IupSetAttribute(dlg, "BGCOLOR", "0 128 0"); -// IupSetAttribute(dlg, "BACKGROUND", "0 0 128"); + IupSetAttribute(dlg, "BACKGROUND", "255 128 128"); // IupSetAttributeHandle(dlg, "BACKGROUND", image2); IupSetAttributeHandle(dlg, "STARTFOCUS", button); diff --git a/iup/test/canvas.c b/iup/test/canvas.c index d13945c..b01e5a6 100755 --- a/iup/test/canvas.c +++ b/iup/test/canvas.c @@ -58,19 +58,31 @@ static unsigned char pixmap_cursor [ ] = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } ; -//#define USE_GTK +//#define USE_GDK /* draw a rectangle that has w=600 always, white background and a red X */ -#ifdef USE_GTK +#ifdef USE_GDK #include <gtk/gtk.h> static void drawTest(Ihandle *ih, int posx) { GtkWidget* widget = (GtkWidget*)IupGetAttribute(ih, "WID"); - gdk_draw_arc (widget->window, - widget->style->fg_gc[GTK_WIDGET_STATE (widget)], - TRUE, - 0, 0, widget->allocation.width, widget->allocation.height, - 0, 64 * 360); + GdkGC* gc = widget->style->fg_gc[GTK_WIDGET_STATE(widget)]; + int w, h; + GdkColor color; + + IupGetIntInt(ih, "DRAWSIZE", &w, &h); + + /* white background */ + color.red = 65535; color.green = 65535; color.blue = 65535; + gdk_gc_set_rgb_fg_color(gc, &color); + gdk_draw_rectangle(widget->window, gc, TRUE, 0, 0, w, h); + + /* red X */ + w = 600; /* virtual size */ + color.red = 65535; color.green = 0; color.blue = 0; + gdk_gc_set_rgb_fg_color(gc, &color); + gdk_draw_line(widget->window, gc, -posx, 0, w-posx, h); + gdk_draw_line(widget->window, gc, -posx, h, w-posx, 0); } #else #ifdef WIN32 @@ -232,6 +244,18 @@ static int wheel_cb(Ihandle *ih,float delta,int x,int y,char* status) static int motion_cb(Ihandle *ih,int x,int y,char* status) { printf("MOTION_CB(x=%d, y=%d [%s])\n",x,y, status); + + { + static int count=0; +#ifdef WIN32 + Sleep(1000); +#else + sleep(1); //or do anything that takes some time +#endif + count++; + printf("count(%d)\n",count); + } + return IUP_DEFAULT; } @@ -295,7 +319,7 @@ void CanvasTest(void) IupSetCallback(canvas, "MAP_CB", (Icallback)map_cb); IupSetCallback(canvas, "KEYPRESS_CB", (Icallback)keypress_cb); - IupSetCallback(canvas, "K_ANY", (Icallback)k_any); +// IupSetCallback(canvas, "K_ANY", (Icallback)k_any); IupSetCallback(canvas, "HELP_CB", (Icallback)help_cb); IupSetCallback(canvas, "GETFOCUS_CB", (Icallback)getfocus_cb); diff --git a/iup/test/config.mak b/iup/test/config.mak index 2764e6c..b97ae83 100755 --- a/iup/test/config.mak +++ b/iup/test/config.mak @@ -1,27 +1,38 @@ +PROJNAME = iup APPNAME = iuptest APPTYPE = CONSOLE -INCLUDES = ../include - -ifdef USE_GTK - ifndef GTK_DEFAULT - # Build GTK version in IRIX,SunOS,AIX,Win32 - APPNAME = iuptestgtk - endif -else - ifdef GTK_DEFAULT +ifdef GTK_DEFAULT + ifdef USE_MOTIF # Build Motif version in Linux,Darwin,FreeBSD - USE_MOTIF = Yes APPNAME = iuptestmot endif +else + ifdef USE_GTK + # Build GTK version in IRIX,SunOS,AIX,Win32 + APPNAME = iuptestgtk + endif +endif + +ifdef USE_GDK + APPNAME = iuptestgdk endif +INCLUDES = ../include + USE_IUP3 = Yes USE_STATIC = Yes IUP = .. -#TEC_UNAME_DIR = Win32.$(TEC_UNAME) -#DBG = Yes +ifdef DBG_DIR + IUPLIB = $(IUP)/lib/$(TEC_UNAME)d + CDLIB = $(CD)/lib/$(TEC_UNAME)d + IMLIB = $(IM)/lib/$(TEC_UNAME)d +else + IUPLIB = $(IUP)/lib/$(TEC_UNAME) + CDLIB = $(CD)/lib/$(TEC_UNAME) + IMLIB = $(IM)/lib/$(TEC_UNAME) +endif # Must uncomment all SRC lines DEFINES = BIG_TEST @@ -58,12 +69,13 @@ SRC += zbox.c SRC += scanf.c SRC += sbox.c SRC += clipboard.c +SRC += split.c #ifneq ($(findstring Win, $(TEC_SYSNAME)), ) # LIBS += iupimglib #else -# SLIB += $(IUP)/lib/$(TEC_UNAME)/libiupimglib.a +# SLIB += $(IUPLIB)/libiupimglib.a #endif USE_CD = Yes @@ -96,8 +108,8 @@ ifneq ($(findstring Win, $(TEC_SYSNAME)), ) # LIBS += cdpdflib # LDIR += $(IUP)/lib/$(TEC_UNAME) else - SLIB += $(IUP)/lib/$(TEC_UNAME)/libiup_pplot.a -# SLIB += $(CD)/lib/$(TEC_UNAME)/libcdpdflib.a + SLIB += $(IUPLIB)/libiup_pplot.a +# SLIB += $(CDLIB)/libcdpdflib.a endif ifneq ($(findstring Win, $(TEC_SYSNAME)), ) diff --git a/iup/test/dialog.c b/iup/test/dialog.c index f8097c9..334b1cc 100755 --- a/iup/test/dialog.c +++ b/iup/test/dialog.c @@ -338,7 +338,7 @@ static void new_dialog(int test, char* tip) // Windows and GTK Only IupSetCallback(dlg, "DROPFILES_CB", (Icallback)dropfiles_cb); - + if (test == 0 || test == 1) IupShow(dlg); else if (test == 3) diff --git a/iup/test/frame.c b/iup/test/frame.c index 2bcd128..5262c3f 100755 --- a/iup/test/frame.c +++ b/iup/test/frame.c @@ -29,11 +29,10 @@ void FrameTest(void) ); IupSetAttribute(frame1, "TITLE", "Title Text"); + IupSetAttribute(frame1, "MARGIN", "0x0"); // IupSetAttribute(frame1, "FGCOLOR", "255 0 0"); -// IupSetAttribute(frame1, "BGCOLOR", "0 128 0"); - IupSetAttribute(frame2, "SUNKEN", "YES"); +// IupSetAttribute(frame2, "SUNKEN", "YES"); - IupSetAttribute(frame1, "MARGIN", "0x0"); IupSetAttribute(frame2, "MARGIN", "0x0"); // IupSetAttribute(frame2, "BGCOLOR", "0 128 0"); dlg = IupDialog(IupHbox(frame1, frame2, NULL)); @@ -43,7 +42,7 @@ void FrameTest(void) IupSetAttribute(dlg, "GAP", "5"); IupSetAttribute(dlg, "FONTSIZE", "14"); // IupSetAttribute(dlg, "RASTERSIZE", "300x200"); -// IupSetAttribute(dlg, "BGCOLOR", "0 128 0"); +// IupSetAttribute(dlg, "BGCOLOR", "128 0 0"); IupShow(dlg); printf("RASTERSIZE(%s)\n", IupGetAttribute(frame1, "RASTERSIZE")); diff --git a/iup/test/getparam.c b/iup/test/getparam.c index fbda6bb..33937da 100755 --- a/iup/test/getparam.c +++ b/iup/test/getparam.c @@ -20,6 +20,9 @@ static int param_action(Ihandle* dialog, int param_index, void* user_data) case -3: printf("IupGetParam - Cancel\n"); break; + case -4: + printf("IupGetParam - Help\n"); + break; // case 1: // return 0; default: @@ -50,6 +53,7 @@ void GetParamTest(void) char file_name[500] = "test.jpg"; if (!IupGetParam("Title", param_action, 0, + "Bt %u[, MyCancel, Help!]\n" "Boolean: %b[No,Yes]\n" "Integer: %i\n" "Real 1: %r\n" diff --git a/iup/test/glcanvas_cube.c b/iup/test/glcanvas_cube.c index 3bd5ec5..da1244d 100755 --- a/iup/test/glcanvas_cube.c +++ b/iup/test/glcanvas_cube.c @@ -203,7 +203,7 @@ void GLCanvasCubeTest(void) dlg = IupDialog(IupSetAttributes(IupFrame(box), "TITLE=Teste")); IupSetAttribute(dlg, "TITLE", "IupGLCanvas Test"); - IupSetAttribute(dlg, "COMPOSITED", "NO"); +// IupSetAttribute(dlg, "COMPOSITED", "YES"); IupMap(dlg); diff --git a/iup/test/list.c b/iup/test/list.c index 5db582b..9555771 100755 --- a/iup/test/list.c +++ b/iup/test/list.c @@ -134,6 +134,14 @@ static int insertitem_cb(Ihandle *ih) return IUP_DEFAULT; } +static int setitem_cb(Ihandle *ih) +{ + Ihandle *list = (Ihandle*)IupGetAttribute(IupGetDialog(ih), "_ACTIVE_LIST"); + Ihandle *text = IupGetDialogChild(ih, "text"); + IupSetAttribute(list, "3", IupGetAttribute(text, "VALUE")); + return IUP_DEFAULT; +} + static int appenditem_cb(Ihandle *ih) { Ihandle *list = (Ihandle*)IupGetAttribute(IupGetDialog(ih), "_ACTIVE_LIST"); @@ -257,13 +265,13 @@ void ListTest(void) IupSetAttributes(list1, "1=\"US$ 1000\", 2=\"US$ 2000\", 3=\"US$ 300.000.000\", 4=\"US$ 4000\"," "EDITBOX=YES, DROPDOWN=YES, TIP=Edit+Drop, VALUE=\"Edit Here\", NAME=list1"); IupSetAttributes(list2, "1=\"Banana\", 2=\"Apple\", 3=\"Orange\", 4=\"Strawberry\", 5=\"Grape\"," - "DROPDOWN=YES, NAME=list2, TIP=Drop, VALUE=2, SORT=YES"); + "DROPDOWN=YES, NAME=list2, TIP=Drop, VALUE=2, XXX_SORT=YES"); IupSetAttributes(list3, "1=\"Char A\", 2=\"Char B\", 3=\"Char CCCCC\", 4=\"Char D\", 5=\"Char E\", 6=\"Char F\"," - "EDITBOX=YES, NAME=list3, TIP=Edit+List, VALUE=\"Edit Here\""); + "XXX_EDITBOX=YES, NAME=list3, TIP=Edit+List, VALUE=\"Edit Here\""); // IupSetAttributes(list4, "1=\"Number 1\", 2=\"Number 2\", 3=\"Number 3\", 4=\"Number 4\", 5=\"Number 5\", 6=\"Number 6\", 7=\"Number 7\"," // "MULTIPLE=YES, NAME=list4, TIP=List, VALUE=+--++--"); IupSetAttributes(list4, "1=\"Number 3\", 2=\"Number 4\", 3=\"Number 2\", 4=\"Number 1\", 5=\"Number 6\", 6=\"Number 5\", 7=\"Number 7\"," - "MULTIPLE=YES, NAME=list4, TIP=List, SORT=YES, VALUE=+--++--"); + "MULTIPLE=YES, NAME=list4, TIP=List, XXX_SORT=YES, VALUE=+--++--"); set_callbacks(list1); set_callbacks(list2); @@ -312,6 +320,7 @@ void ListTest(void) IupSetCallbacks(IupButton("Get(COUNT)", NULL), "ACTION", getcount_cb, NULL), NULL); buttons2 = IupHbox( + IupSetCallbacks(IupButton("3", NULL), "ACTION", setitem_cb, NULL), IupSetCallbacks(IupButton("INSERTITEM3", NULL), "ACTION", insertitem_cb, NULL), IupSetCallbacks(IupButton("APPENDITEM", NULL), "ACTION", appenditem_cb, NULL), IupSetCallbacks(IupButton("REMOVEITEM", NULL), "ACTION", removeitem_cb, NULL), diff --git a/iup/test/make_uname b/iup/test/make_uname index ae0ab49..1df8629 100755 --- a/iup/test/make_uname +++ b/iup/test/make_uname @@ -1,4 +1,5 @@ #This builds all the libraries of the folder for 1 uname tecmake relink $1 $2 $3 $4 $5 $6 $7 -tecmake USE_GTK=Yes relink $1 $2 $3 $4 $5 $6 $7 +#tecmake USE_GTK=Yes USE_GDK=Yes relink $1 $2 $3 $4 $5 $6 $7 +tecmake USE_MOTIF=Yes relink $1 $2 $3 $4 $5 $6 $7 diff --git a/iup/test/matrix.c b/iup/test/matrix.c index 280ffdb..48aa474 100755 --- a/iup/test/matrix.c +++ b/iup/test/matrix.c @@ -6,6 +6,13 @@ #undef __IUPDEF_H #include "iup.h" #include "iupcontrols.h" +#include "iupcbs.h" + +static int mousemove_cb(Ihandle *ih, int lin, int col) +{ + printf("mousemove_cb(%d, %d)\n", lin, col); + return IUP_DEFAULT; +} static int dropcheck_cb(Ihandle *self, int lin, int col) { @@ -18,8 +25,9 @@ static Ihandle* create_matrix(void) { Ihandle* mat = IupMatrix(NULL); - IupSetAttribute(mat, "NUMCOL", "15"); +// IupSetAttribute(mat, "NUMCOL", "15"); IupSetAttribute(mat, "NUMLIN", "20"); + IupSetAttribute(mat, "NUMCOL", "8"); // IupSetAttribute(mat, "NUMCOL", "2"); // IupSetAttribute(mat, "NUMLIN", "3"); @@ -31,18 +39,19 @@ static Ihandle* create_matrix(void) IupSetAttribute(mat, "0:2", "February 2000"); IupSetAttribute(mat, "1:1", "5.6\n3.33"); IupSetAttribute(mat, "2:1", "2.2"); - IupSetAttribute(mat, "3:1", "7.2"); + IupSetAttribute(mat, "3:2", "Very Very Very Very Very Large Text"); IupSetAttribute(mat, "1:2", "4.5"); IupSetAttribute(mat, "2:2", "8.1"); - IupSetAttribute(mat, "3:2", "3.4"); + IupSetAttribute(mat, "3:1", "3.4"); IupSetAttribute(mat, "3:3", "Font Test"); - IupSetAttribute(mat, "WIDTH2", "90"); - IupSetAttribute(mat, "HEIGHT2", "30"); +// IupSetAttribute(mat, "WIDTH2", "90"); +// IupSetAttribute(mat, "HEIGHT2", "30"); IupSetAttribute(mat,"SORTSIGN2","DOWN"); // IupSetAttribute(mat, "WIDTHDEF", "34"); - IupSetAttribute(mat,"MULTILINE", "YES"); +// IupSetAttribute(mat,"MULTILINE", "YES"); IupSetAttribute(mat,"RESIZEMATRIX", "YES"); - IupSetAttribute(mat,"USETITLESIZE", "YES"); + IupSetAttribute(mat,"HIDDENTEXTMARKS", "YES"); +// IupSetAttribute(mat,"USETITLESIZE", "YES"); //IupSetAttribute(mat,"SCROLLBAR", "NO"); //IupSetAttribute(mat, "BGCOLOR1:2", "255 92 255"); //IupSetAttribute(mat, "BGCOLOR2:*", "92 92 255"); @@ -55,6 +64,8 @@ static Ihandle* create_matrix(void) //IupSetAttribute(mat, "FONT*:3", "Times, Bold 14"); //IupSetAttribute(mat, "ALIGNMENT2", "ARIGHT"); // IupSetAttribute(mat, "ACTIVE", "NO"); +// IupSetAttribute(mat, "EXPAND", "NO"); +// IupSetAttribute(mat, "ALIGNMENT", "ALEFT"); IupSetAttribute(mat,"MARKMODE","CELL"); // IupSetAttribute(mat,"MARKMODE","LIN"); @@ -65,23 +76,27 @@ static Ihandle* create_matrix(void) IupSetAttribute(mat,"MARK2:3","YES"); IupSetAttribute(mat,"MARK3:3","YES"); + IupSetAttribute(mat,"FRAMEVERTCOLOR1:2","BGCOLOR"); + IupSetAttribute(mat,"FRAMEHORIZCOLOR1:2","0 0 255"); + IupSetAttribute(mat,"FRAMEHORIZCOLOR1:3","0 255 0"); + IupSetAttribute(mat,"FRAMEVERTCOLOR2:2","255 255 0"); // IupSetAttribute(mat,"MARKMODE","LINCOL"); //IupSetAttribute(mat, "NUMCOL_VISIBLE_LAST", "YES"); //IupSetAttribute(mat, "NUMLIN_VISIBLE_LAST", "YES"); - IupSetAttribute(mat, "WIDTHDEF", "15"); - IupSetAttribute(mat, "20:15", "The End"); +// IupSetAttribute(mat, "WIDTHDEF", "15"); + IupSetAttribute(mat, "20:8", "The End"); IupSetAttribute(mat, "10:0", "Middle Line"); IupSetAttribute(mat, "15:0", "Middle Line"); - IupSetAttribute(mat, "0:7", "Middle Column"); - IupSetAttribute(mat, "0:11", "Middle Column"); + IupSetAttribute(mat, "0:4", "Middle Column"); IupSetAttribute(mat, "20:0", "Line Title Test"); - IupSetAttribute(mat, "0:15", "Column Title Test"); - IupSetAttribute(mat, "NUMCOL_VISIBLE", "6"); + IupSetAttribute(mat, "0:8", "Column Title Test"); + IupSetAttribute(mat, "NUMCOL_VISIBLE", "3"); IupSetAttribute(mat, "NUMLIN_VISIBLE", "8"); IupSetCallback(mat, "DROPCHECK_CB", (Icallback)dropcheck_cb); +// IupSetCallback(mat, "MOUSEMOVE_CB", (Icallback)mousemove_cb); return mat; } diff --git a/iup/test/matrix_cbmode.c b/iup/test/matrix_cbmode.c index 0d0e17c..99ac21f 100755 --- a/iup/test/matrix_cbmode.c +++ b/iup/test/matrix_cbmode.c @@ -5,33 +5,60 @@ #include "iup.h" #include "iupcontrols.h" -static char data[3][3][50] = +//static char data[3][3][50] = +//{ +// {"1:1", "1:2", "1:3"}, +// {"2:1", "2:2", "2:3"}, +// {"3:1", "3:2", "3:3"}, +//}; + + +static int dropcheck_cb(Ihandle *self, int lin, int col) { - {"1:1", "1:2", "1:3"}, - {"2:1", "2:2", "2:3"}, - {"3:1", "3:2", "3:3"}, -}; + if (lin == 3 && col == 1) + return IUP_DEFAULT; + return IUP_IGNORE; +} +static int drop(Ihandle *self, Ihandle *drop, int lin, int col) +{ + printf("drop_cb(%d, %d)\n", lin, col); + if(lin == 3 && col == 1) + { + IupSetAttribute(drop, "1", "A - Test of Very Big String for Dropdown!"); + IupSetAttribute(drop, "2", "B"); + IupSetAttribute(drop, "3", "C"); + IupSetAttribute(drop, "4", "XXX"); + IupSetAttribute(drop, "5", "5"); + IupSetAttribute(drop, "6", "6"); + IupSetAttribute(drop, "7", "7"); + IupSetAttribute(drop, "8", NULL); + return IUP_DEFAULT; + } + return IUP_IGNORE; +} static char* value_cb(Ihandle *self, int lin, int col) { if (lin == 0 || col == 0) return "Title"; - return data[lin-1][col-1]; + return "cell"; +// return data[lin-1][col-1]; } static int value_edit_cb(Ihandle *self, int lin, int col, char* newvalue) { - strcpy(data[lin-1][col-1], newvalue); +// strcpy(data[lin-1][col-1], newvalue); return IUP_DEFAULT; } static Ihandle* create_matrix(void) { Ihandle* mat = IupMatrix(NULL); + int lin, col; - IupSetAttribute(mat, "NUMCOL", "3"); - IupSetAttribute(mat, "NUMLIN", "3"); + IupSetAttribute(mat, "NUMCOL", "20"); + IupSetAttribute(mat, "NUMLIN", "5000"); IupSetAttribute(mat, "NUMCOL_VISIBLE", "3"); IupSetAttribute(mat, "NUMLIN_VISIBLE", "3"); @@ -40,19 +67,36 @@ static Ihandle* create_matrix(void) // IupSetAttribute(mat, "HEIGHT2", "30"); // IupSetAttribute(mat, "WIDTHDEF", "34"); // IupSetAttribute(mat,"RESIZEMATRIX", "YES"); - IupSetAttribute(mat,"SCROLLBAR", "NO"); + IupSetAttribute(mat,"SCROLLBAR", "YES"); IupSetCallback(mat,"VALUE_CB",(Icallback)value_cb); - IupSetCallback(mat,"VALUE_EDIT_CB",(Icallback)value_edit_cb); +// IupSetCallback(mat,"VALUE_EDIT_CB",(Icallback)value_edit_cb); +// IupSetCallback(mat, "DROPCHECK_CB", (Icallback)dropcheck_cb); +// IupSetCallback(mat,"DROP_CB",(Icallback)drop); // IupSetAttribute(mat, "HEIGHT0", "10"); // IupSetAttribute(mat, "WIDTH0", "90"); // IupSetAttribute(mat,"MARKMODE","LIN"); // IupSetAttribute(mat,"MARKMULTIPLE","NO"); + IupSetAttribute(mat,"MARKMODE","CELL"); + IupSetAttribute(mat,"MARKMULTIPLE","YES"); + IupSetAttribute(mat,"USETITLESIZE","YES"); //IupSetAttribute(mat, "NUMCOL_VISIBLE_LAST", "YES"); //IupSetAttribute(mat, "NUMLIN_VISIBLE_LAST", "YES"); // IupSetAttribute(mat, "WIDTHDEF", "15"); +// IupSetAttribute(mat,"FRAMEVERTCOLOR1:2","BGCOLOR"); +// IupSetAttribute(mat,"FRAMEHORIZCOLOR2:1","BGCOLOR"); + + for (lin = 0; lin < 3000; lin++) + { + for (col = 0; col < 20; col++) + { + IupMatSetAttribute(mat,"BGCOLOR", lin, col, "192 192 192"); + IupMatSetAttribute(mat,"FGCOLOR", lin, col, "1 1 1"); + } + } + return mat; } diff --git a/iup/test/matrix_cbs.c b/iup/test/matrix_cbs.c index 1b7afb9..31d2207 100755 --- a/iup/test/matrix_cbs.c +++ b/iup/test/matrix_cbs.c @@ -305,7 +305,7 @@ void MatrixCbsTest(void) // IupZbox( IupTabs( IupSetAttributes( - IupVbox((create_mat()), bt, IupText(""), IupLabel("Label Text"), IupVal("HORIZONTAL"), + IupVbox((create_mat()), bt, IupText(""), IupLabel("Label Text"), IupFrame(IupVal("HORIZONTAL")), NULL), "MARGIN=10x10, GAP=10, TABTITLE=Test1"), IupSetAttributes( IupVbox(IupFrame(create_mat()), IupText(""), IupLabel("Label Text"), IupVal("HORIZONTAL"), diff --git a/iup/test/pplot.c b/iup/test/pplot.c index 639aa34..1283179 100755 --- a/iup/test/pplot.c +++ b/iup/test/pplot.c @@ -199,6 +199,7 @@ static void InitPlots(void) } IupPPlotEnd(plot[2]); IupSetAttribute(plot[2], "DS_COLOR", "100 100 200"); + IupSetAttribute(plot[2], "DS_LINESTYLE", "DOTTED"); /* PLOT 3 - MakeExamplePlot5 */ IupSetAttribute(plot[3], "TITLE", "Bar Mode"); @@ -579,8 +580,8 @@ void PPlotTest(void) boxinfo = IupVbox(lbl1, IupFill(), lbl2, NULL); boxdial1 = IupHbox(boxinfo, dial1, NULL); - IupSetAttribute(boxdial1, "ALIGN", "ACENTER"); - IupSetAttribute(boxinfo, "ALIGN", "ACENTER"); + IupSetAttribute(boxdial1, "ALIGNMENT", "ACENTER"); + IupSetAttribute(boxinfo, "ALIGNMENT", "ACENTER"); IupSetAttribute(boxinfo, "SIZE", "20x52"); IupSetAttribute(boxinfo, "GAP", "2"); IupSetAttribute(boxinfo, "MARGIN", "4"); @@ -608,8 +609,8 @@ void PPlotTest(void) boxinfo = IupHbox(lbl1, IupFill(), lbl2, NULL); boxdial2 = IupVbox(dial2, boxinfo, NULL); - IupSetAttribute(boxdial2, "ALIGN", "ACENTER"); - IupSetAttribute(boxinfo, "ALIGN", "ACENTER"); + IupSetAttribute(boxdial2, "ALIGNMENT", "ACENTER"); + IupSetAttribute(boxinfo, "ALIGNMENT", "ACENTER"); IupSetAttribute(boxinfo, "SIZE", "64x16"); IupSetAttribute(boxinfo, "GAP", "2"); IupSetAttribute(boxinfo, "MARGIN", "4"); diff --git a/iup/test/predialogs.c b/iup/test/predialogs.c index e7b36ea..570dffd 100755 --- a/iup/test/predialogs.c +++ b/iup/test/predialogs.c @@ -6,7 +6,25 @@ #include "iupkey.h" #include "iupcontrols.h" +//#define USE_GDK +#ifdef USE_GDK +#include <gtk/gtk.h> +static void drawTest(Ihandle *ih) +{ + GtkWidget* widget = (GtkWidget*)IupGetAttribute(ih, "WID"); + GdkGC* gc = widget->style->fg_gc[GTK_WIDGET_STATE(widget)]; + int w = IupGetInt(ih, "PREVIEWWIDTH"); + int h = IupGetInt(ih, "PREVIEWHEIGHT"); + GdkColor color; + + color.red = 65535; color.green = 0; color.blue = 0; + gdk_gc_set_rgb_fg_color(gc, &color); + + gdk_draw_line(widget->window, gc, 0, 0, w-1, h-1); + gdk_draw_line(widget->window, gc, 0, h-1, w-1, 0); +} +#else #ifdef WIN32 #undef _WIN32_WINNT #define _WIN32_WINNT 0x0500 @@ -62,8 +80,12 @@ static void drawTest(Ihandle* ih) XDrawLine(dpy, wnd, gc, 0, h-1, w-1, 0); } #endif +#endif #ifdef USE_OPENGL +#ifdef WIN32 +#include <windows.h> +#endif #include <GL/gl.h> #include "iupgl.h" @@ -223,12 +245,12 @@ static void new_file(char* dialogtype, int preview) // IupSetAttributes(dlg, "FILE = \"test.bmp\", DIRECTORY = \"/tecgraf/iup\""); // OK // IupSetAttributes(dlg, "FILE = \"test.bmp\", DIRECTORY = \"\\tecgraf\\iup\""); // OK // IupSetAttribute(dlg, "NOCHANGEDIR", "NO"); -// IupSetAttribute(dlg, "MULTIPLEFILES", "YES"); + IupSetAttribute(dlg, "MULTIPLEFILES", "YES"); + IupSetCallback(dlg, "FILE_CB", (Icallback)file_cb); if (preview) { IupSetAttribute(dlg, "SHOWPREVIEW", "YES"); - IupSetCallback(dlg, "FILE_CB", (Icallback)file_cb); #ifdef USE_OPENGL if (preview==2) diff --git a/iup/test/sample.c b/iup/test/sample.c index e99617d..038cffd 100755 --- a/iup/test/sample.c +++ b/iup/test/sample.c @@ -185,6 +185,24 @@ static int help_cb(Ihandle* ih) return IUP_DEFAULT; } +static int action1_cb(Ihandle* ih) +{ + IupSetAttribute(IupGetDialog(ih), "BACKGROUND", "255 128 128"); + return IUP_DEFAULT; +} + +static int action2_cb(Ihandle* ih) +{ + IupSetAttribute(IupGetDialog(ih), "BGCOLOR", "0 128 0"); + return IUP_DEFAULT; +} + +static int action3_cb(Ihandle* ih) +{ + IupSetAttribute(IupGetChild(IupGetDialog(ih), 0), "BGCOLOR", "128 0 0"); + return IUP_DEFAULT; +} + static Ihandle* set_callbacks(Ihandle* ih) { IupSetCallback(ih, "VALUECHANGED_CB", (Icallback)valuechanged_cb); @@ -237,9 +255,9 @@ void SampleTest(void) _frm_1 = IupFrame( IupVbox( set_callbacks(IupSetAttributes(IupButton("Button Text", NULL), "PADDING=5x5")), - set_callbacks(IupSetAttributes(IupButton("Text", NULL), "IMAGE=img1, PADDING=5x5")), - set_callbacks(IupSetAttributes(IupButton(NULL, NULL), "IMAGE=img1")), - set_callbacks(IupSetAttributes(IupButton("", NULL), "IMAGE=img1,IMPRESS=img2")), + IupSetCallbacks(set_callbacks(IupSetAttributes(IupButton("Text", NULL), "IMAGE=img1, PADDING=5x5")),"ACTION", action1_cb, NULL), + IupSetCallbacks(set_callbacks(IupSetAttributes(IupButton(NULL, NULL), "IMAGE=img1")),"ACTION", action2_cb, NULL), + IupSetCallbacks(set_callbacks(IupSetAttributes(IupButton("", NULL), "IMAGE=img1,IMPRESS=img2")),"ACTION", action3_cb, NULL), NULL)); IupSetAttribute(_frm_1,"TITLE","IupButton"); diff --git a/iup/test/split.c b/iup/test/split.c new file mode 100644 index 0000000..7b3208a --- /dev/null +++ b/iup/test/split.c @@ -0,0 +1,47 @@ +#include <stdio.h> +#include "iup.h" + +void SplitTest(void) +{ + Ihandle *dlg, *bt, *split, *ml, *vbox; + + bt = IupButton("Button", NULL); + IupSetAttribute(bt, "EXPAND", "YES"); + + ml = IupMultiLine(NULL); + IupSetAttribute(ml, "EXPAND", "YES"); + IupSetAttribute(ml, "VISIBLELINES", "5"); + IupSetAttribute(ml, "VISIBLECOLUMNS", "10"); + + split = IupSplit(bt, ml); +// IupSetAttribute(split, "DIRECTION", "VERTICAL"); +// IupSetAttribute(split, "DIRECTION", "HORIZONTAL"); +// IupSetAttribute(split, "COLOR", "127 127 255"); +// IupSetAttribute(split, "LAYOUTDRAG", "NO"); +// IupSetAttribute(split, "AUTOHIDE", "YES"); +// IupSetAttribute(split, "SHOWGRIP", "NO"); + + vbox = IupVbox(split, NULL); + IupSetAttribute(vbox, "MARGIN", "10x10"); + IupSetAttribute(vbox, "GAP", "10"); + + dlg = IupDialog(vbox); + IupSetAttribute(dlg, "TITLE", "IupSplit Example"); + + IupShow(dlg); +} + +#ifndef BIG_TEST +int main(int argc, char* argv[]) +{ + IupOpen(&argc, &argv); + + SplitTest(); + + IupMainLoop(); + + IupClose(); + + return EXIT_SUCCESS; +} +#endif diff --git a/iup/test/tabs.c b/iup/test/tabs.c index a069f01..1efc1a9 100755 --- a/iup/test/tabs.c +++ b/iup/test/tabs.c @@ -73,6 +73,7 @@ static int cbValuePos(Ihandle* ih) { Ihandle* tabs = (Ihandle*)IupGetAttribute(ih, "APP_TABS"); IupSetAttribute(tabs, "VALUEPOS", "0"); +// IupSetAttribute(tabs, "TABTITLE0", "1asdasd"); // printf("VALUE=%s\n", IupGetAttribute(tabs, "VALUE")); return IUP_DEFAULT; } diff --git a/iup/test/tree.c b/iup/test/tree.c index 009c97f..ed1f6aa 100755 --- a/iup/test/tree.c +++ b/iup/test/tree.c @@ -72,41 +72,49 @@ static Ihandle* load_image_TestImage(void) static int addleaf(void) { - char attr[50]; Ihandle* tree = IupGetHandle("tree"); int id = IupGetInt(tree, "VALUE"); - sprintf(attr, "ADDLEAF%d", id); - IupSetAttribute(tree, attr, ""); + IupTreeSetAttribute(tree, "ADDLEAF", id, ""); return IUP_DEFAULT; } static int insertleaf(void) { - char attr[50]; Ihandle* tree = IupGetHandle("tree"); int id = IupGetInt(tree, "VALUE"); - sprintf(attr, "INSERTLEAF%d", id); - IupSetAttribute(tree, attr, ""); + IupTreeSetAttribute(tree, "INSERTLEAF", id, ""); return IUP_DEFAULT; } static int addbranch(void) { - char attr[50]; Ihandle* tree = IupGetHandle("tree"); int id = IupGetInt(tree, "VALUE"); - sprintf(attr, "ADDBRANCH%d", id); - IupSetAttribute(tree, attr, ""); + IupTreeSetAttribute(tree, "ADDBRANCH", id, ""); return IUP_DEFAULT; } static int insertbranch(void) { - char attr[50]; Ihandle* tree = IupGetHandle("tree"); int id = IupGetInt(tree, "VALUE"); - sprintf(attr, "INSERTBRANCH%d", id); - IupSetAttribute(tree, attr, ""); + IupTreeSetAttribute(tree, "INSERTBRANCH", id, ""); + return IUP_DEFAULT; +} + +static int togglestate(void) +{ + char *value; + Ihandle* tree = IupGetHandle("tree"); + int id = IupGetInt(tree, "VALUE"); + value = IupTreeGetAttribute(tree, "STATE", id); + if (value) + { + if (strcmp(value, "EXPANDED")==0) + IupTreeSetAttribute(tree, "STATE", id, "COLLAPSED"); + else + IupTreeSetAttribute(tree, "STATE", id, "EXPANDED"); + } return IUP_DEFAULT; } @@ -139,6 +147,34 @@ static int removechild(void) return IUP_DEFAULT; } +static int removemarked(void) +{ + Ihandle* tree = IupGetHandle("tree"); + IupSetAttribute(tree, "DELNODE", "MARKED"); + return IUP_DEFAULT; +} + +static int removeall(void) +{ + Ihandle* tree = IupGetHandle("tree"); + IupSetAttribute(tree, "DELNODE", "ALL"); + return IUP_DEFAULT; +} + +static int expandall(void) +{ + Ihandle* tree = IupGetHandle("tree"); + IupSetAttribute(tree, "EXPANDALL", "YES"); + return IUP_DEFAULT; +} + +static int contractall(void) +{ + Ihandle* tree = IupGetHandle("tree"); + IupSetAttribute(tree, "EXPANDALL", "NO"); + return IUP_DEFAULT; +} + int renamenode(void) { Ihandle* tree = IupGetHandle("tree"); @@ -162,6 +198,8 @@ static int showrename_cb(Ihandle* ih, int id) { (void)ih; printf("SHOWRENAME_CB(%d)\n", id); + if (id == 6) + return IUP_IGNORE; return IUP_DEFAULT; } @@ -183,15 +221,20 @@ static int multiselection_cb(Ihandle *ih, int* ids, int n) return IUP_DEFAULT; } -static int executeleaf_cb(Ihandle* ih, int id) +static int multiunselection_cb(Ihandle *ih, int* ids, int n) { - printf("EXECUTELEAF_CB (%d)\n", id); + int i; + (void)ih; + printf("MULTIUNSELECTION_CB("); + for (i = 0; i < n; i++) + printf("%d, ", ids[i]); + printf("n=%d)\n", n); return IUP_DEFAULT; } -static int renamenode_cb(Ihandle* ih, int id, char* title) +static int executeleaf_cb(Ihandle* ih, int id) { - printf("RENAMENODE_CB (%d=%s)\n", id, title); + printf("EXECUTELEAF_CB (%d)\n", id); return IUP_DEFAULT; } @@ -219,6 +262,12 @@ static int branchclose_cb(Ihandle* ih, int id) return IUP_DEFAULT; } +static int noderemoved_cb(Ihandle* ih, void* data) +{ + printf("NODEREMOVED_CB(%p)\n", data); + return IUP_DEFAULT; +} + static int dragdrop_cb(Ihandle* ih, int drag_id, int drop_id, int shift, int control) { printf("DRAGDROP_CB (%d)->(%d)\n", drag_id, drop_id); @@ -317,6 +366,11 @@ static int rightclick_cb(Ihandle* ih, int id) IupItem ("Insert Branch","insertbranch"), IupItem ("Remove Node","removenode"), IupItem ("Remove Children","removechild"), + IupItem ("Remove Marked","removemarked"), + IupItem ("Remove All","removeall"), + IupItem ("Toggle State","togglestate"), + IupItem ("Expand All","expandall"), + IupItem ("Contract All","contractall"), IupSubmenu("Focus", IupMenu( IupItem ("ROOT", "selectnode"), IupItem ("LAST", "selectnode"), @@ -342,7 +396,12 @@ static int rightclick_cb(Ihandle* ih, int id) IupSetFunction("insertbranch", (Icallback) insertbranch); IupSetFunction("removenode", (Icallback) removenode); IupSetFunction("removechild", (Icallback) removechild); + IupSetFunction("removemarked", (Icallback) removemarked); IupSetFunction("renamenode", (Icallback) renamenode); + IupSetFunction("togglestate", (Icallback) togglestate); + IupSetFunction("removeall", (Icallback) removeall); + IupSetFunction("expandall", (Icallback) expandall); + IupSetFunction("contractall", (Icallback) contractall); // sprintf(attr, "%d", id); // IupSetAttribute(ih, "VALUE", attr); @@ -374,7 +433,8 @@ static int next(Ihandle *ih) static int prev(Ihandle *ih) { Ihandle* tree = IupGetHandle("tree"); - IupSetAttribute(tree, "VALUE", "PREVIOUS"); +// IupSetAttribute(tree, "VALUE", "PREVIOUS"); + IupSetAttribute(tree, "STATE2", "COLLAPSED"); return IUP_DEFAULT; } @@ -384,7 +444,6 @@ static void init_tree(void) Ihandle* tree = IupTree(); IupSetCallback(tree, "EXECUTELEAF_CB", (Icallback) executeleaf_cb); - IupSetCallback(tree, "RENAMENODE_CB", (Icallback) renamenode_cb); IupSetCallback(tree, "RENAME_CB", (Icallback) rename_cb); IupSetCallback(tree, "BRANCHCLOSE_CB", (Icallback) branchclose_cb); IupSetCallback(tree, "BRANCHOPEN_CB", (Icallback) branchopen_cb); @@ -394,12 +453,14 @@ static void init_tree(void) IupSetCallback(tree, "SHOWRENAME_CB", (Icallback) showrename_cb); IupSetCallback(tree, "SELECTION_CB", (Icallback) selection_cb); IupSetCallback(tree, "MULTISELECTION_CB", (Icallback) multiselection_cb); + IupSetCallback(tree, "MULTIUNSELECTION_CB", (Icallback) multiunselection_cb); IupSetCallback(tree, "GETFOCUS_CB", (Icallback) getfocus_cb); IupSetCallback(tree, "KILLFOCUS_CB", (Icallback) killfocus_cb); //IupSetCallback(tree, "ENTERWINDOW_CB", (Icallback) enterwindow_cb); //IupSetCallback(tree, "LEAVEWINDOW_CB", (Icallback)leavewindow_cb); //IupSetCallback(tree, "BUTTON_CB", (Icallback)button_cb); //IupSetCallback(tree, "MOTION_CB", (Icallback)motion_cb); + IupSetCallback(tree, "NODEREMOVED_CB", (Icallback)noderemoved_cb); IupSetCallback(tree, "HELP_CB", (Icallback)help_cb); @@ -409,11 +470,10 @@ static void init_tree(void) // IupSetAttribute(tree, "BGCOLOR", "255 255 255"); IupSetAttribute(tree, "MARKMODE", "MULTIPLE"); - //IupSetAttribute(tree, "SHOWDRAGDROP", "YES"); IupSetAttribute(tree, "SHOWRENAME", "YES"); - //IupSetAttribute(tree, "AUTODRAGDROP", "YES"); /* Gtk Only */ +// IupSetAttribute(tree, "SHOWDRAGDROP", "YES"); - //IupSetAttribute(tree, "ADDEXPANDED", "NO"); + IupSetAttribute(tree, "ADDEXPANDED", "YES"); // IupSetAttribute(tree, "HIDELINES", "YES"); // IupSetAttribute(tree, "HIDEBUTTONS", "YES"); // IupSetAttribute(tree, "INDENTATION", "40"); @@ -457,7 +517,7 @@ static void init_tree_nodes(void) //IupSetAttribute(tree, "VALUE", "0"); IupSetAttribute(tree, "TITLE", "Figures"); /* title of the root, id=0 */ IupSetAttribute(tree, "ADDBRANCH", "3D"); /* 3D=1 */ - IupSetAttribute(tree, "ADDBRANCH", "2D"); /* add to the root, so it will be before "3D", now 2D=1, 3D=2 */ + IupSetAttribute(tree, "ADDLEAF", "2D"); /* add to the root, so it will be before "3D", now 2D=1, 3D=2 */ IupSetAttribute(tree, "ADDBRANCH", "parallelogram"); /* id=1 */ IupSetAttribute(tree, "ADDLEAF1", "diamond"); IupSetAttribute(tree, "ADDLEAF1", "square"); @@ -474,14 +534,15 @@ static void init_tree_nodes(void) IupSetAttribute(tree, "ADDLEAF2", "equilateral"); /* ... */ IupSetAttribute(tree, "ADDLEAF3", "isoceles"); IupSetAttribute(tree, "ADDLEAF4", "scalenus"); + IupSetAttribute(tree, "STATE2", "collapsed"); IupSetAttribute(tree, "INSERTBRANCH2","parallelogram"); /* same depth as id=2, new id=6 */ IupSetAttribute(tree, "ADDLEAF6", "square"); IupSetAttribute(tree, "ADDLEAF7", "diamond"); - IupSetAttribute(tree, "INSERTBRANCH6","2D"); /* new id=9 */ + IupSetAttribute(tree, "INSERTLEAF6","2D"); /* new id=9 */ IupSetAttribute(tree, "INSERTBRANCH9","3D"); #endif - IupSetAttribute(tree, "VALUE", "6"); + //IupSetAttribute(tree, "VALUE", "6"); IupSetAttribute(tree, "RASTERSIZE", NULL); /* remove the minimum size limitation */ IupSetAttribute(tree, "COLOR8", "92 92 255"); IupSetAttribute(tree, "TITLEFONT8", "Courier, 14"); diff --git a/iup/test/val.c b/iup/test/val.c index 2f0b500..c1b4724 100755 --- a/iup/test/val.c +++ b/iup/test/val.c @@ -118,8 +118,6 @@ void ValTest(void) { Ihandle *dlg, *val_h, *val_v; -// IupOldValOpen(); - lbl_v = IupLabel("VALUE="); IupSetAttribute(lbl_v, "SIZE", "70x"); @@ -143,8 +141,8 @@ void ValTest(void) val_h = IupVal("HORIZONTAL"); IupSetAttribute(val_h, "MAX", "100.0"); - IupSetAttribute(val_h, "SHOWTICKS", "10"); - IupSetAttribute(val_h, "TICKSPOS", "BOTH"); /* Windows Only */ +// IupSetAttribute(val_h, "SHOWTICKS", "10"); +// IupSetAttribute(val_h, "TICKSPOS", "BOTH"); /* Windows Only */ // IupSetAttribute(val_h, "INVERTED", "YES"); IupSetAttribute(val_h, "EXPAND", "HORIZONTAL"); diff --git a/iup/test/vbox.c b/iup/test/vbox.c index 3040ea6..ac53b6b 100755 --- a/iup/test/vbox.c +++ b/iup/test/vbox.c @@ -28,13 +28,17 @@ void VboxTest(void) IupSetAttribute(fr1, "TITLE", "ALIGNMENT=ALEFT"); IupSetAttribute(btn_11, "SIZE", "20x10"); - IupSetAttribute(btn_12, "SIZE", "30x20"); - IupSetAttribute(btn_13, "SIZE", "40x30"); +// IupSetAttribute(btn_12, "SIZE", "30x20"); + IupSetAttribute(btn_12, "EXPAND", "VERTICAL"); + IupSetAttribute(btn_12, "EXPANDWEIGTH", "1.3"); +// IupSetAttribute(btn_13, "SIZE", "40x30"); + IupSetAttribute(btn_13, "EXPAND", "VERTICAL"); + IupSetAttribute(btn_13, "EXPANDWEIGTH", "0.7"); IupSetAttribute(vbox_1, "ALIGNMENT", "ALEFT"); // IupSetAttribute(vbox_1, "MARGIN", "20x20"); // IupSetAttribute(vbox_1, "GAP", "10"); - IupSetAttribute(vbox_1, "HOMOGENEOUS", "YES"); - IupSetAttribute(vbox_1, "EXPANDCHILDREN", "YES"); +// IupSetAttribute(vbox_1, "HOMOGENEOUS", "YES"); +// IupSetAttribute(vbox_1, "EXPANDCHILDREN", "YES"); // IupSetAttribute(btn_12, "VISIBLE", "NO"); // IupSetAttribute(btn_12, "FLOATING", "YES"); diff --git a/iup/test/zbox.c b/iup/test/zbox.c index 0451277..1e8571e 100755 --- a/iup/test/zbox.c +++ b/iup/test/zbox.c @@ -29,7 +29,7 @@ void ZboxTest(void) text = IupText(""); - IupSetAttributes (text, "EXPAND = YES, VALUE = \"Enter your text here\""); + IupSetAttributes (text, "EXPAND=YES, VALUE=\"Enter your text here\""); /* Creates a label */ lbl = IupLabel("This element is a label"); @@ -42,9 +42,10 @@ void ZboxTest(void) IupSetHandle ("text", text); IupSetHandle ("lbl", lbl); IupSetHandle ("btn", btn); - + /* Creates zbox with four elements */ zbox = IupZbox (frame, text, lbl, btn, NULL); +// zbox = IupZbox (IupZbox(IupSetAttributes(IupCanvas(NULL), "RASTERSIZE=100x100"), NULL), NULL); /* Associates handle "zbox" with zbox */ IupSetHandle ("zbox", zbox); @@ -0,0 +1,19591 @@ +[1mdiff --git a/iup/COPYRIGHT b/iup/COPYRIGHT[m +[1mindex dd31d6c..0061f2d 100755[m +[1m--- a/iup/COPYRIGHT[m +[1m+++ b/iup/COPYRIGHT[m +[36m@@ -7,7 +7,7 @@[m [mand commercial purposes at absolutely no cost.[m + [m + ===============================================================================[m + [m +[31m-Copyright (C) 1994-2009 Tecgraf, PUC-Rio.[m +[32m+[m[32mCopyright (C) 1994-2010 Tecgraf, PUC-Rio.[m + [m + Permission is hereby granted, free of charge, to any person obtaining a copy[m + of this software and associated documentation files (the "Software"), to deal[m +[1mdiff --git a/iup/etc/iup.rc b/iup/etc/iup.rc[m +[1mindex eab8cf5..49c324d 100755[m +[1m--- a/iup/etc/iup.rc[m +[1m+++ b/iup/etc/iup.rc[m +[36m@@ -12,7 +12,7 @@[m [mBEGIN[m + VALUE "CompanyName", "Tecgraf/PUC-Rio\0"[m + VALUE "FileDescription", "IUP - Portable User Interface\0"[m + VALUE "FileVersion", "3.0.0\0"[m +[31m- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"[m +[32m+[m[32m VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"[m + VALUE "OriginalFilename", "iup.dll\0"[m + VALUE "ProductName", "IUP for Windows\0"[m + VALUE "ProductVersion", "3.0.0\0"[m +[1mdiff --git a/iup/include/iup.h b/iup/include/iup.h[m +[1mindex 9913329..2d33b98 100755[m +[1m--- a/iup/include/iup.h[m +[1m+++ b/iup/include/iup.h[m +[36m@@ -19,11 +19,11 @@[m [mextern "C" {[m + [m + [m + #define IUP_NAME "IUP - Portable User Interface"[m +[31m-#define IUP_COPYRIGHT "Copyright (C) 1994-2009 Tecgraf, PUC-Rio."[m +[32m+[m[32m#define IUP_COPYRIGHT "Copyright (C) 1994-2010 Tecgraf, PUC-Rio."[m + #define IUP_DESCRIPTION "Portable toolkit for building graphical user interfaces."[m +[31m-#define IUP_VERSION "3.0" /* bug fixes are reported only by IupVersion functions */[m +[31m-#define IUP_VERSION_NUMBER 300000[m +[31m-#define IUP_VERSION_DATE "2009/10/02"[m +[32m+[m[32m#define IUP_VERSION "3.1" /* bug fixes are reported only by IupVersion functions */[m +[32m+[m[32m#define IUP_VERSION_NUMBER 301000[m +[32m+[m[32m#define IUP_VERSION_DATE "2010/04/22"[m + [m + typedef struct Ihandle_ Ihandle;[m + typedef int (*Icallback)(Ihandle*);[m +[36m@@ -38,6 +38,7 @@[m [mvoid IupImageLibOpen (void);[m + [m + int IupMainLoop (void);[m + int IupLoopStep (void);[m +[32m+[m[32mint IupLoopStepWait (void);[m + int IupMainLoopLevel (void);[m + void IupFlush (void);[m + void IupExitLoop (void);[m +[36m@@ -148,6 +149,7 @@[m [mIhandle* IupNormalizerv(Ihandle* *ih_list);[m + Ihandle* IupCbox (Ihandle* child, ...);[m + Ihandle* IupCboxv (Ihandle* *children);[m + Ihandle* IupSbox (Ihandle *child);[m +[32m+[m[32mIhandle* IupSplit (Ihandle* child1, Ihandle* child2);[m + [m + Ihandle* IupFrame (Ihandle* child);[m + [m +[36m@@ -197,12 +199,13 @@[m [mint IupTreeSetUserId(Ihandle* ih, int id, void* userid);[m + void* IupTreeGetUserId(Ihandle* ih, int id);[m + int IupTreeGetId(Ihandle* ih, void *userid);[m + [m +[31m-void IupTreeSetAttribute (Ihandle* ih, const char* name, int id, char* value);[m +[31m-void IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, char* value);[m +[32m+[m[32mvoid IupTreeSetAttribute (Ihandle* ih, const char* name, int id, const char* value);[m +[32m+[m[32mvoid IupTreeStoreAttribute(Ihandle* ih, const char* name, int id, const char* value);[m + char* IupTreeGetAttribute (Ihandle* ih, const char* name, int id);[m + int IupTreeGetInt (Ihandle* ih, const char* name, int id);[m + float IupTreeGetFloat (Ihandle* ih, const char* name, int id);[m +[31m-void IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, char* format, ...);[m +[32m+[m[32mvoid IupTreeSetfAttribute (Ihandle* ih, const char* name, int id, const char* format, ...);[m +[32m+[m[32mvoid IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named);[m + [m + [m + /************************************************************************/[m +[36m@@ -338,7 +341,7 @@[m [mint IupMain (int argc, char** argv); /* In C++ we have to declare the prototype[m + #endif[m + [m + /******************************************************************************[m +[31m-* Copyright (C) 1994-2009 Tecgraf, PUC-Rio.[m +[32m+[m[32m* Copyright (C) 1994-2010 Tecgraf, PUC-Rio.[m + *[m + * Permission is hereby granted, free of charge, to any person obtaining[m + * a copy of this software and associated documentation files (the[m +[1mdiff --git a/iup/include/iupcbs.h b/iup/include/iupcbs.h[m +[1mindex f33166b..70d117f 100755[m +[1m--- a/iup/include/iupcbs.h[m +[1m+++ b/iup/include/iupcbs.h[m +[36m@@ -24,7 +24,7 @@[m [mtypedef int (*IFnnii)(Ihandle*, Ihandle*, int, int); /* drop_cb */[m + typedef int (*IFnnn)(Ihandle*, Ihandle*, Ihandle*); /* tabchange_cb */[m + typedef int (*IFnss)(Ihandle*, char *, char *); /* file_cb */[m + typedef int (*IFns)(Ihandle*, char *); /* multiselect_cb */[m +[31m-typedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, renamenode_cb, rename_cb */[m +[32m+[m[32mtypedef int (*IFnis)(Ihandle*, int, char *); /* text_action, multiline_action, edit_cb, rename_cb */[m + typedef int (*IFnsii)(Ihandle*, char*, int, int); /* list_action */[m + typedef int (*IFnsiii)(Ihandle*, char*, int, int, int); /* dropfiles_cb */[m + typedef int (*IFniis)(Ihandle*, int, int, char*); /* motion_cb, click_cb, value_edit_cb */[m +[1mdiff --git a/iup/include/iupcontrols.h b/iup/include/iupcontrols.h[m +[1mindex c7bc566..a30d407 100755[m +[1m--- a/iup/include/iupcontrols.h[m +[1m+++ b/iup/include/iupcontrols.h[m +[36m@@ -15,9 +15,6 @@[m [mextern "C" {[m + int IupControlsOpen(void);[m + void IupControlsClose(void); /* for backward compatibility only, does nothing since IUP 3 */[m + [m +[31m-void IupOldValOpen(void);[m +[31m-void IupOldTabsOpen(void);[m +[31m-[m + Ihandle* IupColorbar(void);[m + Ihandle* IupCells(void);[m + Ihandle *IupColorBrowser(void);[m +[1mdiff --git a/iup/include/iuplua.h b/iup/include/iuplua.h[m +[1mindex dc660b5..854a858 100755[m +[1m--- a/iup/include/iuplua.h[m +[1m+++ b/iup/include/iuplua.h[m +[36m@@ -23,7 +23,7 @@[m [mint iuplua_dofile (char *filename);[m + [m + #ifdef LUA_TNONE /* Lua 5 */[m + int iuplua_open(lua_State *L);[m +[31m-int iupkey_open(lua_State *L);[m +[32m+[m[32mint iupkey_open(lua_State *L); /* does nothing, kept for backward compatibility */[m + int iuplua_close(lua_State * L);[m + [m + /* utilities */[m +[1mdiff --git a/iup/mak.vc8/iupgtk.vcproj b/iup/mak.vc8/iupgtk.vcproj[m +[1mindex 5d0a8e2..9fccbb2 100755[m +[1m--- a/iup/mak.vc8/iupgtk.vcproj[m +[1m+++ b/iup/mak.vc8/iupgtk.vcproj[m +[36m@@ -143,6 +143,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\src\gtk\iupgtk_clipboard.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\src\gtk\iupgtk_colordlg.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc8/iuplua5.vcproj b/iup/mak.vc8/iuplua5.vcproj[m +[1mindex 0c62f76..1245e86 100755[m +[1m--- a/iup/mak.vc8/iuplua5.vcproj[m +[1m+++ b/iup/mak.vc8/iuplua5.vcproj[m +[36m@@ -123,6 +123,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\srclua5\il_clipboard.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\srclua5\il_colordlg.c"[m + >[m + </File>[m +[36m@@ -307,6 +311,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\srclua5\clipboard.lua"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\srclua5\colordlg.lua"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc8/iupmot.vcproj b/iup/mak.vc8/iupmot.vcproj[m +[1mindex aedd67e..d2d1780 100755[m +[1m--- a/iup/mak.vc8/iupmot.vcproj[m +[1m+++ b/iup/mak.vc8/iupmot.vcproj[m +[36m@@ -161,6 +161,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\src\mot\iupmot_clipboard.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\src\mot\iupmot_colordlg.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc8/iupsample.vcproj b/iup/mak.vc8/iupsample.vcproj[m +[1mindex bddc4f6..dde33fd 100755[m +[1m--- a/iup/mak.vc8/iupsample.vcproj[m +[1m+++ b/iup/mak.vc8/iupsample.vcproj[m +[36m@@ -616,6 +616,13 @@[m + <File[m + RelativePath="..\html\examples\C\sample.c"[m + >[m +[32m+[m [32m<FileConfiguration[m +[32m+[m [32mName="Debug|Win32"[m +[32m+[m [32m>[m +[32m+[m [32m<Tool[m +[32m+[m [32mName="VCCLCompilerTool"[m +[32m+[m [32m/>[m +[32m+[m [32m</FileConfiguration>[m + </File>[m + <File[m + RelativePath="..\html\examples\C\sbox1.c"[m +[1mdiff --git a/iup/mak.vc8/iupsamplegtk.vcproj b/iup/mak.vc8/iupsamplegtk.vcproj[m +[1mindex b4792dd..290a86e 100755[m +[1m--- a/iup/mak.vc8/iupsamplegtk.vcproj[m +[1m+++ b/iup/mak.vc8/iupsamplegtk.vcproj[m +[36m@@ -435,6 +435,14 @@[m + <File[m + RelativePath="..\html\examples\C\list1.c"[m + >[m +[32m+[m [32m<FileConfiguration[m +[32m+[m [32mName="Debug|Win32"[m +[32m+[m [32mExcludedFromBuild="true"[m +[32m+[m [32m>[m +[32m+[m [32m<Tool[m +[32m+[m [32mName="VCCLCompilerTool"[m +[32m+[m [32m/>[m +[32m+[m [32m</FileConfiguration>[m + </File>[m + <File[m + RelativePath="..\html\examples\C\list2.c"[m +[36m@@ -777,7 +785,6 @@[m + >[m + <FileConfiguration[m + Name="Debug|Win32"[m +[31m- ExcludedFromBuild="true"[m + >[m + <Tool[m + Name="VCCLCompilerTool"[m +[1mdiff --git a/iup/mak.vc8/iuptest.vcproj b/iup/mak.vc8/iuptest.vcproj[m +[1mindex 375d83f..b539677 100755[m +[1m--- a/iup/mak.vc8/iuptest.vcproj[m +[1m+++ b/iup/mak.vc8/iuptest.vcproj[m +[36m@@ -159,6 +159,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\test\clipboard.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\test\colorbar.c"[m + >[m + </File>[m +[36m@@ -255,6 +259,14 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\test\sbox.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m +[32m+[m [32mRelativePath="..\test\scanf.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\test\spin.c"[m + >[m + </File>[m +[36m@@ -298,6 +310,10 @@[m + RelativePath="..\test\vbox.c"[m + >[m + </File>[m +[32m+[m [32m<File[m +[32m+[m [32mRelativePath="..\test\zbox.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m + </Files>[m + <Globals>[m + </Globals>[m +[1mdiff --git a/iup/mak.vc8/iuptestgtk.vcproj b/iup/mak.vc8/iuptestgtk.vcproj[m +[1mindex 46d9e49..017bb69 100755[m +[1m--- a/iup/mak.vc8/iuptestgtk.vcproj[m +[1m+++ b/iup/mak.vc8/iuptestgtk.vcproj[m +[36m@@ -154,6 +154,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\test\clipboard.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\test\colorbar.c"[m + >[m + </File>[m +[36m@@ -246,6 +250,14 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\test\sbox.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m +[32m+[m [32mRelativePath="..\test\scanf.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\test\spin.c"[m + >[m + </File>[m +[36m@@ -289,6 +301,10 @@[m + RelativePath="..\test\vbox.c"[m + >[m + </File>[m +[32m+[m [32m<File[m +[32m+[m [32mRelativePath="..\test\zbox.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m + </Files>[m + <Globals>[m + </Globals>[m +[1mdiff --git a/iup/mak.vc8/iupwin.vcproj b/iup/mak.vc8/iupwin.vcproj[m +[1mindex c1e2434..cf53df8 100755[m +[1m--- a/iup/mak.vc8/iupwin.vcproj[m +[1m+++ b/iup/mak.vc8/iupwin.vcproj[m +[36m@@ -176,6 +176,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\src\win\iupwin_clipboard.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\src\win\iupwin_colordlg.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iup.sln b/iup/mak.vc9/iup.sln[m +[1mindex 898c75f..47e2076 100755[m +[1m--- a/iup/mak.vc9/iup.sln[m +[1m+++ b/iup/mak.vc9/iup.sln[m +[36m@@ -95,6 +95,7 @@[m [mProject("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5_exe", "iupluaexe5.v[m + {1EBC7A53-4677-AAAA-1234-49D301F17D85} = {1EBC7A53-4677-AAAA-1234-49D301F17D85}[m + {1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1EBC7A53-4677-75D7-8D4A-49D301F17D85}[m + {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1EBC7A53-4677-ADF1-8D4A-49D301F17D85}[m +[32m+[m [32m{1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1EBC7A53-4677-FFFF-1234-49D301F17D85}[m + {B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {B4823266-DF8C-4EFB-91C0-C7688C234EAC}[m + {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC}[m + {5EEFE977-C56D-462F-BDEE-12A5452EB8CC} = {5EEFE977-C56D-462F-BDEE-12A5452EB8CC}[m +[36m@@ -196,6 +197,8 @@[m [mProject("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iuplua5gtk_exe", "iupluaexe[m + {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA} = {E251B4F4-0B0A-482B-BA18-2509ADC4B6AA}[m + EndProjectSection[m + EndProject[m +[32m+[m[32mProject("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B24D8E0A-2EB5-4C49-A146-C0AABEF81788}"[m +[32m+[m[32mEndProject[m + Global[m + GlobalSection(SolutionConfigurationPlatforms) = preSolution[m + Debug|Win32 = Debug|Win32[m +[36m@@ -285,7 +288,6 @@[m [mGlobal[m + {2F92EC58-D94C-40BF-8C82-77607C72E1E3} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}[m + {9462FDEA-3E53-4250-8710-DD50AF48607C} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}[m + {C684B76D-52EC-49CE-84F2-B031509419A5} = {FC52B7B5-744E-45D6-815C-3502F9D965E7}[m +[31m- {A60D658D-766C-40DB-BAFF-59AB884D86FB} = {11041D08-354A-4300-9624-41277E67DE34}[m + {1EBC7A53-4677-4C3A-8DFF-269001F17D85} = {11041D08-354A-4300-9624-41277E67DE34}[m + {1EBC7A53-4677-4C3A-8DFF-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34}[m + {1EBC7A53-33FF-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34}[m +[36m@@ -293,7 +295,6 @@[m [mGlobal[m + {1EBC7A53-4677-1234-DDDD-49DFF4417D85} = {11041D08-354A-4300-9624-41277E67DE34}[m + {B4823266-DF8C-4EFB-91C0-C7E78C234EAC} = {11041D08-354A-4300-9624-41277E67DE34}[m + {1EBC7A53-4677-4C3A-8DFF-49D301F17D85} = {11041D08-354A-4300-9624-41277E67DE34}[m +[31m- {A60D658D-766C-40DB-BAE4-59AB884D86FB} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m + {1EBC7A53-4677-ADF1-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m + {1EBC7A53-4677-75D7-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m + {1EBC7A53-4677-4C3A-8D4A-49D301157985} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m +[36m@@ -302,7 +303,12 @@[m [mGlobal[m + {B4823266-DF8C-4EFB-91C0-C7688C234EAC} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m + {1EBC7A53-4677-4C3A-8D4A-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m + {1EBC7A53-4677-FFFF-1234-49D301F17D85} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m +[31m- {389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {1CBEAA34-BA34-497D-A775-B9AF6F905696}[m +[32m+[m [32m{A60D658D-766C-40DB-BAFF-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}[m +[32m+[m [32m{A60D658D-766C-40DB-BAE4-59AB884D86FB} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}[m +[32m+[m [32m{389DF3C9-A628-4F6D-8C52-8924FA01DE66} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}[m +[32m+[m [32m{2F92EC58-D94C-40BF-4444-77607C72E1E3} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}[m +[32m+[m [32m{E7D19356-B0AB-44AD-ACCB-5FFFCC4837BE} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}[m +[32m+[m [32m{0F789DF8-22CC-4392-98DB-AC3960FAD4EA} = {B24D8E0A-2EB5-4C49-A146-C0AABEF81788}[m + EndGlobalSection[m + GlobalSection(DevPartner) = postSolution[m + EndGlobalSection[m +[1mdiff --git a/iup/mak.vc9/iupcontrols.vcproj b/iup/mak.vc9/iupcontrols.vcproj[m +[1mindex 6a452af..2a7875c 100755[m +[1m--- a/iup/mak.vc9/iupcontrols.vcproj[m +[1m+++ b/iup/mak.vc9/iupcontrols.vcproj[m +[36m@@ -311,14 +311,6 @@[m + >[m + </File>[m + <File[m +[31m- RelativePath="..\srccontrols\iup_oldtabs.c"[m +[31m- >[m +[31m- </File>[m +[31m- <File[m +[31m- RelativePath="..\srccontrols\iup_oldval.c"[m +[31m- >[m +[31m- </File>[m +[31m- <File[m + RelativePath="..\srccontrols\iupcontrols.def"[m + >[m + <FileConfiguration[m +[1mdiff --git a/iup/mak.vc9/iupcore.vcproj b/iup/mak.vc9/iupcore.vcproj[m +[1mindex fbe0017..851395e 100755[m +[1m--- a/iup/mak.vc9/iupcore.vcproj[m +[1m+++ b/iup/mak.vc9/iupcore.vcproj[m +[36m@@ -475,6 +475,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\src\iup_split.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\src\iup_tabs.c"[m + >[m + </File>[m +[36m@@ -583,17 +587,6 @@[m + >[m + </File>[m + </Filter>[m +[31m- <File[m +[31m- RelativePath="..\src\iup.def"[m +[31m- >[m +[31m- <FileConfiguration[m +[31m- Name="Debug|Win32"[m +[31m- >[m +[31m- <Tool[m +[31m- Name="VCCustomBuildTool"[m +[31m- />[m +[31m- </FileConfiguration>[m +[31m- </File>[m + </Files>[m + <Globals>[m + </Globals>[m +[1mdiff --git a/iup/mak.vc9/iupgtk.vcproj b/iup/mak.vc9/iupgtk.vcproj[m +[1mindex 17281f1..a84dd4a 100755[m +[1m--- a/iup/mak.vc9/iupgtk.vcproj[m +[1m+++ b/iup/mak.vc9/iupgtk.vcproj[m +[36m@@ -95,6 +95,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\src\gtk\iupgtk_draw.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\src\gtk\iupgtk_focus.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iuplua3.vcproj b/iup/mak.vc9/iuplua3.vcproj[m +[1mindex 9993c1c..e46f316 100755[m +[1m--- a/iup/mak.vc9/iuplua3.vcproj[m +[1m+++ b/iup/mak.vc9/iuplua3.vcproj[m +[36m@@ -116,6 +116,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\srclua3\il_split.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\srclua3\il_tabs.c"[m + >[m + </File>[m +[36m@@ -164,6 +168,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\srclua3\split.lua"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\srclua3\tabs.lua"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iuplua5.vcproj b/iup/mak.vc9/iuplua5.vcproj[m +[1mindex 17d9a55..ad13650 100755[m +[1m--- a/iup/mak.vc9/iuplua5.vcproj[m +[1m+++ b/iup/mak.vc9/iuplua5.vcproj[m +[36m@@ -231,6 +231,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\srclua5\il_split.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\srclua5\il_submenu.c"[m + >[m + </File>[m +[36m@@ -407,6 +411,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\srclua5\split.lua"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\srclua5\submenu.lua"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iupluaexe5.vcproj b/iup/mak.vc9/iupluaexe5.vcproj[m +[1mindex db6804a..39d15f2 100755[m +[1m--- a/iup/mak.vc9/iupluaexe5.vcproj[m +[1m+++ b/iup/mak.vc9/iupluaexe5.vcproj[m +[36m@@ -72,7 +72,7 @@[m + OutputFile="$(OutDir)/iuplua51.exe"[m + LinkIncremental="1"[m + SuppressStartupBanner="true"[m +[31m- AdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static"[m +[32m+[m [32mAdditionalLibraryDirectories="..\..\im\lib;..\..\cd\lib;..\lib;..\..\lua5.1\lib\vc9;..\..\luagl\lib\static;..\..\lfs\lib\vc9"[m + GenerateManifest="false"[m + GenerateDebugInformation="true"[m + SubSystem="1"[m +[1mdiff --git a/iup/mak.vc9/iupmot.vcproj b/iup/mak.vc9/iupmot.vcproj[m +[1mindex 9bbfa5c..5c40695 100755[m +[1m--- a/iup/mak.vc9/iupmot.vcproj[m +[1m+++ b/iup/mak.vc9/iupmot.vcproj[m +[36m@@ -109,6 +109,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\src\mot\iupmot_draw.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\src\mot\iupmot_focus.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iupsample.vcproj b/iup/mak.vc9/iupsample.vcproj[m +[1mindex 144f3ba..0e10bb6 100755[m +[1m--- a/iup/mak.vc9/iupsample.vcproj[m +[1m+++ b/iup/mak.vc9/iupsample.vcproj[m +[36m@@ -45,7 +45,7 @@[m + Optimization="0"[m + AdditionalIncludeDirectories="..\include;..\..\cd\include"[m + PreprocessorDefinitions="WIN32;_DEBUG;_WIN32_WINNT=0x0500;_WIN32_IE=0x0500;_CRT_SECURE_NO_DEPRECATE;__IUPDEF_H"[m +[31m- ExceptionHandling="0"[m +[32m+[m [32mExceptionHandling="1"[m + BasicRuntimeChecks="3"[m + RuntimeLibrary="1"[m + UsePrecompiledHeader="0"[m +[1mdiff --git a/iup/mak.vc9/iupsamplegtk.vcproj b/iup/mak.vc9/iupsamplegtk.vcproj[m +[1mindex 24da672..485b773 100755[m +[1m--- a/iup/mak.vc9/iupsamplegtk.vcproj[m +[1m+++ b/iup/mak.vc9/iupsamplegtk.vcproj[m +[36m@@ -617,7 +617,6 @@[m + >[m + <FileConfiguration[m + Name="Debug|Win32"[m +[31m- ExcludedFromBuild="true"[m + >[m + <Tool[m + Name="VCCLCompilerTool"[m +[36m@@ -785,6 +784,7 @@[m + >[m + <FileConfiguration[m + Name="Debug|Win32"[m +[32m+[m [32mExcludedFromBuild="true"[m + >[m + <Tool[m + Name="VCCLCompilerTool"[m +[1mdiff --git a/iup/mak.vc9/iuptest.vcproj b/iup/mak.vc9/iuptest.vcproj[m +[1mindex 213431c..ac8f359 100755[m +[1m--- a/iup/mak.vc9/iuptest.vcproj[m +[1m+++ b/iup/mak.vc9/iuptest.vcproj[m +[36m@@ -271,6 +271,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\test\split.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\test\sysinfo.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iuptestgtk.vcproj b/iup/mak.vc9/iuptestgtk.vcproj[m +[1mindex 4cbc9da..d8c092c 100755[m +[1m--- a/iup/mak.vc9/iuptestgtk.vcproj[m +[1m+++ b/iup/mak.vc9/iuptestgtk.vcproj[m +[36m@@ -73,6 +73,7 @@[m + LinkIncremental="1"[m + SuppressStartupBanner="true"[m + AdditionalLibraryDirectories="..\lib;d:\lng\gtk\lib;..\..\cd\lib;D:\LNG\vld\lib"[m +[32m+[m [32mGenerateManifest="false"[m + GenerateDebugInformation="true"[m + ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"[m + SubSystem="1"[m +[36m@@ -262,6 +263,10 @@[m + >[m + </File>[m + <File[m +[32m+[m [32mRelativePath="..\test\split.c"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m +[32m+[m [32m<File[m + RelativePath="..\test\sysinfo.c"[m + >[m + </File>[m +[1mdiff --git a/iup/mak.vc9/iupwin.vcproj b/iup/mak.vc9/iupwin.vcproj[m +[1mindex 15578a9..94ef390 100755[m +[1m--- a/iup/mak.vc9/iupwin.vcproj[m +[1m+++ b/iup/mak.vc9/iupwin.vcproj[m +[36m@@ -248,6 +248,10 @@[m + >[m + </File>[m + </Filter>[m +[32m+[m [32m<File[m +[32m+[m [32mRelativePath="..\src\iup.def"[m +[32m+[m [32m>[m +[32m+[m [32m</File>[m + </Files>[m + <Globals>[m + </Globals>[m +[1mdiff --git a/iup/src/Makefile b/iup/src/Makefile[m +[1mindex 028047f..e666555 100755[m +[1m--- a/iup/src/Makefile[m +[1m+++ b/iup/src/Makefile[m +[36m@@ -1,9 +1,12 @@[m + [m +[31m-.PHONY: do_all iup iupgtk[m +[31m-do_all: iup iupgtk[m +[32m+[m[32m.PHONY: do_all iup iupgtk iupmot[m +[32m+[m[32mdo_all: iup[m + [m + iup:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m + [m + iupgtk:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes[m +[32m+[m +[32m+[m[32miupmot:[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak USE_MOTIF=Yes[m +[1mdiff --git a/iup/src/config.mak b/iup/src/config.mak[m +[1mindex e857643..82b8452 100755[m +[1m--- a/iup/src/config.mak[m +[1m+++ b/iup/src/config.mak[m +[36m@@ -2,9 +2,31 @@[m [mPROJNAME = iup[m + LIBNAME = iup[m + OPT = YES[m + [m +[31m-#ifdef DBG[m +[32m+[m[32mifdef GTK_DEFAULT[m +[32m+[m[32m ifdef USE_MOTIF[m +[32m+[m[32m # Build Motif version in Linux,Darwin,FreeBSD[m +[32m+[m[32m LIBNAME = iupmot[m +[32m+[m[32m else[m +[32m+[m[32m ifeq ($(findstring Win, $(TEC_SYSNAME)), )[m +[32m+[m[32m # Force definition if not in Windows[m +[32m+[m[32m USE_GTK = Yes[m +[32m+[m[32m endif[m +[32m+[m[32m endif[m +[32m+[m[32melse[m[41m [m +[32m+[m[32m ifdef USE_GTK[m +[32m+[m[32m # Build GTK version in IRIX,SunOS,AIX,Win32[m +[32m+[m[32m LIBNAME = iupgtk[m +[32m+[m[32m else[m +[32m+[m[32m ifeq ($(findstring Win, $(TEC_SYSNAME)), )[m +[32m+[m[32m # Force definition if not in Windows[m +[32m+[m[32m USE_MOTIF = Yes[m +[32m+[m[32m endif[m +[32m+[m[32m endif[m +[32m+[m[32mendif[m +[32m+[m +[32m+[m[32mifdef DBG[m + DEFINES += IUP_ASSERT[m +[31m-#endif [m +[32m+[m[32mendif[m[41m [m + [m + INCLUDES = ../include .[m + [m +[36m@@ -17,19 +39,14 @@[m [mSRC = iup_array.c iup_callback.c iup_dlglist.c iup_attrib.c iup_focus.c iup_font[m + iup_user.c iup_button.c iup_radio.c iup_toggle.c iup_progressbar.c iup_text.c iup_val.c \[m + iup_box.c iup_hbox.c iup_vbox.c iup_cbox.c iup_class.c iup_classbase.c iup_maskmatch.c \[m + iup_mask.c iup_maskparse.c iup_tabs.c iup_spin.c iup_list.c iup_getparam.c \[m +[31m- iup_sbox.c iup_normalizer.c iup_tree.c[m +[32m+[m[32m iup_sbox.c iup_normalizer.c iup_tree.c iup_split.c[m + [m + ifdef USE_GTK[m +[31m- ifndef GTK_DEFAULT[m +[31m- # Build GTK version in IRIX,SunOS,AIX,Win32[m +[31m- LIBNAME := iupgtk[m +[31m- endif[m +[31m-[m + DEFINES += GTK_DISABLE_DEPRECATED[m + INCLUDES += gtk[m + SRC += gtk/iupgtk_common.c gtk/iupgtk_focus.c gtk/iupgtk_font.c gtk/iupgtk_clipboard.c \[m + gtk/iupgtk_globalattrib.c gtk/iupgtk_key.c gtk/iupgtk_tips.c \[m +[31m- gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c \[m +[32m+[m[32m gtk/iupgtk_loop.c gtk/iupgtk_open.c gtk/iupgtk_messagedlg.c gtk/iupgtk_draw.c \[m + gtk/iupgtk_dialog.c gtk/iupgtk_timer.c gtk/iupgtk_image.c gtk/iupgtk_label.c \[m + gtk/iupgtk_colordlg.c gtk/iupgtk_fontdlg.c gtk/iupgtk_filedlg.c \[m + gtk/iupgtk_button.c gtk/iupgtk_toggle.c gtk/iupgtk_progressbar.c \[m +[36m@@ -40,7 +57,11 @@[m [mifdef USE_GTK[m + DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW[m + SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c[m + else[m +[31m- SRC += gtk/iupgtk_help.c mot/iupunix_info.c[m +[32m+[m[32m ifdef GTK_MAC[m +[32m+[m[32m SRC += gtk/iupmac_help.c gtk/iupmac_info.c[m +[32m+[m[32m else[m +[32m+[m[32m SRC += gtk/iupgtk_help.c mot/iupunix_info.c[m +[32m+[m[32m endif[m + endif[m + [m + ifdef USE_HILDON[m +[36m@@ -49,42 +70,35 @@[m [mifdef USE_GTK[m + LIBS += hildon-1[m + endif[m + else[m +[31m- ifneq ($(findstring Win, $(TEC_SYSNAME)), )[m +[31m- [m +[31m- SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \[m +[31m- win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \[m +[31m- win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \[m +[31m- win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \[m +[31m- win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \[m +[31m- win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \[m +[31m- win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \[m +[31m- win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \[m +[31m- win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c[m +[31m- [m +[31m- SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c[m +[31m- [m +[31m- INCLUDES += win[m +[31m- DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW[m +[31m- else[m +[31m- ifdef GTK_DEFAULT[m +[31m- # Build Motif version in Linux,Darwin,FreeBSD[m +[31m- LIBNAME := iupmot[m +[31m- endif [m +[31m- [m +[31m- SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \[m +[31m- mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \[m +[31m- mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c \[m +[31m- mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \[m +[31m- mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \[m +[31m- mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \[m +[31m- mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \[m +[31m- mot/iupmot_list.c mot/iupmot_tree.c[m +[31m- [m +[31m- SRC += mot/iupunix_help.c mot/iupunix_info.c[m +[31m- [m +[31m- INCLUDES += mot[m +[31m- USE_MOTIF=Yes [m +[31m- endif[m +[32m+[m[32mifdef USE_MOTIF[m +[32m+[m[32m SRC += mot/iupmot_common.c mot/iupmot_color.c mot/iupmot_focus.c mot/iupmot_font.c \[m +[32m+[m[32m mot/iupmot_key.c mot/iupmot_loop.c mot/iupmot_open.c mot/iupmot_tips.c \[m +[32m+[m[32m mot/iupmot_globalattrib.c mot/iupmot_dialog.c mot/iupmot_messagedlg.c mot/iupmot_draw.c \[m +[32m+[m[32m mot/iupmot_timer.c mot/iupmot_image.c mot/iupmot_label.c mot/iupmot_canvas.c \[m +[32m+[m[32m mot/iupmot_colordlg.c mot/iupmot_fontdlg.c mot/iupmot_filedlg.c mot/iupmot_frame.c \[m +[32m+[m[32m mot/iupmot_button.c mot/iupmot_toggle.c mot/iupmot_progressbar.c mot/iupmot_clipboard.c \[m +[32m+[m[32m mot/iupmot_text.c mot/iupmot_val.c mot/iupmot_tabs.c mot/iupmot_menu.c \[m +[32m+[m[32m mot/iupmot_list.c mot/iupmot_tree.c[m +[32m+[m[41m [m +[32m+[m[32m SRC += mot/iupunix_help.c mot/iupunix_info.c[m +[32m+[m +[32m+[m[32m INCLUDES += mot[m +[32m+[m[32melse[m +[32m+[m[32m SRC += win/iupwin_common.c win/iupwin_brush.c win/iupwin_focus.c win/iupwin_font.c \[m +[32m+[m[32m win/iupwin_globalattrib.c win/iupwin_handle.c win/iupwin_key.c \[m +[32m+[m[32m win/iupwin_loop.c win/iupwin_open.c win/iupwin_tips.c win/iupwin_info.c \[m +[32m+[m[32m win/iupwin_dialog.c win/iupwin_messagedlg.c win/iupwin_timer.c \[m +[32m+[m[32m win/iupwin_image.c win/iupwin_label.c win/iupwin_canvas.c win/iupwin_frame.c \[m +[32m+[m[32m win/iupwin_colordlg.c win/iupwin_fontdlg.c win/iupwin_filedlg.c \[m +[32m+[m[32m win/iupwin_button.c win/iupwin_draw.c win/iupwin_toggle.c win/iupwin_clipboard.c \[m +[32m+[m[32m win/iupwin_progressbar.c win/iupwin_text.c win/iupwin_val.c \[m +[32m+[m[32m win/iupwin_tabs.c win/iupwin_menu.c win/iupwin_list.c win/iupwin_tree.c[m +[32m+[m[41m [m +[32m+[m[32m SRC += win/iupwindows_main.c win/iupwindows_help.c win/iupwindows_info.c[m +[32m+[m +[32m+[m[32m INCLUDES += win[m +[32m+[m[32m DEFINES += _WIN32_WINNT=0x0500 _WIN32_IE=0x0500 WINVER=0x0500 NOTREEVIEW[m +[32m+[m[32mendif[m + endif[m + [m + ifeq "$(TEC_SYSNAME)" "SunOS"[m +[36m@@ -113,6 +127,6 @@[m [mifeq "$(TEC_UNAME)" "dll"[m + endif[m + [m + ifeq "$(TEC_UNAME)" "owc1"[m +[31m- # Necessary or IUP will not work in Open Watcom[m +[32m+[m[32m # Necessary or IUP 3 will not work in Open Watcom[m + DBG=Yes[m + endif[m +[1mdiff --git a/iup/src/gtk/iupgtk_button.c b/iup/src/gtk/iupgtk_button.c[m +[1mindex 18be87c..f8474ae 100755[m +[1m--- a/iup/src/gtk/iupgtk_button.c[m +[1m+++ b/iup/src/gtk/iupgtk_button.c[m +[36m@@ -150,8 +150,10 @@[m [mstatic int gtkButtonSetPaddingAttrib(Ihandle* ih, const char* value)[m + gtk_alignment_set_padding(alignment, ih->data->vert_padding, ih->data->vert_padding, [m + ih->data->horiz_padding, ih->data->horiz_padding);[m + }[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + #ifdef WIN32[m +[36m@@ -366,12 +368,12 @@[m [mstatic int gtkButtonMapMethod(Ihandle* ih)[m + ih->data->type = IUP_BUTTON_IMAGE;[m + [m + value = iupAttribGet(ih, "TITLE");[m +[31m- if (value)[m +[32m+[m[32m if (value && *value!=0)[m + {[m + GtkSettings* settings = gtk_widget_get_settings(ih->handle);[m + g_object_set(settings, "gtk-button-images", (int)TRUE, NULL);[m + [m +[31m- gtk_button_set_label((GtkButton*)ih->handle, value);[m +[32m+[m[32m gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(value));[m + ih->data->type |= IUP_BUTTON_TEXT;[m + [m + #if GTK_CHECK_VERSION(2, 10, 0)[m +[36m@@ -397,7 +399,7 @@[m [mstatic int gtkButtonMapMethod(Ihandle* ih)[m + #endif[m + }[m + else[m +[31m- gtk_button_set_label((GtkButton*)ih->handle, title);[m +[32m+[m[32m gtk_button_set_label((GtkButton*)ih->handle, iupgtkStrConvertToUTF8(title));[m + ih->data->type = IUP_BUTTON_TEXT;[m + }[m + [m +[1mdiff --git a/iup/src/gtk/iupgtk_canvas.c b/iup/src/gtk/iupgtk_canvas.c[m +[1mindex daae4ad..3af48a4 100755[m +[1m--- a/iup/src/gtk/iupgtk_canvas.c[m +[1m+++ b/iup/src/gtk/iupgtk_canvas.c[m +[36m@@ -537,8 +537,8 @@[m [mstatic int gtkCanvasMapMethod(Ihandle* ih)[m + [m + /* To receive mouse events on a drawing area, you will need to enable them. */[m + gtk_widget_add_events(ih->handle, GDK_EXPOSURE_MASK|[m +[31m- GDK_POINTER_MOTION_MASK|GDK_BUTTON_MOTION_MASK|[m +[31m- GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|[m +[32m+[m[32m GDK_POINTER_MOTION_MASK|GDK_POINTER_MOTION_HINT_MASK|[m +[32m+[m[32m GDK_BUTTON_PRESS_MASK|GDK_BUTTON_RELEASE_MASK|GDK_BUTTON_MOTION_MASK|[m + GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK|[m + GDK_ENTER_NOTIFY_MASK|GDK_LEAVE_NOTIFY_MASK|[m + GDK_FOCUS_CHANGE_MASK|GDK_STRUCTURE_MASK);[m +[36m@@ -611,14 +611,15 @@[m [mvoid iupdrvCanvasInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "YAUTOHIDE", NULL, gtkCanvasSetYAutoHideAttrib, "YES", NULL, IUPAF_DEFAULT); /* force new default value */[m + [m + iupClassRegisterAttribute(ic, "DRAWABLE", gtkCanvasGetDrawableAttrib, NULL, NULL, NULL, IUPAF_NO_STRING);[m +[31m- //iupClassRegisterAttribute(ic, "CD_GDK", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);[m + [m + /* IupCanvas Windows or X only */[m +[31m-#ifdef WIN32 [m +[31m- iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m +[31m-#else[m +[31m- iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m +[31m- iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m +[32m+[m[32m#ifndef GTK_MAC[m +[32m+[m[32m #ifdef WIN32[m[41m [m +[32m+[m[32m iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m +[32m+[m[32m #else[m +[32m+[m[32m iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "XDISPLAY", (IattribGetFunc)iupdrvGetDisplay, NULL, NULL, NULL, IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m +[32m+[m[32m #endif[m + #endif[m + }[m + [m +[1mdiff --git a/iup/src/gtk/iupgtk_common.c b/iup/src/gtk/iupgtk_common.c[m +[1mindex 40368f2..d84c1c8 100755[m +[1m--- a/iup/src/gtk/iupgtk_common.c[m +[1m+++ b/iup/src/gtk/iupgtk_common.c[m +[36m@@ -91,13 +91,13 @@[m [mvoid iupdrvBaseUnMapMethod(Ihandle* ih)[m + gtk_widget_destroy(widget); /* To match the call to gtk_*****_new */[m + }[m + [m +[31m-void iupdrvDisplayUpdate(Ihandle *ih)[m +[32m+[m[32mvoid iupdrvPostRedraw(Ihandle *ih)[m + {[m + /* Post a REDRAW */[m + gtk_widget_queue_draw(ih->handle);[m + }[m + [m +[31m-void iupdrvDisplayRedraw(Ihandle *ih)[m +[32m+[m[32mvoid iupdrvRedrawNow(Ihandle *ih)[m + {[m + GdkWindow* window = ih->handle->window;[m + /* Post a REDRAW */[m +[36m@@ -202,7 +202,11 @@[m [mvoid iupdrvSetVisible(Ihandle* ih, int visible)[m + [m + int iupdrvIsVisible(Ihandle* ih)[m + {[m +[32m+[m[32m#if GTK_CHECK_VERSION(2, 18, 0)[m +[32m+[m[32m if (gtk_widget_get_visible(ih->handle))[m +[32m+[m[32m#else[m + if (GTK_WIDGET_VISIBLE(ih->handle))[m +[32m+[m[32m#endif[m + {[m + /* if marked as visible, since we use gtk_widget_hide and NOT gtk_widget_hide_all[m + must check its parents. */[m +[36m@@ -211,7 +215,11 @@[m [mint iupdrvIsVisible(Ihandle* ih)[m + {[m + if (parent->iclass->nativetype != IUP_TYPEVOID)[m + {[m +[32m+[m[32m#if GTK_CHECK_VERSION(2, 18, 0)[m +[32m+[m[32m if (!gtk_widget_get_visible(parent->handle))[m +[32m+[m[32m#else[m + if (!GTK_WIDGET_VISIBLE(parent->handle))[m +[32m+[m[32m#endif[m + return 0;[m + }[m + [m +[36m@@ -225,7 +233,11 @@[m [mint iupdrvIsVisible(Ihandle* ih)[m + [m + int iupdrvIsActive(Ihandle *ih)[m + {[m +[31m- return (GTK_WIDGET_IS_SENSITIVE(ih->handle));[m +[32m+[m[32m#if GTK_CHECK_VERSION(2, 18, 0)[m +[32m+[m[32m return gtk_widget_is_sensitive(ih->handle);[m +[32m+[m[32m#else[m +[32m+[m[32m return GTK_WIDGET_IS_SENSITIVE(ih->handle);[m +[32m+[m[32m#endif[m + }[m + [m + void iupdrvSetActive(Ihandle* ih, int enable)[m +[36m@@ -424,9 +436,11 @@[m [mstatic GdkCursor* gtkGetCursor(Ihandle* ih, const char* name)[m + { "RESIZE_N", GDK_TOP_SIDE},[m + { "RESIZE_S", GDK_BOTTOM_SIDE},[m + { "RESIZE_NS", GDK_SB_V_DOUBLE_ARROW},[m +[32m+[m[32m { "SPLITTER_HORIZ", GDK_SB_V_DOUBLE_ARROW},[m + { "RESIZE_W", GDK_LEFT_SIDE},[m + { "RESIZE_E", GDK_RIGHT_SIDE},[m + { "RESIZE_WE", GDK_SB_H_DOUBLE_ARROW},[m +[32m+[m[32m { "SPLITTER_VERT", GDK_SB_H_DOUBLE_ARROW},[m + { "RESIZE_NE", GDK_TOP_RIGHT_CORNER},[m + { "RESIZE_SE", GDK_BOTTOM_RIGHT_CORNER},[m + { "RESIZE_NW", GDK_TOP_LEFT_CORNER},[m +[36m@@ -571,18 +585,24 @@[m [mvoid iupdrvDrawFocusRect(Ihandle* ih, void* _gc, int x, int y, int w, int h)[m + {[m + GdkWindow* window = ih->handle->window;[m + GtkStyle *style = gtk_widget_get_style(ih->handle);[m +[32m+[m[32m#if GTK_CHECK_VERSION(2, 18, 0)[m +[32m+[m[32m GtkStateType state = gtk_widget_get_state(ih->handle);[m +[32m+[m[32m#else[m +[32m+[m[32m GtkStateType state = GTK_WIDGET_STATE(ih->handle);[m +[32m+[m[32m#endif[m +[32m+[m[32m gtk_paint_focus(style, window, state, NULL, ih->handle, NULL, x, y, w, h);[m + (void)_gc;[m +[31m-[m +[31m- gtk_paint_focus(style, window, GTK_WIDGET_STATE(ih->handle), NULL, ih->handle, NULL, x, y, w, h);[m + }[m + [m + void iupdrvBaseRegisterCommonAttrib(Iclass* ic)[m + {[m +[32m+[m[32m#ifndef GTK_MAC[m + #ifdef WIN32 [m + iupClassRegisterAttribute(ic, "HFONT", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m + #else[m + iupClassRegisterAttribute(ic, "XFONTID", iupgtkGetFontIdAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m + #endif[m +[32m+[m[32m#endif[m + iupClassRegisterAttribute(ic, "PANGOFONTDESC", iupgtkGetPangoFontDescAttrib, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m + }[m + [m +[36m@@ -789,7 +809,17 @@[m [mchar* iupgtkStrConvertFromFilename(const char* str) /* From Filename to IUP */[m + [m + gboolean iupgtkMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *evt, Ihandle *ih)[m + {[m +[31m- IFniis cb = (IFniis)IupGetCallback(ih,"MOTION_CB");[m +[32m+[m[32m IFniis cb;[m +[32m+[m +[32m+[m[32m if (evt->is_hint)[m +[32m+[m[32m {[m +[32m+[m[32m int x, y;[m +[32m+[m[32m gdk_window_get_pointer(widget->window, &x, &y, NULL);[m +[32m+[m[32m evt->x = x;[m +[32m+[m[32m evt->y = y;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m cb = (IFniis)IupGetCallback(ih,"MOTION_CB");[m + if (cb)[m + {[m + char status[IUPKEY_STATUS_SIZE] = IUPKEY_STATUS_INIT;[m +[36m@@ -818,6 +848,23 @@[m [mgboolean iupgtkButtonEvent(GtkWidget *widget, GdkEventButton *evt, Ihandle *ih)[m + [m + iupgtkButtonKeySetStatus(evt->state, evt->button, status, doubleclick);[m + [m +[32m+[m[32m if (doubleclick)[m +[32m+[m[32m {[m +[32m+[m[32m /* Must compensate the fact that in GTK there is an extra button press event[m[41m [m +[32m+[m[32m when occours a double click, we compensate that completing the event[m[41m [m +[32m+[m[32m with a button release before the double click. */[m +[32m+[m +[32m+[m[32m status[5] = ' '; /* clear double click */[m +[32m+[m +[32m+[m[32m ret = cb(ih, b, 0, (int)evt->x, (int)evt->y, status); /* release */[m +[32m+[m[32m if (ret==IUP_CLOSE)[m +[32m+[m[32m IupExitLoop();[m +[32m+[m[32m else if (ret==IUP_IGNORE)[m +[32m+[m[32m return TRUE;[m +[32m+[m +[32m+[m[32m status[5] = 'D'; /* restore double click */[m +[32m+[m[32m }[m +[32m+[m + ret = cb(ih, b, press, (int)evt->x, (int)evt->y, status);[m + if (ret==IUP_CLOSE)[m + IupExitLoop();[m +[1mdiff --git a/iup/src/gtk/iupgtk_dialog.c b/iup/src/gtk/iupgtk_dialog.c[m +[1mindex 46c0ce1..ff0d8f2 100755[m +[1m--- a/iup/src/gtk/iupgtk_dialog.c[m +[1m+++ b/iup/src/gtk/iupgtk_dialog.c[m +[36m@@ -120,12 +120,13 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + static int native_border = 0;[m + static int native_caption = 0;[m + [m +[31m- int has_caption = iupAttribGetBoolean(ih, "MAXBOX") ||[m +[31m- iupAttribGetBoolean(ih, "MINBOX") ||[m +[31m- iupAttribGetBoolean(ih, "MENUBOX") || [m +[31m- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */[m +[32m+[m[32m int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */[m +[32m+[m[32m iupAttribGetBoolean(ih, "MAXBOX") ||[m +[32m+[m[32m iupAttribGetBoolean(ih, "MINBOX") ||[m +[32m+[m[32m iupAttribGetBoolean(ih, "MENUBOX") ||[m[41m [m +[32m+[m[32m IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */[m + [m +[31m- int has_border = has_caption ||[m +[32m+[m[32m int has_border = has_titlebar ||[m + iupAttribGetBoolean(ih, "RESIZE") ||[m + iupAttribGetBoolean(ih, "BORDER");[m + [m +[36m@@ -147,7 +148,7 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + *border = win_border;[m + [m + *caption = 0;[m +[31m- if (has_caption)[m +[32m+[m[32m if (has_titlebar)[m + *caption = win_caption;[m + [m + if (!native_border && *border)[m +[36m@@ -171,7 +172,7 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + }[m + [m + *caption = 0;[m +[31m- if (has_caption)[m +[32m+[m[32m if (has_titlebar)[m + {[m + if (native_caption)[m + *caption = native_caption;[m +[36m@@ -429,6 +430,7 @@[m [mstatic int gtkDialogMapMethod(Ihandle* ih)[m + int functions = 0;[m + InativeHandle* parent;[m + GtkWidget* fixed;[m +[32m+[m[32m int has_titlebar = 0;[m + [m + #ifdef HILDON[m + if (iupAttribGetBoolean(ih, "HILDONWINDOW")) [m +[36m@@ -494,33 +496,41 @@[m [mstatic int gtkDialogMapMethod(Ihandle* ih)[m + iupAttribSetStr(ih, "MINBOX", "NO");[m + }[m + [m +[31m- if (IupGetAttribute(ih, "TITLE")) { /* must use IupGetAttribute to check from the native implementation */[m +[31m- functions |= GDK_FUNC_MOVE;[m +[31m- decorations |= GDK_DECOR_TITLE;[m +[31m- }[m +[31m-[m +[31m- if (iupAttribGetBoolean(ih, "MENUBOX")) {[m +[32m+[m[32m if (iupAttribGet(ih, "TITLE"))[m +[32m+[m[32m has_titlebar = 1;[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "MENUBOX"))[m[41m [m +[32m+[m[32m {[m + functions |= GDK_FUNC_CLOSE;[m + decorations |= GDK_DECOR_MENU;[m +[32m+[m[32m has_titlebar = 1;[m + }[m +[31m-[m +[31m- if (iupAttribGetBoolean(ih, "MINBOX")) {[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "MINBOX"))[m[41m [m +[32m+[m[32m {[m + functions |= GDK_FUNC_MINIMIZE;[m + decorations |= GDK_DECOR_MINIMIZE;[m +[32m+[m[32m has_titlebar = 1;[m + }[m +[31m-[m +[31m- if (iupAttribGetBoolean(ih, "MAXBOX")) {[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "MAXBOX"))[m[41m [m +[32m+[m[32m {[m + functions |= GDK_FUNC_MAXIMIZE;[m + decorations |= GDK_DECOR_MAXIMIZE;[m +[32m+[m[32m has_titlebar = 1;[m + }[m +[31m-[m +[31m- if (iupAttribGetBoolean(ih, "RESIZE")) {[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "RESIZE"))[m[41m [m +[32m+[m[32m {[m + functions |= GDK_FUNC_RESIZE;[m + decorations |= GDK_DECOR_RESIZEH;[m +[31m- }[m + [m +[31m- if (iupAttribGetBoolean(ih, "BORDER"))[m +[31m- decorations |= GDK_DECOR_BORDER;[m +[32m+[m[32m decorations |= GDK_DECOR_BORDER; /* has_border */[m +[32m+[m[32m }[m +[32m+[m[32m if (has_titlebar)[m +[32m+[m[32m {[m +[32m+[m[32m functions |= GDK_FUNC_MOVE;[m +[32m+[m[32m decorations |= GDK_DECOR_TITLE;[m +[32m+[m[32m gtk_window_set_title((GtkWindow*)ih->handle, "");[m +[32m+[m[32m }[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)[m +[32m+[m[32m decorations |= GDK_DECOR_BORDER; /* has_border */[m + [m + if (decorations == 0)[m + gtk_window_set_decorated((GtkWindow*)ih->handle, FALSE);[m +[36m@@ -980,11 +990,12 @@[m [mvoid iupdrvDialogInitClass(Iclass* ic)[m + iupClassRegisterCallback(ic, "TRAYCLICK_CB", "iii");[m + [m + /* Driver Dependent Attribute functions */[m +[31m-[m +[31m-#ifdef WIN32 [m +[31m- iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m +[31m-#else[m +[31m- iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m +[32m+[m[32m#ifndef GTK_MAC[m +[32m+[m[32m #ifdef WIN32[m[41m [m +[32m+[m[32m iupClassRegisterAttribute(ic, "HWND", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m +[32m+[m[32m #else[m +[32m+[m[32m iupClassRegisterAttribute(ic, "XWINDOW", iupgtkGetNativeWindowHandle, NULL, NULL, NULL, IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m +[32m+[m[32m #endif[m + #endif[m + [m + /* Visual */[m +[1mdiff --git a/iup/src/gtk/iupgtk_drv.h b/iup/src/gtk/iupgtk_drv.h[m +[1mindex ade2a4a..bf567d6 100755[m +[1m--- a/iup/src/gtk/iupgtk_drv.h[m +[1m+++ b/iup/src/gtk/iupgtk_drv.h[m +[36m@@ -59,8 +59,8 @@[m [mvoid iupgtkFontUpdateObjectPangoLayout(Ihandle* ih, gpointer object);[m + /* There are PANGO_SCALE Pango units in one device unit. [m + For an output backend where a device unit is a pixel, [m + a size value of 10 * PANGO_SCALE gives 10 pixels. */[m +[31m-#define IUPGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE)[m +[31m-#define IUPGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE)[m +[32m+[m[32m#define iupGTK_PANGOUNITS2PIXELS(_x) (((_x) + PANGO_SCALE/2) / PANGO_SCALE)[m +[32m+[m[32m#define iupGTK_PIXELS2PANGOUNITS(_x) ((_x) * PANGO_SCALE)[m + [m + [m + /* open */[m +[1mdiff --git a/iup/src/gtk/iupgtk_filedlg.c b/iup/src/gtk/iupgtk_filedlg.c[m +[1mindex 5426910..a326c72 100755[m +[1m--- a/iup/src/gtk/iupgtk_filedlg.c[m +[1m+++ b/iup/src/gtk/iupgtk_filedlg.c[m +[36m@@ -77,6 +77,8 @@[m [mstatic void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list)[m + cur_len = iupArrayCount(names_array);[m + all_names = iupArrayAdd(names_array, dir_len+1);[m + memcpy(all_names+cur_len, filename, dir_len);[m +[32m+[m[32m all_names[cur_len+dir_len] = '0';[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", all_names);[m + all_names[cur_len+dir_len] = '|';[m + [m + dir_len++; /* skip separator */[m +[36m@@ -101,10 +103,14 @@[m [mstatic void gtkFileDlgGetMultipleFiles(Ihandle* ih, GSList* list)[m + iupArrayDestroy(names_array);[m + }[m + [m +[31m-#ifdef WIN32[m +[31m-#include <gdk/gdkwin32.h>[m +[32m+[m[32m#ifdef GTK_MAC[m +[32m+[m[32m #include <gdk/gdk.h>[m + #else[m +[31m-#include <gdk/gdkx.h>[m +[32m+[m[32m #ifdef WIN32[m +[32m+[m[32m #include <gdk/gdkwin32.h>[m +[32m+[m[32m #else[m +[32m+[m[32m #include <gdk/gdkx.h>[m +[32m+[m[32m #endif[m + #endif[m + [m + static void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih)[m +[36m@@ -112,10 +118,12 @@[m [mstatic void gtkFileDlgUpdatePreviewGLCanvas(Ihandle* ih)[m + Ihandle* glcanvas = IupGetAttributeHandle(ih, "PREVIEWGLCANVAS");[m + if (glcanvas)[m + {[m +[31m-#ifdef WIN32 [m +[31m- iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND"));[m +[31m-#else[m +[31m- iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW"));[m +[32m+[m[32m#ifndef GTK_MAC[m +[32m+[m[32m #ifdef WIN32[m[41m [m +[32m+[m[32m iupAttribSetStr(glcanvas, "HWND", iupAttribGet(ih, "HWND"));[m +[32m+[m[32m #else[m +[32m+[m[32m iupAttribSetStr(glcanvas, "XWINDOW", iupAttribGet(ih, "XWINDOW"));[m +[32m+[m[32m #endif[m + #endif[m + glcanvas->iclass->Map(glcanvas);[m + }[m +[36m@@ -126,12 +134,15 @@[m [mstatic void gtkFileDlgPreviewRealize(GtkWidget *widget, Ihandle *ih)[m + iupAttribSetStr(ih, "PREVIEWDC", iupgtkGetNativeGraphicsContext(widget));[m + iupAttribSetStr(ih, "WID", (char*)widget);[m + [m +[31m-#ifdef WIN32 [m +[31m- iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window));[m +[31m-#else[m +[31m- iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window));[m +[31m- iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay());[m +[32m+[m[32m#ifndef GTK_MAC[m +[32m+[m[32m #ifdef WIN32[m[41m [m +[32m+[m[32m iupAttribSetStr(ih, "HWND", (char*)GDK_WINDOW_HWND(widget->window));[m +[32m+[m[32m #else[m +[32m+[m[32m iupAttribSetStr(ih, "XWINDOW", (char*)GDK_WINDOW_XID(widget->window));[m +[32m+[m[32m iupAttribSetStr(ih, "XDISPLAY", (char*)iupdrvGetDisplay());[m +[32m+[m[32m #endif[m + #endif[m +[32m+[m + gtkFileDlgUpdatePreviewGLCanvas(ih);[m + }[m + [m +[36m@@ -174,11 +185,11 @@[m [mstatic void gtkFileDlgUpdatePreview(GtkFileChooser *file_chooser, Ihandle* ih)[m + {[m + char *filename = gtk_file_chooser_get_preview_filename(file_chooser);[m + [m +[32m+[m[32m IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m + if (iupdrvIsFile(filename))[m +[31m- {[m +[31m- IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m + cb(ih, iupgtkStrConvertFromFilename(filename), "SELECT");[m +[31m- }[m +[32m+[m[32m else[m +[32m+[m[32m cb(ih, iupgtkStrConvertFromFilename(filename), "OTHER");[m + [m + g_free (filename);[m + [m +[36m@@ -469,6 +480,13 @@[m [mstatic int gtkFileDlgPopup(Ihandle* ih, int x, int y)[m + char* filename = (char*)file_list->data;[m + iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename));[m + g_free(filename);[m +[32m+[m +[32m+[m[32m /* store the DIRECTORY */[m +[32m+[m[32m {[m +[32m+[m[32m char* dir = iupStrFileGetPath(iupAttribGet(ih, "VALUE"));[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", dir);[m +[32m+[m[32m free(dir);[m +[32m+[m[32m }[m + }[m + [m + g_slist_free(file_list);[m +[36m@@ -481,6 +499,14 @@[m [mstatic int gtkFileDlgPopup(Ihandle* ih, int x, int y)[m + iupAttribStoreStr(ih, "VALUE", iupgtkStrConvertFromFilename(filename));[m + file_exist = iupdrvIsFile(filename);[m + dir_exist = iupdrvIsDirectory(filename);[m +[32m+[m +[32m+[m[32m if (file_exist)[m +[32m+[m[32m {[m +[32m+[m[32m char* dir = iupStrFileGetPath(filename);[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", dir);[m +[32m+[m[32m free(dir);[m +[32m+[m[32m }[m +[32m+[m + g_free(filename);[m + }[m + [m +[36m@@ -507,8 +533,11 @@[m [mstatic int gtkFileDlgPopup(Ihandle* ih, int x, int y)[m + {[m + /* GtkFileChooser does not change the current directory */[m + char* dir = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog));[m +[31m- if (dir) iupdrvSetCurrentDirectory(dir);[m +[31m- g_free(dir);[m +[32m+[m[32m if (dir)[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m iupdrvSetCurrentDirectory(dir);[m +[32m+[m[32m g_free(dir);[m +[32m+[m[32m }[m + }[m + }[m + else[m +[1mdiff --git a/iup/src/gtk/iupgtk_font.c b/iup/src/gtk/iupgtk_font.c[m +[1mindex f7ff348..1139f62 100755[m +[1m--- a/iup/src/gtk/iupgtk_font.c[m +[1m+++ b/iup/src/gtk/iupgtk_font.c[m +[36m@@ -132,9 +132,9 @@[m [mstatic IgtkFont* gtkFindFont(const char *standardfont)[m + [m + metrics = pango_context_get_metrics(gtk_fonts_context, fontdesc, pango_context_get_language(gtk_fonts_context));[m + fonts[i].charheight = pango_font_metrics_get_ascent(metrics) + pango_font_metrics_get_descent(metrics);[m +[31m- fonts[i].charheight = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charheight);[m +[32m+[m[32m fonts[i].charheight = iupGTK_PANGOUNITS2PIXELS(fonts[i].charheight);[m + fonts[i].charwidth = pango_font_metrics_get_approximate_char_width(metrics);[m +[31m- fonts[i].charwidth = IUPGTK_PANGOUNITS2PIXELS(fonts[i].charwidth);[m +[32m+[m[32m fonts[i].charwidth = iupGTK_PANGOUNITS2PIXELS(fonts[i].charwidth);[m + pango_font_metrics_unref(metrics); [m + [m + gtkFontUpdate(&(fonts[i]));[m +[1mdiff --git a/iup/src/gtk/iupgtk_fontdlg.c b/iup/src/gtk/iupgtk_fontdlg.c[m +[1mindex 5769cbc..dca0232 100755[m +[1m--- a/iup/src/gtk/iupgtk_fontdlg.c[m +[1m+++ b/iup/src/gtk/iupgtk_fontdlg.c[m +[36m@@ -24,7 +24,7 @@[m [mstatic int gtkFontDlgPopup(Ihandle* ih, int x, int y)[m + InativeHandle* parent = iupDialogGetNativeParent(ih);[m + GtkFontSelectionDialog* dialog;[m + int response;[m +[31m- char* preview_text;[m +[32m+[m[32m char* preview_text, *standardfont;[m + [m + iupAttribSetInt(ih, "_IUPDLG_X", x); /* used in iupDialogUpdatePosition */[m + iupAttribSetInt(ih, "_IUPDLG_Y", y);[m +[36m@@ -36,7 +36,10 @@[m [mstatic int gtkFontDlgPopup(Ihandle* ih, int x, int y)[m + if (parent)[m + gtk_window_set_transient_for((GtkWindow*)dialog, (GtkWindow*)parent);[m + [m +[31m- gtk_font_selection_dialog_set_font_name(dialog, iupAttribGet(ih, "VALUE"));[m +[32m+[m[32m standardfont = iupAttribGet(ih, "VALUE");[m +[32m+[m[32m if (!standardfont)[m +[32m+[m[32m standardfont = IupGetGlobal("DEFAULTFONT");[m +[32m+[m[32m gtk_font_selection_dialog_set_font_name(dialog, standardfont);[m + [m + preview_text = iupAttribGet(ih, "PREVIEWTEXT");[m + if (preview_text)[m +[1mdiff --git a/iup/src/gtk/iupgtk_frame.c b/iup/src/gtk/iupgtk_frame.c[m +[1mindex 022c6c7..25595be 100755[m +[1m--- a/iup/src/gtk/iupgtk_frame.c[m +[1m+++ b/iup/src/gtk/iupgtk_frame.c[m +[36m@@ -41,8 +41,11 @@[m [mstatic char* gtkFrameGetTitleAttrib(Ihandle* ih)[m + [m + static int gtkFrameSetTitleAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- GtkFrame* frame = (GtkFrame*)ih->handle;[m +[31m- gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value));[m +[32m+[m[32m if (iupAttribGetStr(ih, "_IUPFRAME_HAS_TITLE"))[m +[32m+[m[32m {[m +[32m+[m[32m GtkFrame* frame = (GtkFrame*)ih->handle;[m +[32m+[m[32m gtk_frame_set_label(frame, iupgtkStrConvertToUTF8(value));[m +[32m+[m[32m }[m + return 0;[m + }[m + [m +[36m@@ -57,7 +60,11 @@[m [mstatic int gtkFrameSetBgColorAttrib(Ihandle* ih, const char* value)[m + if (label)[m + iupgtkBaseSetBgColor(label, r, g, b);[m + [m +[31m- iupgtkBaseSetBgColor(ih->handle, r, g, b);[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m {[m +[32m+[m[32m GtkWidget* fixed = gtk_bin_get_child((GtkBin*)ih->handle);[m +[32m+[m[32m iupgtkBaseSetBgColor(fixed, r, g, b);[m +[32m+[m[32m }[m + [m + return 1;[m + }[m +[36m@@ -120,10 +127,19 @@[m [mstatic int gtkFrameMapMethod(Ihandle* ih)[m + gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_IN);[m + else[m + gtk_frame_set_shadow_type((GtkFrame*)ih->handle, GTK_SHADOW_ETCHED_IN);[m +[32m+[m +[32m+[m[32m if (iupAttribGet(ih, "BGCOLOR"))[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");[m + }[m + [m + /* the container that will receive the child element. */[m + fixed = gtk_fixed_new();[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m#if GTK_CHECK_VERSION(2, 18, 0)[m +[32m+[m[32m gtk_widget_set_has_window(fixed, TRUE);[m +[32m+[m[32m#else[m +[32m+[m[32m gtk_fixed_set_has_window((GtkFixed*)fixed, TRUE);[m +[32m+[m[32m#endif[m + gtk_container_add((GtkContainer*)ih->handle, fixed);[m + gtk_widget_show(fixed);[m + [m +[1mdiff --git a/iup/src/gtk/iupgtk_key.c b/iup/src/gtk/iupgtk_key.c[m +[1mindex 5aec919..ed485a7 100755[m +[1m--- a/iup/src/gtk/iupgtk_key.c[m +[1m+++ b/iup/src/gtk/iupgtk_key.c[m +[36m@@ -316,9 +316,9 @@[m [mgboolean iupgtkKeyPressEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih)[m + if (code == 0) [m + return FALSE;[m + [m +[31m- /* Avoid duplicate calls if a child of the dialog contains the focus.[m +[31m- GTK will call the callback for the child and for the dialog */[m +[31m- if (ih->iclass->nativetype == IUP_TYPEDIALOG && ih != IupGetFocus())[m +[32m+[m[32m /* Avoid duplicate calls if a child of a native container contains the focus.[m +[32m+[m[32m GTK will call the callback for the child and for the container. */[m +[32m+[m[32m if (ih->iclass->childtype != IUP_CHILDNONE && ih != IupGetFocus())[m + return FALSE;[m + [m + result = iupKeyCallKeyCb(ih, code);[m +[36m@@ -390,33 +390,33 @@[m [mgboolean iupgtkKeyReleaseEvent(GtkWidget *widget, GdkEventKey *evt, Ihandle *ih)[m + void iupgtkButtonKeySetStatus(guint state, unsigned int but, char* status, int doubleclick)[m + {[m + if (state & GDK_SHIFT_MASK)[m +[31m- iupKEYSETSHIFT(status);[m +[32m+[m[32m iupKEY_SETSHIFT(status);[m + [m + if (state & GDK_CONTROL_MASK)[m +[31m- iupKEYSETCONTROL(status); [m +[32m+[m[32m iupKEY_SETCONTROL(status);[m[41m [m + [m + if ((state & GDK_BUTTON1_MASK) || but==1)[m +[31m- iupKEYSETBUTTON1(status);[m +[32m+[m[32m iupKEY_SETBUTTON1(status);[m + [m + if ((state & GDK_BUTTON2_MASK) || but==2)[m +[31m- iupKEYSETBUTTON2(status);[m +[32m+[m[32m iupKEY_SETBUTTON2(status);[m + [m + if ((state & GDK_BUTTON3_MASK) || but==3)[m +[31m- iupKEYSETBUTTON3(status);[m +[32m+[m[32m iupKEY_SETBUTTON3(status);[m + [m + if ((state & GDK_BUTTON4_MASK) || but==4)[m +[31m- iupKEYSETBUTTON4(status);[m +[32m+[m[32m iupKEY_SETBUTTON4(status);[m + [m + if ((state & GDK_BUTTON5_MASK) || but==5)[m +[31m- iupKEYSETBUTTON5(status);[m +[32m+[m[32m iupKEY_SETBUTTON5(status);[m + [m + if (state & GDK_MOD1_MASK || state & GDK_MOD5_MASK) /* Alt */[m +[31m- iupKEYSETALT(status);[m +[32m+[m[32m iupKEY_SETALT(status);[m + [m + if (state & GDK_MOD4_MASK) /* Apple/Win */[m +[31m- iupKEYSETSYS(status);[m +[32m+[m[32m iupKEY_SETSYS(status);[m + [m + if (doubleclick)[m +[31m- iupKEYSETDOUBLE(status);[m +[32m+[m[32m iupKEY_SETDOUBLE(status);[m + }[m + [m +[1mdiff --git a/iup/src/gtk/iupgtk_label.c b/iup/src/gtk/iupgtk_label.c[m +[1mindex 49d5c6d..f95f576 100755[m +[1m--- a/iup/src/gtk/iupgtk_label.c[m +[1m+++ b/iup/src/gtk/iupgtk_label.c[m +[36m@@ -133,8 +133,10 @@[m [mstatic int gtkLabelSetPaddingAttrib(Ihandle* ih, const char* value)[m + {[m + GtkMisc* misc = (GtkMisc*)ih->handle;[m + gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static char* gtkLabelGetPangoLayoutAttrib(Ihandle* ih)[m +[1mdiff --git a/iup/src/gtk/iupgtk_list.c b/iup/src/gtk/iupgtk_list.c[m +[1mindex 80f6cce..48fa88e 100755[m +[1m--- a/iup/src/gtk/iupgtk_list.c[m +[1m+++ b/iup/src/gtk/iupgtk_list.c[m +[36m@@ -113,6 +113,8 @@[m [mvoid iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)[m + GtkTreeIter iter;[m + gtk_list_store_insert(GTK_LIST_STORE(model), &iter, pos);[m + gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, iupgtkStrConvertToUTF8(value), -1);[m +[32m+[m +[32m+[m[32m iupListUpdateOldValue(ih, pos, 0);[m + }[m + [m + void iupdrvListRemoveItem(Ihandle* ih, int pos)[m +[36m@@ -127,14 +129,24 @@[m [mvoid iupdrvListRemoveItem(Ihandle* ih, int pos)[m + int curpos = gtk_combo_box_get_active((GtkComboBox*)ih->handle);[m + if (pos == curpos)[m + {[m +[31m- if (curpos > 0) curpos--;[m +[31m- else curpos++;[m +[32m+[m[32m if (curpos > 0)[m[41m [m +[32m+[m[32m curpos--;[m +[32m+[m[32m else[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m curpos=1;[m +[32m+[m[32m if (iupdrvListGetCount(ih)==1)[m +[32m+[m[32m curpos = -1; /* remove the selection */[m +[32m+[m[32m }[m + [m +[32m+[m[32m g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);[m + gtk_combo_box_set_active((GtkComboBox*)ih->handle, curpos);[m +[32m+[m[32m g_signal_handlers_unblock_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);[m + }[m + }[m + [m + gtk_list_store_remove(GTK_LIST_STORE(model), &iter);[m +[32m+[m +[32m+[m[32m iupListUpdateOldValue(ih, pos, 1);[m + }[m + }[m + [m +[36m@@ -177,7 +189,7 @@[m [mstatic int gtkListSetStandardFontAttrib(Ihandle* ih, const char* value)[m + static char* gtkListGetIdValueAttrib(Ihandle* ih, const char* name_id)[m + {[m + int pos = iupListGetPos(ih, name_id);[m +[31m- if (pos != -1)[m +[32m+[m[32m if (pos >= 0)[m + {[m + GtkTreeIter iter;[m + GtkTreeModel* model = gtkListGetModel(ih);[m +[36m@@ -349,7 +361,7 @@[m [mstatic int gtkListSetValueAttrib(Ihandle* ih, const char* value)[m + GtkTreeModel *model = gtkListGetModel(ih);[m + g_signal_handlers_block_by_func(G_OBJECT(ih->handle), G_CALLBACK(gtkListComboBoxChanged), ih);[m + if (iupStrToInt(value, &pos)==1 && [m +[31m- (pos>0 && pos<gtk_tree_model_iter_n_children(model, NULL)))[m +[32m+[m[32m (pos>0 && pos<=gtk_tree_model_iter_n_children(model, NULL)))[m + {[m + gtk_combo_box_set_active((GtkComboBox*)ih->handle, pos-1); /* IUP starts at 1 */[m + iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", pos);[m +[36m@@ -788,9 +800,10 @@[m [mstatic int gtkListSetNCAttrib(Ihandle* ih, const char* value)[m + {[m + GtkEntry* entry = (GtkEntry*)iupAttribGet(ih, "_IUPGTK_ENTRY");[m + gtk_entry_set_max_length(entry, ih->data->nc);[m +[32m+[m[32m return 0;[m + }[m +[31m-[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int gtkListSetClipboardAttrib(Ihandle *ih, const char *value)[m +[36m@@ -1364,9 +1377,9 @@[m [mstatic int gtkListMapMethod(Ihandle* ih)[m + if (!ih->data->has_editbox && ih->data->is_multiple)[m + {[m + gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);[m +[31m-#if GTK_CHECK_VERSION(2, 10, 0)[m +[32m+[m[32m #if GTK_CHECK_VERSION(2, 10, 0)[m + gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE);[m +[31m-#endif[m +[32m+[m[32m #endif[m + }[m + else[m + gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);[m +[1mdiff --git a/iup/src/gtk/iupgtk_loop.c b/iup/src/gtk/iupgtk_loop.c[m +[1mindex e349a45..704923e 100755[m +[1m--- a/iup/src/gtk/iupgtk_loop.c[m +[1m+++ b/iup/src/gtk/iupgtk_loop.c[m +[36m@@ -69,6 +69,13 @@[m [mint IupMainLoop(void)[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mint IupLoopStepWait(void)[m +[32m+[m[32m{[m +[32m+[m[32m if (gtk_main_iteration_do(TRUE))[m +[32m+[m[32m return IUP_CLOSE;[m +[32m+[m[32m return IUP_DEFAULT;[m +[32m+[m[32m}[m +[32m+[m + int IupLoopStep(void)[m + {[m + if (gtk_main_iteration_do(FALSE))[m +[1mdiff --git a/iup/src/gtk/iupgtk_menu.c b/iup/src/gtk/iupgtk_menu.c[m +[1mindex c12fbea..772f4cf 100755[m +[1m--- a/iup/src/gtk/iupgtk_menu.c[m +[1m+++ b/iup/src/gtk/iupgtk_menu.c[m +[36m@@ -245,11 +245,19 @@[m [mstatic int gtkMenuMapMethod(Ihandle* ih)[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mstatic void gtkMenuUnMapMethod(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m if (iupMenuIsMenuBar(ih))[m +[32m+[m[32m ih->parent = NULL;[m +[32m+[m +[32m+[m[32m iupdrvBaseUnMapMethod(ih);[m +[32m+[m[32m}[m +[32m+[m + void iupdrvMenuInitClass(Iclass* ic)[m + {[m + /* Driver Dependent Class functions */[m + ic->Map = gtkMenuMapMethod;[m +[31m- ic->UnMap = iupdrvBaseUnMapMethod;[m +[32m+[m[32m ic->UnMap = gtkMenuUnMapMethod;[m + [m + /* Used by iupdrvMenuGetMenuBarSize */[m + iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, NULL, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_DEFAULT); /* use inheritance to retrieve standard fonts */[m +[36m@@ -337,15 +345,10 @@[m [mstatic int gtkItemSetValueAttrib(Ihandle* ih, const char* value)[m + [m + static char* gtkItemGetValueAttrib(Ihandle* ih)[m + {[m +[31m- if (GTK_IS_CHECK_MENU_ITEM(ih->handle))[m +[31m- {[m +[31m- if (gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle))[m +[31m- return "ON";[m +[31m- else[m +[31m- return "OFF";[m +[31m- }[m +[32m+[m[32m if (GTK_IS_CHECK_MENU_ITEM(ih->handle) && gtk_check_menu_item_get_active((GtkCheckMenuItem*)ih->handle))[m +[32m+[m[32m return "ON";[m + else[m +[31m- return NULL;[m +[32m+[m[32m return "OFF";[m + }[m + [m + static int gtkItemMapMethod(Ihandle* ih)[m +[1mdiff --git a/iup/src/gtk/iupgtk_open.c b/iup/src/gtk/iupgtk_open.c[m +[1mindex 66e46e8..962f760 100755[m +[1m--- a/iup/src/gtk/iupgtk_open.c[m +[1m+++ b/iup/src/gtk/iupgtk_open.c[m +[36m@@ -20,7 +20,52 @@[m + [m + #include "iupgtk_drv.h"[m + [m +[32m+[m[32m#ifdef GTK_MAC[m +[32m+[m[32m#include <gdk/gdk.h>[m + [m +[32m+[m[32mchar* iupgtkGetNativeWindowHandle(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m GdkWindow* window = ih->handle->window;[m +[32m+[m[32m if (window)[m +[32m+[m[32m return (char*)window;[m +[32m+[m[32m else[m +[32m+[m[32m return NULL;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid* iupgtkGetNativeGraphicsContext(GtkWidget* widget)[m +[32m+[m[32m{[m +[32m+[m[32m return (void*)gdk_gc_new((GdkDrawable*)widget->window);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupgtkReleaseNativeGraphicsContext(GtkWidget* widget, void* gc)[m +[32m+[m[32m{[m +[32m+[m[32m g_object_unref(gc);[m +[32m+[m[32m (void)widget;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid* iupdrvGetDisplay(void)[m +[32m+[m[32m{[m +[32m+[m[32m GdkDisplay* display = gdk_display_get_default();[m +[32m+[m[32m return display;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupgtkPushVisualAndColormap(void* visual, void* colormap)[m +[32m+[m[32m{[m +[32m+[m[32m GdkColormap* gdk_colormap;[m +[32m+[m[32m GdkVisual *gdk_visual = gdk_visual_get_best();[m +[32m+[m +[32m+[m[32m gdk_colormap = gdk_colormap_new(gdk_visual, FALSE);[m +[32m+[m +[32m+[m[32m gtk_widget_push_colormap(gdk_colormap);[m +[32m+[m +[32m+[m[32m /* gtk_widget_push_visual is now deprecated */[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void gtkSetDrvGlobalAttrib(void)[m +[32m+[m[32m{[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32m#else[m + #ifdef WIN32 /******************************** WIN32 ************************************/[m + #include <gdk/gdkwin32.h>[m + [m +[36m@@ -115,6 +160,8 @@[m [mstatic void gtkSetDrvGlobalAttrib(void)[m + [m + #endif[m + [m +[32m+[m[32m#endif[m +[32m+[m + static void gtkSetGlobalColorAttrib(const char* name, GdkColor *color)[m + {[m + iupGlobalSetDefaultColorAttrib(name, (int)iupCOLOR16TO8(color->red), [m +[1mdiff --git a/iup/src/gtk/iupgtk_tabs.c b/iup/src/gtk/iupgtk_tabs.c[m +[1mindex 8029826..6b5aa66 100755[m +[1m--- a/iup/src/gtk/iupgtk_tabs.c[m +[1m+++ b/iup/src/gtk/iupgtk_tabs.c[m +[36m@@ -76,13 +76,13 @@[m [mstatic void gtkTabsUpdatePageBgColor(Ihandle* ih, unsigned char r, unsigned char[m + [m + for (child = ih->firstchild; child; child = child->brother)[m + {[m +[31m- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[31m- if (tab_page)[m +[32m+[m[32m GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m if (tab_container)[m + {[m + GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL");[m + if (tab_label)[m + iupgtkBaseSetBgColor(tab_label, r, g, b);[m +[31m- iupgtkBaseSetBgColor(tab_page, r, g, b);[m +[32m+[m[32m iupgtkBaseSetBgColor(tab_container, r, g, b);[m + }[m + }[m + }[m +[36m@@ -121,15 +121,18 @@[m [mstatic int gtkTabsSetPaddingAttrib(Ihandle* ih, const char* value)[m + iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');[m + [m + if (ih->handle)[m +[32m+[m[32m {[m + gtkTabsUpdatePagePadding(ih);[m +[31m- return 0;[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static void gtkTabsUpdateTabType(Ihandle* ih)[m + {[m +[31m- GtkNotebook* tab_page = (GtkNotebook*)ih->handle;[m + int iup2gtk[4] = {GTK_POS_TOP, GTK_POS_BOTTOM, GTK_POS_LEFT, GTK_POS_RIGHT};[m +[31m- gtk_notebook_set_tab_pos(tab_page, iup2gtk[ih->data->type]);[m +[32m+[m[32m gtk_notebook_set_tab_pos((GtkNotebook*)ih->handle, iup2gtk[ih->data->type]);[m + }[m + [m + static int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value)[m +[36m@@ -144,7 +147,7 @@[m [mstatic int gtkTabsSetTabTypeAttrib(Ihandle* ih, const char* value)[m + ih->data->type = ITABS_TOP;[m + [m + if (ih->handle)[m +[31m- gtkTabsUpdateTabType(ih);[m +[32m+[m[32m gtkTabsUpdateTabType(ih); /* for this to work must be updated in map */[m + [m + return 0;[m + }[m +[36m@@ -171,7 +174,7 @@[m [mstatic int gtkTabsSetTabTitleAttrib(Ihandle* ih, const char* name_id, const char[m + GtkWidget* tab_label = (GtkWidget*)iupAttribGet(child, "_IUPGTK_TABLABEL");[m + if (tab_label)[m + {[m +[31m- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE");[m + gtk_label_set_text((GtkLabel*)tab_label, iupgtkStrConvertToUTF8(value));[m + gtk_notebook_set_menu_label_text((GtkNotebook*)ih->handle, tab_page, gtk_label_get_text((GtkLabel*)tab_label));[m + }[m +[36m@@ -238,8 +241,10 @@[m [mvoid gtkTabSwitchPage(GtkNotebook* notebook, GtkNotebookPage *page, int pos, Iha[m + IFnnn cb;[m + Ihandle* child = IupGetChild(ih, pos);[m + Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih));[m +[31m- IupSetAttribute(child, "VISIBLE", "YES");[m +[31m- IupSetAttribute(prev_child, "VISIBLE", "NO");[m +[32m+[m[32m GtkWidget* tab_container = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m GtkWidget* prev_tab_container = (GtkWidget*)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m if (tab_container) gtk_widget_show(tab_container);[m +[32m+[m[32m if (prev_tab_container) gtk_widget_hide(prev_tab_container);[m + [m + if (iupAttribGet(ih, "_IUPGTK_IGNORE_CHANGE"))[m + return;[m +[36m@@ -263,7 +268,7 @@[m [mstatic void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + [m + if (ih->handle)[m + {[m +[31m- GtkWidget* tab_page;[m +[32m+[m[32m GtkWidget *tab_page, *tab_container;[m + GtkWidget *tab_label = NULL, *tab_image = NULL;[m + char *tabtitle, *tabimage;[m + int pos;[m +[36m@@ -271,9 +276,13 @@[m [mstatic void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + [m + pos = IupGetChildPos(ih, child);[m + [m +[31m- tab_page = gtk_fixed_new();[m +[32m+[m[32m tab_page = gtk_vbox_new(FALSE, 0);[m + gtk_widget_show(tab_page);[m + [m +[32m+[m[32m tab_container = gtk_fixed_new();[m +[32m+[m[32m gtk_widget_show(tab_container);[m +[32m+[m[32m gtk_container_add((GtkContainer*)tab_page, tab_container);[m +[32m+[m + tabtitle = iupAttribGet(child, "TABTITLE");[m + if (!tabtitle) tabtitle = iupTabsAttribGetStrId(ih, "TABTITLE", pos);[m + tabimage = iupAttribGet(child, "TABIMAGE");[m +[36m@@ -327,9 +336,10 @@[m [mstatic void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + [m + iupAttribSetStr(child, "_IUPGTK_TABIMAGE", (char*)tab_image); /* store it even if its NULL */[m + iupAttribSetStr(child, "_IUPGTK_TABLABEL", (char*)tab_label);[m +[31m- iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_page);[m +[32m+[m[32m iupAttribSetStr(child, "_IUPTAB_CONTAINER", (char*)tab_container);[m +[32m+[m[32m iupAttribSetStr(child, "_IUPTAB_PAGE", (char*)tab_page);[m + iupStrToRGB(IupGetAttribute(ih, "BGCOLOR"), &r, &g, &b);[m +[31m- iupgtkBaseSetBgColor(tab_page, r, g, b);[m +[32m+[m[32m iupgtkBaseSetBgColor(tab_container, r, g, b);[m + [m + if (tabtitle)[m + {[m +[36m@@ -354,10 +364,8 @@[m [mstatic void gtkTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + [m + iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", NULL);[m + [m +[31m- if (pos == iupdrvTabsGetCurrentTab(ih))[m +[31m- IupSetAttribute(child, "VISIBLE", "YES");[m +[31m- else[m +[31m- IupSetAttribute(child, "VISIBLE", "NO");[m +[32m+[m[32m if (pos != iupdrvTabsGetCurrentTab(ih))[m +[32m+[m[32m gtk_widget_hide(tab_container);[m + }[m + }[m + [m +[36m@@ -365,10 +373,11 @@[m [mstatic void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)[m + {[m + if (ih->handle)[m + {[m +[31m- GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m GtkWidget* tab_page = (GtkWidget*)iupAttribGet(child, "_IUPTAB_PAGE");[m + if (tab_page)[m + {[m + int pos = gtk_notebook_page_num((GtkNotebook*)ih->handle, tab_page);[m +[32m+[m[32m iupTabsTestRemoveTab(ih, pos);[m + [m + iupAttribSetStr(ih, "_IUPGTK_IGNORE_CHANGE", "1");[m + gtk_notebook_remove_page((GtkNotebook*)ih->handle, pos);[m +[36m@@ -377,6 +386,7 @@[m [mstatic void gtkTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)[m + iupAttribSetStr(child, "_IUPGTK_TABIMAGE", NULL);[m + iupAttribSetStr(child, "_IUPGTK_TABLABEL", NULL);[m + iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL);[m +[32m+[m[32m iupAttribSetStr(child, "_IUPTAB_PAGE", NULL);[m + }[m + }[m + }[m +[36m@@ -440,5 +450,5 @@[m [mvoid iupdrvTabsInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, gtkTabsSetTabOrientationAttrib, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TABTITLE", NULL, gtkTabsSetTabTitleAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, gtkTabsSetTabImageAttrib, IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, gtkTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/gtk/iupgtk_text.c b/iup/src/gtk/iupgtk_text.c[m +[1mindex 4c2906a..d0909d7 100755[m +[1m--- a/iup/src/gtk/iupgtk_text.c[m +[1m+++ b/iup/src/gtk/iupgtk_text.c[m +[36m@@ -101,7 +101,7 @@[m [mstatic void gtkTextParseParagraphFormat(Ihandle* formattag, GtkTextTag* tag)[m + align = PANGO_TAB_LEFT;[m + free(str);[m + [m +[31m- pango_tab_array_set_tab(tabs, i, align, IUPGTK_PIXELS2PANGOUNITS(pos));[m +[32m+[m[32m pango_tab_array_set_tab(tabs, i, align, iupGTK_PIXELS2PANGOUNITS(pos));[m + i++;[m + if (i == 32) break;[m + }[m +[36m@@ -171,7 +171,7 @@[m [mstatic void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag)[m + else [m + iupStrToInt(format, &val);[m + [m +[31m- val = IUPGTK_PIXELS2PANGOUNITS(val);[m +[32m+[m[32m val = iupGTK_PIXELS2PANGOUNITS(val);[m + g_object_set(G_OBJECT(tag), "rise", val, NULL);[m + }[m + [m +[36m@@ -214,7 +214,7 @@[m [mstatic void gtkTextParseCharacterFormat(Ihandle* formattag, GtkTextTag* tag)[m + {[m + if (val < 0) /* in pixels */[m + {[m +[31m- val = IUPGTK_PIXELS2PANGOUNITS(-val);[m +[32m+[m[32m val = iupGTK_PIXELS2PANGOUNITS(-val);[m + g_object_set(G_OBJECT(tag), "size", val, NULL);[m + }[m + else /* in points */[m +[36m@@ -387,8 +387,8 @@[m [mstatic int gtkTextConvertXYToPos(Ihandle* ih, int x, int y)[m + [m + /* transform to Layout coordinates */[m + gtk_entry_get_layout_offsets(GTK_ENTRY(ih->handle), &off_x, &off_y);[m +[31m- x = IUPGTK_PIXELS2PANGOUNITS(x - off_x); [m +[31m- y = IUPGTK_PIXELS2PANGOUNITS(y - off_y);[m +[32m+[m[32m x = iupGTK_PIXELS2PANGOUNITS(x - off_x);[m[41m [m +[32m+[m[32m y = iupGTK_PIXELS2PANGOUNITS(y - off_y);[m + [m + pango_layout_xy_to_index(gtk_entry_get_layout(GTK_ENTRY(ih->handle)), x, y, &pos, &trailing);[m + return pos;[m +[36m@@ -851,7 +851,7 @@[m [mstatic char* gtkTextGetValueAttrib(Ihandle* ih)[m + [m + static int gtkTextSetInsertAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (!value)[m + return 0;[m +[36m@@ -875,7 +875,8 @@[m [mstatic int gtkTextSetInsertAttrib(Ihandle* ih, const char* value)[m + [m + static int gtkTextSetAppendAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m gint pos;[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + /* disable callbacks */[m + iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", "1");[m +[36m@@ -884,13 +885,18 @@[m [mstatic int gtkTextSetAppendAttrib(Ihandle* ih, const char* value)[m + GtkTextIter iter;[m + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ih->handle));[m + gtk_text_buffer_get_end_iter(buffer, &iter);[m +[31m- if (ih->data->append_newline)[m +[32m+[m[32m pos = gtk_text_buffer_get_char_count(buffer);[m +[32m+[m[32m if (ih->data->append_newline && pos!=0)[m + gtk_text_buffer_insert(buffer, &iter, "\n", 1);[m + gtk_text_buffer_insert(buffer, &iter, iupgtkStrConvertToUTF8(value), -1);[m + }[m + else[m + {[m +[31m- gint pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1;[m +[32m+[m[32m#if GTK_CHECK_VERSION(2, 14, 0)[m +[32m+[m[32m pos = gtk_entry_get_text_length(GTK_ENTRY(ih->handle))+1;[m +[32m+[m[32m#else[m +[32m+[m[32m pos = strlen(gtk_entry_get_text(GTK_ENTRY(ih->handle)))+1;[m +[32m+[m[32m#endif[m + gtk_editable_insert_text(GTK_EDITABLE(ih->handle), iupgtkStrConvertToUTF8(value), -1, &pos);[m + }[m + iupAttribSetStr(ih, "_IUPGTK_DISABLE_TEXT_CB", NULL);[m +[36m@@ -946,8 +952,10 @@[m [mstatic int gtkTextSetPaddingAttrib(Ihandle* ih, const char* value)[m + gtk_entry_set_inner_border(GTK_ENTRY(ih->handle), &border);[m + #endif[m + }[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int gtkTextSetNCAttrib(Ihandle* ih, const char* value)[m +[36m@@ -955,10 +963,14 @@[m [mstatic int gtkTextSetNCAttrib(Ihandle* ih, const char* value)[m + if (!iupStrToInt(value, &ih->data->nc))[m + ih->data->nc = INT_MAX;[m + [m +[31m- if (!ih->data->is_multiline && ih->handle)[m +[31m- gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc);[m +[31m-[m +[31m- return 0;[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m {[m +[32m+[m[32m if (!ih->data->is_multiline)[m +[32m+[m[32m gtk_entry_set_max_length(GTK_ENTRY(ih->handle), ih->data->nc);[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int gtkTextSetClipboardAttrib(Ihandle *ih, const char *value)[m +[1mdiff --git a/iup/src/gtk/iupgtk_toggle.c b/iup/src/gtk/iupgtk_toggle.c[m +[1mindex 8ff7df5..040beda 100755[m +[1m--- a/iup/src/gtk/iupgtk_toggle.c[m +[1m+++ b/iup/src/gtk/iupgtk_toggle.c[m +[36m@@ -213,8 +213,10 @@[m [mstatic int gtkToggleSetPaddingAttrib(Ihandle* ih, const char* value)[m + GtkButton* button = (GtkButton*)ih->handle;[m + GtkMisc* misc = (GtkMisc*)gtk_button_get_image(button);[m + gtk_misc_set_padding(misc, ih->data->horiz_padding, ih->data->vert_padding);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int gtkToggleSetFgColorAttrib(Ihandle* ih, const char* value)[m +[1mdiff --git a/iup/src/gtk/iupgtk_tree.c b/iup/src/gtk/iupgtk_tree.c[m +[1mindex d408f27..9595ada 100755[m +[1m--- a/iup/src/gtk/iupgtk_tree.c[m +[1m+++ b/iup/src/gtk/iupgtk_tree.c[m +[36m@@ -31,33 +31,50 @@[m + #include "iup_drvinfo.h"[m + #include "iupgtk_drv.h"[m + [m +[32m+[m +[32m+[m[32m/* IMPORTANT:[m[41m [m +[32m+[m +[32m+[m[32m GtkTreeStore uses the "user_data" field of the GtkTreeIter[m[41m [m +[32m+[m[32m to store the node pointer that is position independent.[m +[32m+[m[32m So we use it as a reference to the node in the cache, just like in Motif and Windows.[m +[32m+[m +[32m+[m[32m BUT if GTK change its implementation this must be changed also. See "gtk_tree_store.c".[m +[32m+[m +[32m+[m[32m ABOUT SELECTIONS:[m +[32m+[m +[32m+[m[32m From the GTK documentation on GtkTreeSelection[m +[32m+[m +[32m+[m[32m "Additionally, you cannot change the selection of a row on the model[m[41m [m +[32m+[m[32m that is not currently displayed by the view without expanding its parents first."[m +[32m+[m[32m*/[m +[32m+[m + enum[m + {[m +[31m- IUPGTK_TREE_IMAGE,[m +[32m+[m[32m IUPGTK_TREE_IMAGE, /* "pixbuf", "pixbuf-expander-closed" */[m + IUPGTK_TREE_HAS_IMAGE,[m +[31m- IUPGTK_TREE_IMAGE_EXPANDED,[m +[32m+[m[32m IUPGTK_TREE_IMAGE_EXPANDED, /* "pixbuf-expander-open" */[m + IUPGTK_TREE_HAS_IMAGE_EXPANDED,[m +[31m- IUPGTK_TREE_TITLE,[m +[31m- IUPGTK_TREE_KIND,[m +[31m- IUPGTK_TREE_COLOR,[m +[31m- IUPGTK_TREE_FONT,[m +[31m- IUPGTK_TREE_USERDATA[m +[32m+[m[32m IUPGTK_TREE_TITLE, /* "text" */[m +[32m+[m[32m IUPGTK_TREE_KIND, /* "is-expander" */[m +[32m+[m[32m IUPGTK_TREE_COLOR, /* "foreground-gdk" */[m +[32m+[m[32m IUPGTK_TREE_FONT, /* "font-desc" */[m +[32m+[m[32m IUPGTK_TREE_SELECT,[m +[32m+[m[32m IUPGTK_TREE_LAST_DATA /* used as a count */[m + };[m + [m +[31m-static GtkTreeIter gtkTreeInvalidIter = {0,0,0,0};[m +[32m+[m[32mstatic void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem);[m + [m + /*****************************************************************************/[m + /* COPYING ITEMS (Branches and its children) */[m + /*****************************************************************************/[m + /* Insert the copied item in a new location. Returns the new item. */[m +[31m-static void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem, int full_copy)[m +[32m+[m[32mstatic void gtkTreeCopyItem(Ihandle* ih, GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeIter* iterParent, int position, GtkTreeIter *iterNewItem)[m + {[m + GtkTreeStore* store = GTK_TREE_STORE(model);[m + int kind;[m + char* title;[m + gboolean has_image, has_image_expanded;[m + PangoFontDescription* font;[m +[31m- void* userdata;[m + GdkColor *color;[m + GdkPixbuf* image, *image_expanded;[m + [m +[36m@@ -69,9 +86,10 @@[m [mstatic void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI[m + IUPGTK_TREE_KIND, &kind,[m + IUPGTK_TREE_COLOR, &color, [m + IUPGTK_TREE_FONT, &font, [m +[31m- IUPGTK_TREE_USERDATA, &userdata,[m + -1);[m + [m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m ih->data->node_count++;[m + if (position == 2)[m + gtk_tree_store_append(store, iterNewItem, iterParent);[m + else if (position == 1) /* copy as first child of expanded branch */[m +[36m@@ -79,9 +97,6 @@[m [mstatic void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI[m + else /* copy as next brother of item or collapsed branch */[m + gtk_tree_store_insert_after(store, iterNewItem, NULL, iterParent); /* iterParent is sibling of the new item */[m + [m +[31m- if (full_copy) /* during a full copy the userdata reference is not copied */[m +[31m- userdata = NULL;[m +[31m-[m + gtk_tree_store_set(store, iterNewItem, IUPGTK_TREE_IMAGE, image,[m + IUPGTK_TREE_HAS_IMAGE, has_image,[m + IUPGTK_TREE_IMAGE_EXPANDED, image_expanded,[m +[36m@@ -90,21 +105,21 @@[m [mstatic void gtkTreeCopyItem(GtkTreeModel* model, GtkTreeIter* iterItem, GtkTreeI[m + IUPGTK_TREE_KIND, kind,[m + IUPGTK_TREE_COLOR, color, [m + IUPGTK_TREE_FONT, font,[m +[31m- IUPGTK_TREE_USERDATA, userdata,[m +[32m+[m[32m IUPGTK_TREE_SELECT, 0,[m + -1);[m + }[m + [m +[31m-static void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, int full_copy)[m +[32m+[m[32mstatic void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst)[m + {[m + GtkTreeIter iterChildSrc;[m + int hasItem = gtk_tree_model_iter_children(model, &iterChildSrc, iterItemSrc); /* get the firstchild */[m + while(hasItem)[m + {[m + GtkTreeIter iterNewItem;[m +[31m- gtkTreeCopyItem(model, &iterChildSrc, iterItemDst, 2, &iterNewItem, full_copy); /* append always */[m +[32m+[m[32m gtkTreeCopyItem(ih, model, &iterChildSrc, iterItemDst, 2, &iterNewItem); /* append always */[m + [m + /* Recursively transfer all the items */[m +[31m- gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem, full_copy); [m +[32m+[m[32m gtkTreeCopyChildren(ih, model, &iterChildSrc, &iterNewItem);[m[41m [m + [m + /* Go to next sibling item */[m + hasItem = gtk_tree_model_iter_next(model, &iterChildSrc);[m +[36m@@ -112,9 +127,17 @@[m [mstatic void gtkTreeCopyChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *i[m + }[m + [m + /* Copies all items in a branch to a new location. Returns the new branch node. */[m +[31m-static void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int full_copy)[m +[32m+[m[32mstatic void gtkTreeCopyMoveNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItemSrc, GtkTreeIter *iterItemDst, GtkTreeIter* iterNewItem, int is_copy)[m + {[m + int kind, position = 0; /* insert after iterItemDst */[m +[32m+[m[32m int id_new, count, id_src, id_dst;[m +[32m+[m +[32m+[m[32m int old_count = ih->data->node_count;[m +[32m+[m +[32m+[m[32m id_src = iupTreeFindNodeId(ih, iterItemSrc);[m +[32m+[m[32m id_dst = iupTreeFindNodeId(ih, iterItemDst);[m +[32m+[m[32m id_new = id_dst+1; /* contains the position for a copy operation */[m +[32m+[m + gtk_tree_model_get(model, iterItemDst, IUPGTK_TREE_KIND, &kind, -1);[m + [m + if (kind == ITREE_BRANCH)[m +[36m@@ -122,346 +145,311 @@[m [mstatic void gtkTreeCopyNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterI[m + GtkTreePath* path = gtk_tree_model_get_path(model, iterItemDst);[m + if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))[m + position = 1; /* insert as first child of iterItemDst */[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m int child_count = iupdrvTreeTotalChildCount(ih, iterItemDst);[m +[32m+[m[32m id_new += child_count;[m +[32m+[m[32m }[m + gtk_tree_path_free(path);[m + }[m + [m +[31m- gtkTreeCopyItem(model, iterItemSrc, iterItemDst, position, iterNewItem, full_copy); [m +[32m+[m[32m /* move to the same place does nothing */[m +[32m+[m[32m if (!is_copy && id_new == id_src)[m +[32m+[m[32m {[m +[32m+[m[32m iterNewItem->stamp = 0;[m +[32m+[m[32m return;[m +[32m+[m[32m }[m + [m +[31m- gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem, full_copy);[m +[31m-}[m +[32m+[m[32m gtkTreeCopyItem(ih, model, iterItemSrc, iterItemDst, position, iterNewItem);[m[41m [m + [m +[31m-/*****************************************************************************/[m +[31m-/* FINDING ITEMS */[m +[31m-/*****************************************************************************/[m +[32m+[m[32m gtkTreeCopyChildren(ih, model, iterItemSrc, iterNewItem);[m + [m +[31m-static void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter* iterItem)[m +[31m-{[m +[31m- GtkTreeIter iterChild;[m +[31m- int hasItem = TRUE;[m +[32m+[m[32m count = ih->data->node_count - old_count;[m +[32m+[m[32m iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);[m + [m +[31m- while(hasItem)[m +[32m+[m[32m if (!is_copy)[m + {[m +[31m- if(gtk_tree_selection_iter_is_selected(selection, iterItem))[m +[31m- gtk_tree_selection_unselect_iter(selection, iterItem);[m +[31m- else[m +[31m- gtk_tree_selection_select_iter(selection, iterItem);[m +[32m+[m[32m /* Deleting the node of its old position */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m gtk_tree_store_remove(GTK_TREE_STORE(model), iterItemSrc);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m +[31m- /* Check whether we have child items */[m +[31m- if(gtk_tree_model_iter_has_child(model, iterItem))[m +[31m- {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */[m +[31m- gtkTreeInvertAllNodeMarking(ih, model, selection, &iterChild);[m +[31m- }[m +[32m+[m[32m /* restore count, because we remove src */[m +[32m+[m[32m ih->data->node_count = old_count;[m + [m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, iterItem);[m +[32m+[m[32m /* compensate position for a move */[m +[32m+[m[32m if (id_new > id_src)[m +[32m+[m[32m id_new -= count;[m + }[m +[32m+[m +[32m+[m[32m gtkTreeRebuildNodeCache(ih, id_new, *iterNewItem);[m + }[m + [m +[31m-static GtkTreeIter gtkTreeFindVisibleNodeId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode)[m +[32m+[m[32m/*****************************************************************************/[m +[32m+[m[32m/* FINDING ITEMS */[m +[32m+[m[32m/*****************************************************************************/[m +[32m+[m +[32m+[m[32mstatic void gtkTreeIterInit(Ihandle* ih, GtkTreeIter* iterItem, InodeHandle* node_handle)[m + {[m +[31m- GtkTreeIter iterChild;[m +[31m- GtkTreePath* path;[m +[31m- int hasItem = TRUE;[m +[32m+[m[32m iterItem->stamp = ih->data->stamp;[m +[32m+[m[32m iterItem->user_data = node_handle;[m +[32m+[m[32m iterItem->user_data2 = NULL;[m +[32m+[m[32m iterItem->user_data3 = NULL;[m +[32m+[m[32m}[m + [m +[31m- while(hasItem)[m +[31m- {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++; /* not the real id since it counts only the visible ones */[m +[32m+[m[32mstatic int gtkTreeIsNodeSelected(GtkTreeModel* model, GtkTreeIter *iterItem)[m +[32m+[m[32m{[m +[32m+[m[32m gboolean selected = 0;[m +[32m+[m[32m gtk_tree_model_get(model, iterItem, IUPGTK_TREE_SELECT, &selected, -1);[m +[32m+[m[32m return selected;[m +[32m+[m[32m}[m + [m +[31m- /* StateID founded! */[m +[31m- if(iterItem.user_data == iterNode.user_data)[m +[31m- return iterItem;[m +[32m+[m[32mstatic void gtkTreeSelectNodeRaw(GtkTreeModel* model, GtkTreeIter *iterItem, int select)[m +[32m+[m[32m{[m +[32m+[m[32m /* Cannot change the selection of a row on the model that is not currently displayed.[m[41m [m +[32m+[m[32m So we store the selection state here. And update the actual state when the node becames visible. */[m +[32m+[m[32m gtk_tree_store_set(GTK_TREE_STORE(model), iterItem, IUPGTK_TREE_SELECT, select, -1);[m +[32m+[m[32m}[m + [m +[31m- path = gtk_tree_model_get_path(model, &iterItem);[m +[32m+[m[32mstatic void gtkTreeSelectNode(GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem, int select)[m +[32m+[m[32m{[m +[32m+[m[32m if (select == -1)[m +[32m+[m[32m select = !gtkTreeIsNodeSelected(model, iterItem); /* toggle */[m + [m +[31m- /* Check whether we have child items and it is expanded (visible) */[m +[31m- if (gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))[m +[31m- {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */[m +[31m- iterChild = gtkTreeFindVisibleNodeId(ih, model, iterChild, iterNode);[m +[32m+[m[32m gtkTreeSelectNodeRaw(model, iterItem, select);[m + [m +[31m- /* StateID founded! */[m +[31m- if(iterChild.user_data)[m +[31m- {[m +[31m- gtk_tree_path_free(path);[m +[31m- return iterChild;[m +[31m- }[m +[31m- }[m +[32m+[m[32m if (select)[m +[32m+[m[32m gtk_tree_selection_select_iter(selection, iterItem);[m +[32m+[m[32m else[m +[32m+[m[32m gtk_tree_selection_unselect_iter(selection, iterItem);[m +[32m+[m[32m}[m + [m +[31m- gtk_tree_path_free(path);[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterItem);[m +[32m+[m[32mstatic void gtkTreeSelectAll(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, int selected)[m +[32m+[m[32m{[m +[32m+[m[32m int i;[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m gtkTreeSelectNodeRaw(model, &iterItem, selected);[m + }[m + [m +[31m- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */[m +[32m+[m[32m if (selected)[m +[32m+[m[32m gtk_tree_selection_select_all(selection);[m +[32m+[m[32m else[m +[32m+[m[32m gtk_tree_selection_unselect_all(selection);[m + }[m + [m +[31m-static GtkTreeIter gtkTreeFindVisibleNodeFromId(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem)[m +[32m+[m[32mstatic void gtkTreeInvertAllNodeMarking(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection)[m + {[m +[31m- GtkTreeIter iterChild;[m +[31m- GtkTreePath* path;[m +[31m- int hasItem = TRUE;[m +[32m+[m[32m int i;[m +[32m+[m[32m GtkTreeIter iterItem;[m + [m +[31m- while(hasItem)[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control--; /* not the real id since it counts only the visible ones */[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, -1);[m +[32m+[m[32m }[m +[32m+[m[32m}[m + [m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- return iterItem;[m +[32m+[m[32mstatic void gtkTreeSelectRange(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem1, GtkTreeIter *iterItem2, int clear)[m +[32m+[m[32m{[m +[32m+[m[32m int i;[m +[32m+[m[32m int id1 = iupTreeFindNodeId(ih, iterItem1->user_data);[m +[32m+[m[32m int id2 = iupTreeFindNodeId(ih, iterItem2->user_data);[m +[32m+[m[32m GtkTreeIter iterItem;[m + [m +[31m- path = gtk_tree_model_get_path(model, &iterItem);[m +[32m+[m[32m if (id1 > id2)[m +[32m+[m[32m {[m +[32m+[m[32m int tmp = id1;[m +[32m+[m[32m id1 = id2;[m +[32m+[m[32m id2 = tmp;[m +[32m+[m[32m }[m + [m +[31m- /* Check whether we have child items and it is expanded (visible) */[m +[31m- if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m if (i < id1 || i > id2)[m + {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */[m +[31m- iterChild = gtkTreeFindVisibleNodeFromId(ih, model, iterChild);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- {[m +[31m- gtk_tree_path_free(path);[m +[31m- return iterChild;[m +[31m- }[m +[32m+[m[32m if (clear)[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 0);[m + }[m +[31m-[m +[31m- gtk_tree_path_free(path);[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterItem);[m +[32m+[m[32m else[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 1);[m + }[m +[31m-[m +[31m- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */[m + }[m + [m +[31m-static GtkTreeIter gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem)[m +[32m+[m[32mstatic int gtkTreeIsNodeVisible(Ihandle* ih, GtkTreeModel* model, InodeHandle* node_handle, InodeHandle* *nodeLastParent)[m + {[m +[31m- GtkTreeIter iterChild, iterPrev = gtkTreeInvalidIter;[m +[31m- GtkTreePath* path = gtk_tree_model_get_path(model, &iterItem);[m +[31m-[m +[31m- /* Check whether we have child items and it is expanded (visible) */[m +[31m- if(gtk_tree_model_iter_has_child(model, &iterItem) && gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))[m +[31m- {[m +[31m- int hasItem = TRUE;[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */[m +[32m+[m[32m GtkTreeIter iterItem, iterParent;[m +[32m+[m[32m GtkTreePath* path;[m +[32m+[m[32m int is_visible;[m + [m +[31m- while(hasItem)[m +[31m- {[m +[31m- iterPrev = iterChild;[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, node_handle);[m + [m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterChild);[m +[31m- }[m +[32m+[m[32m if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem) ||[m +[32m+[m[32m iterParent.user_data == *nodeLastParent)[m +[32m+[m[32m return 1;[m + [m +[31m- iterItem = gtkTreeGetLastVisibleNode(ih, model, iterPrev);[m +[31m- }[m +[32m+[m[32m path = gtk_tree_model_get_path(model, &iterParent);[m +[32m+[m[32m is_visible = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);[m + gtk_tree_path_free(path);[m + [m +[31m- return iterItem;[m +[32m+[m[32m if (!is_visible)[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m /* save last parent */[m +[32m+[m[32m *nodeLastParent = iterParent.user_data;[m +[32m+[m[32m return 1;[m + }[m + [m +[31m-static GtkTreeIter gtkTreeFindNodeID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, GtkTreeIter iterNode)[m +[32m+[m[32mstatic void gtkTreeGetLastVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem)[m + {[m +[31m- GtkTreeIter iterChild;[m +[31m- int hasItem = TRUE;[m +[32m+[m[32m int i;[m +[32m+[m[32m InodeHandle* nodeLastParent = NULL;[m + [m +[31m- while(hasItem)[m +[32m+[m[32m for (i = ih->data->node_count-1; i >= 0; i--)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if (iterItem.user_data == iterNode.user_data)[m +[31m- return iterItem;[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- if (gtk_tree_model_iter_has_child(model, &iterItem))[m +[32m+[m[32m if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))[m + {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */[m +[31m- iterChild = gtkTreeFindNodeID(ih, model, iterChild, iterNode);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(iterChild.user_data)[m +[31m- return iterChild;[m +[32m+[m[32m gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m return;[m + }[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterItem);[m + }[m + [m +[31m- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */[m +[32m+[m[32m gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */[m + }[m + [m +[31m-static int gtkTreeGetNodeId(Ihandle* ih, GtkTreeIter iterItem)[m +[32m+[m[32mstatic void gtkTreeGetNextVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count)[m + {[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterRoot;[m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m +[31m- ih->data->id_control = -1;[m +[31m- iterItem = gtkTreeFindNodeID(ih, model, iterRoot, iterItem);[m +[31m- if (iterItem.user_data)[m +[31m- return ih->data->id_control;[m +[31m- else[m +[31m- return -1;[m +[31m-}[m +[32m+[m[32m int i, id;[m +[32m+[m[32m InodeHandle* nodeLastParent = NULL;[m + [m +[31m-static GtkTreeIter gtkTreeFindUserData(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, void* userdata)[m +[31m-{[m +[31m- GtkTreeIter iterChild;[m +[31m- int hasItem = TRUE;[m +[31m- void* node_userdata;[m +[32m+[m[32m id = iupTreeFindNodeId(ih, iterItem->user_data);[m +[32m+[m[32m id += count;[m + [m +[31m- while(hasItem)[m +[32m+[m[32m for (i = id; i < ih->data->node_count; i++)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[32m+[m[32m if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m return;[m +[32m+[m[32m }[m +[32m+[m[32m }[m + [m +[31m- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1);[m +[32m+[m[32m gtkTreeIterInit(ih, iterItem, ih->data->node_cache[0].node_handle); /* root is always visible */[m +[32m+[m[32m}[m + [m +[31m- /* userdata founded! */[m +[31m- if (node_userdata == userdata)[m +[31m- return iterItem;[m +[32m+[m[32mstatic void gtkTreeGetPreviousVisibleNode(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int count)[m +[32m+[m[32m{[m +[32m+[m[32m int i, id;[m +[32m+[m[32m InodeHandle* nodeLastParent = NULL;[m + [m +[31m- /* Check whether we have child items */[m +[31m- if (gtk_tree_model_iter_has_child(model, &iterItem))[m +[31m- {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */[m +[31m- iterChild = gtkTreeFindUserData(ih, model, iterChild, userdata);[m +[32m+[m[32m id = iupTreeFindNodeId(ih, iterItem->user_data);[m +[32m+[m[32m id -= count;[m + [m +[31m- /* userdata founded! */[m +[31m- if (iterChild.user_data)[m +[31m- return iterChild;[m +[32m+[m[32m for (i = id; i >= 0; i--)[m +[32m+[m[32m {[m +[32m+[m[32m if (gtkTreeIsNodeVisible(ih, model, ih->data->node_cache[i].node_handle, &nodeLastParent))[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m return;[m + }[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterItem);[m + }[m + [m +[31m- return gtkTreeInvalidIter; /* invalid since gtk_tree_model_iter_next returned false */[m +[32m+[m[32m gtkTreeGetLastVisibleNode(ih, model, iterItem);[m + }[m + [m +[31m-static int gtkTreeGetUserDataId(Ihandle* ih, GtkTreeModel* model, void* userdata)[m +[32m+[m[32mstatic int gtkTreeFindNodeId(Ihandle* ih, GtkTreeIter* iterItem)[m + {[m +[31m- GtkTreeIter iterRoot, iterItem;[m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m +[31m- ih->data->id_control = -1;[m +[31m- iterItem = gtkTreeFindUserData(ih, model, iterRoot, userdata);[m +[31m- if (iterItem.user_data)[m +[31m- return ih->data->id_control;[m +[31m- else[m +[31m- return -1;[m +[32m+[m[32m return iupTreeFindNodeId(ih, iterItem->user_data);[m + }[m + [m +[31m-static void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, IFnis cb)[m +[32m+[m[32mstatic void gtkTreeCallNodeRemovedRec(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, IFns cb, int *id)[m + {[m + GtkTreeIter iterChild;[m +[31m- int hasItem = TRUE;[m +[31m- void* node_userdata;[m +[32m+[m[32m int hasItem;[m +[32m+[m[32m int old_id = *id;[m + [m +[32m+[m[32m /* Check whether we have child items */[m +[32m+[m[32m /* remove from children first */[m +[32m+[m[32m hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */[m + while(hasItem)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[31m-[m +[31m- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &node_userdata, -1);[m +[31m-[m +[31m- cb(ih, ih->data->id_control, (char*)node_userdata);[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- if (gtk_tree_model_iter_has_child(model, &iterItem))[m +[31m- {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem); /* get the firstchild */[m +[31m- gtkTreeCallNodeRemovedRec(ih, model, iterChild, cb);[m +[31m- }[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m gtkTreeCallNodeRemovedRec(ih, model, &iterChild, cb, id);[m + [m + /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterItem);[m +[32m+[m[32m hasItem = gtk_tree_model_iter_next(model, &iterChild);[m + }[m +[32m+[m +[32m+[m[32m /* actually do it for the node */[m +[32m+[m[32m ih->data->node_count--;[m +[32m+[m[32m (*id)++;[m +[32m+[m +[32m+[m[32m cb(ih, (char*)ih->data->node_cache[old_id].userdata);[m + }[m + [m + static void gtkTreeCallNodeRemoved(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem)[m + {[m +[31m- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");[m +[32m+[m[32m int old_count = ih->data->node_count;[m +[32m+[m[32m int id = iupTreeFindNodeId(ih, iterItem->user_data);[m +[32m+[m[32m int old_id = id;[m +[32m+[m +[32m+[m[32m IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB");[m + if (cb) [m +[32m+[m[32m gtkTreeCallNodeRemovedRec(ih, model, iterItem, cb, &id);[m +[32m+[m[32m else[m + {[m +[31m- ih->data->id_control = gtkTreeGetNodeId(ih, *iterItem)-1;[m +[31m- gtkTreeCallNodeRemovedRec(ih, model, *iterItem, cb);[m +[32m+[m[32m int removed_count = iupdrvTreeTotalChildCount(ih, iterItem->user_data)+1;[m +[32m+[m[32m ih->data->node_count -= removed_count;[m + }[m +[32m+[m +[32m+[m[32m iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);[m + }[m + [m +[31m-static gboolean gtkTreeFindNodeFromID(Ihandle* ih, GtkTreeModel* model, GtkTreeIter *iterItem, int *id)[m +[32m+[m[32mstatic void gtkTreeCallNodeRemovedAll(Ihandle* ih)[m + {[m +[31m- GtkTreeIter iterChild;[m +[31m- int hasItem = TRUE;[m +[32m+[m[32m IFns cb = (IFns)IupGetCallback(ih, "NODEREMOVED_CB");[m +[32m+[m[32m int i, old_count = ih->data->node_count;[m + [m +[31m- while(hasItem)[m +[32m+[m[32m if (cb)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- (*id)--;[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if (*id < 0)[m +[31m- return TRUE;[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- if (gtk_tree_model_iter_has_child(model, iterItem))[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */[m +[31m- [m +[31m- if (gtkTreeFindNodeFromID(ih, model, &iterChild, id))[m +[31m- {[m +[31m- *iterItem = iterChild;[m +[31m- return TRUE;[m +[31m- }[m +[32m+[m[32m cb(ih, (char*)ih->data->node_cache[i].userdata);[m + }[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, iterItem);[m + }[m + [m +[31m- return FALSE;[m +[32m+[m[32m ih->data->node_count = 0;[m +[32m+[m +[32m+[m[32m iupTreeDelFromCache(ih, 0, old_count);[m + }[m + [m +[31m-static gboolean gtkTreeFindNodeFromString(Ihandle* ih, GtkTreeModel* model, const char* name_id, GtkTreeIter *iterItem)[m +[32m+[m[32mstatic gboolean gtkTreeFindNodeFromString(Ihandle* ih, const char* name_id, GtkTreeIter *iterItem)[m + {[m +[31m- if (name_id[0])[m +[31m- {[m +[31m- int id;[m +[31m- if (iupStrToInt(name_id, &id))[m +[31m- {[m +[31m- gtk_tree_model_get_iter_first(model, iterItem);[m +[31m- return gtkTreeFindNodeFromID(ih, model, iterItem, &id);[m +[31m- }[m +[31m- }[m +[31m- else[m +[31m- {[m +[31m- GtkTreePath* path = NULL;[m +[31m- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);[m +[31m- if (path)[m +[31m- {[m +[31m- gtk_tree_model_get_iter(model, iterItem, path);[m +[31m- gtk_tree_path_free(path);[m +[31m- return TRUE;[m +[31m- }[m +[31m- }[m +[31m- return FALSE;[m +[32m+[m[32m InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m if (!node_handle)[m +[32m+[m[32m return FALSE;[m +[32m+[m +[32m+[m[32m gtkTreeIterInit(ih, iterItem, node_handle);[m +[32m+[m[32m return TRUE;[m + }[m + [m + /*****************************************************************************/[m + /* MANIPULATING IMAGES */[m + /*****************************************************************************/[m +[31m-static void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter iterItem, int mode)[m +[32m+[m[32mstatic void gtkTreeUpdateImages(Ihandle* ih, int mode)[m + {[m +[31m- GtkTreeIter iterChild;[m +[31m- int hasItem = TRUE;[m +[31m- int kind;[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m int i, kind;[m + [m +[31m- while(hasItem)[m +[32m+[m[32m for (i=0; i<ih->data->node_count; i++)[m + {[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);[m + [m + if (kind == ITREE_BRANCH)[m +[36m@@ -480,14 +468,6 @@[m [mstatic void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it[m + if (!has_image)[m + gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed, -1);[m + }[m +[31m-[m +[31m- if (gtk_tree_model_iter_has_child(model, &iterItem))[m +[31m- {[m +[31m-[m +[31m- /* Recursively traverse child items */[m +[31m- gtk_tree_model_iter_children(model, &iterChild, &iterItem);[m +[31m- gtkTreeUpdateImages(ih, model, iterChild, mode);[m +[31m- }[m + }[m + else [m + {[m +[36m@@ -499,9 +479,6 @@[m [mstatic void gtkTreeUpdateImages(Ihandle* ih, GtkTreeModel* model, GtkTreeIter it[m + gtk_tree_store_set(GTK_TREE_STORE(model), &iterItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1);[m + }[m + }[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterItem);[m + }[m + }[m + [m +[36m@@ -536,26 +513,49 @@[m [mvoid iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t[m + GtkTreeIter iterPrev, iterNewItem, iterParent;[m + GtkTreePath* path;[m + GdkColor color = {0L,0,0,0};[m +[31m- int kindPrev;[m +[31m-[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterPrev))[m +[31m- return;[m +[32m+[m[32m int kindPrev = -1;[m + [m +[31m- gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1);[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterPrev))[m +[32m+[m[32m {[m +[32m+[m[32m /* check if the root was really specified */[m +[32m+[m[32m int id = 0;[m +[32m+[m[32m if (!iupStrToInt(name_id, &id) || id != -1)[m +[32m+[m[32m return;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m gtk_tree_model_get(GTK_TREE_MODEL(store), &iterPrev, IUPGTK_TREE_KIND, &kindPrev, -1);[m + [m +[31m- if (kindPrev == ITREE_BRANCH && add)[m +[31m- gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */[m +[32m+[m[32m if (kindPrev != -1)[m +[32m+[m[32m {[m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m if (kindPrev == ITREE_BRANCH && add)[m +[32m+[m[32m gtk_tree_store_insert(store, &iterNewItem, &iterPrev, 0); /* iterPrev is parent of the new item (firstchild of it) */[m +[32m+[m[32m else[m +[32m+[m[32m gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */[m +[32m+[m[32m iupTreeAddToCache(ih, add, kindPrev, iterPrev.user_data, iterNewItem.user_data);[m +[32m+[m[32m }[m + else[m +[31m- gtk_tree_store_insert_after(store, &iterNewItem, NULL, &iterPrev); /* iterPrev is sibling of the new item */[m +[32m+[m[32m {[m +[32m+[m[32m gtk_tree_store_append(store, &iterNewItem, NULL); /* root node */[m +[32m+[m[32m iupTreeAddToCache(ih, 0, 0, NULL, iterNewItem.user_data);[m +[32m+[m +[32m+[m[32m /* store the stamp for the tree */[m +[32m+[m[32m ih->data->stamp = iterNewItem.stamp;[m +[32m+[m[32m }[m + [m + iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color);[m + [m +[32m+[m[32m if (!title)[m +[32m+[m[32m title = "";[m +[32m+[m + /* set the attributes of the new node */[m + gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_HAS_IMAGE, FALSE,[m + IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE,[m + IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(title),[m + IUPGTK_TREE_KIND, kind,[m +[31m- IUPGTK_TREE_COLOR, &color, -1);[m +[32m+[m[32m IUPGTK_TREE_COLOR, &color,[m[41m [m +[32m+[m[32m IUPGTK_TREE_SELECT, 0,[m +[32m+[m[32m -1);[m + [m + if (kind == ITREE_LEAF)[m + gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_leaf, -1);[m +[36m@@ -563,56 +563,113 @@[m [mvoid iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t[m + gtk_tree_store_set(store, &iterNewItem, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed,[m + IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded, -1);[m + [m +[31m- if (kindPrev == ITREE_BRANCH && add)[m +[31m- iterParent = iterPrev;[m +[31m- else[m +[31m- gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem);[m +[32m+[m[32m if (kindPrev != -1)[m +[32m+[m[32m {[m +[32m+[m[32m if (kindPrev == ITREE_BRANCH && add)[m +[32m+[m[32m iterParent = iterPrev;[m +[32m+[m[32m else if (!gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &iterParent, &iterNewItem))[m +[32m+[m[32m return;[m + [m +[31m- /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */[m +[31m- if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1)[m +[32m+[m[32m /* If this is the first child of the parent, then handle the ADDEXPANDED attribute */[m +[32m+[m[32m if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), &iterParent) == 1)[m +[32m+[m[32m {[m +[32m+[m[32m path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");[m +[32m+[m[32m if (ih->data->add_expanded)[m +[32m+[m[32m gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE);[m +[32m+[m[32m else[m +[32m+[m[32m gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);[m +[32m+[m[32m gtk_tree_path_free(path);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m else[m + {[m +[31m- int depth;[m +[31m- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterParent);[m +[31m- depth = gtk_tree_path_get_depth(path)-1;[m +[31m- if (ih->data->add_expanded || depth==0) /* if this is the first child of the root, expand always */[m +[32m+[m[32m if (ih->data->node_count == 1)[m + {[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", "1");[m +[31m- gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), path, FALSE);[m +[32m+[m[32m /* MarkStart node */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterNewItem.user_data);[m +[32m+[m +[32m+[m[32m /* Set the default VALUE */[m +[32m+[m[32m path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterNewItem);[m +[32m+[m[32m gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE);[m +[32m+[m[32m gtk_tree_path_free(path);[m + }[m +[31m- else[m +[31m- gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);[m +[31m- gtk_tree_path_free(path);[m + }[m + }[m + [m +[31m-static void gtkTreeAddRootNode(Ihandle* ih)[m +[32m+[m +[32m+[m[32m/*****************************************************************************/[m +[32m+[m[32m/* AUXILIAR FUNCTIONS */[m +[32m+[m[32m/*****************************************************************************/[m +[32m+[m +[32m+[m +[32m+[m[32mstatic void gtkTreeChildRebuildCacheRec(Ihandle* ih, GtkTreeModel *model, GtkTreeIter *iterItem, int *id)[m + {[m +[31m- GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m +[31m- GtkTreePath* path;[m +[31m- GtkTreeIter iterRoot;[m +[31m- GdkColor color = {0L,0,0,0};[m +[32m+[m[32m GtkTreeIter iterChild;[m +[32m+[m[32m int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */[m +[32m+[m[32m while(hasItem)[m +[32m+[m[32m {[m +[32m+[m[32m (*id)++;[m +[32m+[m[32m ih->data->node_cache[*id].node_handle = iterChild.user_data;[m + [m +[31m- iupgtkGetColor(iupAttribGetStr(ih, "FGCOLOR"), &color);[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m gtkTreeChildRebuildCacheRec(ih, model, &iterChild, id);[m +[32m+[m +[32m+[m[32m /* Go to next sibling item */[m +[32m+[m[32m hasItem = gtk_tree_model_iter_next(model, &iterChild);[m +[32m+[m[32m }[m +[32m+[m[32m}[m + [m +[31m- gtk_tree_store_append(store, &iterRoot, NULL); /* root node */[m +[31m- gtk_tree_store_set(store, &iterRoot, IUPGTK_TREE_IMAGE, ih->data->def_image_collapsed,[m +[31m- IUPGTK_TREE_HAS_IMAGE, FALSE,[m +[31m- IUPGTK_TREE_IMAGE_EXPANDED, ih->data->def_image_expanded,[m +[31m- IUPGTK_TREE_HAS_IMAGE_EXPANDED, FALSE,[m +[31m- IUPGTK_TREE_KIND, ITREE_BRANCH,[m +[31m- IUPGTK_TREE_COLOR, &color, -1);[m +[32m+[m[32mstatic void gtkTreeRebuildNodeCache(Ihandle* ih, int id, GtkTreeIter iterItem)[m +[32m+[m[32m{[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m ih->data->node_cache[id].node_handle = iterItem.user_data;[m +[32m+[m[32m gtkTreeChildRebuildCacheRec(ih, model, &iterItem, &id);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void gtkTreeChildCountRec(GtkTreeModel *model, GtkTreeIter *iterItem, int *count)[m +[32m+[m[32m{[m +[32m+[m[32m GtkTreeIter iterChild;[m +[32m+[m[32m int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */[m +[32m+[m[32m while(hasItem)[m +[32m+[m[32m {[m +[32m+[m[32m (*count)++;[m + [m +[31m- path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterRoot);[m +[31m- /* MarkStart node */[m +[31m- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)path);[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m gtkTreeChildCountRec(model, &iterChild, count);[m + [m +[31m- /* Set the default VALUE */[m +[31m- gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE);[m +[32m+[m[32m /* Go to next sibling item */[m +[32m+[m[32m hasItem = gtk_tree_model_iter_next(model, &iterChild);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mint iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle)[m +[32m+[m[32m{[m +[32m+[m[32m int count = 0;[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, node_handle);[m +[32m+[m[32m gtkTreeChildCountRec(model, &iterItem, &count);[m +[32m+[m[32m return count;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mInodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m GtkTreePath* path = NULL;[m +[32m+[m[32m gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);[m +[32m+[m[32m if (path)[m +[32m+[m[32m {[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem, path);[m +[32m+[m[32m gtk_tree_path_free(path);[m +[32m+[m[32m return iterItem.user_data;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return NULL;[m + }[m + [m +[31m-/*****************************************************************************/[m +[31m-/* AUXILIAR FUNCTIONS */[m +[31m-/*****************************************************************************/[m + static void gtkTreeOpenCloseEvent(Ihandle* ih)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[36m@@ -620,7 +677,7 @@[m [mstatic void gtkTreeOpenCloseEvent(Ihandle* ih)[m + GtkTreePath* path;[m + int kind;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, "", &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, "", &iterItem))[m + return;[m + [m + path = gtk_tree_model_get_path(model, &iterItem);[m +[36m@@ -637,27 +694,22 @@[m [mstatic void gtkTreeOpenCloseEvent(Ihandle* ih)[m + }[m + }[m + [m +[31m-static gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list)[m +[32m+[m[32mtypedef struct _gtkTreeSelectMinMax[m + {[m +[31m- GtkTreeRowReference *rowref;[m +[31m-[m +[31m- rowref = gtk_tree_row_reference_new(model, path);[m +[31m- *rowref_list = g_list_append(*rowref_list, rowref);[m +[32m+[m[32m Ihandle* ih;[m +[32m+[m[32m int id1, id2;[m +[32m+[m[32m} gtkTreeSelectMinMax;[m + [m +[31m- (void)iter;[m +[31m- return FALSE; /* do not stop walking the store, call us with next row */[m +[31m-}[m +[31m-[m +[31m-static gboolean gtkTreeSelected_Iter_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GList **rowref_list)[m +[32m+[m[32mstatic gboolean gtkTreeSelected_Foreach_Func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iterItem, gtkTreeSelectMinMax *minmax)[m + {[m +[31m- GtkTreeRowReference *rowref;[m +[31m- GtkTreeIter iterParent;[m +[31m- if (!gtk_tree_model_iter_parent(model, &iterParent, iter)) /* the root node can't be deleted */[m +[31m- return FALSE; /* do not stop walking the store, call us with next row */[m +[31m-[m +[31m- rowref = gtk_tree_row_reference_new(model, path);[m +[31m- *rowref_list = g_list_append(*rowref_list, rowref);[m +[32m+[m[32m int id = iupTreeFindNodeId(minmax->ih, iterItem->user_data);[m +[32m+[m[32m if (id < minmax->id1)[m +[32m+[m[32m minmax->id1 = id;[m +[32m+[m[32m if (id > minmax->id2)[m +[32m+[m[32m minmax->id2 = id;[m + [m +[32m+[m[32m (void)model;[m +[32m+[m[32m (void)path;[m + return FALSE; /* do not stop walking the store, call us with next row */[m + }[m + [m +[36m@@ -672,45 +724,48 @@[m [mstatic void gtkTreeCallMultiSelectionCb(Ihandle* ih)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterRoot;[m +[31m- GList *rr_list = NULL;[m +[31m- GList *node;[m +[31m- int* id_rowItem;[m +[31m- int count_selected_rows, i = 0;[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m int i = 0, countItems;[m +[32m+[m[32m gtkTreeSelectMinMax minmax;[m + [m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[32m+[m[32m minmax.ih = ih;[m +[32m+[m[32m minmax.id1 = ih->data->node_count;[m +[32m+[m[32m minmax.id2 = -1;[m + [m +[31m- gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &rr_list);[m +[31m- count_selected_rows = g_list_length(rr_list);[m +[31m- id_rowItem = malloc(sizeof(int) * count_selected_rows);[m +[32m+[m[32m gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Foreach_Func, &minmax);[m +[32m+[m[32m if (minmax.id2 == -1)[m +[32m+[m[32m return;[m + [m +[31m- for(node = rr_list; node != NULL; node = node->next)[m +[32m+[m[32m /* interactive selection of several nodes will NOT select hidden nodes,[m +[32m+[m[32m so make sure that they are selected. */[m +[32m+[m[32m for(i = minmax.id1; i <= minmax.id2; i++)[m + {[m +[31m- GtkTreePath* path = gtk_tree_row_reference_get_path(node->data);[m +[31m- if (path)[m +[31m- {[m +[31m- GtkTreeIter iterItem;[m +[31m- gtk_tree_model_get_iter(model, &iterItem, path);[m +[31m-[m +[31m- id_rowItem[i] = gtkTreeGetNodeId(ih, iterItem);[m +[31m- i++;[m +[31m-[m +[31m- gtk_tree_path_free(path);[m +[31m- }[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m if (!gtkTreeIsNodeSelected(model, &iterItem))[m +[32m+[m[32m gtkTreeSelectNodeRaw(model, &iterItem, 1);[m + }[m + [m +[31m- g_list_foreach(rr_list, (GFunc) gtk_tree_row_reference_free, NULL);[m +[31m- g_list_free(rr_list);[m +[32m+[m[32m /* if last selected item is a branch, then select its children */[m +[32m+[m[32m iupTreeSelectLastCollapsedBranch(ih, &(minmax.id2));[m +[32m+[m +[32m+[m[32m countItems = minmax.id2-minmax.id1+1;[m + [m + if (cbMulti)[m +[31m- cbMulti(ih, id_rowItem, count_selected_rows);[m +[31m- else[m + {[m +[31m- for (i=0; i<count_selected_rows; i++)[m +[31m- cbSelec(ih, id_rowItem[i], 1);[m +[31m- }[m +[32m+[m[32m int* id_rowItem = malloc(sizeof(int) * countItems);[m +[32m+[m +[32m+[m[32m for(i = 0; i < countItems; i++)[m +[32m+[m[32m id_rowItem[i] = minmax.id1+i;[m + [m +[31m- free(id_rowItem);[m +[32m+[m[32m cbMulti(ih, id_rowItem, countItems);[m +[32m+[m +[32m+[m[32m free(id_rowItem);[m +[32m+[m[32m }[m +[32m+[m[32m else if (cbSelec)[m +[32m+[m[32m {[m +[32m+[m[32m for (i=0; i<countItems; i++)[m +[32m+[m[32m cbSelec(ih, minmax.id1+i, 1);[m +[32m+[m[32m }[m + }[m + }[m + [m +[36m@@ -747,14 +802,22 @@[m [mstatic int gtkTreeSetTopItemAttrib(Ihandle* ih, const char* value)[m + GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m + GtkTreeIter iterItem;[m + GtkTreePath* path;[m +[32m+[m[32m int kind;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), value, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, value, &iterItem))[m + return 0;[m + [m + path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iterItem);[m + [m +[31m- if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path))[m +[32m+[m[32m gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1);[m +[32m+[m[32m if (kind == ITREE_LEAF)[m +[32m+[m[32m gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);[m + gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m }[m + [m + gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */[m + [m +[36m@@ -788,34 +851,23 @@[m [mstatic int gtkTreeSetExpandAllAttrib(Ihandle* ih, const char* value)[m + if (iupStrBoolean(value))[m + gtk_tree_view_expand_all(GTK_TREE_VIEW(ih->handle));[m + else[m +[31m- {[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterRoot;[m +[31m- GtkTreePath* pathRoot;[m +[31m-[m + gtk_tree_view_collapse_all(GTK_TREE_VIEW(ih->handle));[m + [m +[31m- /* The root node is always expanded */[m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m- pathRoot = gtk_tree_model_get_path(model, &iterRoot);[m +[31m- gtk_tree_view_expand_row(GTK_TREE_VIEW(ih->handle), pathRoot, FALSE);[m +[31m- gtk_tree_path_free(pathRoot);[m +[31m- }[m +[31m-[m + return 0;[m + }[m + [m + static char* gtkTreeGetDepthAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- char* depth;[m +[32m+[m[32m char* str;[m + GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[32m+[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + [m +[31m- depth = iupStrGetMemory(10);[m +[31m- sprintf(depth, "%d", gtk_tree_store_iter_depth(store, &iterItem));[m +[31m- return depth;[m +[32m+[m[32m str = iupStrGetMemory(10);[m +[32m+[m[32m sprintf(str, "%d", gtk_tree_store_iter_depth(store, &iterItem));[m +[32m+[m[32m return str;[m + }[m + [m + static int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value)[m +[36m@@ -824,14 +876,14 @@[m [mstatic int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char[m + GtkTreeIter iterItemSrc, iterItemDst, iterNewItem;[m + GtkTreeIter iterParent, iterNextParent;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + [m + model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc))[m + return 0;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst))[m + return 0;[m + [m + /* If Drag item is an ancestor of Drop item then return */[m +[36m@@ -843,12 +895,8 @@[m [mstatic int gtkTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char[m + iterParent = iterNextParent;[m + }[m + [m +[31m- /* Copying the node and its children to the new position */[m +[31m- gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0); /* not a full copy, preserve user data */[m +[31m-[m +[31m- /* Deleting the node of its old position */[m +[31m- /* do not delete the user data, we copy the references in CopyNode */[m +[31m- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItemSrc);[m +[32m+[m[32m /* Move the node and its children to the new position */[m +[32m+[m[32m gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 0);[m + [m + return 0;[m + }[m +[36m@@ -859,14 +907,14 @@[m [mstatic int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char[m + GtkTreeIter iterItemSrc, iterItemDst, iterNewItem;[m + GtkTreeIter iterParent, iterNextParent;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + [m + model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItemSrc))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItemSrc))[m + return 0;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItemDst))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, value, &iterItemDst))[m + return 0;[m + [m + /* If Drag item is an ancestor of Drop item then return */[m +[36m@@ -878,8 +926,8 @@[m [mstatic int gtkTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char[m + iterParent = iterNextParent;[m + }[m + [m +[31m- /* Copying the node and its children to the new position */[m +[31m- gtkTreeCopyNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1);[m +[32m+[m[32m /* Copy the node and its children to the new position */[m +[32m+[m[32m gtkTreeCopyMoveNode(ih, model, &iterItemSrc, &iterItemDst, &iterNewItem, 1);[m + [m + return 0;[m + }[m +[36m@@ -891,7 +939,7 @@[m [mstatic char* gtkTreeGetColorAttrib(Ihandle* ih, const char* name_id)[m + GtkTreeIter iterItem;[m + GdkColor *color;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + [m + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_COLOR, &color, -1);[m +[36m@@ -912,7 +960,7 @@[m [mstatic int gtkTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v[m + GdkColor color;[m + unsigned char r, g, b;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m + if (!iupStrToRGB(value, &r, &g, &b))[m +[36m@@ -931,14 +979,14 @@[m [mstatic char* gtkTreeGetParentAttrib(Ihandle* ih, const char* name_id)[m + GtkTreeIter iterParent;[m + char* str;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + [m + if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem))[m + return NULL;[m + [m + str = iupStrGetMemory(10);[m +[31m- sprintf(str, "%d", gtkTreeGetNodeId(ih, iterParent));[m +[32m+[m[32m sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterParent));[m + return str;[m + }[m + [m +[36m@@ -948,7 +996,7 @@[m [mstatic char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)[m + GtkTreeIter iterItem;[m + char* str;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + [m + str = iupStrGetMemory(10);[m +[36m@@ -956,40 +1004,13 @@[m [mstatic char* gtkTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)[m + return str;[m + }[m + [m +[31m-static int gtkTreeCount(GtkTreeModel* model, GtkTreeIter iterBranch)[m +[31m-{[m +[31m- GtkTreeIter iterChild;[m +[31m- int count = 0;[m +[31m- int hasItem = gtk_tree_model_iter_children(model, &iterChild, &iterBranch); /* get the firstchild */[m +[31m- count++;[m +[31m- while(hasItem)[m +[31m- {[m +[31m- count += gtkTreeCount(model, iterChild);[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- hasItem = gtk_tree_model_iter_next(model, &iterChild);[m +[31m- }[m +[31m-[m +[31m- return count;[m +[31m-}[m +[31m-[m +[31m-static char* gtkTreeGetCountAttrib(Ihandle* ih)[m +[31m-{[m +[31m- GtkTreeIter iterRoot;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- char* str = iupStrGetMemory(10);[m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m- sprintf(str, "%d", gtkTreeCount(model, iterRoot));[m +[31m- return str;[m +[31m-}[m +[31m-[m + static char* gtkTreeGetKindAttrib(Ihandle* ih, const char* name_id)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m + int kind;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + [m + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);[m +[36m@@ -1005,7 +1026,7 @@[m [mstatic char* gtkTreeGetStateAttrib(Ihandle* ih, const char* name_id)[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + [m + if (gtk_tree_model_iter_has_child(model, &iterItem))[m +[36m@@ -1028,13 +1049,20 @@[m [mstatic int gtkTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* v[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m + GtkTreePath* path;[m +[32m+[m[32m int kind;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m +[31m- path = gtk_tree_model_get_path(model, &iterItem);[m +[31m- gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED"));[m +[31m- gtk_tree_path_free(path);[m +[32m+[m[32m gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);[m +[32m+[m[32m if (kind == ITREE_BRANCH)[m +[32m+[m[32m {[m +[32m+[m[32m path = gtk_tree_model_get_path(model, &iterItem);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");[m +[32m+[m[32m gtkTreeExpandItem(ih, path, iupStrEqualNoCase(value, "EXPANDED"));[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);[m +[32m+[m[32m gtk_tree_path_free(path);[m +[32m+[m[32m }[m + [m + return 0;[m + }[m +[36m@@ -1050,7 +1078,7 @@[m [mstatic char* gtkTreeGetTitleAttrib(Ihandle* ih, const char* name_id)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + return gtkTreeGetTitle(model, iterItem);[m + }[m +[36m@@ -1059,8 +1087,10 @@[m [mstatic int gtkTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v[m + {[m + GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m +[32m+[m[32m if (!value)[m +[32m+[m[32m value = "";[m + gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_TITLE, iupgtkStrConvertToUTF8(value), -1);[m + return 0;[m + }[m +[36m@@ -1070,7 +1100,7 @@[m [mstatic int gtkTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha[m + PangoFontDescription* fontdesc = NULL;[m + GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + if (value)[m + fontdesc = iupgtkGetPangoFontDesc(value);[m +[36m@@ -1083,49 +1113,12 @@[m [mstatic char* gtkTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)[m + PangoFontDescription* fontdesc;[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return NULL;[m + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1);[m + return pango_font_description_to_string(fontdesc);[m + }[m + [m +[31m-static char* gtkTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- int id;[m +[31m- char* str = (char*)(name_id+1); /* skip ':' */[m +[31m- void* userdata = NULL;[m +[31m- if (sscanf(str, "%p", &userdata)!=1)[m +[31m- return NULL;[m +[31m- id = gtkTreeGetUserDataId(ih, model, userdata);[m +[31m- if (id == -1)[m +[31m- return NULL;[m +[31m- str = iupStrGetMemory(16);[m +[31m- sprintf(str, "%d", id);[m +[31m- return str;[m +[31m-}[m +[31m-[m +[31m-static char* gtkTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterItem;[m +[31m- char* userdata;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[31m- return NULL;[m +[31m- gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_USERDATA, &userdata, -1);[m +[31m- return userdata;[m +[31m-}[m +[31m-[m +[31m-static int gtkTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)[m +[31m-{[m +[31m- GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m +[31m- GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[31m- return 0;[m +[31m- gtk_tree_store_set(store, &iterItem, IUPGTK_TREE_USERDATA, value, -1);[m +[31m- return 0;[m +[31m-}[m +[31m-[m + static char* gtkTreeGetValueAttrib(Ihandle* ih)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[36m@@ -1140,67 +1133,117 @@[m [mstatic char* gtkTreeGetValueAttrib(Ihandle* ih)[m + gtk_tree_path_free(path);[m + [m + str = iupStrGetMemory(16);[m +[31m- sprintf(str, "%d", gtkTreeGetNodeId(ih, iterItem));[m +[32m+[m[32m sprintf(str, "%d", gtkTreeFindNodeId(ih, &iterItem));[m + return str;[m + }[m + [m +[31m- return "0"; /* default VALUE is root */[m +[32m+[m[32m if (ih->data->node_count)[m +[32m+[m[32m return "0"; /* default VALUE is root */[m +[32m+[m[32m else[m +[32m+[m[32m return "-1";[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic char* gtkTreeGetMarkedNodesAttrib(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m char* str = iupStrGetMemory(ih->data->node_count+1);[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m int i;[m +[32m+[m +[32m+[m[32m for (i=0; i<ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m if (gtkTreeIsNodeSelected(model, &iterItem))[m +[32m+[m[32m str[i] = '+';[m +[32m+[m[32m else[m +[32m+[m[32m str[i] = '-';[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m str[ih->data->node_count] = 0;[m +[32m+[m[32m return str;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int gtkTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m int count, i;[m +[32m+[m[32m GtkTreeModel* model;[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m GtkTreeSelection* selection;[m +[32m+[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m count = strlen(value);[m +[32m+[m[32m if (count > ih->data->node_count)[m +[32m+[m[32m count = ih->data->node_count;[m +[32m+[m +[32m+[m[32m selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m +[32m+[m[32m for (i=0; i<count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m if (value[i] == '+')[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 1);[m +[32m+[m[32m else[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 0);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m +[32m+[m[32m return 0;[m + }[m + [m + static int gtkTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterRoot;[m + [m + if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m + return 0;[m + [m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m + if(iupStrEqualNoCase(value, "BLOCK"))[m + {[m +[32m+[m[32m GtkTreeIter iterItem1, iterItem2;[m + GtkTreePath* pathFocus;[m + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[31m- gtk_tree_selection_select_range(selection, (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), pathFocus);[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem1, pathFocus);[m + gtk_tree_path_free(pathFocus);[m +[32m+[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem2, iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"));[m +[32m+[m +[32m+[m[32m gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0);[m + }[m + else if(iupStrEqualNoCase(value, "CLEARALL"))[m +[31m- gtk_tree_selection_unselect_all(selection);[m +[32m+[m[32m gtkTreeSelectAll(ih, model, selection, 0);[m + else if(iupStrEqualNoCase(value, "MARKALL"))[m +[31m- gtk_tree_selection_select_all(selection);[m +[32m+[m[32m gtkTreeSelectAll(ih, model, selection, 1);[m + else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */[m +[31m- gtkTreeInvertAllNodeMarking(ih, model, selection, &iterRoot);[m +[32m+[m[32m gtkTreeInvertAllNodeMarking(ih, model, selection);[m + else if(iupStrEqualPartial(value, "INVERT"))[m + {[m + /* iupStrEqualPartial allows the use of "INVERTid" form */[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, &value[strlen("INVERT")], &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, &value[strlen("INVERT")], &iterItem))[m + return 0;[m + [m +[31m- if(gtk_tree_selection_iter_is_selected(selection, &iterItem))[m +[31m- gtk_tree_selection_unselect_iter(selection, &iterItem);[m +[31m- else[m +[31m- gtk_tree_selection_select_iter(selection, &iterItem);[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, -1); /* toggle */[m + }[m + else[m + {[m +[31m- GtkTreePath *path1, *path2;[m + GtkTreeIter iterItem1, iterItem2;[m + char str1[50], str2[50];[m + if (iupStrToStrStr(value, str1, str2, '-')!=2)[m + return 0;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, str1, &iterItem1))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, str1, &iterItem1))[m + return 0;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, str2, &iterItem2))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, str2, &iterItem2))[m + return 0;[m + [m +[31m- path1 = gtk_tree_model_get_path(model, &iterItem1);[m +[31m- path2 = gtk_tree_model_get_path(model, &iterItem2);[m +[31m- gtk_tree_selection_select_range(selection, path1, path2);[m +[31m- gtk_tree_path_free(path1);[m +[31m- gtk_tree_path_free(path2);[m +[32m+[m[32m gtkTreeSelectRange(ih, model, selection, &iterItem1, &iterItem2, 0);[m + }[m + [m + return 1;[m +[36m@@ -1210,148 +1253,112 @@[m [mstatic int gtkTreeSetValueAttrib(Ihandle* ih, const char* value)[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterRoot, iterItem;[m +[32m+[m[32m GtkTreeIter iterItem;[m + GtkTreePath* path;[m +[32m+[m[32m int kind;[m + [m + if (gtkTreeSetMarkAttrib(ih, value))[m + return 0;[m + [m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m +[31m- if (iupStrEqualNoCase(value, "ROOT"))[m +[31m- iterItem = iterRoot;[m +[32m+[m[32m if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))[m +[32m+[m[32m gtk_tree_model_get_iter_first(model, &iterItem);[m + else if(iupStrEqualNoCase(value, "LAST"))[m +[31m- iterItem = gtkTreeGetLastVisibleNode(ih, model, iterRoot);[m +[32m+[m[32m gtkTreeGetLastVisibleNode(ih, model, &iterItem);[m + else if(iupStrEqualNoCase(value, "PGUP"))[m + {[m +[31m- GtkTreeIter iterPrev;[m +[31m-[m + GtkTreePath* pathFocus;[m + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[31m- gtk_tree_model_get_iter(model, &iterPrev, pathFocus);[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem, pathFocus);[m + gtk_tree_path_free(pathFocus);[m + [m +[31m- ih->data->id_control = -1;[m +[31m- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev);[m +[31m- ih->data->id_control -= 10; /* less 10 visible nodes */[m +[31m-[m +[31m- if(ih->data->id_control < 0)[m +[31m- ih->data->id_control = 0; /* Begin of tree = Root id */[m +[31m-[m +[31m- iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);[m +[32m+[m[32m gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 10);[m + }[m + else if(iupStrEqualNoCase(value, "PGDN"))[m + {[m +[31m- GtkTreeIter iterNext;[m +[31m-[m + GtkTreePath* pathFocus;[m + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[31m- gtk_tree_model_get_iter(model, &iterNext, pathFocus);[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem, pathFocus);[m + gtk_tree_path_free(pathFocus);[m + [m +[31m- ih->data->id_control = -1;[m +[31m- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext);[m +[31m- ih->data->id_control += 10; /* more 10 visible nodes */[m +[31m-[m +[31m- iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);[m +[31m-[m +[31m- if (ih->data->id_control >= 0)[m +[31m- iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot);[m +[31m-[m +[31m- iterItem = iterNext;[m +[32m+[m[32m gtkTreeGetNextVisibleNode(ih, model, &iterItem, 10);[m + }[m + else if(iupStrEqualNoCase(value, "NEXT"))[m + {[m +[31m- GtkTreeIter iterNext;[m +[31m-[m + GtkTreePath* pathFocus;[m + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[31m- gtk_tree_model_get_iter(model, &iterNext, pathFocus);[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem, pathFocus);[m + gtk_tree_path_free(pathFocus);[m + [m +[31m- ih->data->id_control = -1;[m +[31m- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterNext);[m +[31m- ih->data->id_control++; /* more 1 visible node */[m +[31m-[m +[31m- iterNext = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);[m +[31m-[m +[31m- if (ih->data->id_control >= 0)[m +[31m- iterNext = gtkTreeGetLastVisibleNode(ih, model, iterRoot);[m +[31m-[m +[31m- iterItem = iterNext;[m +[32m+[m[32m gtkTreeGetNextVisibleNode(ih, model, &iterItem, 1);[m + }[m + else if(iupStrEqualNoCase(value, "PREVIOUS"))[m + {[m +[31m- GtkTreeIter iterPrev;[m +[31m-[m + GtkTreePath* pathFocus;[m + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[31m- gtk_tree_model_get_iter(model, &iterPrev, pathFocus);[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem, pathFocus);[m + gtk_tree_path_free(pathFocus);[m + [m +[31m- ih->data->id_control = -1;[m +[31m- gtkTreeFindVisibleNodeId(ih, model, iterRoot, iterPrev);[m +[31m- ih->data->id_control--; /* less 1 visible node */[m +[31m-[m +[31m- if (ih->data->id_control < 0)[m +[31m- ih->data->id_control = 0;[m +[31m-[m +[31m- iterItem = gtkTreeFindVisibleNodeFromId(ih, model, iterRoot);[m +[31m- if (!iterItem.user_data)[m +[31m- return 0;[m +[32m+[m[32m gtkTreeGetPreviousVisibleNode(ih, model, &iterItem, 1);[m + }[m + else[m + {[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, value, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, value, &iterItem))[m + return 0;[m + }[m + [m + /* select */[m + if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m + {[m +[31m- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1");[m +[31m- gtk_tree_selection_select_iter(selection, &iterItem);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 1);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + }[m + [m + path = gtk_tree_model_get_path(model, &iterItem);[m +[32m+[m +[32m+[m[32m /* make it visible */[m +[32m+[m[32m gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_KIND, &kind, -1);[m +[32m+[m[32m if (kind == ITREE_LEAF)[m +[32m+[m[32m gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m int expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m gtk_tree_view_expand_to_path(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m if (!expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m }[m +[32m+[m + gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE, 0, 0); /* scroll to visible */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, NULL, FALSE); /* set focus */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m + gtk_tree_path_free(path);[m + [m +[31m- iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeGetNodeId(ih, iterItem));[m +[32m+[m[32m iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", gtkTreeFindNodeId(ih, &iterItem));[m + [m + return 0;[m + } [m + [m + static int gtkTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- GtkTreePath *pathMarkStart, *pathMarkStartPrev;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m +[31m- pathMarkStart = gtk_tree_model_get_path(model, &iterItem);[m +[31m-[m +[31m- pathMarkStartPrev = (GtkTreePath*)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE");[m +[31m- if (pathMarkStartPrev)[m +[31m- gtk_tree_path_free(pathMarkStartPrev);[m +[31m-[m +[31m- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)pathMarkStart);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)iterItem.user_data);[m + [m + return 1;[m + }[m + [m + static char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- GtkTreeSelection* selection;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m GtkTreeModel* model;[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m +[31m- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[31m- if (gtk_tree_selection_iter_is_selected(selection, &iterItem))[m +[32m+[m[32m model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m if (gtkTreeIsNodeSelected(model, &iterItem))[m + return "YES";[m + else[m + return "NO";[m +[36m@@ -1359,87 +1366,99 @@[m [mstatic char* gtkTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)[m + [m + static int gtkTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[32m+[m[32m GtkTreeModel* model;[m + GtkTreeSelection* selection;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m +[31m- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", "1");[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + [m + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + if (iupStrBoolean(value))[m +[31m- gtk_tree_selection_select_iter(selection, &iterItem);[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 1);[m + else[m +[31m- gtk_tree_selection_unselect_iter(selection, &iterItem);[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterItem, 0);[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m + return 0;[m + }[m + [m + static int gtkTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */[m +[32m+[m[32m if (iupStrEqualNoCase(value, "ALL"))[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeIter iterItem;[m +[31m- GtkTreeIter iterParent;[m +[32m+[m[32m gtkTreeCallNodeRemovedAll(ih);[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[31m- return 0;[m +[32m+[m[32m /* deleting the reference node (and it's children) */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m gtk_tree_store_clear(GTK_TREE_STORE(model));[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */[m +[32m+[m[32m {[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m GtkTreeIter iterItem;[m + [m +[31m- if (!gtk_tree_model_iter_parent(model, &iterParent, &iterItem)) /* the root node can't be deleted */[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m + gtkTreeCallNodeRemoved(ih, model, &iterItem);[m + [m +[31m- /* deleting the specified node (and it's children) */[m +[32m+[m[32m /* deleting the reference node (and it's children) */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + }[m +[31m- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */[m +[32m+[m[32m else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */[m + {[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + GtkTreeIter iterItem, iterChild;[m + int hasChildren;[m + [m +[31m- if (!gtkTreeFindNodeFromString(ih, model, name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m + hasChildren = gtk_tree_model_iter_children(model, &iterChild, &iterItem);[m + [m +[31m- /* deleting the selected node's children */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m +[32m+[m[32m /* deleting the reference node children */[m + while(hasChildren)[m + {[m + gtkTreeCallNodeRemoved(ih, model, &iterChild);[m + hasChildren = gtk_tree_store_remove(GTK_TREE_STORE(model), &iterChild);[m + }[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + }[m + else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */[m + {[m +[32m+[m[32m int i;[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[31m- GList *rr_list = NULL;[m +[31m- GList *node;[m +[32m+[m[32m GtkTreeIter iterItem;[m + [m +[31m- gtk_tree_selection_selected_foreach(selection, (GtkTreeSelectionForeachFunc)gtkTreeSelected_Iter_Func, &rr_list);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + [m +[31m- for(node = rr_list; node != NULL; node = node->next)[m +[32m+[m[32m for(i = 1; i < ih->data->node_count; /* increment only if not removed */)[m + {[m +[31m- GtkTreePath* path = gtk_tree_row_reference_get_path(node->data);[m +[31m- if (path)[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m if (gtkTreeIsNodeSelected(model, &iterItem))[m + {[m +[31m- GtkTreeIter iterItem;[m +[31m- if (gtk_tree_model_get_iter(model, &iterItem, path))[m +[31m- {[m +[31m- gtkTreeCallNodeRemoved(ih, model, &iterItem);[m +[31m- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);[m +[31m- }[m +[31m- gtk_tree_path_free(path);[m +[32m+[m[32m gtkTreeCallNodeRemoved(ih, model, &iterItem);[m +[32m+[m[32m gtk_tree_store_remove(GTK_TREE_STORE(model), &iterItem);[m + }[m +[31m- gtk_tree_row_reference_free(node->data);[m +[32m+[m[32m else[m +[32m+[m[32m i++;[m + }[m +[31m- g_list_free(rr_list);[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + }[m + [m + return 0;[m +[36m@@ -1450,36 +1469,11 @@[m [mstatic int gtkTreeSetRenameAttrib(Ihandle* ih, const char* value)[m + if (ih->data->show_rename)[m + {[m + GtkTreePath* path;[m +[31m- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");[m + GtkTreeViewColumn *focus_column;[m +[31m-[m + gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, &focus_column);[m +[31m-[m +[31m- if (cbShowRename)[m +[31m- {[m +[31m- GtkTreeIter iterItem;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- gtk_tree_model_get_iter(model, &iterItem, path);[m +[31m- cbShowRename(ih, gtkTreeGetNodeId(ih, iterItem));[m +[31m- }[m +[31m-[m + gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), path, focus_column, TRUE);[m + gtk_tree_path_free(path);[m + }[m +[31m- else[m +[31m- {[m +[31m- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");[m +[31m- if (cbRenameNode)[m +[31m- {[m +[31m- GtkTreePath* path;[m +[31m- GtkTreeIter iterItem;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &path, NULL);[m +[31m- gtk_tree_model_get_iter(model, &iterItem, path);[m +[31m- gtk_tree_path_free(path);[m +[31m- cbRenameNode(ih, gtkTreeGetNodeId(ih, iterItem), gtkTreeGetTitle(model, iterItem)); [m +[31m- }[m +[31m- }[m + [m + (void)value;[m + return 0;[m +[36m@@ -1491,7 +1485,7 @@[m [mstatic int gtkTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const[m + GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m + GdkPixbuf* pixExpand = iupImageGetImage(value, ih, 0);[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m + gtk_tree_model_get(GTK_TREE_MODEL(store), &iterItem, IUPGTK_TREE_KIND, &kind, -1);[m +[36m@@ -1514,7 +1508,7 @@[m [mstatic int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v[m + GtkTreeStore* store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle)));[m + GdkPixbuf* pixImage = iupImageGetImage(value, ih, 0);[m + GtkTreeIter iterItem;[m +[31m- if (!gtkTreeFindNodeFromString(ih, GTK_TREE_MODEL(store), name_id, &iterItem))[m +[32m+[m[32m if (!gtkTreeFindNodeFromString(ih, name_id, &iterItem))[m + return 0;[m + [m + if (pixImage)[m +[36m@@ -1539,42 +1533,30 @@[m [mstatic int gtkTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v[m + [m + static int gtkTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- GtkTreeIter iterRoot;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + ih->data->def_image_expanded = iupImageGetImage(value, ih, 0);[m + [m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m +[31m- /* Update all images, starting at root node */[m +[31m- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_EXPANDED);[m +[32m+[m[32m /* Update all images */[m +[32m+[m[32m gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);[m + [m + return 1;[m + }[m + [m + static int gtkTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- GtkTreeIter iterRoot;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0);[m + [m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m +[31m- /* Update all images, starting at root node */[m +[31m- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_COLLAPSED);[m +[32m+[m[32m /* Update all images */[m +[32m+[m[32m gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);[m + [m + return 1;[m + }[m + [m + static int gtkTreeSetImageLeafAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- GtkTreeIter iterRoot;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + ih->data->def_image_leaf = iupImageGetImage(value, ih, 0);[m + [m +[31m- gtk_tree_model_get_iter_first(model, &iterRoot);[m +[31m-[m +[31m- /* Update all images, starting at root node */[m +[31m- gtkTreeUpdateImages(ih, model, iterRoot, ITREE_UPDATEIMAGE_LEAF);[m +[32m+[m[32m /* Update all images */[m +[32m+[m[32m gtkTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);[m + [m + return 1;[m + }[m +[36m@@ -1655,6 +1637,7 @@[m [mvoid iupdrvTreeUpdateMarkMode(Ihandle *ih)[m + if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && !ih->data->show_dragdrop)[m + {[m + #if GTK_CHECK_VERSION(2, 10, 0)[m +[32m+[m[32m if (iupAttribGetInt(ih, "RUBBERBAND"))[m + gtk_tree_view_set_rubber_banding(GTK_TREE_VIEW(ih->handle), TRUE);[m + #endif[m + }[m +[36m@@ -1704,6 +1687,19 @@[m [mstatic void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable[m + PangoFontDescription* fontdesc = NULL;[m + GdkColor *color = NULL;[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m[32m IFni cbShowRename;[m +[32m+[m +[32m+[m[32m gtk_tree_model_get_iter_from_string(model, &iterItem, path_string);[m +[32m+[m +[32m+[m[32m cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");[m +[32m+[m[32m if (cbShowRename && cbShowRename(ih, gtkTreeFindNodeId(ih, &iterItem))==IUP_IGNORE)[m +[32m+[m[32m {[m +[32m+[m[32m /* TODO: non of these worked:[m +[32m+[m[32m gtk_cell_renderer_stop_editing(cell, TRUE);[m +[32m+[m[32m gtk_cell_editable_editing_done(editable); */[m +[32m+[m[32m gtk_editable_set_editable(GTK_EDITABLE(editable), FALSE);[m +[32m+[m[32m return;[m +[32m+[m[32m }[m + [m + value = iupAttribGetStr(ih, "RENAMECARET");[m + if (value)[m +[36m@@ -1713,7 +1709,6 @@[m [mstatic void gtkTreeCellTextEditingStarted(GtkCellRenderer *cell, GtkCellEditable[m + if (value)[m + gtkTreeSetRenameSelectionPos(editable, value);[m + [m +[31m- gtk_tree_model_get_iter_from_string(model, &iterItem, path_string);[m + gtk_tree_model_get(model, &iterItem, IUPGTK_TREE_FONT, &fontdesc, -1);[m + if (fontdesc)[m + gtk_widget_modify_font(GTK_WIDGET(editable), fontdesc);[m +[36m@@ -1732,7 +1727,7 @@[m [mstatic void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string,[m + IFnis cbRename;[m + [m + if (!new_text)[m +[31m- return;[m +[32m+[m[32m new_text = "";[m + [m + model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + if (!gtk_tree_model_get_iter_from_string(model, &iterItem, path_string))[m +[36m@@ -1741,7 +1736,7 @@[m [mstatic void gtkTreeCellTextEdited(GtkCellRendererText *cell, gchar *path_string,[m + cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");[m + if (cbRename)[m + {[m +[31m- if (cbRename(ih, gtkTreeGetNodeId(ih, iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE)[m +[32m+[m[32m if (cbRename(ih, gtkTreeFindNodeId(ih, &iterItem), iupgtkStrConvertFromUTF8(new_text)) == IUP_IGNORE)[m + return;[m + }[m + [m +[36m@@ -1766,8 +1761,8 @@[m [mstatic int gtkTreeCallDragDropCb(Ihandle* ih, GtkTreeIter *iterDrag, GtkTreeIter[m + [m + if (cbDragDrop)[m + {[m +[31m- int drag_id = gtkTreeGetNodeId(ih, *iterDrag);[m +[31m- int drop_id = gtkTreeGetNodeId(ih, *iterDrop);[m +[32m+[m[32m int drag_id = gtkTreeFindNodeId(ih, iterDrag);[m +[32m+[m[32m int drop_id = gtkTreeFindNodeId(ih, iterDrop);[m + return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);[m + }[m + [m +[36m@@ -1804,22 +1799,17 @@[m [mstatic void gtkTreeDragDataReceived(GtkWidget *widget, GdkDragContext *context,[m + {[m + GtkTreeIter iterNewItem;[m + [m +[31m- /* Copy the dragged item to the new position. */[m +[31m- gtkTreeCopyNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl);[m +[31m-[m +[31m- if (!is_ctrl)[m +[31m- {[m +[31m- /* do not delete the user data, we copy the references in CopyNode */[m +[31m- gtk_tree_store_remove(GTK_TREE_STORE(model), &iterDrag);[m +[31m- }[m +[32m+[m[32m /* Copy or move the dragged item to the new position. */[m +[32m+[m[32m gtkTreeCopyMoveNode(ih, model, &iterDrag, &iterDrop, &iterNewItem, is_ctrl);[m + [m + /* set focus and selection */[m +[32m+[m[32m if (iterNewItem.stamp)[m + {[m + GtkTreePath *pathNew;[m + GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m + [m + pathNew = gtk_tree_model_get_path(model, &iterNewItem);[m +[31m- gtk_tree_selection_select_path(selection, pathNew);[m +[32m+[m[32m gtkTreeSelectNode(model, selection, &iterNewItem, 1);[m + [m + gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE, 0, 0);[m + gtk_tree_view_set_cursor(GTK_TREE_VIEW(ih->handle), pathNew, NULL, FALSE);[m +[36m@@ -1927,10 +1917,24 @@[m [mstatic void gtkTreeDragBegin(GtkWidget *widget, GdkDragContext *context, Ihandle[m + (void)widget;[m + }[m + [m +[32m+[m[32mstatic gboolean gtkTreeSelectionFunc(GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean selected, Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterItem, path);[m +[32m+[m[32m gtkTreeSelectNodeRaw(model, &iterItem, !selected);[m +[32m+[m[32m (void)ih;[m +[32m+[m[32m (void)selection;[m +[32m+[m[32m return TRUE;[m +[32m+[m[32m}[m +[32m+[m + static void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)[m + {[m + IFnii cbSelec;[m + int is_ctrl = 0;[m +[32m+[m[32m (void)selection;[m +[32m+[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB"))[m +[32m+[m[32m return;[m + [m + if (ih->data->mark_mode == ITREE_MARK_MULTIPLE)[m + {[m +[36m@@ -1953,25 +1957,17 @@[m [mstatic void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)[m + if (cbSelec)[m + {[m + int curpos = -1, is_selected = 0;[m +[32m+[m[32m GtkTreeIter iterFocus;[m +[32m+[m[32m GtkTreePath* pathFocus;[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + [m +[31m- if (iupAttribGet(ih, "_IUP_IGNORE_SELECTION"))[m +[31m- {[m +[31m- iupAttribSetStr(ih, "_IUP_IGNORE_SELECTION", NULL);[m +[31m- return;[m +[31m- }[m +[31m-[m +[32m+[m[32m gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[32m+[m[32m if (pathFocus)[m + {[m +[31m- GtkTreeIter iterFocus;[m +[31m- GtkTreePath* pathFocus;[m +[31m- GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[31m- gtk_tree_view_get_cursor(GTK_TREE_VIEW(ih->handle), &pathFocus, NULL);[m +[31m- if (pathFocus)[m +[31m- {[m +[31m- gtk_tree_model_get_iter(model, &iterFocus, pathFocus);[m +[31m- gtk_tree_path_free(pathFocus);[m +[31m- curpos = gtkTreeGetNodeId(ih, iterFocus);[m +[31m- is_selected = gtk_tree_selection_iter_is_selected(selection, &iterFocus);[m +[31m- }[m +[32m+[m[32m gtk_tree_model_get_iter(model, &iterFocus, pathFocus);[m +[32m+[m[32m gtk_tree_path_free(pathFocus);[m +[32m+[m[32m curpos = gtkTreeFindNodeId(ih, &iterFocus);[m +[32m+[m[32m is_selected = gtkTreeIsNodeSelected(model, &iterFocus);[m + }[m + [m + if (curpos == -1)[m +[36m@@ -1993,18 +1989,52 @@[m [mstatic void gtkTreeSelectionChanged(GtkTreeSelection* selection, Ihandle* ih)[m + }[m + }[m + [m +[32m+[m[32mstatic void gtkTreeUpdateSelectionChildren(Ihandle* ih, GtkTreeModel* model, GtkTreeSelection* selection, GtkTreeIter *iterItem)[m +[32m+[m[32m{[m +[32m+[m[32m int expanded;[m +[32m+[m[32m GtkTreeIter iterChild;[m +[32m+[m[32m int hasItem = gtk_tree_model_iter_children(model, &iterChild, iterItem); /* get the firstchild */[m +[32m+[m[32m while(hasItem)[m +[32m+[m[32m {[m +[32m+[m[32m if (gtkTreeIsNodeSelected(model, &iterChild))[m +[32m+[m[32m gtk_tree_selection_select_iter(selection, &iterChild);[m +[32m+[m +[32m+[m[32m expanded = 0;[m +[32m+[m[32m if (gtk_tree_model_iter_has_child(model, &iterChild))[m +[32m+[m[32m {[m +[32m+[m[32m GtkTreePath* path = gtk_tree_model_get_path(model, &iterChild);[m +[32m+[m[32m expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(ih->handle), path);[m +[32m+[m[32m gtk_tree_path_free(path);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* Recursive only if expanded */[m +[32m+[m[32m if (expanded)[m +[32m+[m[32m gtkTreeUpdateSelectionChildren(ih, model, selection, &iterChild);[m[41m [m +[32m+[m +[32m+[m[32m /* Go to next sibling item */[m +[32m+[m[32m hasItem = gtk_tree_model_iter_next(model, &iterChild);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void gtkTreeRowExpanded(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m GtkTreeSelection* selection = gtk_tree_view_get_selection(tree_view);[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(tree_view);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m gtkTreeUpdateSelectionChildren(ih, model, selection, iterItem);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m[32m (void)path;[m +[32m+[m[32m}[m +[32m+[m + static gboolean gtkTreeTestExpandRow(GtkTreeView* tree_view, GtkTreeIter *iterItem, GtkTreePath *path, Ihandle* ih)[m + {[m + IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");[m + if (cbBranchOpen)[m + {[m +[31m- if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB"))[m +[31m- {[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCHOPEN_CB", NULL);[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))[m + return FALSE;[m +[31m- }[m + [m +[31m- if (cbBranchOpen(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE)[m +[32m+[m[32m if (cbBranchOpen(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE)[m + return TRUE; /* prevent the change */[m + }[m + [m +[36m@@ -2018,7 +2048,10 @@[m [mstatic gboolean gtkTreeTestCollapseRow(GtkTreeView* tree_view, GtkTreeIter *iter[m + IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");[m + if (cbBranchClose)[m + {[m +[31m- if (cbBranchClose(ih, gtkTreeGetNodeId(ih, *iterItem)) == IUP_IGNORE)[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))[m +[32m+[m[32m return FALSE;[m +[32m+[m +[32m+[m[32m if (cbBranchClose(ih, gtkTreeFindNodeId(ih, iterItem)) == IUP_IGNORE)[m + return TRUE;[m + }[m + [m +[36m@@ -2042,7 +2075,7 @@[m [mstatic void gtkTreeRowActived(GtkTreeView* tree_view, GtkTreePath *path, GtkTree[m + [m + /* just to leaf nodes */[m + if(gtk_tree_model_iter_has_child(model, &iterItem) == 0 && kind == ITREE_LEAF)[m +[31m- cbExecuteLeaf(ih, gtkTreeGetNodeId(ih, iterItem));[m +[32m+[m[32m cbExecuteLeaf(ih, gtkTreeFindNodeId(ih, &iterItem));[m + [m + (void)column;[m + (void)tree_view;[m +[36m@@ -2057,11 +2090,57 @@[m [mstatic int gtkTreeConvertXYToPos(Ihandle* ih, int x, int y)[m + GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m + gtk_tree_model_get_iter(model, &iterItem, path);[m + gtk_tree_path_free (path);[m +[31m- return gtkTreeGetNodeId(ih, iterItem);[m +[32m+[m[32m return gtkTreeFindNodeId(ih, &iterItem);[m + }[m + return -1;[m + }[m + [m +[32m+[m[32mstatic Iarray* gtkTreeGetSelectedArrayId(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m Iarray* selarray = iupArrayCreate(1, sizeof(int));[m +[32m+[m[32m int i;[m +[32m+[m[32m GtkTreeIter iterItem;[m +[32m+[m[32m GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(ih->handle));[m +[32m+[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeIterInit(ih, &iterItem, ih->data->node_cache[i].node_handle);[m +[32m+[m[32m if (gtkTreeIsNodeSelected(model, &iterItem))[m +[32m+[m[32m {[m +[32m+[m[32m int* id_hitem = (int*)iupArrayInc(selarray);[m +[32m+[m[32m int j = iupArrayCount(selarray);[m +[32m+[m[32m id_hitem[j-1] = i;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return selarray;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void gtkTreeCallMultiUnSelectionCb(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");[m +[32m+[m[32m IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");[m +[32m+[m[32m if (cbSelec || cbMulti)[m +[32m+[m[32m {[m +[32m+[m[32m Iarray* markedArray = gtkTreeGetSelectedArrayId(ih);[m +[32m+[m[32m int* id_hitem = (int*)iupArrayGetData(markedArray);[m +[32m+[m[32m int i, count = iupArrayCount(markedArray);[m +[32m+[m +[32m+[m[32m if (count > 1)[m +[32m+[m[32m {[m +[32m+[m[32m if (cbMulti)[m +[32m+[m[32m cbMulti(ih, id_hitem, iupArrayCount(markedArray));[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m for (i=0; i<count; i++)[m +[32m+[m[32m cbSelec(ih, id_hitem[i], 0);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupArrayDestroy(markedArray);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m + static gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Ihandle* ih)[m + {[m + if (iupgtkButtonEvent(treeview, evt, ih) == TRUE)[m +[36m@@ -2097,6 +2176,18 @@[m [mstatic gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha[m + gtk_tree_path_free(path);[m + }[m + }[m +[32m+[m[32m else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x);[m +[32m+[m[32m iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y);[m +[32m+[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_MULTIPLE &&[m[41m [m +[32m+[m[32m !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK))[m +[32m+[m[32m {[m +[32m+[m[32m gtkTreeCallMultiUnSelectionCb(ih);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");[m +[32m+[m[32m }[m +[32m+[m[32m }[m + else if (evt->type == GDK_BUTTON_RELEASE && evt->button == 1) /* left single release */[m + {[m + if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && (evt->state & GDK_SHIFT_MASK))[m +[36m@@ -2109,16 +2200,7 @@[m [mstatic gboolean gtkTreeButtonEvent(GtkWidget *treeview, GdkEventButton *evt, Iha[m + iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "2");[m + }[m + }[m +[31m- else if (evt->type == GDK_BUTTON_PRESS && evt->button == 1) /* left single press */[m +[31m- {[m +[31m- iupAttribSetInt(ih, "_IUPTREE_DRAG_X", (int)evt->x);[m +[31m- iupAttribSetInt(ih, "_IUPTREE_DRAG_Y", (int)evt->y);[m + [m +[31m- if (ih->data->mark_mode==ITREE_MARK_MULTIPLE && [m +[31m- !(evt->state & GDK_SHIFT_MASK) && !(evt->state & GDK_CONTROL_MASK))[m +[31m- iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");[m +[31m- }[m +[31m- [m + return FALSE;[m + }[m + [m +[36m@@ -2159,29 +2241,14 @@[m [mstatic void gtkTreeEnableDragDrop(Ihandle* ih)[m + { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }[m + };[m + [m +[31m- if (iupAttribGetBoolean(ih, "AUTODRAGDROP"))[m +[31m- {[m +[31m- gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW(ih->handle),[m +[31m- GDK_BUTTON1_MASK,[m +[31m- row_targets,[m +[31m- G_N_ELEMENTS(row_targets),[m +[31m- GDK_ACTION_MOVE|GDK_ACTION_COPY);[m +[31m- gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW(ih->handle),[m +[31m- row_targets,[m +[31m- G_N_ELEMENTS(row_targets),[m +[31m- GDK_ACTION_MOVE|GDK_ACTION_COPY);[m +[31m- }[m +[31m- else[m +[31m- {[m +[31m- gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);[m +[31m- gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);[m +[32m+[m[32m gtk_drag_source_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);[m +[32m+[m[32m gtk_drag_dest_set(ih->handle, GDK_BUTTON1_MASK, row_targets, G_N_ELEMENTS(row_targets), GDK_ACTION_MOVE|GDK_ACTION_COPY);[m + [m +[31m- g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih);[m +[31m- g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih);[m +[31m- g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL);[m +[31m- g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih);[m +[31m- g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih);[m +[31m- }[m +[32m+[m[32m g_signal_connect(G_OBJECT(ih->handle), "drag-begin", G_CALLBACK(gtkTreeDragBegin), ih);[m +[32m+[m[32m g_signal_connect(G_OBJECT(ih->handle), "drag-motion", G_CALLBACK(gtkTreeDragMotion), ih);[m +[32m+[m[32m g_signal_connect(G_OBJECT(ih->handle), "drag-leave", G_CALLBACK(gtkTreeDragLeave), NULL);[m +[32m+[m[32m g_signal_connect(G_OBJECT(ih->handle), "drag-drop", G_CALLBACK(gtkTreeDragDrop), ih);[m +[32m+[m[32m g_signal_connect(G_OBJECT(ih->handle), "drag-data-received", G_CALLBACK(gtkTreeDragDataReceived), ih);[m + }[m + [m + /*****************************************************************************/[m +[36m@@ -2194,8 +2261,16 @@[m [mstatic int gtkTreeMapMethod(Ihandle* ih)[m + GtkTreeSelection* selection;[m + GtkTreeViewColumn *column;[m + [m +[31m- store = gtk_tree_store_new(9, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN,[m +[31m- G_TYPE_STRING, G_TYPE_INT, GDK_TYPE_COLOR, PANGO_TYPE_FONT_DESCRIPTION, G_TYPE_POINTER);[m +[32m+[m[32m store = gtk_tree_store_new(IUPGTK_TREE_LAST_DATA,[m[41m [m +[32m+[m[32m GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE */[m +[32m+[m[32m G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE */[m +[32m+[m[32m GDK_TYPE_PIXBUF, /* IUPGTK_TREE_IMAGE_EXPANDED */[m +[32m+[m[32m G_TYPE_BOOLEAN, /* IUPGTK_TREE_HAS_IMAGE_EXPANDED */[m +[32m+[m[32m G_TYPE_STRING, /* IUPGTK_TREE_TITLE */[m +[32m+[m[32m G_TYPE_INT, /* IUPGTK_TREE_KIND */[m +[32m+[m[32m GDK_TYPE_COLOR, /* IUPGTK_TREE_COLOR */[m +[32m+[m[32m PANGO_TYPE_FONT_DESCRIPTION, /* IUPGTK_TREE_FONT */[m +[32m+[m[32m G_TYPE_BOOLEAN); /* IUPGTK_TREE_SELECT */[m + [m + ih->handle = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));[m + [m +[36m@@ -2262,8 +2337,9 @@[m [mstatic int gtkTreeMapMethod(Ihandle* ih)[m + gtk_scrolled_window_set_policy(scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);[m + [m + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ih->handle));[m +[31m- [m + gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);[m +[32m+[m[32m gtk_tree_selection_set_select_function(selection, (GtkTreeSelectionFunc)gtkTreeSelectionFunc, ih, NULL);[m +[32m+[m + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(ih->handle), FALSE);[m + [m + /* callbacks */[m +[36m@@ -2279,6 +2355,7 @@[m [mstatic int gtkTreeMapMethod(Ihandle* ih)[m + g_signal_connect(G_OBJECT(ih->handle), "show-help", G_CALLBACK(iupgtkShowHelp), ih);[m + g_signal_connect(G_OBJECT(ih->handle), "motion-notify-event",G_CALLBACK(iupgtkMotionNotifyEvent), ih);[m + [m +[32m+[m[32m g_signal_connect(G_OBJECT(ih->handle), "row-expanded", G_CALLBACK(gtkTreeRowExpanded), ih);[m + g_signal_connect(G_OBJECT(ih->handle), "test-expand-row", G_CALLBACK(gtkTreeTestExpandRow), ih);[m + g_signal_connect(G_OBJECT(ih->handle), "test-collapse-row", G_CALLBACK(gtkTreeTestCollapseRow), ih);[m + g_signal_connect(G_OBJECT(ih->handle), "row-activated", G_CALLBACK(gtkTreeRowActived), ih);[m +[36m@@ -2301,7 +2378,8 @@[m [mstatic int gtkTreeMapMethod(Ihandle* ih)[m + ih->data->def_image_collapsed = iupImageGetImage("IMGCOLLAPSED", ih, 0);[m + ih->data->def_image_expanded = iupImageGetImage("IMGEXPANDED", ih, 0);[m + [m +[31m- gtkTreeAddRootNode(ih);[m +[32m+[m[32m if (iupAttribGetInt(ih, "ADDROOT"))[m +[32m+[m[32m iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);[m + [m + /* configure for DRAG&DROP of files */[m + if (IupGetCallback(ih, "DROPFILES_CB"))[m +[36m@@ -2309,13 +2387,23 @@[m [mstatic int gtkTreeMapMethod(Ihandle* ih)[m + [m + IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)gtkTreeConvertXYToPos);[m + [m +[32m+[m[32m iupdrvTreeUpdateMarkMode(ih);[m +[32m+[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mstatic void gtkTreeUnMapMethod(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m ih->data->node_count = 0;[m +[32m+[m +[32m+[m[32m iupdrvBaseUnMapMethod(ih);[m +[32m+[m[32m}[m +[32m+[m + void iupdrvTreeInitClass(Iclass* ic)[m + {[m + /* Driver Dependent Class functions */[m + ic->Map = gtkTreeMapMethod;[m +[32m+[m[32m ic->UnMap = gtkTreeUnMapMethod;[m + [m + /* Visual */[m + iupClassRegisterAttribute(ic, "BGCOLOR", NULL, gtkTreeSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT);[m +[36m@@ -2324,7 +2412,6 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + /* IupTree Attributes - GENERAL */[m + iupClassRegisterAttribute(ic, "EXPANDALL", NULL, gtkTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "INDENTATION", gtkTreeGetIndentationAttrib, gtkTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);[m +[31m- iupClassRegisterAttribute(ic, "COUNT", gtkTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupgtkSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, gtkTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);[m + iupClassRegisterAttribute(ic, "TOPITEM", NULL, gtkTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[36m@@ -2345,7 +2432,6 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttributeId(ic, "COLOR", gtkTreeGetColorAttrib, gtkTreeSetColorAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "NAME", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TITLE", gtkTreeGetTitleAttrib, gtkTreeSetTitleAttrib, IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttributeId(ic, "USERDATA", gtkTreeGetUserDataAttrib, gtkTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m + [m + iupClassRegisterAttributeId(ic, "CHILDCOUNT", gtkTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TITLEFONT", gtkTreeGetTitleFontAttrib, gtkTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);[m +[36m@@ -2355,6 +2441,7 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttribute (ic, "MARK", NULL, gtkTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute (ic, "STARTING", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute (ic, "MARKSTART", NULL, gtkTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute (ic, "MARKEDNODES", gtkTreeGetMarkedNodesAttrib, gtkTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m + iupClassRegisterAttribute (ic, "VALUE", gtkTreeGetValueAttrib, gtkTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m +[36m@@ -2363,7 +2450,7 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "RENAME", NULL, gtkTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "MOVENODE", NULL, gtkTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "COPYNODE", NULL, gtkTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttributeId(ic, "FINDUSERDATA", gtkTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m + [m +[31m- iupClassRegisterAttribute (ic, "AUTODRAGDROP", NULL, NULL, NULL, NULL, IUPAF_DEFAULT);[m +[32m+[m[32m /* IupTree Attributes - GTK Only */[m +[32m+[m[32m iupClassRegisterAttribute (ic, "RUBBERBAND", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/iup.c b/iup/src/iup.c[m +[1mindex df4bf34..d103af5 100755[m +[1m--- a/iup/src/iup.c[m +[1m+++ b/iup/src/iup.c[m +[36m@@ -36,8 +36,10 @@[m + * \subsection com File Comments (at start)[m + * - Check an existant file for example.[m + * [m +[31m- * \subsection inc Include Defines[m +[31m- * - __IUPXXX_H (same file name, upper case, "__" preffix and replace "." by "_")[m +[32m+[m[32m * \subsection def Defines[m +[32m+[m[32m * - __IUPXXX_H (for include file, same file name, upper case, "__" preffix and replace "." by "_")[m +[32m+[m[32m * - IUP_XXX (for enumerations)[m +[32m+[m[32m * - iupXXX (for macros, complement with Function Names rules)[m + * [m + * \subsection doc Documentation[m + * - In the header, using Doxygen commands.[m +[36m@@ -58,7 +60,7 @@[m + #include "iup.h"[m + [m + /* This appears only here to avoid changing the iup.h header fo bug fixes */[m +[31m-#define IUP_VERSION_FIX " RC3"[m +[32m+[m[32m#define IUP_VERSION_FIX ""[m + #define IUP_VERSION_FIX_NUMBER 0[m + [m + const char iup_ident[] = [m +[1mdiff --git a/iup/src/iup.def b/iup/src/iup.def[m +[1mindex d0dcfbd..56e7225 100755[m +[1m--- a/iup/src/iup.def[m +[1m+++ b/iup/src/iup.def[m +[36m@@ -27,6 +27,8 @@[m [mIupGetFunction[m + IupGetGlobal[m + IupGetHandle[m + IupGetInt[m +[32m+[m[32mIupGetInt2[m +[32m+[m[32mIupGetIntInt[m + IupGetLanguage[m + IupGetName[m + IupHbox[m +[36m@@ -40,6 +42,7 @@[m [mIupListDialog[m + IupLoad[m + IupLoadBuffer[m + IupLoopStep[m +[32m+[m[32mIupLoopStepWait[m + IupMainLoop[m + IupMap[m + IupMapFont[m +[36m@@ -68,6 +71,7 @@[m [mIupShowXY[m + IupStoreAttribute[m + IupStoreGlobal[m + IupSubmenu[m +[32m+[m[32mIupSplit[m + IupText[m + IupToggle[m + IupUnMapFont[m +[36m@@ -135,6 +139,7 @@[m [mIupTextConvertLinColToPos[m + IupTextConvertPosToLinCol[m + IupUpdateChildren[m + IupTreeSetAttribute [m +[32m+[m[32mIupTreeSetAttributeHandle[m + IupTreeStoreAttribute[m + IupTreeGetAttribute [m + IupTreeGetInt [m +[36m@@ -175,8 +180,8 @@[m [miupdrvFontGetStringWidth[m + iupdrvFontGetMultiLineStringSize[m + iupdrvFontGetCharSize[m + iupdrvDrawFocusRect[m +[31m-iupdrvDisplayUpdate[m +[31m-iupdrvDisplayRedraw[m +[32m+[m[32miupdrvPostRedraw[m +[32m+[m[32miupdrvRedrawNow[m + iupdrvBaseUnMapMethod[m + iupdrvBaseSetZorderAttrib[m + iupdrvBaseSetTipVisibleAttrib[m +[36m@@ -351,3 +356,17 @@[m [miupArrayCreate[m + iupArrayCount[m + iupArrayAdd[m + iupSaveImageAsText[m +[32m+[m[32miupDrawCreateCanvas[m +[32m+[m[32miupDrawKillCanvas[m +[32m+[m[32miupDrawFlush[m +[32m+[m[32miupDrawGetSize[m +[32m+[m[32miupDrawParentBackground[m +[32m+[m[32miupDrawRectangle[m +[32m+[m[32miupDrawLine[m +[32m+[m[32miupDrawArc[m +[32m+[m[32miupDrawPolygon[m +[32m+[m[32miupDrawResetClip[m +[32m+[m[32miupDrawSetClipRect[m +[32m+[m[32miupDrawText[m +[32m+[m[32miupDrawUpdateSize[m +[32m+[m[32miupDrawImage[m +[1mdiff --git a/iup/src/iup_attrib.c b/iup/src/iup_attrib.c[m +[1mindex 2bbb80a..bf9576e 100755[m +[1m--- a/iup/src/iup_attrib.c[m +[1m+++ b/iup/src/iup_attrib.c[m +[36m@@ -63,7 +63,7 @@[m [mchar* IupGetAttributes(Ihandle *ih)[m + name = iupTableFirst(ih->attrib);[m + while (name)[m + {[m +[31m- if (!iupAttribIsInternal(name))[m +[32m+[m[32m if (!iupATTRIB_ISINTERNAL(name))[m + {[m + if (buffer[0] != 0)[m + strcat(buffer,",");[m +[36m@@ -115,6 +115,14 @@[m [mvoid iupAttribUpdateFromParent(Ihandle* ih)[m + }[m + }[m + [m +[32m+[m[32mstatic int iAttribIsInherit(Ihandle* ih, const char* name)[m +[32m+[m[32m{[m +[32m+[m[32m int inherit;[m +[32m+[m[32m char *def_value;[m +[32m+[m[32m iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit);[m +[32m+[m[32m return inherit;[m +[32m+[m[32m}[m +[32m+[m + static void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *value)[m + {[m + int inherit;[m +[36m@@ -123,17 +131,36 @@[m [mstatic void iAttribNotifyChildren(Ihandle *ih, const char* name, const char *val[m + {[m + if (!iupTableGet(child->attrib, name))[m + {[m +[31m- /* set on the class */[m +[31m- iupClassObjectSetAttribute(child, name, value, &inherit);[m +[32m+[m[32m /* set only if an inheritable attribute at the child */[m +[32m+[m[32m if (iAttribIsInherit(child, name))[m +[32m+[m[32m {[m +[32m+[m[32m /* set on the class */[m +[32m+[m[32m iupClassObjectSetAttribute(child, name, value, &inherit);[m + [m +[31m- if (inherit) /* inherit can be different for the child */[m + iAttribNotifyChildren(child, name, value);[m +[32m+[m[32m }[m + }[m + [m + child = child->brother;[m + }[m + }[m + [m +[32m+[m[32mvoid iupAttribUpdateChildren(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m char *name = iupTableFirst(ih->attrib);[m +[32m+[m[32m while (name)[m +[32m+[m[32m {[m +[32m+[m[32m if (!iupATTRIB_ISINTERNAL(name) && iAttribIsInherit(ih, name))[m +[32m+[m[32m {[m +[32m+[m[32m /* retrieve from the table */[m +[32m+[m[32m char* value = iupTableGet(ih->attrib, name);[m +[32m+[m[32m iAttribNotifyChildren(ih, name, value);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m name = iupTableNext(ih->attrib);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m + void iupAttribUpdate(Ihandle* ih)[m + {[m + char** name_array;[m +[36m@@ -159,7 +186,7 @@[m [mvoid iupAttribUpdate(Ihandle* ih)[m + for (i = 0; i < count; i++)[m + {[m + name = name_array[i];[m +[31m- if (!iupAttribIsInternal(name))[m +[32m+[m[32m if (!iupATTRIB_ISINTERNAL(name))[m + {[m + /* retrieve from the table */[m + value = iupTableGet(ih->attrib, name);[m +[36m@@ -196,7 +223,7 @@[m [mvoid IupSetAttribute(Ihandle *ih, const char* name, const char *value)[m + if (!iupObjectCheck(ih))[m + return;[m + [m +[31m- if (iupAttribIsInternal(name))[m +[32m+[m[32m if (iupATTRIB_ISINTERNAL(name))[m + iupAttribSetStr(ih, name, value);[m + else[m + {[m +[36m@@ -225,7 +252,7 @@[m [mvoid IupStoreAttribute(Ihandle *ih, const char* name, const char *value)[m + if (!iupObjectCheck(ih))[m + return;[m + [m +[31m- if (iupAttribIsInternal(name))[m +[32m+[m[32m if (iupATTRIB_ISINTERNAL(name))[m + iupAttribStoreStr(ih, name, value);[m + else[m + {[m +[36m@@ -257,7 +284,7 @@[m [mchar* IupGetAttribute(Ihandle *ih, const char* name)[m + if (!value)[m + value = iupAttribGet(ih, name);[m + [m +[31m- if (!value && !iupAttribIsInternal(name))[m +[32m+[m[32m if (!value && !iupATTRIB_ISINTERNAL(name))[m + {[m + if (inherit)[m + {[m +[36m@@ -346,6 +373,16 @@[m [mvoid iupAttribSetHandleName(Ihandle *ih)[m + IupSetHandle(str_name, ih);[m + }[m + [m +[32m+[m[32mchar* iupAttribGetHandleName(Ihandle *ih)[m +[32m+[m[32m{[m +[32m+[m[32m char str_name[100];[m +[32m+[m[32m sprintf(str_name, "_IUP_NAME(%p)", ih);[m +[32m+[m[32m if (IupGetHandle(str_name)==ih)[m +[32m+[m[32m return iupStrGetMemoryCopy(str_name);[m +[32m+[m[32m else[m +[32m+[m[32m return NULL;[m +[32m+[m[32m}[m +[32m+[m + void IupSetAttributeHandle(Ihandle *ih, const char* name, Ihandle *ih_named)[m + {[m + int inherit;[m +[36m@@ -426,7 +463,7 @@[m [mvoid iupAttribSetInt(Ihandle *ih, const char* name, int num)[m + [m + void iupAttribSetFloat(Ihandle *ih, const char* name, float num)[m + {[m +[31m- iupAttribSetStrf(ih, name, "%f", (double)num);[m +[32m+[m[32m iupAttribSetStrf(ih, name, "%g", (double)num);[m + }[m + [m + int iupAttribGetBoolean(Ihandle* ih, const char* name)[m +[36m@@ -479,7 +516,7 @@[m [mchar* iupAttribGetStr(Ihandle* ih, const char* name)[m + [m + value = iupTableGet(ih->attrib, name);[m + [m +[31m- if (!value && !iupAttribIsInternal(name))[m +[32m+[m[32m if (!value && !iupATTRIB_ISINTERNAL(name))[m + {[m + int inherit;[m + char *def_value;[m +[36m@@ -555,6 +592,15 @@[m [mstatic void iAttribCapture(char* env_buffer, char* dlm)[m + env_buffer[i-1]='\0'; /* discard delimiter */[m + }[m + [m +[32m+[m[32mstatic void iAttribSkipComment(void)[m +[32m+[m[32m{[m +[32m+[m[32m int c;[m +[32m+[m[32m do[m +[32m+[m[32m {[m +[32m+[m[32m c = *env_str; ++env_str;[m +[32m+[m[32m } while ((c > 0) && (c != '\n'));[m +[32m+[m[32m}[m +[32m+[m + static int iAttribToken(char* env_buffer)[m + {[m + for (;;)[m +[36m@@ -565,6 +611,11 @@[m [mstatic int iAttribToken(char* env_buffer)[m + case 0:[m + return IUPLEX_TK_END;[m + [m +[32m+[m[32m case '#': /* Skip comment */[m +[32m+[m[32m case '%': /* Skip comment */[m +[32m+[m[32m iAttribSkipComment();[m +[32m+[m[32m continue;[m +[32m+[m + case ' ': /* ignore whitespace */[m + case '\t':[m + case '\n':[m +[36m@@ -609,7 +660,7 @@[m [mstatic void iAttribParse(Ihandle *ih, const char* str)[m + {[m + switch (iAttribToken(env_buffer))[m + {[m +[31m- case IUPLEX_TK_END: /* procedimento igual ao IUPLEX_TK_COMMA */[m +[32m+[m[32m case IUPLEX_TK_END: /* same as IUPLEX_TK_COMMA */[m + end = 1;[m + case IUPLEX_TK_COMMA:[m + if (name)[m +[1mdiff --git a/iup/src/iup_attrib.h b/iup/src/iup_attrib.h[m +[1mindex 993dd3c..8593d6e 100755[m +[1m--- a/iup/src/iup_attrib.h[m +[1m+++ b/iup/src/iup_attrib.h[m +[36m@@ -28,7 +28,7 @@[m [mextern "C" {[m + [m + /** Returns true if the attribute name if in the internal format "_IUP...".[m + * \ingroup attrib */[m +[31m-#define iupAttribIsInternal(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0)[m +[32m+[m[32m#define iupATTRIB_ISINTERNAL(_name) ((_name[0] == '_' && _name[1] == 'I' && _name[2] == 'U' && _name[3] == 'P')? 1: 0)[m + [m + /** Returns true if the attribute name is a known pointer.[m + * \ingroup attrib */[m +[36m@@ -102,16 +102,23 @@[m [mfloat iupAttribGetFloat(Ihandle* ih, const char* name);[m + * \ingroup attrib */[m + void iupAttribSetHandleName(Ihandle *ih);[m + [m +[32m+[m[32m/** Returns the internal name if set.[m +[32m+[m[32m * \ingroup attrib */[m +[32m+[m[32mchar* iupAttribGetHandleName(Ihandle *ih);[m +[32m+[m + [m + /* For all attributes in the evironment, call the class SetAttribute only.[m +[31m- * Called only after the element is mapped. */[m +[32m+[m[32m * Called only after the element is mapped, but before the children are mapped. */[m + void iupAttribUpdate(Ihandle* ih); [m + [m + /* For all registered inherited attributes, checks the parent tree and [m + * call the class SetAttribute if the attribute is defined.[m +[31m- * Called only after the element is mapped. */[m +[32m+[m[32m * Called only after the element is mapped, but before the children are mapped. */[m + void iupAttribUpdateFromParent(Ihandle* ih);[m + [m +[32m+[m[32m/* For all attributes in the evironment, call the class SetAttribute only for the children.[m +[32m+[m[32m * Called only after the element is mapped, and after the children are mapped. */[m +[32m+[m[32mvoid iupAttribUpdateChildren(Ihandle* ih);[m + [m + [m + /* Other functions declared in <iup.h> and implemented here. [m +[1mdiff --git a/iup/src/iup_box.c b/iup/src/iup_box.c[m +[1mindex 54e56d9..111cab4 100755[m +[1m--- a/iup/src/iup_box.c[m +[1m+++ b/iup/src/iup_box.c[m +[36m@@ -172,9 +172,9 @@[m [mstatic int iBoxSetCMarginAttrib(Ihandle* ih, const char* value)[m + iupdrvFontGetCharSize(ih, &charwidth, &charheight);[m + iupStrToIntInt(value, &cmargin_x, &cmargin_y, 'x');[m + if (cmargin_x!=-1)[m +[31m- ih->data->margin_x = iupHEIGHT2RASTER(cmargin_x, charheight);[m +[32m+[m[32m ih->data->margin_x = iupWIDTH2RASTER(cmargin_x, charwidth);[m + if (cmargin_y!=-1)[m +[31m- ih->data->margin_x = iupWIDTH2RASTER(cmargin_y, charwidth);[m +[32m+[m[32m ih->data->margin_y = iupHEIGHT2RASTER(cmargin_y, charheight);[m + return 0;[m + }[m + [m +[36m@@ -227,8 +227,12 @@[m [mIclass* iupBoxClassBase(void)[m + /* boxes only */[m + iupClassRegisterAttribute(ic, "GAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED);[m + iupClassRegisterAttribute(ic, "CGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "NGAP", iBoxGetGapAttrib, iBoxSetGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "NCGAP", iBoxGetCGapAttrib, iBoxSetCGapAttrib, IUPAF_SAMEASSYSTEM, "0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "MARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);[m + iupClassRegisterAttribute(ic, "CMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "NMARGIN", iBoxGetMarginAttrib, iBoxSetMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "NCMARGIN", iBoxGetCMarginAttrib, iBoxSetCMarginAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + [m + iupClassRegisterAttribute(ic, "EXPANDCHILDREN", iBoxGetExpandChildrenAttrib, iBoxSetExpandChildrenAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "HOMOGENEOUS", iBoxGetHomogeneousAttrib, iBoxSetHomogeneousAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[1mdiff --git a/iup/src/iup_button.c b/iup/src/iup_button.c[m +[1mindex 7719663..56befe2 100755[m +[1m--- a/iup/src/iup_button.c[m +[1m+++ b/iup/src/iup_button.c[m +[36m@@ -100,8 +100,9 @@[m [mstatic void iButtonComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *ex[m + char* value = iupAttribGet(ih, "IMAGE");[m + if (value)[m + {[m +[32m+[m[32m char* title = iupAttribGet(ih, "TITLE");[m + type = IUP_BUTTON_IMAGE;[m +[31m- if (iupAttribGet(ih, "TITLE"))[m +[32m+[m[32m if (title && *title!=0)[m + type |= IUP_BUTTON_TEXT;[m + }[m + else[m +[1mdiff --git a/iup/src/iup_canvas.c b/iup/src/iup_canvas.c[m +[1mindex 5eda988..46fefd9 100755[m +[1m--- a/iup/src/iup_canvas.c[m +[1m+++ b/iup/src/iup_canvas.c[m +[36m@@ -55,14 +55,14 @@[m [mvoid iupCanvasCalcScrollRealPos(double min, double max, double *pos,[m + char* iupCanvasGetPosXAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->posx);[m +[32m+[m[32m sprintf(str, "%g", ih->data->posx);[m + return str;[m + }[m + [m + char* iupCanvasGetPosYAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->posy);[m +[32m+[m[32m sprintf(str, "%g", ih->data->posy);[m + return str;[m + }[m + [m +[1mdiff --git a/iup/src/iup_classattrib.c b/iup/src/iup_classattrib.c[m +[1mindex df8f873..3ac780c 100755[m +[1m--- a/iup/src/iup_classattrib.c[m +[1m+++ b/iup/src/iup_classattrib.c[m +[36m@@ -55,7 +55,7 @@[m [mstatic const char* iClassFindId(const char* name)[m + {[m + if (*name >= '0' && *name <= '9')[m + return name;[m +[31m- if (*name == '*' || *name == ':')[m +[32m+[m[32m if (*name == '*' || *name == ':' || *name == '-')[m + return name;[m + [m + name++;[m +[36m@@ -94,7 +94,6 @@[m [mint iupClassObjectSetAttribute(Ihandle* ih, const char* name, const char * value[m + const char* name_id = iClassFindId(name);[m + if (name_id)[m + {[m +[31m- IattribFunc* afunc;[m + const char* partial_name = iClassCutNameId(name, name_id);[m + if (!partial_name)[m + partial_name = "IDVALUE"; /* pure numbers are used as attributes in IupList and IupMatrix, [m +[36m@@ -474,8 +473,12 @@[m [mvoid iupClassObjectEnsureDefaultAttributes(Ihandle* ih)[m + (afunc->call_global_default && iupGlobalDefaultColorChanged(afunc->default_value)))[m + {[m + if ((!ih->handle && (afunc->flags & IUPAF_NOT_MAPPED)) ||[m +[31m- (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED) && !iupAttribGet(ih, name)))[m +[31m- afunc->set(ih, iClassGetDefaultValue(afunc));[m +[32m+[m[32m (ih->handle && !(afunc->flags & IUPAF_NOT_MAPPED)))[m +[32m+[m[32m {[m +[32m+[m[32m char* value = iupAttribGet(ih, name);[m +[32m+[m[32m if (!value) /* if set will be updated later */[m +[32m+[m[32m afunc->set(ih, iClassGetDefaultValue(afunc));[m +[32m+[m[32m }[m + }[m + }[m + [m +[1mdiff --git a/iup/src/iup_classbase.c b/iup/src/iup_classbase.c[m +[1mindex 9cb9e63..03a98d1 100755[m +[1m--- a/iup/src/iup_classbase.c[m +[1m+++ b/iup/src/iup_classbase.c[m +[36m@@ -164,8 +164,7 @@[m [mstatic char* iBaseGetPositionAttrib(Ihandle* ih)[m + [m + static int iBaseSetPositionAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (ih->is_floating)[m +[31m- iupStrToIntInt(value, &ih->x, &ih->y, ',');[m +[32m+[m[32m iupStrToIntInt(value, &ih->x, &ih->y, ',');[m + return 0;[m + }[m + [m +[36m@@ -211,7 +210,7 @@[m [mchar* iupBaseGetVisibleAttrib(Ihandle* ih)[m + int iupBaseSetVisibleAttrib(Ihandle* ih, const char* value)[m + {[m + iupdrvSetVisible(ih, iupStrBoolean(value));[m +[31m- return 0;[m +[32m+[m[32m return 1; /* must be 1 to mark when set at the element */[m + }[m + [m + char* iupBaseNativeParentGetBgColorAttrib(Ihandle* ih)[m +[36m@@ -410,15 +409,19 @@[m [mvoid iupBaseRegisterCommonAttrib(Iclass* ic)[m + iupClassRegisterAttribute(ic, "FLOATING", iBaseGetFloatingAttrib, iBaseSetFloatingAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "EXPAND", iBaseGetExpandAttrib, iBaseSetExpandAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "NORMALIZERGROUP", NULL, iBaseSetNormalizerGroupAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "EXPANDWEIGTH", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + [m + /* make sure everyone has the correct default value */[m +[31m- iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);[m + iupClassRegisterAttribute(ic, "ACTIVE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);[m + if (ic->is_interactive)[m + iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);[m + else[m + iupClassRegisterAttribute(ic, "CANFOCUS", NULL, NULL, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT);[m + [m +[32m+[m[32m /* if not native container, must set at children,[m +[32m+[m[32m native container will automatically hide its children. */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "VISIBLE", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT); /* let the attribute to be propagated to children */[m +[32m+[m + iupClassRegisterAttribute(ic, "SIZE", iupBaseGetSizeAttrib, iupBaseSetSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "RASTERSIZE", iupBaseGetRasterSizeAttrib, iupBaseSetRasterSizeAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "CHARSIZE", iupBaseGetCharSizeAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[36m@@ -439,7 +442,7 @@[m [mvoid iupBaseRegisterCommonAttrib(Iclass* ic)[m + [m + void iupBaseRegisterVisualAttrib(Iclass* ic)[m + {[m +[31m- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT); /* VISIBLE inheritance comes from the native system */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iupBaseSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT);[m + iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);[m + [m + iupClassRegisterAttribute(ic, "ZORDER", NULL, iupdrvBaseSetZorderAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[1mdiff --git a/iup/src/iup_dialog.c b/iup/src/iup_dialog.c[m +[1mindex d70e12c..1aaf095 100755[m +[1m--- a/iup/src/iup_dialog.c[m +[1m+++ b/iup/src/iup_dialog.c[m +[36m@@ -220,11 +220,19 @@[m [mstatic void iDialogDestroyMethod(Ihandle* ih)[m + iupDlgListRemove(ih);[m + }[m + [m +[32m+[m[32mstatic int iDialogSetMenuAttrib(Ihandle* ih, const char* value);[m +[32m+[m + static void iDialogComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)[m + {[m + int decorwidth, decorheight;[m + Ihandle* child = ih->firstchild;[m + [m +[32m+[m[32m /* if does not have a menu, but the attribute is defined,[m +[32m+[m[32m try to update the menu before retrieving the decoration. */[m +[32m+[m[32m char* value = iupAttribGet(ih, "MENU");[m +[32m+[m[32m if (!ih->data->menu && value)[m +[32m+[m[32m iDialogSetMenuAttrib(ih, value);[m +[32m+[m + iupDialogGetDecorSize(ih, &decorwidth, &decorheight);[m + *w = decorwidth;[m + *h = decorheight;[m +[36m@@ -278,20 +286,22 @@[m [mstatic void iDialogAfterShow(Ihandle* ih)[m + {[m + Ihandle* old_focus;[m + IFni show_cb;[m +[32m+[m[32m int show_state;[m + [m + /* process all pending messages */[m + IupFlush();[m + [m + old_focus = IupGetFocus();[m +[32m+[m[32m show_state = ih->data->show_state;[m + [m + show_cb = (IFni)IupGetCallback(ih, "SHOW_CB");[m +[31m- if (show_cb && show_cb(ih, ih->data->show_state) == IUP_CLOSE)[m +[32m+[m[32m if (show_cb && show_cb(ih, show_state) == IUP_CLOSE)[m + {[m + IupExitLoop();[m + return;[m + }[m + [m +[31m- if (ih->data->show_state == IUP_SHOW)[m +[32m+[m[32m if (show_state == IUP_SHOW)[m + {[m + if (show_cb)[m + IupFlush(); /* again to update focus */[m +[36m@@ -718,7 +728,8 @@[m [mIclass* iupDialogGetClass(void)[m + iupBaseRegisterVisualAttrib(ic);[m + [m + /* Overwrite Visual */[m +[31m- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT); /* the only case where VISIBLE default is NO */[m +[32m+[m[32m /* the only case where VISIBLE default is NO, and must not be propagated to the dialog children */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, iDialogSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NO_INHERIT);[m[41m [m + [m + /* IupDialog only */[m + iupClassRegisterAttribute(ic, "MENU", NULL, iDialogSetMenuAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[1mdiff --git a/iup/src/iup_drv.h b/iup/src/iup_drv.h[m +[1mindex 5cdb8e7..1071347 100755[m +[1m--- a/iup/src/iup_drv.h[m +[1m+++ b/iup/src/iup_drv.h[m +[36m@@ -60,11 +60,11 @@[m [mvoid iupdrvSetActive(Ihandle* ih, int enable);[m + [m + /** Post a redraw of a control.[m + * \ingroup drv */[m +[31m-void iupdrvDisplayUpdate(Ihandle *ih);[m +[32m+[m[32mvoid iupdrvPostRedraw(Ihandle *ih);[m + [m + /** Force a redraw of a control.[m + * \ingroup drv */[m +[31m-void iupdrvDisplayRedraw(Ihandle *ih);[m +[32m+[m[32mvoid iupdrvRedrawNow(Ihandle *ih);[m + [m + /** Reparent the native control.[m + * \ingroup drv */[m +[1mdiff --git a/iup/src/iup_focus.c b/iup/src/iup_focus.c[m +[1mindex be54b75..fc0579c 100755[m +[1m--- a/iup/src/iup_focus.c[m +[1m+++ b/iup/src/iup_focus.c[m +[36m@@ -220,15 +220,25 @@[m [mvoid iupFocusPrevious(Ihandle *ih)[m + /* local variables */[m + static Ihandle* iup_current_focus = NULL;[m + [m +[32m+[m[32mIhandle* IupGetFocus(void)[m +[32m+[m[32m{[m +[32m+[m[32m return iup_current_focus;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupSetCurrentFocus(Ihandle *ih)[m +[32m+[m[32m{[m +[32m+[m[32m iup_current_focus = ih;[m +[32m+[m[32m}[m +[32m+[m + Ihandle *IupSetFocus(Ihandle *ih)[m + {[m +[31m- Ihandle* old_focus = iup_current_focus;[m +[32m+[m[32m Ihandle* old_focus = IupGetFocus();[m + [m + iupASSERT(iupObjectCheck(ih));[m + if (!iupObjectCheck(ih))[m + return old_focus;[m + [m +[31m- /* iup_current_focus is NOT set here, [m +[32m+[m[32m /* Current focus is NOT set here,[m[41m [m + only in the iupCallGetFocusCb */[m + [m + if (iupFocusCanAccept(ih)) [m +[36m@@ -237,16 +247,11 @@[m [mIhandle *IupSetFocus(Ihandle *ih)[m + return old_focus;[m + }[m + [m +[31m-Ihandle *IupGetFocus(void)[m +[31m-{[m +[31m- return iup_current_focus;[m +[31m-}[m +[31m-[m + void iupCallGetFocusCb(Ihandle *ih)[m + {[m + Icallback cb;[m + [m +[31m- if (ih == iup_current_focus) /* avoid duplicate messages */[m +[32m+[m[32m if (ih == IupGetFocus()) /* avoid duplicate messages */[m + return;[m + [m + cb = (Icallback)IupGetCallback(ih, "GETFOCUS_CB");[m +[36m@@ -258,14 +263,14 @@[m [mvoid iupCallGetFocusCb(Ihandle *ih)[m + if (cb2) cb2(ih, 1);[m + }[m + [m +[31m- iup_current_focus = ih;[m +[32m+[m[32m iupSetCurrentFocus(ih);[m + }[m + [m + void iupCallKillFocusCb(Ihandle *ih)[m + {[m + Icallback cb;[m + [m +[31m- if (ih != iup_current_focus) /* avoid duplicate messages */[m +[32m+[m[32m if (ih != IupGetFocus()) /* avoid duplicate messages */[m + return;[m + [m + cb = IupGetCallback(ih, "KILLFOCUS_CB");[m +[36m@@ -277,5 +282,5 @@[m [mvoid iupCallKillFocusCb(Ihandle *ih)[m + if (cb2) cb2(ih, 0);[m + }[m + [m +[31m- iup_current_focus = NULL;[m +[32m+[m[32m iupSetCurrentFocus(NULL);[m + }[m +[1mdiff --git a/iup/src/iup_focus.h b/iup/src/iup_focus.h[m +[1mindex 239e233..9fb4e58 100755[m +[1m--- a/iup/src/iup_focus.h[m +[1m+++ b/iup/src/iup_focus.h[m +[36m@@ -39,6 +39,7 @@[m [mIhandle* iupFocusNextInteractive(Ihandle *ih);[m + void iupFocusNext(Ihandle *ih);[m + void iupFocusPrevious(Ihandle *ih);[m + [m +[32m+[m[32mvoid iupSetCurrentFocus(Ihandle *ih);[m + [m + /* Other functions declared in <iup.h> and implemented here. [m + IupPreviousField[m +[1mdiff --git a/iup/src/iup_getparam.c b/iup/src/iup_getparam.c[m +[1mindex 1418aa5..7fd6a94 100755[m +[1m--- a/iup/src/iup_getparam.c[m +[1m+++ b/iup/src/iup_getparam.c[m +[36m@@ -45,6 +45,14 @@[m [mstatic int iParamButtonCancel_CB(Ihandle* self)[m + return IUP_CLOSE;[m + }[m + [m +[32m+[m[32mstatic int iParamButtonHelp_CB(Ihandle* self)[m +[32m+[m[32m{[m +[32m+[m[32m Ihandle* dlg = IupGetDialog(self);[m +[32m+[m[32m Iparamcb cb = (Iparamcb)IupGetCallback(dlg, "PARAM_CB");[m +[32m+[m[32m if (cb) cb(dlg, -4, (void*)iupAttribGet(dlg, "USER_DATA"));[m +[32m+[m[32m return IUP_DEFAULT;[m +[32m+[m[32m}[m +[32m+[m + static int iParamToggleAction_CB(Ihandle *self, int v)[m + {[m + Ihandle* param = (Ihandle*)iupAttribGetInherit(self, "_IUPGP_PARAM");[m +[36m@@ -288,7 +296,7 @@[m [mstatic int iParamColorButton_CB(Ihandle *self, int button, int pressed)[m + [m + IupPopup(dlg, IUP_CENTER, IUP_CENTER);[m + [m +[31m- if (IupGetInt(dlg, "STATUS") != -1)[m +[32m+[m[32m if (IupGetInt(dlg, "STATUS")==1)[m + {[m + char* value = IupGetAttribute(dlg, "VALUE");[m + IupSetAttribute(textbox, "VALUE", value);[m +[36m@@ -381,11 +389,13 @@[m [mstatic int iParamSpinInt_CB(Ihandle *self, int pos)[m + static Ihandle* iParamCreateBox(Ihandle* param)[m + {[m + Ihandle *box, *ctrl = NULL, *label;[m +[31m- char *type;[m +[32m+[m[32m char *type = iupAttribGet(param, "TYPE");[m +[32m+[m +[32m+[m[32m if (iupStrEqual(type, "BUTTONNAMES"))[m +[32m+[m[32m return NULL;[m + [m + label = IupLabel(iupAttribGet(param, "TITLE"));[m + [m +[31m- type = iupAttribGet(param, "TYPE");[m + if (iupStrEqual(type, "SEPARATOR"))[m + {[m + box = IupHbox(label, NULL);[m +[36m@@ -563,7 +573,7 @@[m [mstatic Ihandle* iParamCreateBox(Ihandle* param)[m + float step = iupAttribGetFloat(param, "STEP");[m + float val = iupAttribGetFloat(param, "VALUE");[m + if (step == 0) step = (max-min)/20.0f;[m +[31m- IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)max);[m +[32m+[m[32m IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)max);[m + [m + /* here spin is always [0-spinmax] converted to [min-max] */[m + [m +[36m@@ -584,7 +594,7 @@[m [mstatic Ihandle* iParamCreateBox(Ihandle* param)[m + if (min == 0)[m + IupSetAttribute(ctrl, "MASK", IUP_MASK_UFLOAT);[m + else[m +[31m- IupSetfAttribute(ctrl, "MASKFLOAT", "%f:%f", (double)min, (double)1.0e10);[m +[32m+[m[32m IupSetfAttribute(ctrl, "MASKFLOAT", "%g:%g", (double)min, (double)1.0e10);[m + IupAppend(box, ctrl);[m + }[m + else[m +[36m@@ -620,6 +630,7 @@[m [mstatic Ihandle* iParamCreateBox(Ihandle* param)[m + }[m + IupSetfAttribute(ctrl, "SPINMAX", "%d", max);[m + IupSetfAttribute(ctrl, "SPINMIN", "%d", min);[m +[32m+[m[32m IupSetfAttribute(ctrl, "MASKINT", "%d:%d", min, max);[m + }[m + else if (iupAttribGetInt(param, "PARTIAL"))[m + {[m +[36m@@ -696,7 +707,7 @@[m [mstatic Ihandle* iParamCreateBox(Ihandle* param)[m + [m + static Ihandle* IupParamDlgP(Ihandle** params)[m + {[m +[31m- Ihandle *dlg, *button_ok, *button_cancel, [m +[32m+[m[32m Ihandle *dlg, *button_ok, *button_cancel, *button_help=NULL,[m[41m [m + *dlg_box, *button_box, *param_box;[m + int i, lbl_width, p, expand;[m + [m +[36m@@ -713,7 +724,23 @@[m [mstatic Ihandle* IupParamDlgP(Ihandle** params)[m + i = 0; expand = 0;[m + while (params[i] != NULL)[m + {[m +[31m- IupAppend(param_box, iParamCreateBox(params[i]));[m +[32m+[m[32m Ihandle* box = iParamCreateBox(params[i]);[m +[32m+[m[32m if (box)[m +[32m+[m[32m IupAppend(param_box, box);[m +[32m+[m[32m else /* buttonnames */[m +[32m+[m[32m {[m +[32m+[m[32m char* value = iupAttribGet(params[i], "_IUPGP_OK");[m +[32m+[m[32m if (value && *value) IupSetAttribute(button_ok, "TITLE", value);[m +[32m+[m[32m value = iupAttribGet(params[i], "_IUPGP_CANCEL");[m +[32m+[m[32m if (value && *value) IupSetAttribute(button_cancel, "TITLE", value);[m +[32m+[m[32m value = iupAttribGet(params[i], "_IUPGP_HELP");[m +[32m+[m[32m if (value && *value)[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m button_help = IupButton(value, NULL);[m +[32m+[m[32m IupSetAttribute(button_help, "PADDING", "20x0");[m +[32m+[m[32m IupSetCallback(button_help, "ACTION", (Icallback)iParamButtonHelp_CB);[m +[32m+[m[32m }[m +[32m+[m[32m }[m + [m + if (IupGetInt(params[i], "EXPAND"))[m + expand = 1;[m +[36m@@ -725,6 +752,7 @@[m [mstatic Ihandle* IupParamDlgP(Ihandle** params)[m + IupFill(),[m + button_ok,[m + button_cancel,[m +[32m+[m[32m button_help,[m + NULL);[m + IupSetAttribute(button_box,"MARGIN","0x0");[m + IupSetAttribute(button_box, "NORMALIZESIZE", "HORIZONTAL");[m +[36m@@ -926,6 +954,23 @@[m [mstatic void iParamSetFileOptions(char* extra, Ihandle* param)[m + iupAttribStoreStr(param, "_IUPGP_NOOVERWRITEPROMPT", nooverwriteprompt);[m + }[m + [m +[32m+[m[32mstatic void iParamSetButtonNames(char* extra, Ihandle* param)[m +[32m+[m[32m{[m +[32m+[m[32m char *ok, *cancel, *help;[m +[32m+[m[32m int count;[m +[32m+[m +[32m+[m[32m if (!extra)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m ok = iParamGetNextStrItem(extra, ',', &count); extra += count;[m +[32m+[m[32m cancel = iParamGetNextStrItem(extra, ',', &count); extra += count;[m +[32m+[m[32m help = iParamGetNextStrItem(extra, ',', &count); extra += count;[m +[32m+[m +[32m+[m[32m iupAttribStoreStr(param, "_IUPGP_OK", ok);[m +[32m+[m[32m iupAttribStoreStr(param, "_IUPGP_CANCEL", cancel);[m +[32m+[m[32m iupAttribStoreStr(param, "_IUPGP_HELP", help);[m +[32m+[m[32m}[m +[32m+[m + static void iParamSetListItems(char* extra, Ihandle* param)[m + {[m + int d = 1, count;[m +[36m@@ -1082,6 +1127,12 @@[m [mstatic Ihandle *IupParamf(const char* format, int *line_size)[m + iupAttribSetStr(param, "TYPE", "SEPARATOR");[m + iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */[m + break;[m +[32m+[m[32m case 'u':[m +[32m+[m[32m iupAttribSetStr(param, "TYPE", "BUTTONNAMES");[m +[32m+[m[32m iupAttribSetStr(param, "DATA_TYPE", "-1"); /* NONE */[m +[32m+[m[32m extra = iParamGetStrExtra(line_ptr, '[', ']', &count); line_ptr += count;[m +[32m+[m[32m iParamSetButtonNames(extra, param);[m +[32m+[m[32m break;[m + default:[m + return NULL;[m + }[m +[36m@@ -1099,7 +1150,7 @@[m [mstatic Ihandle *IupParamf(const char* format, int *line_size)[m + [m + int iupGetParamCount(const char *format, int *param_extra)[m + {[m +[31m- int param_count = 0, sep = 0;[m +[32m+[m[32m int param_count = 0, extra = 0;[m + const char* s = format;[m + [m + *param_extra = 0;[m +[36m@@ -1107,14 +1158,20 @@[m [mint iupGetParamCount(const char *format, int *param_extra)[m + {[m + if (*s == '%' && *(s+1) == 't') /* do not count separator lines */[m + {[m +[31m- sep = 1;[m +[32m+[m[32m extra = 1;[m +[32m+[m[32m (*param_extra)++;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m if (*s == '%' && *(s+1) == 'u') /* do not count button names lines */[m +[32m+[m[32m {[m +[32m+[m[32m extra = 1;[m + (*param_extra)++;[m + }[m + [m + if (*s == '\n')[m + {[m +[31m- if (sep)[m +[31m- sep = 0;[m +[32m+[m[32m if (extra)[m +[32m+[m[32m extra = 0;[m + else[m + param_count++;[m + }[m +[36m@@ -1154,21 +1211,21 @@[m [mint IupGetParamv(const char* title, Iparamcb action, void* user_data, const char[m + return 0;[m + [m + data_type = IupGetInt(params[i], "DATA_TYPE");[m +[31m- if (data_type == 1)[m +[31m- {[m +[31m- int *data_int = (int*)(param_data[p]);[m +[31m- if (!data_int) return 0;[m +[31m- iupAttribSetStrf(params[i], "VALUE", "%d", *data_int);[m +[31m- p++;[m +[31m- }[m +[31m- else if (data_type == 2)[m +[32m+[m[32m if (data_type == 2) /* float */[m + {[m + float *data_float = (float*)(param_data[p]);[m + if (!data_float) return 0;[m + iupAttribSetStrf(params[i], "VALUE", "%g", *data_float);[m + p++;[m + }[m +[31m- else if (data_type == 0)[m +[32m+[m[32m else if (data_type == 1) /* integer */[m +[32m+[m[32m {[m +[32m+[m[32m int *data_int = (int*)(param_data[p]);[m +[32m+[m[32m if (!data_int) return 0;[m +[32m+[m[32m iupAttribSetStrf(params[i], "VALUE", "%d", *data_int);[m +[32m+[m[32m p++;[m +[32m+[m[32m }[m +[32m+[m[32m else if (data_type == 0) /* string */[m + {[m + char *data_str = (char*)(param_data[p]);[m + if (!data_str) return 0;[m +[1mdiff --git a/iup/src/iup_globalattrib.c b/iup/src/iup_globalattrib.c[m +[1mindex 00586fb..d1a2584 100755[m +[1m--- a/iup/src/iup_globalattrib.c[m +[1m+++ b/iup/src/iup_globalattrib.c[m +[36m@@ -129,12 +129,14 @@[m [mint iupGlobalIsPointer(const char* name)[m + static struct {[m + const char *name;[m + } ptr_table[] = {[m +[31m-#ifdef WIN32[m +[32m+[m[32m#ifndef GTK_MAC[m +[32m+[m[32m #ifdef WIN32[m + {"HINSTANCE"},[m +[31m-#else[m +[32m+[m[32m #else[m + {"XDISPLAY"},[m + {"XSCREEN"},[m + {"APPSHELL"},[m +[32m+[m[32m #endif[m + #endif[m + };[m + #define PTR_TABLE_SIZE ((sizeof ptr_table)/(sizeof ptr_table[0]))[m +[1mdiff --git a/iup/src/iup_hbox.c b/iup/src/iup_hbox.c[m +[1mindex e790636..a8a93a3 100755[m +[1m--- a/iup/src/iup_hbox.c[m +[1m+++ b/iup/src/iup_hbox.c[m +[36m@@ -213,6 +213,13 @@[m [mstatic void iHboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)[m + else[m + {[m + int empty = (child->expand & IUP_EXPAND_W1)? empty_w1: ((child->expand & IUP_EXPAND_W0)? empty_w0: 0);[m +[32m+[m[32m char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH");[m +[32m+[m[32m if (weigth_str)[m +[32m+[m[32m {[m +[32m+[m[32m float weigth;[m[41m [m +[32m+[m[32m if (iupStrToFloat(weigth_str, &weigth))[m +[32m+[m[32m empty = iupROUND(empty * weigth);[m +[32m+[m[32m }[m + iupBaseSetCurrentSize(child, child->naturalwidth+empty, client_height, shrink);[m + }[m + [m +[1mdiff --git a/iup/src/iup_key.h b/iup/src/iup_key.h[m +[1mindex 37d6c9d..9b30bc4 100755[m +[1m--- a/iup/src/iup_key.h[m +[1m+++ b/iup/src/iup_key.h[m +[36m@@ -51,16 +51,16 @@[m [mvoid iupKeyInit(void);[m + [m + #define IUPKEY_STATUS_SIZE 11 /* 10 chars + null */[m + #define IUPKEY_STATUS_INIT " " /* 10 spaces */[m +[31m-#define iupKEYSETSHIFT(_s) (_s[0]='S')[m +[31m-#define iupKEYSETCONTROL(_s) (_s[1]='C')[m +[31m-#define iupKEYSETBUTTON1(_s) (_s[2]='1')[m +[31m-#define iupKEYSETBUTTON2(_s) (_s[3]='2')[m +[31m-#define iupKEYSETBUTTON3(_s) (_s[4]='3')[m +[31m-#define iupKEYSETDOUBLE(_s) (_s[5]='D')[m +[31m-#define iupKEYSETALT(_s) (_s[6]='A')[m +[31m-#define iupKEYSETSYS(_s) (_s[7]='Y')[m +[31m-#define iupKEYSETBUTTON4(_s) (_s[8]='4')[m +[31m-#define iupKEYSETBUTTON5(_s) (_s[9]='5')[m +[32m+[m[32m#define iupKEY_SETSHIFT(_s) (_s[0]='S')[m +[32m+[m[32m#define iupKEY_SETCONTROL(_s) (_s[1]='C')[m +[32m+[m[32m#define iupKEY_SETBUTTON1(_s) (_s[2]='1')[m +[32m+[m[32m#define iupKEY_SETBUTTON2(_s) (_s[3]='2')[m +[32m+[m[32m#define iupKEY_SETBUTTON3(_s) (_s[4]='3')[m +[32m+[m[32m#define iupKEY_SETDOUBLE(_s) (_s[5]='D')[m +[32m+[m[32m#define iupKEY_SETALT(_s) (_s[6]='A')[m +[32m+[m[32m#define iupKEY_SETSYS(_s) (_s[7]='Y')[m +[32m+[m[32m#define iupKEY_SETBUTTON4(_s) (_s[8]='4')[m +[32m+[m[32m#define iupKEY_SETBUTTON5(_s) (_s[9]='5')[m + [m + [m + #ifdef __cplusplus[m +[1mdiff --git a/iup/src/iup_layout.c b/iup/src/iup_layout.c[m +[1mindex b96293c..0ccd496 100755[m +[1m--- a/iup/src/iup_layout.c[m +[1m+++ b/iup/src/iup_layout.c[m +[36m@@ -43,7 +43,7 @@[m [mstatic void iLayoutDisplayUpdateChildren(Ihandle *ih)[m + iLayoutDisplayUpdateChildren(child);[m + [m + if (child->handle && child->iclass->nativetype != IUP_TYPEVOID)[m +[31m- iupdrvDisplayUpdate(child);[m +[32m+[m[32m iupdrvPostRedraw(child);[m + }[m + }[m + [m +[36m@@ -54,7 +54,7 @@[m [mvoid IupUpdate(Ihandle* ih)[m + return;[m + [m + if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID)[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + }[m + [m + void IupUpdateChildren(Ihandle* ih)[m +[36m@@ -74,7 +74,7 @@[m [mstatic void iLayoutDisplayRedrawChildren(Ihandle *ih)[m + iLayoutDisplayRedrawChildren(child);[m + [m + if (child->handle && child->iclass->nativetype != IUP_TYPEVOID)[m +[31m- iupdrvDisplayRedraw(child);[m +[32m+[m[32m iupdrvRedrawNow(child);[m + }[m + }[m + [m +[36m@@ -85,7 +85,7 @@[m [mvoid IupRedraw(Ihandle* ih, int children)[m + return;[m + [m + if (ih->handle && ih->iclass->nativetype != IUP_TYPEVOID)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + [m + if (children)[m + iLayoutDisplayRedrawChildren(ih);[m +[36m@@ -136,7 +136,7 @@[m [mvoid iupLayoutCompute(Ihandle* ih)[m + iupBaseSetPosition(ih, 0, 0);[m + }[m + [m +[31m-static void iLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h)[m +[32m+[m[32mvoid iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h)[m + {[m + if (ih->has_minsize)[m + {[m +[36m@@ -163,7 +163,8 @@[m [mvoid iupBaseComputeNaturalSize(Ihandle* ih)[m + ih->naturalwidth = ih->userwidth;[m + ih->naturalheight = ih->userheight;[m + [m +[31m- if (ih->iclass->childtype!=IUP_CHILDNONE || ih->iclass->nativetype == IUP_TYPEDIALOG)[m +[32m+[m[32m if (ih->iclass->childtype!=IUP_CHILDNONE ||[m[41m [m +[32m+[m[32m ih->iclass->nativetype == IUP_TYPEDIALOG) /* pre-defined dialogs can restrict the number of children */[m + {[m + int w=0, h=0, children_expand;[m + [m +[36m@@ -190,7 +191,7 @@[m [mvoid iupBaseComputeNaturalSize(Ihandle* ih)[m + ih->naturalheight = iupMAX(ih->naturalheight, h);[m + [m + /* crop the natural size */[m +[31m- iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));[m +[32m+[m[32m iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));[m + }[m + }[m + else [m +[36m@@ -198,15 +199,15 @@[m [mvoid iupBaseComputeNaturalSize(Ihandle* ih)[m + /* for non-container only compute if user size is not defined */[m + if (ih->naturalwidth <= 0 || ih->naturalheight <= 0)[m + {[m +[31m- int w=0, h=0;[m +[31m- iupClassObjectComputeNaturalSize(ih, &w, &h, NULL);[m +[32m+[m[32m int w=0, h=0, children_expand;[m +[32m+[m[32m iupClassObjectComputeNaturalSize(ih, &w, &h, &children_expand);[m + [m + if (ih->naturalwidth <= 0) ih->naturalwidth = w;[m + if (ih->naturalheight <= 0) ih->naturalheight = h;[m + }[m + [m + /* crop the natural size */[m +[31m- iLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));[m +[32m+[m[32m iupLayoutSetMinMaxSize(ih, &(ih->naturalwidth), &(ih->naturalheight));[m + }[m + }[m + [m +[36m@@ -259,7 +260,7 @@[m [mvoid iupBaseSetCurrentSize(Ihandle* ih, int w, int h, int shrink)[m + [m + /* crop the current size if expanded */[m + if (ih->expand & IUP_EXPAND_WIDTH || ih->expand & IUP_EXPAND_HEIGHT)[m +[31m- iLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight));[m +[32m+[m[32m iupLayoutSetMinMaxSize(ih, &(ih->currentwidth), &(ih->currentheight));[m + }[m + }[m + [m +[1mdiff --git a/iup/src/iup_layout.h b/iup/src/iup_layout.h[m +[1mindex a2a0c29..775e5a2 100755[m +[1m--- a/iup/src/iup_layout.h[m +[1m+++ b/iup/src/iup_layout.h[m +[36m@@ -16,6 +16,8 @@[m [mextern "C" {[m + void iupLayoutCompute(Ihandle* ih); /* can be called before map */[m + void iupLayoutUpdate(Ihandle* ih); /* called only after map */[m + [m +[32m+[m[32mvoid iupLayoutSetMinMaxSize(Ihandle* ih, int *w, int *h);[m +[32m+[m + /* Other functions declared in <iup.h> and implemented here. [m + IupRefresh[m + */[m +[1mdiff --git a/iup/src/iup_ledlex.c b/iup/src/iup_ledlex.c[m +[1mindex 3283a43..5cf8640 100755[m +[1m--- a/iup/src/iup_ledlex.c[m +[1m+++ b/iup/src/iup_ledlex.c[m +[36m@@ -35,7 +35,7 @@[m [mstatic struct /* lexical variables */[m + static int iLexGetChar (void);[m + static int iLexToken(int *erro);[m + static int iLexCapture (char* dlm);[m +[31m-static int iLexSkip (char* dlm);[m +[32m+[m[32mstatic void iLexSkipComment (void);[m + static int iLexCaptureAttr (void);[m + [m + int iupLexStart(const char* filename, int is_file) /* initialize lexical analysis */[m +[36m@@ -186,9 +186,9 @@[m [mstatic int iLexToken(int *erro)[m + case ']':[m + return IUPLEX_TK_ENDATTR;[m + [m +[31m- case '#': /* iLexSkip comment */[m +[31m- case '%': /* iLexSkip comment */[m +[31m- iLexSkip ("\n\r");[m +[32m+[m[32m case '#': /* Skip comment */[m +[32m+[m[32m case '%': /* Skip comment */[m +[32m+[m[32m iLexSkipComment();[m + continue;[m + [m + case ' ': /* ignore whitespace */[m +[36m@@ -276,14 +276,13 @@[m [mstatic int iLexCaptureAttr (void)[m + return c; /* return delimiter */[m + }[m + [m +[31m-static int iLexSkip (char* dlm)[m +[32m+[m[32mstatic void iLexSkipComment (void)[m + {[m + int c;[m + do[m + {[m +[31m- c = iLexGetChar ();[m +[31m- } while ((c > 0) && !strchr (dlm,c));[m +[31m- return c; /* return delimiter */[m +[32m+[m[32m c = iLexGetChar();[m +[32m+[m[32m } while ((c > 0) && (c != '\n'));[m + }[m + [m + static int iLexGetChar (void)[m +[1mdiff --git a/iup/src/iup_list.c b/iup/src/iup_list.c[m +[1mindex 5965665..1077d98 100755[m +[1m--- a/iup/src/iup_list.c[m +[1m+++ b/iup/src/iup_list.c[m +[36m@@ -53,6 +53,37 @@[m [mstatic void iListCallActionCallback(Ihandle* ih, IFnsii cb, int pos, int state)[m + IupExitLoop();[m + }[m + [m +[32m+[m[32mvoid iupListUpdateOldValue(Ihandle* ih, int pos, int removed)[m +[32m+[m[32m{[m +[32m+[m[32m if (!ih->data->has_editbox)[m +[32m+[m[32m {[m +[32m+[m[32m char* old_value = iupAttribGet(ih, "_IUPLIST_OLDVALUE");[m +[32m+[m[32m if (old_value)[m +[32m+[m[32m {[m +[32m+[m[32m int old_pos = atoi(old_value)-1; /* was in IUP reference, starting at 1 */[m +[32m+[m[32m if (ih->data->is_dropdown || !ih->data->is_multiple)[m +[32m+[m[32m {[m +[32m+[m[32m if (old_pos >= pos)[m +[32m+[m[32m {[m +[32m+[m[32m if (removed && old_pos == pos)[m +[32m+[m[32m {[m +[32m+[m[32m /* when the current item is removed nothing remains selected */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m iupAttribSetInt(ih, "_IUPLIST_OLDVALUE", removed? old_pos-1: old_pos+1);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* multiple selection on a non drop-down list. */[m +[32m+[m[32m char* value = IupGetAttribute(ih, "VALUE");[m +[32m+[m[32m iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", value);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m + void iupListSingleCallActionCallback(Ihandle* ih, IFnsii cb, int pos)[m + {[m + char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE");[m +[36m@@ -77,7 +108,7 @@[m [mvoid iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in[m + char* old_str = iupAttribGet(ih, "_IUPLIST_OLDVALUE");[m + int old_count = old_str? strlen(old_str): 0;[m + [m +[31m- char* str = iupStrGetMemory(count+1);[m +[32m+[m[32m char* str = malloc(count+1);[m + memset(str, '-', count);[m + str[count]=0;[m + for (i=0; i<sel_count; i++)[m +[36m@@ -92,6 +123,7 @@[m [mvoid iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in[m + if (multi_cb)[m + {[m + int unchanged = 1;[m +[32m+[m + for (i=0; i<count && old_str; i++)[m + {[m + if (str[i] == old_str[i])[m +[36m@@ -101,7 +133,10 @@[m [mvoid iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in[m + }[m + [m + if (old_str && unchanged)[m +[32m+[m[32m {[m +[32m+[m[32m free(str);[m + return;[m +[32m+[m[32m }[m + [m + if (multi_cb(ih, str) == IUP_CLOSE)[m + IupExitLoop();[m +[36m@@ -133,6 +168,7 @@[m [mvoid iupListMultipleCallActionCallback(Ihandle* ih, IFnsii cb, IFns multi_cb, in[m + }[m + [m + iupAttribStoreStr(ih, "_IUPLIST_OLDVALUE", str);[m +[32m+[m[32m free(str);[m + }[m + [m + int iupListGetPos(Ihandle* ih, const char* name_id)[m +[36m@@ -145,7 +181,8 @@[m [mint iupListGetPos(Ihandle* ih, const char* name_id)[m + pos--; /* IUP items start at 1 */[m + [m + if (pos < 0) return -1;[m +[31m- if (pos > count-1) return -1;[m +[32m+[m[32m if (pos == count) return -2;[m +[32m+[m[32m if (pos > count) return -1;[m + [m + return pos;[m + }[m +[36m@@ -217,7 +254,10 @@[m [mint iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value)[m + if (pos >= 0 && pos <= count-1)[m + {[m + if (pos == 0)[m +[32m+[m[32m {[m + iupdrvListRemoveAllItems(ih);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);[m +[32m+[m[32m }[m + else[m + {[m + int i = pos;[m +[36m@@ -245,7 +285,7 @@[m [mint iupListSetIdValueAttrib(Ihandle* ih, const char* name_id, const char* value)[m + [m + static int iListSetAppendItemAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (value)[m + iupdrvListAppendItem(ih, value);[m +[36m@@ -254,27 +294,32 @@[m [mstatic int iListSetAppendItemAttrib(Ihandle* ih, const char* value)[m + [m + static int iListSetInsertItemAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (value)[m + {[m + int pos = iupListGetPos(ih, name_id);[m +[31m- if (pos!=-1)[m +[32m+[m[32m if (pos >= 0)[m + iupdrvListInsertItem(ih, pos, value);[m +[32m+[m[32m else if (pos == -2)[m +[32m+[m[32m iupdrvListAppendItem(ih, value);[m + }[m + return 0;[m + }[m + [m + static int iListSetRemoveItemAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (!value)[m +[32m+[m[32m {[m + iupdrvListRemoveAllItems(ih);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPLIST_OLDVALUE", NULL);[m +[32m+[m[32m }[m + else[m + {[m + int pos = iupListGetPos(ih, value);[m +[31m- if (pos!=-1)[m +[32m+[m[32m if (pos >= 0)[m + iupdrvListRemoveItem(ih, pos);[m + }[m + return 0;[m +[1mdiff --git a/iup/src/iup_list.h b/iup/src/iup_list.h[m +[1mindex 045116b..05fe9f8 100755[m +[1m--- a/iup/src/iup_list.h[m +[1m+++ b/iup/src/iup_list.h[m +[36m@@ -30,6 +30,7 @@[m [mchar* iupListGetNCAttrib(Ihandle* ih);[m + char* iupListGetPaddingAttrib(Ihandle* ih);[m + char* iupListGetSpacingAttrib(Ihandle* ih);[m + void iupListSingleCallDblClickCallback(Ihandle* ih, IFnis cb, int pos);[m +[32m+[m[32mvoid iupListUpdateOldValue(Ihandle* ih, int pos, int removed);[m + [m + struct _IcontrolData [m + {[m +[1mdiff --git a/iup/src/iup_names.c b/iup/src/iup_names.c[m +[1mindex 9ec01a6..18ca3ef 100755[m +[1m--- a/iup/src/iup_names.c[m +[1m+++ b/iup/src/iup_names.c[m +[36m@@ -14,11 +14,41 @@[m + #include "iup_object.h"[m + #include "iup_class.h"[m + #include "iup_assert.h"[m +[32m+[m[32m#include "iup_attrib.h"[m + #include "iup_str.h"[m + [m + [m + static Itable *inames_strtable = NULL; /* table indexed by name containing Ihandle* address */[m +[31m-static Itable *inames_ihtable = NULL; /* table indexed by Ihandle* address containing names */[m +[32m+[m +[32m+[m[32mvoid iupNamesInit(void)[m +[32m+[m[32m{[m +[32m+[m[32m inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupNamesFinish(void)[m +[32m+[m[32m{[m +[32m+[m[32m iupTableDestroy(inames_strtable);[m +[32m+[m[32m inames_strtable = NULL;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic Ihandle* iNameGetTopParent(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m Ihandle* parent = ih;[m +[32m+[m[32m while (parent->parent)[m +[32m+[m[32m parent = parent->parent;[m +[32m+[m[32m return parent;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int iNameCheckArray(Ihandle** ih_array, int count, Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m int i;[m +[32m+[m[32m for (i = 0; i < count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (ih_array[i] == ih)[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m + [m + void iupNamesDestroyHandles(void)[m + {[m +[36m@@ -37,10 +67,14 @@[m [mvoid iupNamesDestroyHandles(void)[m + while (name)[m + {[m + ih = (Ihandle*)iupTableGetCurr(inames_strtable);[m +[31m- if (iupObjectCheck(ih))[m +[32m+[m[32m if (iupObjectCheck(ih)) /* here must be a handle */[m + {[m +[31m- ih_array[i] = ih;[m +[31m- i++;[m +[32m+[m[32m ih = iNameGetTopParent(ih);[m +[32m+[m[32m if (iNameCheckArray(ih_array, i, ih))[m +[32m+[m[32m {[m +[32m+[m[32m ih_array[i] = ih;[m +[32m+[m[32m i++;[m +[32m+[m[32m }[m + }[m + name = iupTableNext(inames_strtable);[m + }[m +[36m@@ -48,44 +82,28 @@[m [mvoid iupNamesDestroyHandles(void)[m + count = i;[m + for (i = 0; i < count; i++)[m + {[m +[31m- if (iupObjectCheck(ih_array[i]))[m +[32m+[m[32m if (iupObjectCheck(ih_array[i])) /* here must be a handle */[m + IupDestroy(ih_array[i]);[m + }[m + [m + free(ih_array);[m + }[m + [m +[31m-void iupNamesInit(void)[m +[31m-{[m +[31m- inames_strtable = iupTableCreate(IUPTABLE_STRINGINDEXED);[m +[31m- inames_ihtable = iupTableCreate(IUPTABLE_POINTERINDEXED);[m +[31m-}[m +[31m-[m +[31m-void iupNamesFinish(void)[m +[31m-{[m +[31m- iupTableDestroy(inames_strtable);[m +[31m- inames_strtable = NULL;[m +[31m-[m +[31m- iupTableDestroy(inames_ihtable);[m +[31m- inames_ihtable = NULL;[m +[31m-}[m +[31m-[m +[31m-void iupRemoveAllNames(Ihandle* ih)[m +[32m+[m[32mvoid iupRemoveNames(Ihandle* ih)[m + {[m + char *name;[m +[31m- Ihandle *cur_ih;[m + [m +[31m- name = iupTableFirst(inames_strtable);[m +[31m- while (name)[m +[31m- {[m +[31m- cur_ih = (Ihandle*)iupTableGetCurr(inames_strtable);[m +[31m- if (iupObjectCheck(cur_ih) && cur_ih == ih)[m +[31m- iupTableRemoveCurr(inames_strtable);[m +[32m+[m[32m /* clear the cache */[m +[32m+[m[32m name = iupAttribGet(ih, "_IUP_LASTHANDLENAME");[m +[32m+[m[32m if (name)[m +[32m+[m[32m iupTableRemove(inames_strtable, name);[m + [m +[31m- name = iupTableNext(inames_strtable);[m +[31m- }[m +[32m+[m[32m /* check for an internal name */[m +[32m+[m[32m name = iupAttribGetHandleName(ih);[m +[32m+[m[32m if (name)[m +[32m+[m[32m iupTableRemove(inames_strtable, name);[m + [m +[31m- iupTableRemove(inames_ihtable, (char*)ih);[m +[32m+[m[32m /* Do NOT search for other names */[m + }[m + [m + Ihandle *IupGetHandle(const char *name)[m +[36m@@ -104,22 +122,24 @@[m [mIhandle* IupSetHandle(const char *name, Ihandle *ih)[m + return NULL;[m + [m + old_ih = iupTableGet(inames_strtable, name);[m +[32m+[m + if (ih != NULL)[m + {[m + iupTableSet(inames_strtable, name, ih, IUPTABLE_POINTER);[m +[31m- iupTableSet(inames_ihtable, (char*)ih, (char*)name, IUPTABLE_STRING); /* keep only the last name set */[m +[32m+[m +[32m+[m[32m /* save the name in the cache if it is a valid handle */[m +[32m+[m[32m if (iupObjectCheck(ih))[m +[32m+[m[32m iupAttribStoreStr(ih, "_IUP_LASTHANDLENAME", name);[m + }[m + else[m + {[m +[31m- ih = iupTableGet(inames_strtable, name);[m + iupTableRemove(inames_strtable, name);[m +[31m- if (ih) [m +[31m- {[m +[31m- char* cur_name = iupTableGet(inames_ihtable, (char*)ih);[m +[31m- if (iupStrEqualNoCase(cur_name, name))[m +[31m- iupTableRemove(inames_ihtable, (char*)ih);[m +[31m- }[m +[32m+[m +[32m+[m[32m /* clear the name from the cache if it is a valid handle */[m +[32m+[m[32m if (iupObjectCheck(old_ih))[m +[32m+[m[32m iupAttribSetStr(old_ih, "_IUP_LASTHANDLENAME", NULL);[m + }[m +[32m+[m + return old_ih;[m + }[m + [m +[36m@@ -151,7 +171,8 @@[m [mstatic int iNamesCountDialogs(void)[m + while (name)[m + {[m + Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable);[m +[31m- if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG)[m +[32m+[m[32m if (iupObjectCheck(dlg) && /* here must be a handle */[m +[32m+[m[32m dlg->iclass->nativetype == IUP_TYPEDIALOG)[m + i++;[m + [m + name = iupTableNext(inames_strtable);[m +[36m@@ -171,7 +192,8 @@[m [mint IupGetAllDialogs(char** names, int n)[m + while (name)[m + {[m + Ihandle* dlg = (Ihandle*)iupTableGetCurr(inames_strtable);[m +[31m- if (iupObjectCheck(dlg) && dlg->iclass->nativetype == IUP_TYPEDIALOG)[m +[32m+[m[32m if (iupObjectCheck(dlg) && /* here must be a handle */[m +[32m+[m[32m dlg->iclass->nativetype == IUP_TYPEDIALOG)[m + {[m + names[i] = name;[m + i++;[m +[36m@@ -186,8 +208,32 @@[m [mint IupGetAllDialogs(char** names, int n)[m + [m + char* IupGetName(Ihandle* ih)[m + {[m +[31m- iupASSERT(iupObjectCheck(ih));[m +[31m- if (!iupObjectCheck(ih))[m +[32m+[m[32m char *name;[m +[32m+[m[32m if (!ih) /* no iupASSERT needed here */[m + return NULL;[m +[31m- return iupTableGet(inames_ihtable, (char*)ih);[m +[32m+[m +[32m+[m[32m if (iupObjectCheck(ih))[m +[32m+[m[32m {[m +[32m+[m[32m /* check the cache first, but must be a handle */[m +[32m+[m[32m name = iupAttribGet(ih, "_IUP_LASTHANDLENAME");[m +[32m+[m[32m if (name)[m +[32m+[m[32m return name;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* check for an internal name */[m +[32m+[m[32m name = iupAttribGetHandleName(ih);[m +[32m+[m[32m if (name)[m +[32m+[m[32m return name;[m +[32m+[m[41m [m +[32m+[m[32m /* search for the name */[m +[32m+[m[32m name = iupTableFirst(inames_strtable);[m +[32m+[m[32m while (name)[m +[32m+[m[32m {[m +[32m+[m[32m if ((Ihandle*)iupTableGetCurr(inames_strtable) == ih)[m +[32m+[m[32m return name;[m +[32m+[m +[32m+[m[32m name = iupTableNext(inames_strtable);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return NULL;[m + }[m +[1mdiff --git a/iup/src/iup_names.h b/iup/src/iup_names.h[m +[1mindex 9d3adc7..d652594 100755[m +[1m--- a/iup/src/iup_names.h[m +[1m+++ b/iup/src/iup_names.h[m +[36m@@ -17,7 +17,7 @@[m [mvoid iupNamesFinish(void);[m + void iupNamesDestroyHandles(void);[m + [m + /* called from IupDestroy */[m +[31m-void iupRemoveAllNames(Ihandle* ih);[m +[32m+[m[32mvoid iupRemoveNames(Ihandle* ih);[m + [m + /* Other functions declared in <iup.h> and implemented here.[m + IupGetName[m +[1mdiff --git a/iup/src/iup_object.c b/iup/src/iup_object.c[m +[1mindex 7f4ce23..f0d5dc9 100755[m +[1m--- a/iup/src/iup_object.c[m +[1m+++ b/iup/src/iup_object.c[m +[36m@@ -148,6 +148,8 @@[m [mIhandle* IupCreate(const char *name)[m + [m + void IupDestroy(Ihandle *ih)[m + {[m +[32m+[m[32m Icallback cb;[m +[32m+[m + iupASSERT(iupObjectCheck(ih));[m + if (!iupObjectCheck(ih))[m + return;[m +[36m@@ -156,6 +158,9 @@[m [mvoid IupDestroy(Ihandle *ih)[m + if (ih->iclass->nativetype == IUP_TYPEDIALOG)[m + IupHide(ih);[m + [m +[32m+[m[32m cb = IupGetCallback(ih, "DESTROY_CB");[m +[32m+[m[32m if (cb) cb(ih);[m +[32m+[m + /* Destroy all its children.[m + Just need to remove the first child,[m + IupDetach will update firstchild. */[m +[36m@@ -165,6 +170,9 @@[m [mvoid IupDestroy(Ihandle *ih)[m + /* unmap if mapped and remove from its parent child list */[m + IupDetach(ih);[m + [m +[32m+[m[32m /* removes names associated with the element */[m +[32m+[m[32m iupRemoveNames(ih);[m +[32m+[m + /* destroy the element */[m + iupClassObjectDestroy(ih);[m + [m +[36m@@ -172,9 +180,6 @@[m [mvoid IupDestroy(Ihandle *ih)[m + if (ih->data)[m + free(ih->data);[m + [m +[31m- /* removes all the names associated with the element */[m +[31m- iupRemoveAllNames(ih);[m +[31m-[m + /* destroy the base handle structure */[m + iHandleDestroy(ih);[m + }[m +[1mdiff --git a/iup/src/iup_object.h b/iup/src/iup_object.h[m +[1mindex 6f6b668..a69edc0 100755[m +[1m--- a/iup/src/iup_object.h[m +[1m+++ b/iup/src/iup_object.h[m +[36m@@ -113,6 +113,7 @@[m [mIhandle* iupObjectCreate(Iclass* ic, void** params);[m + void** iupObjectGetParamList(void* first, va_list arglist);[m + [m + /** Checks if the handle is still valid based on the signature.[m +[32m+[m[32m * But if the handle was destroyed still can access invalid memory.[m + * \ingroup object */[m + int iupObjectCheck(Ihandle* ih);[m + [m +[1mdiff --git a/iup/src/iup_open.c b/iup/src/iup_open.c[m +[1mindex e02561e..bce5c5c 100755[m +[1m--- a/iup/src/iup_open.c[m +[1m+++ b/iup/src/iup_open.c[m +[36m@@ -101,8 +101,8 @@[m [mvoid IupClose(void)[m + [m + iupdrvSetIdleFunction(NULL); /* stop any idle */[m + [m +[31m- iupDlgListDestroyAll(); /* destroy all dialogs */[m +[31m- iupNamesDestroyHandles(); /* destroy everything else that have names */[m +[32m+[m[32m iupDlgListDestroyAll(); /* destroy all dialogs and their children */[m +[32m+[m[32m iupNamesDestroyHandles(); /* destroy everything that do not belong to a dialog */[m + iupImageStockFinish(); /* release stock images hash table and the images */[m + [m + iupRegisterFinish(); /* release native classes */[m +[1mdiff --git a/iup/src/iup_register.c b/iup/src/iup_register.c[m +[1mindex 4c58038..2e9954a 100755[m +[1m--- a/iup/src/iup_register.c[m +[1m+++ b/iup/src/iup_register.c[m +[36m@@ -99,6 +99,7 @@[m [mvoid iupRegisterInternalClasses(void)[m + iupRegisterClass(iupCboxGetClass());[m + iupRegisterClass(iupSboxGetClass());[m + iupRegisterClass(iupNormalizerGetClass());[m +[32m+[m[32m iupRegisterClass(iupSplitGetClass());[m + [m + iupRegisterClass(iupMenuGetClass());[m + iupRegisterClass(iupItemGetClass());[m +[1mdiff --git a/iup/src/iup_sbox.c b/iup/src/iup_sbox.c[m +[1mindex 5a71d33..9998481 100755[m +[1m--- a/iup/src/iup_sbox.c[m +[1m+++ b/iup/src/iup_sbox.c[m +[36m@@ -57,6 +57,7 @@[m [mstatic void iSboxSaveDimension(Ihandle* ih, int w, int h)[m + {[m + ih->data->w = w;[m + ih->data->h = h;[m +[32m+[m[32m iupLayoutSetMinMaxSize(ih, &(ih->data->w), &(ih->data->h));[m + }[m + [m + static void iSboxAddDecorOffset(Ihandle* ih, int *x, int *y)[m +[1mdiff --git a/iup/src/iup_show.c b/iup/src/iup_show.c[m +[1mindex 9ea1408..b42975e 100755[m +[1m--- a/iup/src/iup_show.c[m +[1m+++ b/iup/src/iup_show.c[m +[36m@@ -53,35 +53,6 @@[m [mvoid IupUnmap(Ihandle *ih)[m + ih->handle = NULL;[m + }[m + [m +[31m-static char* iShowGetVisible(Ihandle* ih)[m +[31m-{[m +[31m- char* value = iupAttribGet(ih, "VISIBLE"); /* Check on the element first */[m +[31m- while (!value)[m +[31m- {[m +[31m- ih = ih->parent; /* iheritance here independs on the attribute */[m +[31m- if (!ih)[m +[31m- return NULL;[m +[31m-[m +[31m- value = iupAttribGet(ih, "VISIBLE");[m +[31m-[m +[31m- /* only recursive up to the native parent */ [m +[31m- if (ih->iclass->nativetype != IUP_TYPEVOID)[m +[31m- return value; /* can be NULL */[m +[31m- }[m +[31m-[m +[31m- return value;[m +[31m-}[m +[31m-[m +[31m-static void iShowUpdateVisible(Ihandle* ih)[m +[31m-{[m +[31m- int inherit;[m +[31m- /* although default is VISIBLE=YES, [m +[31m- when mapped the element is still hidden. [m +[31m- So we must manually update the visible state. */[m +[31m- char* value = iShowGetVisible(ih);[m +[31m- iupClassObjectSetAttribute(ih, "VISIBLE", value, &inherit);[m +[31m-}[m +[31m-[m + int IupMap(Ihandle* ih)[m + {[m + iupASSERT(iupObjectCheck(ih));[m +[36m@@ -108,7 +79,7 @@[m [mint IupMap(Ihandle* ih)[m + return IUP_ERROR;[m + }[m + [m +[31m- /* update FONT, must be the before several others */[m +[32m+[m[32m /* update FONT, must be the before several others, so we do it here */[m + if (ih->iclass->nativetype != IUP_TYPEVOID &&[m + ih->iclass->nativetype != IUP_TYPEIMAGE &&[m + ih->iclass->nativetype != IUP_TYPEMENU)[m +[36m@@ -117,18 +88,13 @@[m [mint IupMap(Ihandle* ih)[m + /* ensure attributes default values, at this time only the ones that need to be set after map */[m + iupClassObjectEnsureDefaultAttributes(ih);[m + [m +[31m- /* check visible state if not a dialog */[m +[31m- if (ih->iclass->nativetype == IUP_TYPECANVAS || [m +[31m- ih->iclass->nativetype == IUP_TYPECONTROL)[m +[31m- iShowUpdateVisible(ih);[m +[31m-[m +[31m- /* updates the defined attributes in the native system. */[m +[32m+[m[32m /* updates the defined attributes from the hash table to the native system. */[m + iupAttribUpdate(ih); [m + [m +[31m- /* updates attributes defined in the parent tree */[m +[32m+[m[32m /* updates inheritable attributes defined in the parent tree */[m + iupAttribUpdateFromParent(ih);[m + [m +[31m- /* map children */[m +[32m+[m[32m /* map children independent from childtype */[m + {[m + Ihandle* child = ih->firstchild;[m + while (child)[m +[36m@@ -140,6 +106,10 @@[m [mint IupMap(Ihandle* ih)[m + }[m + }[m + [m +[32m+[m[32m /* updates the defined attributes from the hash table to the native system. */[m +[32m+[m[32m if (ih->iclass->childtype!=IUP_CHILDNONE)[m +[32m+[m[32m iupAttribUpdateChildren(ih);[m +[32m+[m + /* moves and resizes the elements to reflect the layout computation */[m + /* if the dialog is visible will be reflected in the user interface */[m + if (ih->iclass->nativetype == IUP_TYPEDIALOG)[m +[1mdiff --git a/iup/src/iup_spin.c b/iup/src/iup_spin.c[m +[1mindex 6fadab4..514703f 100755[m +[1m--- a/iup/src/iup_spin.c[m +[1m+++ b/iup/src/iup_spin.c[m +[36m@@ -175,7 +175,7 @@[m [mstatic int iSpinCreateMethod(Ihandle* ih, void** params)[m + [m + static int iSpinboxCreateMethod(Ihandle* ih, void** params)[m + {[m +[31m- Ihandle *spin, *ctrl;[m +[32m+[m[32m Ihandle *spin;[m + [m + if (!params || !(params[0]))[m + return IUP_ERROR;[m +[36m@@ -184,8 +184,7 @@[m [mstatic int iSpinboxCreateMethod(Ihandle* ih, void** params)[m + IupSetAttribute(ih, "MARGIN", "0x0");[m + IupSetAttribute(ih, "ALIGNMENT", "ACENTER");[m + [m +[31m- ctrl = (Ihandle*)(params[0]);[m +[31m- iupChildTreeAppend(ih, ctrl);[m +[32m+[m[32m /* IupText is already a child of Spinbox because of the IupHbox Create method */[m + [m + spin = IupSpin();[m + iupChildTreeAppend(ih, spin);[m +[36m@@ -249,7 +248,7 @@[m [mIclass* iupSpinboxGetClass(void)[m + ic->name = "spinbox";[m + ic->format = "h"; /* one Ihandle */[m + ic->nativetype = IUP_TYPEVOID;[m +[31m- ic->childtype = IUP_CHILDNONE;[m +[32m+[m[32m ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */[m + ic->is_interactive = 0;[m + [m + iupClassRegisterCallback(ic, "SPIN_CB", "i");[m +[36m@@ -267,7 +266,7 @@[m [mIclass* iupSpinGetClass(void)[m + ic->name = "spin";[m + ic->format = NULL; /* no parameters */[m + ic->nativetype = IUP_TYPEVOID;[m +[31m- ic->childtype = IUP_CHILDNONE;[m +[32m+[m[32m ic->childtype = IUP_CHILD_ONE; /* fake value to define it as a container */[m + ic->is_interactive = 0;[m + [m + /* Class functions */[m +[1mdiff --git a/iup/src/iup_stdcontrols.h b/iup/src/iup_stdcontrols.h[m +[1mindex 11499ae..0f3deb9 100755[m +[1m--- a/iup/src/iup_stdcontrols.h[m +[1m+++ b/iup/src/iup_stdcontrols.h[m +[36m@@ -46,6 +46,7 @@[m [mIclass* iupZboxGetClass(void);[m + Iclass* iupCboxGetClass(void);[m + Iclass* iupSboxGetClass(void);[m + Iclass* iupNormalizerGetClass(void);[m +[32m+[m[32mIclass* iupSplitGetClass(void);[m + [m + Iclass* iupTimerGetClass(void);[m + Iclass* iupImageGetClass(void);[m +[1mdiff --git a/iup/src/iup_str.c b/iup/src/iup_str.c[m +[1mindex 68976f1..5f5b85d 100755[m +[1m--- a/iup/src/iup_str.c[m +[1m+++ b/iup/src/iup_str.c[m +[36m@@ -147,8 +147,9 @@[m [mchar *iupStrCopyUntil(char **str, int c)[m + return NULL;[m + [m + p_str=strchr(*str,c);[m +[31m- if (!p_str) return NULL;[m +[31m-[m +[32m+[m[32m if (!p_str)[m[41m [m +[32m+[m[32m return NULL;[m +[32m+[m[32m else[m + {[m + int i;[m + int sl=(int)(p_str - (*str));[m +[36m@@ -160,10 +161,10 @@[m [mchar *iupStrCopyUntil(char **str, int c)[m + new_str[i] = (*str)[i];[m + [m + new_str[sl] = 0;[m +[31m- }[m + [m +[31m- *str = p_str+1;[m +[31m- return new_str;[m +[32m+[m[32m *str = p_str+1;[m +[32m+[m[32m return new_str;[m +[32m+[m[32m }[m + }[m + [m + char *iupStrCopyUntilNoCase(char **str, int c)[m +[36m@@ -174,11 +175,12 @@[m [mchar *iupStrCopyUntilNoCase(char **str, int c)[m + [m + p_str=strchr(*str,c); /* usually the lower case is enough */[m + if (!p_str && isalpha(c)) [m +[31m- {[m + p_str=strchr(*str, toupper(c)); /* but check also for upper case */[m +[31m- if (!p_str) return NULL;[m +[31m- }[m + [m +[32m+[m[32m /* if both fail, then abort */[m +[32m+[m[32m if (!p_str)[m[41m [m +[32m+[m[32m return NULL;[m +[32m+[m[32m else[m + {[m + int i;[m + int sl=(int)(p_str - (*str));[m +[36m@@ -190,10 +192,10 @@[m [mchar *iupStrCopyUntilNoCase(char **str, int c)[m + new_str[i] = (*str)[i];[m + [m + new_str[sl] = 0;[m +[31m- }[m + [m +[31m- *str = p_str+1;[m +[31m- return new_str;[m +[32m+[m[32m *str = p_str+1;[m +[32m+[m[32m return new_str;[m +[32m+[m[32m }[m + }[m + [m + char *iupStrGetMemory(int size)[m +[1mdiff --git a/iup/src/iup_table.c b/iup/src/iup_table.c[m +[1mindex 9e97ff5..a873191 100755[m +[1m--- a/iup/src/iup_table.c[m +[1m+++ b/iup/src/iup_table.c[m +[36m@@ -19,12 +19,12 @@[m + /* Adjust these parameters for optimal performance and memory usage */[m + static const unsigned int itable_maxTableSizeIndex = 8;[m + static const unsigned int itable_hashTableSize[] = { 31, 101, 401, 1601, 4001, 8009, 16001, 32003, 64007 };[m +[31m-static const float itable_resizeLimit = 2;[m +[32m+[m[32mstatic const unsigned int itable_resizeLimit = 2;[m + static const unsigned int itable_itemGrow = 5;[m + [m + /* Iteration context.[m + */[m +[31m-typedef struct ItableContext[m +[32m+[m[32mtypedef struct _ItableContext[m + {[m + unsigned int entryIndex; /* index at the Itable::entries array */[m + unsigned int itemIndex; /* index at the ItableEntry::items array */[m +[36m@@ -41,7 +41,7 @@[m [mtypedef struct ItableContext[m + * this is simply the pointer (in this case keyIndex[m + * and keyStr are equal).[m + */[m +[31m-typedef struct ItableKey[m +[32m+[m[32mtypedef struct _ItableKey[m + {[m + unsigned long keyIndex; /* the secondary hash number */[m + const char *keyStr;[m +[36m@@ -52,11 +52,11 @@[m [mItableKey;[m + * Such an item is stored in the item list of[m + * an entry.[m + */[m +[31m-typedef struct ItableItem[m +[32m+[m[32mtypedef struct _ItableItem[m + {[m + Itable_Types itemType;[m +[31m- ItableKey key;[m +[31m- void *value;[m +[32m+[m[32m ItableKey key;[m +[32m+[m[32m void* value;[m + }[m + ItableItem;[m + [m +[36m@@ -67,29 +67,28 @@[m [mItableItem;[m + * in nextItemIndex.[m + * size is the current size of the items array.[m + */[m +[31m-typedef struct ItableEntry[m +[32m+[m[32mtypedef struct _ItableEntry[m + {[m + unsigned int nextItemIndex;[m +[31m- unsigned int size;[m +[31m- ItableItem *items;[m +[32m+[m[32m unsigned int itemsSize;[m +[32m+[m[32m ItableItem* items;[m + }[m + ItableEntry;[m + [m + [m + /* A hash table.[m +[31m- * indexType is the type of the index.[m + * entries is an array of entries. Select an[m + * entry by its index.[m + * size is the number of entries in the hash table...[m + */[m +[31m-struct Itable[m +[32m+[m[32mstruct _Itable[m + {[m +[31m- unsigned int size;[m +[31m- unsigned int numberOfEntries;[m +[31m- unsigned int tableSizeIndex; /* index into itable_hashTableSize array */[m +[31m- Itable_IndexTypes indexType;[m +[31m- ItableEntry *entries;[m +[31m- ItableContext context;[m +[32m+[m[32m unsigned int entriesSize;[m +[32m+[m[32m unsigned int numberOfEntries;[m +[32m+[m[32m unsigned int tableSizeIndex; /* index into itable_hashTableSize array */[m +[32m+[m[32m Itable_IndexTypes indexType; /* type of the index: string or pointer. */[m +[32m+[m[32m ItableEntry *entries;[m +[32m+[m[32m ItableContext context;[m + };[m + [m + [m +[36m@@ -121,8 +120,7 @@[m [mItable *iupTableCreate(Itable_IndexTypes indexType)[m + [m + Itable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSizeIndex)[m + {[m +[31m- Itable *it = (Itable *)malloc(sizeof(struct Itable));[m +[31m-[m +[32m+[m[32m Itable *it = (Itable *)malloc(sizeof(Itable));[m + iupASSERT(it!=NULL);[m + if (!it)[m + return 0;[m +[36m@@ -130,12 +128,12 @@[m [mItable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz[m + if (initialSizeIndex > itable_maxTableSizeIndex)[m + initialSizeIndex = itable_maxTableSizeIndex;[m + [m +[31m- it->size = itable_hashTableSize[initialSizeIndex];[m +[32m+[m[32m it->entriesSize = itable_hashTableSize[initialSizeIndex];[m + it->tableSizeIndex = initialSizeIndex;[m + it->numberOfEntries = 0;[m + it->indexType = indexType;[m + [m +[31m- it->entries = (ItableEntry *)malloc(it->size * sizeof(ItableEntry));[m +[32m+[m[32m it->entries = (ItableEntry *)malloc(it->entriesSize * sizeof(ItableEntry));[m + iupASSERT(it->entries!=NULL);[m + if (!it->entries)[m + {[m +[36m@@ -143,7 +141,7 @@[m [mItable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz[m + return 0;[m + }[m + [m +[31m- memset(it->entries, 0, it->size * sizeof(ItableEntry));[m +[32m+[m[32m memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry));[m + [m + it->context.entryIndex = (unsigned int)-1;[m + it->context.itemIndex = (unsigned int)-1;[m +[36m@@ -158,16 +156,19 @@[m [mvoid iupTableClear(Itable *it)[m + if (!it)[m + return;[m + [m +[31m- for (i = 0; i < it->size; i++)[m +[32m+[m[32m for (i = 0; i < it->entriesSize; i++)[m + {[m + ItableEntry *entry = &(it->entries[i]);[m + if (entry->items)[m +[32m+[m[32m {[m + iTableFreeItemArray(it->indexType, entry->nextItemIndex, entry->items);[m +[32m+[m[32m entry->items = NULL;[m +[32m+[m[32m }[m + }[m + [m + it->numberOfEntries = 0;[m + [m +[31m- memset(it->entries, 0, it->size * sizeof(ItableEntry));[m +[32m+[m[32m memset(it->entries, 0, it->entriesSize * sizeof(ItableEntry));[m + [m + it->context.entryIndex = (unsigned int)-1;[m + it->context.itemIndex = (unsigned int)-1;[m +[36m@@ -185,7 +186,10 @@[m [mvoid iupTableDestroy(Itable *it)[m + iupTableClear(it);[m + [m + if (it->entries)[m +[32m+[m[32m {[m + free(it->entries);[m +[32m+[m[32m it->entries = NULL;[m +[32m+[m[32m }[m + [m + free(it);[m + }[m +[36m@@ -288,17 +292,23 @@[m [mstatic void iTableRemoveItem(Itable *it, ItableEntry *entry, unsigned int itemIn[m + item = &(entry->items[itemIndex]);[m + [m + if (it->indexType == IUPTABLE_STRINGINDEXED)[m +[32m+[m[32m {[m + free((void *)item->key.keyStr);[m +[32m+[m[32m item->key.keyStr = NULL;[m +[32m+[m[32m }[m + [m + if (item->itemType == IUPTABLE_STRING)[m +[32m+[m[32m {[m + free(item->value);[m +[32m+[m[32m item->value = NULL;[m +[32m+[m[32m }[m + [m +[31m- /* order the remaining items */[m +[32m+[m[32m /* re-order the remaining items */[m + for (i = itemIndex; i < entry->nextItemIndex-1; i++)[m + entry->items[i] = entry->items[i+1];[m + [m +[31m- /* clear the non used item */[m +[31m- memset(entry->items + entry->nextItemIndex, 0, sizeof (ItableItem));[m +[32m+[m[32m /* clear the released item */[m +[32m+[m[32m memset(entry->items + entry->nextItemIndex-1, 0, sizeof (ItableItem));[m + [m + entry->nextItemIndex--;[m + it->numberOfEntries--;[m +[36m@@ -398,7 +408,7 @@[m [mchar *iupTableFirst(Itable *it)[m + it->context.itemIndex = (unsigned int)-1;[m + [m + /* find the first used entry */[m +[31m- for (entryIndex = 0; entryIndex < it->size; entryIndex++)[m +[32m+[m[32m for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)[m + {[m + if (it->entries[entryIndex].nextItemIndex > 0)[m + {[m +[36m@@ -430,7 +440,7 @@[m [mchar *iupTableNext(Itable *it)[m + else[m + {[m + /* find the next used entry */[m +[31m- for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++)[m +[32m+[m[32m for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++)[m + {[m + if (it->entries[entryIndex].nextItemIndex > 0)[m + {[m +[36m@@ -471,7 +481,7 @@[m [mchar *iupTableRemoveCurr(Itable *it)[m + else[m + {[m + /* find the next used entry */[m +[31m- for (entryIndex = it->context.entryIndex+1; entryIndex < it->size; entryIndex++)[m +[32m+[m[32m for (entryIndex = it->context.entryIndex+1; entryIndex < it->entriesSize; entryIndex++)[m + {[m + if (it->entries[entryIndex].nextItemIndex > 0)[m + {[m +[36m@@ -498,6 +508,8 @@[m [mstatic void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr[m + {[m + unsigned int i;[m + [m +[32m+[m[32m /* Used only in iupTableClear */[m +[32m+[m + iupASSERT(items!=NULL);[m + if (!items)[m + return;[m +[36m@@ -505,13 +517,19 @@[m [mstatic void iTableFreeItemArray(Itable_IndexTypes indexType, unsigned int nextFr[m + if (indexType == IUPTABLE_STRINGINDEXED)[m + {[m + for (i = 0; i < nextFreeIndex; i++)[m +[32m+[m[32m {[m + free((void *)(items[i].key.keyStr));[m +[32m+[m[32m items[i].key.keyStr = NULL;[m +[32m+[m[32m }[m + }[m + [m + for (i = 0; i < nextFreeIndex; i++)[m + {[m + if (items[i].itemType == IUPTABLE_STRING)[m +[32m+[m[32m {[m + free(items[i].value);[m +[32m+[m[32m items[i].value = NULL;[m +[32m+[m[32m }[m + }[m + [m + free(items);[m +[36m@@ -545,7 +563,7 @@[m [mstatic unsigned int iTableGetEntryIndex(Itable *it, const char *key, unsigned lo[m + *keyIndex = (unsigned long)key; /* this could NOT be dependent from table size */[m + }[m + [m +[31m- return (unsigned int)((*keyIndex) % it->size);[m +[32m+[m[32m return (unsigned int)((*keyIndex) % it->entriesSize);[m + }[m + [m + #ifdef DEBUGTABLE[m +[36m@@ -603,25 +621,24 @@[m [mstatic unsigned int iTableFindItem(Itable *it, const char *key, ItableEntry **en[m + [m + static void iTableUpdateArraySize(ItableEntry *entry)[m + {[m +[31m- if (entry->nextItemIndex >= entry->size)[m +[32m+[m[32m if (entry->nextItemIndex >= entry->itemsSize)[m + {[m + /* we have to expand the item array */[m + unsigned int newSize;[m + [m +[31m- newSize = entry->size + itable_itemGrow;[m +[32m+[m[32m newSize = entry->itemsSize + itable_itemGrow;[m + [m + entry->items = (ItableItem *)realloc(entry->items, newSize * sizeof(ItableItem));[m + iupASSERT(entry->items!=NULL);[m + if (!entry->items)[m + return;[m + [m +[31m- memset(entry->items + entry->size, 0, itable_itemGrow * sizeof(ItableItem));[m +[32m+[m[32m memset(entry->items + entry->itemsSize, 0, itable_itemGrow * sizeof(ItableItem));[m + [m +[31m- entry->size = newSize;[m +[32m+[m[32m entry->itemsSize = newSize;[m + }[m + }[m + [m +[31m-[m + static void iTableAdd(Itable *it, ItableKey *key, void *value, Itable_Types itemType)[m + {[m + unsigned int entryIndex;[m +[36m@@ -657,7 +674,7 @@[m [mstatic unsigned int iTableResize(Itable *it)[m + /* check if we do not need to resize the hash table */[m + if (it->numberOfEntries == 0 ||[m + it->tableSizeIndex >= itable_maxTableSizeIndex ||[m +[31m- it->size / it->numberOfEntries >= itable_resizeLimit)[m +[32m+[m[32m it->entriesSize / it->numberOfEntries >= itable_resizeLimit)[m + return 0;[m + [m + /* create a new hash table and copy the contents of[m +[36m@@ -666,7 +683,7 @@[m [mstatic unsigned int iTableResize(Itable *it)[m + newSizeIndex = it->tableSizeIndex + 1;[m + newTable = iupTableCreateSized(it->indexType, newSizeIndex);[m + [m +[31m- for (entryIndex = 0; entryIndex < it->size; entryIndex++)[m +[32m+[m[32m for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)[m + {[m + entry = &(it->entries[entryIndex]);[m + [m +[36m@@ -680,12 +697,13 @@[m [mstatic unsigned int iTableResize(Itable *it)[m + } [m + [m + free(entry->items);[m +[32m+[m[32m entry->items = NULL;[m + }[m + }[m + [m + free(it->entries);[m + [m +[31m- it->size = newTable->size;[m +[32m+[m[32m it->entriesSize = newTable->entriesSize;[m + it->tableSizeIndex = newTable->tableSizeIndex;[m + it->numberOfEntries = newTable->numberOfEntries;[m + it->entries = newTable->entries;[m +[36m@@ -712,11 +730,11 @@[m [mstatic void iTableShowStatistics(Itable *it)[m + return;[m + }[m + [m +[31m- nofSlots = it->size;[m +[32m+[m[32m nofSlots = it->entriesSize;[m + nofKeys = it->numberOfEntries;[m + optimalNofKeysPerSlot = (double)nofKeys / (double)nofSlots;[m + [m +[31m- for (entryIndex = 0; entryIndex < it->size; entryIndex++)[m +[32m+[m[32m for (entryIndex = 0; entryIndex < it->entriesSize; entryIndex++)[m + {[m + ItableEntry *entry = &(it->entries[entryIndex]);[m + [m +[1mdiff --git a/iup/src/iup_table.h b/iup/src/iup_table.h[m +[1mindex 5222160..f2ff2c7 100755[m +[1m--- a/iup/src/iup_table.h[m +[1m+++ b/iup/src/iup_table.h[m +[36m@@ -42,8 +42,8 @@[m [mtypedef enum _Itable_Types[m + [m + typedef void (*Ifunc)(void);[m + [m +[31m-struct Itable;[m +[31m-typedef struct Itable Itable;[m +[32m+[m[32mstruct _Itable;[m +[32m+[m[32mtypedef struct _Itable Itable;[m + [m + [m + /** Creates a hash table with an initial default size.[m +[36m@@ -63,7 +63,7 @@[m [mItable *iupTableCreateSized(Itable_IndexTypes indexType, unsigned int initialSiz[m + /** Destroys the Itable.[m + * Calls \ref iupTableClear.[m + * \ingroup table */[m +[31m-void iupTableDestroy(Itable *n);[m +[32m+[m[32mvoid iupTableDestroy(Itable *it);[m + [m + /** Removes all items in the table.[m + * This function does also free the memory of strings contained in the table!!!![m +[36m@@ -76,33 +76,33 @@[m [mint iupTableCount(Itable *it);[m + [m + /** Store an element in the table.[m + * \ingroup table */[m +[31m-void iupTableSet(Itable *n, const char *key, void *value, Itable_Types itemType);[m +[32m+[m[32mvoid iupTableSet(Itable *it, const char *key, void *value, Itable_Types itemType);[m + [m + /** Store a function pointer in the table.[m + * Type is set to IUPTABLE_FUNCPOINTER.[m + * \ingroup table */[m +[31m-void iupTableSetFunc(Itable *n, const char *key, Ifunc func);[m +[32m+[m[32mvoid iupTableSetFunc(Itable *it, const char *key, Ifunc func);[m + [m + /** Retrieves an element from the table.[m + * Returns NULL if not found.[m + * \ingroup table */[m +[31m-void *iupTableGet(Itable *n, const char *key);[m +[32m+[m[32mvoid *iupTableGet(Itable *it, const char *key);[m + [m + /** Retrieves a function pointer from the table. [m + * If not a function or not found returns NULL.[m + * value always contains the element pointer.[m + * \ingroup table */[m +[31m-Ifunc iupTableGetFunc(Itable *n, const char *key, void **value);[m +[32m+[m[32mIfunc iupTableGetFunc(Itable *it, const char *key, void **value);[m + [m + /** Retrieves an element from the table and its type.[m + * \ingroup table */[m +[31m-void *iupTableGetTyped(Itable *n, const char *key, Itable_Types *itemType);[m +[32m+[m[32mvoid *iupTableGetTyped(Itable *it, const char *key, Itable_Types *itemType);[m + [m + /** Removes the entry at the specified key from the[m + * hash table and frees the memory used by it if[m + * it is a string...[m + * \ingroup table */[m +[31m-void iupTableRemove(Itable *n, const char *key);[m +[32m+[m[32mvoid iupTableRemove(Itable *it, const char *key);[m + [m + /** Key iteration function. Returns a key.[m + * To iterate over all keys call iupTableFirst at the first[m +[1mdiff --git a/iup/src/iup_tabs.c b/iup/src/iup_tabs.c[m +[1mindex 77b2cf5..2907371 100755[m +[1m--- a/iup/src/iup_tabs.c[m +[1m+++ b/iup/src/iup_tabs.c[m +[36m@@ -307,6 +307,25 @@[m [mstatic char* iTabsGetClientSizeAttrib(Ihandle* ih)[m + return str;[m + }[m + [m +[32m+[m[32mvoid iupTabsTestRemoveTab(Ihandle* ih, int pos)[m +[32m+[m[32m{[m +[32m+[m[32m int cur_pos = iupdrvTabsGetCurrentTab(ih);[m +[32m+[m[32m if (cur_pos == pos)[m +[32m+[m[32m {[m +[32m+[m[32m if (cur_pos == 0)[m +[32m+[m[32m {[m +[32m+[m[32m Ihandle* child = IupGetChild(ih, 1);[m +[32m+[m[32m if (!child) /* not found child, means only one child, do nothing */[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m cur_pos = 1;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m cur_pos--;[m +[32m+[m +[32m+[m[32m iupdrvTabsSetCurrentTab(ih, cur_pos);[m +[32m+[m[32m }[m +[32m+[m[32m}[m + [m + /* ------------------------------------------------------------------------- */[m + /* TABS - Methods */[m +[1mdiff --git a/iup/src/iup_tabs.h b/iup/src/iup_tabs.h[m +[1mindex 7f5df2e..fd0edf4 100755[m +[1m--- a/iup/src/iup_tabs.h[m +[1m+++ b/iup/src/iup_tabs.h[m +[36m@@ -16,6 +16,7 @@[m [mchar* iupTabsGetTabOrientationAttrib(Ihandle* ih);[m + char* iupTabsGetTabTypeAttrib(Ihandle* ih);[m + char* iupTabsAttribGetStrId(Ihandle* ih, const char* name, int pos);[m + char* iupTabsGetPaddingAttrib(Ihandle* ih);[m +[32m+[m[32mvoid iupTabsTestRemoveTab(Ihandle* ih, int pos);[m + [m + int iupdrvTabsExtraDecor(Ihandle* ih);[m + int iupdrvTabsGetLineCountAttrib(Ihandle* ih);[m +[1mdiff --git a/iup/src/iup_tree.c b/iup/src/iup_tree.c[m +[1mindex c06e573..b5344f5 100755[m +[1m--- a/iup/src/iup_tree.c[m +[1m+++ b/iup/src/iup_tree.c[m +[36m@@ -200,6 +200,240 @@[m [mvoid iupTreeUpdateImages(Ihandle *ih)[m + iupClassObjectSetAttribute(ih, "IMAGEBRANCHEXPANDED", value, &inherit);[m + }[m + [m +[32m+[m[32mvoid iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id)[m +[32m+[m[32m{[m +[32m+[m[32m /* if last selected item is a branch, then select its children */[m +[32m+[m[32m if (iupStrEqual(IupTreeGetAttribute(ih, "KIND", *last_id), "BRANCH") &&[m[41m [m +[32m+[m[32m iupStrEqual(IupTreeGetAttribute(ih, "STATE", *last_id), "COLLAPSED"))[m +[32m+[m[32m {[m +[32m+[m[32m int childcount = IupTreeGetInt(ih, "CHILDCOUNT", *last_id);[m +[32m+[m[32m if (childcount > 0)[m +[32m+[m[32m {[m +[32m+[m[32m int start = *last_id + 1;[m +[32m+[m[32m int end = *last_id + childcount;[m +[32m+[m[32m IupSetfAttribute(ih, "MARK", "%d-%d", start, end);[m +[32m+[m[32m *last_id = *last_id + childcount;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mint iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata)[m +[32m+[m[32m{[m +[32m+[m[32m int i;[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (!func(ih, ih->data->node_cache[i].node_handle, i, userdata))[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mint iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle)[m +[32m+[m[32m{[m +[32m+[m[32m /* Unoptimized version:[m +[32m+[m[32m int i;[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (ih->data->node_cache[i].node_handle == node_handle)[m +[32m+[m[32m return i;[m +[32m+[m[32m }[m +[32m+[m[32m */[m +[32m+[m[32m InodeData *node_cache = ih->data->node_cache;[m +[32m+[m[32m while(node_cache->node_handle != node_handle &&[m[41m [m +[32m+[m[32m node_cache->node_handle != NULL) /* the cache always have zeros at the end */[m +[32m+[m[32m node_cache++;[m +[32m+[m +[32m+[m[32m if (node_cache->node_handle != NULL)[m +[32m+[m[32m return node_cache - ih->data->node_cache;[m +[32m+[m[32m else[m +[32m+[m[32m return -1;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int iTreeFindUserDataId(Ihandle* ih, void* userdata)[m +[32m+[m[32m{[m +[32m+[m[32m /* Unoptimized version:[m +[32m+[m[32m int i;[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (ih->data->node_cache[i].node_handle == node_handle)[m +[32m+[m[32m return i;[m +[32m+[m[32m }[m +[32m+[m[32m */[m +[32m+[m[32m InodeData *node_cache = ih->data->node_cache;[m +[32m+[m[32m while(node_cache->userdata != userdata &&[m[41m [m +[32m+[m[32m node_cache->node_handle != NULL) /* the cache always have zeros at the end */[m +[32m+[m[32m node_cache++;[m +[32m+[m +[32m+[m[32m if (node_cache->node_handle != NULL)[m +[32m+[m[32m return node_cache - ih->data->node_cache;[m +[32m+[m[32m else[m +[32m+[m[32m return -1;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int iTreeGetIdFromString(const char* name_id)[m +[32m+[m[32m{[m +[32m+[m[32m if (name_id && name_id[0])[m +[32m+[m[32m {[m +[32m+[m[32m int id = -1;[m +[32m+[m[32m iupStrToInt(name_id, &id);[m +[32m+[m[32m return id;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return -2;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mInodeHandle* iupTreeGetNode(Ihandle* ih, int id)[m +[32m+[m[32m{[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m return ih->data->node_cache[id].node_handle;[m +[32m+[m[32m else if (id == -2)[m +[32m+[m[32m return iupdrvTreeGetFocusNode(ih);[m +[32m+[m[32m else[m +[32m+[m[32m return NULL;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mInodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id)[m +[32m+[m[32m{[m +[32m+[m[32m return iupTreeGetNode(ih, iTreeGetIdFromString(name_id));[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void iTreeAddToCache(Ihandle* ih, int id, InodeHandle* node_handle)[m +[32m+[m[32m{[m +[32m+[m[32m iupASSERT(id >= 0 && id < ih->data->node_count);[m +[32m+[m[32m if (id < 0 || id >= ih->data->node_count)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m /* node_count here already contains the final count */[m +[32m+[m +[32m+[m[32m if (id == ih->data->node_count-1)[m +[32m+[m[32m ih->data->node_cache[id].node_handle = node_handle;[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* open space for the new id */[m +[32m+[m[32m int remain_count = ih->data->node_count-id;[m +[32m+[m[32m memmove(ih->data->node_cache+id+1, ih->data->node_cache+id, remain_count*sizeof(InodeData));[m +[32m+[m[32m ih->data->node_cache[id].node_handle = node_handle;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m ih->data->node_cache[id].userdata = NULL;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void iTreeIncCacheMem(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m /* node_count here already contains the final count */[m +[32m+[m +[32m+[m[32m if (ih->data->node_count+10 > ih->data->node_cache_max)[m +[32m+[m[32m {[m +[32m+[m[32m int old_node_cache_max = ih->data->node_cache_max;[m +[32m+[m[32m ih->data->node_cache_max += 20;[m +[32m+[m[32m ih->data->node_cache = realloc(ih->data->node_cache, ih->data->node_cache_max*sizeof(InodeData));[m +[32m+[m[32m memset(ih->data->node_cache+old_node_cache_max, 0, 20*sizeof(InodeData));[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle)[m +[32m+[m[32m{[m +[32m+[m[32m int new_id = 0;[m +[32m+[m +[32m+[m[32m ih->data->node_count++;[m +[32m+[m +[32m+[m[32m /* node_count here already contains the final count */[m +[32m+[m[32m iTreeIncCacheMem(ih);[m +[32m+[m +[32m+[m[32m if (prevNode)[m +[32m+[m[32m {[m +[32m+[m[32m if (add || kindPrev == ITREE_LEAF)[m +[32m+[m[32m {[m +[32m+[m[32m /* ADD implies always that id=prev_id+1 */[m +[32m+[m[32m /* INSERT after a leaf implies always that new_id=prev_id+1 */[m +[32m+[m[32m int prev_id = iupTreeFindNodeId(ih, prevNode);[m +[32m+[m[32m new_id = prev_id+1;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* INSERT after a branch implies always that new_id=prev_id+1+child_count */[m +[32m+[m[32m int prev_id = iupTreeFindNodeId(ih, prevNode);[m +[32m+[m[32m int child_count = iupdrvTreeTotalChildCount(ih, prevNode);[m +[32m+[m[32m new_id = prev_id+1+child_count;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iTreeAddToCache(ih, new_id, node_handle);[m +[32m+[m[32m iupAttribSetInt(ih, "LASTADDNODE", new_id);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupTreeDelFromCache(Ihandle* ih, int id, int count)[m +[32m+[m[32m{[m +[32m+[m[32m int remain_count;[m +[32m+[m +[32m+[m[32m /* id can be the last node, actually==node_count becase node_count is already updated */[m +[32m+[m[32m iupASSERT(id >= 0 && id <= ih->data->node_count);[m[41m [m +[32m+[m[32m if (id < 0 || id > ih->data->node_count)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m /* node_count here already contains the final count */[m +[32m+[m +[32m+[m[32m /* remove id+count */[m +[32m+[m[32m remain_count = ih->data->node_count-id;[m +[32m+[m[32m memmove(ih->data->node_cache+id, ih->data->node_cache+id+count, remain_count*sizeof(InodeData));[m +[32m+[m +[32m+[m[32m /* clear the remaining space */[m +[32m+[m[32m memset(ih->data->node_cache+ih->data->node_count, 0, count*sizeof(InodeData));[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy)[m +[32m+[m[32m{[m +[32m+[m[32m int remain_count;[m +[32m+[m +[32m+[m[32m iupASSERT(id_src >= 0 && id_src < ih->data->node_count);[m +[32m+[m[32m if (id_src < 0 || id_src >= ih->data->node_count)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m iupASSERT(id_dst >= 0 && id_dst < ih->data->node_count);[m +[32m+[m[32m if (id_dst < 0 || id_dst >= ih->data->node_count)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m iupASSERT(id_dst < id_src || id_dst > id_src+count);[m +[32m+[m[32m if (id_dst >= id_src && id_dst <= id_src+count)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m /* id_dst here points to the final position for a copy operation */[m +[32m+[m +[32m+[m[32m /* node_count here contains the final count for a copy operation */[m +[32m+[m[32m iTreeIncCacheMem(ih);[m +[32m+[m +[32m+[m[32m /* add space for new nodes */[m +[32m+[m[32m remain_count = ih->data->node_count - (id_dst + count);[m +[32m+[m[32m memmove(ih->data->node_cache+id_dst+count, ih->data->node_cache+id_dst, remain_count*sizeof(InodeData));[m +[32m+[m +[32m+[m[32m /* compensate because we add space for new nodes */[m +[32m+[m[32m if (id_src > id_dst)[m +[32m+[m[32m id_src += count;[m +[32m+[m +[32m+[m[32m if (is_copy)[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m /* during a copy, the userdata is not reused, so clear it */[m +[32m+[m[32m memset(ih->data->node_cache+id_dst, 0, count*sizeof(InodeData));[m +[32m+[m[32m }[m +[32m+[m[32m else /* move = copy + delete */[m +[32m+[m[32m {[m +[32m+[m[32m /* copy userdata from src to dst */[m +[32m+[m[32m memcpy(ih->data->node_cache+id_dst, ih->data->node_cache+id_src, count*sizeof(InodeData));[m +[32m+[m +[32m+[m[32m /* remove the src */[m +[32m+[m[32m remain_count = ih->data->node_count - (id_src + count);[m +[32m+[m[32m memmove(ih->data->node_cache+id_src, ih->data->node_cache+id_src+count, remain_count*sizeof(InodeData));[m +[32m+[m +[32m+[m[32m /* clear the remaining space */[m +[32m+[m[32m memset(ih->data->node_cache+ih->data->node_count-count, 0, count*sizeof(InodeData));[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m +[32m+[m[32m/*************************************************************************/[m +[32m+[m +[32m+[m + char* iupTreeGetSpacingAttrib(Ihandle* ih)[m + {[m + char *str = iupStrGetMemory(50);[m +[36m@@ -221,8 +455,10 @@[m [mstatic int iTreeSetMarkModeAttrib(Ihandle* ih, const char* value)[m + ih->data->mark_mode = ITREE_MARK_MULTIPLE; [m + else [m + ih->data->mark_mode = ITREE_MARK_SINGLE;[m +[32m+[m + if (ih->handle)[m +[31m- iupdrvTreeUpdateMarkMode(ih);[m +[32m+[m[32m iupdrvTreeUpdateMarkMode(ih); /* for this to work, must update during map */[m +[32m+[m + return 0;[m + }[m + [m +[36m@@ -290,7 +526,7 @@[m [mstatic int iTreeSetShowDragDropAttrib(Ihandle* ih, const char* value)[m + [m + static int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 1);[m + return 0;[m +[36m@@ -298,7 +534,7 @@[m [mstatic int iTreeSetAddLeafAttrib(Ihandle* ih, const char* name_id, const char* v[m + [m + static int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 1);[m + return 0;[m +[36m@@ -306,7 +542,7 @@[m [mstatic int iTreeSetAddBranchAttrib(Ihandle* ih, const char* name_id, const char*[m + [m + static int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + iupdrvTreeAddNode(ih, name_id, ITREE_LEAF, value, 0);[m + return 0;[m +[36m@@ -314,7 +550,7 @@[m [mstatic int iTreeSetInsertLeafAttrib(Ihandle* ih, const char* name_id, const char[m + [m + static int iTreeSetInsertBranchAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + iupdrvTreeAddNode(ih, name_id, ITREE_BRANCH, value, 0);[m + return 0;[m +[36m@@ -338,6 +574,74 @@[m [mstatic int iTreeSetAddExpandedAttrib(Ihandle* ih, const char* value)[m + return 0;[m + }[m + [m +[32m+[m[32mstatic char* iTreeGetCountAttrib(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m char* str = iupStrGetMemory(10);[m +[32m+[m[32m sprintf(str, "%d", ih->data->node_count);[m +[32m+[m[32m return str;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic char* iTreeGetTotalChildCountAttrib(Ihandle* ih, const char* name_id)[m +[32m+[m[32m{[m +[32m+[m[32m char* str;[m +[32m+[m[32m InodeHandle* node_handle = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m if (!node_handle)[m +[32m+[m[32m return NULL;[m +[32m+[m +[32m+[m[32m str = iupStrGetMemory(10);[m +[32m+[m[32m sprintf(str, "%d", iupdrvTreeTotalChildCount(ih, node_handle));[m +[32m+[m[32m return str;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m +[32m+[m[32mstatic char* iTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)[m +[32m+[m[32m{[m +[32m+[m[32m int id;[m +[32m+[m[32m char* str = (char*)(name_id+1); /* skip ':' */[m +[32m+[m[32m void* userdata = NULL;[m +[32m+[m[32m if (sscanf(str, "%p", &userdata)!=1)[m +[32m+[m[32m return NULL;[m +[32m+[m[32m id = iTreeFindUserDataId(ih, userdata);[m +[32m+[m[32m if (id == -1)[m +[32m+[m[32m return NULL;[m +[32m+[m[32m str = iupStrGetMemory(16);[m +[32m+[m[32m sprintf(str, "%d", id);[m +[32m+[m[32m return str;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic char* iTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)[m +[32m+[m[32m{[m +[32m+[m[32m int id = iTreeGetIdFromString(name_id);[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m return ih->data->node_cache[id].userdata;[m +[32m+[m[32m else if (id == -2)[m +[32m+[m[32m {[m +[32m+[m[32m InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih);[m +[32m+[m[32m id = iupTreeFindNodeId(ih, node_handle);[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m return ih->data->node_cache[id].userdata;[m +[32m+[m[32m }[m +[32m+[m[32m return NULL;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int iTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m int id = iTreeGetIdFromString(name_id);[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m ih->data->node_cache[id].userdata = (void*)value;[m +[32m+[m[32m else if (id == -2)[m +[32m+[m[32m {[m +[32m+[m[32m InodeHandle* node_handle = iupdrvTreeGetFocusNode(ih);[m +[32m+[m[32m id = iupTreeFindNodeId(ih, node_handle);[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m ih->data->node_cache[id].userdata = (void*)value;[m +[32m+[m[32m }[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m +[32m+[m[32m/*************************************************************************/[m +[32m+[m + static int iTreeCreateMethod(Ihandle* ih, void **params)[m + {[m + (void)params;[m +[36m@@ -348,10 +652,20 @@[m [mstatic int iTreeCreateMethod(Ihandle* ih, void **params)[m + IupSetAttribute(ih, "EXPAND", "YES");[m + [m + ih->data->add_expanded = 1;[m +[32m+[m[32m ih->data->node_cache_max = 20;[m +[32m+[m[32m ih->data->node_cache = calloc(ih->data->node_cache_max, sizeof(InodeData));[m + [m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mstatic void iTreeDestroyMethod(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m if (ih->data->node_cache)[m +[32m+[m[32m free(ih->data->node_cache);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32m/*************************************************************************/[m +[32m+[m + Ihandle* IupTree(void)[m + {[m + return IupCreate("tree");[m +[36m@@ -371,15 +685,15 @@[m [mIclass* iupTreeGetClass(void)[m + /* Class functions */[m + ic->Create = iTreeCreateMethod;[m + ic->LayoutUpdate = iupdrvBaseLayoutUpdateMethod;[m +[31m- ic->UnMap = iupdrvBaseUnMapMethod;[m +[32m+[m[32m ic->Destroy = iTreeDestroyMethod;[m + [m + /* Callbacks */[m + iupClassRegisterCallback(ic, "SELECTION_CB", "ii");[m + iupClassRegisterCallback(ic, "MULTISELECTION_CB", "Ii");[m +[32m+[m[32m iupClassRegisterCallback(ic, "MULTIUNSELECTION_CB", "Ii");[m + iupClassRegisterCallback(ic, "BRANCHOPEN_CB", "i");[m + iupClassRegisterCallback(ic, "BRANCHCLOSE_CB", "i");[m + iupClassRegisterCallback(ic, "EXECUTELEAF_CB", "i");[m +[31m- iupClassRegisterCallback(ic, "RENAMENODE_CB", "is");[m + iupClassRegisterCallback(ic, "SHOWRENAME_CB", "i");[m + iupClassRegisterCallback(ic, "RENAME_CB", "is");[m + iupClassRegisterCallback(ic, "DRAGDROP_CB", "iiii");[m +[36m@@ -392,9 +706,12 @@[m [mIclass* iupTreeGetClass(void)[m + iupBaseRegisterVisualAttrib(ic);[m + [m + /* IupTree Attributes - GENERAL */[m +[31m- iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "SHOWDRAGDROP", iTreeGetShowDragDropAttrib, iTreeSetShowDragDropAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "SHOWRENAME", iTreeGetShowRenameAttrib, iTreeSetShowRenameAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "ADDEXPANDED", iTreeGetAddExpandedAttrib, iTreeSetAddExpandedAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "COUNT", iTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "LASTADDNODE", NULL, NULL, IUPAF_SAMEASSYSTEM, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "ADDROOT", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);[m + [m + /* IupTree Attributes - MARKS */[m + iupClassRegisterAttribute(ic, "CTRL", NULL, iTreeSetCtrlAttrib, NULL, NULL, IUPAF_NOT_MAPPED);[m +[36m@@ -406,6 +723,11 @@[m [mIclass* iupTreeGetClass(void)[m + iupClassRegisterAttributeId(ic, "ADDBRANCH", NULL, iTreeSetAddBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "INSERTLEAF", NULL, iTreeSetInsertLeafAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "INSERTBRANCH", NULL, iTreeSetInsertBranchAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[32m+[m +[32m+[m[32m /* IupTree Attributes - NODES */[m +[32m+[m[32m iupClassRegisterAttributeId(ic, "TOTALCHILDCOUNT", iTreeGetTotalChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttributeId(ic, "FINDUSERDATA", iTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttributeId(ic, "USERDATA", iTreeGetUserDataAttrib, iTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m + [m + /* Default node images */[m + iTreeInitializeImages();[m +[36m@@ -415,18 +737,23 @@[m [mIclass* iupTreeGetClass(void)[m + return ic;[m + }[m + [m +[31m-[m + /********************************************************************************************/[m + [m +[31m-[m +[31m-void IupTreeSetAttribute(Ihandle* ih, const char* a, int id, char* v)[m +[32m+[m[32mvoid IupTreeSetAttribute(Ihandle* ih, const char* a, int id, const char* v)[m + {[m + char* attr = iupStrGetMemory(50);[m + sprintf(attr, "%s%d", a, id);[m + IupSetAttribute(ih, attr, v);[m + }[m + [m +[31m-void IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, char* v)[m +[32m+[m[32mvoid IupTreeSetAttributeHandle(Ihandle* ih, const char* a, int id, Ihandle* ih_named)[m +[32m+[m[32m{[m +[32m+[m[32m char* attr = iupStrGetMemory(50);[m +[32m+[m[32m sprintf(attr, "%s%d", a, id);[m +[32m+[m[32m IupSetAttributeHandle(ih, attr, ih_named);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid IupTreeStoreAttribute(Ihandle* ih, const char* a, int id, const char* v)[m + {[m + char* attr = iupStrGetMemory(50);[m + sprintf(attr, "%s%d", a, id);[m +[36m@@ -454,7 +781,7 @@[m [mfloat IupTreeGetFloat(Ihandle* ih, const char* a, int id)[m + return IupGetFloat(ih, attr);[m + }[m + [m +[31m-void IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...)[m +[32m+[m[32mvoid IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, const char* f, ...)[m + {[m + static char v[SHRT_MAX];[m + char* attr = iupStrGetMemory(50);[m +[36m@@ -466,34 +793,40 @@[m [mvoid IupTreeSetfAttribute(Ihandle* ih, const char* a, int id, char* f, ...)[m + IupStoreAttribute(ih, attr, v);[m + }[m + [m +[31m-[m + /************************************************************************************/[m + [m +[31m-[m + int IupTreeSetUserId(Ihandle* ih, int id, void* userdata)[m + {[m +[31m- char attr[30];[m +[31m- sprintf(attr,"USERDATA%d",id);[m +[31m- IupSetAttribute(ih, attr, userdata);[m +[31m- return IupGetAttribute(ih, attr)? 1: 0;[m +[32m+[m[32m iupASSERT(iupObjectCheck(ih));[m +[32m+[m[32m if (!iupObjectCheck(ih))[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m {[m +[32m+[m[32m ih->data->node_cache[id].userdata = userdata;[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return 0;[m + }[m + [m + int IupTreeGetId(Ihandle* ih, void *userdata)[m + {[m +[31m- int id = -1;[m +[31m- char* value;[m +[31m- char attr[30];[m +[31m- sprintf(attr,"FINDUSERDATA:%p",userdata);[m +[31m- value = IupGetAttribute(ih, attr);[m +[31m- if (!value) return -1;[m +[32m+[m[32m iupASSERT(iupObjectCheck(ih));[m +[32m+[m[32m if (!iupObjectCheck(ih))[m +[32m+[m[32m return -1;[m + [m +[31m- iupStrToInt(value, &id);[m +[31m- return id;[m +[32m+[m[32m return iTreeFindUserDataId(ih, userdata);[m + }[m + [m + void* IupTreeGetUserId(Ihandle* ih, int id)[m + {[m +[31m- char attr[30];[m +[31m- sprintf(attr,"USERDATA%d",id);[m +[31m- return IupGetAttribute(ih, attr);[m +[32m+[m[32m iupASSERT(iupObjectCheck(ih));[m +[32m+[m[32m if (!iupObjectCheck(ih))[m +[32m+[m[32m return NULL;[m +[32m+[m +[32m+[m[32m if (id >= 0 && id < ih->data->node_count)[m +[32m+[m[32m return ih->data->node_cache[id].userdata;[m +[32m+[m +[32m+[m[32m return NULL;[m + }[m +[1mdiff --git a/iup/src/iup_tree.h b/iup/src/iup_tree.h[m +[1mindex f96a698..44acc83 100755[m +[1m--- a/iup/src/iup_tree.h[m +[1m+++ b/iup/src/iup_tree.h[m +[36m@@ -29,6 +29,36 @@[m [mvoid iupdrvTreeUpdateMarkMode(Ihandle *ih);[m + [m + char* iupTreeGetSpacingAttrib(Ihandle* ih);[m + [m +[32m+[m[32m#if defined(GTK_MAJOR_VERSION)[m +[32m+[m[32mtypedef void InodeHandle;[m +[32m+[m[32m#elif defined(XmVERSION)[m +[32m+[m[32mtypedef struct _WidgetRec InodeHandle;[m +[32m+[m[32m#elif defined(WINVER)[m +[32m+[m[32mtypedef struct _TREEITEM InodeHandle;[m +[32m+[m[32m#else[m +[32m+[m[32mtypedef struct _InodeData InodeHandle;[m +[32m+[m[32m#endif[m +[32m+[m +[32m+[m[32mtypedef struct _InodeData[m +[32m+[m[32m{[m +[32m+[m[32m InodeHandle* node_handle;[m +[32m+[m[32m void* userdata;[m +[32m+[m[32m} InodeData;[m +[32m+[m +[32m+[m[32mtypedef int (*iupTreeNodeFunc)(Ihandle* ih, InodeHandle* node_handle, int id, void* userdata);[m +[32m+[m[32mint iupTreeForEach(Ihandle* ih, iupTreeNodeFunc func, void* userdata);[m +[32m+[m[32mInodeHandle* iupTreeGetNode(Ihandle* ih, int id);[m +[32m+[m[32mInodeHandle* iupTreeGetNodeFromString(Ihandle* ih, const char* name_id);[m +[32m+[m[32mint iupTreeFindNodeId(Ihandle* ih, InodeHandle* node_handle);[m +[32m+[m +[32m+[m[32mInodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih);[m +[32m+[m[32mint iupdrvTreeTotalChildCount(Ihandle* ih, InodeHandle* node_handle);[m +[32m+[m[32mvoid iupTreeSelectLastCollapsedBranch(Ihandle* ih, int *last_id);[m +[32m+[m +[32m+[m[32mvoid iupTreeDelFromCache(Ihandle* ih, int id, int count);[m +[32m+[m[32mvoid iupTreeAddToCache(Ihandle* ih, int add, int kindPrev, InodeHandle* prevNode, InodeHandle* node_handle);[m +[32m+[m[32mvoid iupTreeCopyMoveCache(Ihandle* ih, int id_src, int id_dst, int count, int is_copy);[m +[32m+[m + /* Structure of the tree */[m + struct _IcontrolData[m + {[m +[36m@@ -36,6 +66,7 @@[m [mstruct _IcontrolData[m + add_expanded,[m + show_dragdrop,[m + show_rename,[m +[32m+[m[32m stamp, /* GTK only */[m + spacing;[m + [m + void* def_image_leaf; /* Default image leaf */[m +[36m@@ -44,9 +75,10 @@[m [mstruct _IcontrolData[m + [m + void* def_image_leaf_mask; /* Motif Only */[m + void* def_image_collapsed_mask; [m +[31m- void* def_image_expanded_mask; [m +[32m+[m[32m void* def_image_expanded_mask;[m[41m [m + [m +[31m- int id_control; /* auxiliary variable for computing or finding the id of a node */[m +[32m+[m[32m InodeData *node_cache;[m +[32m+[m[32m int node_cache_max, node_count;[m + };[m + [m + [m +[1mdiff --git a/iup/src/iup_vbox.c b/iup/src/iup_vbox.c[m +[1mindex f71aa51..23e8e3a 100755[m +[1m--- a/iup/src/iup_vbox.c[m +[1m+++ b/iup/src/iup_vbox.c[m +[36m@@ -215,6 +215,13 @@[m [mstatic void iVboxSetChildrenCurrentSizeMethod(Ihandle* ih, int shrink)[m + else[m + {[m + int empty = (child->expand & IUP_EXPAND_H1)? empty_h1: ((child->expand & IUP_EXPAND_H0)? empty_h0: 0);[m +[32m+[m[32m char* weigth_str = iupAttribGet(child, "EXPANDWEIGTH");[m +[32m+[m[32m if (weigth_str)[m +[32m+[m[32m {[m +[32m+[m[32m float weigth;[m[41m [m +[32m+[m[32m if (iupStrToFloat(weigth_str, &weigth))[m +[32m+[m[32m empty = iupROUND(empty * weigth);[m +[32m+[m[32m }[m + iupBaseSetCurrentSize(child, client_width, child->naturalheight+empty, shrink);[m + }[m + [m +[1mdiff --git a/iup/src/iup_zbox.c b/iup/src/iup_zbox.c[m +[1mindex 3f79892..dd4a0e4 100755[m +[1m--- a/iup/src/iup_zbox.c[m +[1m+++ b/iup/src/iup_zbox.c[m +[36m@@ -210,7 +210,7 @@[m [mstatic int iZboxSetVisibleAttrib(Ihandle* ih, const char* value)[m + {[m + if (iupObjectCheck(ih->data->value_handle))[m + IupSetAttribute(ih->data->value_handle, "VISIBLE", (char*)value);[m +[31m- return 0;[m +[32m+[m[32m return 1; /* must be 1 to mark when set at the element */[m + }[m + [m + static void iZboxComputeNaturalSizeMethod(Ihandle* ih, int *w, int *h, int *expand)[m +[36m@@ -368,8 +368,8 @@[m [mIclass* iupZboxGetClass(void)[m + iupClassRegisterAttribute(ic, "VALUEPOS", iZboxGetValuePosAttrib, iZboxSetValuePosAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "VALUE_HANDLE", NULL, iZboxSetValueHandleAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT|IUPAF_NO_STRING);[m + [m +[31m- /* Intercept VISIBLE since ZBOX works showing and hidding its children */[m +[31m- iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m /* Intercept VISIBLE since ZBOX works by showing and hidding its children */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "VISIBLE", NULL, iZboxSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED);[m + [m + return ic;[m + }[m +[1mdiff --git a/iup/src/make_uname b/iup/src/make_uname[m +[1mindex 7fec9f8..6542234 100755[m +[1m--- a/iup/src/make_uname[m +[1m+++ b/iup/src/make_uname[m +[36m@@ -1,4 +1,4 @@[m + #This builds all the libraries of the folder for 1 uname[m + [m +[31m-tecmake $1 $2 $3 $4 $5 $6 $7[m +[32m+[m[32mtecmake USE_MOTIF=Yes $1 $2 $3 $4 $5 $6 $7[m + tecmake USE_GTK=Yes $1 $2 $3 $4 $5 $6 $7[m +[1mdiff --git a/iup/src/mot/iupmot_button.c b/iup/src/mot/iupmot_button.c[m +[1mindex 2d93588..f6e383f 100755[m +[1m--- a/iup/src/mot/iupmot_button.c[m +[1m+++ b/iup/src/mot/iupmot_button.c[m +[36m@@ -112,8 +112,10 @@[m [mstatic int motButtonSetPaddingAttrib(Ihandle* ih, const char* value)[m + {[m + XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,[m + XmNmarginWidth, ih->data->horiz_padding, NULL);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int motButtonSetBgColorAttrib(Ihandle* ih, const char* value)[m +[36m@@ -189,43 +191,43 @@[m [mstatic int motButtonMapMethod(Ihandle* ih)[m + if (value)[m + {[m + ih->data->type = IUP_BUTTON_IMAGE;[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);[m + }[m + else[m + {[m + ih->data->type = IUP_BUTTON_TEXT;[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);[m + }[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Label */[m +[31m- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */[m +[31m- iupmotSetArg(args, num_args, XmNmarginLeft, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginBottom, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginRight, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginRight, 0);[m + /* PushButton */[m +[31m- iupmotSetArg(args, num_args, XmNfillOnArm, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNfillOnArm, False);[m + [m + /* Primitive */[m + if (iupAttribGetBoolean(ih, "FOCUSONCLICK"))[m + {[m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + }[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m + [m + ih->handle = XtCreateManagedWidget([m + iupDialogGetChildIdStr(ih), /* child identifier */[m +[1mdiff --git a/iup/src/mot/iupmot_canvas.c b/iup/src/mot/iupmot_canvas.c[m +[1mindex 7777cf3..299bbcd 100755[m +[1m--- a/iup/src/mot/iupmot_canvas.c[m +[1m+++ b/iup/src/mot/iupmot_canvas.c[m +[36m@@ -434,6 +434,10 @@[m [mstatic void motCanvasLayoutUpdateMethod(Ihandle *ih)[m + [m + XtVaGetValues(sb_win, XmNborderWidth, &border, NULL);[m + [m +[32m+[m[32m /* avoid abort in X */[m +[32m+[m[32m if (ih->currentwidth <= 2*border) ih->currentwidth = 2*border+1;[m +[32m+[m[32m if (ih->currentheight <= 2*border) ih->currentheight = 2*border+1;[m +[32m+[m + XtVaSetValues(sb_win,[m + XmNx, (XtArgVal)ih->x,[m + XmNy, (XtArgVal)ih->y,[m +[36m@@ -458,19 +462,19 @@[m [mstatic int motCanvasMapMethod(Ihandle* ih)[m + /* Create the scrolled window */[m + /******************************/[m + [m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);[m +[31m- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and draw area */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m + [m + if (iupAttribGetBoolean(ih, "BORDER"))[m + {[m +[31m- iupmotSetArg(args, num_args, XmNborderWidth, 1);[m +[31m- iupmotSetArg(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0"));[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderWidth, 1);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderColor, iupmotColorGetPixelStr("0 0 0"));[m + }[m + else[m +[31m- iupmotSetArg(args, num_args, XmNborderWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderWidth, 0);[m + [m + sb_win = XtCreateManagedWidget([m + iupDialogGetChildIdStr(ih), /* child identifier */[m +[36m@@ -488,36 +492,36 @@[m [mstatic int motCanvasMapMethod(Ihandle* ih)[m + /****************************/[m + [m + num_args = 0;[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[31m- iupmotSetArg(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNresizePolicy, XmRESIZE_NONE); /* no automatic resize of children */[m + if (ih->iclass->is_interactive)[m + {[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP); /* include in navigation */[m + [m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + }[m + else[m + {[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmNONE);[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmNONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + }[m + [m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + [m + visual = IupGetAttribute(ih, "VISUAL"); /* defined by the OpenGL Canvas or NULL */[m + if (visual)[m + {[m + Colormap colormap = (Colormap)iupAttribGet(ih, "COLORMAP");[m + if (colormap)[m +[31m- iupmotSetArg(args, num_args, XmNcolormap,colormap);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcolormap,colormap);[m + [m + iupmotDialogSetVisual(ih, visual);[m + }[m +[1mdiff --git a/iup/src/mot/iupmot_common.c b/iup/src/mot/iupmot_common.c[m +[1mindex 7b3f8b7..286e075 100755[m +[1m--- a/iup/src/mot/iupmot_common.c[m +[1m+++ b/iup/src/mot/iupmot_common.c[m +[36m@@ -167,6 +167,10 @@[m [mvoid iupdrvBaseLayoutUpdateMethod(Ihandle *ih)[m + Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");[m + if (!widget) widget = ih->handle;[m + [m +[32m+[m[32m /* avoid abort in X */[m +[32m+[m[32m if (ih->currentwidth == 0) ih->currentwidth = 1;[m +[32m+[m[32m if (ih->currentheight == 0) ih->currentheight = 1;[m +[32m+[m + XtVaSetValues(widget,[m + XmNx, (XtArgVal)ih->x,[m + XmNy, (XtArgVal)ih->y,[m +[36m@@ -184,7 +188,7 @@[m [mvoid iupdrvBaseUnMapMethod(Ihandle* ih)[m + XtDestroyWidget(widget); /* To match the call to XtCreateManagedWidget */[m + }[m + [m +[31m-void iupdrvDisplayUpdate(Ihandle *ih)[m +[32m+[m[32mvoid iupdrvPostRedraw(Ihandle *ih)[m + {[m + XExposeEvent evt;[m + Dimension w, h;[m +[36m@@ -209,12 +213,12 @@[m [mvoid iupdrvDisplayUpdate(Ihandle *ih)[m + XSendEvent(iupmot_display, XtWindow(ih->handle), False, ExposureMask, (XEvent*)&evt);[m + }[m + [m +[31m-void iupdrvDisplayRedraw(Ihandle *ih)[m +[32m+[m[32mvoid iupdrvRedrawNow(Ihandle *ih)[m + {[m + Widget w;[m + [m + /* POST a Redraw */[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + [m + /* if this element has an inner native parent (like IupTabs), [m + then redraw that native parent if different from the element. */[m +[36m@@ -223,7 +227,7 @@[m [mvoid iupdrvDisplayRedraw(Ihandle *ih)[m + {[m + Widget handle = ih->handle;[m + ih->handle = w;[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + ih->handle = handle;[m + }[m + [m +[36m@@ -276,10 +280,11 @@[m [mint iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value)[m + {[m + if (iupdrvIsVisible(ih))[m + {[m +[32m+[m[32m Widget widget = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");[m + if (iupStrEqualNoCase(value, "TOP"))[m +[31m- XRaiseWindow(iupmot_display, XtWindow(ih->handle));[m +[32m+[m[32m XRaiseWindow(iupmot_display, XtWindow(widget));[m + else[m +[31m- XLowerWindow(iupmot_display, XtWindow(ih->handle));[m +[32m+[m[32m XLowerWindow(iupmot_display, XtWindow(widget));[m + }[m + [m + return 0;[m +[36m@@ -455,9 +460,11 @@[m [mstatic Cursor motGetCursor(Ihandle* ih, const char* name)[m + { "RESIZE_N", XC_top_side},[m + { "RESIZE_S", XC_bottom_side},[m + { "RESIZE_NS", XC_sb_v_double_arrow},[m +[32m+[m[32m { "SPLITTER_HORIZ", XC_sb_v_double_arrow},[m + { "RESIZE_W", XC_left_side},[m + { "RESIZE_E", XC_right_side},[m + { "RESIZE_WE", XC_sb_h_double_arrow},[m +[32m+[m[32m { "SPLITTER_VERT", XC_sb_h_double_arrow},[m + { "RESIZE_NE", XC_top_right_corner},[m + { "RESIZE_SE", XC_bottom_right_corner},[m + { "RESIZE_NW", XC_top_left_corner},[m +[1mdiff --git a/iup/src/mot/iupmot_dialog.c b/iup/src/mot/iupmot_dialog.c[m +[1mindex 4eeb834..7a27d74 100755[m +[1m--- a/iup/src/mot/iupmot_dialog.c[m +[1m+++ b/iup/src/mot/iupmot_dialog.c[m +[36m@@ -134,12 +134,13 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + static int native_border = 0;[m + static int native_caption = 0;[m + [m +[31m- int has_caption = iupAttribGetBoolean(ih, "MAXBOX") ||[m +[31m- iupAttribGetBoolean(ih, "MINBOX") ||[m +[31m- iupAttribGetBoolean(ih, "MENUBOX") || [m +[31m- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */[m +[32m+[m[32m int has_titlebar = iupAttribGetBoolean(ih, "RESIZE") || /* GTK and Motif only */[m +[32m+[m[32m iupAttribGetBoolean(ih, "MAXBOX") ||[m +[32m+[m[32m iupAttribGetBoolean(ih, "MINBOX") ||[m +[32m+[m[32m iupAttribGetBoolean(ih, "MENUBOX") ||[m[41m [m +[32m+[m[32m IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */[m + [m +[31m- int has_border = has_caption ||[m +[32m+[m[32m int has_border = has_titlebar ||[m + iupAttribGetBoolean(ih, "RESIZE") ||[m + iupAttribGetBoolean(ih, "BORDER");[m + [m +[36m@@ -155,7 +156,7 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + *border = win_border;[m + [m + *caption = 0;[m +[31m- if (has_caption)[m +[32m+[m[32m if (has_titlebar)[m + *caption = win_caption;[m + [m + if (!native_border && *border)[m +[36m@@ -181,7 +182,7 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + }[m + [m + *caption = 0;[m +[31m- if (has_caption)[m +[32m+[m[32m if (has_titlebar)[m + {[m + if (native_caption)[m + *caption = native_caption;[m +[36m@@ -853,6 +854,7 @@[m [mstatic int motDialogMapMethod(Ihandle* ih)[m + InativeHandle* parent;[m + int mwm_decor = 0;[m + int num_args = 0;[m +[32m+[m[32m int has_titlebar = 0;[m + Arg args[20];[m + [m + if (iupAttribGetBoolean(ih, "DIALOGFRAME")) [m +[36m@@ -867,32 +869,46 @@[m [mstatic int motDialogMapMethod(Ihandle* ih)[m + /****************************/[m + [m + if (iupAttribGet(ih, "TITLE"))[m +[31m- mwm_decor |= MWM_DECOR_TITLE;[m +[32m+[m[32m has_titlebar = 1;[m + if (iupAttribGetBoolean(ih, "MENUBOX"))[m +[31m- mwm_decor |= MWM_DECOR_MENU;[m +[32m+[m[32m {[m +[32m+[m[32m mwm_decor |= MWM_DECOR_MENU;[m +[32m+[m[32m has_titlebar = 1;[m +[32m+[m[32m }[m + if (iupAttribGetBoolean(ih, "MINBOX"))[m +[31m- mwm_decor |= MWM_DECOR_MINIMIZE;[m +[32m+[m[32m {[m +[32m+[m[32m mwm_decor |= MWM_DECOR_MINIMIZE;[m +[32m+[m[32m has_titlebar = 1;[m +[32m+[m[32m }[m + if (iupAttribGetBoolean(ih, "MAXBOX"))[m +[31m- mwm_decor |= MWM_DECOR_MAXIMIZE;[m +[32m+[m[32m {[m +[32m+[m[32m mwm_decor |= MWM_DECOR_MAXIMIZE;[m +[32m+[m[32m has_titlebar = 1;[m +[32m+[m[32m }[m + if (iupAttribGetBoolean(ih, "RESIZE"))[m +[31m- mwm_decor |= MWM_DECOR_RESIZEH;[m +[31m- if (iupAttribGetBoolean(ih, "BORDER"))[m +[31m- mwm_decor |= MWM_DECOR_BORDER;[m +[31m-[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */[m +[31m- iupmotSetArg(args, num_args, XmNdeleteResponse, XmDO_NOTHING);[m +[31m- iupmotSetArg(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */[m +[31m- iupmotSetArg(args, num_args, XmNtitle, "");[m +[31m- iupmotSetArg(args, num_args, XmNvisual, iupmot_visual);[m +[32m+[m[32m {[m +[32m+[m[32m mwm_decor |= MWM_DECOR_RESIZEH;[m +[32m+[m[32m mwm_decor |= MWM_DECOR_BORDER; /* has_border */[m +[32m+[m[32m }[m +[32m+[m[32m if (has_titlebar)[m +[32m+[m[32m mwm_decor |= MWM_DECOR_TITLE;[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)[m[41m [m +[32m+[m[32m mwm_decor |= MWM_DECOR_BORDER; /* has_border */[m +[32m+[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* so XtRealizeWidget will not show the dialog */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNdeleteResponse, XmDO_NOTHING);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNallowShellResize, True); /* Used so the BulletinBoard can control the shell size */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtitle, "");[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNvisual, iupmot_visual);[m + [m + if (iupmotColorMap()) [m +[31m- iupmotSetArg(args, num_args, XmNcolormap, iupmotColorMap());[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcolormap, iupmotColorMap());[m + [m + if (mwm_decor != 0x7E) [m +[31m- iupmotSetArg(args, num_args, XmNmwmDecorations, mwm_decor);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmwmDecorations, mwm_decor);[m + [m + if (iupAttribGetBoolean(ih, "SAVEUNDER"))[m +[31m- iupmotSetArg(args, num_args, XmNsaveUnder, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsaveUnder, True);[m + [m + parent = iupDialogGetNativeParent(ih);[m + if (parent)[m +[1mdiff --git a/iup/src/mot/iupmot_drv.h b/iup/src/mot/iupmot_drv.h[m +[1mindex 8a536ef..424ae9f 100755[m +[1m--- a/iup/src/mot/iupmot_drv.h[m +[1m+++ b/iup/src/mot/iupmot_drv.h[m +[36m@@ -65,7 +65,7 @@[m [mvoid iupmotGetWindowSize(Ihandle *ih, int *width, int *height);[m + [m + char* iupmotGetXWindowAttrib(Ihandle *ih);[m + [m +[31m-#define iupmotSetArg(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++)[m +[32m+[m[32m#define iupMOT_SETARG(_a, _i, _n, _d) ((_a)[(_i)].name = (_n), (_a)[(_i)].value = (XtArgVal)(_d), (_i)++)[m + [m + [m + #ifdef __cplusplus[m +[1mdiff --git a/iup/src/mot/iupmot_filedlg.c b/iup/src/mot/iupmot_filedlg.c[m +[1mindex 768dd2b..0be6319 100755[m +[1m--- a/iup/src/mot/iupmot_filedlg.c[m +[1m+++ b/iup/src/mot/iupmot_filedlg.c[m +[36m@@ -17,6 +17,7 @@[m + #include <Xm/DrawingA.h>[m + #include <Xm/PushB.h>[m + #include <Xm/Frame.h>[m +[32m+[m[32m#include <Xm/List.h>[m + [m + #include "iup.h"[m + #include "iupcbs.h"[m +[36m@@ -28,6 +29,7 @@[m + #include "iup_dialog.h"[m + #include "iup_strmessage.h"[m + #include "iup_drvinfo.h"[m +[32m+[m[32m#include "iup_array.h"[m + [m + #include "iupmot_drv.h"[m + [m +[36m@@ -87,14 +89,14 @@[m [mstatic int motFileDlgCheckValue(Ihandle* ih, Widget w)[m + return 0;[m + }[m + }[m +[31m- else[m +[32m+[m[32m else if (!iupAttribGetBoolean(ih, "MULTIPLEFILES"))[m + {[m + if (iupdrvIsDirectory(value)) /* selected a directory */[m + {[m + iupStrMessageShowError(ih, "IUP_INVALIDDIR");[m + return 0;[m + }[m +[31m- else if (!iupdrvIsFile(value)) /* new file */[m +[32m+[m[32m else if (!iupdrvIsFile(value)) /* not a file == new file */[m + {[m + value = iupAttribGet(ih, "ALLOWNEW");[m + if (!value)[m +[36m@@ -132,6 +134,51 @@[m [mstatic void motFileDlgCBclose(Widget w, XtPointer client_data, XtPointer call_da[m + iupAttribSetStr(ih, "_IUP_WM_DELETE", "1");[m + }[m + [m +[32m+[m[32mstatic int motFileDlgGetMultipleFiles(Ihandle* ih, const char* dir, Widget wList)[m +[32m+[m[32m{[m +[32m+[m[32m int *pos, sel_count, dir_len;[m +[32m+[m[32m int i, len, cur_len;[m +[32m+[m[32m char *filename, *all_names;[m +[32m+[m[32m Iarray* names_array;[m +[32m+[m[32m XmString* items;[m +[32m+[m +[32m+[m[32m if (!XmListGetSelectedPos(wList, &pos, &sel_count))[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m names_array = iupArrayCreate(1024, 1); /* just set an initial size, but count is 0 */[m +[32m+[m[32m XtVaGetValues(wList, XmNitems, &items, NULL);[m +[32m+[m +[32m+[m[32m cur_len = strlen(dir);[m +[32m+[m +[32m+[m[32m all_names = iupArrayAdd(names_array, cur_len+1);[m +[32m+[m[32m memcpy(all_names, dir, cur_len);[m +[32m+[m[32m all_names[cur_len] = '|';[m +[32m+[m[32m dir_len = cur_len;[m +[32m+[m[32m cur_len++; /* skip separator */[m +[32m+[m +[32m+[m[32m for (i = 0; i<sel_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m filename = iupmotConvertString(items[pos[i]-1]); /* XmListGetSelectedPos starts at 1 */[m +[32m+[m[32m len = strlen(filename)-dir_len;[m +[32m+[m +[32m+[m[32m cur_len = iupArrayCount(names_array);[m +[32m+[m[32m all_names = iupArrayAdd(names_array, len+1);[m +[32m+[m[32m memcpy(all_names+cur_len, filename+dir_len, len);[m +[32m+[m[32m all_names[cur_len+len] = '|';[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m XtFree((char*)pos);[m +[32m+[m +[32m+[m[32m cur_len = iupArrayCount(names_array);[m +[32m+[m[32m all_names = iupArrayInc(names_array);[m +[32m+[m[32m all_names[cur_len+1] = 0;[m +[32m+[m +[32m+[m[32m iupAttribStoreStr(ih, "VALUE", all_names);[m +[32m+[m +[32m+[m[32m iupArrayDestroy(names_array);[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + static void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallbackStruct* call_data)[m + {[m + (void)w;[m +[36m@@ -151,14 +198,38 @@[m [mstatic void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback[m + iupAttribSetStr(ih, "STATUS", "0");[m + iupAttribSetStr(ih, "FILEEXIST", NULL);[m + }[m +[32m+[m[32m else if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))[m +[32m+[m[32m {[m +[32m+[m[32m Widget wList = XmFileSelectionBoxGetChild(w, XmDIALOG_LIST);[m +[32m+[m +[32m+[m[32m /* VALUE obtained above contains exactly the DIRECTORY */[m +[32m+[m[32m char* dir = iupAttribGet(ih, "VALUE");[m +[32m+[m[32m int len = strlen(dir);[m +[32m+[m[32m if (dir[len-1]=='/') dir[len-1] = 0; /* remove last '/' */[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", dir);[m +[32m+[m +[32m+[m[32m if (!motFileDlgGetMultipleFiles(ih, iupAttribGet(ih, "DIRECTORY"), wList))[m +[32m+[m[32m {[m +[32m+[m[32m iupStrMessageShowError(ih, "IUP_FILENOTEXIST");[m +[32m+[m[32m return;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "STATUS", "0");[m +[32m+[m[32m iupAttribSetStr(ih, "FILEEXIST", "YES");[m +[32m+[m[32m }[m + else[m + {[m + IFnss file_cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m +[31m- if (file_cb && file_cb(ih, iupAttribGet(ih, "VALUE"), "OK") == IUP_IGNORE)[m +[32m+[m[32m filename = iupAttribGet(ih, "VALUE");[m +[32m+[m[32m if (file_cb && file_cb(ih, filename, "OK") == IUP_IGNORE)[m + return;[m + [m +[31m- if (iupdrvIsFile(iupAttribGet(ih, "VALUE"))) /* check if file exists */[m +[32m+[m[32m if (iupdrvIsFile(filename)) /* check if file exists */[m + {[m +[32m+[m[32m char* dir = iupStrFileGetPath(filename);[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", dir);[m +[32m+[m[32m free(dir);[m +[32m+[m + iupAttribSetStr(ih, "FILEEXIST", "YES");[m + iupAttribSetStr(ih, "STATUS", "0");[m + }[m +[36m@@ -188,9 +259,8 @@[m [mstatic void motFileDlgCallback(Widget w, Ihandle* ih, XmFileSelectionBoxCallback[m + }[m + }[m + [m +[31m-static void motFileDlgHelpCallback(Widget w, XtPointer client_data, XtPointer call_data)[m +[32m+[m[32mstatic void motFileDlgHelpCallback(Widget w, Ihandle *ih, XtPointer call_data)[m + {[m +[31m- Ihandle *ih = (Ihandle*)client_data;[m + Icallback cb = IupGetCallback(ih, "HELP_CB");[m + if (cb && cb(ih) == IUP_CLOSE)[m + {[m +[36m@@ -340,14 +410,15 @@[m [mstatic void motFileDlgPreviewCanvasExposeCallback(Widget w, Ihandle *ih, XtPoint[m + static void motFileDlgBrowseSelectionCallback(Widget w, Ihandle* ih, XmListCallbackStruct* list_data)[m + {[m + char* filename;[m +[32m+[m[32m IFnss cb;[m + [m + XmStringGetLtoR(list_data->item, XmSTRING_DEFAULT_CHARSET, &filename);[m + [m +[32m+[m[32m cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m + if (iupdrvIsFile(filename))[m +[31m- {[m +[31m- IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m + cb(ih, filename, "SELECT");[m +[31m- }[m +[32m+[m[32m else[m +[32m+[m[32m cb(ih, filename, "OTHER");[m + [m + XtFree(filename);[m + (void)w;[m +[36m@@ -417,6 +488,13 @@[m [mstatic int motFileDlgPopup(Ihandle* ih, int x, int y)[m + if (dialogtype == IUP_DIALOGDIR)[m + XtVaSetValues(filebox, XmNfileTypeMask, XmFILE_DIRECTORY, NULL);[m + [m +[32m+[m[32m if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))[m +[32m+[m[32m {[m +[32m+[m[32m Widget wList = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);[m +[32m+[m[32m XtVaSetValues(wList, XmNselectionPolicy, XmEXTENDED_SELECT, NULL);[m +[32m+[m[32m XtAddCallback(wList, XmNextendedSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);[m +[32m+[m[32m }[m +[32m+[m + /* just check for the path inside FILE */[m + value = iupAttribGet(ih, "FILE");[m + if (value && value[0] == '/')[m +[36m@@ -501,8 +579,10 @@[m [mstatic int motFileDlgPopup(Ihandle* ih, int x, int y)[m + file_cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m + if (file_cb)[m + {[m +[31m- Widget file_list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);[m +[31m- XtAddCallback(file_list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);[m +[32m+[m[32m Widget list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_LIST);[m +[32m+[m[32m XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);[m +[32m+[m[32m list = XmFileSelectionBoxGetChild(filebox, XmDIALOG_DIR_LIST);[m +[32m+[m[32m XtAddCallback(list, XmNbrowseSelectionCallback, (XtCallbackProc)motFileDlgBrowseSelectionCallback, (XtPointer)ih);[m + [m + if (iupAttribGetBoolean(ih, "SHOWPREVIEW"))[m + {[m +[36m@@ -575,4 +655,6 @@[m [mstatic int motFileDlgPopup(Ihandle* ih, int x, int y)[m + void iupdrvFileDlgInitClass(Iclass* ic)[m + {[m + ic->DlgPopup = motFileDlgPopup;[m +[32m+[m +[32m+[m[32m iupClassRegisterAttribute(ic, "MULTIPLEFILES", NULL, NULL, NULL, NULL, IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/mot/iupmot_font.c b/iup/src/mot/iupmot_font.c[m +[1mindex 8da06dd..42154b6 100755[m +[1m--- a/iup/src/mot/iupmot_font.c[m +[1m+++ b/iup/src/mot/iupmot_font.c[m +[36m@@ -135,19 +135,19 @@[m [mstatic XmFontList motFontCreateRenderTable(XFontStruct* fontstruct, int is_under[m + Arg args[10];[m + int num_args = 0;[m + [m +[31m- iupmotSetArg(args, num_args, XmNfontType, XmFONT_IS_FONT);[m +[31m- iupmotSetArg(args, num_args, XmNfont, (XtPointer)fontstruct);[m +[31m- iupmotSetArg(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNfontType, XmFONT_IS_FONT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNfont, (XtPointer)fontstruct);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNloadModel, XmLOAD_IMMEDIATE);[m + [m + if (is_underline)[m +[31m- iupmotSetArg(args, num_args, XmNunderlineType, XmSINGLE_LINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNunderlineType, XmSINGLE_LINE);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNunderlineType, XmNO_LINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNunderlineType, XmNO_LINE);[m + [m + if (is_strikeout)[m +[31m- iupmotSetArg(args, num_args, XmNstrikethruType, XmSINGLE_LINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNstrikethruType, XmSINGLE_LINE);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNstrikethruType, XmNO_LINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNstrikethruType, XmNO_LINE);[m + [m + rendition = XmRenditionCreate(NULL, "", args, num_args);[m + [m +[1mdiff --git a/iup/src/mot/iupmot_frame.c b/iup/src/mot/iupmot_frame.c[m +[1mindex 39de5d8..cfda44f 100755[m +[1m--- a/iup/src/mot/iupmot_frame.c[m +[1m+++ b/iup/src/mot/iupmot_frame.c[m +[36m@@ -42,22 +42,33 @@[m [mstatic int motFrameSetBgColorAttrib(Ihandle* ih, const char* value)[m + {[m + Pixel color;[m + [m +[31m- /* ignore given value, must use only from parent */[m +[31m- value = iupBaseNativeParentGetBgColor(ih);[m +[32m+[m[32m if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m {[m +[32m+[m[32m /* ignore given value, must use only from parent */[m +[32m+[m[32m value = iupBaseNativeParentGetBgColor(ih);[m +[32m+[m[32m }[m + [m + color = iupmotColorGetPixelStr(value);[m + if (color != (Pixel)-1)[m + {[m + Widget title_label, child_manager;[m + [m +[31m- iupmotSetBgColor(ih->handle, color);[m +[32m+[m[32m if (!iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m {[m +[32m+[m[32m iupmotSetBgColor(ih->handle, color);[m + [m +[31m- child_manager = XtNameToWidget(ih->handle, "*child_manager");[m +[31m- iupmotSetBgColor(child_manager, color);[m +[32m+[m[32m child_manager = XtNameToWidget(ih->handle, "*child_manager");[m +[32m+[m[32m iupmotSetBgColor(child_manager, color);[m + [m +[31m- title_label = XtNameToWidget(ih->handle, "*title_label");[m +[31m- if (!title_label) return 1;[m +[31m- iupmotSetBgColor(title_label, color);[m +[32m+[m[32m title_label = XtNameToWidget(ih->handle, "*title_label");[m +[32m+[m[32m if (!title_label) return 1;[m +[32m+[m[32m iupmotSetBgColor(title_label, color);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m child_manager = XtNameToWidget(ih->handle, "*child_manager");[m +[32m+[m[32m iupmotSetBgColor(child_manager, color);[m +[32m+[m[32m }[m + [m + return 1;[m + }[m +[36m@@ -171,22 +182,25 @@[m [mstatic int motFrameMapMethod(Ihandle* ih)[m + {[m + char* value = iupAttribGetStr(ih, "SUNKEN");[m + if (iupStrBoolean(value))[m +[31m- iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_IN); [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_IN);[m[41m [m + else[m +[31m- iupmotSetArg(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN); [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowType, XmSHADOW_ETCHED_IN);[m[41m [m +[32m+[m +[32m+[m[32m if (iupAttribGet(ih, "BGCOLOR"))[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");[m + }[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Manager */[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);[m + /* Frame */[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* no shadow margins */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0); /* no shadow margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* no shadow margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0); /* no shadow margins */[m + [m + ih->handle = XtCreateManagedWidget([m + iupDialogGetChildIdStr(ih), /* child identifier */[m +[36m@@ -204,11 +218,11 @@[m [mstatic int motFrameMapMethod(Ihandle* ih)[m + Widget title_label;[m + num_args = 0;[m + /* Label */[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); [m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);[m[41m [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m + /* Frame Constraint */[m +[31m- iupmotSetArg(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNchildType, XmFRAME_TITLE_CHILD);[m + title_label = XtCreateManagedWidget("title_label", xmLabelWidgetClass, ih->handle, args, num_args);[m + iupmotSetString(title_label, XmNlabelString, title);[m + }[m +[1mdiff --git a/iup/src/mot/iupmot_key.c b/iup/src/mot/iupmot_key.c[m +[1mindex 835b5d7..9897741 100755[m +[1m--- a/iup/src/mot/iupmot_key.c[m +[1m+++ b/iup/src/mot/iupmot_key.c[m +[36m@@ -393,33 +393,33 @@[m [mvoid iupmotKeyPressEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont)[m + void iupmotButtonKeySetStatus(unsigned int state, unsigned int but, char* status, int doubleclick)[m + {[m + if (state & ShiftMask)[m +[31m- iupKEYSETSHIFT(status);[m +[32m+[m[32m iupKEY_SETSHIFT(status);[m + [m + if (state & ControlMask)[m +[31m- iupKEYSETCONTROL(status); [m +[32m+[m[32m iupKEY_SETCONTROL(status);[m[41m [m + [m + if ((state & Button1Mask) || but==Button1)[m +[31m- iupKEYSETBUTTON1(status);[m +[32m+[m[32m iupKEY_SETBUTTON1(status);[m + [m + if ((state & Button2Mask) || but==Button2)[m +[31m- iupKEYSETBUTTON2(status);[m +[32m+[m[32m iupKEY_SETBUTTON2(status);[m + [m + if ((state & Button3Mask) || but==Button3)[m +[31m- iupKEYSETBUTTON3(status);[m +[32m+[m[32m iupKEY_SETBUTTON3(status);[m + [m + if ((state & Button4Mask) || but==Button4)[m +[31m- iupKEYSETBUTTON4(status);[m +[32m+[m[32m iupKEY_SETBUTTON4(status);[m + [m + if ((state & Button5Mask) || but==Button5)[m +[31m- iupKEYSETBUTTON5(status);[m +[32m+[m[32m iupKEY_SETBUTTON5(status);[m + [m + if (state & Mod1Mask || state & Mod5Mask) /* Alt */[m +[31m- iupKEYSETALT(status);[m +[32m+[m[32m iupKEY_SETALT(status);[m + [m + if (state & Mod4Mask) /* Apple/Win */[m +[31m- iupKEYSETSYS(status);[m +[32m+[m[32m iupKEY_SETSYS(status);[m + [m + if (doubleclick)[m +[31m- iupKEYSETDOUBLE(status);[m +[32m+[m[32m iupKEY_SETDOUBLE(status);[m + }[m + [m +[1mdiff --git a/iup/src/mot/iupmot_label.c b/iup/src/mot/iupmot_label.c[m +[1mindex 52dfc9a..afff3c3 100755[m +[1m--- a/iup/src/mot/iupmot_label.c[m +[1m+++ b/iup/src/mot/iupmot_label.c[m +[36m@@ -147,8 +147,10 @@[m [mstatic int motLabelSetPaddingAttrib(Ihandle* ih, const char* value)[m + {[m + XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,[m + XmNmarginWidth, ih->data->horiz_padding, NULL);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int motLabelMapMethod(Ihandle* ih)[m +[36m@@ -165,12 +167,12 @@[m [mstatic int motLabelMapMethod(Ihandle* ih)[m + if (iupStrEqualNoCase(value, "HORIZONTAL"))[m + {[m + ih->data->type = IUP_LABEL_SEP_HORIZ;[m +[31m- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);[m + }[m + else /* "VERTICAL" */[m + {[m + ih->data->type = IUP_LABEL_SEP_VERT;[m +[31m- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);[m + }[m + }[m + else[m +[36m@@ -180,32 +182,32 @@[m [mstatic int motLabelMapMethod(Ihandle* ih)[m + if (value)[m + {[m + ih->data->type = IUP_LABEL_IMAGE;[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);[m[41m [m + }[m + else[m + {[m + ih->data->type = IUP_LABEL_TEXT;[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);[m[41m [m + }[m + }[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Primitive */[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);[m + /* Label */[m +[31m- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */[m +[31m- iupmotSetArg(args, num_args, XmNmarginLeft, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginBottom, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginRight, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginRight, 0);[m + [m + ih->handle = XtCreateManagedWidget([m + iupDialogGetChildIdStr(ih), /* child identifier */[m +[1mdiff --git a/iup/src/mot/iupmot_list.c b/iup/src/mot/iupmot_list.c[m +[1mindex f8e73ed..800e6e9 100755[m +[1m--- a/iup/src/mot/iupmot_list.c[m +[1m+++ b/iup/src/mot/iupmot_list.c[m +[36m@@ -143,15 +143,36 @@[m [mvoid iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)[m + motListAddSortedItem(ih, value);[m + else[m + motListAddItem(ih, pos, value);[m +[32m+[m +[32m+[m[32m iupListUpdateOldValue(ih, pos, 0);[m + }[m + [m + void iupdrvListRemoveItem(Ihandle* ih, int pos)[m + {[m + /* The utility functions use 0=last 1=first */[m + if (ih->data->is_dropdown || ih->data->has_editbox)[m +[32m+[m[32m {[m +[32m+[m[32m if (ih->data->is_dropdown && !ih->data->has_editbox)[m +[32m+[m[32m {[m +[32m+[m[32m /* must check if removing the current item */[m +[32m+[m[32m int curpos;[m +[32m+[m[32m XtVaGetValues(ih->handle, XmNselectedPosition, &curpos, NULL);[m +[32m+[m[32m if (pos == curpos && iupdrvListGetCount(ih)>1)[m +[32m+[m[32m {[m +[32m+[m[32m if (curpos > 0) curpos--;[m +[32m+[m[32m else curpos++;[m +[32m+[m +[32m+[m[32m XtRemoveCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);[m +[32m+[m[32m XtVaSetValues(ih->handle, XmNselectedPosition, curpos, NULL);[m[41m [m +[32m+[m[32m XtAddCallback(ih->handle, XmNselectionCallback, (XtCallbackProc)motListComboBoxSelectionCallback, (XtPointer)ih);[m +[32m+[m[32m }[m +[32m+[m[32m }[m + XmComboBoxDeletePos(ih->handle, pos+1);[m +[32m+[m[32m }[m + else[m + XmListDeletePos(ih->handle, pos+1);[m +[32m+[m +[32m+[m[32m iupListUpdateOldValue(ih, pos, 1);[m + }[m + [m + void iupdrvListRemoveAllItems(Ihandle* ih)[m +[36m@@ -174,7 +195,7 @@[m [mvoid iupdrvListRemoveAllItems(Ihandle* ih)[m + static char* motListGetIdValueAttrib(Ihandle* ih, const char* name_id)[m + {[m + int pos = iupListGetPos(ih, name_id);[m +[31m- if (pos != -1)[m +[32m+[m[32m if (pos >= 0)[m + {[m + XmString* items;[m + XtVaGetValues(ih->handle, XmNitems, &items, NULL);[m +[36m@@ -852,8 +873,10 @@[m [mstatic int motListSetNCAttrib(Ihandle* ih, const char* value)[m + Widget cbedit;[m + XtVaGetValues(ih->handle, XmNtextField, &cbedit, NULL);[m + XtVaSetValues(cbedit, XmNmaxLength, ih->data->nc, NULL);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int motListSetClipboardAttrib(Ihandle *ih, const char *value)[m +[36m@@ -1181,32 +1204,32 @@[m [mstatic int motListMapMethod(Ihandle* ih)[m + if (ih->data->is_dropdown || ih->data->has_editbox)[m + {[m + /* could not set XmNmappedWhenManaged to False because the list and the edit box where not displayed */[m +[31m- /* iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m /* iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m + [m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + [m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);[m + [m + if (ih->data->has_editbox)[m + {[m + if (ih->data->is_dropdown)[m +[31m- iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); /* hidden-list+edit */[m + else[m +[31m- iupmotSetArg(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmCOMBO_BOX); /* visible-list+edit */[m + }[m + else[m +[31m- iupmotSetArg(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcomboBoxType, XmDROP_DOWN_LIST); /* hidden-list */[m + [m + ih->handle = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -1220,13 +1243,13 @@[m [mstatic int motListMapMethod(Ihandle* ih)[m + [m + /* Create the scrolled window */[m + [m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);[m +[31m- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);[m +[31m- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */[m +[31m- iupmotSetArg(args, num_args, XmNborderWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m + [m + sb_win = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -1243,34 +1266,34 @@[m [mstatic int motListMapMethod(Ihandle* ih)[m + /* Create the list */[m + [m + num_args = 0;[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + [m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + [m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);[m + [m +[31m- iupmotSetArg(args, num_args, XmNlistMarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNlistMarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNlistSpacing, 0);[m +[31m- iupmotSetArg(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlistMarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlistMarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlistSpacing, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlistSizePolicy, XmCONSTANT); /* don't grow to fit, add scrollbar */[m + [m + if (ih->data->is_multiple)[m +[31m- iupmotSetArg(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmEXTENDED_SELECT);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmBROWSE_SELECT);[m + [m + if (iupAttribGetBoolean(ih, "AUTOHIDE"))[m +[31m- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC);[m + [m + ih->handle = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[1mdiff --git a/iup/src/mot/iupmot_loop.c b/iup/src/mot/iupmot_loop.c[m +[1mindex 828ddcd..c1f92ec 100755[m +[1m--- a/iup/src/mot/iupmot_loop.c[m +[1m+++ b/iup/src/mot/iupmot_loop.c[m +[36m@@ -56,7 +56,7 @@[m [mvoid iupdrvSetIdleFunction(Icallback f)[m + mot_idle_id = XtAppAddWorkProc(iupmot_appcontext, motIdlecbWorkProc, NULL);[m + }[m + [m +[31m-static int motLoopStep(void)[m +[32m+[m[32mstatic int motLoopProcessEvent(void)[m + {[m + XtAppProcessEvent(iupmot_appcontext, XtIMAll);[m + return (mot_exitmainloop)? IUP_CLOSE : IUP_DEFAULT;[m +[36m@@ -79,7 +79,7 @@[m [mint IupMainLoop(void)[m + [m + while (!mot_exitmainloop)[m + {[m +[31m- if (motLoopStep() == IUP_CLOSE)[m +[32m+[m[32m if (motLoopProcessEvent() == IUP_CLOSE)[m + break;[m + }[m + [m +[36m@@ -88,19 +88,26 @@[m [mint IupMainLoop(void)[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mint IupLoopStepWait(void)[m +[32m+[m[32m{[m +[32m+[m[32m while(!XtAppPending(iupmot_appcontext));[m +[32m+[m +[32m+[m[32m return motLoopProcessEvent();[m +[32m+[m[32m}[m +[32m+[m + int IupLoopStep(void)[m + {[m + if (!XtAppPending(iupmot_appcontext)) [m + return IUP_DEFAULT;[m + [m +[31m- return motLoopStep();[m +[32m+[m[32m return motLoopProcessEvent();[m + }[m + [m + void IupFlush(void)[m + {[m + while (XPending(iupmot_display) != 0)[m + {[m +[31m- if (motLoopStep() == IUP_CLOSE)[m +[32m+[m[32m if (motLoopProcessEvent() == IUP_CLOSE)[m + break;[m + }[m + [m +[1mdiff --git a/iup/src/mot/iupmot_menu.c b/iup/src/mot/iupmot_menu.c[m +[1mindex be9b953..8f51334 100755[m +[1m--- a/iup/src/mot/iupmot_menu.c[m +[1m+++ b/iup/src/mot/iupmot_menu.c[m +[36m@@ -125,7 +125,10 @@[m [mstatic void motPopupMenuUnmapCallback(Widget w, Ihandle* ih, XtPointer call_data[m + static void motMenuUnMapMethod(Ihandle* ih)[m + {[m + if (iupMenuIsMenuBar(ih))[m +[32m+[m[32m {[m + XtDestroyWidget(ih->handle);[m +[32m+[m[32m ih->parent = NULL;[m +[32m+[m[32m }[m + else[m + XtDestroyWidget(XtParent(ih->handle)); /* in this case the RowColumn widget is a child of a MenuShell. */[m + }[m +[36m@@ -146,7 +149,6 @@[m [mstatic int motMenuMapMethod(Ihandle* ih)[m + XmNrowColumnType, XmMENU_BAR,[m + XmNmarginHeight, 0,[m + XmNmarginWidth, 0,[m +[31m- XmNresizeWidth, False,[m + NULL);[m + if (!ih->handle)[m + return IUP_ERROR;[m +[36m@@ -161,8 +163,8 @@[m [mstatic int motMenuMapMethod(Ihandle* ih)[m + [m + if (iupAttribGetBoolean(ih, "RADIO"))[m + {[m +[31m- iupmotSetArg(args, num_args, XmNpacking, XmPACK_COLUMN);[m +[31m- iupmotSetArg(args, num_args, XmNradioBehavior, TRUE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpacking, XmPACK_COLUMN);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNradioBehavior, TRUE);[m + }[m + [m + ih->handle = XmCreatePulldownMenu([m +[36m@@ -183,7 +185,7 @@[m [mstatic int motMenuMapMethod(Ihandle* ih)[m + {[m + /* top level menu used for IupPopup */[m + [m +[31m- iupmotSetArg(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpopupEnabled, XmPOPUP_AUTOMATIC);[m + [m + ih->handle = XmCreatePopupMenu([m + iupmot_appshell, [m +[36m@@ -307,19 +309,19 @@[m [mstatic int motItemMapMethod(Ihandle* ih)[m + [m + if (iupAttribGetBoolean(ih->parent, "RADIO"))[m + {[m +[31m- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);[m +[31m- iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);[m +[31m- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);[m +[31m- iupmotSetArg(args, num_args, XmNindicatorSize, 13);[m +[31m- iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorSize, 13);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));[m + }[m + else[m + {[m + if (iupAttribGetBoolean(ih, "HIDEMARK"))[m +[31m- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK);[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, iupAttribGet(ih, "TITLEIMAGE")? XmPIXMAP: XmSTRING);[m + }[m + [m + ih->handle = XtCreateManagedWidget([m +[1mdiff --git a/iup/src/mot/iupmot_progressbar.c b/iup/src/mot/iupmot_progressbar.c[m +[1mindex 7266d38..82fa178 100755[m +[1m--- a/iup/src/mot/iupmot_progressbar.c[m +[1m+++ b/iup/src/mot/iupmot_progressbar.c[m +[36m@@ -98,25 +98,25 @@[m [mstatic int motProgressBarMapMethod(Ihandle* ih)[m + Arg args[30];[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Primitive */[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);[m + /* Scale */[m +[31m- iupmotSetArg(args, num_args, XmNminimum, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX);[m +[31m- iupmotSetArg(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */[m +[31m- iupmotSetArg(args, num_args, XmNsliderMark, XmNONE);[m +[31m- iupmotSetArg(args, num_args, XmNeditable, False);[m +[31m- iupmotSetArg(args, num_args, XmNshowValue, XmNONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNminimum, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNslidingMode, XmTHERMOMETER); /* thermometer effect */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsliderMark, XmNONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNeditable, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE);[m + [m + if (iupStrEqualNoCase(iupAttribGetStr(ih, "ORIENTATION"), "VERTICAL"))[m + {[m +[31m- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);[m + [m + if (ih->currentheight < ih->currentwidth)[m + {[m +[36m@@ -126,7 +126,7 @@[m [mstatic int motProgressBarMapMethod(Ihandle* ih)[m + }[m + }[m + else[m +[31m- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);[m + [m + ih->handle = XtCreateManagedWidget([m + iupDialogGetChildIdStr(ih), /* child identifier */[m +[1mdiff --git a/iup/src/mot/iupmot_tabs.c b/iup/src/mot/iupmot_tabs.c[m +[1mindex 7c8a6b5..cafc41d 100755[m +[1m--- a/iup/src/mot/iupmot_tabs.c[m +[1m+++ b/iup/src/mot/iupmot_tabs.c[m +[36m@@ -52,8 +52,10 @@[m [mvoid iupdrvTabsSetCurrentTab(Ihandle* ih, int pos)[m + {[m + Ihandle* child = IupGetChild(ih, pos);[m + Ihandle* prev_child = IupGetChild(ih, iupdrvTabsGetCurrentTab(ih));[m +[31m- IupSetAttribute(child, "VISIBLE", "YES");[m +[31m- IupSetAttribute(prev_child, "VISIBLE", "NO");[m +[32m+[m[32m Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m XtMapWidget(child_manager);[m +[32m+[m[32m if (prev_child_manager) XtUnmapWidget(prev_child_manager);[m + [m + XtVaSetValues(ih->handle, XmNcurrentPageNumber, pos, NULL);[m + }[m +[36m@@ -200,7 +202,7 @@[m [mstatic int motTabsSetTabTypeAttrib(Ihandle* ih, const char* value)[m + ih->data->type = ITABS_TOP;[m + [m + if (ih->handle)[m +[31m- motTabsUpdateTabType(ih);[m +[32m+[m[32m motTabsUpdateTabType(ih); /* for this to work must be updated in map */[m + [m + return 0;[m + }[m +[36m@@ -313,8 +315,10 @@[m [mvoid motTabsPageChangedCallback(Widget w, Ihandle* ih, XmNotebookCallbackStruct[m + IFnnn cb;[m + Ihandle* child = IupGetChild(ih, nptr->page_number);[m + Ihandle* prev_child = IupGetChild(ih, nptr->prev_page_number);[m +[31m- IupSetAttribute(child, "VISIBLE", "YES");[m +[31m- IupSetAttribute(prev_child, "VISIBLE", "NO");[m +[32m+[m[32m Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m Widget prev_child_manager = (Widget)iupAttribGet(prev_child, "_IUPTAB_CONTAINER");[m +[32m+[m[32m XtMapWidget(child_manager);[m +[32m+[m[32m if (prev_child_manager) XtUnmapWidget(prev_child_manager);[m + [m + cb = (IFnnn)IupGetCallback(ih, "TABCHANGE_CB");[m + if (cb)[m +[36m@@ -397,12 +401,12 @@[m [mstatic void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + [m + /* Create tabs */[m + /* Label */[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP);[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, tabtitle? XmSTRING: XmPIXMAP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m + /* Notebook Constraint */[m +[31m- iupmotSetArg(args, num_args, XmNnotebookChildType, XmMAJOR_TAB);[m +[31m- iupmotSetArg(args, num_args, XmNpageNumber, pos);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnotebookChildType, XmMAJOR_TAB);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpageNumber, pos);[m + tab_button = XtCreateManagedWidget("tab_button", xmPushButtonWidgetClass, ih->handle, args, num_args);[m + [m + /* Disable Drag Source */[m +[36m@@ -450,10 +454,8 @@[m [mstatic void motTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + iupAttribSetStr(child, "_IUPMOT_TABBUTTON", (char*)tab_button);[m + iupAttribSetInt(child, "_IUPMOT_TABNUMBER", pos);[m + [m +[31m- if (pos == iupdrvTabsGetCurrentTab(ih))[m +[31m- IupSetAttribute(child, "VISIBLE", "YES");[m +[31m- else[m +[31m- IupSetAttribute(child, "VISIBLE", "NO");[m +[32m+[m[32m if (pos != iupdrvTabsGetCurrentTab(ih))[m +[32m+[m[32m XtUnmapWidget(child_manager);[m + }[m + }[m + [m +[36m@@ -464,20 +466,11 @@[m [mstatic void motTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)[m + Widget child_manager = (Widget)iupAttribGet(child, "_IUPTAB_CONTAINER");[m + if (child_manager)[m + {[m +[31m- int cur_pos, pos;[m +[32m+[m[32m int pos;[m + Widget tab_button = (Widget)iupAttribGet(child, "_IUPMOT_TABBUTTON");[m + [m +[31m- cur_pos = iupdrvTabsGetCurrentTab(ih);[m + pos = iupAttribGetInt(child, "_IUPMOT_TABNUMBER"); /* did not work when using XtVaGetValues(child_manager, XmNpageNumber) */[m +[31m- if (cur_pos == pos)[m +[31m- {[m +[31m- if (cur_pos == 0)[m +[31m- cur_pos = 1;[m +[31m- else[m +[31m- cur_pos--;[m +[31m-[m +[31m- iupdrvTabsSetCurrentTab(ih, cur_pos);[m +[31m- }[m +[32m+[m[32m iupTabsTestRemoveTab(ih, pos);[m + [m + XtDestroyWidget(tab_button);[m + XtDestroyWidget(child_manager);[m +[36m@@ -501,22 +494,22 @@[m [mstatic int motTabsMapMethod(Ihandle* ih)[m + return IUP_ERROR;[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Manager */[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 0);[m + /* Notebook */[m +[31m- iupmotSetArg(args, num_args, XmNbindingType, XmNONE);[m +[31m- iupmotSetArg(args, num_args, XmNbindingWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */[m +[31m- iupmotSetArg(args, num_args, XmNbackPageSize, 0);[m +[31m- iupmotSetArg(args, num_args, XmNbackPageNumber, 1);[m +[31m- iupmotSetArg(args, num_args, XmNframeShadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNbindingType, XmNONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNbindingWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNfirstPageNumber, 0); /* IupTabs index always starts with zero */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNbackPageSize, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNbackPageNumber, 1);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNframeShadowThickness, 2);[m + [m + ih->handle = XtCreateManagedWidget([m + iupDialogGetChildIdStr(ih), /* child identifier */[m +[36m@@ -589,5 +582,5 @@[m [mvoid iupdrvTabsInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "TABORIENTATION", iupTabsGetTabOrientationAttrib, NULL, IUPAF_SAMEASSYSTEM, "HORIZONTAL", IUPAF_READONLY|IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT); /* can not be set, always HORIZONTAL in Motif */[m + iupClassRegisterAttributeId(ic, "TABTITLE", NULL, motTabsSetTabTitleAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, motTabsSetTabImageAttrib, IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, motTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/mot/iupmot_text.c b/iup/src/mot/iupmot_text.c[m +[1mindex 4a8f936..d9d2c74 100755[m +[1m--- a/iup/src/mot/iupmot_text.c[m +[1m+++ b/iup/src/mot/iupmot_text.c[m +[36m@@ -142,8 +142,10 @@[m [mstatic int motTextSetPaddingAttrib(Ihandle* ih, const char* value)[m + {[m + XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,[m + XmNmarginWidth, ih->data->horiz_padding, NULL);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int motTextSetReadOnlyAttrib(Ihandle* ih, const char* value)[m +[36m@@ -164,7 +166,7 @@[m [mstatic char* motTextGetReadOnlyAttrib(Ihandle* ih)[m + [m + static int motTextSetInsertAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (!value)[m + return 0;[m +[36m@@ -207,12 +209,12 @@[m [mstatic char* motTextGetSelectedTextAttrib(Ihandle* ih)[m + static int motTextSetAppendAttrib(Ihandle* ih, const char* value)[m + {[m + XmTextPosition pos;[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + pos = XmTextGetLastPosition(ih->handle);[m + /* disable callbacks */[m + iupAttribSetStr(ih, "_IUPMOT_DISABLE_TEXT_CB", "1");[m +[31m- if (ih->data->is_multiline && ih->data->append_newline)[m +[32m+[m[32m if (ih->data->is_multiline && ih->data->append_newline && pos!=0)[m + XmTextInsert(ih->handle, pos, "\n");[m + if (value)[m + XmTextInsert(ih->handle, pos+1, (char*)value);[m +[36m@@ -482,8 +484,12 @@[m [mstatic int motTextSetNCAttrib(Ihandle* ih, const char* value)[m + if (!iupStrToInt(value, &ih->data->nc))[m + ih->data->nc = INT_MAX;[m + if (ih->handle)[m +[32m+[m[32m {[m + XtVaSetValues(ih->handle, XmNmaxLength, ih->data->nc, NULL);[m +[31m- return 0;[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int motTextSetClipboardAttrib(Ihandle *ih, const char *value)[m +[36m@@ -911,6 +917,10 @@[m [mstatic void motTextLayoutUpdateMethod(Ihandle* ih)[m + Widget spinbox = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");[m + if (spinbox && XmIsSpinBox(spinbox))[m + {[m +[32m+[m[32m /* avoid abort in X */[m +[32m+[m[32m if (ih->currentwidth == 0) ih->currentwidth = 1;[m +[32m+[m[32m if (ih->currentheight == 0) ih->currentheight = 1;[m +[32m+[m + XtVaSetValues(ih->handle,[m + XmNwidth, (XtArgVal)ih->currentwidth-ih->currentheight/2,[m + XmNheight, (XtArgVal)ih->currentheight,[m +[36m@@ -952,13 +962,13 @@[m [mstatic int motTextMapMethod(Ihandle* ih)[m + /* Create the scrolled window */[m + /******************************/[m + [m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);[m +[31m- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE);[m +[31m- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */[m +[31m- iupmotSetArg(args, num_args, XmNborderWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAPPLICATION_DEFINED);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmSTATIC); /* can NOT be XmAS_NEEDED because XmAPPLICATION_DEFINED */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m + [m + sb_win = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -973,9 +983,9 @@[m [mstatic int motTextMapMethod(Ihandle* ih)[m + child_id = "text";[m + [m + num_args = 0;[m +[31m- iupmotSetArg(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNeditMode, XmMULTI_LINE_EDIT);[m + if (wordwrap)[m +[31m- iupmotSetArg(args, num_args, XmNwordWrap, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwordWrap, True);[m + }[m + else[m + {[m +[36m@@ -986,18 +996,18 @@[m [mstatic int motTextMapMethod(Ihandle* ih)[m + Widget spinbox;[m + [m + num_args = 0;[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between spin and text */[m +[31m- iupmotSetArg(args, num_args, XmNborderWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNarrowSize, 8);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between spin and text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNarrowSize, 8);[m + [m + if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT"))[m +[31m- iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_BEGINNING);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNarrowLayout, XmARROWS_END);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNarrowLayout, XmARROWS_END);[m + [m + spinbox = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -1019,61 +1029,61 @@[m [mstatic int motTextMapMethod(Ihandle* ih)[m + }[m + [m + num_args = 0;[m +[31m- iupmotSetArg(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNeditMode, XmSINGLE_LINE_EDIT);[m + [m + if (spin)[m + {[m + /* Spin Constraints */[m +[31m- iupmotSetArg(args, num_args, XmNspinBoxChildType, XmNUMERIC);[m +[31m- iupmotSetArg(args, num_args, XmNminimumValue, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmaximumValue, 100);[m +[31m- iupmotSetArg(args, num_args, XmNposition, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspinBoxChildType, XmNUMERIC);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNminimumValue, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmaximumValue, 100);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNposition, 0);[m + [m + if (iupAttribGetBoolean(ih, "SPINWRAP"))[m +[31m- iupmotSetArg(args, num_args, XmNwrap, TRUE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwrap, TRUE);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNwrap, FALSE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwrap, FALSE);[m + }[m + else[m + {[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m + }[m + }[m + [m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + [m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m + [m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + [m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNverifyBell, False);[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNverifyBell, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 0);[m + [m + if (iupAttribGetBoolean(ih, "BORDER"))[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m + [m + if (ih->data->is_multiline)[m + {[m + if (ih->data->sb & IUP_SB_HORIZ)[m +[31m- iupmotSetArg(args, num_args, XmNscrollHorizontal, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollHorizontal, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNscrollHorizontal, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollHorizontal, False);[m + [m + if (ih->data->sb & IUP_SB_VERT)[m +[31m- iupmotSetArg(args, num_args, XmNscrollVertical, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollVertical, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNscrollVertical, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollVertical, False);[m + }[m + [m + ih->handle = XtCreateManagedWidget([m +[1mdiff --git a/iup/src/mot/iupmot_toggle.c b/iup/src/mot/iupmot_toggle.c[m +[1mindex b18f24d..1fda258 100755[m +[1m--- a/iup/src/mot/iupmot_toggle.c[m +[1m+++ b/iup/src/mot/iupmot_toggle.c[m +[36m@@ -236,8 +236,10 @@[m [mstatic int motToggleSetPaddingAttrib(Ihandle* ih, const char* value)[m + {[m + XtVaSetValues(ih->handle, XmNmarginHeight, ih->data->vert_padding,[m + XmNmarginWidth, ih->data->horiz_padding, NULL);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static char* motToggleGetSelectColorAttrib(Ihandle* ih)[m +[36m@@ -336,40 +338,40 @@[m [mstatic int motToggleMapMethod(Ihandle* ih)[m + if (value)[m + {[m + ih->data->type = IUP_TOGGLE_IMAGE;[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmPIXMAP); [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmPIXMAP);[m[41m [m + }[m + else[m + {[m + ih->data->type = IUP_TOGGLE_TEXT;[m +[31m- iupmotSetArg(args, num_args, XmNlabelType, XmSTRING); [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelType, XmSTRING);[m[41m [m + }[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Primitive */[m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m + /* Label */[m +[31m- iupmotSetArg(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginTop, 0); /* no extra margins */[m +[31m- iupmotSetArg(args, num_args, XmNmarginLeft, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginBottom, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmarginRight, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNrecomputeSize, False); /* no automatic resize from text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginTop, 0); /* no extra margins */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginLeft, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginBottom, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginRight, 0);[m + [m + if (radio)[m + {[m +[31m- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);[m +[31m- iupmotSetArg(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorType, XmONE_OF_MANY_ROUND);[m + [m + if (!iupAttribGet(radio, "_IUPMOT_LASTTOGGLE"))[m + {[m +[36m@@ -380,33 +382,33 @@[m [mstatic int motToggleMapMethod(Ihandle* ih)[m + else[m + {[m + if (ih->data->type == IUP_TOGGLE_TEXT && iupAttribGetBoolean(ih, "3STATE"))[m +[31m- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_INDETERMINATE);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);[m +[31m- iupmotSetArg(args, num_args, XmNindicatorType, XmN_OF_MANY);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtoggleMode, XmTOGGLE_BOOLEAN);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorType, XmN_OF_MANY);[m + }[m + [m + if (ih->data->type == IUP_TOGGLE_IMAGE)[m + {[m +[31m- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);[m +[31m- iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_CENTER);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_NONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_CENTER);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);[m + }[m + else[m + {[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 3);[m +[31m- iupmotSetArg(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);[m +[31m- iupmotSetArg(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 3);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorOn, XmINDICATOR_CHECK_BOX);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNalignment, XmALIGNMENT_BEGINNING);[m + if (radio)[m + {[m +[31m- iupmotSetArg(args, num_args, XmNindicatorSize, 13);[m +[31m- iupmotSetArg(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorSize, 13);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNselectColor, iupmotColorGetPixel(0, 0, 0));[m + }[m + else[m +[31m- iupmotSetArg(args, num_args, XmNindicatorSize, 15);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNindicatorSize, 15);[m + [m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[31m- iupmotSetArg(args, num_args, XmNdetailShadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNdetailShadowThickness, 2);[m + }[m + [m + ih->handle = XtCreateManagedWidget([m +[1mdiff --git a/iup/src/mot/iupmot_tree.c b/iup/src/mot/iupmot_tree.c[m +[1mindex eb230af..fa5ef09 100755[m +[1m--- a/iup/src/mot/iupmot_tree.c[m +[1m+++ b/iup/src/mot/iupmot_tree.c[m +[36m@@ -46,48 +46,20 @@[m [mtypedef struct _motTreeItemData[m + Pixmap image, image_mask;[m + Pixmap image_expanded, image_expanded_mask;[m + unsigned char kind;[m +[31m- void* userdata;[m + } motTreeItemData;[m + [m + [m + static void motTreeShowEditField(Ihandle* ih, Widget wItem);[m +[31m-static int motTreeGetNodeId(Ihandle* ih, Widget wItem);[m +[32m+[m[32mstatic void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb);[m + [m +[31m-typedef int (*motTreeNodeFunc)(Ihandle* ih, Widget wItem, void* userdata);[m +[31m-[m +[31m-static int motTreeForEach(Ihandle* ih, Widget wItem, motTreeNodeFunc func, void* userdata)[m +[31m-{[m +[31m- WidgetList wItemChildList = NULL;[m +[31m- int i, numChild;[m +[31m-[m +[31m- if (!wItem)[m +[31m- wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m-[m +[31m- if (!func(ih, wItem, userdata))[m +[31m- return 0;[m +[31m-[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemChildList);[m +[31m- for (i=0; i<numChild; i++)[m +[31m- {[m +[31m- /* Recursively traverse child items */[m +[31m- if (!motTreeForEach(ih, wItemChildList[i], func, userdata))[m +[31m- {[m +[31m- XtFree((char*)wItemChildList);[m +[31m- return 0;[m +[31m- }[m +[31m- }[m +[31m- if (wItemChildList) XtFree((char*)wItemChildList);[m +[31m-[m +[31m- return 1;[m +[31m-}[m + [m + /*****************************************************************************/[m + /* COPYING ITEMS (Branches and its children) */[m + /*****************************************************************************/[m + /* Insert the copied item in a new location. Returns the new item. */[m +[31m-static Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int full_copy)[m +[32m+[m[32mstatic Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos, int is_copy)[m + {[m +[31m- Widget wNewItem;[m +[32m+[m[32m Widget wItemNew;[m + XmString title;[m + motTreeItemData *itemData;[m + Pixel fgcolor, bgcolor;[m +[36m@@ -96,13 +68,13 @@[m [mstatic Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos[m + Pixmap image = XmUNSPECIFIED_PIXMAP, mask = XmUNSPECIFIED_PIXMAP;[m + unsigned char state;[m + [m +[31m- iupmotSetArg(args, num_args, XmNentryParent, wParent);[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNentryParent, wParent);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m + [m + /* Get values to copy */[m + XtVaGetValues(wItem, XmNlabelString, &title,[m +[36m@@ -113,49 +85,73 @@[m [mstatic Widget motTreeCopyItem(Ihandle* ih, Widget wItem, Widget wParent, int pos[m + XmNoutlineState, &state,[m + NULL);[m + [m +[31m- if (full_copy) /* during a full copy the userdata reference is not copied */[m +[32m+[m[32m if (is_copy) /* during a copy the itemdata reference is not reused */[m + {[m + /* create a new one */[m + motTreeItemData* itemDataNew = malloc(sizeof(motTreeItemData));[m + memcpy(itemDataNew, itemData, sizeof(motTreeItemData));[m +[31m- itemDataNew->userdata = NULL;[m + itemData = itemDataNew;[m + }[m + [m +[31m- iupmotSetArg(args, num_args, XmNlabelString, title);[m +[31m- iupmotSetArg(args, num_args, XmNuserData, itemData);[m +[31m- iupmotSetArg(args, num_args, XmNforeground, fgcolor);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconPixmap, image);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconMask, mask);[m +[31m- iupmotSetArg(args, num_args, XmNoutlineState, state);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelString, title);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNuserData, itemData);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNforeground, fgcolor);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, image);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconMask, mask);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNoutlineState, state);[m + [m +[31m- iupmotSetArg(args, num_args, XmNentryParent, wParent);[m +[31m- iupmotSetArg(args, num_args, XmNpositionIndex, pos);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNentryParent, wParent);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpositionIndex, pos);[m + [m + XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);[m +[31m- iupmotSetArg(args, num_args, XmNbackground, bgcolor);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNbackground, bgcolor);[m +[32m+[m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);[m +[32m+[m[32m ih->data->node_count++;[m +[32m+[m +[32m+[m[32m XtRealizeWidget(wItemNew);[m +[32m+[m +[32m+[m[32m return wItemNew;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void motTreeChildRebuildCacheRec(Ihandle* ih, Widget wItem, int *id)[m +[32m+[m[32m{[m +[32m+[m[32m WidgetList itemChildList = NULL;[m +[32m+[m[32m int i, numChild;[m + [m +[31m- wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);[m +[32m+[m[32m /* Check whether we have child items */[m +[32m+[m[32m numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);[m +[32m+[m +[32m+[m[32m for (i = 0; i < numChild; i++)[m +[32m+[m[32m {[m +[32m+[m[32m (*id)++;[m +[32m+[m[32m ih->data->node_cache[*id].node_handle = itemChildList[i];[m + [m +[31m- /* Root always expanded */[m +[31m- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m motTreeChildRebuildCacheRec(ih, itemChildList[i], id);[m +[32m+[m[32m }[m + [m +[31m- XtRealizeWidget(wNewItem);[m +[32m+[m[32m if (itemChildList) XtFree((char*)itemChildList);[m +[32m+[m[32m}[m + [m +[31m- return wNewItem;[m +[32m+[m[32mstatic void motTreeRebuildNodeCache(Ihandle* ih, int id, Widget wItem)[m +[32m+[m[32m{[m +[32m+[m[32m ih->data->node_cache[id].node_handle = wItem;[m +[32m+[m[32m motTreeChildRebuildCacheRec(ih, wItem, &id);[m + }[m + [m +[31m-static void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy)[m +[32m+[m[32mstatic void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy)[m + {[m + WidgetList wItemChildList = NULL;[m + int i = 0;[m + int numChild = XmContainerGetItemChildren(ih->handle, wItemSrc, &wItemChildList);[m + while(i != numChild)[m + {[m +[31m- Widget wNewItem = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, full_copy); /* Use the same order they where enumerated */[m +[32m+[m[32m Widget wItemNew = motTreeCopyItem(ih, wItemChildList[i], wItemDst, i, is_copy); /* Use the same order they where enumerated */[m + [m + /* Recursively transfer all the items */[m +[31m- motTreeCopyChildren(ih, wItemChildList[i], wNewItem, full_copy); [m +[32m+[m[32m motTreeCopyChildren(ih, wItemChildList[i], wItemNew, is_copy);[m[41m [m + [m + /* Go to next sibling item */[m + i++;[m +[36m@@ -165,12 +161,18 @@[m [mstatic void motTreeCopyChildren(Ihandle* ih, Widget wItemSrc, Widget wItemDst, i[m + }[m + [m + /* Copies all items in a branch to a new location. Returns the new branch node. */[m +[31m-static Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int full_copy)[m +[32m+[m[32mstatic Widget motTreeCopyMoveNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int is_copy)[m + {[m +[31m- Widget wNewItem, wParent;[m +[32m+[m[32m Widget wItemNew, wParent;[m + motTreeItemData *itemDataDst;[m + unsigned char stateDst;[m +[31m- int pos;[m +[32m+[m[32m int pos, id_new, count, id_src, id_dst;[m +[32m+[m +[32m+[m[32m int old_count = ih->data->node_count;[m +[32m+[m +[32m+[m[32m id_src = iupTreeFindNodeId(ih, wItemSrc);[m +[32m+[m[32m id_dst = iupTreeFindNodeId(ih, wItemDst);[m +[32m+[m[32m id_new = id_dst+1; /* contains the position for a copy operation */[m + [m + XtVaGetValues(wItemDst, XmNoutlineState, &stateDst, [m + XmNuserData, &itemDataDst, [m +[36m@@ -184,17 +186,46 @@[m [mstatic Widget motTreeCopyNode(Ihandle* ih, Widget wItemSrc, Widget wItemDst, int[m + }[m + else[m + {[m +[32m+[m[32m if (itemDataDst->kind == ITREE_BRANCH)[m +[32m+[m[32m {[m +[32m+[m[32m int child_count = iupdrvTreeTotalChildCount(ih, wItemDst);[m +[32m+[m[32m id_new += child_count;[m +[32m+[m[32m }[m +[32m+[m + /* copy as next brother of item or collapsed branch */[m + XtVaGetValues(wItemDst, XmNentryParent, &wParent, NULL);[m + XtVaGetValues(wItemDst, XmNpositionIndex, &pos, NULL);[m + pos++;[m + }[m + [m +[31m- wNewItem = motTreeCopyItem(ih, wItemSrc, wParent, pos, full_copy);[m +[32m+[m[32m /* move to the same place does nothing */[m +[32m+[m[32m if (!is_copy && id_new == id_src)[m +[32m+[m[32m return NULL;[m +[32m+[m +[32m+[m[32m wItemNew = motTreeCopyItem(ih, wItemSrc, wParent, pos, is_copy);[m +[32m+[m +[32m+[m[32m motTreeCopyChildren(ih, wItemSrc, wItemNew, is_copy);[m +[32m+[m +[32m+[m[32m count = ih->data->node_count - old_count;[m +[32m+[m[32m iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);[m + [m +[31m- motTreeCopyChildren(ih, wItemSrc, wNewItem, full_copy);[m +[32m+[m[32m if (!is_copy)[m +[32m+[m[32m {[m +[32m+[m[32m /* Deleting the node (and its children) from the old position */[m +[32m+[m[32m /* do not delete the itemdata, we reuse the references in CopyNode */[m +[32m+[m[32m motTreeRemoveNode(ih, wItemSrc, 0, 0);[m +[32m+[m +[32m+[m[32m /* restore count, because we remove src */[m +[32m+[m[32m ih->data->node_count = old_count;[m +[32m+[m +[32m+[m[32m /* compensate position for a move */[m +[32m+[m[32m if (id_new > id_src)[m +[32m+[m[32m id_new -= count;[m +[32m+[m[32m }[m + [m +[31m- return wNewItem;[m +[32m+[m[32m motTreeRebuildNodeCache(ih, id_new, wItemNew);[m +[32m+[m +[32m+[m[32m return wItemNew;[m + }[m + [m + static void motTreeContainerDeselectAll(Ihandle *ih)[m +[36m@@ -233,229 +264,181 @@[m [mstatic void motTreeContainerSelectAll(Ihandle *ih)[m + XtCallActionProc(ih->handle, "ContainerSelectAll", (XEvent*)&ev, 0, 0);[m + }[m + [m +[31m-static Widget motTreeGetLastVisibleNode(Ihandle* ih, Widget wItem)[m +[32m+[m[32mstatic int motTreeIsNodeVisible(Widget wItem, Widget *wLastItemParent)[m + {[m +[31m- unsigned char itemState;[m +[31m-[m +[31m- XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL);[m +[31m-[m +[31m- if (itemState == XmEXPANDED)[m +[32m+[m[32m unsigned char itemParentState;[m +[32m+[m[32m Widget wItemParent = NULL;[m +[32m+[m[32m XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);[m +[32m+[m[32m if (!wItemParent || wItemParent == *wLastItemParent)[m +[32m+[m[32m return 1;[m +[32m+[m[32m while(wItemParent)[m + {[m +[31m- WidgetList wChildrenTree = NULL;[m +[31m- int numChildren = XmContainerGetItemChildren(ih->handle, wItem, &wChildrenTree);[m +[31m- if(numChildren)[m +[31m- wItem = motTreeGetLastVisibleNode(ih, wChildrenTree[numChildren - 1]);[m +[31m- if (wChildrenTree) XtFree((char*)wChildrenTree);[m +[32m+[m[32m XtVaGetValues(wItemParent, XmNoutlineState, &itemParentState, NULL);[m +[32m+[m[32m if (itemParentState != XmEXPANDED)[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL);[m + }[m + [m +[31m- return wItem;[m +[32m+[m[32m /* save last parent */[m +[32m+[m[32m XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);[m +[32m+[m[32m *wLastItemParent = wItemParent;[m +[32m+[m[32m return 1;[m + }[m + [m +[31m-static Widget motTreeFindVisibleNodeId(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode)[m +[32m+[m[32mstatic Widget motTreeGetLastVisibleNode(Ihandle* ih)[m + {[m +[31m- Widget itemChild;[m +[31m- WidgetList itemChildList;[m +[31m- int i = 0;[m +[31m- int numChild;[m +[31m- unsigned char itemState;[m +[32m+[m[32m int i;[m +[32m+[m[32m Widget wLastItemParent = NULL;[m + [m +[31m- while(i != numItems)[m +[32m+[m[32m for (i = ih->data->node_count-1; i >= 0; i--)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++; /* not the real id since it counts only the visible ones */[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(itemList[i] == itemNode)[m +[31m- return itemList[i];[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);[m +[31m-[m +[31m- /* The itemWidget has child and it is expanded (visible) */[m +[31m- if (numChild && itemState == XmEXPANDED)[m +[31m- {[m +[31m- /* pass the list of children of this item */[m +[31m- itemChild = motTreeFindVisibleNodeId(ih, itemChildList, numChild, itemNode);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(itemChild)[m +[31m- {[m +[31m- XtFree((char*)itemChildList);[m +[31m- return itemChild;[m +[31m- }[m +[31m- }[m +[31m-[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[32m+[m[32m if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))[m +[32m+[m[32m return ih->data->node_cache[i].node_handle;[m + }[m + [m +[31m- return NULL;[m +[32m+[m[32m return ih->data->node_cache[0].node_handle; /* root is always visible */[m + }[m + [m +[31m-static Widget motTreeFindVisibleNodeFromId(Ihandle* ih, WidgetList itemList, int numItems)[m +[32m+[m[32mstatic Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wItem, int count)[m + {[m +[31m- Widget itemChild;[m +[31m- WidgetList itemChildList;[m +[31m- int i = 0;[m +[31m- int numChild;[m +[31m- unsigned char itemState;[m +[32m+[m[32m int i, id;[m +[32m+[m[32m Widget wLastItemParent = NULL;[m + [m +[31m- while(i != numItems)[m +[31m- {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control--; /* not the real id since it counts only the visible ones */[m +[32m+[m[32m id = iupTreeFindNodeId(ih, wItem);[m +[32m+[m[32m id += count;[m + [m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- return itemList[i];[m +[32m+[m[32m for (i = id; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))[m +[32m+[m[32m return ih->data->node_cache[i].node_handle;[m +[32m+[m[32m }[m + [m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);[m +[32m+[m[32m return ih->data->node_cache[0].node_handle; /* root is always visible */[m +[32m+[m[32m}[m + [m +[31m- /* The itemWidget has child and it is expanded (visible) */[m +[31m- if (numChild && itemState == XmEXPANDED)[m +[31m- {[m +[31m- /* pass the list of children of this item */[m +[31m- itemChild = motTreeFindVisibleNodeFromId(ih, itemChildList, numChild);[m +[32m+[m[32mstatic Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wItem, int count)[m +[32m+[m[32m{[m +[32m+[m[32m int i, id;[m +[32m+[m[32m Widget wLastItemParent = NULL;[m + [m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- {[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- return itemChild;[m +[31m- }[m +[31m- }[m +[32m+[m[32m id = iupTreeFindNodeId(ih, wItem);[m +[32m+[m[32m id -= count;[m + [m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[32m+[m[32m for (i = id; i >= 0; i--)[m +[32m+[m[32m {[m +[32m+[m[32m if (motTreeIsNodeVisible(ih->data->node_cache[i].node_handle, &wLastItemParent))[m +[32m+[m[32m return ih->data->node_cache[i].node_handle;[m + }[m + [m +[31m- return NULL;[m +[32m+[m[32m return motTreeGetLastVisibleNode(ih);[m + }[m + [m +[31m-static Widget motTreeGetNextVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem)[m +[32m+[m[32mstatic void motTreeChildCountRec(Ihandle* ih, Widget wItem, int *count)[m + {[m +[31m- Widget wNext;[m +[32m+[m[32m WidgetList itemChildList = NULL;[m +[32m+[m[32m int i, numChild;[m + [m +[31m- ih->data->id_control = -1;[m +[31m- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem);[m +[31m- ih->data->id_control++; /* more 1 visible node */[m +[32m+[m[32m /* Check whether we have child items */[m +[32m+[m[32m numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);[m + [m +[31m- wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);[m +[32m+[m[32m for (i = 0; i < numChild; i++)[m +[32m+[m[32m {[m +[32m+[m[32m (*count)++;[m + [m +[31m- if (ih->data->id_control >= 0)[m +[31m- wNext = motTreeGetLastVisibleNode(ih, wRoot);[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m motTreeChildCountRec(ih, itemChildList[i], count);[m +[32m+[m[32m }[m + [m +[31m- return wNext;[m +[32m+[m[32m if (itemChildList) XtFree((char*)itemChildList);[m + }[m + [m +[31m-static Widget motTreeGetPreviousVisibleNode(Ihandle* ih, Widget wRoot, Widget wItem)[m +[32m+[m[32mint iupdrvTreeTotalChildCount(Ihandle* ih, Widget wItem)[m + {[m +[31m- ih->data->id_control = -1;[m +[31m- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItem);[m +[31m- ih->data->id_control--; /* less 1 visible node */[m +[31m-[m +[31m- if (ih->data->id_control < 0)[m +[31m- ih->data->id_control = 0; /* Begin of tree = Root id */[m +[31m-[m +[31m- return motTreeFindVisibleNodeFromId(ih, &wRoot, 1);[m +[32m+[m[32m int count = 0;[m +[32m+[m[32m motTreeChildCountRec(ih, wItem, &count);[m +[32m+[m[32m return count;[m + }[m + [m +[31m-static void motTreeUpdateBgColor(Ihandle* ih, WidgetList itemList, int numItems, Pixel bgcolor)[m +[32m+[m[32mstatic void motTreeUpdateBgColor(Ihandle* ih, Pixel bgcolor)[m + {[m +[31m- WidgetList itemChildList;[m +[31m- int i = 0;[m +[31m- int numChild;[m +[31m-[m +[31m- while(i != numItems)[m +[32m+[m[32m int i;[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- XtVaSetValues(itemList[i], XmNbackground, bgcolor, NULL);[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- if(numChild)[m +[31m- motTreeUpdateBgColor(ih, itemChildList, numChild, bgcolor);[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[32m+[m[32m XtVaSetValues(ih->data->node_cache[i].node_handle, XmNbackground, bgcolor, NULL);[m + }[m + }[m + [m +[31m-static void motTreeUpdateImages(Ihandle* ih, WidgetList itemList, int numItems, int mode)[m +[32m+[m[32mstatic void motTreeUpdateImages(Ihandle* ih, int mode)[m + {[m +[31m- motTreeItemData *itemData;[m +[31m- int i = 0;[m +[31m-[m +[32m+[m[32m int i;[m + /* called when one of the default images is changed */[m +[31m-[m +[31m- while(i != numItems)[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- /* Get node attributes */[m +[31m- XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL);[m +[31m- [m +[32m+[m[32m motTreeItemData *itemData;[m +[32m+[m[32m Widget wItem = ih->data->node_cache[i].node_handle;[m +[32m+[m +[32m+[m[32m XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[32m+[m + if (itemData->kind == ITREE_BRANCH)[m + {[m + unsigned char itemState;[m +[31m- XtVaGetValues(itemList[i], XmNoutlineState, &itemState, NULL);[m +[32m+[m[32m XtVaGetValues(wItem, XmNoutlineState, &itemState, NULL);[m + [m + if (itemState == XmEXPANDED)[m + {[m + if (mode == ITREE_UPDATEIMAGE_EXPANDED)[m + {[m +[31m- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL);[m +[31m- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL);[m +[32m+[m[32m XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image_expanded!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded: (Pixmap)ih->data->def_image_expanded, NULL);[m +[32m+[m[32m XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_expanded_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_expanded_mask: (Pixmap)ih->data->def_image_expanded_mask, NULL);[m + }[m + }[m + else [m + {[m + if (mode == ITREE_UPDATEIMAGE_COLLAPSED)[m + {[m +[31m- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL);[m +[31m- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL);[m +[32m+[m[32m XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_collapsed, NULL);[m +[32m+[m[32m XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_collapsed_mask, NULL);[m + }[m + }[m +[31m-[m +[31m- /* Recursively traverse child items */[m +[31m- {[m +[31m- WidgetList itemChildList;[m +[31m- int numChild;[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- motTreeUpdateImages(ih, itemChildList, numChild, mode);[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- }[m + }[m + else [m + {[m + if (mode == ITREE_UPDATEIMAGE_LEAF)[m + {[m +[31m- XtVaSetValues(itemList[i], XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL);[m +[31m- XtVaSetValues(itemList[i], XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL);[m +[32m+[m[32m XtVaSetValues(wItem, XmNsmallIconPixmap, (itemData->image!=XmUNSPECIFIED_PIXMAP)? itemData->image: (Pixmap)ih->data->def_image_leaf, NULL);[m +[32m+[m[32m XtVaSetValues(wItem, XmNsmallIconMask, (itemData->image_mask!=XmUNSPECIFIED_PIXMAP)? itemData->image_mask: (Pixmap)ih->data->def_image_leaf_mask, NULL);[m + }[m + }[m +[31m-[m +[31m- /* Go to next sibling node */[m +[31m- i++;[m + }[m + }[m + [m +[31m-static int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select)[m +[32m+[m[32mstatic int motTreeIsNodeSelected(Widget wItem)[m +[32m+[m[32m{[m +[32m+[m[32m unsigned char isSelected;[m +[32m+[m[32m XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);[m +[32m+[m[32m if(isSelected == XmSELECTED)[m +[32m+[m[32m return 1;[m +[32m+[m[32m else[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void motTreeSelectNode(Widget wItem, int select)[m +[32m+[m[32m{[m +[32m+[m[32m if (select == -1)[m +[32m+[m[32m select = !motTreeIsNodeSelected(wItem); /* toggle */[m +[32m+[m +[32m+[m[32m if (select)[m +[32m+[m[32m XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);[m +[32m+[m[32m else[m +[32m+[m[32m XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int motTreeSelectFunc(Ihandle* ih, Widget wItem, int id, int *select)[m + {[m + int do_select = *select;[m + if (do_select == -1)[m +[31m- {[m +[31m- unsigned char isSelected;[m +[31m- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);[m +[31m- do_select = (isSelected == XmSELECTED)? 0: 1; /* toggle */[m +[31m- }[m +[32m+[m[32m do_select = !motTreeIsNodeSelected(wItem); /* toggle */[m + [m + if (do_select)[m + XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);[m +[36m@@ -463,272 +446,111 @@[m [mstatic int motTreeSelectFunc(Ihandle* ih, Widget wItem, int *select)[m + XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m + [m + (void)ih;[m +[32m+[m[32m (void)id;[m + return 1;[m + }[m + [m + static void motTreeInvertAllNodeMarking(Ihandle* ih)[m + {[m + int select = -1;[m +[31m- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectFunc, &select);[m +[32m+[m[32m iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSelectFunc, &select);[m + }[m + [m +[31m-typedef struct _motTreeRange{[m +[31m- Widget wItem1, wItem2;[m +[31m- char inside, clear;[m +[31m-}motTreeRange;[m +[31m-[m +[31m-static int motTreeSelectRangeFunc(Ihandle* ih, Widget wItem, motTreeRange* range)[m +[32m+[m[32mstatic void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear)[m + {[m +[31m- int end_range = 0;[m +[31m-[m +[31m- if (range->inside == 0) /* detect the range start */[m +[31m- {[m +[31m- if (range->wItem1 == wItem) range->inside=1;[m +[31m- else if (range->wItem2 == wItem) range->inside=1;[m +[31m- }[m +[31m- else if (range->inside == 1) /* detect the range end */[m +[32m+[m[32m int i;[m +[32m+[m[32m int id1 = iupTreeFindNodeId(ih, wItem1);[m +[32m+[m[32m int id2 = iupTreeFindNodeId(ih, wItem2);[m +[32m+[m[32m if (id1 > id2)[m + {[m +[31m- if (range->wItem1 == wItem) end_range=1;[m +[31m- else if (range->wItem2 == wItem) end_range=1;[m +[32m+[m[32m int tmp = id1;[m +[32m+[m[32m id1 = id2;[m +[32m+[m[32m id2 = tmp;[m + }[m + [m +[31m- if (range->inside == 1) /* if inside, select */[m +[31m- XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);[m +[31m- else if (range->clear) /* if outside and clear, unselect */[m +[31m- XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m +[31m-[m +[31m- if (end_range || (range->inside && range->wItem1==range->wItem2))[m +[31m- range->inside=-1; /* update after selecting the node */[m +[31m-[m +[31m- (void)ih;[m +[31m- return 1;[m +[31m-}[m +[31m-[m +[31m-static void motTreeSelectRange(Ihandle* ih, Widget wItem1, Widget wItem2, int clear)[m +[31m-{[m +[31m- motTreeRange range;[m +[31m- range.wItem1 = wItem1;[m +[31m- range.wItem2 = wItem2;[m +[31m- range.inside = 0;[m +[31m- range.clear = (char)clear;[m +[31m- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSelectRangeFunc, &range);[m +[31m-}[m +[31m-[m +[31m-void motTreeExpandCollapseAllNodes(Ihandle* ih, WidgetList itemList, int numItems, unsigned char itemState)[m +[31m-{[m +[31m- WidgetList itemChildList;[m +[31m- int numChild;[m +[31m- int i = 0;[m +[31m-[m +[31m- while(i != numItems)[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m-[m +[31m- if(numChild)[m +[32m+[m[32m if (i < id1 || i > id2)[m + {[m +[31m- XtVaSetValues(itemList[i], XmNoutlineState, itemState, NULL);[m +[31m- motTreeExpandCollapseAllNodes(ih, itemChildList, numChild, itemState);[m +[32m+[m[32m if (clear)[m +[32m+[m[32m XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m + }[m +[31m-[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[32m+[m[32m else[m +[32m+[m[32m XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);[m + }[m + }[m + [m +[31m-static void motTreeDestroyItemData(Ihandle* ih, Widget wItem)[m +[32m+[m[32mvoid motTreeExpandCollapseAllNodes(Ihandle* ih, unsigned char itemState)[m + {[m +[31m- motTreeItemData *itemData = NULL;[m +[31m- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[31m- if (itemData)[m +[32m+[m[32m int i;[m +[32m+[m[32m /* called when one of the default images is changed */[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");[m +[31m- if (cb) cb(ih, motTreeGetNodeId(ih, wItem), (char*)itemData->userdata);[m +[31m- free(itemData);[m +[31m- XtVaSetValues(wItem, XmNuserData, NULL, NULL);[m +[31m- }[m +[31m-}[m +[31m-[m +[31m-static void motTreeRemoveChildren(Ihandle* ih, WidgetList itemList, int numItems, int del_userdata)[m +[31m-{[m +[31m- WidgetList itemChildList;[m +[31m- int numChild;[m +[31m- int i = 0;[m +[32m+[m[32m motTreeItemData *itemData;[m +[32m+[m[32m Widget wItem = ih->data->node_cache[i].node_handle;[m + [m +[31m- while(i != numItems)[m +[31m- { [m +[32m+[m[32m XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[32m+[m[41m [m + /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- if (numChild)[m +[31m- motTreeRemoveChildren(ih, itemChildList, numChild, del_userdata);[m +[31m-[m +[31m- if (del_userdata)[m +[31m- motTreeDestroyItemData(ih, itemList[i]);[m +[31m-[m +[31m- XtDestroyWidget(itemList[i]);[m +[31m-[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[32m+[m[32m if (itemData->kind == ITREE_BRANCH)[m +[32m+[m[32m XtVaSetValues(wItem, XmNoutlineState, itemState, NULL);[m + }[m + }[m + [m +[31m-static void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_userdata)[m +[32m+[m[32mstatic void motTreeDestroyItemData(Ihandle* ih, Widget wItem, int del_data, IFns cb, int id)[m + {[m +[31m- WidgetList wChildList = NULL;[m +[31m- int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wChildList);[m +[31m- if (numChild)[m +[31m- motTreeRemoveChildren(ih, wChildList, numChild, del_userdata);[m +[31m- if (del_userdata)[m +[31m- motTreeDestroyItemData(ih, wItem);[m +[31m- XtDestroyWidget(wItem);[m +[31m- if (wChildList) XtFree((char*)wChildList);[m +[31m-}[m +[31m-[m +[31m-static Widget motTreeFindNodeID(Ihandle* ih, WidgetList itemList, int numItems, Widget itemNode)[m +[31m-{[m +[31m- Widget itemChild;[m +[31m- WidgetList itemChildList;[m +[31m- int i = 0;[m +[31m- int numChild;[m +[31m-[m +[31m- while(i != numItems)[m +[32m+[m[32m motTreeItemData *itemData = NULL;[m +[32m+[m[32m XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[32m+[m[32m if (itemData)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[32m+[m[32m if (cb)[m[41m [m +[32m+[m[32m cb(ih, (char*)ih->data->node_cache[id].userdata);[m + [m +[31m- /* StateID founded! */[m +[31m- if(itemList[i] == itemNode)[m +[31m- return itemList[i];[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- if(numChild)[m +[32m+[m[32m if (del_data)[m + {[m +[31m- /* pass the list of children of this item */[m +[31m- itemChild = motTreeFindNodeID(ih, itemChildList, numChild, itemNode);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(itemChild)[m +[31m- {[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- return itemChild;[m +[31m- }[m +[32m+[m[32m free(itemData);[m +[32m+[m[32m XtVaSetValues(wItem, XmNuserData, NULL, NULL);[m + }[m +[31m-[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m + }[m +[31m-[m +[31m- return NULL;[m + }[m + [m +[31m-static Widget motTreeFindNodeFromID(Ihandle* ih, WidgetList itemList, int numItems)[m +[32m+[m[32mstatic void motTreeRemoveNodeRec(Ihandle* ih, Widget wItem, int del_data, IFns cb, int *id)[m + {[m +[31m- Widget itemChild;[m +[31m- WidgetList itemChildList;[m +[31m- int i = 0;[m +[31m- int numChild;[m +[32m+[m[32m WidgetList itemChildList = NULL;[m +[32m+[m[32m int i, numChild;[m +[32m+[m[32m int old_id = *id;[m + [m +[31m- while(i != numItems)[m +[32m+[m[32m /* Check whether we have child items */[m +[32m+[m[32m /* remove from children first */[m +[32m+[m[32m numChild = XmContainerGetItemChildren(ih->handle, wItem, &itemChildList);[m +[32m+[m[32m for (i = 0; i < numChild; i++)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control--;[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- return itemList[i];[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- if(numChild)[m +[31m- {[m +[31m- /* pass the list of children of this item */[m +[31m- itemChild = motTreeFindNodeFromID(ih, itemChildList, numChild);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- {[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- return itemChild;[m +[31m- }[m +[31m- }[m +[31m-[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m motTreeRemoveNodeRec(ih, itemChildList[i], del_data, cb, id);[m + }[m +[32m+[m[32m if (itemChildList) XtFree((char*)itemChildList);[m + [m +[31m- return NULL;[m +[31m-}[m +[32m+[m[32m /* actually do it for the node */[m +[32m+[m[32m ih->data->node_count--;[m +[32m+[m[32m (*id)++;[m + [m +[31m-static int motTreeGetNodeId(Ihandle* ih, Widget wItem)[m +[31m-{[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m- ih->data->id_control = -1;[m +[31m- if (motTreeFindNodeID(ih, &wRoot, 1, wItem))[m +[31m- return ih->data->id_control;[m +[31m- else[m +[31m- return -1;[m +[32m+[m[32m if (del_data || cb)[m +[32m+[m[32m motTreeDestroyItemData(ih, wItem, del_data, cb, old_id);[m +[32m+[m +[32m+[m[32m XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */[m + }[m + [m +[31m-static Widget motTreeFindUserDataID(Ihandle* ih, WidgetList itemList, int numItems, void* userdata)[m +[32m+[m[32mstatic void motTreeRemoveNode(Ihandle* ih, Widget wItem, int del_data, int call_cb)[m + {[m +[31m- Widget itemChild;[m +[31m- WidgetList itemChildList;[m +[31m- motTreeItemData *itemData;[m +[31m- int i = 0;[m +[31m- int numChild;[m +[31m-[m +[31m- while(i != numItems)[m +[31m- {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[31m-[m +[31m- XtVaGetValues(itemList[i], XmNuserData, &itemData, NULL);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(itemData->userdata == userdata)[m +[31m- return itemList[i];[m +[32m+[m[32m IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;[m +[32m+[m[32m int old_count = ih->data->node_count;[m +[32m+[m[32m int id = iupTreeFindNodeId(ih, wItem);[m +[32m+[m[32m int old_id = id;[m + [m +[31m- /* Check whether we have child items */[m +[31m- itemChildList = NULL;[m +[31m- numChild = XmContainerGetItemChildren(ih->handle, itemList[i], &itemChildList);[m +[31m- if(numChild)[m +[31m- {[m +[31m- /* pass the list of children of this item */[m +[31m- itemChild = motTreeFindUserDataID(ih, itemChildList, numChild, userdata);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if (itemChild)[m +[31m- {[m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- return itemChild;[m +[31m- }[m +[31m- }[m +[32m+[m[32m motTreeRemoveNodeRec(ih, wItem, del_data, cb, &id);[m + [m +[31m- if (itemChildList) XtFree((char*)itemChildList);[m +[31m- /* Go to next sibling item */[m +[31m- i++;[m +[31m- }[m +[31m-[m +[31m- return NULL;[m +[31m-}[m +[31m-[m +[31m-static int motTreeGetUserDataId(Ihandle* ih, void* userdata)[m +[31m-{[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m- ih->data->id_control = -1;[m +[31m- if (motTreeFindUserDataID(ih, &wRoot, 1, userdata))[m +[31m- return ih->data->id_control;[m +[31m- else[m +[31m- return -1;[m +[32m+[m[32m if (call_cb)[m +[32m+[m[32m iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);[m + }[m + [m + static void motTreeSetFocusNode(Ihandle* ih, Widget wItem)[m +[36m@@ -737,7 +559,7 @@[m [mstatic void motTreeSetFocusNode(Ihandle* ih, Widget wItem)[m + XmProcessTraversal(wItem, XmTRAVERSE_CURRENT);[m + }[m + [m +[31m-static Widget motTreeGetFocusNode(Ihandle* ih)[m +[32m+[m[32mWidget iupdrvTreeGetFocusNode(Ihandle* ih)[m + {[m + Widget wItem = XmGetFocusWidget(ih->handle); /* returns the focus in the dialog */[m + if (wItem && XtParent(wItem) == ih->handle) /* is a node */[m +[36m@@ -746,18 +568,6 @@[m [mstatic Widget motTreeGetFocusNode(Ihandle* ih)[m + return (Widget)iupAttribGet(ih, "_IUPTREE_LAST_FOCUS");[m + }[m + [m +[31m-static Widget motTreeFindNodeFromString(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- if (name_id[0])[m +[31m- {[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m- iupStrToInt(name_id, &ih->data->id_control);[m +[31m- return motTreeFindNodeFromID(ih, &wRoot, 1);[m +[31m- }[m +[31m- else[m +[31m- return motTreeGetFocusNode(ih);[m +[31m-}[m +[31m-[m + static void motTreeEnterLeaveWindowEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean *cont)[m + {[m + if (iupAttribGet(ih, "_IUPTREE_EDITFIELD"))[m +[36m@@ -812,16 +622,24 @@[m [mstatic void motTreeFocusChangeEvent(Widget w, Ihandle *ih, XEvent *evt, Boolean[m + [m + void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add)[m + {[m +[31m- Widget wItemPrev = motTreeFindNodeFromString(ih, name_id);[m +[31m- Widget wNewItem;[m +[32m+[m[32m Widget wItemPrev = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItemNew;[m + XmString itemTitle;[m +[31m- motTreeItemData *itemData, *itemDataPrev;[m +[32m+[m[32m motTreeItemData *itemData;[m + Pixel bgcolor, fgcolor;[m +[31m- int kindPrev, num_args = 0;[m +[32m+[m[32m int kindPrev = 0, num_args = 0;[m + Arg args[30];[m + [m + if (!wItemPrev)[m +[31m- return;[m +[32m+[m[32m {[m +[32m+[m[32m /* check if the root was really specified */[m +[32m+[m[32m int id = 0;[m +[32m+[m[32m if (!iupStrToInt(name_id, &id) || id != -1)[m +[32m+[m[32m return;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m if (!title)[m +[32m+[m[32m title = "";[m + [m + itemData = calloc(1, sizeof(motTreeItemData));[m + itemData->image = XmUNSPECIFIED_PIXMAP;[m +[36m@@ -836,138 +654,103 @@[m [mvoid iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t[m + XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL);[m + XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);[m + [m +[31m- /* Get the kind of previous item */[m +[31m- XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL);[m +[31m- kindPrev = itemDataPrev->kind;[m +[31m-[m +[31m- if (kindPrev == ITREE_BRANCH && add)[m +[32m+[m[32m if (wItemPrev)[m + {[m +[31m- /* wItemPrev is parent of the new item (firstchild of it) */[m +[31m- iupmotSetArg(args, num_args, XmNentryParent, wItemPrev);[m +[31m- iupmotSetArg(args, num_args, XmNpositionIndex, 0);[m +[31m- }[m +[31m- else[m +[31m- {[m +[31m- /* wItemPrev is sibling of the new item (set its parent to the new item) */[m +[31m- Widget wItemParent;[m +[31m- int pos;[m +[32m+[m[32m motTreeItemData *itemDataPrev;[m + [m +[31m- XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL);[m +[31m- XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL);[m +[32m+[m[32m /* Get the kind of previous item */[m +[32m+[m[32m XtVaGetValues(wItemPrev, XmNuserData, &itemDataPrev, NULL);[m +[32m+[m[32m kindPrev = itemDataPrev->kind;[m +[32m+[m +[32m+[m[32m if (kindPrev == ITREE_BRANCH && add)[m +[32m+[m[32m {[m +[32m+[m[32m /* wItemPrev is parent of the new item (firstchild of it) */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNentryParent, wItemPrev);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpositionIndex, 0);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* wItemPrev is sibling of the new item (set its parent to the new item) */[m +[32m+[m[32m Widget wItemParent;[m +[32m+[m[32m int pos;[m + [m +[31m- iupmotSetArg(args, num_args, XmNentryParent, wItemParent);[m +[31m- iupmotSetArg(args, num_args, XmNpositionIndex, pos+1);[m +[32m+[m[32m XtVaGetValues(wItemPrev, XmNentryParent, &wItemParent, NULL);[m +[32m+[m[32m XtVaGetValues(wItemPrev, XmNpositionIndex, &pos, NULL);[m +[32m+[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNentryParent, wItemParent);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpositionIndex, pos+1);[m +[32m+[m[32m }[m + }[m + [m +[31m- iupmotSetArg(args, num_args, XmNuserData, itemData);[m +[31m- iupmotSetArg(args, num_args, XmNforeground, fgcolor);[m +[31m- iupmotSetArg(args, num_args, XmNbackground, bgcolor);[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[31m- iupmotSetArg(args, num_args, XmNlabelString, itemTitle);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNuserData, itemData);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNforeground, fgcolor);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNbackground, bgcolor);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNviewType, XmSMALL_ICON);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlabelString, itemTitle);[m + [m + if (kind == ITREE_BRANCH)[m + {[m + if (ih->data->add_expanded)[m + {[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);[m + }[m + else[m + {[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_collapsed);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_collapsed_mask);[m + }[m + }[m + else[m + {[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconPixmap, ih->data->def_image_leaf);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsmallIconMask, ih->data->def_image_leaf_mask);[m + }[m + [m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m wItemNew = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);[m +[32m+[m[32m if (wItemPrev)[m +[32m+[m[32m iupTreeAddToCache(ih, add, kindPrev, wItemPrev, wItemNew);[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m iupTreeAddToCache(ih, 0, 0, NULL, wItemNew);[m +[32m+[m +[32m+[m[32m if (ih->data->node_count == 1)[m +[32m+[m[32m {[m +[32m+[m[32m /* MarkStart node */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wItemNew);[m + [m +[31m- wNewItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);[m +[32m+[m[32m /* Set the default VALUE */[m +[32m+[m[32m motTreeSetFocusNode(ih, wItemNew);[m +[32m+[m[32m }[m +[32m+[m[32m }[m + [m + if (kind == ITREE_BRANCH)[m + {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1");[m + if (ih->data->add_expanded)[m +[31m- {[m +[31m- iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", "1");[m +[31m- XtVaSetValues(wNewItem, XmNoutlineState, XmEXPANDED, NULL);[m +[31m- }[m +[32m+[m[32m XtVaSetValues(wItemNew, XmNoutlineState, XmEXPANDED, NULL);[m + else[m +[31m- XtVaSetValues(wNewItem, XmNoutlineState, XmCOLLAPSED, NULL);[m +[32m+[m[32m XtVaSetValues(wItemNew, XmNoutlineState, XmCOLLAPSED, NULL);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL);[m + }[m + [m +[31m- /* Root always expanded */[m +[31m- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);[m +[31m-[m +[31m- XtRealizeWidget(wNewItem);[m +[32m+[m[32m XtRealizeWidget(wItemNew);[m + XmStringFree(itemTitle);[m + }[m + [m +[31m-static void motTreeAddRootNode(Ihandle* ih)[m +[31m-{[m +[31m- Widget wRootItem;[m +[31m- motTreeItemData *itemData;[m +[31m- Pixel bgcolor, fgcolor;[m +[31m- int num_args = 0;[m +[31m- Arg args[30];[m +[31m-[m +[31m- itemData = calloc(1, sizeof(motTreeItemData));[m +[31m- itemData->image = XmUNSPECIFIED_PIXMAP;[m +[31m- itemData->image_expanded = XmUNSPECIFIED_PIXMAP;[m +[31m- itemData->image_mask = XmUNSPECIFIED_PIXMAP;[m +[31m- itemData->image_expanded_mask = XmUNSPECIFIED_PIXMAP;[m +[31m- itemData->kind = ITREE_BRANCH;[m +[31m-[m +[31m- /* Get default foreground color */[m +[31m- XtVaGetValues(ih->handle, XmNforeground, &fgcolor, NULL);[m +[31m- XtVaGetValues(ih->handle, XmNbackground, &bgcolor, NULL);[m +[31m-[m +[31m- iupmotSetArg(args, num_args, XmNentryParent, NULL);[m +[31m- iupmotSetArg(args, num_args, XmNuserData, itemData);[m +[31m- iupmotSetArg(args, num_args, XmNforeground, fgcolor);[m +[31m- iupmotSetArg(args, num_args, XmNbackground, bgcolor);[m +[31m- iupmotSetArg(args, num_args, XmNoutlineState, XmEXPANDED);[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing);[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNviewType, XmSMALL_ICON);[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconPixmap, ih->data->def_image_expanded);[m +[31m- iupmotSetArg(args, num_args, XmNsmallIconMask, ih->data->def_image_expanded_mask);[m +[31m-[m +[31m- wRootItem = XtCreateManagedWidget("icon", xmIconGadgetClass, ih->handle, args, num_args);[m +[31m-[m +[31m- /* Select the new item */[m +[31m- XtVaSetValues(wRootItem, XmNvisualEmphasis, XmSELECTED, NULL);[m +[31m-[m +[31m- XtRealizeWidget(wRootItem);[m +[31m-[m +[31m- /* Save the root node for later use */[m +[31m- iupAttribSetStr(ih, "_IUPTREE_ROOTITEM", (char*)wRootItem);[m +[31m-[m +[31m- /* MarkStart node */[m +[31m- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)wRootItem);[m +[31m-[m +[31m- /* Set the default VALUE */[m +[31m- /* In Motif this will set also the current focus */[m +[31m- motTreeSetFocusNode(ih, wRootItem);[m +[31m-}[m +[31m-[m + /*****************************************************************************/[m + [m + static int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m + motTreeItemData *itemData;[m + unsigned char itemState;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem)[m + return 0;[m + [m +[36m@@ -1003,7 +786,7 @@[m [mstatic int motTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const[m + static int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m + motTreeItemData *itemData;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return 0;[m + [m +[36m@@ -1053,7 +836,6 @@[m [mstatic int motTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v[m + [m + static int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m + ih->data->def_image_expanded = iupImageGetImage(value, ih, 0);[m + if (!ih->data->def_image_expanded) [m + {[m +[36m@@ -1067,14 +849,13 @@[m [mstatic int motTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)[m + }[m + [m + /* Update all images, starting at root node */[m +[31m- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_EXPANDED);[m +[32m+[m[32m motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);[m + [m + return 1;[m + }[m + [m + static int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m + ih->data->def_image_collapsed = iupImageGetImage(value, ih, 0);[m + if (!ih->data->def_image_collapsed) [m + {[m +[36m@@ -1088,14 +869,13 @@[m [mstatic int motTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)[m + }[m + [m + /* Update all images, starting at root node */[m +[31m- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_COLLAPSED);[m +[32m+[m[32m motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);[m + [m + return 1;[m + }[m + [m + static int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m + ih->data->def_image_leaf = iupImageGetImage(value, ih, 0);[m + if (!ih->data->def_image_leaf) [m + {[m +[36m@@ -1109,7 +889,7 @@[m [mstatic int motTreeSetImageLeafAttrib(Ihandle* ih, const char* value)[m + }[m + [m + /* Update all images, starting at root node */[m +[31m- motTreeUpdateImages(ih, &wRoot, 1, ITREE_UPDATEIMAGE_LEAF);[m +[32m+[m[32m motTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);[m + [m + return 1;[m + }[m +[36m@@ -1118,7 +898,7 @@[m [mstatic char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id)[m + {[m + int hasChildren;[m + unsigned char itemState;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return 0;[m + [m +[36m@@ -1138,14 +918,21 @@[m [mstatic char* motTreeGetStateAttrib(Ihandle* ih, const char* name_id)[m + [m + static int motTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[31m- if (!wItem) [m +[32m+[m[32m motTreeItemData *itemData;[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m if (!wItem)[m + return 0;[m + [m +[31m- if (iupStrEqualNoCase(value, "EXPANDED"))[m +[31m- XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL);[m +[31m- else [m +[31m- XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL);[m +[32m+[m[32m XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[32m+[m[32m if (itemData->kind == ITREE_BRANCH)[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", "1");[m +[32m+[m[32m if (iupStrEqualNoCase(value, "EXPANDED"))[m +[32m+[m[32m XtVaSetValues(wItem, XmNoutlineState, XmEXPANDED, NULL);[m +[32m+[m[32m else[m[41m [m +[32m+[m[32m XtVaSetValues(wItem, XmNoutlineState, XmCOLLAPSED, NULL);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUP_IGNORE_BRANCH_CB", NULL);[m +[32m+[m[32m }[m + [m + return 0;[m + }[m +[36m@@ -1155,7 +942,7 @@[m [mstatic char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id)[m + unsigned char r, g, b;[m + Pixel color;[m + char* str;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id); [m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m[41m [m + if (!wItem) [m + return NULL;[m + [m +[36m@@ -1170,7 +957,7 @@[m [mstatic char* motTreeGetColorAttrib(Ihandle* ih, const char* name_id)[m + static int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m + Pixel color;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id); [m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m[41m [m + if (!wItem) [m + return 0;[m + [m +[36m@@ -1182,36 +969,33 @@[m [mstatic int motTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v[m + [m + static char* motTreeGetDepthAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- Widget wRoot;[m +[31m- int dep = 0;[m +[31m- char* depth;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id); [m +[32m+[m[32m int depth = -1;[m +[32m+[m[32m char* str;[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m[41m [m + if (!wItem) [m + return NULL;[m + [m +[31m- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m-[m +[31m- while((wRoot != wItem) && (wItem != NULL))[m +[32m+[m[32m while(wItem != NULL)[m + {[m + XtVaGetValues(wItem, XmNentryParent, &wItem, NULL);[m +[31m- dep++;[m +[32m+[m[32m depth++;[m + }[m + [m +[31m- depth = iupStrGetMemory(10);[m +[31m- sprintf(depth, "%d", dep);[m +[31m- return depth;[m +[32m+[m[32m str = iupStrGetMemory(10);[m +[32m+[m[32m sprintf(str, "%d", depth);[m +[32m+[m[32m return str;[m + }[m + [m + static int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m + Widget wItemDst, wParent, wItemSrc;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- wItemSrc = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m wItemSrc = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItemSrc)[m + return 0;[m +[31m- wItemDst = motTreeFindNodeFromString(ih, value);[m +[32m+[m[32m wItemDst = iupTreeGetNodeFromString(ih, value);[m + if (!wItemDst)[m + return 0;[m + [m +[36m@@ -1224,11 +1008,8 @@[m [mstatic int motTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char[m + return 0;[m + }[m + [m +[31m- /* Copying the node and its children to the new position */[m +[31m- motTreeCopyNode(ih, wItemSrc, wItemDst, 0); /* not a full copy, preserve user data */[m +[31m-[m +[31m- /* Deleting the node (and its children) inserted into the old position */[m +[31m- motTreeRemoveNode(ih, wItemSrc, 0); /* do not delete the user data, we copy the references in CopyNode */[m +[32m+[m[32m /* Move the node and its children to the new position */[m +[32m+[m[32m motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 0);[m + [m + return 0;[m + }[m +[36m@@ -1237,12 +1018,12 @@[m [mstatic int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char[m + {[m + Widget wItemDst, wParent, wItemSrc;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- wItemSrc = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m wItemSrc = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItemSrc)[m + return 0;[m +[31m- wItemDst = motTreeFindNodeFromString(ih, value);[m +[32m+[m[32m wItemDst = iupTreeGetNodeFromString(ih, value);[m + if (!wItemDst)[m + return 0;[m + [m +[36m@@ -1255,8 +1036,8 @@[m [mstatic int motTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char[m + return 0;[m + }[m + [m +[31m- /* Copying the node and its children to the new position */[m +[31m- motTreeCopyNode(ih, wItemSrc, wItemDst, 1);[m +[32m+[m[32m /* Copy the node and its children to the new position */[m +[32m+[m[32m motTreeCopyMoveNode(ih, wItemSrc, wItemDst, 1);[m + [m + return 0;[m + }[m +[36m@@ -1265,7 +1046,7 @@[m [mstatic char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id)[m + {[m + Widget wItemParent;[m + char* str;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return NULL;[m + [m +[36m@@ -1275,7 +1056,7 @@[m [mstatic char* motTreeGetParentAttrib(Ihandle* ih, const char* name_id)[m + return NULL;[m + [m + str = iupStrGetMemory(10);[m +[31m- sprintf(str, "%d", motTreeGetNodeId(ih, wItemParent));[m +[32m+[m[32m sprintf(str, "%d", iupTreeFindNodeId(ih, wItemParent));[m + return str;[m + }[m + [m +[36m@@ -1283,7 +1064,7 @@[m [mstatic char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)[m + {[m + char* str;[m + WidgetList wList = NULL;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return NULL;[m + [m +[36m@@ -1293,30 +1074,10 @@[m [mstatic char* motTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)[m + return str;[m + }[m + [m +[31m-static int motTreeCount(Ihandle* ih, Widget wItem)[m +[31m-{[m +[31m- WidgetList wList = NULL;[m +[31m- int i, count = 0;[m +[31m- int childCount = XmContainerGetItemChildren(ih->handle, wItem, &wList);[m +[31m- count++;[m +[31m- for (i=0; i<childCount; i++)[m +[31m- count += motTreeCount(ih, wList[i]);[m +[31m- if (wList) XtFree((char*)wList);[m +[31m- return count;[m +[31m-}[m +[31m-[m +[31m-static char* motTreeGetCountAttrib(Ihandle* ih)[m +[31m-{[m +[31m- char* str = iupStrGetMemory(10);[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m- sprintf(str, "%d", motTreeCount(ih, wRoot));[m +[31m- return str;[m +[31m-}[m +[31m-[m + static char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id)[m + {[m + motTreeItemData *itemData;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return NULL;[m + [m +[36m@@ -1331,15 +1092,64 @@[m [mstatic char* motTreeGetKindAttrib(Ihandle* ih, const char* name_id)[m + static char* motTreeGetValueAttrib(Ihandle* ih)[m + {[m + char* str;[m +[31m- Widget wItem = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItem = iupdrvTreeGetFocusNode(ih);[m + if (!wItem)[m +[31m- return "0"; /* default VALUE is root */[m +[32m+[m[32m {[m +[32m+[m[32m if (ih->data->node_count)[m +[32m+[m[32m return "0"; /* default VALUE is root */[m +[32m+[m[32m else[m +[32m+[m[32m return "-1";[m +[32m+[m[32m }[m + [m + str = iupStrGetMemory(10);[m +[31m- sprintf(str, "%d", motTreeGetNodeId(ih, wItem));[m +[32m+[m[32m sprintf(str, "%d", iupTreeFindNodeId(ih, wItem));[m +[32m+[m[32m return str;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic char* motTreeGetMarkedNodesAttrib(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m char* str;[m +[32m+[m[32m int i;[m +[32m+[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m +[32m+[m[32m return NULL;[m +[32m+[m +[32m+[m[32m str = iupStrGetMemory(ih->data->node_count+1);[m +[32m+[m +[32m+[m[32m for (i=0; i<ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))[m +[32m+[m[32m str[i] = '+';[m +[32m+[m[32m else[m +[32m+[m[32m str[i] = '-';[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m str[ih->data->node_count] = 0;[m + return str;[m + }[m + [m +[32m+[m[32mstatic int motTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m int count, i;[m +[32m+[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m count = strlen(value);[m +[32m+[m[32m if (count > ih->data->node_count)[m +[32m+[m[32m count = ih->data->node_count;[m +[32m+[m +[32m+[m[32m for (i=0; i<count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (value[i] == '+')[m +[32m+[m[32m XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);[m +[32m+[m[32m else[m +[32m+[m[32m XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m + static int motTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + {[m + if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m +[36m@@ -1353,21 +1163,16 @@[m [mstatic int motTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + motTreeInvertAllNodeMarking(ih);[m + else if(iupStrEqualPartial(value, "INVERT"))[m + {[m +[31m- unsigned char isSelected;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, &value[strlen("INVERT")]);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]);[m + if (!wItem) [m + return 0;[m + [m +[31m- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);[m +[31m- if (isSelected == XmSELECTED)[m +[31m- XtVaSetValues(wItem, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m +[31m- else[m +[31m- XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);[m +[32m+[m[32m motTreeSelectNode(wItem, -1);[m + }[m + else if(iupStrEqualNoCase(value, "BLOCK"))[m + {[m + Widget wItem = (Widget)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE");[m +[31m- Widget wFocusItem = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wFocusItem = iupdrvTreeGetFocusNode(ih);[m + if(!wFocusItem || !wItem)[m + return 0;[m + motTreeSelectRange(ih, wFocusItem, wItem, 0);[m +[36m@@ -1379,10 +1184,10 @@[m [mstatic int motTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + if (iupStrToStrStr(value, str1, str2, '-')!=2)[m + return 0;[m + [m +[31m- wItem1 = motTreeFindNodeFromString(ih, str1);[m +[32m+[m[32m wItem1 = iupTreeGetNodeFromString(ih, str1);[m + if (!wItem1) [m + return 0;[m +[31m- wItem2 = motTreeFindNodeFromString(ih, str2);[m +[32m+[m[32m wItem2 = iupTreeGetNodeFromString(ih, str2);[m + if (!wItem2) [m + return 0;[m + [m +[36m@@ -1394,69 +1199,49 @@[m [mstatic int motTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + [m + static int motTreeSetValueAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- Widget wRoot, wItem;[m +[32m+[m[32m Widget wItem, wItemParent;[m + [m + if (motTreeSetMarkAttrib(ih, value))[m + return 0;[m + [m +[31m- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m-[m +[31m- if (iupStrEqualNoCase(value, "ROOT"))[m +[31m- wItem = wRoot;[m +[32m+[m[32m if (iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))[m +[32m+[m[32m wItem = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m + else if(iupStrEqualNoCase(value, "LAST"))[m +[31m- wItem = motTreeGetLastVisibleNode(ih, wRoot);[m +[32m+[m[32m wItem = motTreeGetLastVisibleNode(ih);[m + else if(iupStrEqualNoCase(value, "PGUP"))[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + if(!wItemFocus)[m + return 0;[m + [m +[31m- ih->data->id_control = -1;[m +[31m- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus);[m +[31m- ih->data->id_control -= 10; /* less 10 visible nodes */[m +[31m-[m +[31m- if(ih->data->id_control < 0)[m +[31m- ih->data->id_control = 0; /* Begin of tree = Root id */[m +[31m-[m +[31m- wItem = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);[m +[32m+[m[32m wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 10);[m + }[m + else if(iupStrEqualNoCase(value, "PGDN"))[m + {[m +[31m- Widget wNext, wItemFocus;[m +[31m-[m +[31m- wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + if(!wItemFocus)[m + return 0;[m + [m +[31m- ih->data->id_control = -1;[m +[31m- motTreeFindVisibleNodeId(ih, &wRoot, 1, wItemFocus);[m +[31m- ih->data->id_control += 10; /* more 10 visible nodes */[m +[31m-[m +[31m- wNext = motTreeFindVisibleNodeFromId(ih, &wRoot, 1);[m +[31m-[m +[31m- if (ih->data->id_control >= 0)[m +[31m- wNext = motTreeGetLastVisibleNode(ih, wRoot);[m +[31m- [m +[31m- wItem = wNext;[m +[32m+[m[32m wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 10);[m + }[m + else if(iupStrEqualNoCase(value, "NEXT"))[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (!wItemFocus)[m + return 0;[m + [m +[31m- wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus);[m +[32m+[m[32m wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1);[m + }[m + else if(iupStrEqualNoCase(value, "PREVIOUS"))[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + if(!wItemFocus)[m + return 0;[m + [m +[31m- wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus);[m +[32m+[m[32m wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1);[m + }[m + else[m +[31m- wItem = motTreeFindNodeFromString(ih, value);[m +[32m+[m[32m wItem = iupTreeGetNodeFromString(ih, value);[m + [m + if (!wItem) [m + return 0;[m +[36m@@ -1471,17 +1256,26 @@[m [mstatic int motTreeSetValueAttrib(Ihandle* ih, const char* value)[m + XtVaSetValues(wItem, XmNvisualEmphasis, XmSELECTED, NULL);[m + }[m + [m +[32m+[m +[32m+[m[32m /* expand all parents */[m +[32m+[m[32m XtVaGetValues(wItem, XmNentryParent, &wItemParent, NULL);[m +[32m+[m[32m while(wItemParent)[m +[32m+[m[32m {[m +[32m+[m[32m XtVaSetValues(wItemParent, XmNoutlineState, XmEXPANDED, NULL);[m +[32m+[m[32m XtVaGetValues(wItemParent, XmNentryParent, &wItemParent, NULL);[m +[32m+[m[32m }[m +[32m+[m + /* set focus (will scroll to visible) */[m + motTreeSetFocusNode(ih, wItem);[m + [m +[31m- iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", motTreeGetNodeId(ih, wItem));[m +[32m+[m[32m iupAttribSetInt(ih, "_IUPTREE_OLDVALUE", iupTreeFindNodeId(ih, wItem));[m + [m + return 0;[m + } [m + [m + static int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return 0;[m + [m +[36m@@ -1492,14 +1286,11 @@[m [mstatic int motTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)[m + [m + static char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- unsigned char isSelected;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return NULL;[m + [m +[31m- XtVaGetValues(wItem, XmNvisualEmphasis, &isSelected, NULL);[m +[31m-[m +[31m- if(isSelected == XmSELECTED)[m +[32m+[m[32m if (motTreeIsNodeSelected(wItem))[m + return "YES";[m + else[m + return "NO";[m +[36m@@ -1507,7 +1298,7 @@[m [mstatic char* motTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)[m + [m + static int motTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return 0;[m + [m +[36m@@ -1531,7 +1322,7 @@[m [mstatic char* motTreeGetTitle(Widget wItem)[m + [m + static char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return NULL;[m + return motTreeGetTitle(wItem);[m +[36m@@ -1539,10 +1330,13 @@[m [mstatic char* motTreeGetTitleAttrib(Ihandle* ih, const char* name_id)[m + [m + static int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return 0;[m + [m +[32m+[m[32m if (!value)[m +[32m+[m[32m value = "";[m +[32m+[m + iupmotSetString(wItem, XmNlabelString, value);[m + [m + return 0;[m +[36m@@ -1551,7 +1345,7 @@[m [mstatic int motTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v[m + static int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m + XmFontList fontlist = NULL;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return 0;[m + [m +[36m@@ -1569,7 +1363,7 @@[m [mstatic int motTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha[m + static char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)[m + {[m + XmFontList fontlist;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!wItem) [m + return NULL;[m + [m +[36m@@ -1577,118 +1371,81 @@[m [mstatic char* motTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)[m + return iupmotFindFontList(fontlist);[m + }[m + [m +[31m-static char* motTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- int id;[m +[31m- char* str = (char*)(name_id+1); /* skip ':' */[m +[31m- void* userdata = NULL;[m +[31m- if (sscanf(str, "%p", &userdata)!=1)[m +[31m- return NULL;[m +[31m- id = motTreeGetUserDataId(ih, userdata);[m +[31m- if (id == -1)[m +[31m- return NULL;[m +[31m- str = iupStrGetMemory(16);[m +[31m- sprintf(str, "%d", id);[m +[31m- return str;[m +[31m-}[m +[31m-[m +[31m-static char* motTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- motTreeItemData *itemData;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[31m- if (!wItem) [m +[31m- return NULL;[m +[31m-[m +[31m- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[31m-[m +[31m- return itemData->userdata;[m +[31m-}[m +[31m-[m +[31m-static int motTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)[m +[31m-{[m +[31m- motTreeItemData *itemData;[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[31m- if (!wItem) [m +[31m- return 0;[m +[31m-[m +[31m- XtVaGetValues(wItem, XmNuserData, &itemData, NULL);[m +[31m- itemData->userdata = (void*)value;[m +[31m-[m +[31m- return 0;[m +[31m-}[m +[31m-[m + static int motTreeSetRenameAttrib(Ihandle* ih, const char* value)[m + { [m + if (ih->data->show_rename)[m + {[m +[31m- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[31m- if (cbShowRename)[m +[31m- cbShowRename(ih, motTreeGetNodeId(ih, wItemFocus));[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + motTreeShowEditField(ih, wItemFocus);[m + }[m +[31m- else[m +[31m- {[m +[31m- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");[m +[31m- if (cbRenameNode)[m +[31m- {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[31m- cbRenameNode(ih, motTreeGetNodeId(ih, wItemFocus), motTreeGetTitle(wItemFocus)); [m +[31m- }[m +[31m- }[m + [m + (void)value;[m + return 0;[m + }[m + [m +[32m+[m[32mstatic void motTreeRemoveAllNodes(Ihandle* ih, int call_cb)[m +[32m+[m[32m{[m +[32m+[m[32m IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;[m +[32m+[m[32m int i, old_count = ih->data->node_count;[m +[32m+[m[32m Widget wItem;[m +[32m+[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m wItem = ih->data->node_cache[i].node_handle;[m +[32m+[m +[32m+[m[32m motTreeDestroyItemData(ih, wItem, 1, cb, i);[m +[32m+[m +[32m+[m[32m XtDestroyWidget(wItem); /* must manually destroy each node, this is NOT recursive */[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m ih->data->node_count = 0;[m +[32m+[m +[32m+[m[32m if (call_cb)[m +[32m+[m[32m iupTreeDelFromCache(ih, 0, old_count);[m +[32m+[m[32m}[m +[32m+[m + static int motTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */[m +[32m+[m[32m if (iupStrEqualNoCase(value, "ALL"))[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m-[m +[31m- /* the root node can't be deleted */[m +[31m- if(!wItem || wItem == wRoot) /* root is the unique child */[m +[32m+[m[32m motTreeRemoveAllNodes(ih, 1);[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference node */[m +[32m+[m[32m {[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m if(!wItem)[m + return 0;[m + [m +[31m- /* deleting the specified node (and it's children) */[m +[31m- motTreeRemoveNode(ih, wItem, 1);[m +[32m+[m[32m /* deleting the reference node (and it's children) */[m +[32m+[m[32m motTreeRemoveNode(ih, wItem, 1, 1);[m + }[m +[31m- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */[m +[32m+[m[32m else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m int numChild, i;[m +[32m+[m[32m WidgetList wItemList = NULL;[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, name_id);[m + [m + if(!wItem)[m + return 0;[m + [m +[31m- {[m +[31m- /* deleting the selected node's children only */[m +[31m- WidgetList wItemList = NULL;[m +[31m- int numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList);[m +[31m- if(numChild)[m +[31m- motTreeRemoveChildren(ih, wItemList, numChild, 1);[m +[31m- if (wItemList) XtFree((char*)wItemList);[m +[31m- }[m +[32m+[m[32m /* deleting the reference node children only */[m +[32m+[m[32m numChild = XmContainerGetItemChildren(ih->handle, wItem, &wItemList);[m +[32m+[m[32m for(i = 0; i < numChild; i++)[m +[32m+[m[32m motTreeRemoveNode(ih, wItemList[i], 1, 1);[m +[32m+[m[32m if (wItemList) XtFree((char*)wItemList);[m + }[m + else if(iupStrEqualNoCase(value, "MARKED")) /* Delete the array of marked nodes */[m + {[m +[31m- WidgetList wSelectedItemList = NULL;[m +[31m- Widget wRoot;[m +[31m- int countItems, i;[m +[31m-[m +[31m- XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,[m +[31m- XmNselectedObjectCount, &countItems, NULL);[m +[31m-[m +[31m- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m-[m +[31m- for(i = 0; i < countItems; i++)[m +[32m+[m[32m int i;[m +[32m+[m[32m for(i = 1; i < ih->data->node_count; /* increment only if not removed */)[m + {[m +[31m- int ok = XmIsIconGadget(wSelectedItemList[i]);[m +[31m- if ((wSelectedItemList[i] != wRoot) && ok) /* the root node can't be deleted */[m +[31m- motTreeRemoveNode(ih, wSelectedItemList[i], 1);[m +[32m+[m[32m if (motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))[m +[32m+[m[32m motTreeRemoveNode(ih, ih->data->node_cache[i].node_handle, 1, 1);[m +[32m+[m[32m else[m +[32m+[m[32m i++;[m + }[m + }[m + [m +[36m@@ -1714,7 +1471,7 @@[m [mstatic int motTreeSetIndentationAttrib(Ihandle* ih, const char* value)[m + [m + static int motTreeSetTopItemAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- Widget wItem = motTreeFindNodeFromString(ih, value);[m +[32m+[m[32m Widget wItem = iupTreeGetNodeFromString(ih, value);[m + Widget sb_win;[m + Widget wItemParent;[m + [m +[36m@@ -1735,10 +1492,11 @@[m [mstatic int motTreeSetTopItemAttrib(Ihandle* ih, const char* value)[m + return 0;[m + }[m + [m +[31m-static int motTreeSpacingFunc(Ihandle* ih, Widget wItem, void *data)[m +[32m+[m[32mstatic int motTreeSpacingFunc(Ihandle* ih, Widget wItem, int id, void *data)[m + {[m + XtVaSetValues(wItem, XmNmarginHeight, ih->data->spacing, NULL);[m + (void)data;[m +[32m+[m[32m (void)id;[m + return 1;[m + }[m + [m +[36m@@ -1752,7 +1510,7 @@[m [mstatic int motTreeSetSpacingAttrib(Ihandle* ih, const char* value)[m + [m + if (ih->handle)[m + {[m +[31m- motTreeForEach(ih, NULL, (motTreeNodeFunc)motTreeSpacingFunc, 0);[m +[32m+[m[32m iupTreeForEach(ih, (iupTreeNodeFunc)motTreeSpacingFunc, 0);[m + return 0;[m + }[m + else[m +[36m@@ -1761,17 +1519,10 @@[m [mstatic int motTreeSetSpacingAttrib(Ihandle* ih, const char* value)[m + [m + static int motTreeSetExpandAllAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m-[m + if (iupStrBoolean(value))[m +[31m- motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmEXPANDED);[m +[32m+[m[32m motTreeExpandCollapseAllNodes(ih, XmEXPANDED);[m + else[m +[31m- {[m +[31m- motTreeExpandCollapseAllNodes(ih, &wRoot, 1, XmCOLLAPSED);[m +[31m-[m +[31m- /* The root node is always expanded */[m +[31m- XtVaSetValues((Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM"), XmNoutlineState, XmEXPANDED, NULL);[m +[31m- }[m +[32m+[m[32m motTreeExpandCollapseAllNodes(ih, XmCOLLAPSED);[m + [m + return 0;[m + }[m +[36m@@ -1801,16 +1552,13 @@[m [mstatic int motTreeSetBgColorAttrib(Ihandle* ih, const char* value)[m + color = iupmotColorGetPixelStr(value);[m + if (color != (Pixel)-1)[m + {[m +[31m- Widget wRoot;[m + Widget clipwin = NULL;[m + [m + XtVaGetValues(sb_win, XmNclipWindow, &clipwin, NULL);[m + if (clipwin) iupmotSetBgColor(clipwin, color);[m + [m +[31m- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[31m- [m + /* Update all children, starting at root node */[m +[31m- motTreeUpdateBgColor(ih, &wRoot, 1, color);[m +[32m+[m[32m motTreeUpdateBgColor(ih, color);[m + }[m + [m + iupdrvBaseSetBgColorAttrib(ih, value); /* use given value for contents */[m +[36m@@ -1871,10 +1619,14 @@[m [mstatic void motTreeSetRenameSelectionPos(Widget cbEdit, const char* value)[m + [m + static int motTreeCallBranchCloseCb(Ihandle* ih, Widget wItem)[m + {[m +[31m- IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");[m +[32m+[m[32m IFni cbBranchClose;[m +[32m+[m +[32m+[m[32m if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB"))[m +[32m+[m[32m return IUP_DEFAULT;[m + [m +[31m- if(cbBranchClose)[m +[31m- return cbBranchClose(ih, motTreeGetNodeId(ih, wItem));[m +[32m+[m[32m cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");[m +[32m+[m[32m if (cbBranchClose)[m +[32m+[m[32m return cbBranchClose(ih, iupTreeFindNodeId(ih, wItem));[m + [m + return IUP_DEFAULT;[m + }[m +[36m@@ -1883,59 +1635,136 @@[m [mstatic int motTreeCallBranchOpenCb(Ihandle* ih, Widget wItem)[m + {[m + IFni cbBranchOpen;[m + [m +[31m- if (iupAttribGet(ih, "_IUP_IGNORE_BRANCHOPEN"))[m +[31m- {[m +[31m- iupAttribSetStr(ih, "_IUP_IGNORE_BRANCHOPEN", NULL);[m +[32m+[m[32m if (iupAttribGet(ih, "_IUP_IGNORE_BRANCH_CB"))[m + return IUP_DEFAULT;[m +[31m- }[m + [m + cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");[m + if (cbBranchOpen)[m +[31m- return cbBranchOpen(ih, motTreeGetNodeId(ih, wItem));[m +[32m+[m[32m return cbBranchOpen(ih, iupTreeFindNodeId(ih, wItem));[m + [m + return IUP_DEFAULT;[m + }[m + [m +[32m+[m[32mstatic void motTreeFindRange(Ihandle* ih, WidgetList wSelectedItemList, int countItems, int *id1, int *id2)[m +[32m+[m[32m{[m +[32m+[m[32m int i = 0, id;[m +[32m+[m +[32m+[m[32m *id1 = ih->data->node_count;[m +[32m+[m[32m *id2 = -1;[m +[32m+[m +[32m+[m[32m for(i = 0; i < countItems; i++)[m +[32m+[m[32m {[m +[32m+[m[32m int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */[m +[32m+[m[32m if (is_icon)[m +[32m+[m[32m {[m +[32m+[m[32m id = iupTreeFindNodeId(ih, wSelectedItemList[i]);[m +[32m+[m[32m if (id < *id1)[m +[32m+[m[32m *id1 = id;[m +[32m+[m[32m if (id > *id2)[m +[32m+[m[32m *id2 = id;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* interactive selection of several nodes will NOT select hidden nodes,[m +[32m+[m[32m so make sure that they are selected. */[m +[32m+[m[32m for(i = *id1; i <= *id2; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (!motTreeIsNodeSelected(ih->data->node_cache[i].node_handle))[m +[32m+[m[32m XtVaSetValues(ih->data->node_cache[i].node_handle, XmNvisualEmphasis, XmSELECTED, NULL);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* if last selected item is a branch, then select its children */[m +[32m+[m[32m iupTreeSelectLastCollapsedBranch(ih, id2);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic Iarray* motTreeGetSelectedArrayId(Ihandle* ih, WidgetList wSelectedItemList, int countItems)[m +[32m+[m[32m{[m +[32m+[m[32m Iarray* selarray = iupArrayCreate(1, sizeof(int));[m +[32m+[m[32m int i;[m +[32m+[m +[32m+[m[32m for(i = 0; i < countItems; i++)[m +[32m+[m[32m {[m +[32m+[m[32m int is_icon = XmIsIconGadget(wSelectedItemList[i]); /* this line generates a warning in some compilers */[m +[32m+[m[32m if (is_icon)[m +[32m+[m[32m {[m +[32m+[m[32m int* id_hitem = (int*)iupArrayInc(selarray);[m +[32m+[m[32m int j = iupArrayCount(selarray);[m +[32m+[m[32m id_hitem[j-1] = iupTreeFindNodeId(ih, wSelectedItemList[i]);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return selarray;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void motTreeCallMultiUnSelectionCb(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");[m +[32m+[m[32m IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");[m +[32m+[m[32m if (cbSelec || cbMulti)[m +[32m+[m[32m {[m +[32m+[m[32m WidgetList wSelectedItemList = NULL;[m +[32m+[m[32m int countItems = 0;[m +[32m+[m +[32m+[m[32m XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,[m +[32m+[m[32m XmNselectedObjectCount, &countItems, NULL);[m +[32m+[m[32m if (countItems > 1)[m +[32m+[m[32m {[m +[32m+[m[32m Iarray* markedArray = motTreeGetSelectedArrayId(ih, wSelectedItemList, countItems);[m +[32m+[m[32m int* id_hitem = (int*)iupArrayGetData(markedArray);[m +[32m+[m[32m int i, count = iupArrayCount(markedArray);[m +[32m+[m +[32m+[m[32m if (cbMulti)[m +[32m+[m[32m cbMulti(ih, id_hitem, iupArrayCount(markedArray));[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m for (i=0; i<count; i++)[m +[32m+[m[32m cbSelec(ih, id_hitem[i], 0);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupArrayDestroy(markedArray);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m + static void motTreeCallMultiSelectionCb(Ihandle* ih)[m + {[m + IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB");[m + IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");[m + WidgetList wSelectedItemList = NULL;[m +[31m- Widget wRoot;[m +[31m- int countItems;[m +[31m-[m +[31m- wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m +[32m+[m[32m int countItems, id1, id2, i;[m + [m + XtVaGetValues(ih->handle, XmNselectedObjects, &wSelectedItemList,[m + XmNselectedObjectCount, &countItems, NULL);[m + if (countItems == 0)[m + return;[m + [m +[31m- if (cbMulti || cbSelec)[m +[32m+[m[32m /* Must be a continuous range of selection ids */[m +[32m+[m[32m motTreeFindRange(ih, wSelectedItemList, countItems, &id1, &id2);[m +[32m+[m[32m countItems = id2-id1+1;[m +[32m+[m +[32m+[m[32m if (cbMulti)[m + {[m + int* id_rowItem = malloc(sizeof(int) * countItems);[m +[31m- int i = 0;[m + [m + for(i = 0; i < countItems; i++)[m +[31m- id_rowItem[i] = motTreeGetNodeId(ih, wSelectedItemList[i]);[m +[32m+[m[32m id_rowItem[i] = id1+i;[m + [m +[31m- if (cbMulti)[m +[31m- cbMulti(ih, id_rowItem, countItems);[m +[31m- else[m +[31m- {[m +[31m- for (i=0; i<countItems; i++)[m +[31m- cbSelec(ih, id_rowItem[i], 1);[m +[31m- }[m +[32m+[m[32m cbMulti(ih, id_rowItem, countItems);[m + [m + free(id_rowItem);[m + }[m +[32m+[m[32m else if (cbSelec)[m +[32m+[m[32m {[m +[32m+[m[32m for (i=0; i<countItems; i++)[m +[32m+[m[32m cbSelec(ih, id1+i, 1);[m +[32m+[m[32m }[m + }[m + [m + static int motTreeConvertXYToPos(Ihandle* ih, int x, int y)[m + {[m + Widget wItem = XmObjectAtPoint(ih->handle, (Position)x, (Position)y);[m + if (wItem)[m +[31m- return motTreeGetNodeId(ih, wItem);[m +[32m+[m[32m return iupTreeFindNodeId(ih, wItem);[m + return -1;[m + }[m + [m +[36m@@ -1965,7 +1794,7 @@[m [mstatic void motTreeCallRenameCb(Ihandle* ih)[m + cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");[m + if (cbRename)[m + {[m +[31m- if (cbRename(ih, motTreeGetNodeId(ih, wItem), title) == IUP_IGNORE)[m +[32m+[m[32m if (cbRename(ih, iupTreeFindNodeId(ih, wItem), title) == IUP_IGNORE)[m + ignore = 1;[m + }[m + [m +[36m@@ -1993,8 +1822,8 @@[m [mstatic int motTreeCallDragDropCb(Ihandle* ih, Widget wItemDrag, Widget wItemDrop[m + [m + if (cbDragDrop)[m + {[m +[31m- int drag_id = motTreeGetNodeId(ih, wItemDrag);[m +[31m- int drop_id = motTreeGetNodeId(ih, wItemDrop);[m +[32m+[m[32m int drag_id = iupTreeFindNodeId(ih, wItemDrag);[m +[32m+[m[32m int drop_id = iupTreeFindNodeId(ih, wItemDrop);[m + return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);[m + }[m + [m +[36m@@ -2069,6 +1898,10 @@[m [mstatic void motTreeShowEditField(Ihandle* ih, Widget wItem)[m + XmFontList fontlist;[m + Widget sb_win = (Widget)iupAttribGet(ih, "_IUP_EXTRAPARENT");[m + [m +[32m+[m[32m IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");[m +[32m+[m[32m if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, wItem))==IUP_IGNORE)[m +[32m+[m[32m return;[m +[32m+[m + XtVaGetValues(wItem, XmNx, &x, [m + XmNy, &y,[m + XmNwidth, &w, [m +[36m@@ -2083,16 +1916,16 @@[m [mstatic void motTreeShowEditField(Ihandle* ih, Widget wItem)[m + iupdrvImageGetInfo((void*)image, &w_img, NULL, NULL);[m + w_img += 3; /* add some room for borders */[m + [m +[31m- iupmotSetArg(args, num_args, XmNx, x+w_img); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, y); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, h); /* default height to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNforeground, color);[m +[31m- iupmotSetArg(args, num_args, XmNrenderTable, fontlist);[m +[31m- iupmotSetArg(args, num_args, XmNvalue, iupmotConvertString(title));[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, x+w_img); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, y); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, w-w_img); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, h); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, ih->data->spacing); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNforeground, color);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNrenderTable, fontlist);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNvalue, iupmotConvertString(title));[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + [m + cbEdit = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -2134,8 +1967,6 @@[m [mstatic void motTreeSelectionCallback(Widget w, Ihandle* ih, XmContainerSelectCal[m + (void)w;[m + (void)nptr;[m + [m +[31m-printf("SelectionCallback(%d)\n", nptr->selected_item_count);[m +[31m-[m + if (ih->data->mark_mode == ITREE_MARK_MULTIPLE)[m + {[m + char key[5];[m +[36m@@ -2149,11 +1980,13 @@[m [mprintf("SelectionCallback(%d)\n", nptr->selected_item_count);[m + {[m + if (IupGetCallback(ih, "MULTISELECTION_CB"))[m + {[m +[32m+[m[32m /* current selection same as the initial selection */[m + if (nptr->auto_selection_type==XmAUTO_NO_CHANGE)[m + motTreeCallMultiSelectionCb(ih);[m + }[m + else[m + {[m +[32m+[m[32m /* current selection is caused by button drag */[m + if (nptr->auto_selection_type==XmAUTO_MOTION)[m + motTreeCallMultiSelectionCb(ih);[m + }[m +[36m@@ -2164,14 +1997,10 @@[m [mprintf("SelectionCallback(%d)\n", nptr->selected_item_count);[m + cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");[m + if (cbSelec)[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[31m- int curpos = motTreeGetNodeId(ih, wItemFocus);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m +[32m+[m[32m int curpos = iupTreeFindNodeId(ih, wItemFocus);[m + if (is_ctrl) [m +[31m- {[m +[31m- unsigned char isSelected;[m +[31m- XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL);[m +[31m- cbSelec(ih, curpos, isSelected == XmSELECTED? 1: 0);[m +[31m- }[m +[32m+[m[32m cbSelec(ih, curpos, motTreeIsNodeSelected(wItemFocus));[m + else[m + {[m + int oldpos = iupAttribGetInt(ih, "_IUPTREE_OLDVALUE");[m +[36m@@ -2218,7 +2047,7 @@[m [mstatic void motTreeDefaultActionCallback(Widget w, Ihandle* ih, XmContainerSelec[m + {[m + IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");[m + if (cbExecuteLeaf)[m +[31m- cbExecuteLeaf(ih, motTreeGetNodeId(ih, wItem));[m +[32m+[m[32m cbExecuteLeaf(ih, iupTreeFindNodeId(ih, wItem));[m + }[m + }[m + [m +[36m@@ -2295,15 +2124,14 @@[m [mstatic void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean[m + iupmotHelpCallback(w, ih, NULL);[m + else if ((motcode == XK_Down || motcode == XK_Up) && (evt->state & ControlMask))[m + {[m +[31m- Widget wRoot = (Widget)iupAttribGet(ih, "_IUPTREE_ROOTITEM");[m + Widget wItem;[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + [m + /* Ctrl+Arrows move only focus */[m + if (motcode == XK_Down)[m +[31m- wItem = motTreeGetNextVisibleNode(ih, wRoot, wItemFocus);[m +[32m+[m[32m wItem = motTreeGetNextVisibleNode(ih, wItemFocus, 1);[m + else[m +[31m- wItem = motTreeGetPreviousVisibleNode(ih, wRoot, wItemFocus);[m +[32m+[m[32m wItem = motTreeGetPreviousVisibleNode(ih, wItemFocus, 1);[m + [m + motTreeSetFocusNode(ih, wItem);[m + *cont = False;[m +[36m@@ -2317,8 +2145,8 @@[m [mstatic void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean[m + [m + if (motcode == XK_Home)[m + wItem = wRoot;[m +[31m- else[m +[31m- wItem = motTreeGetLastVisibleNode(ih, wRoot);[m +[32m+[m[32m else /* motcode == XK_End */[m +[32m+[m[32m wItem = motTreeGetLastVisibleNode(ih);[m + [m + /* Ctrl+Arrows move only focus */[m + if (!(evt->state & ControlMask))[m +[36m@@ -2326,7 +2154,7 @@[m [mstatic void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean[m + /* Shift+Arrows select block */[m + if (evt->state & ShiftMask)[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (!wItemFocus)[m + return;[m + motTreeSelectRange(ih, wItemFocus, wItem, 1);[m +[36m@@ -2346,16 +2174,9 @@[m [mstatic void motTreeKeyPressEvent(Widget w, Ihandle *ih, XKeyEvent *evt, Boolean[m + }[m + else if(motcode == XK_space && (evt->state & ControlMask))[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (wItemFocus)[m +[31m- {[m +[31m- unsigned char isSelected;[m +[31m- XtVaGetValues(wItemFocus, XmNvisualEmphasis, &isSelected, NULL);[m +[31m- if (isSelected == XmSELECTED)[m +[31m- XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmNOT_SELECTED, NULL);[m +[31m- else[m +[31m- XtVaSetValues(wItemFocus, XmNvisualEmphasis, XmSELECTED, NULL);[m +[31m- }[m +[32m+[m[32m motTreeSelectNode(wItemFocus, -1);[m + }[m + }[m + [m +[36m@@ -2378,7 +2199,7 @@[m [mstatic void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean[m + [m + if (evt->button==Button1)[m + {[m +[31m- Widget wItemFocus = motTreeGetFocusNode(ih);[m +[32m+[m[32m Widget wItemFocus = iupdrvTreeGetFocusNode(ih);[m + static Widget wLastItem = NULL;[m + static Time last = 0;[m + int clicktwice = 0, doubleclicktime = XtGetMultiClickTime(iupmot_display);[m +[36m@@ -2395,6 +2216,11 @@[m [mstatic void motTreeButtonEvent(Widget w, Ihandle* ih, XButtonEvent* evt, Boolean[m + *cont = False;[m + }[m + wLastItem = wItemFocus;[m +[32m+[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_MULTIPLE &&[m[41m [m +[32m+[m[32m !(evt->state & ShiftMask) &&[m +[32m+[m[32m !(evt->state & ControlMask))[m +[32m+[m[32m motTreeCallMultiUnSelectionCb(ih);[m + }[m + else if (evt->button==Button3)[m + motTreeCallRightClickCb(ih, evt->x, evt->y);[m +[36m@@ -2436,21 +2262,18 @@[m [mstatic void motTreeTransferProc(Widget drop_context, XtPointer client_data, Atom[m + [m + if (motTreeCallDragDropCb(ih, wItemDrag, wItemDrop, &is_ctrl) == IUP_CONTINUE)[m + {[m +[31m- /* Copy the dragged item to the new position. */[m +[31m- Widget wNewItem = motTreeCopyNode(ih, wItemDrag, wItemDrop, is_ctrl);[m +[32m+[m[32m /* Copy or move the dragged item to the new position. */[m +[32m+[m[32m Widget wItemNew = motTreeCopyMoveNode(ih, wItemDrag, wItemDrop, is_ctrl);[m + [m +[31m- if (!is_ctrl)[m +[32m+[m[32m /* Set focus and selection */[m +[32m+[m[32m if (wItemNew)[m + {[m +[31m- /* do not delete the user data, we copy the references in CopyNode */[m +[31m- motTreeRemoveNode(ih, wItemDrag, 0);[m +[31m- }[m +[31m-[m +[31m- /* Select the dragged item */[m +[31m- XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL);[m +[31m- XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL);[m +[31m- XtVaSetValues(wNewItem, XmNvisualEmphasis, XmSELECTED, NULL);[m +[32m+[m[32m XtVaSetValues(ih->handle, XmNselectedObjects, NULL, NULL);[m +[32m+[m[32m XtVaSetValues(ih->handle, XmNselectedObjectCount, 0, NULL);[m +[32m+[m[32m XtVaSetValues(wItemNew, XmNvisualEmphasis, XmSELECTED, NULL);[m + [m +[31m- motTreeSetFocusNode(ih, wNewItem);[m +[32m+[m[32m motTreeSetFocusNode(ih, wItemNew);[m +[32m+[m[32m }[m + }[m + }[m + [m +[36m@@ -2475,8 +2298,8 @@[m [mstatic void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS[m + drop_context = drop_data->dragContext;[m + [m + /* retrieve the data targets */[m +[31m- iupmotSetArg(args, num_args, XmNexportTargets, &exportTargets);[m +[31m- iupmotSetArg(args, num_args, XmNnumExportTargets, &numExportTargets);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNexportTargets, &exportTargets);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnumExportTargets, &numExportTargets);[m + XtGetValues(drop_context, args, num_args);[m + [m + for (i = 0; i < (int)numExportTargets; i++) [m +[36m@@ -2495,17 +2318,17 @@[m [mstatic void motTreeDropProc(Widget w, XtPointer client_data, XmDropProcCallbackS[m + num_args = 0;[m + if ((!found) || (drop_data->dropAction != XmDROP) || (drop_data->operation != XmDROP_COPY && drop_data->operation != XmDROP_MOVE)) [m + {[m +[31m- iupmotSetArg(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE);[m +[31m- iupmotSetArg(args, num_args, XmNnumDropTransfers, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtransferStatus, XmTRANSFER_FAILURE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 0);[m + }[m + else [m + {[m + /* set up transfer requests for drop site */[m + transferList[0].target = atomTreeItem;[m + transferList[0].client_data = (XtPointer)wItemDrop;[m +[31m- iupmotSetArg(args, num_args, XmNdropTransfers, transferList);[m +[31m- iupmotSetArg(args, num_args, XmNnumDropTransfers, 1);[m +[31m- iupmotSetArg(args, num_args, XmNtransferProc, motTreeTransferProc);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNdropTransfers, transferList);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnumDropTransfers, 1);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtransferProc, motTreeTransferProc);[m + }[m + [m + XmDropTransferStart(drop_context, args, num_args);[m +[36m@@ -2584,23 +2407,23 @@[m [mstatic void motTreeStartDrag(Widget w, XButtonEvent* evt, String* params, Cardin[m + XmNforeground, &fg,[m + NULL);[m + [m +[31m- iupmotSetArg(args, num_args, XmNpixmap, pixmap);[m +[31m- iupmotSetArg(args, num_args, XmNmask, mask);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNpixmap, pixmap);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmask, mask);[m + drag_icon = XmCreateDragIcon(w, "drag_icon", args, num_args);[m + [m + exportList[0] = atomTreeItem;[m + [m + /* specify resources for DragContext for the transfer */[m + num_args = 0;[m +[31m- iupmotSetArg(args, num_args, XmNcursorBackground, bg);[m +[31m- iupmotSetArg(args, num_args, XmNcursorForeground, fg);[m +[31m- /* iupmotSetArg(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */[m +[31m- iupmotSetArg(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */[m +[31m- iupmotSetArg(args, num_args, XmNexportTargets, exportList);[m +[31m- iupmotSetArg(args, num_args, XmNnumExportTargets, 1);[m +[31m- iupmotSetArg(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY);[m +[31m- iupmotSetArg(args, num_args, XmNconvertProc, motTreeConvertProc);[m +[31m- iupmotSetArg(args, num_args, XmNclientData, wItemDrag);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcursorBackground, bg);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNcursorForeground, fg);[m +[32m+[m[32m /* iupMOT_SETARG(args, num_args, XmNsourcePixmapIcon, drag_icon); works, but only outside the dialog, inside disapears */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsourceCursorIcon, drag_icon); /* does not work, shows the default cursor */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNexportTargets, exportList);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnumExportTargets, 1);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNdragOperations, XmDROP_MOVE|XmDROP_COPY);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNconvertProc, motTreeConvertProc);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNclientData, wItemDrag);[m + [m + /* start the drag and register a callback to clean up when done */[m + drop_context = XmDragStart(w, (XEvent*)evt, args, num_args);[m +[36m@@ -2628,10 +2451,10 @@[m [mstatic void motTreeEnableDragDrop(Widget w)[m + XtOverrideTranslations(w, XtParseTranslationTable(dragTranslations));[m + [m + importList[0] = atomTreeItem;[m +[31m- iupmotSetArg(args, num_args, XmNimportTargets, importList);[m +[31m- iupmotSetArg(args, num_args, XmNnumImportTargets, 1);[m +[31m- iupmotSetArg(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY);[m +[31m- iupmotSetArg(args, num_args, XmNdropProc, motTreeDropProc);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNimportTargets, importList);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnumImportTargets, 1);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNdropSiteOperations, XmDROP_MOVE|XmDROP_COPY);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNdropProc, motTreeDropProc);[m + XmDropSiteUpdate(w, args, num_args);[m + [m + XtVaSetValues(XmGetXmDisplay(iupmot_display), XmNenableDragIcon, True, NULL);[m +[36m@@ -2648,13 +2471,13 @@[m [mstatic int motTreeMapMethod(Ihandle* ih)[m + /******************************/[m + /* Create the scrolled window */[m + /******************************/[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNscrollingPolicy, XmAUTOMATIC);[m +[31m- iupmotSetArg(args, num_args, XmNvisualPolicy, XmVARIABLE); [m +[31m- iupmotSetArg(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);[m +[31m- iupmotSetArg(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */[m +[31m- iupmotSetArg(args, num_args, XmNborderWidth, 0);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollingPolicy, XmAUTOMATIC);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNvisualPolicy, XmVARIABLE);[m[41m [m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNscrollBarDisplayPolicy, XmAS_NEEDED);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNspacing, 0); /* no space between scrollbars and text */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNborderWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 2);[m + [m + sb_win = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -2672,37 +2495,37 @@[m [mstatic int motTreeMapMethod(Ihandle* ih)[m + [m + num_args = 0;[m + [m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + [m +[31m- iupmotSetArg(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[31m- iupmotSetArg(args, num_args, XmNmarginWidth, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginHeight, 0); /* default padding */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmarginWidth, 0);[m + [m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m + [m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNshadowThickness, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshadowThickness, 0);[m + [m +[31m- iupmotSetArg(args, num_args, XmNlayoutType, XmOUTLINE);[m +[31m- iupmotSetArg(args, num_args, XmNentryViewType, XmSMALL_ICON);[m +[31m- iupmotSetArg(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT);[m +[31m- iupmotSetArg(args, num_args, XmNoutlineIndentation, 20);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNlayoutType, XmOUTLINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNentryViewType, XmSMALL_ICON);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNselectionPolicy, XmSINGLE_SELECT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNoutlineIndentation, 20);[m + [m + if (iupAttribGetBoolean(ih, "HIDELINES"))[m +[31m- iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmNO_LINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmNO_LINE);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNoutlineLineStyle, XmSINGLE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNoutlineLineStyle, XmSINGLE);[m + [m + if (iupAttribGetBoolean(ih, "HIDEBUTTONS"))[m +[31m- iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_ABSENT);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNoutlineButtonPolicy, XmOUTLINE_BUTTON_PRESENT);[m + [m + ih->handle = XtCreateManagedWidget([m + child_id, /* child identifier */[m +[36m@@ -2788,17 +2611,30 @@[m [mstatic int motTreeMapMethod(Ihandle* ih)[m + if (!ih->data->def_image_expanded_mask) ih->data->def_image_expanded_mask = (void*)XmUNSPECIFIED_PIXMAP;[m + }[m + [m +[31m- motTreeAddRootNode(ih);[m +[32m+[m[32m if (iupAttribGetInt(ih, "ADDROOT"))[m +[32m+[m[32m iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);[m + [m + IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)motTreeConvertXYToPos);[m + [m +[32m+[m[32m iupdrvTreeUpdateMarkMode(ih);[m +[32m+[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mstatic void motTreeUnMapMethod(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m motTreeRemoveAllNodes(ih, 0);[m +[32m+[m +[32m+[m[32m ih->data->node_count = 0;[m +[32m+[m +[32m+[m[32m iupdrvBaseUnMapMethod(ih);[m +[32m+[m[32m}[m +[32m+[m + void iupdrvTreeInitClass(Iclass* ic)[m + {[m + /* Driver Dependent Class functions */[m + ic->Map = motTreeMapMethod;[m +[32m+[m[32m ic->UnMap = motTreeUnMapMethod;[m + [m + /* Visual */[m + iupClassRegisterAttribute(ic, "BGCOLOR", NULL, motTreeSetBgColorAttrib, "TXTBGCOLOR", NULL, IUPAF_DEFAULT);[m +[36m@@ -2807,7 +2643,6 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + /* IupTree Attributes - GENERAL */[m + iupClassRegisterAttribute(ic, "EXPANDALL", NULL, motTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY||IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "INDENTATION", motTreeGetIndentationAttrib, motTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);[m +[31m- iupClassRegisterAttribute(ic, "COUNT", motTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, motTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);[m + iupClassRegisterAttribute(ic, "TOPITEM", NULL, motTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + [m +[36m@@ -2827,7 +2662,6 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttributeId(ic, "COLOR", motTreeGetColorAttrib, motTreeSetColorAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "NAME", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TITLE", motTreeGetTitleAttrib, motTreeSetTitleAttrib, IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttributeId(ic, "USERDATA", motTreeGetUserDataAttrib, motTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "CHILDCOUNT", motTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TITLEFONT", motTreeGetTitleFontAttrib, motTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);[m + [m +[36m@@ -2836,6 +2670,7 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttribute (ic, "MARK", NULL, motTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute (ic, "STARTING", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute (ic, "MARKSTART", NULL, motTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute (ic, "MARKEDNODES", motTreeGetMarkedNodesAttrib, motTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m + iupClassRegisterAttribute (ic, "VALUE", motTreeGetValueAttrib, motTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m +[36m@@ -2844,5 +2679,4 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "RENAME", NULL, motTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "MOVENODE", NULL, motTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "COPYNODE", NULL, motTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttributeId(ic, "FINDUSERDATA", motTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/mot/iupmot_val.c b/iup/src/mot/iupmot_val.c[m +[1mindex 200d2b4..ce9eba7 100755[m +[1m--- a/iup/src/mot/iupmot_val.c[m +[1m+++ b/iup/src/mot/iupmot_val.c[m +[36m@@ -383,41 +383,41 @@[m [mstatic int motValMapMethod(Ihandle* ih)[m + int show_ticks;[m + [m + /* Core */[m +[31m- iupmotSetArg(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[31m- iupmotSetArg(args, num_args, XmNx, 0); /* x-position */[m +[31m- iupmotSetArg(args, num_args, XmNy, 0); /* y-position */[m +[31m- iupmotSetArg(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[31m- iupmotSetArg(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmappedWhenManaged, False); /* not visible when managed */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNx, 0); /* x-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNy, 0); /* y-position */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNwidth, 10); /* default width to avoid 0 */[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNheight, 10); /* default height to avoid 0 */[m + /* Primitive */[m + if (iupAttribGetBoolean(ih, "CANFOCUS"))[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, True);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, True);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNtraversalOn, False);[m +[31m- iupmotSetArg(args, num_args, XmNhighlightThickness, 2);[m +[31m- iupmotSetArg(args, num_args, XmNnavigationType, XmTAB_GROUP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNtraversalOn, False);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNhighlightThickness, 2);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNnavigationType, XmTAB_GROUP);[m + /* Scale */[m +[31m- iupmotSetArg(args, num_args, XmNminimum, 0);[m +[31m- iupmotSetArg(args, num_args, XmNmaximum, SHRT_MAX);[m +[31m- iupmotSetArg(args, num_args, XmNslidingMode, XmSLIDER);[m +[31m- iupmotSetArg(args, num_args, XmNsliderMark, XmETCHED_LINE);[m +[31m- iupmotSetArg(args, num_args, XmNsliderSize, 16);[m +[31m- iupmotSetArg(args, num_args, XmNshowValue, XmNONE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNminimum, 0);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNmaximum, SHRT_MAX);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNslidingMode, XmSLIDER);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsliderMark, XmETCHED_LINE);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNsliderSize, 16);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNshowValue, XmNONE);[m + [m + if (ih->data->type == IVAL_HORIZONTAL)[m + {[m +[31m- iupmotSetArg(args, num_args, XmNorientation, XmHORIZONTAL);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNorientation, XmHORIZONTAL);[m + if (ih->data->inverted)[m +[31m- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_LEFT);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_RIGHT);[m + }[m + else[m + {[m +[31m- iupmotSetArg(args, num_args, XmNorientation, XmVERTICAL);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNorientation, XmVERTICAL);[m + if (ih->data->inverted)[m +[31m- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_TOP);[m + else[m +[31m- iupmotSetArg(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM);[m +[32m+[m[32m iupMOT_SETARG(args, num_args, XmNprocessingDirection, XmMAX_ON_BOTTOM);[m + }[m + [m + ih->handle = XtCreateManagedWidget([m +[1mdiff --git a/iup/src/mot/iupunix_info.c b/iup/src/mot/iupunix_info.c[m +[1mindex b522638..f09573c 100755[m +[1m--- a/iup/src/mot/iupunix_info.c[m +[1m+++ b/iup/src/mot/iupunix_info.c[m +[36m@@ -282,7 +282,7 @@[m [mchar *iupdrvGetSystemName(void)[m + char *iupdrvGetSystemVersion(void)[m + {[m + struct utsname un;[m +[31m- char *str = iupStrGetMemory(60); [m +[32m+[m[32m char *str = iupStrGetMemory(100);[m[41m [m + [m + uname(&un);[m + strcpy(str, un.release);[m +[1mdiff --git a/iup/src/win/iupwin_button.c b/iup/src/win/iupwin_button.c[m +[1mindex 7f780e3..3b05ba7 100755[m +[1m--- a/iup/src/win/iupwin_button.c[m +[1m+++ b/iup/src/win/iupwin_button.c[m +[36m@@ -27,6 +27,7 @@[m + #include "iupwin_drv.h"[m + #include "iupwin_handle.h"[m + #include "iupwin_draw.h"[m +[32m+[m[32m#include "iupwin_info.h"[m + [m + [m + #ifndef CDIS_SHOWKEYBOARDCUES[m +[36m@@ -308,18 +309,22 @@[m [mstatic void winButtonDrawText(Ihandle* ih, HDC hDC, int rect_width, int rect_hei[m + [m + static void winButtonDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem)[m + { [m +[32m+[m[32m HDC hDC;[m + iupwinBitmapDC bmpDC;[m + int border, draw_border;[m + int width = drawitem->rcItem.right - drawitem->rcItem.left;[m + int height = drawitem->rcItem.bottom - drawitem->rcItem.top;[m + [m +[31m- HDC hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height);[m +[32m+[m[32m hDC = iupwinDrawCreateBitmapDC(&bmpDC, drawitem->hDC, width, height);[m + [m + iupwinDrawParentBackground(ih, hDC, &drawitem->rcItem);[m + [m + if ((drawitem->itemState & ODS_FOCUS) && !(drawitem->itemState & ODS_HOTLIGHT))[m + drawitem->itemState |= ODS_DEFAULT;[m + [m +[32m+[m[32m if (iupAttribGet(ih, "_IUPWINBUT_SELECTED"))[m +[32m+[m[32m drawitem->itemState |= ODS_SELECTED;[m +[32m+[m + border = winButtonGetBorder();[m + [m + if (ih->data->type & IUP_BUTTON_IMAGE && iupAttribGet(ih, "IMPRESS") && !iupAttribGetStr(ih, "IMPRESSBORDER"))[m +[36m@@ -365,7 +370,7 @@[m [mstatic int winButtonSetImageAttrib(Ihandle* ih, const char* value)[m + (void)value;[m + if (ih->data->type != IUP_BUTTON_TEXT)[m + {[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + return 1;[m + }[m + else[m +[36m@@ -377,7 +382,7 @@[m [mstatic int winButtonSetImInactiveAttrib(Ihandle* ih, const char* value)[m + (void)value;[m + if (ih->data->type != IUP_BUTTON_TEXT)[m + {[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + return 1;[m + }[m + else[m +[36m@@ -389,7 +394,7 @@[m [mstatic int winButtonSetImPressAttrib(Ihandle* ih, const char* value)[m + (void)value;[m + if (ih->data->type != IUP_BUTTON_TEXT)[m + {[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + return 1;[m + }[m + else[m +[36m@@ -400,7 +405,7 @@[m [mstatic int winButtonSetActiveAttrib(Ihandle* ih, const char* value)[m + {[m + /* redraw IMINACTIVE image if any */[m + if (ih->data->type != IUP_BUTTON_TEXT)[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + [m + return iupBaseSetActiveAttrib(ih, value);[m + }[m +[36m@@ -425,7 +430,7 @@[m [mstatic int winButtonSetAlignmentAttrib(Ihandle* ih, const char* value)[m + else /* "ACENTER" */[m + ih->data->vert_alignment = IUP_ALIGN_ACENTER;[m + [m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + [m + return 1;[m + }[m +[36m@@ -443,7 +448,7 @@[m [mstatic int winButtonSetPaddingAttrib(Ihandle* ih, const char* value)[m + {[m + iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');[m + if (ih->handle)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + return 0;[m + }[m + [m +[36m@@ -454,7 +459,7 @@[m [mstatic int winButtonSetBgColorAttrib(Ihandle* ih, const char* value)[m + {[m + iupAttribSetStr(ih, "BGCOLOR", value);[m + iupImageUpdateParent(ih);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + return 1;[m + }[m +[36m@@ -486,7 +491,9 @@[m [mstatic int winButtonSetFgColorAttrib(Ihandle* ih, const char* value)[m + if (iupStrToRGB(value, &r, &g, &b))[m + {[m + ih->data->fgcolor = RGB(r,g,b);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + return 1;[m + }[m +[36m@@ -499,7 +506,7 @@[m [mstatic int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + {[m + /* redraw IMPRESS image if any */[m + if ((msg == WM_LBUTTONDOWN || msg == WM_LBUTTONUP) && iupAttribGet(ih, "IMPRESS"))[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + [m + switch (msg)[m +[36m@@ -514,6 +521,13 @@[m [mstatic int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + case WM_RBUTTONDOWN:[m + {[m + iupwinButtonDown(ih, msg, wp, lp);[m +[32m+[m +[32m+[m[32m /* Feedback will NOT be done when not receiving the focus */[m +[32m+[m[32m if (msg==WM_LBUTTONDOWN && !iupAttribGetBoolean(ih, "FOCUSONCLICK"))[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", "1");[m +[32m+[m[32m iupdrvRedrawNow(ih);[m +[32m+[m[32m }[m + break;[m + }[m + case WM_XBUTTONUP:[m +[36m@@ -526,11 +540,24 @@[m [mstatic int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + /* BN_CLICKED will NOT be notified when not receiving the focus */[m + if (msg==WM_LBUTTONUP && !iupAttribGetBoolean(ih, "FOCUSONCLICK"))[m + {[m +[31m- Icallback cb = IupGetCallback(ih, "ACTION");[m +[32m+[m[32m Icallback cb;[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m +[32m+[m +[32m+[m[32m cb = IupGetCallback(ih, "ACTION");[m + if (cb && cb(ih) == IUP_CLOSE)[m + IupExitLoop();[m + }[m + [m +[32m+[m[32m if (!iupwinIsVistaOrNew())[m +[32m+[m[32m {[m +[32m+[m[32m /* TIPs desapear forever after a button click in XP,[m +[32m+[m[32m so we force an update. */[m +[32m+[m[32m char* tip = iupAttribGet(ih, "TIP");[m +[32m+[m[32m if (tip)[m +[32m+[m[32m iupdrvBaseSetTipAttrib(ih, tip);[m +[32m+[m[32m }[m + break;[m + }[m + case WM_KEYDOWN:[m +[36m@@ -549,7 +576,12 @@[m [mstatic int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + if (!iupwin_comctl32ver6)[m + {[m + iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", NULL);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m +[32m+[m[32m }[m +[32m+[m[32m if (!iupAttribGetBoolean(ih, "FOCUSONCLICK"))[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWINBUT_SELECTED", NULL);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + break;[m + case WM_MOUSEMOVE:[m +[36m@@ -558,7 +590,7 @@[m [mstatic int winButtonProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + if (!iupAttribGet(ih, "_IUPWINBUT_ENTERWIN"))[m + {[m + iupAttribSetStr(ih, "_IUPWINBUT_ENTERWIN", "1");[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + }[m + break;[m +[36m@@ -635,7 +667,7 @@[m [mstatic int winButtonWmCommand(Ihandle* ih, WPARAM wp, LPARAM lp)[m + static int winButtonMapMethod(Ihandle* ih)[m + {[m + char* value;[m +[31m- DWORD dwStyle = WS_CHILD | [m +[32m+[m[32m DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |[m + BS_NOTIFY; /* necessary because of the base messages */[m + [m + if (!ih->parent)[m +[36m@@ -661,7 +693,7 @@[m [mstatic int winButtonMapMethod(Ihandle* ih)[m + ih->data->type = IUP_BUTTON_IMAGE;[m + [m + value = iupAttribGet(ih, "TITLE");[m +[31m- if (value)[m +[32m+[m[32m if (value && *value!=0)[m + ih->data->type |= IUP_BUTTON_TEXT;[m + }[m + else[m +[1mdiff --git a/iup/src/win/iupwin_canvas.c b/iup/src/win/iupwin_canvas.c[m +[1mindex bb88b8a..b865160 100755[m +[1m--- a/iup/src/win/iupwin_canvas.c[m +[1m+++ b/iup/src/win/iupwin_canvas.c[m +[36m@@ -45,7 +45,7 @@[m [mstatic void winCanvasSetScrollInfo(HWND hWnd, int imin, int imax, int ipos, int[m + static int winCanvasSetBgColorAttrib(Ihandle *ih, const char *value)[m + {[m + (void)value;[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + return 1;[m + }[m + [m +[36m@@ -220,7 +220,7 @@[m [mstatic void winCanvasUpdateHorScroll(Ihandle* ih, WORD winop)[m + xmax = iupAttribGetFloat(ih,"XMAX");[m + xmin = iupAttribGetFloat(ih,"XMIN");[m + [m +[31m- winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK? 1: 0);[m +[32m+[m[32m winCanvasGetScrollInfo(ih->handle, &iposx, &ipagex, SB_HORZ, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0);[m + [m + if (!iupAttribGet(ih,"LINEX"))[m + {[m +[36m@@ -296,7 +296,7 @@[m [mstatic void winCanvasUpdateVerScroll(Ihandle* ih, WORD winop)[m + ymax = iupAttribGetFloat(ih,"YMAX");[m + ymin = iupAttribGetFloat(ih,"YMIN");[m + [m +[31m- winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK? 1: 0);[m +[32m+[m[32m winCanvasGetScrollInfo(ih->handle, &iposy, &ipagey, SB_VERT, winop==SB_THUMBTRACK||winop==SB_THUMBPOSITION? 1: 0);[m + [m + if (!iupAttribGet(ih, "LINEY"))[m + {[m +[36m@@ -372,6 +372,10 @@[m [mstatic int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + GetClientRect(ih->handle, &rect); [m + FillRect(hdc, &rect, iupwinBrushGet(color)); [m + }[m +[32m+[m[32m else[m +[32m+[m[32m InvalidateRect(ih->handle,NULL,FALSE); /* This will invalidate all area.[m[41m [m +[32m+[m[32m Necessary in XP, or overlapping windows will have the effect of partial redrawing. */[m +[32m+[m + /* always return non zero value */[m + *result = 1;[m + return 1; [m +[36m@@ -382,7 +386,7 @@[m [mstatic int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + {[m + PAINTSTRUCT ps;[m + HDC hdc = BeginPaint(ih->handle, &ps);[m +[31m- iupAttribSetStr(ih, "HDC_WMPAINT", (char*)&hdc);[m +[32m+[m[32m iupAttribSetStr(ih, "HDC_WMPAINT", (char*)hdc);[m + iupAttribSetStrf(ih, "CLIPRECT", "%d %d %d %d", ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right-ps.rcPaint.left, ps.rcPaint.bottom-ps.rcPaint.top);[m + [m + cb(ih, ih->data->posx, ih->data->posy);[m +[36m@@ -542,27 +546,13 @@[m [mstatic int winCanvasProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *r[m + return iupwinBaseProc(ih, msg, wp, lp, result);[m + }[m + [m +[31m-static void winCanvasRegisterClass(void)[m +[31m-{[m +[31m- WNDCLASS wndclass;[m +[31m- ZeroMemory(&wndclass, sizeof(WNDCLASS));[m +[31m- [m +[31m- wndclass.hInstance = iupwin_hinstance;[m +[31m- wndclass.lpszClassName = "IupCanvas";[m +[31m- wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc;[m +[31m- wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);[m +[31m- wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */[m +[31m- wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */[m +[31m- [m +[31m- RegisterClass(&wndclass);[m +[31m-}[m +[31m-[m + static int winCanvasMapMethod(Ihandle* ih)[m + {[m + CLIENTCREATESTRUCT clientstruct;[m + void *clientdata = NULL;[m + char *classname;[m +[31m- DWORD dwStyle = WS_CHILD, dwExStyle = 0;[m +[32m+[m[32m DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,[m[41m [m +[32m+[m[32m dwExStyle = 0;[m + [m + if (!ih->parent)[m + return IUP_ERROR;[m +[36m@@ -574,14 +564,7 @@[m [mstatic int winCanvasMapMethod(Ihandle* ih)[m + }[m + [m + if (ih->firstchild) /* can be a container */[m +[31m- {[m +[31m- dwStyle |= WS_CLIPSIBLINGS;[m +[31m-[m +[31m- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))[m +[31m- dwExStyle |= WS_EX_COMPOSITED;[m +[31m- else[m +[31m- dwStyle |= WS_CLIPCHILDREN;[m +[31m- }[m +[32m+[m[32m iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);[m + [m + if (iupAttribGetBoolean(ih, "MDICLIENT")) [m + {[m +[36m@@ -693,6 +676,21 @@[m [mstatic void winCanvasReleaseMethod(Iclass* ic)[m + UnregisterClass("IupCanvas", iupwin_hinstance);[m + }[m + [m +[32m+[m[32mstatic void winCanvasRegisterClass(void)[m +[32m+[m[32m{[m +[32m+[m[32m WNDCLASS wndclass;[m +[32m+[m[32m ZeroMemory(&wndclass, sizeof(WNDCLASS));[m +[32m+[m[41m [m +[32m+[m[32m wndclass.hInstance = iupwin_hinstance;[m +[32m+[m[32m wndclass.lpszClassName = "IupCanvas";[m +[32m+[m[32m wndclass.lpfnWndProc = (WNDPROC)iupwinBaseWinProc;[m +[32m+[m[32m wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);[m +[32m+[m[32m wndclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; /* using CS_OWNDC will minimize the work of cdActivate in the CD library */[m +[32m+[m[32m wndclass.hbrBackground = NULL; /* remove the background to optimize redraw */[m +[32m+[m[41m [m +[32m+[m[32m RegisterClass(&wndclass);[m +[32m+[m[32m}[m +[32m+[m + void iupdrvCanvasInitClass(Iclass* ic)[m + {[m + if (!iupwinClassExist("IupCanvas"))[m +[1mdiff --git a/iup/src/win/iupwin_common.c b/iup/src/win/iupwin_common.c[m +[1mindex a1a7c0f..ba68b78 100755[m +[1m--- a/iup/src/win/iupwin_common.c[m +[1m+++ b/iup/src/win/iupwin_common.c[m +[36m@@ -94,16 +94,17 @@[m [mvoid iupdrvBaseLayoutUpdateMethod(Ihandle *ih)[m + SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOOWNERZORDER);[m + }[m + [m +[31m-void iupdrvDisplayRedraw(Ihandle *ih)[m +[32m+[m[32mvoid iupdrvRedrawNow(Ihandle *ih)[m + {[m + /* REDRAW Now */[m +[31m- RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN|RDW_UPDATENOW);[m +[32m+[m[32m RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_UPDATENOW);[m + }[m + [m +[31m-void iupdrvDisplayUpdate(Ihandle *ih)[m +[32m+[m[32mvoid iupdrvPostRedraw(Ihandle *ih)[m + {[m + /* Post a REDRAW */[m +[31m- RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT|RDW_NOCHILDREN);[m +[32m+[m[32m /* can NOT use RDW_NOCHILDREN because IupList has internal children that needs to be redraw */[m +[32m+[m[32m RedrawWindow(ih->handle,NULL,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_INTERNALPAINT);[m[41m [m + }[m + [m + void iupdrvScreenToClient(Ihandle* ih, int *x, int *y)[m +[36m@@ -534,6 +535,8 @@[m [mint iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value)[m + [m + void iupdrvSetVisible(Ihandle* ih, int visible)[m + {[m +[32m+[m[32m if (iupStrEqual(ih->iclass->name, "colorbar"))[m +[32m+[m[32m ih=ih;[m + ShowWindow(ih->handle, visible? SW_SHOWNORMAL: SW_HIDE);[m + }[m + [m +[36m@@ -618,6 +621,18 @@[m [mchar* iupdrvBaseGetClientSizeAttrib(Ihandle* ih)[m + #define IDC_HELP MAKEINTRESOURCE(32651)[m + #endif[m + [m +[32m+[m[32mstatic HCURSOR winLoadComCtlCursor(LPCTSTR lpCursorName)[m +[32m+[m[32m{[m +[32m+[m[32m HCURSOR cur = NULL;[m +[32m+[m[32m HINSTANCE hinstDll = LoadLibrary("comctl32.dll");[m +[32m+[m[32m if (hinstDll)[m +[32m+[m[32m {[m +[32m+[m[32m cur = LoadCursor(hinstDll, lpCursorName);[m +[32m+[m[32m FreeLibrary(hinstDll);[m +[32m+[m[32m }[m +[32m+[m[32m return cur;[m +[32m+[m[32m}[m +[32m+[m + static HCURSOR winGetCursor(Ihandle* ih, const char* name)[m + {[m + static struct {[m +[36m@@ -649,7 +664,7 @@[m [mstatic HCURSOR winGetCursor(Ihandle* ih, const char* name)[m + {"APPSTARTING", IDC_APPSTARTING}[m + };[m + [m +[31m- HCURSOR cur;[m +[32m+[m[32m HCURSOR cur = NULL;[m + char str[50];[m + int i, count = sizeof(table)/sizeof(table[0]);[m + [m +[36m@@ -676,14 +691,22 @@[m [mstatic HCURSOR winGetCursor(Ihandle* ih, const char* name)[m + if (i == count)[m + {[m + /* check other system cursors */[m +[31m- /* cursor PEN is handled here */[m +[32m+[m + if (iupStrEqualNoCase(name, "PEN"))[m +[31m- name = "CURSOR_PEN";[m +[32m+[m[32m name = "CURSOR_PEN"; /* name in "iup.rc" */[m + [m + /* check for an name defined cursor */[m + cur = iupImageGetCursor(name);[m + }[m + [m +[32m+[m[32m if (!cur)[m +[32m+[m[32m {[m +[32m+[m[32m if (iupStrEqualNoCase(name, "SPLITTER_VERT"))[m +[32m+[m[32m cur = winLoadComCtlCursor(MAKEINTRESOURCE(107));[m +[32m+[m[32m else if (iupStrEqualNoCase(name, "SPLITTER_HORIZ"))[m +[32m+[m[32m cur = winLoadComCtlCursor(MAKEINTRESOURCE(135));[m +[32m+[m[32m }[m +[32m+[m + iupAttribSetStr(ih, str, (char*)cur);[m + return cur;[m + }[m +[36m@@ -758,29 +781,29 @@[m [mint iupwinButtonUp(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp)[m + if (msg==WM_LBUTTONUP)[m + {[m + b = IUP_BUTTON1;[m +[31m- iupKEYSETBUTTON1(status); [m +[32m+[m[32m iupKEY_SETBUTTON1(status);[m[41m [m + }[m + else if (msg==WM_MBUTTONUP)[m + {[m + b = IUP_BUTTON2;[m +[31m- iupKEYSETBUTTON2(status);[m +[32m+[m[32m iupKEY_SETBUTTON2(status);[m + }[m + else if (msg==WM_RBUTTONUP)[m + {[m + b = IUP_BUTTON3;[m +[31m- iupKEYSETBUTTON3(status);[m +[32m+[m[32m iupKEY_SETBUTTON3(status);[m + }[m + else if (msg==WM_XBUTTONUP)[m + {[m + if (HIWORD(wp) == XBUTTON1)[m + {[m + b = IUP_BUTTON4;[m +[31m- iupKEYSETBUTTON4(status);[m +[32m+[m[32m iupKEY_SETBUTTON4(status);[m + }[m + else[m + {[m + b = IUP_BUTTON5;[m +[31m- iupKEYSETBUTTON5(status);[m +[32m+[m[32m iupKEY_SETBUTTON5(status);[m + }[m + }[m + [m +[36m@@ -807,6 +830,14 @@[m [mint iupwinMouseMove(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp)[m + return 0;[m + }[m + [m +[32m+[m[32mvoid iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle)[m +[32m+[m[32m{[m +[32m+[m[32m *dwStyle |= WS_CLIPCHILDREN;[m +[32m+[m +[32m+[m[32m if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))[m +[32m+[m[32m *dwExStyle |= WS_EX_COMPOSITED;[m +[32m+[m[32m}[m +[32m+[m + int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle)[m + {[m + ih->serial = iupDialogGetChildId(ih);[m +[1mdiff --git a/iup/src/win/iupwin_dialog.c b/iup/src/win/iupwin_dialog.c[m +[1mindex 39fdc0c..c13b88d 100755[m +[1m--- a/iup/src/win/iupwin_dialog.c[m +[1m+++ b/iup/src/win/iupwin_dialog.c[m +[36m@@ -102,9 +102,9 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + else[m + {[m + int has_titlebar = iupAttribGetBoolean(ih, "MAXBOX") ||[m +[31m- iupAttribGetBoolean(ih, "MINBOX") ||[m +[31m- iupAttribGetBoolean(ih, "MENUBOX") || [m +[31m- IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */[m +[32m+[m[32m iupAttribGetBoolean(ih, "MINBOX") ||[m +[32m+[m[32m iupAttribGetBoolean(ih, "MENUBOX") ||[m[41m [m +[32m+[m[32m IupGetAttribute(ih, "TITLE"); /* must use IupGetAttribute to check from the native implementation */[m + [m + *caption = 0;[m + if (has_titlebar)[m +[36m@@ -118,14 +118,17 @@[m [mvoid iupdrvDialogGetDecoration(Ihandle* ih, int *border, int *caption, int *menu[m + *border = 0;[m + if (iupAttribGetBoolean(ih, "RESIZE"))[m + {[m +[32m+[m[32m /* has_border */[m + *border = GetSystemMetrics(SM_CXFRAME); /* Thickness of the sizing border around the perimeter of a window */[m + } /* that can be resized, in pixels. */[m + else if (has_titlebar)[m + {[m +[32m+[m[32m /* has_border */[m + *border = GetSystemMetrics(SM_CXFIXEDFRAME); /* Thickness of the frame around the perimeter of a window */[m + } /* that has a caption but is not sizable, in pixels. */[m + else if (iupAttribGetBoolean(ih, "BORDER"))[m + {[m +[32m+[m[32m /* has_border */[m + *border = GetSystemMetrics(SM_CXBORDER);[m + }[m + }[m +[36m@@ -712,28 +715,27 @@[m [mstatic int winDialogMapMethod(Ihandle* ih)[m + }[m + [m + if (iupAttribGetBoolean(ih, "RESIZE"))[m +[32m+[m[32m {[m + dwStyle |= WS_THICKFRAME;[m +[32m+[m[32m has_border = 1;[m +[32m+[m[32m }[m + else[m + iupAttribSetStr(ih, "MAXBOX", "NO"); /* Must also remove this to RESIZE=NO work */[m +[31m-[m + if (iupAttribGetBoolean(ih, "MAXBOX"))[m + {[m + dwStyle |= WS_MAXIMIZEBOX;[m + has_titlebar = 1;[m + }[m +[31m-[m + if (iupAttribGetBoolean(ih, "MINBOX"))[m + {[m + dwStyle |= WS_MINIMIZEBOX;[m + has_titlebar = 1;[m + }[m +[31m-[m + if (iupAttribGetBoolean(ih, "MENUBOX"))[m + {[m + dwStyle |= WS_SYSMENU;[m + has_titlebar = 1;[m + }[m +[31m-[m + if (iupAttribGetBoolean(ih, "BORDER") || has_titlebar)[m + has_border = 1;[m + [m +[36m@@ -815,10 +817,7 @@[m [mstatic int winDialogMapMethod(Ihandle* ih)[m + if (iupAttribGetBoolean(ih, "DIALOGFRAME") && native_parent)[m + dwExStyle |= WS_EX_DLGMODALFRAME; /* this will hide the MENUBOX but not the close button */[m + [m +[31m- if (iupAttribGetBoolean(ih, "COMPOSITED"))[m +[31m- dwExStyle |= WS_EX_COMPOSITED;[m +[31m- else[m +[31m- dwStyle |= WS_CLIPCHILDREN;[m +[32m+[m[32m iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);[m + [m + if (iupAttribGetBoolean(ih, "HELPBUTTON"))[m + dwExStyle |= WS_EX_CONTEXTHELP;[m +[36m@@ -878,7 +877,6 @@[m [mstatic int winDialogMapMethod(Ihandle* ih)[m + /* Reset attributes handled during creation that */[m + /* also can be changed later, and can be consulted from the native system. */[m + iupAttribSetStr(ih, "TITLE", NULL); [m +[31m- iupAttribSetStr(ih, "BORDER", NULL);[m + [m + /* Ignore VISIBLE before mapping */[m + iupAttribSetStr(ih, "VISIBLE", NULL);[m +[36m@@ -956,7 +954,7 @@[m [mstatic int winDialogSetBgColorAttrib(Ihandle* ih, const char* value)[m + {[m + iupAttribStoreStr(ih, "_IUPWIN_BACKGROUND_COLOR", value);[m + iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", NULL);[m +[31m- RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */[m +[32m+[m[32m RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */[m + return 1;[m + }[m + return 0;[m +[36m@@ -973,7 +971,7 @@[m [mstatic int winDialogSetBackgroundAttrib(Ihandle* ih, const char* value)[m + {[m + iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_COLOR", NULL);[m + iupAttribSetStr(ih, "_IUPWIN_BACKGROUND_BITMAP", (char*)hBitmap);[m +[31m- RedrawWindow(ih->handle, NULL, NULL, RDW_ERASE|RDW_ERASENOW); /* force a WM_ERASEBKGND now */[m +[32m+[m[32m RedrawWindow(ih->handle, NULL, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN); /* post WM_ERASEBKGND and WM_PAINT */[m + return 1;[m + }[m + }[m +[1mdiff --git a/iup/src/win/iupwin_draw.c b/iup/src/win/iupwin_draw.c[m +[1mindex 4a810e6..f663d20 100755[m +[1m--- a/iup/src/win/iupwin_draw.c[m +[1m+++ b/iup/src/win/iupwin_draw.c[m +[36m@@ -14,12 +14,16 @@[m + #include <stdio.h>[m + #include <string.h>[m + #include <memory.h>[m +[32m+[m[32m#include <math.h>[m + [m + #include "iup.h"[m + [m + #include "iup_attrib.h"[m + #include "iup_class.h"[m + #include "iup_str.h"[m +[32m+[m[32m#include "iup_object.h"[m +[32m+[m[32m#include "iup_image.h"[m +[32m+[m[32m#include "iup_draw.h"[m + [m + #include "iupwin_drv.h"[m + #include "iupwin_info.h"[m +[36m@@ -38,6 +42,11 @@[m + #endif[m + [m + [m +[32m+[m[32m/******************************************************************************[m +[32m+[m[32m Themes[m +[32m+[m[32m*******************************************************************************/[m +[32m+[m +[32m+[m + typedef HTHEME (STDAPICALLTYPE *_winThemeOpenData)(HWND hwnd, LPCWSTR pszClassList);[m + typedef HRESULT (STDAPICALLTYPE *_winThemeCloseData)(HTHEME hTheme);[m + typedef HRESULT (STDAPICALLTYPE *_winThemeDrawBackground)(HTHEME hTheme, HDC hDC, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect);[m +[36m@@ -61,58 +70,6 @@[m [mstatic int winDrawThemeEnabled(void)[m + return winThemeOpenData? 1: 0;[m + }[m + [m +[31m-void iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style)[m +[31m-{[m +[31m- COLORREF oldcolor;[m +[31m- RECT rect;[m +[31m- HFONT hOldFont = SelectObject(hDC, hFont);[m +[31m-[m +[31m- rect.left = x;[m +[31m- rect.top = y;[m +[31m- rect.right = x+width;[m +[31m- rect.bottom = y+height;[m +[31m-[m +[31m- SetTextAlign(hDC, TA_TOP|TA_LEFT);[m +[31m- SetBkMode(hDC, TRANSPARENT);[m +[31m- oldcolor = SetTextColor(hDC, fgcolor);[m +[31m-[m +[31m- DrawText(hDC, text, -1, &rect, style|DT_NOCLIP);[m +[31m-[m +[31m- SelectObject(hDC, hOldFont);[m +[31m- SetTextColor(hDC, oldcolor);[m +[31m- SetBkMode(hDC, OPAQUE);[m +[31m-}[m +[31m-[m +[31m-void iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp)[m +[31m-{[m +[31m- HDC hMemDC = CreateCompatibleDC(hDC);[m +[31m- SelectObject(hMemDC, hBitmap);[m +[31m-[m +[31m- if (bpp == 32 && winAlphaBlend)[m +[31m- {[m +[31m- BLENDFUNCTION blendfunc;[m +[31m- blendfunc.BlendOp = AC_SRC_OVER;[m +[31m- blendfunc.BlendFlags = 0;[m +[31m- blendfunc.SourceConstantAlpha = 0xFF;[m +[31m- blendfunc.AlphaFormat = AC_SRC_ALPHA;[m +[31m-[m +[31m- winAlphaBlend(hDC, x, y, width, height, [m +[31m- hMemDC, 0, 0, width, height, [m +[31m- blendfunc);[m +[31m- }[m +[31m- else if (bpp == 8 && hMask)[m +[31m- MaskBlt(hDC, x, y, width, height, [m +[31m- hMemDC, 0, 0, [m +[31m- hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000));[m +[31m- else[m +[31m- BitBlt(hDC, x, y, width, height, [m +[31m- hMemDC, 0, 0, [m +[31m- SRCCOPY);[m +[31m-[m +[31m-[m +[31m- DeleteDC(hMemDC);[m +[31m-}[m +[31m-[m + void iupwinDrawInit(void)[m + {[m + if (!winAlphaBlend)[m +[36m@@ -201,7 +158,7 @@[m [mint iupwinDrawGetThemeTabsBgColor(HWND hWnd, COLORREF *color)[m + if (!hTheme) [m + return 0;[m + [m +[31m- if (iupwinIsVista())[m +[32m+[m[32m if (iupwinIsVistaOrNew())[m + ret = winThemeGetColor(hTheme, TABP_AEROWIZARDBODY, TIS_NORMAL, TMT_FILLCOLORHINT, color);[m + else[m + ret = winThemeGetColor(hTheme, TABP_BODY, TIS_NORMAL, TMT_FILLCOLORHINT, color);[m +[36m@@ -246,6 +203,79 @@[m [mint iupwinDrawGetThemeFrameFgColor(HWND hWnd, COLORREF *color)[m + return (ret == S_OK)? 1: 0;[m + }[m + [m +[32m+[m[32mvoid iupwinDrawRemoveTheme(HWND hwnd)[m +[32m+[m[32m{[m +[32m+[m[32m typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);[m +[32m+[m[32m static winSetWindowTheme mySetWindowTheme = NULL;[m +[32m+[m[32m if (!mySetWindowTheme)[m +[32m+[m[32m {[m +[32m+[m[32m HMODULE hinstDll = LoadLibrary("uxtheme.dll");[m +[32m+[m[32m if (hinstDll)[m +[32m+[m[32m mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme");[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m if (mySetWindowTheme)[m +[32m+[m[32m mySetWindowTheme(hwnd, L"", L"");[m +[32m+[m[32m}[m +[32m+[m +[32m+[m +[32m+[m[32m/******************************************************************************[m +[32m+[m[32m Utilities[m +[32m+[m[32m*******************************************************************************/[m +[32m+[m +[32m+[m +[32m+[m[32mvoid iupwinDrawText(HDC hDC, const char* text, int x, int y, int width, int height, HFONT hFont, COLORREF fgcolor, int style)[m +[32m+[m[32m{[m +[32m+[m[32m COLORREF oldcolor;[m +[32m+[m[32m RECT rect;[m +[32m+[m[32m HFONT hOldFont = SelectObject(hDC, hFont);[m +[32m+[m +[32m+[m[32m rect.left = x;[m +[32m+[m[32m rect.top = y;[m +[32m+[m[32m rect.right = x+width;[m +[32m+[m[32m rect.bottom = y+height;[m +[32m+[m +[32m+[m[32m SetTextAlign(hDC, TA_TOP|TA_LEFT);[m +[32m+[m[32m SetBkMode(hDC, TRANSPARENT);[m +[32m+[m[32m oldcolor = SetTextColor(hDC, fgcolor);[m +[32m+[m +[32m+[m[32m DrawText(hDC, text, -1, &rect, style|DT_NOCLIP);[m +[32m+[m +[32m+[m[32m SelectObject(hDC, hOldFont);[m +[32m+[m[32m SetTextColor(hDC, oldcolor);[m +[32m+[m[32m SetBkMode(hDC, OPAQUE);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupwinDrawBitmap(HDC hDC, HBITMAP hBitmap, HBITMAP hMask, int x, int y, int width, int height, int bpp)[m +[32m+[m[32m{[m +[32m+[m[32m HDC hMemDC = CreateCompatibleDC(hDC);[m +[32m+[m[32m SelectObject(hMemDC, hBitmap);[m +[32m+[m +[32m+[m[32m if (bpp == 32 && winAlphaBlend)[m +[32m+[m[32m {[m +[32m+[m[32m BLENDFUNCTION blendfunc;[m +[32m+[m[32m blendfunc.BlendOp = AC_SRC_OVER;[m +[32m+[m[32m blendfunc.BlendFlags = 0;[m +[32m+[m[32m blendfunc.SourceConstantAlpha = 0xFF;[m +[32m+[m[32m blendfunc.AlphaFormat = AC_SRC_ALPHA;[m +[32m+[m +[32m+[m[32m winAlphaBlend(hDC, x, y, width, height,[m[41m [m +[32m+[m[32m hMemDC, 0, 0, width, height,[m[41m [m +[32m+[m[32m blendfunc);[m +[32m+[m[32m }[m +[32m+[m[32m else if (bpp == 8 && hMask)[m +[32m+[m[32m MaskBlt(hDC, x, y, width, height,[m[41m [m +[32m+[m[32m hMemDC, 0, 0,[m[41m [m +[32m+[m[32m hMask, 0, 0, MAKEROP4(SRCCOPY, 0xAA0000));[m +[32m+[m[32m else[m +[32m+[m[32m BitBlt(hDC, x, y, width, height,[m[41m [m +[32m+[m[32m hMemDC, 0, 0,[m[41m [m +[32m+[m[32m SRCCOPY);[m +[32m+[m +[32m+[m +[32m+[m[32m DeleteDC(hMemDC);[m +[32m+[m[32m}[m +[32m+[m + static int winDrawGetStateId(int itemState)[m + {[m + if (itemState & ODS_DISABLED)[m +[36m@@ -282,21 +312,6 @@[m [mvoid iupdrvDrawFocusRect(Ihandle* ih, void* gc, int x, int y, int w, int h)[m + DrawFocusRect(hDC, &rect);[m + }[m + [m +[31m-void iupwinDrawRemoveTheme(HWND hwnd)[m +[31m-{[m +[31m- typedef HRESULT (STDAPICALLTYPE *winSetWindowTheme)(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList);[m +[31m- static winSetWindowTheme mySetWindowTheme = NULL;[m +[31m- if (!mySetWindowTheme)[m +[31m- {[m +[31m- HMODULE hinstDll = LoadLibrary("uxtheme.dll");[m +[31m- if (hinstDll)[m +[31m- mySetWindowTheme = (winSetWindowTheme)GetProcAddress(hinstDll, "SetWindowTheme");[m +[31m- }[m +[31m-[m +[31m- if (mySetWindowTheme)[m +[31m- mySetWindowTheme(hwnd, L"", L"");[m +[31m-}[m +[31m-[m + void iupwinDrawParentBackground(Ihandle* ih, HDC hDC, RECT* rect)[m + {[m + unsigned char r=0, g=0, b=0;[m +[36m@@ -326,3 +341,226 @@[m [mvoid iupwinDrawDestroyBitmapDC(iupwinBitmapDC *bmpDC)[m + DeleteDC(bmpDC->hBitmapDC);[m + }[m + [m +[32m+[m +[32m+[m[32m/******************************************************************************[m +[32m+[m[32m Simple Draw[m +[32m+[m[32m*******************************************************************************/[m +[32m+[m +[32m+[m[32mstruct _IdrawCanvas{[m +[32m+[m[32m Ihandle* ih;[m +[32m+[m[32m int w, h;[m +[32m+[m +[32m+[m[32m int release_dc;[m +[32m+[m[32m HBITMAP hBitmap, hOldBitmap;[m +[32m+[m[32m HDC hBitmapDC, hDC;[m +[32m+[m[32m};[m +[32m+[m +[32m+[m[32mIdrawCanvas* iupDrawCreateCanvas(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m IdrawCanvas* dc = calloc(1, sizeof(IdrawCanvas));[m +[32m+[m[32m RECT rect;[m +[32m+[m +[32m+[m[32m /* valid only inside the ACTION callback of an IupCanvas */[m +[32m+[m[32m dc->hDC = (HDC)IupGetAttribute(ih, "HDC_WMPAINT");[m +[32m+[m[32m if (!dc->hDC)[m +[32m+[m[32m {[m +[32m+[m[32m dc->hDC = GetDC(ih->handle);[m +[32m+[m[32m dc->release_dc = 1;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m GetClientRect(ih->handle, &rect);[m +[32m+[m[32m dc->w = rect.right - rect.left;[m +[32m+[m[32m dc->h = rect.bottom - rect.top;[m +[32m+[m +[32m+[m[32m dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h);[m +[32m+[m[32m dc->hBitmapDC = CreateCompatibleDC(dc->hDC);[m +[32m+[m[32m dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap);[m +[32m+[m +[32m+[m[32m SetBkMode(dc->hBitmapDC, TRANSPARENT);[m +[32m+[m[32m SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT);[m +[32m+[m +[32m+[m[32m return dc;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawKillCanvas(IdrawCanvas* dc)[m +[32m+[m[32m{[m +[32m+[m[32m SelectObject(dc->hBitmapDC, dc->hOldBitmap);[m +[32m+[m[32m DeleteObject(dc->hBitmap);[m +[32m+[m[32m DeleteDC(dc->hBitmapDC);[m +[32m+[m[32m if (dc->release_dc)[m +[32m+[m[32m DeleteDC(dc->hDC);[m +[32m+[m +[32m+[m[32m free(dc);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawUpdateSize(IdrawCanvas* dc)[m +[32m+[m[32m{[m +[32m+[m[32m int w, h;[m +[32m+[m[32m RECT rect;[m +[32m+[m[32m GetClientRect(dc->ih->handle, &rect);[m +[32m+[m[32m w = rect.right - rect.left;[m +[32m+[m[32m h = rect.bottom - rect.top;[m +[32m+[m +[32m+[m[32m if (w != dc->w || h != dc->h)[m +[32m+[m[32m {[m +[32m+[m[32m SelectObject(dc->hBitmapDC, dc->hOldBitmap);[m +[32m+[m[32m DeleteObject(dc->hBitmap);[m +[32m+[m[32m DeleteDC(dc->hBitmapDC);[m +[32m+[m +[32m+[m[32m dc->hBitmap = CreateCompatibleBitmap(dc->hDC, dc->w, dc->h);[m +[32m+[m[32m dc->hBitmapDC = CreateCompatibleDC(dc->hDC);[m +[32m+[m[32m dc->hOldBitmap = SelectObject(dc->hBitmapDC, dc->hBitmap);[m +[32m+[m +[32m+[m[32m SetBkMode(dc->hBitmapDC, TRANSPARENT);[m +[32m+[m[32m SetTextAlign(dc->hBitmapDC, TA_TOP|TA_LEFT);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawFlush(IdrawCanvas* dc)[m +[32m+[m[32m{[m +[32m+[m[32m BitBlt(dc->hDC, 0, 0, dc->w, dc->h, dc->hBitmapDC, 0, 0, SRCCOPY);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawGetSize(IdrawCanvas* dc, int *w, int *h)[m +[32m+[m[32m{[m +[32m+[m[32m if (w) *w = dc->w;[m +[32m+[m[32m if (h) *h = dc->h;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawParentBackground(IdrawCanvas* dc)[m +[32m+[m[32m{[m +[32m+[m[32m unsigned char r=0, g=0, b=0;[m +[32m+[m[32m char* color = iupBaseNativeParentGetBgColorAttrib(dc->ih);[m +[32m+[m[32m iupStrToRGB(color, &r, &g, &b);[m +[32m+[m[32m iupDrawRectangle(dc, 0, 0, dc->w-1, dc->h-1, r, g, b, 1);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int filled)[m +[32m+[m[32m{[m +[32m+[m[32m RECT rect;[m +[32m+[m[32m rect.left = x1; rect.top = y1; rect.right = x2+1; rect.bottom = y2+1;[m +[32m+[m[32m SetDCBrushColor(dc->hBitmapDC, RGB(r,g,b));[m +[32m+[m[32m if (filled)[m +[32m+[m[32m FillRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH));[m +[32m+[m[32m else[m +[32m+[m[32m FrameRect(dc->hBitmapDC, &rect, (HBRUSH)GetStockObject(DC_BRUSH));[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)[m +[32m+[m[32m{[m +[32m+[m[32m POINT line_poly[2];[m +[32m+[m[32m HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));[m +[32m+[m[32m HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);[m +[32m+[m[32m line_poly[0].x = x1;[m +[32m+[m[32m line_poly[0].y = y1;[m +[32m+[m[32m line_poly[1].x = x2;[m +[32m+[m[32m line_poly[1].y = y2;[m +[32m+[m[32m Polyline(dc->hBitmapDC, line_poly, 2);[m +[32m+[m[32m SelectObject(dc->hBitmapDC, hPenOld);[m +[32m+[m[32m DeleteObject(hPen);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32m#define IUP_DEG2RAD 0.01745329252 /* degrees to radians (rad = CD_DEG2RAD * deg) */[m +[32m+[m +[32m+[m[32mstatic int winDrawCalcArc(int c1, int c2, double a, int start)[m +[32m+[m[32m{[m +[32m+[m[32m double proj, off;[m +[32m+[m[32m if (start)[m +[32m+[m[32m proj = cos(IUP_DEG2RAD * a);[m +[32m+[m[32m else[m +[32m+[m[32m proj = sin(IUP_DEG2RAD * a);[m +[32m+[m[32m off = (c2+c1)/2.0 + (c2-c1+1)*proj/2.0;[m +[32m+[m[32m return iupROUND(off);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int filled)[m +[32m+[m[32m{[m +[32m+[m[32m int XStartArc = winDrawCalcArc(x1, x2, a1, 1);[m +[32m+[m[32m int XEndArc = winDrawCalcArc(x1, x2, a2, 0);[m +[32m+[m[32m int YStartArc = winDrawCalcArc(y1, y2, a1, 1);[m +[32m+[m[32m int YEndArc = winDrawCalcArc(y1, y2, a2, 0);[m +[32m+[m +[32m+[m[32m if (filled)[m +[32m+[m[32m {[m +[32m+[m[32m HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b));[m +[32m+[m[32m HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush);[m[41m [m +[32m+[m[32m BeginPath(dc->hBitmapDC);[m[41m [m +[32m+[m[32m Pie(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc);[m +[32m+[m[32m EndPath(dc->hBitmapDC);[m +[32m+[m[32m FillPath(dc->hBitmapDC);[m +[32m+[m[32m SelectObject(dc->hBitmapDC, hBrushOld);[m +[32m+[m[32m DeleteObject(hBrush);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));[m +[32m+[m[32m HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);[m +[32m+[m[32m Arc(dc->hBitmapDC, x1, y1, x2+1, y2+1, XStartArc, YStartArc, XEndArc, YEndArc);[m +[32m+[m[32m SelectObject(dc->hBitmapDC, hPenOld);[m +[32m+[m[32m DeleteObject(hPen);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int filled)[m +[32m+[m[32m{[m +[32m+[m[32m if (filled)[m +[32m+[m[32m {[m +[32m+[m[32m HBRUSH hBrush = CreateSolidBrush(RGB(r,g,b));[m +[32m+[m[32m HPEN hBrushOld = SelectObject(dc->hBitmapDC, hBrush);[m[41m [m +[32m+[m[32m BeginPath(dc->hBitmapDC);[m[41m [m +[32m+[m[32m Polygon(dc->hBitmapDC, (POINT*)points, count);[m +[32m+[m[32m EndPath(dc->hBitmapDC);[m +[32m+[m[32m FillPath(dc->hBitmapDC);[m +[32m+[m[32m SelectObject(dc->hBitmapDC, hBrushOld);[m +[32m+[m[32m DeleteObject(hBrush);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m HPEN hPen = CreatePen(PS_SOLID, 1, RGB(r, g, b));[m +[32m+[m[32m HPEN hPenOld = SelectObject(dc->hBitmapDC, hPen);[m +[32m+[m[32m Polyline(dc->hBitmapDC, (POINT*)points, count);[m +[32m+[m[32m SelectObject(dc->hBitmapDC, hPenOld);[m +[32m+[m[32m DeleteObject(hPen);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawSetClipRect(IdrawCanvas* dc, int x1, int y1, int x2, int y2)[m +[32m+[m[32m{[m +[32m+[m[32m HRGN clip_hrgn = CreateRectRgn(x1, y1, x2, y2);[m +[32m+[m[32m SelectClipRgn(dc->hBitmapDC, clip_hrgn);[m +[32m+[m[32m DeleteObject(clip_hrgn);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawResetClip(IdrawCanvas* dc)[m +[32m+[m[32m{[m +[32m+[m[32m SelectClipRgn(dc->hBitmapDC, NULL);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawText(IdrawCanvas* dc, const char* text, int len, int x, int y, unsigned char r, unsigned char g, unsigned char b)[m +[32m+[m[32m{[m +[32m+[m[32m HFONT hOldFont, hFont = (HFONT)IupGetAttribute(dc->ih, "HFONT");[m +[32m+[m[32m SetTextColor(dc->hBitmapDC, RGB(r, g, b));[m +[32m+[m[32m hOldFont = SelectObject(dc->hBitmapDC, hFont);[m +[32m+[m[32m TextOut(dc->hBitmapDC, x, y, text, len);[m +[32m+[m[32m SelectObject(dc->hBitmapDC, hOldFont);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupDrawImage(IdrawCanvas* dc, const char* name, int make_inactive, int x, int y)[m +[32m+[m[32m{[m +[32m+[m[32m int img_w, img_h, bpp;[m +[32m+[m[32m HBITMAP hMask = NULL;[m +[32m+[m[32m HBITMAP hBitmap = iupImageGetImage(name, dc->ih, make_inactive);[m +[32m+[m[32m if (!hBitmap)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m /* must use this info, since image can be a driver image loaded from resources */[m +[32m+[m[32m iupdrvImageGetInfo(hBitmap, &img_w, &img_h, &bpp);[m +[32m+[m +[32m+[m[32m if (bpp == 8)[m +[32m+[m[32m hMask = iupdrvImageCreateMask(IupGetHandle(name));[m +[32m+[m +[32m+[m[32m iupwinDrawBitmap(dc->hBitmapDC, hBitmap, hMask, x, y, img_w, img_h, bpp);[m +[32m+[m +[32m+[m[32m if (hMask)[m +[32m+[m[32m DeleteObject(hMask);[m +[32m+[m[32m}[m +[1mdiff --git a/iup/src/win/iupwin_drv.h b/iup/src/win/iupwin_drv.h[m +[1mindex 3372c1a..7407a7a 100755[m +[1m--- a/iup/src/win/iupwin_drv.h[m +[1m+++ b/iup/src/win/iupwin_drv.h[m +[36m@@ -77,6 +77,7 @@[m [mint iupwinBaseContainerProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT[m + /* Creates the Window with native parent and child ID, associate HWND with Ihandle*, [m + and replace the WinProc by iupwinBaseWinProc */[m + int iupwinCreateWindowEx(Ihandle* ih, LPCSTR lpClassName, DWORD dwExStyle, DWORD dwStyle);[m +[32m+[m[32mvoid iupwinGetNativeParentStyle(Ihandle* ih, DWORD *dwExStyle, DWORD *dwStyle);[m + [m + int iupwinClassExist(const char* name);[m + int iupwinGetColorRef(Ihandle *ih, char *name, COLORREF *color);[m +[36m@@ -97,8 +98,8 @@[m [mchar* iupwinGetClipboardText(Ihandle* ih);[m + int iupwinGetScreenRes(void);[m + /* 1 point = 1/72 inch */[m + /* pixel = (point/72)*(pixel/inch) */[m +[31m-#define IUPWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */[m +[31m-#define IUPWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */[m +[32m+[m[32m#define iupWIN_PT2PIXEL(_pt, _res) MulDiv(_pt, _res, 72) /* (((_pt)*(_res))/72) */[m +[32m+[m[32m#define iupWIN_PIXEL2PT(_pixel, _res) MulDiv(_pixel, 72, _res) /* (((_pixel)*72)/(_res)) */[m + [m + [m + /* child window identifier of the first MDI child window created,[m +[1mdiff --git a/iup/src/win/iupwin_filedlg.c b/iup/src/win/iupwin_filedlg.c[m +[1mindex da66b4b..26994e5 100755[m +[1m--- a/iup/src/win/iupwin_filedlg.c[m +[1m+++ b/iup/src/win/iupwin_filedlg.c[m +[36m@@ -63,7 +63,7 @@[m [mstatic INT CALLBACK winFileDlgBrowseCallback(HWND hWnd, UINT uMsg, LPARAM lParam[m + }[m + else if (uMsg == BFFM_SELCHANGED)[m + {[m +[31m- char* buffer = iupStrGetMemory(MAX_FILENAME_SIZE);[m +[32m+[m[32m char buffer[MAX_FILENAME_SIZE];[m + ITEMIDLIST* selecteditem = (ITEMIDLIST*)lParam;[m + buffer[0] = 0;[m + SHGetPathFromIDList(selecteditem, buffer);[m +[36m@@ -90,7 +90,7 @@[m [mstatic void winFileDlgGetFolder(Ihandle *ih)[m + browseinfo.pszDisplayName = buffer; [m + browseinfo.lpfn = winFileDlgBrowseCallback;[m + browseinfo.lParam = (LPARAM)ih;[m +[31m- browseinfo.ulFlags = BIF_NEWDIALOGSTYLE;[m +[32m+[m[32m browseinfo.ulFlags = IupGetGlobal("_IUPWIN_COINIT_MULTITHREADED")? 0: BIF_NEWDIALOGSTYLE;[m + browseinfo.hwndOwner = parent;[m + [m + selecteditem = SHBrowseForFolder(&browseinfo);[m +[36m@@ -112,6 +112,37 @@[m [mstatic void winFileDlgGetFolder(Ihandle *ih)[m + [m + /************************************************************************************************/[m + [m +[32m+[m[32mstatic int winFileDlgGetSelectedFile(Ihandle* ih, HWND hWnd, char* filename)[m +[32m+[m[32m{[m +[32m+[m[32m int ret = CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE);[m +[32m+[m[32m if (ret < 0)[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))[m +[32m+[m[32m {[m +[32m+[m[32m /* check if there are more than 1 files and return only the first one */[m +[32m+[m[32m int found = 0;[m +[32m+[m[32m while(*filename != 0)[m +[32m+[m[32m {[m[41m [m +[32m+[m[32m if (*filename == '"')[m +[32m+[m[32m {[m +[32m+[m[32m if (!found)[m +[32m+[m[32m found = 1;[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m *(filename-1) = 0;[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m[32m if (found)[m +[32m+[m[32m *filename = *(filename+1);[m +[32m+[m[32m filename++;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + static UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)[m + {[m + (void)wParam;[m +[36m@@ -152,16 +183,15 @@[m [mstatic UINT_PTR CALLBACK winFileDlgSimpleHook(HWND hWnd, UINT uiMsg, WPARAM wPar[m + IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m + if (cb)[m + {[m +[31m- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);[m +[31m- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)[m +[32m+[m[32m char filename[MAX_FILENAME_SIZE];[m +[32m+[m[32m if (winFileDlgGetSelectedFile(ih, hWnd, filename))[m + {[m + int ret;[m + char* file_msg;[m + [m + if (!iupdrvIsFile(filename))[m +[31m- break;[m +[31m-[m +[31m- if (pofn->hdr.code == CDN_FILEOK)[m +[32m+[m[32m file_msg = "OTHER";[m +[32m+[m[32m else if (pofn->hdr.code == CDN_FILEOK)[m + file_msg = "OK";[m + else [m + file_msg = "SELECT";[m +[36m@@ -267,9 +297,9 @@[m [mstatic UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa[m + LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT)lParam;[m + Ihandle* ih = (Ihandle*)GetWindowLongPtr(hWnd, DWLP_USER);[m + IFnss cb = (IFnss)IupGetCallback(ih, "FILE_CB");[m +[31m- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);[m +[32m+[m[32m char filename[MAX_FILENAME_SIZE];[m + iupAttribSetStr(ih, "PREVIEWDC", (char*)lpDrawItem->hDC);[m +[31m- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)[m +[32m+[m[32m if (winFileDlgGetSelectedFile(ih, hWnd, filename))[m + {[m + if (iupdrvIsFile(filename))[m + cb(ih, filename, "PAINT");[m +[36m@@ -324,16 +354,15 @@[m [mstatic UINT_PTR CALLBACK winFileDlgPreviewHook(HWND hWnd, UINT uiMsg, WPARAM wPa[m + case CDN_SELCHANGE:[m + {[m + HWND hWndPreview = GetDlgItem(hWnd, IUP_PREVIEWCANVAS);[m +[31m- char* filename = iupStrGetMemory(MAX_FILENAME_SIZE);[m +[31m- if (CommDlg_OpenSave_GetFilePath(GetParent(hWnd), filename, MAX_FILENAME_SIZE) <= MAX_FILENAME_SIZE)[m +[32m+[m[32m char filename[MAX_FILENAME_SIZE];[m +[32m+[m[32m if (winFileDlgGetSelectedFile(ih, hWnd, filename))[m + {[m + int ret;[m + char* file_msg;[m + [m + if (!iupdrvIsFile(filename))[m +[31m- break;[m +[31m-[m +[31m- if (pofn->hdr.code == CDN_FILEOK)[m +[32m+[m[32m file_msg = "OTHER";[m +[32m+[m[32m else if (pofn->hdr.code == CDN_FILEOK)[m + file_msg = "OK";[m + else[m + file_msg = "SELECT";[m +[36m@@ -520,9 +549,14 @@[m [mstatic int winFileDlgPopup(Ihandle *ih, int x, int y)[m + if (iupAttribGetBoolean(ih, "MULTIPLEFILES"))[m + {[m + int i = 0;[m +[31m- [m +[32m+[m +[32m+[m[32m char* dir = iupStrFileGetPath(openfilename.lpstrFile); /* the first part is the directory already */[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", dir);[m +[32m+[m[32m free(dir);[m +[32m+[m[41m [m + /* If there is more than one file, replace terminator by the separator */[m +[31m- if (openfilename.lpstrFile && openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 && openfilename.nFileOffset>0) [m +[32m+[m[32m if (openfilename.lpstrFile[openfilename.nFileOffset-1] == 0 &&[m[41m [m +[32m+[m[32m openfilename.nFileOffset>0)[m[41m [m + {[m + while (openfilename.lpstrFile[i] != 0 || openfilename.lpstrFile[i+1] != 0)[m + {[m +[36m@@ -534,12 +568,16 @@[m [mstatic int winFileDlgPopup(Ihandle *ih, int x, int y)[m + }[m + [m + iupAttribSetStr(ih, "STATUS", "0");[m +[31m- iupAttribSetStr(ih, "FILEEXIST", NULL);[m +[32m+[m[32m iupAttribSetStr(ih, "FILEEXIST", "YES");[m + }[m + else[m + {[m + if (iupdrvIsFile(openfilename.lpstrFile)) /* check if file exists */[m + {[m +[32m+[m[32m char* dir = iupStrFileGetPath(openfilename.lpstrFile);[m +[32m+[m[32m iupAttribStoreStr(ih, "DIRECTORY", dir);[m +[32m+[m[32m free(dir);[m +[32m+[m + iupAttribSetStr(ih, "FILEEXIST", "YES");[m + iupAttribSetStr(ih, "STATUS", "0");[m + }[m +[1mdiff --git a/iup/src/win/iupwin_focus.c b/iup/src/win/iupwin_focus.c[m +[1mindex 63da02d..2328dea 100755[m +[1m--- a/iup/src/win/iupwin_focus.c[m +[1m+++ b/iup/src/win/iupwin_focus.c[m +[36m@@ -32,7 +32,7 @@[m + [m + /* Since Windows XP, the focus feedback only appears after the user press a key.[m + Except for the IupText where the feedback is the caret.[m +[31m- Before that if you click in a control the focus feedback will be hidden.[m +[32m+[m[32m Before a key is pressed if you click in a control the focus feedback will be hidden.[m + [m + We manually send WM_CHANGEUISTATE because we do not use IsDialogMessage anymore,[m + and the focus feedback was not shown even after the used press a key.[m +[36m@@ -43,19 +43,28 @@[m + void iupdrvSetFocus(Ihandle *ih)[m + {[m + SetFocus(ih->handle);[m +[31m- SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0);[m +[32m+[m +[32m+[m[32m /* See comments above */[m +[32m+[m[32m SendMessage(ih->handle, WM_CHANGEUISTATE, UIS_CLEAR|UISF_HIDEFOCUS, 0); /* clear+hidefocus=showfocus */[m + }[m + [m + void iupwinWmSetFocus(Ihandle *ih)[m + {[m + Ihandle* dialog = IupGetDialog(ih);[m + if (ih != dialog)[m +[31m- iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu */[m +[32m+[m[32m iupAttribSetStr(dialog, "_IUPWIN_LASTFOCUS", (char*)ih); /* used by IupMenu and here. */[m + else[m + {[m + /* if a control inside that dialog had the focus, then reset to it when the dialog gets the focus */[m + Ihandle* lastfocus = (Ihandle*)iupAttribGet(dialog, "_IUPWIN_LASTFOCUS");[m +[31m- if (lastfocus) IupSetFocus(lastfocus);[m +[32m+[m[32m if (lastfocus)[m +[32m+[m[32m {[m +[32m+[m[32m /* call the callback and update current focus before changing it again */[m +[32m+[m[32m iupCallGetFocusCb(ih);[m +[32m+[m +[32m+[m[32m IupSetFocus(lastfocus);[m +[32m+[m[32m return;[m +[32m+[m[32m }[m + }[m + [m + iupCallGetFocusCb(ih);[m +[1mdiff --git a/iup/src/win/iupwin_font.c b/iup/src/win/iupwin_font.c[m +[1mindex 659e2d9..c10befb 100755[m +[1m--- a/iup/src/win/iupwin_font.c[m +[1m+++ b/iup/src/win/iupwin_font.c[m +[36m@@ -70,7 +70,7 @@[m [mstatic IwinFont* winFindFont(const char *standardfont)[m + if (height < 0) [m + height_pixels = height; /* already in pixels */[m + else[m +[31m- height_pixels = -IUPWIN_PT2PIXEL(height, res);[m +[32m+[m[32m height_pixels = -iupWIN_PT2PIXEL(height, res);[m + [m + if (height_pixels == 0)[m + return NULL;[m +[36m@@ -119,7 +119,7 @@[m [mstatic void winFontFromLogFont(LOGFONT* logfont, char * font)[m + int is_strikeout = logfont->lfStrikeOut;[m + int height_pixels = logfont->lfHeight; /* negative value */[m + int res = iupwinGetScreenRes();[m +[31m- int height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */[m +[32m+[m[32m int height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */[m + [m + sprintf(font, "%s, %s%s%s%s %d", logfont->lfFaceName, [m + is_bold?"Bold ":"", [m +[1mdiff --git a/iup/src/win/iupwin_fontdlg.c b/iup/src/win/iupwin_fontdlg.c[m +[1mindex 0602441..ce27cf2 100755[m +[1m--- a/iup/src/win/iupwin_fontdlg.c[m +[1m+++ b/iup/src/win/iupwin_fontdlg.c[m +[36m@@ -68,7 +68,7 @@[m [mstatic int winFontDlgPopup(Ihandle* ih, int x, int y)[m + [m + standardfont = iupAttribGet(ih, "VALUE");[m + if (!standardfont)[m +[31m- return IUP_ERROR;[m +[32m+[m[32m standardfont = IupGetGlobal("DEFAULTFONT");[m + [m + /* parse the old format first */[m + if (!iupFontParseWin(standardfont, typeface, &height, &is_bold, &is_italic, &is_underline, &is_strikeout))[m +[36m@@ -81,7 +81,7 @@[m [mstatic int winFontDlgPopup(Ihandle* ih, int x, int y)[m + if (height < 0)[m + height_pixels = height; /* already in pixels */[m + else[m +[31m- height_pixels = -IUPWIN_PT2PIXEL(height, res);[m +[32m+[m[32m height_pixels = -iupWIN_PT2PIXEL(height, res);[m + [m + if (height_pixels == 0)[m + return IUP_ERROR;[m +[36m@@ -134,7 +134,7 @@[m [mstatic int winFontDlgPopup(Ihandle* ih, int x, int y)[m + if (height < 0) /* not an error, use old value as a reference for the units */[m + height = height_pixels; /* return in pixels */[m + else[m +[31m- height = IUPWIN_PIXEL2PT(-height_pixels, res); /* return in points */[m +[32m+[m[32m height = iupWIN_PIXEL2PT(-height_pixels, res); /* return in points */[m + [m + iupAttribSetStrf(ih, "VALUE", "%s, %s%s%s%s %d", logfont.lfFaceName, [m + is_bold?"Bold ":"", [m +[1mdiff --git a/iup/src/win/iupwin_frame.c b/iup/src/win/iupwin_frame.c[m +[1mindex 0949b5d..3f56aed 100755[m +[1m--- a/iup/src/win/iupwin_frame.c[m +[1m+++ b/iup/src/win/iupwin_frame.c[m +[36m@@ -47,6 +47,27 @@[m [mvoid iupdrvFrameGetDecorOffset(Ihandle* ih, int *x, int *y)[m + }[m + }[m + [m +[32m+[m[32mstatic char* winFrameGetBgColorAttrib(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m return NULL;[m +[32m+[m[32m else[m +[32m+[m[32m return iupBaseNativeParentGetBgColorAttrib(ih);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int winFrameSetBgColorAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m (void)value;[m +[32m+[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m {[m +[32m+[m[32m IupUpdate(ih); /* post a redraw */[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m + static void winFrameDrawText(HDC hDC, const char* text, int x, int y, COLORREF fgcolor)[m + {[m + COLORREF oldcolor;[m +[36m@@ -126,6 +147,16 @@[m [mstatic void winFrameDrawItem(Ihandle* ih, DRAWITEMSTRUCT *drawitem)[m + DrawEdge(hDC, &drawitem->rcItem, EDGE_SUNKEN, BF_RECT);[m + else[m + DrawEdge(hDC, &drawitem->rcItem, EDGE_ETCHED, BF_RECT);[m +[32m+[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPFRAME_HAS_BGCOLOR"))[m +[32m+[m[32m {[m +[32m+[m[32m unsigned char r=0, g=0, b=0;[m +[32m+[m[32m char* color = iupAttribGetStr(ih, "BGCOLOR");[m +[32m+[m[32m iupStrToRGB(color, &r, &g, &b);[m +[32m+[m[32m SetDCBrushColor(hDC, RGB(r,g,b));[m +[32m+[m[32m InflateRect(&drawitem->rcItem, -2, -2);[m +[32m+[m[32m FillRect(hDC, &drawitem->rcItem, (HBRUSH)GetStockObject(DC_BRUSH));[m +[32m+[m[32m }[m + }[m + [m + iupwinDrawDestroyBitmapDC(&bmpDC);[m +[36m@@ -169,11 +200,13 @@[m [mstatic int winFrameMapMethod(Ihandle* ih)[m + title = iupAttribGet(ih, "TITLE");[m + if (title)[m + iupAttribSetStr(ih, "_IUPFRAME_HAS_TITLE", "1");[m +[31m-[m +[31m- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))[m +[31m- dwExStyle |= WS_EX_COMPOSITED;[m + else[m +[31m- dwStyle |= WS_CLIPCHILDREN;[m +[32m+[m[32m {[m +[32m+[m[32m if (iupAttribGet(ih, "BGCOLOR"))[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPFRAME_HAS_BGCOLOR", "1");[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);[m + [m + if (!iupwinCreateWindowEx(ih, "BUTTON", dwExStyle, dwStyle))[m + return IUP_ERROR;[m +[36m@@ -195,7 +228,7 @@[m [mvoid iupdrvFrameInitClass(Iclass* ic)[m + /* Driver Dependent Attribute functions */[m + [m + /* Visual */[m +[31m- iupClassRegisterAttribute(ic, "BGCOLOR", iupBaseNativeParentGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); [m +[32m+[m[32m iupClassRegisterAttribute(ic, "BGCOLOR", winFrameGetBgColorAttrib, winFrameSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);[m[41m [m + [m + /* Special */[m + iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED);[m +[1mdiff --git a/iup/src/win/iupwin_globalattrib.c b/iup/src/win/iupwin_globalattrib.c[m +[1mindex a176925..bcd6355 100755[m +[1m--- a/iup/src/win/iupwin_globalattrib.c[m +[1m+++ b/iup/src/win/iupwin_globalattrib.c[m +[36m@@ -148,6 +148,11 @@[m [mint iupdrvSetGlobal(const char *name, const char *value)[m + winGlobalSendKey(key, 0x03);[m + return 0;[m + }[m +[32m+[m[32m if (iupStrEqual(name, "DLL_HINSTANCE"))[m +[32m+[m[32m {[m +[32m+[m[32m iupwin_dll_hinstance = (HINSTANCE)value;[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m + return 1;[m + }[m + [m +[36m@@ -239,5 +244,7 @@[m [mchar *iupdrvGetGlobal(const char *name)[m + return "YES";[m + return "NO";[m + }[m +[32m+[m[32m if (iupStrEqual(name, "DLL_HINSTANCE"))[m +[32m+[m[32m return (char*)iupwin_dll_hinstance;[m + return NULL;[m + }[m +[1mdiff --git a/iup/src/win/iupwin_info.c b/iup/src/win/iupwin_info.c[m +[1mindex 8ea7dd4..4d57289 100755[m +[1m--- a/iup/src/win/iupwin_info.c[m +[1m+++ b/iup/src/win/iupwin_info.c[m +[36m@@ -18,7 +18,7 @@[m + #include "iupwin_info.h"[m + [m + [m +[31m-int iupwinIsVista(void)[m +[32m+[m[32mint iupwinIsVistaOrNew(void)[m + {[m + OSVERSIONINFO osvi;[m + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);[m +[1mdiff --git a/iup/src/win/iupwin_info.h b/iup/src/win/iupwin_info.h[m +[1mindex d39bae0..8d461fb 100755[m +[1m--- a/iup/src/win/iupwin_info.h[m +[1m+++ b/iup/src/win/iupwin_info.h[m +[36m@@ -16,7 +16,7 @@[m [mint iupwinGetSystemMajorVersion(void);[m + int iupwinGetComCtl32Version(void);[m + char* iupwinGetSystemLanguage(void);[m + int iupwinIsAppThemed(void);[m +[31m-int iupwinIsVista(void);[m +[32m+[m[32mint iupwinIsVistaOrNew(void);[m + [m + /* color */[m + void iupwinGetSysColor(char* color, int wincolor);[m +[1mdiff --git a/iup/src/win/iupwin_key.c b/iup/src/win/iupwin_key.c[m +[1mindex 921ed94..899e837 100755[m +[1m--- a/iup/src/win/iupwin_key.c[m +[1m+++ b/iup/src/win/iupwin_key.c[m +[36m@@ -317,32 +317,32 @@[m [mint iupwinKeyEvent(Ihandle* ih, int wincode, int press)[m + void iupwinButtonKeySetStatus(WORD keys, char* status, int doubleclick)[m + {[m + if (keys & MK_SHIFT)[m +[31m- iupKEYSETSHIFT(status);[m +[32m+[m[32m iupKEY_SETSHIFT(status);[m + [m + if (keys & MK_CONTROL)[m +[31m- iupKEYSETCONTROL(status); [m +[32m+[m[32m iupKEY_SETCONTROL(status);[m[41m [m + [m + if (keys & MK_LBUTTON)[m +[31m- iupKEYSETBUTTON1(status);[m +[32m+[m[32m iupKEY_SETBUTTON1(status);[m + [m + if (keys & MK_MBUTTON)[m +[31m- iupKEYSETBUTTON2(status);[m +[32m+[m[32m iupKEY_SETBUTTON2(status);[m + [m + if (keys & MK_RBUTTON)[m +[31m- iupKEYSETBUTTON3(status);[m +[32m+[m[32m iupKEY_SETBUTTON3(status);[m + [m + if (doubleclick)[m +[31m- iupKEYSETDOUBLE(status);[m +[32m+[m[32m iupKEY_SETDOUBLE(status);[m + [m + if (GetKeyState(VK_MENU) & 0x8000)[m +[31m- iupKEYSETALT(status);[m +[32m+[m[32m iupKEY_SETALT(status);[m + [m + if ((GetKeyState(VK_LWIN) & 0x8000) || (GetKeyState(VK_RWIN) & 0x8000))[m +[31m- iupKEYSETSYS(status);[m +[32m+[m[32m iupKEY_SETSYS(status);[m + [m + if (keys & MK_XBUTTON1)[m +[31m- iupKEYSETBUTTON4(status);[m +[32m+[m[32m iupKEY_SETBUTTON4(status);[m + [m + if (keys & MK_XBUTTON2)[m +[31m- iupKEYSETBUTTON5(status);[m +[32m+[m[32m iupKEY_SETBUTTON5(status);[m + }[m +[1mdiff --git a/iup/src/win/iupwin_label.c b/iup/src/win/iupwin_label.c[m +[1mindex d5a1f53..95dd10c 100755[m +[1m--- a/iup/src/win/iupwin_label.c[m +[1m+++ b/iup/src/win/iupwin_label.c[m +[36m@@ -173,7 +173,7 @@[m [mstatic int winLabelSetAlignmentAttrib(Ihandle* ih, const char* value)[m + else /* "ATOP" */[m + ih->data->vert_alignment = IUP_ALIGN_ATOP;[m + [m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + return 0;[m + }[m +[36m@@ -197,7 +197,7 @@[m [mstatic int winLabelSetPaddingAttrib(Ihandle* ih, const char* value)[m + iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');[m + [m + if (ih->handle && ih->data->type != IUP_LABEL_SEP_HORIZ && ih->data->type != IUP_LABEL_SEP_VERT)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + [m + return 0;[m + }[m +[36m@@ -211,7 +211,7 @@[m [mstatic int winLabelSetWordWrapAttrib(Ihandle* ih, const char* value)[m + else[m + ih->data->text_style &= ~DT_WORDBREAK;[m + [m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + [m + return 1;[m +[36m@@ -226,7 +226,7 @@[m [mstatic int winLabelSetEllipsisAttrib(Ihandle* ih, const char* value)[m + else[m + ih->data->text_style &= ~DT_END_ELLIPSIS;[m + [m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + [m + return 1;[m +[36m@@ -240,12 +240,24 @@[m [mstatic int winLabelSetFgColorAttrib(Ihandle* ih, const char* value)[m + if (iupStrToRGB(value, &r, &g, &b))[m + {[m + ih->data->fgcolor = RGB(r,g,b);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + }[m + return 1;[m + }[m + [m +[32m+[m[32mstatic int winLabelSetUpdateAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m (void)value;[m +[32m+[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m iupdrvPostRedraw(ih); /* Post a redraw */[m +[32m+[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + static int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)[m + {[m + switch (msg)[m +[36m@@ -257,6 +269,7 @@[m [mstatic int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re[m + *result = WVR_HREDRAW|WVR_VREDRAW;[m + return 1;[m + }[m +[32m+[m[32m break;[m + }[m + }[m + [m +[36m@@ -266,7 +279,7 @@[m [mstatic int winLabelProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *re[m + static int winLabelMapMethod(Ihandle* ih)[m + {[m + char* value;[m +[31m- DWORD dwStyle = WS_CHILD |[m +[32m+[m[32m DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |[m + SS_NOTIFY; /* SS_NOTIFY is necessary because of the base messages */[m + [m + if (!ih->parent)[m +[36m@@ -330,7 +343,7 @@[m [mvoid iupdrvLabelInitClass(Iclass* ic)[m + [m + /* IupLabel only */[m + iupClassRegisterAttribute(ic, "ALIGNMENT", winLabelGetAlignmentAttrib, winLabelSetAlignmentAttrib, IUPAF_SAMEASSYSTEM, "ALEFT:ACENTER", IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttribute(ic, "IMAGE", NULL, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "IMAGE", NULL, winLabelSetUpdateAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "PADDING", iupLabelGetPaddingAttrib, winLabelSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);[m + [m + /* IupLabel Windows and GTK only */[m +[1mdiff --git a/iup/src/win/iupwin_list.c b/iup/src/win/iupwin_list.c[m +[1mindex 8fdadb6..cb510b5 100755[m +[1m--- a/iup/src/win/iupwin_list.c[m +[1m+++ b/iup/src/win/iupwin_list.c[m +[36m@@ -154,6 +154,8 @@[m [mvoid iupdrvListInsertItem(Ihandle* ih, int pos, const char* value)[m + SendMessage(ih->handle, WIN_INSERTSTRING(ih), pos, (LPARAM)value);[m + SendMessage(ih->handle, WIN_SETITEMDATA(ih), pos, (LPARAM)iupdrvFontGetStringWidth(ih, value));[m + winListUpdateScrollWidth(ih);[m +[32m+[m +[32m+[m[32m iupListUpdateOldValue(ih, pos, 0);[m + }[m + [m + void iupdrvListRemoveItem(Ihandle* ih, int pos)[m +[36m@@ -164,8 +166,14 @@[m [mvoid iupdrvListRemoveItem(Ihandle* ih, int pos)[m + int curpos = SendMessage(ih->handle, WIN_GETCURSEL(ih), 0, 0);[m + if (pos == curpos)[m + {[m +[31m- if (curpos > 0) curpos--;[m +[31m- else curpos++;[m +[32m+[m[32m if (curpos > 0)[m[41m [m +[32m+[m[32m curpos--;[m +[32m+[m[32m else[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m curpos=1;[m +[32m+[m[32m if (iupdrvListGetCount(ih)==1)[m +[32m+[m[32m curpos = -1; /* remove the selection */[m +[32m+[m[32m }[m + [m + SendMessage(ih->handle, WIN_SETCURSEL(ih), curpos, 0);[m + }[m +[36m@@ -173,6 +181,8 @@[m [mvoid iupdrvListRemoveItem(Ihandle* ih, int pos)[m + [m + SendMessage(ih->handle, WIN_DELETESTRING(ih), pos, 0L);[m + winListUpdateScrollWidth(ih);[m +[32m+[m +[32m+[m[32m iupListUpdateOldValue(ih, pos, 1);[m + }[m + [m + void iupdrvListRemoveAllItems(Ihandle* ih)[m +[36m@@ -220,18 +230,29 @@[m [mstatic void winListUpdateItemWidth(Ihandle* ih)[m + }[m + }[m + [m +[32m+[m[32mstatic int winListSetBgColorAttrib(Ihandle *ih, const char *value)[m +[32m+[m[32m{[m +[32m+[m[32m (void)value;[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m iupdrvPostRedraw(ih);[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + static int winListSetStandardFontAttrib(Ihandle* ih, const char* value)[m + {[m + iupdrvSetStandardFontAttrib(ih, value);[m +[31m- winListUpdateItemWidth(ih);[m +[31m- winListUpdateScrollWidth(ih);[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m {[m +[32m+[m[32m winListUpdateItemWidth(ih);[m +[32m+[m[32m winListUpdateScrollWidth(ih);[m +[32m+[m[32m }[m + return 1;[m + }[m + [m + static char* winListGetIdValueAttrib(Ihandle* ih, const char* name_id)[m + {[m + int pos = iupListGetPos(ih, name_id);[m +[31m- if (pos != -1)[m +[32m+[m[32m if (pos >= 0)[m + {[m + int len = SendMessage(ih->handle, WIN_GETTEXTLEN(ih), (WPARAM)pos, 0);[m + char* str = iupStrGetMemory(len+1);[m +[36m@@ -514,8 +535,10 @@[m [mstatic int winListSetNCAttrib(Ihandle* ih, const char* value)[m + {[m + HWND cbedit = (HWND)iupAttribGet(ih, "_IUPWIN_EDITBOX");[m + SendMessage(cbedit, EM_LIMITTEXT, ih->data->nc, 0L);[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int winListSetSelectionAttrib(Ihandle* ih, const char* value)[m +[36m@@ -995,13 +1018,27 @@[m [mstatic int winListEditProc(Ihandle* ih, HWND cbedit, UINT msg, WPARAM wp, LPARAM[m + if (msg==WM_KEYDOWN) /* process K_ANY before text callbacks */[m + {[m + ret = iupwinBaseProc(ih, msg, wp, lp, result);[m +[31m- if (ret) return 1;[m +[32m+[m[32m if (ret)[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1");[m +[32m+[m[32m *result = 0;[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);[m + }[m + [m + switch (msg)[m + {[m + case WM_CHAR:[m + {[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR"))[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);[m +[32m+[m[32m *result = 0;[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m + if ((char)wp == '\b')[m + { [m + if (!winListCallEditCb(ih, cbedit, NULL, 0, -1))[m +[36m@@ -1301,7 +1338,7 @@[m [mstatic void winListLayoutUpdateMethod(Ihandle *ih)[m + static int winListMapMethod(Ihandle* ih)[m + {[m + char* class_name;[m +[31m- DWORD dwStyle = WS_CHILD,[m +[32m+[m[32m DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,[m + dwExStyle = WS_EX_CLIENTEDGE;[m + [m + if (!ih->parent)[m +[36m@@ -1426,7 +1463,7 @@[m [mvoid iupdrvListInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winListSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED);[m + [m + /* Visual */[m +[31m- iupClassRegisterAttribute(ic, "BGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); [m +[32m+[m[32m iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winListSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED);[m + [m + /* Special */[m + iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED);[m +[1mdiff --git a/iup/src/win/iupwin_loop.c b/iup/src/win/iupwin_loop.c[m +[1mindex 7c5dbe7..fd25537 100755[m +[1m--- a/iup/src/win/iupwin_loop.c[m +[1m+++ b/iup/src/win/iupwin_loop.c[m +[36m@@ -106,6 +106,18 @@[m [mint IupMainLoop(void)[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mint IupLoopStepWait(void)[m +[32m+[m[32m{[m +[32m+[m[32m MSG msg;[m +[32m+[m[32m int ret = GetMessage(&msg, NULL, 0, 0);[m +[32m+[m[32m if (ret == -1) /* error */[m +[32m+[m[32m return IUP_ERROR;[m +[32m+[m[32m if (ret == 0 || /* WM_QUIT */[m +[32m+[m[32m winLoopProcessMessage(&msg) == IUP_CLOSE) /* ret != 0 */[m +[32m+[m[32m return IUP_CLOSE;[m +[32m+[m[32m return IUP_DEFAULT;[m +[32m+[m[32m}[m +[32m+[m + int IupLoopStep(void)[m + {[m + MSG msg;[m +[1mdiff --git a/iup/src/win/iupwin_menu.c b/iup/src/win/iupwin_menu.c[m +[1mindex 74a8b52..06ad93e 100755[m +[1m--- a/iup/src/win/iupwin_menu.c[m +[1m+++ b/iup/src/win/iupwin_menu.c[m +[36m@@ -385,7 +385,10 @@[m [mstatic int winMenuMapMethod(Ihandle* ih)[m + static void winMenuUnMapMethod(Ihandle* ih)[m + {[m + if (iupMenuIsMenuBar(ih))[m +[32m+[m[32m {[m + SetMenu(ih->parent->handle, NULL);[m +[32m+[m[32m ih->parent = NULL;[m +[32m+[m[32m }[m + [m + DestroyMenu((HMENU)ih->handle); /* DestroyMenu is recursive */[m + }[m +[1mdiff --git a/iup/src/win/iupwin_open.c b/iup/src/win/iupwin_open.c[m +[1mindex 7357cde..3629ce4 100755[m +[1m--- a/iup/src/win/iupwin_open.c[m +[1m+++ b/iup/src/win/iupwin_open.c[m +[36m@@ -76,8 +76,9 @@[m [mint iupdrvOpen(int *argc, char ***argv)[m + iupwin_hinstance = GetModuleHandle(NULL);[m + IupSetGlobal("HINSTANCE", (char*)iupwin_hinstance);[m + }[m +[31m-[m +[31m- CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);[m +[32m+[m[41m [m +[32m+[m[32m if (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)==RPC_E_CHANGED_MODE)[m +[32m+[m[32m IupSetGlobal("_IUPWIN_COINIT_MULTITHREADED", "1");[m + [m + {[m + INITCOMMONCONTROLSEX InitCtrls;[m +[1mdiff --git a/iup/src/win/iupwin_progressbar.c b/iup/src/win/iupwin_progressbar.c[m +[1mindex 9038d79..4a52cc4 100755[m +[1m--- a/iup/src/win/iupwin_progressbar.c[m +[1m+++ b/iup/src/win/iupwin_progressbar.c[m +[36m@@ -106,7 +106,7 @@[m [mstatic int winProgressBarSetFgColorAttrib(Ihandle* ih, const char* value)[m + [m + static int winProgressBarMapMethod(Ihandle* ih)[m + {[m +[31m- DWORD dwStyle = WS_CHILD;[m +[32m+[m[32m DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS;[m + [m + if (!ih->parent)[m + return IUP_ERROR;[m +[1mdiff --git a/iup/src/win/iupwin_tabs.c b/iup/src/win/iupwin_tabs.c[m +[1mindex 682f451..b39f7fe 100755[m +[1m--- a/iup/src/win/iupwin_tabs.c[m +[1m+++ b/iup/src/win/iupwin_tabs.c[m +[36m@@ -232,10 +232,7 @@[m [mstatic HWND winTabCreatePageWindow(Ihandle* ih)[m + DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS, [m + dwExStyle = 0;[m + [m +[31m- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))[m +[31m- dwExStyle |= WS_EX_COMPOSITED;[m +[31m- else[m +[31m- dwStyle |= WS_CLIPCHILDREN;[m +[32m+[m[32m iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);[m + [m + hWnd = CreateWindowEx(dwExStyle, "IupTabsPage", NULL, dwStyle, [m + 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, [m +[36m@@ -255,9 +252,12 @@[m [mstatic int winTabsSetPaddingAttrib(Ihandle* ih, const char* value)[m + iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');[m + [m + if (ih->handle)[m +[32m+[m[32m {[m + SendMessage(ih->handle, TCM_SETPADDING, 0, MAKELPARAM(ih->data->horiz_padding, ih->data->vert_padding));[m +[31m-[m +[31m- return 0;[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int winTabsSetMultilineAttrib(Ihandle* ih, const char* value)[m +[36m@@ -368,6 +368,13 @@[m [mstatic char* winTabsGetBgColorAttrib(Ihandle* ih)[m + return IupGetGlobal("DLGBGCOLOR");[m + }[m + [m +[32m+[m[32mstatic int winTabsSetBgColorAttrib(Ihandle *ih, const char *value)[m +[32m+[m[32m{[m +[32m+[m[32m (void)value;[m +[32m+[m[32m iupdrvPostRedraw(ih);[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + [m + /* ------------------------------------------------------------------------- */[m + /* winTabs - Calls the user callback to change of tab */[m +[36m@@ -397,6 +404,7 @@[m [mstatic int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + int prev_pos = SendMessage(ih->handle, TCM_GETCURSEL, 0, 0);[m + iupAttribSetInt(ih, "_IUPTABS_PREV_CHILD_POS", prev_pos);[m + [m +[32m+[m[32m /* save the previous handle if callback exists */[m + if (cb)[m + {[m + Ihandle* prev_child = IupGetChild(ih, prev_pos);[m +[36m@@ -420,7 +428,9 @@[m [mstatic int winTabsWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + Ihandle* prev_child = (Ihandle*)iupAttribGet(ih, "_IUPTABS_PREV_CHILD");[m + iupAttribSetStr(ih, "_IUPTABS_PREV_CHILD", NULL);[m + [m +[31m- cb(ih, child, prev_child);[m +[32m+[m[32m /* avoid duplicate calls when a Tab is inside another Tab. */[m +[32m+[m[32m if (prev_child)[m +[32m+[m[32m cb(ih, child, prev_child);[m + }[m + }[m + [m +[36m@@ -522,7 +532,7 @@[m [mstatic void winTabsChildAddedMethod(Ihandle* ih, Ihandle* child)[m + }[m + }[m + [m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + }[m + }[m +[36m@@ -535,12 +545,11 @@[m [mstatic void winTabsChildRemovedMethod(Ihandle* ih, Ihandle* child)[m + if (tab_page)[m + {[m + int pos = winTabsGetPageWindowPos(ih, tab_page);[m +[32m+[m[32m iupTabsTestRemoveTab(ih, pos);[m +[32m+[m + SendMessage(ih->handle, TCM_DELETEITEM, pos, 0);[m + DestroyWindow(tab_page);[m + [m +[31m- if (pos==0) pos++;[m +[31m- iupdrvTabsSetCurrentTab(ih, pos-1);[m +[31m-[m + iupAttribSetStr(child, "_IUPTAB_CONTAINER", NULL);[m + }[m + }[m +[36m@@ -564,19 +573,14 @@[m [mstatic int winTabsMapMethod(Ihandle* ih)[m + if (ih->data->is_multiline)[m + dwStyle |= TCS_MULTILINE;[m + [m +[31m- if (iupAttribGetBoolean(IupGetDialog(ih), "COMPOSITED"))[m +[31m- {[m +[31m- dwExStyle |= WS_EX_COMPOSITED;[m +[32m+[m[32m iupwinGetNativeParentStyle(ih, &dwExStyle, &dwStyle);[m + [m +[31m- if (!ih->data->is_multiline && iupwinIsVista())[m +[31m- {[m +[31m- /* workaround for composite bug in Vista */[m +[31m- ih->data->is_multiline = 1; [m +[31m- dwStyle |= TCS_MULTILINE;[m +[31m- }[m +[32m+[m[32m if (dwExStyle & WS_EX_COMPOSITED && !ih->data->is_multiline && iupwinIsVistaOrNew())[m +[32m+[m[32m {[m +[32m+[m[32m /* workaround for composite bug in Vista */[m +[32m+[m[32m ih->data->is_multiline = 1;[m[41m [m +[32m+[m[32m dwStyle |= TCS_MULTILINE;[m + }[m +[31m- else[m +[31m- dwStyle |= WS_CLIPCHILDREN;[m + [m + if (!iupwinCreateWindowEx(ih, WC_TABCONTROL, dwExStyle, dwStyle))[m + return IUP_ERROR;[m +[36m@@ -665,7 +669,7 @@[m [mvoid iupdrvTabsInitClass(Iclass* ic)[m + /* Driver Dependent Attribute functions */[m + [m + /* Visual */[m +[31m- iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, NULL, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); [m +[32m+[m[32m iupClassRegisterAttribute(ic, "BGCOLOR", winTabsGetBgColorAttrib, winTabsSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);[m + [m + /* Special */[m + iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "DLGFGCOLOR", IUPAF_NOT_MAPPED);[m +[36m@@ -676,5 +680,9 @@[m [mvoid iupdrvTabsInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "MULTILINE", winTabsGetMultilineAttrib, winTabsSetMultilineAttrib, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TABTITLE", NULL, winTabsSetTabTitleAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TABIMAGE", NULL, winTabsSetTabImageAttrib, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "PADDING", iupTabsGetPaddingAttrib, winTabsSetPaddingAttrib, IUPAF_SAMEASSYSTEM, "0x0", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m +[32m+[m[32m /* necessary because transparent background does not work when not using visual styles */[m +[32m+[m[32m if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/win/iupwin_text.c b/iup/src/win/iupwin_text.c[m +[1mindex dfe489a..2a61724 100755[m +[1m--- a/iup/src/win/iupwin_text.c[m +[1m+++ b/iup/src/win/iupwin_text.c[m +[36m@@ -432,8 +432,8 @@[m [mstatic int winTextSetLinColToPosition(Ihandle *ih, int lin, int col)[m + col--;[m + [m + linmax = SendMessage(ih->handle, EM_GETLINECOUNT, 0, 0L);[m +[31m- if (lin > linmax)[m +[31m- lin = linmax;[m +[32m+[m[32m if (lin > linmax-1)[m +[32m+[m[32m lin = linmax-1;[m + [m + lineindex = SendMessage(ih->handle, EM_LINEINDEX, (WPARAM)lin, 0L);[m + [m +[36m@@ -639,8 +639,12 @@[m [mstatic int winTextSetPaddingAttrib(Ihandle* ih, const char* value)[m + iupStrToIntInt(value, &(ih->data->horiz_padding), &(ih->data->vert_padding), 'x');[m + ih->data->vert_padding = 0;[m + if (ih->handle)[m +[32m+[m[32m {[m + SendMessage(ih->handle, EM_SETMARGINS, EC_LEFTMARGIN|EC_RIGHTMARGIN, MAKELPARAM(ih->data->horiz_padding, ih->data->horiz_padding));[m +[31m- return 0;[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int winTextSetSelectedTextAttrib(Ihandle* ih, const char* value)[m +[36m@@ -713,8 +717,11 @@[m [mstatic int winTextSetNCAttrib(Ihandle* ih, const char* value)[m + SendMessage(ih->handle, EM_EXLIMITTEXT, 0, ih->data->nc); /* so it can be larger than 64k */[m + else[m + SendMessage(ih->handle, EM_LIMITTEXT, ih->data->nc, 0L);[m +[32m+[m +[32m+[m[32m return 0;[m + }[m +[31m- return 0;[m +[32m+[m[32m else[m +[32m+[m[32m return 1; /* store until not mapped, when mapped will be set again */[m + }[m + [m + static int winTextSetSelectionAttrib(Ihandle* ih, const char* value)[m +[36m@@ -845,7 +852,7 @@[m [mstatic char* winTextGetSelectionPosAttrib(Ihandle* ih)[m + [m + static int winTextSetInsertAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (value)[m + {[m +[36m@@ -867,9 +874,9 @@[m [mstatic int winTextSetInsertAttrib(Ihandle* ih, const char* value)[m + [m + static int winTextSetAppendAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- int len;[m +[32m+[m[32m int pos;[m + char* str;[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + if (!value) value = "";[m + str = (char*)value;[m +[36m@@ -881,9 +888,9 @@[m [mstatic int winTextSetAppendAttrib(Ihandle* ih, const char* value)[m + str = iupStrToDos(str);[m + }[m + [m +[31m- len = GetWindowTextLength(ih->handle)+1;[m +[31m- SendMessage(ih->handle, EM_SETSEL, (WPARAM)len, (LPARAM)len);[m +[31m- if (ih->data->is_multiline && ih->data->append_newline)[m +[32m+[m[32m pos = GetWindowTextLength(ih->handle)+1;[m +[32m+[m[32m SendMessage(ih->handle, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);[m +[32m+[m[32m if (ih->data->is_multiline && ih->data->append_newline && pos!=1)[m + {[m + if (ih->data->has_formatting)[m + SendMessage(ih->handle, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)"\r");[m +[36m@@ -920,7 +927,7 @@[m [mstatic int winTextSetTabSizeAttrib(Ihandle* ih, const char* value)[m + iupStrToInt(value, &tabsize);[m + tabsize *= 4;[m + SendMessage(ih->handle, EM_SETTABSTOPS, (WPARAM)1L, (LPARAM)&tabsize);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + return 1;[m + }[m + [m +[36m@@ -1120,6 +1127,7 @@[m [mstatic int winTextSetBgColorAttrib(Ihandle *ih, const char *value)[m + SendMessage(ih->handle, EM_SETBKGNDCOLOR, 0, (LPARAM)color);[m + }[m + }[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + return 1;[m + }[m + [m +[36m@@ -1529,15 +1537,27 @@[m [mstatic int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + ret = iupwinBaseProc(ih, msg, wp, lp, result);[m + if (ret) [m + {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", "1");[m + *result = 0;[m + return 1;[m + }[m +[32m+[m[32m else[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);[m + }[m + [m + switch (msg)[m + {[m + case WM_CHAR:[m + {[m +[32m+[m[32m /* even aborting WM_KEYDOWN, a WM_CHAR will be sent, so ignore it also */[m +[32m+[m[32m /* if a dialog was shown, the loop will be processed, so ignore out of focus WM_CHAR messages */[m +[32m+[m[32m if (GetFocus() != ih->handle || iupAttribGet(ih, "_IUPWIN_IGNORE_CHAR"))[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPWIN_IGNORE_CHAR", NULL);[m +[32m+[m[32m *result = 0;[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m + if ((char)wp == '\b')[m + { [m + if (!winTextCallActionCb(ih, NULL, 0, -1))[m +[36m@@ -1736,7 +1756,7 @@[m [mstatic int winTextProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + static void winTextCreateSpin(Ihandle* ih)[m + {[m + HWND hSpin;[m +[31m- DWORD dwStyle = WS_CHILD|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS;[m +[32m+[m[32m DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS|UDS_ARROWKEYS|UDS_HOTTRACK|UDS_NOTHOUSANDS;[m + int serial = iupDialogGetChildId(ih);[m + [m + if (iupStrEqualNoCase(iupAttribGetStr(ih, "SPINALIGN"), "LEFT"))[m +[36m@@ -1826,7 +1846,7 @@[m [mstatic void winTextLayoutUpdateMethod(Ihandle* ih)[m + [m + static int winTextMapMethod(Ihandle* ih)[m + {[m +[31m- DWORD dwStyle = WS_CHILD, [m +[32m+[m[32m DWORD dwStyle = WS_CHILD|WS_CLIPSIBLINGS,[m[41m [m + dwExStyle = 0;[m + char* winclass = "EDIT", *value;[m + [m +[36m@@ -1873,7 +1893,7 @@[m [mstatic int winTextMapMethod(Ihandle* ih)[m + }[m + else[m + {[m +[31m- dwStyle |= ES_AUTOHSCROLL|ES_NOHIDESEL;[m +[32m+[m[32m dwStyle |= ES_AUTOHSCROLL;[m + [m + if (iupAttribGetBoolean(ih, "PASSWORD"))[m + dwStyle |= ES_PASSWORD;[m +[36m@@ -1950,8 +1970,8 @@[m [mvoid iupdrvTextInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, winTextSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NOT_MAPPED);[m + [m + /* Overwrite Visual */[m +[31m- iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_NOT_MAPPED); [m +[31m- iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winTextSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "TXTBGCOLOR", IUPAF_DEFAULT);[m[41m [m +[32m+[m[32m iupClassRegisterAttribute(ic, "VISIBLE", iupBaseGetVisibleAttrib, winTextSetVisibleAttrib, "YES", "NO", IUPAF_DEFAULT);[m + [m + /* Special */[m + iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "TXTFGCOLOR", IUPAF_NOT_MAPPED); /* usually black */ [m +[1mdiff --git a/iup/src/win/iupwin_toggle.c b/iup/src/win/iupwin_toggle.c[m +[1mindex fcaa438..c17f594 100755[m +[1m--- a/iup/src/win/iupwin_toggle.c[m +[1m+++ b/iup/src/win/iupwin_toggle.c[m +[36m@@ -35,7 +35,9 @@[m + [m + void iupdrvToggleAddCheckBox(int *x, int *y)[m + {[m +[31m- (*x) += 16+6;[m +[32m+[m[32m (*x) += 16+8;[m +[32m+[m[32m if (!iupwin_comctl32ver6)[m +[32m+[m[32m (*x) += 4;[m + if ((*y) < 16) (*y) = 16; /* minimum height */[m + }[m + [m +[36m@@ -229,7 +231,7 @@[m [mstatic int winToggleSetImageAttrib(Ihandle* ih, const char* value)[m + iupAttribSetStr(ih, "IMAGE", (char*)value);[m + [m + if (iupwin_comctl32ver6)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + else[m + {[m + int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);[m +[36m@@ -249,7 +251,7 @@[m [mstatic int winToggleSetImInactiveAttrib(Ihandle* ih, const char* value)[m + iupAttribSetStr(ih, "IMINACTIVE", (char*)value);[m + [m + if (iupwin_comctl32ver6)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + else[m + {[m + int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);[m +[36m@@ -269,7 +271,7 @@[m [mstatic int winToggleSetImPressAttrib(Ihandle* ih, const char* value)[m + iupAttribSetStr(ih, "IMPRESS", (char*)value);[m + [m + if (iupwin_comctl32ver6)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + else[m + {[m + int check = SendMessage(ih->handle, BM_GETCHECK, 0L, 0L);[m +[36m@@ -339,7 +341,7 @@[m [mstatic int winToggleSetActiveAttrib(Ihandle* ih, const char* value)[m + if (iupwin_comctl32ver6)[m + {[m + iupBaseSetActiveAttrib(ih, value);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + return 0;[m + }[m + else[m +[36m@@ -382,11 +384,21 @@[m [mstatic int winToggleSetPaddingAttrib(Ihandle* ih, const char* value)[m + iupStrToIntInt(value, &ih->data->horiz_padding, &ih->data->vert_padding, 'x');[m + [m + if (ih->handle && iupwin_comctl32ver6 && ih->data->type == IUP_TOGGLE_IMAGE)[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + [m + return 0;[m + }[m + [m +[32m+[m[32mstatic int winToggleSetUpdateAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m (void)value;[m +[32m+[m +[32m+[m[32m if (ih->handle)[m +[32m+[m[32m iupdrvPostRedraw(ih); /* Post a redraw */[m +[32m+[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + static int winToggleSetBgColorAttrib(Ihandle* ih, const char* value)[m + {[m + (void)value;[m +[36m@@ -395,7 +407,7 @@[m [mstatic int winToggleSetBgColorAttrib(Ihandle* ih, const char* value)[m + /* update internal image cache for controls that have the IMAGE attribute */[m + iupAttribSetStr(ih, "BGCOLOR", value);[m + iupImageUpdateParent(ih);[m +[31m- iupdrvDisplayRedraw(ih);[m +[32m+[m[32m iupdrvRedrawNow(ih);[m + }[m + return 1;[m + }[m +[36m@@ -591,7 +603,7 @@[m [mstatic int winToggleMapMethod(Ihandle* ih)[m + {[m + Ihandle* radio = iupRadioFindToggleParent(ih);[m + char* value;[m +[31m- DWORD dwStyle = WS_CHILD | [m +[32m+[m[32m DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS |[m + BS_NOTIFY; /* necessary because of the base messages */[m + [m + if (!ih->parent)[m +[36m@@ -673,11 +685,11 @@[m [mvoid iupdrvToggleInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "BGCOLOR", winToggleGetBgColorAttrib, winToggleSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT); [m + [m + /* Special */[m +[31m- iupClassRegisterAttribute(ic, "FGCOLOR", NULL, NULL, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */ [m +[32m+[m[32m iupClassRegisterAttribute(ic, "FGCOLOR", NULL, winToggleSetUpdateAttrib, "DLGFGCOLOR", NULL, IUPAF_NOT_MAPPED); /* force the new default value */[m[41m [m + iupClassRegisterAttribute(ic, "TITLE", iupdrvBaseGetTitleAttrib, winToggleSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m + /* IupToggle only */[m +[31m- iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, NULL, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "ALIGNMENT", NULL, winToggleSetUpdateAttrib, IUPAF_SAMEASSYSTEM, "ACENTER:ACENTER", IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "IMAGE", NULL, winToggleSetImageAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "IMINACTIVE", NULL, winToggleSetImInactiveAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "IMPRESS", NULL, winToggleSetImPressAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m +[1mdiff --git a/iup/src/win/iupwin_tree.c b/iup/src/win/iupwin_tree.c[m +[1mindex e6877dc..4a5f8be 100755[m +[1m--- a/iup/src/win/iupwin_tree.c[m +[1m+++ b/iup/src/win/iupwin_tree.c[m +[36m@@ -31,17 +31,19 @@[m + #include "iupwin_draw.h"[m + #include "iupwin_info.h"[m + [m +[32m+[m + typedef struct _winTreeItemData[m + {[m + COLORREF color;[m + unsigned char kind;[m +[31m- void* userdata;[m + HFONT hFont;[m + short image;[m + short image_expanded;[m + } winTreeItemData;[m + [m +[31m-#ifndef TVN_ITEMCHANGING /* Vista Only */[m +[32m+[m[32m/* Vista Only */[m +[32m+[m +[32m+[m[32m#ifndef TVN_ITEMCHANGING[m[41m [m + typedef struct tagNMTVITEMCHANGE {[m + NMHDR hdr;[m + UINT uChanged;[m +[36m@@ -54,257 +56,125 @@[m [mtypedef struct tagNMTVITEMCHANGE {[m + #define TVN_ITEMCHANGINGW (TVN_FIRST-17) [m + #endif[m + [m +[31m-static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem);[m +[31m-typedef int (*winTreeNodeFunc)(Ihandle* ih, HTREEITEM hItem, void* userdata);[m +[31m-[m +[31m-static int winTreeForEach(Ihandle* ih, HTREEITEM hItem, winTreeNodeFunc func, void* userdata)[m +[31m-{[m +[31m- HTREEITEM hItemChild;[m +[31m-[m +[31m- if (!hItem)[m +[31m- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[32m+[m[32m#ifndef TVS_EX_DOUBLEBUFFER[m +[32m+[m[32m#define TVS_EX_DOUBLEBUFFER 0x0004[m +[32m+[m[32m#endif[m + [m +[31m- while(hItem != NULL)[m +[31m- {[m +[31m- if (!func(ih, hItem, userdata))[m +[31m- return 0;[m +[32m+[m[32m#ifndef TVM_SETEXTENDEDSTYLE[m +[32m+[m[32m#define TVM_SETEXTENDEDSTYLE (TV_FIRST + 44)[m +[32m+[m[32m#endif[m + [m +[31m- hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[31m- if (hItemChild)[m +[31m- {[m +[31m- /* Recursively traverse child items */[m +[31m- if (!winTreeForEach(ih, hItemChild, func, userdata))[m +[31m- return 0;[m +[31m- }[m + [m +[31m- /* Go to next sibling item */[m +[31m- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);[m +[31m- }[m +[32m+[m[32mstatic void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem);[m + [m +[31m- return 1;[m +[31m-}[m + [m + /*****************************************************************************/[m + /* FINDING ITEMS */[m + /*****************************************************************************/[m +[31m-static HTREEITEM winTreeFindNodeID(Ihandle* ih, HTREEITEM hItem, HTREEITEM hNode)[m +[31m-{[m +[31m- TVITEM item;[m +[31m- winTreeItemData* itemData;[m +[31m-[m +[31m- while(hItem != NULL)[m +[31m- {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(hItem == hNode)[m +[31m- return hItem;[m + [m +[31m- /* Get hItem attributes */[m +[31m- item.hItem = hItem;[m +[31m- item.mask = TVIF_HANDLE|TVIF_PARAM;[m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[31m- itemData = (winTreeItemData*)item.lParam;[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- if (itemData->kind == ITREE_BRANCH)[m +[31m- {[m +[31m- /* Recursively traverse child items */[m +[31m- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[31m- hItemChild = winTreeFindNodeID(ih, hItemChild, hNode);[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(hItemChild)[m +[31m- return hItemChild;[m +[31m- }[m +[31m- /* Go to next sibling item */[m +[31m- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);[m +[31m- }[m +[31m-[m +[31m- return NULL;[m +[32m+[m[32mInodeHandle* iupdrvTreeGetFocusNode(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m return (InodeHandle*)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);[m + }[m + [m +[31m-static int winTreeGetNodeId(Ihandle* ih, HTREEITEM hItem)[m +[32m+[m[32mstatic HTREEITEM winTreeFindNodeXY(Ihandle* ih, int x, int y)[m + {[m +[31m- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[31m- ih->data->id_control = -1;[m +[31m- if (winTreeFindNodeID(ih, hItemRoot, hItem))[m +[31m- return ih->data->id_control;[m +[31m- else[m +[31m- return -1;[m +[32m+[m[32m TVHITTESTINFO info;[m +[32m+[m[32m info.pt.x = x;[m +[32m+[m[32m info.pt.y = y;[m +[32m+[m[32m return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);[m + }[m + [m +[31m-static HTREEITEM winTreeFindUserDataID(Ihandle* ih, HTREEITEM hItem, void* userdata)[m +[32m+[m[32mstatic HTREEITEM winTreeFindNodePointed(Ihandle* ih)[m + {[m +[31m- TVITEM item;[m +[31m- winTreeItemData* itemData;[m +[31m-[m +[31m- while(hItem != NULL)[m +[31m- {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control++;[m +[31m-[m +[31m- /* Get hItem attributes */[m +[31m- item.hItem = hItem;[m +[31m- item.mask = TVIF_HANDLE|TVIF_PARAM;[m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[31m- itemData = (winTreeItemData*)item.lParam;[m +[31m-[m +[31m- /* userdata founded! */[m +[31m- if(itemData->userdata == userdata)[m +[31m- return hItem;[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- if (itemData->kind == ITREE_BRANCH)[m +[31m- {[m +[31m- /* Recursively traverse child items */[m +[31m- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[31m- hItemChild = winTreeFindUserDataID(ih, hItemChild, userdata);[m +[31m-[m +[31m- /* userdata founded! */[m +[31m- if (hItemChild)[m +[31m- return hItemChild;[m +[31m- }[m +[31m-[m +[31m- /* Go to next sibling item */[m +[31m- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);[m +[31m- }[m +[31m-[m +[31m- return NULL;[m +[32m+[m[32m TVHITTESTINFO info;[m +[32m+[m[32m DWORD pos = GetMessagePos();[m +[32m+[m[32m info.pt.x = LOWORD(pos);[m +[32m+[m[32m info.pt.y = HIWORD(pos);[m +[32m+[m[32m ScreenToClient(ih->handle, &info.pt);[m +[32m+[m[32m return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);[m + }[m + [m +[31m-static int winTreeGetUserDataId(Ihandle* ih, void* userdata)[m +[32m+[m[32mint iupwinGetColor(const char* value, COLORREF *color)[m + {[m +[31m- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[31m- ih->data->id_control = -1;[m +[31m- if (winTreeFindUserDataID(ih, hItemRoot, userdata))[m +[31m- return ih->data->id_control;[m +[31m- else[m +[31m- return -1;[m +[32m+[m[32m unsigned char r, g, b;[m +[32m+[m[32m if (iupStrToRGB(value, &r, &g, &b))[m +[32m+[m[32m {[m +[32m+[m[32m *color = RGB(r,g,b);[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m[32m return 0;[m + }[m + [m +[31m-static HTREEITEM winTreeFindNodeFromID(Ihandle* ih, HTREEITEM hItem)[m +[32m+[m[32mstatic void winTreeChildCountRec(Ihandle* ih, HTREEITEM hItem, int *count)[m + {[m +[31m- TVITEM item;[m +[31m- winTreeItemData* itemData;[m +[31m-[m +[32m+[m[32m hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m + while(hItem != NULL)[m + {[m +[31m- /* ID control to traverse items */[m +[31m- ih->data->id_control--;[m +[31m-[m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- return hItem;[m +[31m-[m +[31m- /* Get hItem attributes */[m +[31m- item.hItem = hItem;[m +[31m- item.mask = TVIF_HANDLE|TVIF_PARAM;[m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[31m- itemData = (winTreeItemData*)item.lParam;[m +[31m-[m +[31m- /* Check whether we have child items */[m +[31m- if (itemData->kind == ITREE_BRANCH)[m +[31m- {[m +[31m- /* Recursively traverse child items */[m +[31m- HTREEITEM hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[31m- hItemChild = winTreeFindNodeFromID(ih, hItemChild);[m +[32m+[m[32m (*count)++;[m + [m +[31m- /* StateID founded! */[m +[31m- if(ih->data->id_control < 0)[m +[31m- return hItemChild;[m +[31m- }[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m winTreeChildCountRec(ih, hItem, count);[m + [m + /* Go to next sibling item */[m + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);[m + }[m +[31m-[m +[31m- return hItem;[m + }[m + [m +[31m-static HTREEITEM winTreeFindNodeFromString(Ihandle* ih, const char* name_id)[m +[32m+[m[32mint iupdrvTreeTotalChildCount(Ihandle* ih, HTREEITEM hItem)[m + {[m +[31m- if (name_id[0])[m +[31m- {[m +[31m- HTREEITEM hRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[31m- iupStrToInt(name_id, &ih->data->id_control);[m +[31m- return winTreeFindNodeFromID(ih, hRoot);[m +[31m- }[m +[31m- else[m +[31m- return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);[m +[32m+[m[32m int count = 0;[m +[32m+[m[32m winTreeChildCountRec(ih, hItem, &count);[m +[32m+[m[32m return count;[m + }[m + [m +[31m-/* Recursively, find a new brother for the item[m +[31m- that will have its depth changed. Returns the new brother. */[m +[31m-static HTREEITEM winTreeFindNewBrother(Ihandle* ih, HTREEITEM hBrotherItem)[m +[32m+[m[32mstatic void winTreeChildRebuildCacheRec(Ihandle* ih, HTREEITEM hItem, int *id)[m + {[m +[31m- TVITEM item;[m +[31m- winTreeItemData* itemData;[m +[31m-[m +[31m- while(hBrotherItem != NULL)[m +[32m+[m[32m hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[32m+[m[32m while(hItem != NULL)[m + {[m +[31m- if(ih->data->id_control < 0)[m +[31m- return hBrotherItem;[m +[31m-[m +[31m- item.hItem = hBrotherItem;[m +[31m- item.mask = TVIF_HANDLE|TVIF_PARAM;[m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[31m- itemData = (winTreeItemData*)item.lParam;[m +[31m-[m +[31m- if (itemData->kind == ITREE_BRANCH)[m +[31m- {[m +[31m- HTREEITEM hItemChild;[m +[31m-[m +[31m- ih->data->id_control--;[m +[31m- hItemChild = winTreeFindNewBrother(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hBrotherItem));[m +[32m+[m[32m (*id)++;[m +[32m+[m[32m ih->data->node_cache[*id].node_handle = hItem;[m + [m +[31m- if(ih->data->id_control < 0)[m +[31m- return hItemChild;[m +[31m- }[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m winTreeChildRebuildCacheRec(ih, hItem, id);[m + [m +[31m- hBrotherItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hBrotherItem);[m +[32m+[m[32m /* Go to next sibling item */[m +[32m+[m[32m hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);[m + }[m +[31m-[m +[31m- return hBrotherItem;[m + }[m + [m +[31m-static HTREEITEM winTreeFindNodePointed(Ihandle* ih)[m +[32m+[m[32mstatic void winTreeRebuildNodeCache(Ihandle* ih, int id, HTREEITEM hItem)[m + {[m +[31m- TVHITTESTINFO info;[m +[31m- DWORD pos = GetMessagePos();[m +[31m- info.pt.x = LOWORD(pos);[m +[31m- info.pt.y = HIWORD(pos);[m +[31m-[m +[31m- ScreenToClient(ih->handle, &info.pt);[m +[31m- [m +[31m- return (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)(LPTVHITTESTINFO)&info);[m +[32m+[m[32m ih->data->node_cache[id].node_handle = hItem;[m +[32m+[m[32m winTreeChildRebuildCacheRec(ih, hItem, &id);[m + }[m + [m +[31m-int iupwinGetColor(const char* value, COLORREF *color)[m +[31m-{[m +[31m- unsigned char r, g, b;[m +[31m- if (iupStrToRGB(value, &r, &g, &b))[m +[31m- {[m +[31m- *color = RGB(r,g,b);[m +[31m- return 1;[m +[31m- }[m +[31m- return 0;[m +[31m-}[m + [m + /*****************************************************************************/[m + /* ADDING ITEMS */[m + /*****************************************************************************/[m +[32m+[m +[32m+[m[32mstatic void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand);[m +[32m+[m + void iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* title, int add)[m + {[m +[31m- TVITEM item, tviPrevItem;[m +[32m+[m[32m TVITEM item;[m + TVINSERTSTRUCT tvins;[m +[31m- HTREEITEM hPrevItem = winTreeFindNodeFromString(ih, name_id);[m +[31m- int kindPrev;[m +[32m+[m[32m HTREEITEM hPrevItem = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItemNew;[m + winTreeItemData* itemData;[m + [m + if (!hPrevItem)[m +[31m- return;[m +[32m+[m[32m {[m +[32m+[m[32m /* check if the root was really specified */[m +[32m+[m[32m int id = 0;[m +[32m+[m[32m if (!iupStrToInt(name_id, &id) || id != -1)[m +[32m+[m[32m return;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m if (!title)[m +[32m+[m[32m title = "";[m + [m + itemData = calloc(1, sizeof(winTreeItemData));[m + itemData->image = -1;[m +[36m@@ -318,83 +188,71 @@[m [mvoid iupdrvTreeAddNode(Ihandle* ih, const char* name_id, int kind, const char* t[m + iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color);[m + [m + if (kind == ITREE_BRANCH)[m +[31m- {[m + item.iSelectedImage = item.iImage = (int)ih->data->def_image_collapsed;[m +[31m-[m +[31m- if (ih->data->add_expanded)[m +[31m- {[m +[31m- item.mask |= TVIF_STATE;[m +[31m- item.state = item.stateMask = TVIS_EXPANDED;[m +[31m- item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded;[m +[31m- }[m +[31m- }[m + else[m + item.iSelectedImage = item.iImage = (int)ih->data->def_image_leaf;[m + [m + /* Save the heading level in the node's application-defined data area */[m + tvins.item = item;[m + [m +[31m- /* get the KIND attribute of node selected */ [m +[31m- tviPrevItem.hItem = hPrevItem;[m +[31m- tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN; [m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem);[m +[31m- kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind;[m +[31m-[m +[31m- /* Define the parent and the position to the new node inside[m +[31m- the list, using the KIND attribute of node selected */[m +[31m- if (kindPrev == ITREE_BRANCH && add)[m +[31m- {[m +[31m- tvins.hParent = hPrevItem;[m +[31m- tvins.hInsertAfter = TVI_FIRST; /* insert the new node after item selected, as first child */[m +[31m- }[m +[31m- else[m +[31m- {[m +[31m- tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem);[m +[31m- tvins.hInsertAfter = hPrevItem; /* insert the new node after item selected */[m +[31m- }[m +[31m-[m +[31m- /* Add the node to the tree-view control */[m +[31m- SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);[m +[31m-[m +[31m- if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0)[m +[32m+[m[32m if (hPrevItem)[m + {[m +[31m- /* this is the first child, redraw to update the '+'/'-' buttons */[m +[31m- iupdrvDisplayRedraw(ih);[m +[31m- }[m +[31m-}[m +[32m+[m[32m int kindPrev;[m +[32m+[m[32m TVITEM tviPrevItem;[m + [m +[31m-static void winTreeAddRootNode(Ihandle* ih)[m +[31m-{[m +[31m- TVITEM item; [m +[31m- TVINSERTSTRUCT tvins;[m +[31m- HTREEITEM hNewItem;[m +[31m- winTreeItemData* itemData;[m +[32m+[m[32m /* get the KIND attribute of reference node */[m[41m [m +[32m+[m[32m tviPrevItem.hItem = hPrevItem;[m +[32m+[m[32m tviPrevItem.mask = TVIF_PARAM|TVIF_CHILDREN;[m[41m [m +[32m+[m[32m SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&tviPrevItem);[m +[32m+[m[32m kindPrev = ((winTreeItemData*)tviPrevItem.lParam)->kind;[m + [m +[31m- itemData = calloc(1, sizeof(winTreeItemData));[m +[31m- itemData->image = -1;[m +[31m- itemData->image_expanded = -1;[m +[31m- itemData->kind = ITREE_BRANCH;[m +[32m+[m[32m /* Define the parent and the position to the new node inside[m +[32m+[m[32m the list, using the KIND attribute of reference node */[m +[32m+[m[32m if (kindPrev == ITREE_BRANCH && add)[m +[32m+[m[32m {[m +[32m+[m[32m /* depth+1 */[m +[32m+[m[32m tvins.hParent = hPrevItem;[m +[32m+[m[32m tvins.hInsertAfter = TVI_FIRST; /* insert the new node after the reference node, as first child */[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* same depth */[m +[32m+[m[32m tvins.hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hPrevItem);[m +[32m+[m[32m tvins.hInsertAfter = hPrevItem; /* insert the new node after reference node */[m +[32m+[m[32m }[m + [m +[31m- item.mask = TVIF_PARAM | TVIF_STATE | TVIF_IMAGE | TVIF_SELECTEDIMAGE; [m +[31m- item.state = item.stateMask = TVIS_EXPANDED;[m +[31m- item.iSelectedImage = item.iImage = (int)ih->data->def_image_expanded;[m +[31m- item.lParam = (LPARAM)itemData;[m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);[m +[32m+[m[32m iupTreeAddToCache(ih, add, kindPrev, hPrevItem, hItemNew);[m + [m +[31m- iupwinGetColor(iupAttribGetStr(ih, "FGCOLOR"), &itemData->color);[m +[32m+[m[32m if (kindPrev == ITREE_BRANCH && tviPrevItem.cChildren==0) /* was 0, now is 1 */[m +[32m+[m[32m {[m +[32m+[m[32m /* this is the first child, redraw to update the '+'/'-' buttons */[m +[32m+[m[32m if (ih->data->add_expanded)[m +[32m+[m[32m winTreeExpandItem(ih, hPrevItem, 1);[m +[32m+[m[32m else[m +[32m+[m[32m winTreeExpandItem(ih, hPrevItem, 0);[m +[32m+[m[32m }[m + [m +[31m- /* Save the heading level in the node's application-defined data area */[m +[31m- tvins.item = item; [m +[31m- tvins.hInsertAfter = TVI_FIRST;[m +[31m- tvins.hParent = TVI_ROOT;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m tvins.hInsertAfter = TVI_FIRST;[m +[32m+[m[32m tvins.hParent = TVI_ROOT;[m + [m +[31m- /* Add the node to the tree-view control */[m +[31m- hNewItem = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);[m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m hItemNew = (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);[m +[32m+[m[32m iupTreeAddToCache(ih, 0, 0, NULL, hItemNew);[m + [m +[31m- /* MarkStart node */[m +[31m- iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hNewItem);[m +[32m+[m[32m if (ih->data->node_count == 1)[m +[32m+[m[32m {[m +[32m+[m[32m /* MarkStart node */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_MARKSTART_NODE", (char*)hItemNew);[m + [m +[31m- /* Set the default VALUE */[m +[31m- winTreeSetFocusNode(ih, hNewItem);[m +[32m+[m[32m /* Set the default VALUE */[m +[32m+[m[32m winTreeSetFocusNode(ih, hItemNew);[m +[32m+[m[32m }[m +[32m+[m[32m }[m + }[m + [m + static int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem)[m +[36m@@ -408,13 +266,28 @@[m [mstatic int winTreeIsItemExpanded(Ihandle* ih, HTREEITEM hItem)[m + [m + static void winTreeExpandItem(Ihandle* ih, HTREEITEM hItem, int expand)[m + {[m +[31m- if (expand == -1)[m +[31m- expand = !winTreeIsItemExpanded(ih, hItem); /* toggle */[m +[32m+[m[32m TVITEM item;[m +[32m+[m[32m winTreeItemData* itemData;[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", "1");[m +[32m+[m[32m /* it only works if the branch has children */[m +[32m+[m[32m SendMessage(ih->handle, TVM_EXPAND, expand? TVE_EXPAND: TVE_COLLAPSE, (LPARAM)hItem);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_BRANCH_CB", NULL);[m +[32m+[m +[32m+[m[32m /* update image */[m +[32m+[m[32m item.hItem = hItem;[m +[32m+[m[32m item.mask = TVIF_HANDLE|TVIF_PARAM;[m +[32m+[m[32m SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[32m+[m[32m itemData = (winTreeItemData*)item.lParam;[m + [m + if (expand)[m +[31m- SendMessage(ih->handle, TVM_EXPAND, TVE_EXPAND, (LPARAM)hItem);[m +[32m+[m[32m item.iSelectedImage = item.iImage = (itemData->image_expanded!=-1)? itemData->image_expanded: (int)ih->data->def_image_expanded;[m + else[m +[31m- SendMessage(ih->handle, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)hItem);[m +[32m+[m[32m item.iSelectedImage = item.iImage = (itemData->image!=-1)? itemData->image: (int)ih->data->def_image_collapsed;[m +[32m+[m +[32m+[m[32m item.hItem = hItem;[m +[32m+[m[32m item.mask = TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;[m +[32m+[m[32m SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);[m + }[m + [m + /*****************************************************************************/[m +[36m@@ -445,12 +318,12 @@[m [mstatic void winTreeExpandTree(Ihandle* ih, HTREEITEM hItem, int expand)[m + /* SELECTING ITEMS */[m + /*****************************************************************************/[m + [m +[31m-static int winTreeIsItemSelected(Ihandle* ih, HTREEITEM hItem)[m +[32m+[m[32mstatic int winTreeIsNodeSelected(Ihandle* ih, HTREEITEM hItem)[m + {[m + return ((SendMessage(ih->handle, TVM_GETITEMSTATE, (WPARAM)hItem, TVIS_SELECTED)) & TVIS_SELECTED)!=0;[m + }[m + [m +[31m-static void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select)[m +[32m+[m[32mstatic void winTreeSelectNode(Ihandle* ih, HTREEITEM hItem, int select)[m + {[m + TV_ITEM item;[m + item.mask = TVIF_STATE | TVIF_HANDLE;[m +[36m@@ -458,16 +331,13 @@[m [mstatic void winTreeSelectItem(Ihandle* ih, HTREEITEM hItem, int select)[m + item.hItem = hItem;[m + [m + if (select == -1)[m +[31m- select = !winTreeIsItemSelected(ih, hItem);[m +[32m+[m[32m select = !winTreeIsNodeSelected(ih, hItem); /* toggle */[m + [m + item.state = select ? TVIS_SELECTED : 0;[m + [m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item);[m +[31m-}[m +[31m-[m +[31m-static HTREEITEM winTreeGetFocusNode(Ihandle* ih)[m +[31m-{[m +[31m- return (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CARET, 0);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + }[m + [m + /* ------------Comment from wxWidgets--------------------[m +[36m@@ -475,17 +345,17 @@[m [mstatic HTREEITEM winTreeGetFocusNode(Ihandle* ih)[m + item without changing anything else. */[m + static void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem)[m + {[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (hItem != hItemFocus)[m + {[m + /* remember the selection state of the item */[m +[31m- int wasSelected = winTreeIsItemSelected(ih, hItem);[m +[32m+[m[32m int wasSelected = winTreeIsNodeSelected(ih, hItem);[m + int wasFocusSelected = 0;[m + [m +[31m- if (iupwinIsVista())[m +[32m+[m[32m if (iupwinIsVistaOrNew() && iupwin_comctl32ver6)[m + iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", (char*)hItem); /* Vista Only */[m + else[m +[31m- wasFocusSelected = hItemFocus && winTreeIsItemSelected(ih, hItemFocus);[m +[32m+[m[32m wasFocusSelected = hItemFocus && winTreeIsNodeSelected(ih, hItemFocus);[m + [m + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + [m +[36m@@ -493,58 +363,42 @@[m [mstatic void winTreeSetFocusNode(Ihandle* ih, HTREEITEM hItem)[m + {[m + /* prevent the tree from unselecting the old focus which it would do by default */[m + SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)NULL); /* remove the focus */[m +[31m- winTreeSelectItem(ih, hItemFocus, 1); /* select again */[m +[32m+[m[32m winTreeSelectNode(ih, hItemFocus, 1); /* select again */[m + }[m + [m + SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItem); /* set focus, selection, and unselect the previous focus */[m + [m + if (!wasSelected)[m +[31m- winTreeSelectItem(ih, hItem, 0); /* need to clear the selection if was not selected */[m +[32m+[m[32m winTreeSelectNode(ih, hItem, 0); /* need to clear the selection if was not selected */[m + [m + iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + iupAttribSetStr(ih, "_IUPTREE_ALLOW_CHANGE", NULL);[m + }[m + }[m + [m +[31m-typedef struct _winTreeRange{[m +[31m- HTREEITEM hItem1, hItem2;[m +[31m- char inside, clear;[m +[31m-}winTreeRange;[m +[31m-[m +[31m-static int winTreeSelectRangeFunc(Ihandle* ih, HTREEITEM hItem, winTreeRange* range)[m +[32m+[m[32mstatic void winTreeSelectRange(Ihandle* ih, HTREEITEM hItem1, HTREEITEM hItem2, int clear)[m + {[m +[31m- int end_range = 0;[m +[31m-[m +[31m- if (range->inside == 0) /* detect the range start */[m +[32m+[m[32m int i;[m +[32m+[m[32m int id1 = iupTreeFindNodeId(ih, hItem1);[m +[32m+[m[32m int id2 = iupTreeFindNodeId(ih, hItem2);[m +[32m+[m[32m if (id2 == -1) id2 = ih->data->node_count-1;[m +[32m+[m[32m if (id1 > id2)[m + {[m +[31m- if (range->hItem1 == hItem) range->inside=1;[m +[31m- else if (range->hItem2 == hItem) range->inside=1;[m +[32m+[m[32m int tmp = id1;[m +[32m+[m[32m id1 = id2;[m +[32m+[m[32m id2 = tmp;[m + }[m +[31m- else if (range->inside == 1) /* detect the range end */[m +[32m+[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[31m- if (range->hItem1 == hItem) end_range=1;[m +[31m- else if (range->hItem2 == hItem) end_range=1;[m +[32m+[m[32m if (i < id1 || i > id2)[m +[32m+[m[32m {[m +[32m+[m[32m if (clear)[m +[32m+[m[32m winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1);[m + }[m +[31m-[m +[31m- if (range->inside == 1) /* if inside, select */[m +[31m- winTreeSelectItem(ih, hItem, 1);[m +[31m- else if (range->clear) /* if outside and clear, unselect */[m +[31m- winTreeSelectItem(ih, hItem, 0);[m +[31m-[m +[31m- if (end_range || (range->inside && range->hItem1==range->hItem2))[m +[31m- range->inside=-1; /* update after selecting the node */[m +[31m-[m +[31m- return 1;[m +[31m-}[m +[31m-[m +[31m-static void winTreeSelectRange(Ihandle* ih, HTREEITEM hItemFrom, HTREEITEM hItemTo, int clear)[m +[31m-{[m +[31m- winTreeRange range;[m +[31m- range.hItem1 = hItemFrom;[m +[31m- range.hItem2 = hItemTo;[m +[31m- range.inside = 0;[m +[31m- range.clear = (char)clear;[m +[31m- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectRangeFunc, &range);[m + }[m + [m + static void winTreeSelectAll(Ihandle* ih)[m +[36m@@ -558,9 +412,10 @@[m [mstatic void winTreeClearSelection(Ihandle* ih, HTREEITEM hItemExcept)[m + winTreeSelectRange(ih, hItemExcept, hItemExcept, 1);[m + }[m + [m +[31m-static int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata)[m +[32m+[m[32mstatic int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, int id, void* userdata)[m + {[m +[31m- winTreeSelectItem(ih, hItem, -1);[m +[32m+[m[32m (void)id;[m +[32m+[m[32m winTreeSelectNode(ih, hItem, -1);[m + (void)userdata;[m + return 1;[m + }[m +[36m@@ -568,14 +423,11 @@[m [mstatic int winTreeInvertSelectFunc(Ihandle* ih, HTREEITEM hItem, void* userdata)[m + typedef struct _winTreeSelArray{[m + Iarray* markedArray;[m + char is_handle;[m +[31m- int id_control;[m + }winTreeSelArray;[m + [m +[31m-static int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArray* selarray)[m +[32m+[m[32mstatic int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, int id, winTreeSelArray* selarray)[m + { [m +[31m- selarray->id_control++;[m +[31m-[m +[31m- if (winTreeIsItemSelected(ih, hItem))[m +[32m+[m[32m if (winTreeIsNodeSelected(ih, hItem))[m + {[m + if (selarray->is_handle)[m + {[m +[36m@@ -587,7 +439,7 @@[m [mstatic int winTreeSelectedArrayFunc(Ihandle* ih, HTREEITEM hItem, winTreeSelArra[m + {[m + int* intArrayData = (int*)iupArrayInc(selarray->markedArray);[m + int i = iupArrayCount(selarray->markedArray);[m +[31m- intArrayData[i-1] = selarray->id_control;[m +[32m+[m[32m intArrayData[i-1] = id;[m + }[m + }[m + [m +[36m@@ -599,10 +451,9 @@[m [mstatic Iarray* winTreeGetSelectedArray(Ihandle* ih)[m + Iarray* markedArray = iupArrayCreate(1, sizeof(HTREEITEM));[m + winTreeSelArray selarray;[m + selarray.markedArray = markedArray;[m +[31m- selarray.id_control = -1;[m + selarray.is_handle = 1;[m + [m +[31m- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);[m +[32m+[m[32m iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);[m + [m + return markedArray;[m + }[m +[36m@@ -612,10 +463,9 @@[m [mstatic Iarray* winTreeGetSelectedArrayId(Ihandle* ih)[m + Iarray* markedArray = iupArrayCreate(1, sizeof(int));[m + winTreeSelArray selarray;[m + selarray.markedArray = markedArray;[m +[31m- selarray.id_control = -1;[m + selarray.is_handle = 0;[m + [m +[31m- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);[m +[32m+[m[32m iupTreeForEach(ih, (iupTreeNodeFunc)winTreeSelectedArrayFunc, &selarray);[m + [m + return markedArray;[m + }[m +[36m@@ -625,7 +475,7 @@[m [mstatic Iarray* winTreeGetSelectedArrayId(Ihandle* ih)[m + /* COPYING ITEMS (Branches and its children) */[m + /*****************************************************************************/[m + /* Insert the copied item in a new location. Returns the new item. */[m +[31m-static HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int full_copy)[m +[32m+[m[32mstatic HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent, HTREEITEM hPosition, int is_copy)[m + {[m + TVITEM item; [m + TVINSERTSTRUCT tvins;[m +[36m@@ -637,34 +487,34 @@[m [mstatic HTREEITEM winTreeCopyItem(Ihandle* ih, HTREEITEM hItem, HTREEITEM hParent[m + item.cchTextMax = 255;[m + SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m + [m +[31m- if (full_copy) /* during a full copy the userdata reference is not copied */[m +[32m+[m[32m if (is_copy) /* during a copy the itemdata reference is not reused */[m + {[m + /* create a new one */[m + winTreeItemData* itemDataNew = malloc(sizeof(winTreeItemData));[m + memcpy(itemDataNew, (void*)item.lParam, sizeof(winTreeItemData));[m +[31m- itemDataNew->userdata = NULL;[m + item.lParam = (LPARAM)itemDataNew;[m + }[m + [m +[31m- /* Copy everything including user data reference */[m +[32m+[m[32m /* Copy everything including itemdata reference */[m + tvins.item = item; [m + tvins.hInsertAfter = hPosition;[m + tvins.hParent = hParent;[m + [m +[31m- /* Add the node to the tree-view control */[m +[32m+[m[32m /* Add the new node */[m +[32m+[m[32m ih->data->node_count++;[m + return (HTREEITEM)SendMessage(ih->handle, TVM_INSERTITEM, 0, (LPARAM)(LPTVINSERTSTRUCT)&tvins);[m + }[m + [m +[31m-static void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy)[m +[32m+[m[32mstatic void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy)[m + {[m + HTREEITEM hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemSrc);[m +[31m- HTREEITEM hNewItem = TVI_FIRST;[m +[32m+[m[32m HTREEITEM hItemNew = TVI_FIRST;[m + while (hChildSrc != NULL)[m + {[m +[31m- hNewItem = winTreeCopyItem(ih, hChildSrc, hItemDst, hNewItem, full_copy); /* Use the same order they where enumerated */[m +[32m+[m[32m hItemNew = winTreeCopyItem(ih, hChildSrc, hItemDst, hItemNew, is_copy); /* Use the same order they where enumerated */[m + [m + /* Recursively transfer all the items */[m +[31m- winTreeCopyChildren(ih, hChildSrc, hNewItem, full_copy); [m +[32m+[m[32m winTreeCopyChildren(ih, hChildSrc, hItemNew, is_copy);[m[41m [m + [m + /* Go to next sibling item */[m + hChildSrc = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildSrc);[m +[36m@@ -672,11 +522,18 @@[m [mstatic void winTreeCopyChildren(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItem[m + }[m + [m + /* Copies all items in a branch to a new location. Returns the new branch node. */[m +[31m-static HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int full_copy)[m +[32m+[m[32mstatic HTREEITEM winTreeCopyMoveNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hItemDst, int is_copy)[m + {[m +[31m- HTREEITEM hNewItem, hParent;[m +[32m+[m[32m HTREEITEM hItemNew, hParent;[m + TVITEM item;[m + winTreeItemData* itemDataDst;[m +[32m+[m[32m int id_new, count, id_src, id_dst;[m +[32m+[m +[32m+[m[32m int old_count = ih->data->node_count;[m +[32m+[m +[32m+[m[32m id_src = iupTreeFindNodeId(ih, hItemSrc);[m +[32m+[m[32m id_dst = iupTreeFindNodeId(ih, hItemDst);[m +[32m+[m[32m id_new = id_dst+1; /* contains the position for a copy operation */[m + [m + /* Get DST node attributes */[m + item.hItem = hItemDst;[m +[36m@@ -691,31 +548,64 @@[m [mstatic HTREEITEM winTreeCopyNode(Ihandle* ih, HTREEITEM hItemSrc, HTREEITEM hIte[m + hItemDst = TVI_FIRST;[m + }[m + else[m +[31m- { [m +[32m+[m[32m {[m[41m [m +[32m+[m[32m if (itemDataDst->kind == ITREE_BRANCH)[m +[32m+[m[32m {[m +[32m+[m[32m int child_count = iupdrvTreeTotalChildCount(ih, hItemDst);[m +[32m+[m[32m id_new += child_count;[m +[32m+[m[32m }[m +[32m+[m + /* copy as next brother of item or collapsed branch */[m + hParent = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItemDst);[m + }[m + [m +[31m- hNewItem = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, full_copy);[m +[32m+[m[32m /* move to the same place does nothing */[m +[32m+[m[32m if (!is_copy && id_new == id_src)[m +[32m+[m[32m return NULL;[m +[32m+[m +[32m+[m[32m hItemNew = winTreeCopyItem(ih, hItemSrc, hParent, hItemDst, is_copy);[m +[32m+[m +[32m+[m[32m winTreeCopyChildren(ih, hItemSrc, hItemNew, is_copy);[m +[32m+[m +[32m+[m[32m count = ih->data->node_count - old_count;[m +[32m+[m[32m iupTreeCopyMoveCache(ih, id_src, id_new, count, is_copy);[m +[32m+[m +[32m+[m[32m if (!is_copy)[m +[32m+[m[32m {[m +[32m+[m[32m /* Deleting the node (and its children) from the old position */[m +[32m+[m[32m /* do not delete the itemdata, we reuse the references in CopyNode */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m +[31m- winTreeCopyChildren(ih, hItemSrc, hNewItem, full_copy);[m +[32m+[m[32m /* restore count, because we remove src */[m +[32m+[m[32m ih->data->node_count = old_count;[m + [m +[31m- return hNewItem;[m +[32m+[m[32m /* compensate position for a move */[m +[32m+[m[32m if (id_new > id_src)[m +[32m+[m[32m id_new -= count;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m winTreeRebuildNodeCache(ih, id_new, hItemNew);[m +[32m+[m +[32m+[m[32m return hItemNew;[m + }[m + [m + /*****************************************************************************/[m + /* MANIPULATING IMAGES */[m + /*****************************************************************************/[m +[31m-static void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)[m +[32m+[m[32mstatic void winTreeUpdateImages(Ihandle* ih, int mode)[m + {[m +[31m- HTREEITEM hItemChild;[m +[32m+[m[32m HTREEITEM hItem;[m + TVITEM item;[m + winTreeItemData* itemData;[m +[32m+[m[32m int i;[m + [m + /* called when one of the default images is changed */[m +[31m-[m +[31m- while(hItem != NULL)[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m + {[m +[32m+[m[32m hItem = ih->data->node_cache[i].node_handle;[m +[32m+[m + /* Get node attributes */[m + item.hItem = hItem;[m + item.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE;[m +[36m@@ -742,10 +632,6 @@[m [mstatic void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)[m + SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);[m + }[m + }[m +[31m-[m +[31m- /* Recursively traverse child items */[m +[31m- hItemChild = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[31m- winTreeUpdateImages(ih, hItemChild, mode);[m + }[m + else[m + {[m +[36m@@ -756,9 +642,6 @@[m [mstatic void winTreeUpdateImages(Ihandle* ih, HTREEITEM hItem, int mode)[m + SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);[m + }[m + }[m +[31m-[m +[31m- /* Go to next sibling node */[m +[31m- hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem);[m + }[m + }[m + [m +[36m@@ -828,29 +711,57 @@[m [mstatic int winTreeCallBranchLeafCb(Ihandle* ih, HTREEITEM hItem)[m + [m + if (itemData->kind == ITREE_BRANCH)[m + {[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPTREE_IGNORE_BRANCH_CB"))[m +[32m+[m[32m return IUP_DEFAULT;[m +[32m+[m + if (item.state & TVIS_EXPANDED)[m + {[m + IFni cbBranchClose = (IFni)IupGetCallback(ih, "BRANCHCLOSE_CB");[m + if (cbBranchClose)[m +[31m- return cbBranchClose(ih, winTreeGetNodeId(ih, hItem));[m +[32m+[m[32m return cbBranchClose(ih, iupTreeFindNodeId(ih, hItem));[m + }[m + else[m + {[m + IFni cbBranchOpen = (IFni)IupGetCallback(ih, "BRANCHOPEN_CB");[m + if (cbBranchOpen)[m +[31m- return cbBranchOpen(ih, winTreeGetNodeId(ih, hItem));[m +[32m+[m[32m return cbBranchOpen(ih, iupTreeFindNodeId(ih, hItem));[m + }[m + }[m + else[m + {[m + IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");[m + if (cbExecuteLeaf)[m +[31m- return cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItem));[m +[32m+[m[32m return cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItem));[m + }[m + [m + return IUP_DEFAULT;[m + }[m + [m +[32m+[m[32mstatic void winTreeCallMultiUnSelectionCb(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTIUNSELECTION_CB");[m +[32m+[m[32m IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");[m +[32m+[m[32m if (cbSelec || cbMulti)[m +[32m+[m[32m {[m +[32m+[m[32m Iarray* markedArray = winTreeGetSelectedArrayId(ih);[m +[32m+[m[32m int* id_hitem = (int*)iupArrayGetData(markedArray);[m +[32m+[m[32m int i, count = iupArrayCount(markedArray);[m +[32m+[m +[32m+[m[32m if (count > 1)[m +[32m+[m[32m {[m +[32m+[m[32m if (cbMulti)[m +[32m+[m[32m cbMulti(ih, id_hitem, iupArrayCount(markedArray));[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m for (i=0; i<count; i++)[m +[32m+[m[32m cbSelec(ih, id_hitem[i], 0);[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupArrayDestroy(markedArray);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m + static void winTreeCallMultiSelectionCb(Ihandle* ih)[m + {[m + IFnIi cbMulti = (IFnIi)IupGetCallback(ih, "MULTISELECTION_CB");[m +[36m@@ -885,6 +796,8 @@[m [mstatic void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem)[m + IFnii cbSelec = (IFnii)IupGetCallback(ih, "SELECTION_CB");[m + if (cbSelec)[m + {[m +[32m+[m[32m int id;[m +[32m+[m + if (ih->data->mark_mode == ITREE_MARK_MULTIPLE && IupGetCallback(ih,"MULTISELECTION_CB"))[m + {[m + if ((GetKeyState(VK_SHIFT) & 0x8000))[m +[36m@@ -894,7 +807,9 @@[m [mstatic void winTreeCallSelectionCb(Ihandle* ih, int status, HTREEITEM hItem)[m + if (iupAttribGet(ih, "_IUPTREE_IGNORE_SELECTION_CB"))[m + return;[m + [m +[31m- cbSelec(ih, winTreeGetNodeId(ih, hItem), status);[m +[32m+[m[32m id = iupTreeFindNodeId(ih, hItem);[m +[32m+[m[32m if (id != -1)[m +[32m+[m[32m cbSelec(ih, id, status);[m + }[m + }[m + [m +[36m@@ -911,8 +826,8 @@[m [mstatic int winTreeCallDragDropCb(Ihandle* ih, HTREEITEM hItemDrag, HTREEITEM hIt[m + [m + if (cbDragDrop)[m + {[m +[31m- int drag_id = winTreeGetNodeId(ih, hItemDrag);[m +[31m- int drop_id = winTreeGetNodeId(ih, hItemDrop);[m +[32m+[m[32m int drag_id = iupTreeFindNodeId(ih, hItemDrag);[m +[32m+[m[32m int drop_id = iupTreeFindNodeId(ih, hItemDrop);[m + return cbDragDrop(ih, drag_id, drop_id, is_shift, *is_ctrl);[m + }[m + [m +[36m@@ -929,8 +844,8 @@[m [mstatic int winTreeSetImageBranchExpandedAttrib(Ihandle* ih, const char* value)[m + {[m + ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, value);[m + [m +[31m- /* Update all images, starting at root node */[m +[31m- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_EXPANDED);[m +[32m+[m[32m /* Update all images */[m +[32m+[m[32m winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_EXPANDED);[m + [m + return 1;[m + }[m +[36m@@ -939,8 +854,8 @@[m [mstatic int winTreeSetImageBranchCollapsedAttrib(Ihandle* ih, const char* value)[m + {[m + ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, value);[m + [m +[31m- /* Update all images, starting at root node */[m +[31m- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_COLLAPSED);[m +[32m+[m[32m /* Update all images */[m +[32m+[m[32m winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_COLLAPSED);[m + [m + return 1;[m + }[m +[36m@@ -949,8 +864,8 @@[m [mstatic int winTreeSetImageLeafAttrib(Ihandle* ih, const char* value)[m + {[m + ih->data->def_image_leaf = (void*)winTreeGetImageIndex(ih, value);[m + [m +[31m- /* Update all images, starting at root node */[m +[31m- winTreeUpdateImages(ih, (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0), ITREE_UPDATEIMAGE_LEAF);[m +[32m+[m[32m /* Update all images */[m +[32m+[m[32m winTreeUpdateImages(ih, ITREE_UPDATEIMAGE_LEAF);[m + [m + return 1;[m + }[m +[36m@@ -959,7 +874,7 @@[m [mstatic int winTreeSetImageExpandedAttrib(Ihandle* ih, const char* name_id, const[m + {[m + TVITEM item;[m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[36m@@ -986,7 +901,7 @@[m [mstatic int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v[m + {[m + TVITEM item;[m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[36m@@ -1025,7 +940,7 @@[m [mstatic int winTreeSetImageAttrib(Ihandle* ih, const char* name_id, const char* v[m + [m + static int winTreeSetTopItemAttrib(Ihandle* ih, const char* value)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, value);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, value);[m + if (hItem)[m + SendMessage(ih->handle, TVM_ENSUREVISIBLE, 0, (LPARAM)hItem);[m + return 0;[m +[36m@@ -1056,9 +971,8 @@[m [mstatic int winTreeSetSpacingAttrib(Ihandle* ih, const char* value)[m + static int winTreeSetExpandAllAttrib(Ihandle* ih, const char* value)[m + {[m + HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[31m- HTREEITEM hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItemRoot); /* skip the root node that is always expanded */[m + int expand = iupStrBoolean(value);[m +[31m- winTreeExpandTree(ih, hItem, expand);[m +[32m+[m[32m winTreeExpandTree(ih, hItemRoot, expand);[m + return 0;[m + }[m + [m +[36m@@ -1131,7 +1045,7 @@[m [mstatic char* winTreeGetTitle(Ihandle* ih, HTREEITEM hItem)[m + [m + static char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + return winTreeGetTitle(ih, hItem);[m +[36m@@ -1140,10 +1054,13 @@[m [mstatic char* winTreeGetTitleAttrib(Ihandle* ih, const char* name_id)[m + static int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m + TVITEM item; [m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[32m+[m[32m if (!value)[m +[32m+[m[32m value = "";[m +[32m+[m + item.hItem = hItem;[m + item.mask = TVIF_HANDLE | TVIF_TEXT; [m + item.pszText = (char*)value;[m +[36m@@ -1151,60 +1068,11 @@[m [mstatic int winTreeSetTitleAttrib(Ihandle* ih, const char* name_id, const char* v[m + return 0;[m + }[m + [m +[31m-static char* winTreeGetFindUserDataAttrib(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- int id;[m +[31m- char* str = (char*)(name_id+1); /* skip ':' */[m +[31m- void* userdata = NULL;[m +[31m- if (sscanf(str, "%p", &userdata)!=1)[m +[31m- return NULL;[m +[31m- id = winTreeGetUserDataId(ih, userdata);[m +[31m- if (id == -1)[m +[31m- return NULL;[m +[31m- str = iupStrGetMemory(16);[m +[31m- sprintf(str, "%d", id);[m +[31m- return str;[m +[31m-}[m +[31m-[m +[31m-static char* winTreeGetUserDataAttrib(Ihandle* ih, const char* name_id)[m +[31m-{[m +[31m- TVITEM item;[m +[31m- winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[31m- if (!hItem)[m +[31m- return NULL;[m +[31m-[m +[31m- item.hItem = hItem;[m +[31m- item.mask = TVIF_HANDLE | TVIF_PARAM;[m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[31m- itemData = (winTreeItemData*)item.lParam;[m +[31m-[m +[31m- return itemData->userdata;[m +[31m-}[m +[31m-[m +[31m-static int winTreeSetUserDataAttrib(Ihandle* ih, const char* name_id, const char* value)[m +[31m-{[m +[31m- TVITEM item; [m +[31m- winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[31m- if (!hItem)[m +[31m- return 0;[m +[31m-[m +[31m- item.hItem = hItem;[m +[31m- item.mask = TVIF_HANDLE | TVIF_PARAM;[m +[31m- SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[31m- itemData = (winTreeItemData*)item.lParam;[m +[31m-[m +[31m- itemData->userdata = (void*)value;[m +[31m-[m +[31m- return 0;[m +[31m-}[m +[31m-[m + static char* winTreeGetTitleFontAttrib(Ihandle* ih, const char* name_id)[m + {[m + TVITEM item;[m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[36m@@ -1220,7 +1088,7 @@[m [mstatic int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha[m + {[m + TVITEM item; [m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[36m@@ -1230,11 +1098,23 @@[m [mstatic int winTreeSetTitleFontAttrib(Ihandle* ih, const char* name_id, const cha[m + itemData = (winTreeItemData*)item.lParam;[m + [m + if (value)[m +[32m+[m[32m {[m + itemData->hFont = iupwinGetHFont(value);[m +[32m+[m[32m if (itemData->hFont)[m +[32m+[m[32m {[m +[32m+[m[32m TV_ITEM item;[m +[32m+[m[32m item.mask = TVIF_STATE | TVIF_HANDLE | TVIF_TEXT;[m +[32m+[m[32m item.stateMask = TVIS_BOLD;[m +[32m+[m[32m item.hItem = hItem;[m +[32m+[m[32m item.pszText = winTreeGetTitle(ih, hItem); /* reset text to resize item */[m +[32m+[m[32m item.state = (strstr(value, "Bold")||strstr(value, "BOLD"))? TVIS_BOLD: 0;[m +[32m+[m[32m SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)&item);[m +[32m+[m[32m }[m +[32m+[m[32m }[m + else[m + itemData->hFont = NULL;[m + [m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + [m + return 0;[m + }[m +[36m@@ -1259,7 +1139,7 @@[m [mstatic char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id)[m + {[m + TVITEM item;[m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[36m@@ -1281,25 +1161,34 @@[m [mstatic char* winTreeGetStateAttrib(Ihandle* ih, const char* name_id)[m + [m + static int winTreeSetStateAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m TVITEM item;[m +[32m+[m[32m winTreeItemData* itemData;[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[31m- winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED"));[m +[32m+[m[32m /* Get Children: branch or leaf */[m +[32m+[m[32m item.mask = TVIF_HANDLE|TVIF_PARAM;[m[41m [m +[32m+[m[32m item.hItem = hItem;[m +[32m+[m[32m SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m +[32m+[m[32m itemData = (winTreeItemData*)item.lParam;[m +[32m+[m +[32m+[m[32m if (itemData->kind == ITREE_BRANCH)[m +[32m+[m[32m winTreeExpandItem(ih, hItem, iupStrEqualNoCase(value, "EXPANDED"));[m +[32m+[m + return 0;[m + }[m + [m + static char* winTreeGetDepthAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[31m- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[31m- int depth = 0;[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m int depth = -1;[m + char* str;[m + [m +[31m- if (!hItem)[m +[32m+[m[32m if (!hItem)[m[41m [m + return NULL;[m + [m +[31m- while((hItemRoot != hItem) && (hItem != NULL))[m +[32m+[m[32m while(hItem != NULL)[m + {[m + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PARENT, (LPARAM)hItem);[m + depth++;[m +[36m@@ -1314,12 +1203,13 @@[m [mstatic int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char[m + {[m + HTREEITEM hItemDst, hParent, hItemSrc;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- hItemSrc = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m +[32m+[m[32m hItemSrc = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItemSrc)[m + return 0;[m +[31m- hItemDst = winTreeFindNodeFromString(ih, value);[m +[32m+[m[32m hItemDst = iupTreeGetNodeFromString(ih, value);[m + if (!hItemDst)[m + return 0;[m + [m +[36m@@ -1332,11 +1222,8 @@[m [mstatic int winTreeSetMoveNodeAttrib(Ihandle* ih, const char* name_id, const char[m + return 0;[m + }[m + [m +[31m- /* Copying the node and its children to the new position */[m +[31m- winTreeCopyNode(ih, hItemSrc, hItemDst, 0); /* not a full copy, preserve user data */[m +[31m-[m +[31m- /* do not delete the user data, we copy the references in CopyNode */[m +[31m- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemSrc);[m +[32m+[m[32m /* Move the node and its children to the new position */[m +[32m+[m[32m winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 0);[m + [m + return 0;[m + }[m +[36m@@ -1345,12 +1232,13 @@[m [mstatic int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char[m + {[m + HTREEITEM hItemDst, hParent, hItemSrc;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- hItemSrc = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m +[32m+[m[32m hItemSrc = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItemSrc)[m + return 0;[m +[31m- hItemDst = winTreeFindNodeFromString(ih, value);[m +[32m+[m[32m hItemDst = iupTreeGetNodeFromString(ih, value);[m + if (!hItemDst)[m + return 0;[m + [m +[36m@@ -1363,8 +1251,8 @@[m [mstatic int winTreeSetCopyNodeAttrib(Ihandle* ih, const char* name_id, const char[m + return 0;[m + }[m + [m +[31m- /* Copying the node and its children to the new position */[m +[31m- winTreeCopyNode(ih, hItemSrc, hItemDst, 1);[m +[32m+[m[32m /* Copy the node and its children to the new position */[m +[32m+[m[32m winTreeCopyMoveNode(ih, hItemSrc, hItemDst, 1);[m + [m + return 0;[m + }[m +[36m@@ -1375,7 +1263,7 @@[m [mstatic char* winTreeGetColorAttrib(Ihandle* ih, const char* name_id)[m + char* str;[m + TVITEM item;[m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[36m@@ -1398,7 +1286,7 @@[m [mstatic int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v[m + unsigned char r, g, b;[m + TVITEM item;[m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[36m@@ -1410,7 +1298,7 @@[m [mstatic int winTreeSetColorAttrib(Ihandle* ih, const char* name_id, const char* v[m + if (iupStrToRGB(value, &r, &g, &b))[m + {[m + itemData->color = RGB(r,g,b);[m +[31m- iupdrvDisplayUpdate(ih);[m +[32m+[m[32m iupdrvPostRedraw(ih);[m + }[m + [m + return 0;[m +[36m@@ -1435,7 +1323,7 @@[m [mstatic char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)[m + {[m + int count;[m + char* str;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[36m@@ -1454,18 +1342,11 @@[m [mstatic char* winTreeGetChildCountAttrib(Ihandle* ih, const char* name_id)[m + return str;[m + }[m + [m +[31m-static char* winTreeGetCountAttrib(Ihandle* ih)[m +[31m-{[m +[31m- char* str = iupStrGetMemory(10);[m +[31m- sprintf(str, "%d", (int)SendMessage(ih->handle, TVM_GETCOUNT, 0, 0));[m +[31m- return str;[m +[31m-}[m +[31m-[m + static char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id)[m + {[m + TVITEM item; [m + winTreeItemData* itemData;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[36m@@ -1483,7 +1364,7 @@[m [mstatic char* winTreeGetKindAttrib(Ihandle* ih, const char* name_id)[m + static char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id)[m + {[m + char* str;[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[36m@@ -1492,15 +1373,13 @@[m [mstatic char* winTreeGetParentAttrib(Ihandle* ih, const char* name_id)[m + return NULL;[m + [m + str = iupStrGetMemory(10);[m +[31m- sprintf(str, "%d", winTreeGetNodeId(ih, hItem));[m +[32m+[m[32m sprintf(str, "%d", iupTreeFindNodeId(ih, hItem));[m + return str;[m + }[m + [m +[31m-static void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem)[m +[32m+[m[32mstatic void winTreeRemoveItemData(Ihandle* ih, HTREEITEM hItem, IFns cb, int id)[m + {[m + TVITEM item; [m +[31m- HTREEITEM hChildItem;[m +[31m-[m + item.hItem = hItem;[m + item.mask = TVIF_HANDLE|TVIF_PARAM; [m + if (SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item))[m +[36m@@ -1508,81 +1387,153 @@[m [mstatic void winTreeDelNodeData(Ihandle* ih, HTREEITEM hItem)[m + winTreeItemData* itemData = (winTreeItemData*)item.lParam;[m + if (itemData)[m + {[m +[31m- IFnis cb = (IFnis)IupGetCallback(ih, "NODEREMOVED_CB");[m +[31m- if (cb) cb(ih, winTreeGetNodeId(ih, hItem), (char*)itemData->userdata);[m +[32m+[m[32m if (cb)[m[41m [m +[32m+[m[32m cb(ih, (char*)ih->data->node_cache[id].userdata);[m +[32m+[m + free(itemData);[m + item.lParam = (LPARAM)NULL;[m + SendMessage(ih->handle, TVM_SETITEM, 0, (LPARAM)(LPTVITEM)&item);[m + }[m + }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void winTreeRemoveNodeDataRec(Ihandle* ih, HTREEITEM hItem, IFns cb, int *id)[m +[32m+[m[32m{[m +[32m+[m[32m int old_id = *id;[m + [m +[31m- hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m +[32m+[m[32m /* Check whether we have child items */[m +[32m+[m[32m /* remove from children first */[m +[32m+[m[32m HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m + while (hChildItem)[m + {[m +[31m- winTreeDelNodeData(ih, hChildItem);[m +[32m+[m[32m /* go recursive to children */[m +[32m+[m[32m winTreeRemoveNodeDataRec(ih, hChildItem, cb, id);[m +[32m+[m +[32m+[m[32m /* Go to next sibling item */[m + hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hChildItem);[m + }[m +[32m+[m +[32m+[m[32m /* actually do it for the node */[m +[32m+[m[32m ih->data->node_count--;[m +[32m+[m[32m (*id)++;[m +[32m+[m +[32m+[m[32m winTreeRemoveItemData(ih, hItem, cb, old_id);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void winTreeRemoveNodeData(Ihandle* ih, HTREEITEM hItem, int call_cb)[m +[32m+[m[32m{[m +[32m+[m[32m IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;[m +[32m+[m[32m int old_count = ih->data->node_count;[m +[32m+[m[32m int id = iupTreeFindNodeId(ih, hItem);[m +[32m+[m[32m int old_id = id;[m +[32m+[m +[32m+[m[32m winTreeRemoveNodeDataRec(ih, hItem, cb, &id);[m +[32m+[m +[32m+[m[32m if (call_cb)[m +[32m+[m[32m iupTreeDelFromCache(ih, old_id, old_count-ih->data->node_count);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void winTreeRemoveAllNodeData(Ihandle* ih, int call_cb)[m +[32m+[m[32m{[m +[32m+[m[32m IFns cb = call_cb? (IFns)IupGetCallback(ih, "NODEREMOVED_CB"): NULL;[m +[32m+[m[32m int i, old_count = ih->data->node_count;[m +[32m+[m[32m HTREEITEM hItem;[m +[32m+[m +[32m+[m[32m for (i = 0; i < ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m hItem = ih->data->node_cache[i].node_handle;[m +[32m+[m[32m winTreeRemoveItemData(ih, hItem, cb, i);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m ih->data->node_count = 0;[m +[32m+[m +[32m+[m[32m if (call_cb)[m +[32m+[m[32m iupTreeDelFromCache(ih, 0, old_count);[m + }[m + [m + static int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m +[31m- if(iupStrEqualNoCase(value, "SELECTED")) /* selected here means the specified one */[m +[32m+[m[32m if (iupStrEqualNoCase(value, "ALL"))[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[31m- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[32m+[m[32m winTreeRemoveAllNodeData(ih, 1);[m + [m +[31m- /* the root node can't be deleted */[m +[31m- if(!hItem || hItem == hItemRoot)[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)TVI_ROOT);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m[32m return 0;[m +[32m+[m[32m }[m +[32m+[m[32m if (iupStrEqualNoCase(value, "SELECTED")) /* selected here means the reference one */[m +[32m+[m[32m {[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m +[32m+[m[32m if(!hItem)[m + return 0;[m + [m +[31m- /* deleting the specified node (and it's children) */[m +[31m- winTreeDelNodeData(ih, hItem);[m +[32m+[m[32m /* deleting the reference node (and it's children) */[m +[32m+[m[32m winTreeRemoveNodeData(ih, hItem, 1);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m + return 0;[m + }[m +[31m- else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the specified one */[m +[32m+[m[32m else if(iupStrEqualNoCase(value, "CHILDREN")) /* children of the reference node */[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + HTREEITEM hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m + [m + if(!hItem)[m + return 0;[m + [m +[31m- /* deleting the selected node's children */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m +[32m+[m[32m /* deleting the reference node children */[m + while (hChildItem)[m + {[m +[31m- winTreeDelNodeData(ih, hChildItem);[m +[32m+[m[32m winTreeRemoveNodeData(ih, hChildItem, 1);[m + SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hChildItem);[m + hChildItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hItem);[m + }[m + [m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + return 0;[m + }[m + else if(iupStrEqualNoCase(value, "MARKED"))[m + {[m +[31m- int i, count;[m +[31m- Iarray* markedArray;[m +[31m- HTREEITEM* hItemArrayData;[m +[31m- HTREEITEM hItemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[32m+[m[32m int i, del_focus = 0;[m +[32m+[m[32m HTREEITEM hItemFocus;[m + [m +[31m- /* Delete the array of marked nodes */[m +[31m- markedArray = winTreeGetSelectedArray(ih);[m +[31m- hItemArrayData = (HTREEITEM*)iupArrayGetData(markedArray);[m +[31m- count = iupArrayCount(markedArray);[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m hItemFocus = iupdrvTreeGetFocusNode(ih);[m + [m +[31m- for(i = 0; i < count; i++)[m +[32m+[m[32m for(i = 1; i < ih->data->node_count; /* increment only if not removed */)[m + {[m +[31m- if (hItemArrayData[i] != hItemRoot) /* the root node can't be deleted */[m +[32m+[m[32m if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle))[m + {[m +[31m- winTreeDelNodeData(ih, hItemArrayData[i]);[m +[31m- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemArrayData[i]);[m +[32m+[m[32m HTREEITEM hItem = ih->data->node_cache[i].node_handle;[m +[32m+[m[32m if (hItemFocus == hItem)[m +[32m+[m[32m {[m +[32m+[m[32m del_focus = 1;[m +[32m+[m[32m i++;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m winTreeRemoveNodeData(ih, hItem, 1);[m +[32m+[m[32m SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItem);[m +[32m+[m[32m }[m + }[m +[32m+[m[32m else[m +[32m+[m[32m i++;[m + }[m + [m +[31m- iupArrayDestroy(markedArray);[m +[32m+[m[32m if (del_focus)[m +[32m+[m[32m {[m +[32m+[m[32m winTreeRemoveNodeData(ih, hItemFocus, 1);[m +[32m+[m[32m SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemFocus);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m + return 0;[m + }[m +[36m@@ -1592,22 +1543,13 @@[m [mstatic int winTreeSetDelNodeAttrib(Ihandle* ih, const char* name_id, const char*[m + [m + static int winTreeSetRenameAttrib(Ihandle* ih, const char* value)[m + { [m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m + if (ih->data->show_rename)[m + {[m +[31m- IFni cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");[m +[31m- if (cbShowRename)[m +[31m- cbShowRename(ih, winTreeGetNodeId(ih, hItemFocus));[m +[31m-[m +[32m+[m[32m HTREEITEM hItemFocus;[m + SetFocus(ih->handle); /* the tree must have focus to activate the edit */[m +[32m+[m[32m hItemFocus = iupdrvTreeGetFocusNode(ih);[m + SendMessage(ih->handle, TVM_EDITLABEL, 0, (LPARAM)hItemFocus);[m + }[m +[31m- else[m +[31m- {[m +[31m- IFnis cbRenameNode = (IFnis)IupGetCallback(ih, "RENAMENODE_CB");[m +[31m- if (cbRenameNode)[m +[31m- cbRenameNode(ih, winTreeGetNodeId(ih, hItemFocus), winTreeGetTitle(ih, hItemFocus)); [m +[31m- }[m + [m + (void)value;[m + return 0;[m +[36m@@ -1615,11 +1557,11 @@[m [mstatic int winTreeSetRenameAttrib(Ihandle* ih, const char* value)[m + [m + static char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return NULL;[m + [m +[31m- if (winTreeIsItemSelected(ih, hItem))[m +[32m+[m[32m if (winTreeIsNodeSelected(ih, hItem))[m + return "YES";[m + else [m + return "NO";[m +[36m@@ -1627,17 +1569,23 @@[m [mstatic char* winTreeGetMarkedAttrib(Ihandle* ih, const char* name_id)[m + [m + static int winTreeSetMarkedAttrib(Ihandle* ih, const char* name_id, const char* value)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[31m- winTreeSelectItem(ih, hItem, iupStrBoolean(value));[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m +[32m+[m[32m {[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m +[32m+[m[32m winTreeSelectNode(ih, hItemFocus, 0);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m winTreeSelectNode(ih, hItem, iupStrBoolean(value));[m + return 0;[m + }[m + [m + static int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, name_id);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, name_id);[m + if (!hItem)[m + return 0;[m + [m +[36m@@ -1649,15 +1597,59 @@[m [mstatic int winTreeSetMarkStartAttrib(Ihandle* ih, const char* name_id)[m + static char* winTreeGetValueAttrib(Ihandle* ih)[m + {[m + char* str;[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (!hItemFocus)[m +[31m- return "0"; /* default VALUE is root */[m +[32m+[m[32m {[m +[32m+[m[32m if (ih->data->node_count)[m +[32m+[m[32m return "0"; /* default VALUE is root */[m +[32m+[m[32m else[m +[32m+[m[32m return "-1";[m +[32m+[m[32m }[m + [m + str = iupStrGetMemory(16);[m +[31m- sprintf(str, "%d", winTreeGetNodeId(ih, hItemFocus));[m +[32m+[m[32m sprintf(str, "%d", iupTreeFindNodeId(ih, hItemFocus));[m +[32m+[m[32m return str;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic char* winTreeGetMarkedNodesAttrib(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m char* str = iupStrGetMemory(ih->data->node_count+1);[m +[32m+[m[32m int i;[m +[32m+[m +[32m+[m[32m for (i=0; i<ih->data->node_count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (winTreeIsNodeSelected(ih, ih->data->node_cache[i].node_handle))[m +[32m+[m[32m str[i] = '+';[m +[32m+[m[32m else[m +[32m+[m[32m str[i] = '-';[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m str[ih->data->node_count] = 0;[m + return str;[m + }[m + [m +[32m+[m[32mstatic int winTreeSetMarkedNodesAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m int count, i;[m +[32m+[m +[32m+[m[32m if (ih->data->mark_mode==ITREE_MARK_SINGLE || !value)[m +[32m+[m[32m return 0;[m +[32m+[m +[32m+[m[32m count = strlen(value);[m +[32m+[m[32m if (count > ih->data->node_count)[m +[32m+[m[32m count = ih->data->node_count;[m +[32m+[m +[32m+[m[32m for (i=0; i<count; i++)[m +[32m+[m[32m {[m +[32m+[m[32m if (value[i] == '+')[m +[32m+[m[32m winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 1);[m +[32m+[m[32m else[m +[32m+[m[32m winTreeSelectNode(ih, ih->data->node_cache[i].node_handle, 0);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m + static int winTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + {[m + if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m +[36m@@ -1665,7 +1657,7 @@[m [mstatic int winTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + [m + if(iupStrEqualNoCase(value, "BLOCK"))[m + {[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + winTreeSelectRange(ih, (HTREEITEM)iupAttribGet(ih, "_IUPTREE_MARKSTART_NODE"), hItemFocus, 0);[m + }[m + else if(iupStrEqualNoCase(value, "CLEARALL"))[m +[36m@@ -1673,14 +1665,14 @@[m [mstatic int winTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + else if(iupStrEqualNoCase(value, "MARKALL"))[m + winTreeSelectAll(ih);[m + else if(iupStrEqualNoCase(value, "INVERTALL")) /* INVERTALL *MUST* appear before INVERT, or else INVERTALL will never be called. */[m +[31m- winTreeForEach(ih, NULL, (winTreeNodeFunc)winTreeInvertSelectFunc, NULL);[m +[32m+[m[32m iupTreeForEach(ih, (iupTreeNodeFunc)winTreeInvertSelectFunc, NULL);[m + else if(iupStrEqualPartial(value, "INVERT")) /* iupStrEqualPartial allows the use of "INVERTid" form */[m + {[m +[31m- HTREEITEM hItem = winTreeFindNodeFromString(ih, &value[strlen("INVERT")]);[m +[32m+[m[32m HTREEITEM hItem = iupTreeGetNodeFromString(ih, &value[strlen("INVERT")]);[m + if (!hItem)[m + return 0;[m + [m +[31m- winTreeSelectItem(ih, hItem, -1); /* toggle */[m +[32m+[m[32m winTreeSelectNode(ih, hItem, -1); /* toggle */[m + }[m + else[m + {[m +[36m@@ -1690,10 +1682,10 @@[m [mstatic int winTreeSetMarkAttrib(Ihandle* ih, const char* value)[m + if (iupStrToStrStr(value, str1, str2, '-')!=2)[m + return 0;[m + [m +[31m- hItem1 = winTreeFindNodeFromString(ih, str1);[m +[32m+[m[32m hItem1 = iupTreeGetNodeFromString(ih, str1);[m + if (!hItem1) [m + return 0;[m +[31m- hItem2 = winTreeFindNodeFromString(ih, str2);[m +[32m+[m[32m hItem2 = iupTreeGetNodeFromString(ih, str2);[m + if (!hItem2) [m + return 0;[m + [m +[36m@@ -1711,9 +1703,9 @@[m [mstatic int winTreeSetValueAttrib(Ihandle* ih, const char* value)[m + if (winTreeSetMarkAttrib(ih, value))[m + return 0;[m + [m +[31m- hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m hItemFocus = iupdrvTreeGetFocusNode(ih);[m + [m +[31m- if(iupStrEqualNoCase(value, "ROOT"))[m +[32m+[m[32m if(iupStrEqualNoCase(value, "ROOT") || iupStrEqualNoCase(value, "FIRST"))[m + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m + else if(iupStrEqualNoCase(value, "LAST"))[m + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_LASTVISIBLE, 0);[m +[36m@@ -1759,15 +1751,14 @@[m [mstatic int winTreeSetValueAttrib(Ihandle* ih, const char* value)[m + else if(iupStrEqualNoCase(value, "PREVIOUS"))[m + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus);[m + else[m +[31m- hItem = winTreeFindNodeFromString(ih, value);[m +[32m+[m[32m hItem = iupTreeGetNodeFromString(ih, value);[m + [m + if (hItem)[m + {[m + if (ih->data->mark_mode==ITREE_MARK_SINGLE)[m + {[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[31m- winTreeSelectItem(ih, hItem, 1);[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m[32m winTreeSelectNode(ih, hItemFocus, 0);[m +[32m+[m[32m winTreeSelectNode(ih, hItem, 1);[m + }[m + winTreeSetFocusNode(ih, hItem);[m + }[m +[36m@@ -1832,27 +1823,60 @@[m [mstatic LRESULT CALLBACK winTreeEditWinProc(HWND hwnd, UINT msg, WPARAM wp, LPARA[m + return CallWindowProc(oldProc, hwnd, msg, wp, lp);[m + }[m + [m +[31m-static void winTreeDrag(Ihandle* ih, int x, int y)[m +[32m+[m[32mstatic void winTreeBeginDrag(Ihandle* ih, int x, int y)[m + {[m +[31m- HTREEITEM hItemDrop;[m +[32m+[m[32m HIMAGELIST dragImageList;[m +[32m+[m +[32m+[m[32m HTREEITEM hItemDrag = winTreeFindNodeXY(ih, x, y);[m +[32m+[m[32m if (!hItemDrag)[m +[32m+[m[32m return;[m +[32m+[m +[32m+[m[32m SendMessage(ih->handle, TVM_ENDEDITLABELNOW, TRUE, 0);[m +[32m+[m +[32m+[m[32m /* store the drag-and-drop item */[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag);[m + [m +[32m+[m[32m /* get the image list for dragging */[m +[32m+[m[32m dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag);[m +[32m+[m[32m if (dragImageList)[m +[32m+[m[32m {[m +[32m+[m[32m POINT pt;[m +[32m+[m[32m ImageList_BeginDrag(dragImageList, 0, 0, 0);[m +[32m+[m +[32m+[m[32m pt.x = x;[m +[32m+[m[32m pt.y = y;[m +[32m+[m +[32m+[m[32m ClientToScreen(ih->handle, &pt);[m +[32m+[m[32m ImageList_DragEnter(NULL, pt.x, pt.y);[m +[32m+[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList);[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m ShowCursor(FALSE);[m +[32m+[m[32m SetCapture(ih->handle); /* drag only inside the tree */[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void winTreeDrag(Ihandle* ih, int x, int y)[m +[32m+[m[32m{[m +[32m+[m[32m HTREEITEM hItemDrop = winTreeFindNodeXY(ih, x, y);[m +[32m+[m[32m HTREEITEM hItemDrag = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM");[m + HIMAGELIST dragImageList = (HIMAGELIST)iupAttribGet(ih, "_IUPTREE_DRAGIMAGELIST");[m +[32m+[m + if (dragImageList)[m + {[m +[31m- POINT pnt;[m +[31m- pnt.x = x;[m +[31m- pnt.y = y;[m +[31m- GetCursorPos(&pnt);[m +[31m- ClientToScreen(GetDesktopWindow(), &pnt) ;[m +[31m- ImageList_DragMove(pnt.x, pnt.y);[m +[32m+[m[32m POINT pt;[m +[32m+[m[32m pt.x = x;[m +[32m+[m[32m pt.y = y;[m +[32m+[m[32m ClientToScreen(ih->handle, &pt);[m +[32m+[m[32m ImageList_DragMove(pt.x, pt.y);[m + }[m + [m +[31m- if ((hItemDrop = winTreeFindNodePointed(ih)) != NULL)[m +[32m+[m[32m if (hItemDrop && hItemDrop!=hItemDrag)[m + {[m + if(dragImageList)[m + ImageList_DragShowNolock(FALSE);[m + [m +[31m- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)hItemDrop);[m +[32m+[m[32m SendMessage(ih->handle, TVM_SETINSERTMARK, TRUE, (LPARAM)hItemDrop);[m + [m + /* store the drop item to be executed */[m + iupAttribSetStr(ih, "_IUPTREE_DROPITEM", (char*)hItemDrop);[m +[36m@@ -1860,6 +1884,8 @@[m [mstatic void winTreeDrag(Ihandle* ih, int x, int y)[m + if(dragImageList)[m + ImageList_DragShowNolock(TRUE);[m + }[m +[32m+[m[32m else[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL);[m + }[m + [m + static void winTreeDrop(Ihandle* ih)[m +[36m@@ -1882,7 +1908,7 @@[m [mstatic void winTreeDrop(Ihandle* ih)[m + ShowCursor(TRUE);[m + [m + /* Remove drop target highlighting */[m +[31m- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_DROPHILITE, (LPARAM)NULL);[m +[32m+[m[32m SendMessage(ih->handle, TVM_SETINSERTMARK, 0, (LPARAM)NULL);[m + [m + iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", NULL);[m + iupAttribSetStr(ih, "_IUPTREE_DROPITEM", NULL);[m +[36m@@ -1901,16 +1927,12 @@[m [mstatic void winTreeDrop(Ihandle* ih)[m + [m + if (winTreeCallDragDropCb(ih, hItemDrag, hItemDrop, &is_ctrl) == IUP_CONTINUE)[m + {[m +[31m- /* Copy the dragged item to the new position. */[m +[31m- HTREEITEM hItemNew = winTreeCopyNode(ih, hItemDrag, hItemDrop, is_ctrl);[m +[31m-[m +[31m- if (!is_ctrl)[m +[31m- {[m +[31m- /* do not delete the user data, we copy the references in CopyNode */[m +[31m- SendMessage(ih->handle, TVM_DELETEITEM, 0, (LPARAM)hItemDrag);[m +[31m- }[m +[32m+[m[32m /* Copy or move the dragged item to the new position. */[m +[32m+[m[32m HTREEITEM hItemNew = winTreeCopyMoveNode(ih, hItemDrag, hItemDrop, is_ctrl);[m + [m +[31m- SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew); /* set focus and selection */[m +[32m+[m[32m /* Set focus and selection */[m +[32m+[m[32m if (hItemNew)[m +[32m+[m[32m SendMessage(ih->handle, TVM_SELECTITEM, TVGN_CARET, (LPARAM)hItemNew);[m[41m [m + }[m + } [m + [m +[36m@@ -1929,9 +1951,7 @@[m [mstatic void winTreeExtendSelect(Ihandle* ih, int x, int y)[m + hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");[m + if (hItemFirstSel)[m + {[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + winTreeSelectRange(ih, hItemFirstSel, hItem, 1);[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m + iupAttribSetStr(ih, "_IUPTREE_LASTSELITEM", (char*)hItem);[m + winTreeSetFocusNode(ih, hItem);[m +[36m@@ -1952,10 +1972,10 @@[m [mstatic int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)[m + if (GetKeyState(VK_CONTROL) & 0x8000) /* Control key is down */[m + {[m + /* Toggle selection state */[m +[31m- winTreeSelectItem(ih, hItem, -1);[m +[32m+[m[32m winTreeSelectNode(ih, hItem, -1);[m + iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem);[m + [m +[31m- winTreeCallSelectionCb(ih, winTreeIsItemSelected(ih, hItem), hItem);[m +[32m+[m[32m winTreeCallSelectionCb(ih, winTreeIsNodeSelected(ih, hItem), hItem);[m + winTreeSetFocusNode(ih, hItem);[m + [m + return 1;[m +[36m@@ -1965,9 +1985,11 @@[m [mstatic int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)[m + HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");[m + if (hItemFirstSel)[m + {[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m +[32m+[m[32m int last_id = iupTreeFindNodeId(ih, hItem);[m + winTreeSelectRange(ih, hItemFirstSel, hItem, 1);[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m +[32m+[m +[32m+[m[32m /* if last selected item is a branch, then select its children */[m +[32m+[m[32m iupTreeSelectLastCollapsedBranch(ih, &last_id);[m + [m + winTreeCallMultiSelectionCb(ih);[m + winTreeSetFocusNode(ih, hItem);[m +[36m@@ -1975,11 +1997,15 @@[m [mstatic int winTreeMouseMultiSelect(Ihandle* ih, int x, int y)[m + }[m + }[m + [m +[32m+[m[32m winTreeCallMultiUnSelectionCb(ih);[m +[32m+[m + /* simple click */[m + winTreeClearSelection(ih, hItem);[m + iupAttribSetStr(ih, "_IUPTREE_FIRSTSELITEM", (char*)hItem);[m + iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", "1");[m + [m +[32m+[m[32m /* Call SELECT_CB for all unselected nodes */[m +[32m+[m + return 0;[m + }[m + [m +[36m@@ -2039,7 +2065,7 @@[m [mstatic int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + [m + if (wp == VK_RETURN)[m + {[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (winTreeCallBranchLeafCb(ih, hItemFocus) != IUP_IGNORE)[m + winTreeExpandItem(ih, hItemFocus, -1);[m + [m +[36m@@ -2056,14 +2082,14 @@[m [mstatic int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + {[m + if (GetKeyState(VK_CONTROL) & 0x8000)[m + {[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + /* Toggle selection state */[m +[31m- winTreeSelectItem(ih, hItemFocus, -1);[m +[32m+[m[32m winTreeSelectNode(ih, hItemFocus, -1);[m + }[m + }[m + else if (wp == VK_UP || wp == VK_DOWN)[m + {[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + if (wp == VK_UP)[m + hItemFocus = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_PREVIOUSVISIBLE, (LPARAM)hItemFocus);[m + else[m +[36m@@ -2084,9 +2110,7 @@[m [mstatic int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + HTREEITEM hItemFirstSel = (HTREEITEM)iupAttribGet(ih, "_IUPTREE_FIRSTSELITEM");[m + if (hItemFirstSel)[m + {[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", "1");[m + winTreeSelectRange(ih, hItemFirstSel, hItemFocus, 1);[m +[31m- iupAttribSetStr(ih, "_IUPTREE_IGNORE_SELECTION_CB", NULL);[m + [m + winTreeCallMultiSelectionCb(ih);[m + winTreeSetFocusNode(ih, hItemFocus);[m +[36m@@ -2138,10 +2162,20 @@[m [mstatic int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + }[m + break;[m + case WM_MOUSEMOVE:[m +[31m- if (ih->data->show_dragdrop && (HTREEITEM)iupAttribGet(ih, "_IUPTREE_DRAGITEM") != NULL)[m +[31m- winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));[m +[32m+[m[32m if (ih->data->show_dragdrop && (wp & MK_LBUTTON))[m +[32m+[m[32m {[m +[32m+[m[32m if (!iupAttribGet(ih, "_IUPTREE_DRAGITEM"))[m +[32m+[m[32m winTreeBeginDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));[m +[32m+[m[32m else[m[41m [m +[32m+[m[32m winTreeDrag(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));[m +[32m+[m[32m }[m + else if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))[m +[31m- winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));[m +[32m+[m[32m {[m +[32m+[m[32m if (wp & MK_LBUTTON)[m +[32m+[m[32m winTreeExtendSelect(ih, (int)(short)LOWORD(lp), (int)(short)HIWORD(lp));[m +[32m+[m[32m else[m +[32m+[m[32m iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL);[m +[32m+[m[32m }[m + [m + iupwinMouseMove(ih, msg, wp, lp);[m + break;[m +[36m@@ -2157,6 +2191,7 @@[m [mstatic int winTreeProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *res[m + if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))[m + {[m + iupAttribSetStr(ih, "_IUPTREE_EXTENDSELECT", NULL);[m +[32m+[m + if (iupAttribGet(ih, "_IUPTREE_LASTSELITEM"))[m + {[m + winTreeCallMultiSelectionCb(ih);[m +[36m@@ -2205,14 +2240,19 @@[m [mstatic int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + else if (msg_info->code == TVN_SELCHANGED)[m + {[m + NMTREEVIEW* info = (NMTREEVIEW*)msg_info;[m +[31m- winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */[m +[31m- winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */[m +[32m+[m[32m if (ih->data->mark_mode!=ITREE_MARK_MULTIPLE || /* (NOT) Multiple selection with Control or Shift key is down */[m +[32m+[m[32m !(GetKeyState(VK_CONTROL) & 0x8000 || GetKeyState(VK_SHIFT) & 0x8000))[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m winTreeCallSelectionCb(ih, 0, info->itemOld.hItem); /* node unselected */[m +[32m+[m[32m winTreeCallSelectionCb(ih, 1, info->itemNew.hItem); /* node selected */[m +[32m+[m[32m }[m + }[m + else if(msg_info->code == TVN_BEGINLABELEDIT)[m + {[m + char* value;[m + HWND hEdit;[m + NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info;[m +[32m+[m[32m IFni cbShowRename;[m + [m + if (iupAttribGet(ih, "_IUPTREE_EXTENDSELECT"))[m + {[m +[36m@@ -2220,6 +2260,13 @@[m [mstatic int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + return 1;[m + }[m + [m +[32m+[m[32m cbShowRename = (IFni)IupGetCallback(ih, "SHOWRENAME_CB");[m +[32m+[m[32m if (cbShowRename && cbShowRename(ih, iupTreeFindNodeId(ih, info->item.hItem))==IUP_IGNORE)[m +[32m+[m[32m {[m +[32m+[m[32m *result = TRUE; /* prevent the change */[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m + hEdit = (HWND)SendMessage(ih->handle, TVM_GETEDITCONTROL, 0, 0);[m + [m + /* save the edit box. */[m +[36m@@ -2253,57 +2300,30 @@[m [mstatic int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + }[m + else if(msg_info->code == TVN_ENDLABELEDIT)[m + {[m +[32m+[m[32m IFnis cbRename;[m + NMTVDISPINFO* info = (NMTVDISPINFO*)msg_info;[m + [m + iupAttribSetStr(ih, "_IUPWIN_EDITBOX", NULL);[m + [m +[31m- if (info->item.pszText)[m +[31m- {[m +[31m- IFnis cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");[m +[31m- if (cbRename)[m +[31m- {[m +[31m- if (cbRename(ih, winTreeGetNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE)[m +[31m- {[m +[31m- *result = FALSE;[m +[31m- return 1;[m +[31m- }[m +[31m- }[m +[32m+[m[32m if (!info->item.pszText) /* cancel, so abort */[m +[32m+[m[32m return 0;[m + [m +[31m- *result = TRUE;[m +[31m- return 1;[m +[31m- }[m +[31m- }[m +[31m- else if(msg_info->code == TVN_BEGINDRAG)[m +[31m- {[m +[31m- if (ih->data->show_dragdrop)[m +[32m+[m[32m cbRename = (IFnis)IupGetCallback(ih, "RENAME_CB");[m +[32m+[m[32m if (cbRename)[m + {[m +[31m- NMTREEVIEW* pNMTreeView = (NMTREEVIEW*)msg_info;[m +[31m- HTREEITEM hItemDrag = pNMTreeView->itemNew.hItem;[m +[31m- HIMAGELIST dragImageList;[m +[31m-[m +[31m- /* store the drag-and-drop item */[m +[31m- iupAttribSetStr(ih, "_IUPTREE_DRAGITEM", (char*)hItemDrag);[m +[31m-[m +[31m- /* get the image list for dragging */[m +[31m- dragImageList = (HIMAGELIST)SendMessage(ih->handle, TVM_CREATEDRAGIMAGE, 0, (LPARAM)hItemDrag);[m +[31m- if (dragImageList)[m +[32m+[m[32m if (cbRename(ih, iupTreeFindNodeId(ih, info->item.hItem), info->item.pszText) == IUP_IGNORE)[m + {[m +[31m- POINT pt = pNMTreeView->ptDrag;[m +[31m- ImageList_BeginDrag(dragImageList, 0, 0, 0);[m +[31m-[m +[31m- ClientToScreen(ih->handle, &pt);[m +[31m- ImageList_DragEnter(NULL, pt.x, pt.y);[m +[31m-[m +[31m- iupAttribSetStr(ih, "_IUPTREE_DRAGIMAGELIST", (char*)dragImageList);[m +[32m+[m[32m *result = FALSE;[m +[32m+[m[32m return 1;[m + }[m +[31m-[m +[31m- ShowCursor(FALSE);[m +[31m- SetCapture(ih->handle); /* drag only inside the tree */[m + }[m +[32m+[m +[32m+[m[32m *result = TRUE;[m +[32m+[m[32m return 1;[m + }[m + else if(msg_info->code == NM_DBLCLK)[m + {[m +[31m- HTREEITEM hItemFocus = winTreeGetFocusNode(ih);[m +[32m+[m[32m HTREEITEM hItemFocus = iupdrvTreeGetFocusNode(ih);[m + TVITEM item;[m + winTreeItemData* itemData;[m + [m +[36m@@ -2317,7 +2337,7 @@[m [mstatic int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + {[m + IFni cbExecuteLeaf = (IFni)IupGetCallback(ih, "EXECUTELEAF_CB");[m + if(cbExecuteLeaf)[m +[31m- cbExecuteLeaf(ih, winTreeGetNodeId(ih, hItemFocus));[m +[32m+[m[32m cbExecuteLeaf(ih, iupTreeFindNodeId(ih, hItemFocus));[m + }[m + }[m + else if(msg_info->code == TVN_ITEMEXPANDING)[m +[36m@@ -2351,7 +2371,7 @@[m [mstatic int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + HTREEITEM hItem = winTreeFindNodePointed(ih);[m + IFni cbRightClick = (IFni)IupGetCallback(ih, "RIGHTCLICK_CB");[m + if (cbRightClick)[m +[31m- cbRightClick(ih, winTreeGetNodeId(ih, hItem));[m +[32m+[m[32m cbRightClick(ih, iupTreeFindNodeId(ih, hItem));[m + }[m + else if (msg_info->code == NM_CUSTOMDRAW)[m + {[m +[36m@@ -2374,7 +2394,7 @@[m [mstatic int winTreeWmNotify(Ihandle* ih, NMHDR* msg_info, int *result)[m + SendMessage(ih->handle, TVM_GETITEM, 0, (LPARAM)(LPTVITEM)&item);[m + itemData = (winTreeItemData*)item.lParam;[m + [m +[31m- if (winTreeIsItemSelected(ih, hItem))[m +[32m+[m[32m if (GetFocus()==ih->handle && (customdraw->nmcd.uItemState & CDIS_SELECTED))[m + customdraw->clrText = winTreeInvertColor(itemData->color);[m + else[m + customdraw->clrText = itemData->color;[m +[36m@@ -2402,47 +2422,34 @@[m [mstatic int winTreeConvertXYToPos(Ihandle* ih, int x, int y)[m + info.pt.y = y;[m + hItem = (HTREEITEM)SendMessage(ih->handle, TVM_HITTEST, 0, (LPARAM)&info);[m + if (hItem)[m +[31m- return winTreeGetNodeId(ih, hItem);[m +[32m+[m[32m return iupTreeFindNodeId(ih, hItem);[m + return -1;[m + }[m + [m + [m + /*******************************************************************************************/[m + [m +[31m-static void winTreeUnMapMethod(Ihandle* ih)[m +[31m-{[m +[31m- Iarray* bmp_array;[m +[31m- HIMAGELIST image_list;[m +[31m-[m +[31m- HTREEITEM itemRoot = (HTREEITEM)SendMessage(ih->handle, TVM_GETNEXTITEM, TVGN_ROOT, 0);[m +[31m- winTreeDelNodeData(ih, itemRoot);[m +[31m-[m +[31m- image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0);[m +[31m- if (image_list)[m +[31m- ImageList_Destroy(image_list);[m +[31m-[m +[31m- bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY");[m +[31m- if (bmp_array)[m +[31m- iupArrayDestroy(bmp_array);[m +[31m-[m +[31m- iupdrvBaseUnMapMethod(ih);[m +[31m-}[m + [m + static int winTreeMapMethod(Ihandle* ih)[m + {[m +[31m- DWORD dwStyle = WS_CHILD | WS_BORDER | TVS_SHOWSELALWAYS;[m +[32m+[m[32m DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | WS_BORDER | TVS_SHOWSELALWAYS;[m + [m +[31m- /* can be set only on the Tree View creation */[m +[32m+[m[32m /* styles can be set only on the Tree View creation */[m + [m +[31m- if (!ih->data->show_dragdrop)[m +[31m- dwStyle |= TVS_DISABLEDRAGDROP;[m +[32m+[m[32m /* always disable the internal drag&drop, because it affects our selection and drawing */[m +[32m+[m[32m dwStyle |= TVS_DISABLEDRAGDROP;[m + [m + if (ih->data->show_rename)[m + dwStyle |= TVS_EDITLABELS;[m + [m + if (!iupAttribGetBoolean(ih, "HIDELINES"))[m +[32m+[m[32m {[m + dwStyle |= TVS_HASLINES;[m + [m +[32m+[m[32m if (!iupAttribGetInt(ih, "ADDROOT"))[m +[32m+[m[32m dwStyle |= TVS_LINESATROOT;[m +[32m+[m[32m }[m +[32m+[m + if (!iupAttribGetBoolean(ih, "HIDEBUTTONS"))[m + dwStyle |= TVS_HASBUTTONS;[m + [m +[36m@@ -2455,6 +2462,11 @@[m [mstatic int winTreeMapMethod(Ihandle* ih)[m + if (!iupwinCreateWindowEx(ih, WC_TREEVIEW, 0, dwStyle))[m + return IUP_ERROR;[m + [m +[32m+[m[32m if (!iupwin_comctl32ver6) /* To improve drawing of items when TITLEFONT is set */[m +[32m+[m[32m SendMessage(ih->handle, CCM_SETVERSION, 5, 0);[m[41m [m +[32m+[m[32m else[m +[32m+[m[32m SendMessage(ih->handle, TVM_SETEXTENDEDSTYLE, TVS_EX_DOUBLEBUFFER, TVS_EX_DOUBLEBUFFER);[m[41m [m +[32m+[m + IupSetCallback(ih, "_IUPWIN_CTRLPROC_CB", (Icallback)winTreeProc);[m + IupSetCallback(ih, "_IUPWIN_NOTIFY_CB", (Icallback)winTreeWmNotify);[m + [m +[36m@@ -2466,7 +2478,7 @@[m [mstatic int winTreeMapMethod(Ihandle* ih)[m + winTreeSetBgColorAttrib(ih, value);[m + iupAttribSetStr(ih, "BGCOLOR", NULL);[m + }[m +[31m- else if (iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */[m +[32m+[m[32m else if (!iupwin_comctl32ver6 || iupwinGetSystemMajorVersion()<6) /* force background in XP because of the editbox background */[m + winTreeSetBgColorAttrib(ih, IupGetGlobal("TXTBGCOLOR"));[m + }[m + [m +[36m@@ -2475,8 +2487,8 @@[m [mstatic int winTreeMapMethod(Ihandle* ih)[m + ih->data->def_image_collapsed = (void*)winTreeGetImageIndex(ih, "IMGCOLLAPSED");[m + ih->data->def_image_expanded = (void*)winTreeGetImageIndex(ih, "IMGEXPANDED");[m + [m +[31m- /* Add the Root Node */[m +[31m- winTreeAddRootNode(ih);[m +[32m+[m[32m if (iupAttribGetInt(ih, "ADDROOT"))[m +[32m+[m[32m iupdrvTreeAddNode(ih, "-1", ITREE_BRANCH, "", 0);[m + [m + /* configure for DRAG&DROP of files */[m + if (IupGetCallback(ih, "DROPFILES_CB"))[m +[36m@@ -2484,9 +2496,31 @@[m [mstatic int winTreeMapMethod(Ihandle* ih)[m + [m + IupSetCallback(ih, "_IUP_XY2POS_CB", (Icallback)winTreeConvertXYToPos);[m + [m +[32m+[m[32m iupdrvTreeUpdateMarkMode(ih);[m +[32m+[m + return IUP_NOERROR;[m + }[m + [m +[32m+[m[32mstatic void winTreeUnMapMethod(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m Iarray* bmp_array;[m +[32m+[m[32m HIMAGELIST image_list;[m +[32m+[m +[32m+[m[32m winTreeRemoveAllNodeData(ih, 0);[m +[32m+[m +[32m+[m[32m ih->data->node_count = 0;[m +[32m+[m +[32m+[m[32m image_list = (HIMAGELIST)SendMessage(ih->handle, TVM_GETIMAGELIST, TVSIL_NORMAL, 0);[m +[32m+[m[32m if (image_list)[m +[32m+[m[32m ImageList_Destroy(image_list);[m +[32m+[m +[32m+[m[32m bmp_array = (Iarray*)iupAttribGet(ih, "_IUPWIN_BMPARRAY");[m +[32m+[m[32m if (bmp_array)[m +[32m+[m[32m iupArrayDestroy(bmp_array);[m +[32m+[m +[32m+[m[32m iupdrvBaseUnMapMethod(ih);[m +[32m+[m[32m}[m +[32m+[m + void iupdrvTreeInitClass(Iclass* ic)[m + {[m + /* Driver Dependent Class functions */[m +[36m@@ -2500,7 +2534,6 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + /* IupTree Attributes - GENERAL */[m + iupClassRegisterAttribute(ic, "EXPANDALL", NULL, winTreeSetExpandAllAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "INDENTATION", winTreeGetIndentationAttrib, winTreeSetIndentationAttrib, NULL, NULL, IUPAF_DEFAULT);[m +[31m- iupClassRegisterAttribute(ic, "COUNT", winTreeGetCountAttrib, NULL, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_READONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "DRAGDROP", NULL, iupwinSetDragDropAttrib, NULL, NULL, IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "SPACING", iupTreeGetSpacingAttrib, winTreeSetSpacingAttrib, NULL, NULL, IUPAF_NOT_MAPPED);[m + iupClassRegisterAttribute(ic, "TOPITEM", NULL, winTreeSetTopItemAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[36m@@ -2521,7 +2554,6 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttributeId(ic, "NAME", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TITLE", winTreeGetTitleAttrib, winTreeSetTitleAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "CHILDCOUNT", winTreeGetChildCountAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttributeId(ic, "USERDATA", winTreeGetUserDataAttrib, winTreeSetUserDataAttrib, IUPAF_NO_STRING|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "COLOR", winTreeGetColorAttrib, winTreeSetColorAttrib, IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "TITLEFONT", winTreeGetTitleFontAttrib, winTreeSetTitleFontAttrib, IUPAF_NO_INHERIT);[m + [m +[36m@@ -2530,6 +2562,7 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttribute (ic, "MARK", NULL, winTreeSetMarkAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute (ic, "STARTING", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute (ic, "MARKSTART", NULL, winTreeSetMarkStartAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute (ic, "MARKEDNODES", winTreeGetMarkedNodesAttrib, winTreeSetMarkedNodesAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m + iupClassRegisterAttribute (ic, "VALUE", winTreeGetValueAttrib, winTreeSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);[m + [m +[36m@@ -2538,5 +2571,8 @@[m [mvoid iupdrvTreeInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "RENAME", NULL, winTreeSetRenameAttrib, NULL, NULL, IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "MOVENODE", NULL, winTreeSetMoveNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m + iupClassRegisterAttributeId(ic, "COPYNODE", NULL, winTreeSetCopyNodeAttrib, IUPAF_NOT_MAPPED|IUPAF_WRITEONLY|IUPAF_NO_INHERIT);[m +[31m- iupClassRegisterAttributeId(ic, "FINDUSERDATA", winTreeGetFindUserDataAttrib, NULL, IUPAF_READONLY|IUPAF_NO_INHERIT);[m +[32m+[m +[32m+[m[32m /* necessary because transparent background does not work when not using visual styles */[m +[32m+[m[32m if (!iupwin_comctl32ver6) /* Used by iupdrvImageCreateImage */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "FLAT_ALPHA", NULL, NULL, IUPAF_SAMEASSYSTEM, "YES", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + }[m +[1mdiff --git a/iup/src/win/iupwin_val.c b/iup/src/win/iupwin_val.c[m +[1mindex 706c612..5c956d9 100755[m +[1m--- a/iup/src/win/iupwin_val.c[m +[1m+++ b/iup/src/win/iupwin_val.c[m +[36m@@ -56,6 +56,13 @@[m [mvoid iupdrvValGetMinSize(Ihandle* ih, int *w, int *h)[m + }[m + }[m + [m +[32m+[m[32mstatic int winValSetBgColorAttrib(Ihandle *ih, const char *value)[m +[32m+[m[32m{[m +[32m+[m[32m (void)value;[m +[32m+[m[32m iupdrvPostRedraw(ih);[m +[32m+[m[32m return 1;[m +[32m+[m[32m}[m +[32m+[m + static int winValSetStepAttrib(Ihandle* ih, const char* value)[m + {[m + int linesize;[m +[36m@@ -110,18 +117,6 @@[m [mstatic int winValSetValueAttrib(Ihandle* ih, const char* value)[m + /*********************************************************************************************/[m + [m + [m +[31m-static int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result)[m +[31m-{[m +[31m- COLORREF cr;[m +[31m- if (iupwinGetParentBgColor(ih, &cr))[m +[31m- {[m +[31m- SetDCBrushColor(hdc, cr);[m +[31m- *result = (LRESULT)GetStockObject(DC_BRUSH);[m +[31m- return 1;[m +[31m- }[m +[31m- return 0;[m +[31m-}[m +[31m-[m + static int winValCustomScroll(Ihandle* ih, int msg)[m + {[m + double old_val = ih->data->val;[m +[36m@@ -190,6 +185,19 @@[m [mstatic void winValIncPageValue(Ihandle *ih, int dir)[m + winValCustomScroll(ih, 0);[m + }[m + [m +[32m+[m[32mstatic int winValCtlColor(Ihandle* ih, HDC hdc, LRESULT *result)[m +[32m+[m[32m{[m +[32m+[m[32m COLORREF cr;[m +[32m+[m[32m if (iupwinGetParentBgColor(ih, &cr))[m +[32m+[m[32m {[m +[32m+[m[32m SetBkColor(hdc, cr);[m +[32m+[m[32m SetDCBrushColor(hdc, cr);[m +[32m+[m[32m *result = (LRESULT)GetStockObject(DC_BRUSH);[m +[32m+[m[32m return 1;[m +[32m+[m[32m }[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m + static int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *result)[m + {[m + (void)lp;[m +[36m@@ -240,7 +248,7 @@[m [mstatic int winValProc(Ihandle* ih, UINT msg, WPARAM wp, LPARAM lp, LRESULT *resu[m + [m + static int winValMapMethod(Ihandle* ih)[m + {[m +[31m- DWORD dwStyle = WS_CHILD | TBS_AUTOTICKS;[m +[32m+[m[32m DWORD dwStyle = WS_CHILD | WS_CLIPSIBLINGS | TBS_AUTOTICKS;[m + int show_ticks;[m + [m + if (!ih->parent)[m +[36m@@ -312,4 +320,7 @@[m [mvoid iupdrvValInitClass(Iclass* ic)[m + iupClassRegisterAttribute(ic, "STEP", iupValGetStepAttrib, winValSetStepAttrib, "0.01", NULL, IUPAF_NO_INHERIT); /* force new default value */[m + [m + iupClassRegisterAttribute(ic, "TICKSPOS", NULL, NULL, "NORMAL", NULL, IUPAF_NOT_MAPPED);[m +[32m+[m +[32m+[m[32m /* Visual */[m +[32m+[m[32m iupClassRegisterAttribute(ic, "BGCOLOR", NULL, winValSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);[m + }[m +[1mdiff --git a/iup/srccd/Makefile b/iup/srccd/Makefile[m +[1mindex 43a3f09..8b1d154 100755[m +[1m--- a/iup/srccd/Makefile[m +[1m+++ b/iup/srccd/Makefile[m +[36m@@ -3,4 +3,4 @@[m + do_all: iupcd[m + [m + iupcd:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m +[1mdiff --git a/iup/srccd/iup_cd.c b/iup/srccd/iup_cd.c[m +[1mindex 5998775..619ded7 100755[m +[1m--- a/iup/srccd/iup_cd.c[m +[1m+++ b/iup/srccd/iup_cd.c[m +[36m@@ -14,7 +14,6 @@[m + #include <cdiup.h>[m + #include <cdnative.h>[m + [m +[31m-[m + static void (*cdcreatecanvasNATIVE)(cdCanvas* canvas, void* data) = NULL;[m + [m + static void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas)[m +[36m@@ -24,8 +23,12 @@[m [mstatic void cdcreatecanvasIUP(cdCanvas* canvas, Ihandle *ih_canvas)[m + #endif[m + char* data;[m + [m +[31m- if (IupGetInt(ih_canvas, "CD_GDK"))[m +[32m+[m[32m if (cdBaseDriver()==CD_BASE_GDK)[m +[32m+[m[32m {[m + data = IupGetAttribute(ih_canvas, "DRAWABLE"); /* new IUP 3 attribute, works for GTK only */[m +[32m+[m[32m if (!data)[m +[32m+[m[32m return;[m +[32m+[m[32m }[m + else[m + {[m + #ifdef WIN32[m +[1mdiff --git a/iup/srcconsole/Makefile b/iup/srcconsole/Makefile[m +[1mindex 876ca8d..505b103 100755[m +[1m--- a/iup/srcconsole/Makefile[m +[1m+++ b/iup/srcconsole/Makefile[m +[36m@@ -3,10 +3,10 @@[m + do_all: iuplua5[m + [m + iuplua5:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m + [m + iuplua5gtk:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak USE_GTK=Yes[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak USE_GTK=Yes[m + [m + iuplua3:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iuplua3[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iuplua3[m +[1mdiff --git a/iup/srcconsole/config.mak b/iup/srcconsole/config.mak[m +[1mindex 612a3ab..568bed6 100755[m +[1m--- a/iup/srcconsole/config.mak[m +[1m+++ b/iup/srcconsole/config.mak[m +[36m@@ -1,12 +1,23 @@[m + PROJNAME = iup[m + APPNAME = iuplua51[m +[31m-APPTYPE = console[m +[32m+[m[32mAPPTYPE = CONSOLE[m +[32m+[m +[32m+[m[32mifdef GTK_DEFAULT[m +[32m+[m[32m ifdef USE_MOTIF[m +[32m+[m[32m # Build Motif version in Linux,Darwin,FreeBSD[m +[32m+[m[32m APPNAME = iuplua51mot[m +[32m+[m[32m endif[m +[32m+[m[32melse[m[41m [m +[32m+[m[32m ifdef USE_GTK[m +[32m+[m[32m # Build GTK version in IRIX,SunOS,AIX,Win32[m +[32m+[m[32m APPNAME = iuplua51gtk[m +[32m+[m[32m endif[m +[32m+[m[32mendif[m + [m + LOHDIR = loh[m + SRCLUA = console5.lua[m + SRC = iup_lua51.c[m + [m +[31m-[m + # Disable strip[m + STRIP = [m + # Optimize[m +[36m@@ -35,6 +46,16 @@[m [mifdef DBG[m + USE_STATIC = Yes[m + USE_LUA51 = Yes[m + [m +[32m+[m[32m ifdef DBG_DIR[m +[32m+[m[32m IUPLIB = $(IUP)/lib/$(TEC_UNAME)d[m +[32m+[m[32m CDLIB = $(CD)/lib/$(TEC_UNAME)d[m +[32m+[m[32m IMLIB = $(IM)/lib/$(TEC_UNAME)d[m +[32m+[m[32m else[m +[32m+[m[32m IUPLIB = $(IUP)/lib/$(TEC_UNAME)[m +[32m+[m[32m CDLIB = $(CD)/lib/$(TEC_UNAME)[m +[32m+[m[32m IMLIB = $(IM)/lib/$(TEC_UNAME)[m +[32m+[m[32m endif[m[41m [m +[32m+[m[41m [m + DEFINES = USE_STATIC[m + [m + USE_CDLUA = Yes[m +[36m@@ -42,7 +63,6 @@[m [mifdef DBG[m + ifneq ($(findstring Win, $(TEC_SYSNAME)), )[m + LIBS += iuplua_pplot$(LIBLUASUFX) iup_pplot[m + else[m +[31m- IUPLIB = $(IUP)/lib/$(TEC_UNAME)[m + SLIB += $(IUPLIB)/libiuplua_pplot$(LIBLUASUFX).a $(IUPLIB)/libiup_pplot.a[m + endif[m + [m +[36m@@ -50,7 +70,6 @@[m [mifdef DBG[m + ifneq ($(findstring Win, $(TEC_SYSNAME)), )[m + LIBS += cdluaim$(LIBLUASUFX)[m + else[m +[31m- CDLIB = $(CD)/lib/$(TEC_UNAME)[m + SLIB += $(CDLIB)/libcdluaim$(LIBLUASUFX).a[m + endif[m + endif[m +[36m@@ -65,8 +84,6 @@[m [mifdef DBG[m + ifneq ($(findstring Win, $(TEC_SYSNAME)), )[m + LIBS += imlua_process$(LIBLUASUFX) iupluaim$(LIBLUASUFX) im_process iupim[m + else[m +[31m- IUPLIB = $(IUP)/lib/$(TEC_UNAME)[m +[31m- IMLIB = $(IM)/lib/$(TEC_UNAME)[m + SLIB += $(IMLIB)/libimlua_process$(LIBLUASUFX).a $(IUPLIB)/libiupluaim$(LIBLUASUFX).a $(IMLIB)/libim_process.a $(IUPLIB)/libiupim.a[m + endif[m + [m +[36m@@ -77,20 +94,24 @@[m [mifdef DBG[m + ifneq ($(findstring Win, $(TEC_SYSNAME)), )[m + LIBS += iupluaimglib$(LIBLUASUFX) iupimglib[m + else[m +[31m- IUPLIB = $(IUP)/lib/$(TEC_UNAME)[m + SLIB += $(IUPLIB)/libiupluaimglib$(LIBLUASUFX).a $(IUPLIB)/libiupimglib.a[m + endif[m + endif[m + else[m + ifneq ($(findstring Win, $(TEC_SYSNAME)), )[m + # Dinamically link in Windows, when not debugging[m +[31m- # Must call "tecmake dll8"[m +[32m+[m[32m # Must call "tecmake dll8" so USE_* will use the correct TEC_UNAME[m + USE_LUA51 = Yes[m + USE_DLL = Yes[m + GEN_MANIFEST = No[m + else[m + # In UNIX Lua is always statically linked, late binding is used.[m +[31m- USE_STATIC = Yes[m +[32m+[m[32m # Except in Cygwin and MacOSX[m +[32m+[m[32m ifeq ($(findstring cygw, $(TEC_UNAME)), )[m +[32m+[m[32m ifeq ($(findstring Darwin, $(TEC_UNAME)), )[m +[32m+[m[32m USE_STATIC = Yes[m +[32m+[m[32m endif[m +[32m+[m[32m endif[m + USE_LUA51 = Yes[m + endif[m + endif[m +[36m@@ -102,10 +123,13 @@[m [mifneq ($(findstring Win, $(TEC_SYSNAME)), )[m + endif[m + [m + ifneq ($(findstring cygw, $(TEC_UNAME)), )[m +[31m- LDFLAGS = -s[m + LIBS += readline history[m + endif[m + [m +[32m+[m[32mifneq ($(findstring Darwin, $(TEC_UNAME)), )[m +[32m+[m[32m LIBS += readline[m +[32m+[m[32mendif[m +[32m+[m + ifneq ($(findstring Linux, $(TEC_UNAME)), )[m + LIBS += dl [m + #To allow late binding[m +[36m@@ -129,10 +153,3 @@[m [mifneq ($(findstring AIX, $(TEC_UNAME)), )[m + LFLAGS = -Xlinker "-bbigtoc"[m + endif[m + [m +[31m-ifeq ($(TEC_UNAME), vc8)[m +[31m- ifdef DBG[m +[31m- #debug info not working for vc8 linker[m +[31m- define DBG[m +[31m- endef[m +[31m- endif[m +[31m-endif [m +[1mdiff --git a/iup/srcconsole/console5.lua b/iup/srcconsole/console5.lua[m +[1mindex 20f74b2..0b93641 100755[m +[1m--- a/iup/srcconsole/console5.lua[m +[1m+++ b/iup/srcconsole/console5.lua[m +[36m@@ -1,67 +1,69 @@[m + require"iuplua"[m + [m +[31m-iup.console = {}[m +[31m-[m + -- Utilities[m +[32m+[m[32miup_console = {}[m + [m +[31m-function iup.console.printtable(t)[m +[31m- local n,v = next(t, nil)[m +[31m- print("--printtable Start--")[m +[31m- while n do[m +[31m- print(tostring(n).."="..tostring(v))[m +[31m- n,v = next(t, n)[m +[31m- end[m +[31m- print("--printtable End--")[m +[32m+[m[32mfunction iup_console.concat(str, info)[m +[32m+[m[32m return str .. info .. "\n"[m + end[m + [m +[31m-function iup.console.print_version_info()[m +[31m- if (im) then print("IM " .. im._VERSION .. " " .. im._COPYRIGHT) end[m +[32m+[m[32mfunction iup_console.print_version_info()[m +[32m+[m[32m iup_console.clear()[m +[32m+[m[32m local str = ""[m +[32m+[m[32m if (im) then str = iup_console.concat(str, "IM " .. im._VERSION .. " " .. im._COPYRIGHT) end[m + [m +[31m- if (cd) then print("CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end[m +[32m+[m[32m if (cd) then str = iup_console.concat(str, "CD " .. cd._VERSION .. " " .. cd._COPYRIGHT) end[m + [m +[31m- print("IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT)[m +[31m- print("")[m +[31m- print("IUP Info")[m +[31m- print(" System: " .. iup.GetGlobal("SYSTEM"))[m +[31m- print(" System Version: " .. iup.GetGlobal("SYSTEMVERSION"))[m +[32m+[m[32m str = iup_console.concat(str, "IUP " .. iup._VERSION .. " " .. iup._COPYRIGHT)[m +[32m+[m[32m str = iup_console.concat(str, "")[m +[32m+[m[32m str = iup_console.concat(str, "IUP Info")[m +[32m+[m[32m str = iup_console.concat(str, " System: " .. iup.GetGlobal("SYSTEM"))[m +[32m+[m[32m str = iup_console.concat(str, " System Version: " .. iup.GetGlobal("SYSTEMVERSION"))[m + [m + local mot = iup.GetGlobal("MOTIFVERSION")[m +[31m- if (mot) then print(" Motif Version: ", mot) end[m +[32m+[m[32m if (mot) then str = iup_console.concat(str, " Motif Version: ", mot) end[m + [m +[31m- print(" Screen Size: " .. iup.GetGlobal("SCREENSIZE"))[m +[31m- print(" Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))[m +[32m+[m[32m str = iup_console.concat(str, " Screen Size: " .. iup.GetGlobal("SCREENSIZE"))[m +[32m+[m[32m str = iup_console.concat(str, " Screen Depth: " .. iup.GetGlobal("SCREENDEPTH"))[m + [m +[31m- if (iup.GL_VENDOR) then print(" OpenGL Vendor: " .. iup.GL_VENDOR) end[m +[31m- if (iup.GL_RENDERER) then print(" OpenGL Renderer: " .. iup.GL_RENDERER) end[m +[31m- if (iup.GL_VERSION) then print(" OpenGL Version: " .. iup.GL_VERSION) end[m +[32m+[m[32m if (iup.GL_VENDOR) then str = iup_console.concat(str, " OpenGL Vendor: " .. iup.GL_VENDOR) end[m +[32m+[m[32m if (iup.GL_RENDERER) then str = iup_console.concat(str, " OpenGL Renderer: " .. iup.GL_RENDERER) end[m +[32m+[m[32m if (iup.GL_VERSION) then str = iup_console.concat(str, " OpenGL Version: " .. iup.GL_VERSION) end[m +[32m+[m[41m [m +[32m+[m[32m iup_console.mlCode.value=str[m + end[m + [m + -- Console Dialog[m + [m +[31m-iup.console.lastfilename = nil -- Last file open[m +[31m-iup.console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"}[m +[31m-iup.console.lblPosition = iup.label{title="0:0", size="50x"}[m +[31m-iup.console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"}[m +[32m+[m[32miup_console.lastfilename = nil -- Last file open[m +[32m+[m[32miup_console.mlCode = iup.multiline{expand="YES", size="200x120", font="COURIER_NORMAL_10"}[m +[32m+[m[32miup_console.lblPosition = iup.label{title="0:0", size="50x"}[m +[32m+[m[32miup_console.lblFileName = iup.label{title="", size="50x", expand="HORIZONTAL"}[m +[32m+[m +[32m+[m[32mfunction iup_console.mlCode:caret_cb(lin, col)[m +[32m+[m[32m iup_console.lblPosition.title = lin..":"..col[m +[32m+[m[32mend[m + [m +[31m-function iup.console.mlCode:caret_cb(lin, col)[m +[31m- iup.console.lblPosition.title = lin..":"..col[m +[32m+[m[32mfunction iup_console.clear()[m +[32m+[m[32m iup_console.mlCode.value=''[m[41m [m +[32m+[m[32m iup_console.lblFileName.title = ''[m[41m [m +[32m+[m[32m iup_console.lastfilename = nil[m + end[m + [m +[31m-iup.console.butExecute = iup.button{size="50x15", title="Execute",[m +[31m- action="iup.dostring(iup.console.mlCode.value)"}[m +[31m-iup.console.butClearCommands = iup.button{size="50x15", title="Clear",[m +[31m- action="iup.console.mlCode.value='' iup.console.lblFileName.title = '' iup.console.lastfilename = nil"}[m +[31m-iup.console.butLoadFile = iup.button{size="50x15", title="Load..."}[m +[31m-iup.console.butSaveasFile = iup.button{size="50x15", title="Save As..."}[m +[31m-iup.console.butSaveFile = iup.button{size="50x15", title="Save"}[m +[31m-[m +[31m-function iup.console.butSaveFile:action()[m +[31m- if (iup.console.lastfilename == nil) then[m +[31m- iup.console.butSaveasFile:action()[m +[32m+[m[32miup_console.butExecute = iup.button{size="50x15", title="Execute",[m +[32m+[m[32m action="iup.dostring(iup_console.mlCode.value)"}[m +[32m+[m[32miup_console.butClearCommands = iup.button{size="50x15", title="Clear", action=iup_console.clear}[m +[32m+[m[32miup_console.butLoadFile = iup.button{size="50x15", title="Load..."}[m +[32m+[m[32miup_console.butSaveasFile = iup.button{size="50x15", title="Save As..."}[m +[32m+[m[32miup_console.butSaveFile = iup.button{size="50x15", title="Save"}[m +[32m+[m +[32m+[m[32mfunction iup_console.butSaveFile:action()[m +[32m+[m[32m if (iup_console.lastfilename == nil) then[m +[32m+[m[32m iup_console.butSaveasFile:action()[m + else[m +[31m- newfile = io.open(iup.console.lastfilename, "w+")[m +[32m+[m[32m newfile = io.open(iup_console.lastfilename, "w+")[m + if (newfile) then[m +[31m- newfile:write(iup.console.mlCode.value)[m +[32m+[m[32m newfile:write(iup_console.mlCode.value)[m + newfile:close()[m + else[m + error ("Cannot Save file "..filename)[m +[36m@@ -69,21 +71,26 @@[m [mfunction iup.console.butSaveFile:action()[m + end[m + end[m + [m +[31m-function iup.console.butSaveasFile:action()[m +[31m- local fd = iup.filedlg{dialogtype="SAVE", title="Save File",[m +[32m+[m[32mfunction iup_console.butSaveasFile:action()[m +[32m+[m[32m local fd = iup.filedlg{dialogtype="SAVE", title="Save File",[m[41m [m +[32m+[m[32m nochangedir="NO", directory=iup_console.last_directory,[m + filter="*.*", filterinfo="All files",allownew=yes}[m +[32m+[m[41m [m + fd:popup(iup.LEFT, iup.LEFT)[m +[32m+[m[41m [m + local status = fd.status[m +[31m- iup.console.lastfilename = fd.value[m +[31m- iup.console.lblFileName.title = iup.console.lastfilename[m +[32m+[m[32m iup_console.lastfilename = fd.value[m +[32m+[m[32m iup_console.lblFileName.title = fd.value[m +[32m+[m[32m iup_console.last_directory = fd.directory[m + fd:destroy()[m +[32m+[m[41m [m + if status ~= "-1" then[m +[31m- if (iup.console.lastfilename == nil) then[m +[32m+[m[32m if (iup_console.lastfilename == nil) then[m + error ("Cannot Save file "..filename)[m + end[m +[31m- local newfile=io.open(iup.console.lastfilename, "w+")[m +[32m+[m[32m local newfile=io.open(iup_console.lastfilename, "w+")[m + if (newfile) then[m +[31m- newfile:write(iup.console.mlCode.value)[m +[32m+[m[32m newfile:write(iup_console.mlCode.value)[m + newfile:close(newfile)[m + else[m + error ("Cannot Save file")[m +[36m@@ -91,24 +98,26 @@[m [mfunction iup.console.butSaveasFile:action()[m + end[m + end[m + [m +[31m-function iup.console.LoadFile(filename)[m +[32m+[m[32mfunction iup_console.LoadFile(filename)[m + local newfile = io.open (filename, "r")[m + if (newfile == nil) then[m + error ("Cannot load file "..filename)[m + else[m +[31m- iup.console.mlCode.value=newfile:read("*a")[m +[32m+[m[32m iup_console.mlCode.value=newfile:read("*a")[m + newfile:close (newfile)[m +[31m- iup.console.lastfilename = filename[m +[31m- iup.console.lblFileName.title = iup.console.lastfilename[m +[32m+[m[32m iup_console.lastfilename = filename[m +[32m+[m[32m iup_console.lblFileName.title = iup_console.lastfilename[m + end[m + end[m + [m +[31m-function iup.console.butLoadFile:action()[m +[31m- local fd=iup.filedlg{dialogtype="OPEN", title="Load File",[m +[32m+[m[32mfunction iup_console.butLoadFile:action()[m +[32m+[m[32m local fd=iup.filedlg{dialogtype="OPEN", title="Load File",[m[41m [m +[32m+[m[32m nochangedir="NO", directory=iup_console.last_directory,[m + filter="*.*", filterinfo="All Files", allownew="NO"}[m + fd:popup(iup.CENTER, iup.CENTER)[m + local status = fd.status[m + local filename = fd.value[m +[32m+[m[32m iup_console.last_directory = fd.directory[m + fd:destroy()[m + [m + if (status == "-1") or (status == "1") then[m +[36m@@ -116,21 +125,21 @@[m [mfunction iup.console.butLoadFile:action()[m + error ("Cannot load file "..filename)[m + end[m + else[m +[31m- iup.console.LoadFile(filename)[m +[32m+[m[32m iup_console.LoadFile(filename)[m + end[m + end[m + [m +[31m-iup.console.vbxConsole = iup.vbox[m +[32m+[m[32miup_console.vbxConsole = iup.vbox[m + {[m +[31m- iup.frame{iup.hbox{iup.vbox{iup.console.butLoadFile,[m +[31m- iup.console.butSaveFile,[m +[31m- iup.console.butSaveasFile,[m +[31m- iup.console.butClearCommands,[m +[31m- iup.console.butExecute;[m +[32m+[m[32m iup.frame{iup.hbox{iup.vbox{iup_console.butLoadFile,[m +[32m+[m[32m iup_console.butSaveFile,[m +[32m+[m[32m iup_console.butSaveasFile,[m +[32m+[m[32m iup_console.butClearCommands,[m +[32m+[m[32m iup_console.butExecute;[m + margin="0x0", gap="10"},[m +[31m- iup.vbox{iup.console.lblFileName,[m +[31m- iup.console.mlCode,[m +[31m- iup.console.lblPosition;[m +[32m+[m[32m iup.vbox{iup_console.lblFileName,[m +[32m+[m[32m iup_console.mlCode,[m +[32m+[m[32m iup_console.lblPosition;[m + alignment = "ARIGHT"};[m + alignment="ATOP"}; title="Commands"}[m + ;alignment="ACENTER", margin="5x5", gap="5"[m +[36m@@ -138,7 +147,7 @@[m [miup.console.vbxConsole = iup.vbox[m + [m + -- Main Menu Definition.[m + [m +[31m-iup.console.mnuMain = iup.menu[m +[32m+[m[32miup_console.mnuMain = iup.menu[m + {[m + iup.submenu[m + {[m +[36m@@ -149,29 +158,29 @@[m [miup.console.mnuMain = iup.menu[m + },[m + iup.submenu{iup.menu[m + {[m +[31m- iup.item{title="Print Version Info...", action=iup.console.print_version_info},[m +[31m- iup.item{title="About...", action="iup.console.dlgAbout:popup(iup.CENTER, iup.CENTER)"}[m +[32m+[m[32m iup.item{title="Print Version Info...", action=iup_console.print_version_info},[m +[32m+[m[32m iup.item{title="About...", action="iup_console.dlgAbout:popup(iup.CENTER, iup.CENTER)"}[m + };title="Help"}[m + }[m + [m + -- Main Dialog Definition.[m + [m +[31m-iup.console.dlgMain = iup.dialog{iup.console.vbxConsole;[m +[32m+[m[32miup_console.dlgMain = iup.dialog{iup_console.vbxConsole;[m + title="IupLua Console",[m +[31m- menu=iup.console.mnuMain,[m +[32m+[m[32m menu=iup_console.mnuMain,[m + dragdrop = "YES",[m +[31m- defaultenter=iup.console.butExecute,[m +[32m+[m[32m defaultenter=iup_console.butExecute,[m + close_cb = "return iup.CLOSE"}[m + [m +[31m-function iup.console.dlgMain:dropfiles_cb(filename, num, x, y)[m +[32m+[m[32mfunction iup_console.dlgMain:dropfiles_cb(filename, num, x, y)[m + if (num == 0) then[m +[31m- iup.console.LoadFile(filename)[m +[32m+[m[32m iup_console.LoadFile(filename)[m + end[m + end[m + [m + -- About Dialog Definition.[m + [m +[31m-iup.console.dlgAbout = iup.dialog[m +[32m+[m[32miup_console.dlgAbout = iup.dialog[m + {[m + iup.vbox[m + {[m +[36m@@ -195,10 +204,12 @@[m [miup.console.dlgAbout = iup.dialog[m + [m + -- Displays the Main Dialog[m + [m +[31m-iup.console.dlgMain:show()[m +[31m-iup.SetFocus(iup.console.mlCode)[m +[32m+[m[32miup_console.dlgMain:show()[m +[32m+[m[32miup.SetFocus(iup_console.mlCode)[m + [m +[31m-iup.MainLoop()[m +[32m+[m[32mif (not iup.MainLoopLevel or iup.MainLoopLevel()==0) then[m +[32m+[m[32m iup.MainLoop()[m +[32m+[m[32mend[m + [m +[31m-iup.console.dlgMain:destroy()[m +[31m-iup.console.dlgAbout:destroy()[m +[32m+[m[32miup_console.dlgMain:destroy()[m +[32m+[m[32miup_console.dlgAbout:destroy()[m +[1mdiff --git a/iup/srcconsole/copy_all_so b/iup/srcconsole/copy_all_so[m +[1mindex 52f1fea..ce3c248 100755[m +[1m--- a/iup/srcconsole/copy_all_so[m +[1m+++ b/iup/srcconsole/copy_all_so[m +[36m@@ -2,10 +2,10 @@[m + [m + foreach plat ( Linux24 Linux24g3 Linux24g3_64 Linux26 Linux26_64 Linux26g4 Linux26g4_64 Linux26_ia64 SunOS57 SunOS510 SunOS510x86 AIX43 IRIX65 IRIX6465 )[m + echo $plat[m +[31m- cp -f ../lib/$plat/*.so ../bin/$plat[m +[31m- cp -f ../../cd/lib/$plat/*.so ../bin/$plat[m +[31m- cp -f ../../im/lib/$plat/*.so ../bin/$plat[m +[32m+[m[32m# cp -f ../lib/$plat/*.so ../bin/$plat[m +[32m+[m[32m# cp -f ../../cd/lib/$plat/*.so ../bin/$plat[m +[32m+[m[32m# cp -f ../../im/lib/$plat/*.so ../bin/$plat[m + cp -f ../../luagl/lib/$plat/*.so ../bin/$plat[m + cp -f ../../lfs/lib/$plat/*.so ../bin/$plat[m +[31m- rm -f ../bin/$plat/*3.so[m +[32m+[m[32m# rm -f ../bin/$plat/*3.so[m + end[m +[1mdiff --git a/iup/srcconsole/copy_so b/iup/srcconsole/copy_so[m +[1mindex 2535766..e345d31 100755[m +[1m--- a/iup/srcconsole/copy_so[m +[1m+++ b/iup/srcconsole/copy_so[m +[36m@@ -1,4 +1,6 @@[m + cp -f ../lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME[m + cp -f ../../cd/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME[m + cp -f ../../im/lib/${TEC_UNAME}/*.so ../bin/$TEC_UNAME[m +[32m+[m[32mcp -f ../../luagl/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME}[m +[32m+[m[32mcp -f ../../lfs/lib/${TEC_UNAME}/*.so ../bin/${TEC_UNAME}[m + rm -f ../bin/${TEC_UNAME}/*3.so[m +[1mdiff --git a/iup/srcconsole/iuplua3.rc b/iup/srcconsole/iuplua3.rc[m +[1mindex e741199..9fcc280 100755[m +[1m--- a/iup/srcconsole/iuplua3.rc[m +[1m+++ b/iup/srcconsole/iuplua3.rc[m +[36m@@ -13,7 +13,7 @@[m [mBEGIN[m + VALUE "CompanyName", "Tecgraf/PUC-Rio\0"[m + VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0"[m + VALUE "FileVersion", "3.0.0\0"[m +[31m- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"[m +[32m+[m[32m VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"[m + VALUE "OriginalFilename", "iuplua51.exe\0"[m + VALUE "ProductName", "IUP for Windows\0"[m + VALUE "ProductVersion", "3.0.0\0"[m +[1mdiff --git a/iup/srcconsole/iuplua5.rc b/iup/srcconsole/iuplua5.rc[m +[1mindex bc02e07..70e40a4 100755[m +[1m--- a/iup/srcconsole/iuplua5.rc[m +[1m+++ b/iup/srcconsole/iuplua5.rc[m +[36m@@ -13,7 +13,7 @@[m [mBEGIN[m + VALUE "CompanyName", "Tecgraf/PUC-Rio\0"[m + VALUE "FileDescription", "Lua Windows Standalone Interpreter with IUP\0"[m + VALUE "FileVersion", "3.0.0\0"[m +[31m- VALUE "LegalCopyright", "Copyright © 1994-2009 Tecgraf, PUC-Rio.\0"[m +[32m+[m[32m VALUE "LegalCopyright", "Copyright © 1994-2010 Tecgraf, PUC-Rio.\0"[m + VALUE "OriginalFilename", "iuplua51.exe\0"[m + VALUE "ProductName", "IUP for Windows\0"[m + VALUE "ProductVersion", "3.0.0\0"[m +[1mdiff --git a/iup/srcconsole/make_uname.bat b/iup/srcconsole/make_uname.bat[m +[1mindex a5b1d9a..a0db110 100755[m +[1m--- a/iup/srcconsole/make_uname.bat[m +[1m+++ b/iup/srcconsole/make_uname.bat[m +[36m@@ -6,24 +6,26 @@[m [mif "%1"=="vc8_64" goto iupexe64[m + if "%1"=="all" goto iupexe[m + goto end[m + [m +[32m+[m[32mREM Must use dll8 so USE_* will use the correct TEC_UNAME[m +[32m+[m + :iupexe32[m + call tecmake dll8 relink %2 %3 %4 %5 %6 %7[m +[31m-REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m +[32m+[m[32mREM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m + REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7[m + goto end[m + [m + :iupexe64[m + call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7[m +[31m-REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m +[32m+[m[32mREM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m + REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7[m + goto end[m + [m + :iupexe[m + call tecmake dll8 relink %2 %3 %4 %5 %6 %7[m +[31m-REM call tecmake dll8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m +[32m+[m[32mREM call tecmake vc8 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m + REM call tecmake vc8 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7[m + call tecmake dll8_64 relink %2 %3 %4 %5 %6 %7[m +[31m-REM call tecmake dll8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m +[32m+[m[32mREM call tecmake vc8_64 USE_GTK=Yes relink %2 %3 %4 %5 %6 %7[m + REM call tecmake vc8_64 "MF=iuplua3" relink %2 %3 %4 %5 %6 %7[m + goto end[m + [m +[1mdiff --git a/iup/srccontrols/Makefile b/iup/srccontrols/Makefile[m +[1mindex d02bbc3..c928251 100755[m +[1m--- a/iup/srccontrols/Makefile[m +[1m+++ b/iup/srccontrols/Makefile[m +[36m@@ -3,4 +3,4 @@[m + do_all: iupcontrols[m + [m + iupcontrols:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m +[1mdiff --git a/iup/srccontrols/color/iup_colorbrowser.c b/iup/srccontrols/color/iup_colorbrowser.c[m +[1mindex 82b4a88..51f8a30 100755[m +[1m--- a/iup/srccontrols/color/iup_colorbrowser.c[m +[1m+++ b/iup/srccontrols/color/iup_colorbrowser.c[m +[36m@@ -681,7 +681,7 @@[m [mstatic int iColorBrowserKeypress_CB(Ihandle* ih, int c, int press)[m + static char* iColorBrowserGetHSIAttrib(Ihandle* ih)[m + {[m + char* buffer = iupStrGetMemory(100);[m +[31m- sprintf(buffer, "%f %f %f", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity);[m +[32m+[m[32m sprintf(buffer, "%g %g %g", (double)ih->data->hue, (double)ih->data->saturation, (double)ih->data->intensity);[m + return buffer;[m + }[m + [m +[36m@@ -781,10 +781,16 @@[m [mstatic int iColorBrowserMapMethod(Ihandle* ih)[m + static void iColorBrowserUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static int iColorBrowserCreateMethod(Ihandle* ih, void **params)[m +[1mdiff --git a/iup/srccontrols/color/iup_colorbrowserdlg.c b/iup/srccontrols/color/iup_colorbrowserdlg.c[m +[1mindex 65e4d37..dc52725 100755[m +[1m--- a/iup/srccontrols/color/iup_colorbrowserdlg.c[m +[1m+++ b/iup/srccontrols/color/iup_colorbrowserdlg.c[m +[36m@@ -158,7 +158,7 @@[m [mstatic void iColorBrowserDlgBrowserRGB_Update(IcolorDlgData* colordlg_data)[m + [m + static void iColorBrowserDlgBrowserHSI_Update(IcolorDlgData* colordlg_data)[m + {[m +[31m- IupSetfAttribute(colordlg_data->color_browser, "HSI", "%f %f %f", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity);[m +[32m+[m[32m IupSetfAttribute(colordlg_data->color_browser, "HSI", "%g %g %g", (double)colordlg_data->hue, (double)colordlg_data->saturation, (double)colordlg_data->intensity);[m + }[m + [m + /*****************************************\[m +[36m@@ -575,10 +575,16 @@[m [mstatic int iColorBrowserDlgColorCnvUnMap_CB(Ihandle* ih)[m + IcolorDlgData* colordlg_data = (IcolorDlgData*)iupAttribGetInherit(ih, "_IUP_GC_DATA");[m + [m + if (colordlg_data->color_cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(colordlg_data->color_cddbuffer);[m +[32m+[m[32m colordlg_data->color_cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (colordlg_data->color_cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(colordlg_data->color_cdcanvas);[m +[32m+[m[32m colordlg_data->color_cdcanvas = NULL;[m +[32m+[m[32m }[m + [m + return IUP_DEFAULT;[m + }[m +[1mdiff --git a/iup/srccontrols/config.mak b/iup/srccontrols/config.mak[m +[1mindex 394d607..10f11e1 100755[m +[1m--- a/iup/srccontrols/config.mak[m +[1m+++ b/iup/srccontrols/config.mak[m +[36m@@ -13,7 +13,7 @@[m [mSRCMATRIX = iupmat_key.c iupmat_mark.c iupmat_aux.c iupmat_mem.c iupmat_mouse.c[m + SRCMATRIX := $(addprefix matrix/, $(SRCMATRIX))[m + [m + SRC = iup_cdutil.c iup_gauge.c iup_cells.c iup_colorbar.c iup_controls.c \[m +[31m- iup_dial.c iup_oldtabs.c iup_oldval.c iup_oldmask.c \[m +[32m+[m[32m iup_dial.c iup_oldmask.c \[m + $(SRCCOLOR) $(SRCMATRIX)[m + [m + LIBS = iup iupcd[m +[1mdiff --git a/iup/srccontrols/iup_cells.c b/iup/srccontrols/iup_cells.c[m +[1mindex d9a7fe4..c771d6e 100755[m +[1m--- a/iup/srccontrols/iup_cells.c[m +[1m+++ b/iup/srccontrols/iup_cells.c[m +[36m@@ -882,10 +882,16 @@[m [mstatic int iCellsMapMethod(Ihandle* ih)[m + static void iCellsUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static int iCellsCreateMethod(Ihandle* ih, void **params)[m +[1mdiff --git a/iup/srccontrols/iup_colorbar.c b/iup/srccontrols/iup_colorbar.c[m +[1mindex 72e717c..1cbcd59 100755[m +[1m--- a/iup/srccontrols/iup_colorbar.c[m +[1m+++ b/iup/srccontrols/iup_colorbar.c[m +[36m@@ -978,10 +978,16 @@[m [mstatic int iColorbarMapMethod(Ihandle* ih)[m + static void iColorbarUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static int iColorbarCreateMethod(Ihandle* ih, void **params)[m +[1mdiff --git a/iup/srccontrols/iup_dial.c b/iup/srccontrols/iup_dial.c[m +[1mindex 1dd2d0f..c8c5656 100755[m +[1m--- a/iup/srccontrols/iup_dial.c[m +[1m+++ b/iup/srccontrols/iup_dial.c[m +[36m@@ -640,7 +640,7 @@[m [mstatic int iDialWheel_CB(Ihandle* ih, float delta)[m + static char* iDialGetValueAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->angle);[m +[32m+[m[32m sprintf(str, "%g", ih->data->angle);[m + return str;[m + }[m + [m +[36m@@ -665,7 +665,7 @@[m [mstatic int iDialSetDensityAttrib(Ihandle* ih, const char* value)[m + static char* iDialGetDensityAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->density);[m +[32m+[m[32m sprintf(str, "%g", ih->data->density);[m + return str;[m + }[m + [m +[36m@@ -780,10 +780,16 @@[m [mstatic int iDialMapMethod(Ihandle* ih)[m + static void iDialUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static int iDialCreateMethod(Ihandle* ih, void **params)[m +[1mdiff --git a/iup/srccontrols/iup_gauge.c b/iup/srccontrols/iup_gauge.c[m +[1mindex 8732eee..300b28e 100755[m +[1m--- a/iup/srccontrols/iup_gauge.c[m +[1m+++ b/iup/srccontrols/iup_gauge.c[m +[36m@@ -347,10 +347,16 @@[m [mstatic char* iGaugeGetTextAttrib(Ihandle* ih)[m + static void iGaugeUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static int iGaugeMapMethod(Ihandle* ih)[m +[1mdiff --git a/iup/srccontrols/iup_oldmask.c b/iup/srccontrols/iup_oldmask.c[m +[1mindex fec10f3..2ec4012 100755[m +[1m--- a/iup/srccontrols/iup_oldmask.c[m +[1m+++ b/iup/srccontrols/iup_oldmask.c[m +[36m@@ -42,14 +42,14 @@[m [mint iupmaskMatSetInt(Ihandle *ih, int autofill, int min, int max, int lin, int c[m + int iupmaskSetFloat(Ihandle* ih, int autofill, float min, float max)[m + {[m + (void)autofill;[m +[31m- IupSetfAttribute(ih,"MASKFLOAT", "%f:%f", min, max);[m +[32m+[m[32m IupSetfAttribute(ih,"MASKFLOAT", "%g:%g", min, max);[m + return 1;[m + }[m + [m + int iupmaskMatSetFloat(Ihandle* ih, int autofill, float min, float max, int lin, int col)[m + {[m + (void)autofill;[m +[31m- IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%f:%f", min, max);[m +[32m+[m[32m IupMatSetfAttribute(ih,"MASKFLOAT", lin, col, "%g:%g", min, max);[m + return 0;[m + }[m + [m +[1mdiff --git a/iup/srccontrols/iup_oldtabs.c b/iup/srccontrols/iup_oldtabs.c[m +[1mindex 43b0c57..5ea7f0a 100755[m +[1m--- a/iup/srccontrols/iup_oldtabs.c[m +[1m+++ b/iup/srccontrols/iup_oldtabs.c[m +[36m@@ -2487,10 +2487,16 @@[m [mstatic int iTabsMapMethod(Ihandle* ih)[m + static void iTabsUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static void iTabsDestroyMethod(Ihandle* ih)[m +[1mdiff --git a/iup/srccontrols/iup_oldval.c b/iup/srccontrols/iup_oldval.c[m +[1mindex 50dae8a..9c14c90 100755[m +[1m--- a/iup/srccontrols/iup_oldval.c[m +[1m+++ b/iup/srccontrols/iup_oldval.c[m +[36m@@ -533,7 +533,7 @@[m [mstatic char* iValGetTypeAttrib(Ihandle* ih)[m + static char* iValGetValueAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->val);[m +[32m+[m[32m sprintf(str, "%g", ih->data->val);[m + return str;[m + }[m + [m +[36m@@ -576,7 +576,7 @@[m [mstatic int iValSetStepAttrib(Ihandle* ih, const char* step)[m + static char* iValGetStepAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->step);[m +[32m+[m[32m sprintf(str, "%g", ih->data->step);[m + return str;[m + }[m + [m +[36m@@ -590,7 +590,7 @@[m [mstatic int iValSetPageStepAttrib(Ihandle* ih, const char* pagestep)[m + static char* iValGetPageStepAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->pagestep);[m +[32m+[m[32m sprintf(str, "%g", ih->data->pagestep);[m + return str;[m + }[m + [m +[36m@@ -605,7 +605,7 @@[m [mstatic int iValSetMaxAttrib(Ihandle* ih, const char* max)[m + static char* iValGetMaxAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->vmax);[m +[32m+[m[32m sprintf(str, "%g", ih->data->vmax);[m + return str;[m + }[m + [m +[36m@@ -620,7 +620,7 @@[m [mstatic int iValSetMinAttrib(Ihandle* ih, const char* min)[m + static char* iValGetMinAttrib(Ihandle* ih)[m + {[m + char* str = iupStrGetMemory(20);[m +[31m- sprintf(str, "%f", ih->data->vmin);[m +[32m+[m[32m sprintf(str, "%g", ih->data->vmin);[m + return str;[m + }[m + [m +[36m@@ -719,10 +719,16 @@[m [mstatic int iValMapMethod(Ihandle* ih)[m + static void iValUnMapMethod(Ihandle* ih)[m + {[m + if (ih->data->cddbuffer)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cddbuffer);[m +[32m+[m[32m ih->data->cddbuffer = NULL;[m +[32m+[m[32m }[m + [m + if (ih->data->cdcanvas)[m +[32m+[m[32m {[m + cdKillCanvas(ih->data->cdcanvas);[m +[32m+[m[32m ih->data->cdcanvas = NULL;[m +[32m+[m[32m }[m + }[m + [m + static void iValDestroyMethod(Ihandle* ih)[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_aux.c b/iup/srccontrols/matrix/iupmat_aux.c[m +[1mindex f8b85bb..1a8df57 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_aux.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_aux.c[m +[36m@@ -24,16 +24,11 @@[m + #include "iupmat_getset.h"[m + [m + [m +[31m-static int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m)[m +[32m+[m[32mint iupMatrixAuxIsFullVisibleLast(ImatLinColData *p)[m + {[m + int i, sum = 0;[m +[31m- ImatLinColData *p;[m +[31m-[m +[31m- if (m == IMAT_PROCESS_LIN)[m +[31m- p = &(ih->data->lines);[m +[31m- else[m +[31m- p = &(ih->data->columns);[m + [m +[32m+[m[32m sum -= p->first_offset;[m + for(i = p->first; i <= p->last; i++)[m + sum += p->sizes[i];[m + [m +[36m@@ -43,16 +38,20 @@[m [mstatic int iMatrixAuxIsFullVisibleLast(Ihandle* ih, int m)[m + return 1;[m + }[m + [m +[31m-int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col)[m +[32m+[m[32mint iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col)[m + {[m + if(((lin >= ih->data->lines.first) &&[m + (lin <= ih->data->lines.last) &&[m + (col >= ih->data->columns.first) &&[m + (col <= ih->data->columns.last)))[m + {[m +[31m- if (col == ih->data->columns.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_COL))[m +[32m+[m[32m if (col == ih->data->columns.first && ih->data->columns.first_offset!=0)[m +[32m+[m[32m return 0;[m +[32m+[m[32m if (lin == ih->data->lines.first && ih->data->lines.first_offset!=0)[m + return 0;[m +[31m- if (lin == ih->data->lines.last && !iMatrixAuxIsFullVisibleLast(ih, IMAT_PROCESS_LIN))[m +[32m+[m[32m if (col == ih->data->columns.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->columns))[m +[32m+[m[32m return 0;[m +[32m+[m[32m if (lin == ih->data->lines.last && !iupMatrixAuxIsFullVisibleLast(&ih->data->lines))[m + return 0;[m + [m + return 1;[m +[36m@@ -81,18 +80,98 @@[m [mvoid iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y[m + /* find the position where the column starts */[m + *x = ih->data->columns.sizes[0];[m + for(i = ih->data->columns.first; i < col; i++)[m +[32m+[m[32m {[m + *x += ih->data->columns.sizes[i];[m + [m +[31m- /* find the column size */[m +[32m+[m[32m if (i == ih->data->columns.first)[m +[32m+[m[32m *x -= ih->data->columns.first_offset;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* get the column size */[m + *w = ih->data->columns.sizes[col] - 1;[m +[32m+[m[32m if (col == ih->data->columns.first)[m +[32m+[m[32m *w -= ih->data->columns.first_offset;[m + [m + /* find the position where the line starts */[m + *y = ih->data->lines.sizes[0];[m + for(i = ih->data->lines.first; i < lin; i++)[m +[32m+[m[32m {[m + *y += ih->data->lines.sizes[i];[m + [m +[31m- /* find the line size */[m +[32m+[m[32m if (i == ih->data->lines.first)[m +[32m+[m[32m *y -= ih->data->lines.first_offset;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* get the line size */[m + *h = ih->data->lines.sizes[lin] - 1;[m +[32m+[m[32m if (lin == ih->data->lines.first)[m +[32m+[m[32m *h -= ih->data->lines.first_offset;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p)[m +[32m+[m[32m{[m +[32m+[m[32m int i, sum = 0;[m +[32m+[m +[32m+[m[32m /* adjust "first" according to "last" */[m +[32m+[m +[32m+[m[32m i = p->last;[m +[32m+[m[32m sum = p->sizes[i];[m +[32m+[m[32m while (i>1 && sum < p->visible_size)[m +[32m+[m[32m {[m +[32m+[m[32m i--;[m +[32m+[m[32m sum += p->sizes[i];[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m if (i==1 && sum < p->visible_size)[m +[32m+[m[32m {[m +[32m+[m[32m /* if there are room for everyone then position at start */[m +[32m+[m[32m p->first = 1;[m +[32m+[m[32m p->first_offset = 0;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* the "while" found an index for first */[m +[32m+[m[32m p->first = i;[m +[32m+[m +[32m+[m[32m /* position at the remaing space */[m +[32m+[m[32m p->first_offset = sum - p->visible_size;[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mvoid iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos)[m +[32m+[m[32m{[m +[32m+[m[32m int index, sp, offset = 0;[m +[32m+[m +[32m+[m[32m sp = 0;[m +[32m+[m[32m for(index = 1; index < p->num; index++)[m +[32m+[m[32m {[m +[32m+[m[32m sp += p->sizes[index];[m +[32m+[m[32m if (sp > scroll_pos)[m +[32m+[m[32m {[m +[32m+[m[32m sp -= p->sizes[index]; /* get the previous value */[m +[32m+[m[32m offset = scroll_pos - sp;[m +[32m+[m[32m break;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m if (index == p->num)[m +[32m+[m[32m {[m +[32m+[m[32m if (p->num == 1)[m +[32m+[m[32m {[m +[32m+[m[32m /* did NOT go trough the "for" above */[m +[32m+[m[32m offset = scroll_pos;[m +[32m+[m[32m index = 1;[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m {[m +[32m+[m[32m /* go all the way trough the "for" above, but still sp < scroll_pos */[m +[32m+[m[32m offset = scroll_pos - sp;[m +[32m+[m[32m index = p->num-1;[m +[32m+[m[32m }[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m p->first = index;[m +[32m+[m[32m p->first_offset = offset;[m + }[m + [m + /* Calculate the size, in pixels, of the invisible columns/lines,[m +[36m@@ -101,10 +180,11 @@[m [mvoid iupMatrixAuxGetVisibleCellDim(Ihandle* ih, int lin, int col, int* x, int* y[m + Depends on the first visible column/line.[m + -> m : choose will operate on lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m + */[m +[31m-void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m)[m +[32m+[m[32mvoid iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m)[m + {[m +[32m+[m[32m float pos;[m +[32m+[m[32m int i, sb, scroll_pos;[m + char* POS;[m +[31m- int i, sb, visible_pos;[m + ImatLinColData *p;[m + [m + if (m == IMAT_PROCESS_LIN)[m +[36m@@ -120,33 +200,44 @@[m [mvoid iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m)[m + POS = "POSX";[m + }[m + [m +[31m- visible_pos = 0;[m +[31m- for(i = 1; i < p->first; i++)[m +[31m- visible_pos += p->sizes[i];[m +[32m+[m[32m /* "first" was changed, so update "last" and the scroll pos */[m + [m +[31m- if (ih->data->canvas.sb & sb)[m +[32m+[m[32m if (p->total_size <= p->visible_size)[m + {[m +[31m- float pos;[m +[32m+[m[32m /* the matrix is fully visible */[m +[32m+[m[32m p->first = 1;[m +[32m+[m[32m p->first_offset = 0;[m +[32m+[m[32m p->last = p->num==1? 1: p->num-1;[m + [m +[31m- if (p->total_size)[m +[31m- {[m +[31m- while ((visible_pos + p->visible_size > p->total_size) && p->first>1)[m +[31m- {[m +[31m- /* invalid position, must recalculate first */[m +[31m- p->first--;[m +[31m- visible_pos -= p->sizes[p->first];[m +[31m- }[m +[32m+[m[32m if (ih->data->canvas.sb & sb)[m +[32m+[m[32m IupSetAttribute(ih, POS, "0");[m + [m +[31m- pos = (float)visible_pos/(float)p->total_size;[m +[31m- }[m +[31m- else[m +[31m- pos = 0;[m +[32m+[m[32m return;[m +[32m+[m[32m }[m +[32m+[m +[32m+[m[32m /* must check if it is a valid position */[m +[32m+[m[32m scroll_pos = 0;[m +[32m+[m[32m for(i = 1; i < p->first; i++)[m +[32m+[m[32m scroll_pos += p->sizes[i];[m +[32m+[m[32m scroll_pos += p->first_offset;[m +[32m+[m +[32m+[m[32m if (scroll_pos + p->visible_size > p->total_size)[m +[32m+[m[32m {[m +[32m+[m[32m /* invalid condition, must recalculate so it is valid */[m +[32m+[m[32m scroll_pos = p->total_size - p->visible_size;[m + [m +[31m- iupMatrixAuxUpdateLast(p);[m +[31m- IupSetfAttribute(ih, POS, "%.5f", (double)pos);[m +[32m+[m[32m /* position first and first_offset, according to scroll pos */[m +[32m+[m[32m iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos);[m + }[m +[31m- else[m +[31m- iupMatrixAuxUpdateLast(p);[m +[32m+[m +[32m+[m[32m pos = (float)scroll_pos/(float)p->total_size;[m +[32m+[m +[32m+[m[32m /* update last */[m +[32m+[m[32m iupMatrixAuxUpdateLast(p);[m +[32m+[m +[32m+[m[32m /* update scroll pos */[m +[32m+[m[32m if (ih->data->canvas.sb & sb)[m +[32m+[m[32m IupSetfAttribute(ih, POS, "%g", (double)pos);[m + }[m + [m + /* Calculate which is the last visible column/line of the matrix. [m +[36m@@ -157,18 +248,24 @@[m [mvoid iupMatrixAuxUpdateLast(ImatLinColData *p)[m + [m + if (p->visible_size > 0)[m + {[m +[31m- /* Find which is the last column/line[m +[32m+[m[32m /* Find which is the last column/line.[m + Start in the first visible and continue adding the widths[m +[31m- up to the visible size */[m +[32m+[m[32m up to the visible size */[m +[32m+[m[32m sum -= p->first_offset;[m + for(i = p->first; i < p->num; i++)[m + {[m +[31m- sum += p->sizes[i];[m +[32m+[m[32m sum += p->sizes[i];[m + if(sum >= p->visible_size)[m + break;[m + }[m + [m + if (i == p->num)[m +[31m- p->last = i-1;[m +[32m+[m[32m {[m +[32m+[m[32m if (p->num == 1)[m +[32m+[m[32m p->last = 1;[m +[32m+[m[32m else[m +[32m+[m[32m p->last = p->num-1;[m +[32m+[m[32m }[m + else[m + p->last = i;[m + }[m +[36m@@ -185,7 +282,7 @@[m [mint iupMatrixAuxGetColumnWidth(Ihandle* ih, int col)[m + char* str = iupStrGetMemory(100);[m + char* value;[m + [m +[31m- /* can only be called for valid columns */[m +[32m+[m[32m /* can be called for invalid columns (col>numcol) */[m + [m + sprintf(str, "WIDTH%d", col);[m + value = iupAttribGet(ih, str);[m +[36m@@ -219,7 +316,7 @@[m [mint iupMatrixAuxGetColumnWidth(Ihandle* ih, int col)[m + width = max_width;[m + }[m + }[m +[31m- else if (ih->data->use_title_size)[m +[32m+[m[32m else if (ih->data->use_title_size && (col>=0 && col<ih->data->columns.num))[m + {[m + char* title_value = iupMatrixCellGetValue(ih, 0, col);[m + if (title_value)[m +[36m@@ -257,7 +354,7 @@[m [mint iupMatrixAuxGetLineHeight(Ihandle* ih, int lin)[m + char* str = iupStrGetMemory(100);[m + char* value;[m + [m +[31m- /* can only be called for valid lines */[m +[32m+[m[32m /* can be called for invalid lines (lin>numlin) */[m + [m + sprintf(str, "HEIGHT%d", lin);[m + value = iupAttribGet(ih, str);[m +[36m@@ -291,7 +388,7 @@[m [mint iupMatrixAuxGetLineHeight(Ihandle* ih, int lin)[m + height = max_height;[m + }[m + }[m +[31m- else if (ih->data->use_title_size)[m +[32m+[m[32m else if (ih->data->use_title_size && (lin>=0 && lin<ih->data->lines.num))[m + {[m + char* title_value = iupMatrixCellGetValue(ih, lin, 0);[m + if (title_value && title_value[0])[m +[36m@@ -374,7 +471,7 @@[m [mstatic void iMatrixAuxUpdateVisibleSize(Ihandle* ih, int m)[m + p->visible_size = p->total_size;[m + [m + if (p->total_size)[m +[31m- IupSetfAttribute(ih, D, "%f", (double)p->visible_size/(double)p->total_size);[m +[32m+[m[32m IupSetfAttribute(ih, D, "%g", (double)p->visible_size/(double)p->total_size);[m + else[m + IupSetAttribute(ih, D, "1.0");[m + }[m +[36m@@ -390,6 +487,7 @@[m [mvoid iupMatrixAuxCalcSizes(Ihandle* ih)[m + /* when removing lines the first can be positioned after the last line */[m + if (ih->data->lines.first > ih->data->lines.num-1) [m + {[m +[32m+[m[32m ih->data->lines.first_offset = 0;[m + if (ih->data->lines.num==1)[m + ih->data->lines.first = 1;[m + else[m +[36m@@ -397,46 +495,50 @@[m [mvoid iupMatrixAuxCalcSizes(Ihandle* ih)[m + }[m + if (ih->data->columns.first > ih->data->columns.num-1) [m + {[m +[32m+[m[32m ih->data->columns.first_offset = 0;[m + if (ih->data->columns.num == 1)[m + ih->data->columns.first = 1;[m + else[m + ih->data->columns.first = ih->data->columns.num-1;[m + }[m + [m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);[m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);[m +[32m+[m[32m /* make sure scroll pos is consistent */[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);[m + [m + ih->data->need_calcsize = 0;[m + }[m + [m + int iupMatrixAuxGetLinColFromXY(Ihandle* ih, int x, int y, int* l, int* c)[m + {[m +[31m- int size, lin, col;[m +[32m+[m[32m int x_col, y_col, lin, col;[m + [m +[31m- size = ih->data->columns.sizes[0]; /* always visible when non zero */[m +[31m- if (x < size)[m +[32m+[m[32m x_col = ih->data->columns.sizes[0]; /* always visible when non zero */[m +[32m+[m[32m if (x < x_col)[m + col = 0; /* It is in the column of titles */[m + else[m + {[m +[32m+[m[32m x_col -= ih->data->columns.first_offset;[m + for(col = ih->data->columns.first; col <= ih->data->columns.last; col++) /* for all visible columns */[m + {[m +[31m- size += ih->data->columns.sizes[col];[m +[31m- if (x < size)[m +[32m+[m[32m x_col += ih->data->columns.sizes[col];[m +[32m+[m[32m if (x < x_col)[m + break;[m + }[m + if (col > ih->data->columns.last)[m + col = -1;[m + }[m + [m +[31m- size = ih->data->lines.sizes[0]; /* always visible when non zero */[m +[31m- if (y < size)[m +[32m+[m[32m y_col = ih->data->lines.sizes[0]; /* always visible when non zero */[m +[32m+[m[32m if (y < y_col)[m + lin = 0; /* It is in the line of titles */[m + else[m + {[m +[32m+[m[32m y_col -= ih->data->lines.first_offset;[m + for(lin = ih->data->lines.first; lin <= ih->data->lines.last; lin++) /* for all visible lines */[m + {[m +[31m- size += ih->data->lines.sizes[lin];[m +[31m- if (y < size)[m +[32m+[m[32m y_col += ih->data->lines.sizes[lin];[m +[32m+[m[32m if (y < y_col)[m + break;[m + }[m + if(lin > ih->data->lines.last)[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_aux.h b/iup/srccontrols/matrix/iupmat_aux.h[m +[1mindex 296c1f5..01c77f1 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_aux.h[m +[1m+++ b/iup/srccontrols/matrix/iupmat_aux.h[m +[36m@@ -12,19 +12,22 @@[m + extern "C" {[m + #endif[m + [m +[31m-int iupMatrixAuxIsCellFullVisible(Ihandle* ih, int lin, int col);[m +[32m+[m[32mint iupMatrixAuxIsFullVisibleLast(ImatLinColData *p);[m +[32m+[m[32mint iupMatrixAuxIsCellStartVisible(Ihandle* ih, int lin, int col);[m + int iupMatrixAuxIsCellVisible(Ihandle* ih, int lin, int col);[m + void iupMatrixAuxGetVisibleCellDim (Ihandle* ih, int lin, int col, int* x, int* y, int* w, int* h);[m + [m + void iupMatrixAuxCalcSizes(Ihandle* ih);[m + [m +[31m-void iupMatrixAuxUpdateVisiblePos(Ihandle* ih, int m);[m +[32m+[m[32mvoid iupMatrixAuxAdjustFirstFromLast(ImatLinColData* p);[m +[32m+[m[32mvoid iupMatrixAuxAdjustFirstFromScrollPos(ImatLinColData* p, int scroll_pos);[m +[32m+[m[32mvoid iupMatrixAuxUpdateScrollPos(Ihandle* ih, int m);[m + void iupMatrixAuxUpdateLast(ImatLinColData *p);[m + [m + int iupMatrixAuxGetColumnWidth(Ihandle* ih, int col);[m + int iupMatrixAuxGetLineHeight (Ihandle* ih, int lin);[m + [m +[31m-int iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c);[m +[32m+[m[32mint iupMatrixAuxGetLinColFromXY (Ihandle* ih, int x, int y, int* l, int* c);[m + [m + int iupMatrixAuxCallLeaveCellCb (Ihandle* ih);[m + void iupMatrixAuxCallEnterCellCb (Ihandle* ih);[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_cd.h b/iup/srccontrols/matrix/iupmat_cd.h[m +[1mindex 1a10f2b..beb616a 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_cd.h[m +[1m+++ b/iup/srccontrols/matrix/iupmat_cd.h[m +[36m@@ -11,12 +11,12 @@[m + extern "C" {[m + #endif[m + [m +[31m-#define IUPMAT_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMatrixInvertYAxis(_ih, _y1), (_x2), iupMatrixInvertYAxis(_ih, _y2))[m +[31m-#define IUPMAT_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y))[m +[31m-#define IUPMAT_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))[m +[31m-#define IUPMAT_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))[m +[31m-#define IUPMAT_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMatrixInvertYAxis(_ih, _ymin), iupMatrixInvertYAxis(_ih, _ymax))[m +[31m-#define IUPMAT_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMatrixInvertYAxis(_ih, _y), (_text))[m +[32m+[m[32m#define iupMATRIX_LINE(_ih,_x1,_y1,_x2,_y2) cdCanvasLine((_ih)->data->cddbuffer, (_x1), iupMATRIX_INVERTYAXIS(_ih, _y1), (_x2), iupMATRIX_INVERTYAXIS(_ih, _y2))[m +[32m+[m[32m#define iupMATRIX_VERTEX(_ih,_x,_y) cdCanvasVertex((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y))[m +[32m+[m[32m#define iupMATRIX_BOX(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasBox((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))[m +[32m+[m[32m#define iupMATRIX_RECT(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasRect((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))[m +[32m+[m[32m#define iupMATRIX_CLIPAREA(_ih,_xmin,_xmax,_ymin,_ymax) cdCanvasClipArea((_ih)->data->cddbuffer, (_xmin), (_xmax), iupMATRIX_INVERTYAXIS(_ih, _ymin), iupMATRIX_INVERTYAXIS(_ih, _ymax))[m +[32m+[m[32m#define iupMATRIX_TEXT(_ih,_x,_y,_text) cdCanvasText((_ih)->data->cddbuffer, (_x), iupMATRIX_INVERTYAXIS(_ih, _y), (_text))[m + [m + #ifdef __cplusplus[m + }[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_colres.c b/iup/srccontrols/matrix/iupmat_colres.c[m +[1mindex d44b7df..79f389e 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_colres.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_colres.c[m +[36m@@ -34,15 +34,17 @@[m + if so the resize is started */[m + int iupMatrixColResStart(Ihandle* ih, int x, int y)[m + {[m +[31m- if (ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX"))[m +[32m+[m[32m if (ih->data->lines.sizes[0] &&[m[41m [m +[32m+[m[32m y < ih->data->lines.sizes[0] &&[m[41m [m +[32m+[m[32m iupAttribGetBoolean(ih, "RESIZEMATRIX"))[m + {[m +[31m- int size, col;[m +[32m+[m[32m int x_col, col;[m + [m + /* Check if is the column of titles */[m +[31m- size = ih->data->columns.sizes[0];[m +[31m- if (abs(size-x) < IMAT_COLRES_TOL)[m +[32m+[m[32m x_col = ih->data->columns.sizes[0];[m +[32m+[m[32m if (abs(x_col-x) < IMAT_COLRES_TOL)[m + {[m +[31m- ih->data->colres_drag_col_start_x = 0;[m +[32m+[m[32m ih->data->colres_drag_col_start_x = x;[m + ih->data->colres_dragging = 1;[m + ih->data->colres_drag_col_last_x = -1;[m + ih->data->colres_drag_col = 0;[m +[36m@@ -51,12 +53,13 @@[m [mint iupMatrixColResStart(Ihandle* ih, int x, int y)[m + else[m + {[m + /* find the column */[m +[32m+[m[32m x_col -= ih->data->columns.first_offset;[m + for(col = ih->data->columns.first; col <= ih->data->columns.last; col++)[m + {[m +[31m- ih->data->colres_drag_col_start_x = size;[m +[31m- size += ih->data->columns.sizes[col];[m +[31m- if (abs(size-x) < IMAT_COLRES_TOL)[m +[32m+[m[32m x_col += ih->data->columns.sizes[col];[m +[32m+[m[32m if (abs(x_col-x) < IMAT_COLRES_TOL)[m + {[m +[32m+[m[32m ih->data->colres_drag_col_start_x = x;[m + ih->data->colres_dragging = 1;[m + ih->data->colres_drag_col_last_x = -1;[m + ih->data->colres_drag_col = col;[m +[36m@@ -71,7 +74,8 @@[m [mint iupMatrixColResStart(Ihandle* ih, int x, int y)[m + void iupMatrixColResFinish(Ihandle* ih, int x)[m + {[m + char str[100];[m +[31m- int width = x - ih->data->colres_drag_col_start_x;[m +[32m+[m[32m int delta = x - ih->data->colres_drag_col_start_x;[m +[32m+[m[32m int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta;[m + if (width < 0)[m + width = 0;[m + [m +[36m@@ -83,8 +87,8 @@[m [mvoid iupMatrixColResFinish(Ihandle* ih, int x)[m + [m + cdCanvasWriteMode(ih->data->cdcanvas, CD_XOR);[m + cdCanvasForeground(ih->data->cdcanvas, IMAT_RESIZE_COLOR); [m +[31m- cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1), [m +[31m- ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2));[m +[32m+[m[32m cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1),[m[41m [m +[32m+[m[32m ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2));[m + cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE);[m + }[m + [m +[36m@@ -106,7 +110,8 @@[m [mvoid iupMatrixColResMove(Ihandle* ih, int x)[m + {[m + int y1, y2;[m + [m +[31m- int width = x - ih->data->colres_drag_col_start_x;[m +[32m+[m[32m int delta = x - ih->data->colres_drag_col_start_x;[m +[32m+[m[32m int width = ih->data->columns.sizes[ih->data->colres_drag_col] + delta;[m + if (width < 0)[m + return;[m + [m +[36m@@ -119,12 +124,12 @@[m [mvoid iupMatrixColResMove(Ihandle* ih, int x)[m + /* If it is not the first time, move old line */[m + if (ih->data->colres_drag_col_last_x != -1)[m + {[m +[31m- cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y1), [m +[31m- ih->data->colres_drag_col_last_x, iupMatrixInvertYAxis(ih, y2));[m +[32m+[m[32m cdCanvasLine(ih->data->cdcanvas, ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y1),[m[41m [m +[32m+[m[32m ih->data->colres_drag_col_last_x, iupMATRIX_INVERTYAXIS(ih, y2));[m + }[m + [m +[31m- cdCanvasLine(ih->data->cdcanvas, x, iupMatrixInvertYAxis(ih, y1), [m +[31m- x, iupMatrixInvertYAxis(ih, y2));[m +[32m+[m[32m cdCanvasLine(ih->data->cdcanvas, x, iupMATRIX_INVERTYAXIS(ih, y1),[m[41m [m +[32m+[m[32m x, iupMATRIX_INVERTYAXIS(ih, y2));[m + [m + ih->data->colres_drag_col_last_x = x;[m + cdCanvasWriteMode(ih->data->cdcanvas, CD_REPLACE);[m +[36m@@ -144,20 +149,23 @@[m [mstatic void iMatrixColResResetMatrixCursor(Ihandle* ih)[m + /* Change the cursor when it passes over a group of the column titles. */[m + void iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y)[m + {[m +[31m- if(ih->data->lines.sizes[0] && y < ih->data->lines.sizes[0] && iupAttribGetBoolean(ih, "RESIZEMATRIX"))[m +[32m+[m[32m if(ih->data->lines.sizes[0] &&[m[41m [m +[32m+[m[32m y < ih->data->lines.sizes[0] &&[m[41m [m +[32m+[m[32m iupAttribGetBoolean(ih, "RESIZEMATRIX"))[m + {[m + /* It is in the column titles area and the resize mode is on */[m +[31m- int found = 0, size, col;[m +[32m+[m[32m int found = 0, x_col, col;[m + [m +[31m- size = ih->data->columns.sizes[0];[m +[31m- if (abs(size - x) < IMAT_COLRES_TOL)[m +[32m+[m[32m x_col = ih->data->columns.sizes[0];[m +[32m+[m[32m if (abs(x_col - x) < IMAT_COLRES_TOL)[m + found = 1; /* line titles */[m + else[m + {[m +[32m+[m[32m x_col -= ih->data->columns.first_offset;[m + for(col = ih->data->columns.first; col <= ih->data->columns.last && !found; col++)[m + {[m +[31m- size += ih->data->columns.sizes[col];[m +[31m- if(abs(size - x) < IMAT_COLRES_TOL)[m +[32m+[m[32m x_col += ih->data->columns.sizes[col];[m +[32m+[m[32m if(abs(x_col - x) < IMAT_COLRES_TOL)[m + found = 1;[m + }[m + }[m +[36m@@ -168,7 +176,7 @@[m [mvoid iupMatrixColResCheckChangeCursor(Ihandle* ih, int x, int y)[m + iupAttribStoreStr(ih, "_IUPMAT_CURSOR", IupGetAttribute(ih, "CURSOR"));[m + IupSetAttribute(ih, "CURSOR", "RESIZE_W");[m + }[m +[31m- else /* It is in the empty area after the last column */[m +[32m+[m[32m else /* It is in the empty area after the last column, or inside a cell */[m + iMatrixColResResetMatrixCursor(ih); [m + }[m + else[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_def.h b/iup/srccontrols/matrix/iupmat_def.h[m +[1mindex d45acde..225cc16 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_def.h[m +[1m+++ b/iup/srccontrols/matrix/iupmat_def.h[m +[36m@@ -49,6 +49,7 @@[m [mtypedef struct _ImatLinColData[m + int num; /* Number of columns/lines in the matrix, default/minimum=1, always includes the title */[m + int num_alloc; /* Number of columns/lines allocated, default=5 */[m + [m +[32m+[m[32m int first_offset; /* scroll offset of the first visible column/line from right to left (or the invisible part of the first cell) */[m + int first; /* First visible column/line */[m + int last; /* Last visible column/line */[m + [m +[36m@@ -84,7 +85,7 @@[m [mstruct _IcontrolData[m + [m + /* attributes */[m + int mark_continuous, mark_mode, mark_multiple;[m +[31m- int checkframecolor;[m +[32m+[m[32m int checkframecolor, hidden_text_marks;[m + [m + /* Mouse and Keyboard AUX */[m + int leftpressed; /* left mouse button is pressed */[m +[36m@@ -92,8 +93,8 @@[m [mstruct _IcontrolData[m + [m + /* ColRes AUX */[m + int colres_dragging, /* indicates if it is being made a column resize */[m +[31m- colres_drag_col, /* column being resized */[m +[31m- colres_drag_col_start_x, /* position of the start of the column being resized */[m +[32m+[m[32m colres_drag_col, /* column being resized, handler is at right of the column */[m +[32m+[m[32m colres_drag_col_start_x, /* handler start position */[m + colres_drag_col_last_x; /* previous position */[m + [m + /* Mark AUX */[m +[36m@@ -107,12 +108,14 @@[m [mstruct _IcontrolData[m + IFniiIII fgcolor_cb;[m + IFniiIII bgcolor_cb;[m + char *bgcolor, *bgcolor_parent, *fgcolor, *font; /* not need to free */[m +[32m+[m +[32m+[m[32m int clip_x1, clip_x2, clip_y1, clip_y2; /* aux for cell clipping */[m + };[m + [m + [m + int iupMatrixIsValid(Ihandle* ih, int check_cells);[m + [m +[31m-#define iupMatrixInvertYAxis(_ih, _y) ((_ih)->data->h-1 - (_y))[m +[32m+[m[32m#define iupMATRIX_INVERTYAXIS(_ih, _y) ((_ih)->data->h-1 - (_y))[m + [m + [m + #ifdef __cplusplus[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_draw.c b/iup/srccontrols/matrix/iupmat_draw.c[m +[1mindex 7c53fb5..ec3df59 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_draw.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_draw.c[m +[36m@@ -47,13 +47,38 @@[m + #define IMAT_COMBOBOX_W 16[m + [m + [m +[31m-typedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col,int x1, int x2, int y1, int y2, cdCanvas* cnv);[m +[32m+[m[32mtypedef int (*IFniiiiiiC)(Ihandle *h, int lin, int col, int x1, int x2, int y1, int y2, cdCanvas* cnv);[m + [m + [m + /**************************************************************************/[m + /* Private functions */[m + /**************************************************************************/[m + [m +[32m+[m[32mstatic void iMatrixDrawSetCellClipping(Ihandle* ih, int x1, int x2, int y1, int y2)[m +[32m+[m[32m{[m +[32m+[m[32m int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY);[m +[32m+[m[32m if (old_clip == CD_CLIPAREA)[m +[32m+[m[32m {[m +[32m+[m[32m cdCanvasGetClipArea(ih->data->cddbuffer, &(ih->data->clip_x1), &(ih->data->clip_x2), &(ih->data->clip_y1), &(ih->data->clip_y2));[m +[32m+[m[32m y1 = iupMATRIX_INVERTYAXIS(ih, y1);[m +[32m+[m[32m y2 = iupMATRIX_INVERTYAXIS(ih, y2);[m +[32m+[m[32m if (x1 > x2) {int tmp = x1; x1 = x2; x2 = tmp;}[m +[32m+[m[32m if (y1 > y2) {int tmp = y1; y1 = y2; y2 = tmp;}[m +[32m+[m[32m if (x1 < ih->data->clip_x1) x1 = ih->data->clip_x1;[m +[32m+[m[32m if (x2 > ih->data->clip_x2) x2 = ih->data->clip_x2;[m +[32m+[m[32m if (y1 < ih->data->clip_y1) y1 = ih->data->clip_y1;[m +[32m+[m[32m if (y2 > ih->data->clip_y2) y2 = ih->data->clip_y2;[m +[32m+[m[32m cdCanvasClipArea(ih->data->cddbuffer, x1, x2, y1, y2);[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);[m +[32m+[m[32m }[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void iMatrixDrawResetCellClipping(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m int old_clip = cdCanvasClip(ih->data->cddbuffer, CD_QUERY);[m +[32m+[m[32m if (old_clip == CD_CLIPAREA)[m +[32m+[m[32m cdCanvasClipArea(ih->data->cddbuffer, ih->data->clip_x1, ih->data->clip_x2, ih->data->clip_y1, ih->data->clip_y2);[m +[32m+[m[32m}[m + [m + static int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str)[m + {[m +[36m@@ -61,6 +86,8 @@[m [mstatic int iMatrixDrawGetColAlignment(Ihandle* ih, int col, char* str)[m + sprintf(str, "ALIGNMENT%d", col);[m + align = iupAttribGet(ih, str);[m + if (!align)[m +[32m+[m[32m align = iupAttribGet(ih, "ALIGNMENT");[m +[32m+[m[32m if (!align)[m + {[m + if (col == 0)[m + return IMAT_T_LEFT;[m +[36m@@ -80,16 +107,15 @@[m [mstatic int iMatrixDrawCallDrawCB(Ihandle* ih, int lin, int col, int x1, int x2,[m + int ret;[m + cdCanvas* old_cnv;[m + [m +[31m- IUPMAT_CLIPAREA(ih, x1, x2, y1, y2);[m +[31m- cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);[m +[32m+[m[32m iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2);[m + [m + old_cnv = cdActiveCanvas();[m + if (old_cnv != ih->data->cddbuffer) /* backward compatibility code */[m + cdActivate(ih->data->cddbuffer);[m + [m +[31m- ret = draw_cb(ih, lin, col, x1, x2, iupMatrixInvertYAxis(ih, y1), iupMatrixInvertYAxis(ih, y2), ih->data->cddbuffer);[m +[32m+[m[32m ret = draw_cb(ih, lin, col, x1, x2, iupMATRIX_INVERTYAXIS(ih, y1), iupMATRIX_INVERTYAXIS(ih, y2), ih->data->cddbuffer);[m + [m +[31m- cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);[m +[32m+[m[32m iMatrixDrawResetCellClipping(ih);[m + [m + if (old_cnv && old_cnv != ih->data->cddbuffer) /* backward compatibility code */[m + {[m +[36m@@ -165,28 +191,36 @@[m [mstatic void iMatrixDrawFrameHorizLineCell(Ihandle* ih, int lin, int col, int x1,[m + {[m + if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEHCOLOR))[m + {[m +[32m+[m[32m char* color;[m + unsigned char r,g,b;[m + sprintf(str, "FRAMEHORIZCOLOR%d:%d", lin, col);[m +[31m- if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b))[m +[32m+[m[32m color = iupAttribGet(ih, str);[m +[32m+[m[32m if (iupStrEqual(color, "BGCOLOR"))[m +[32m+[m[32m return;[m +[32m+[m[32m if (iupStrToRGB(color, &r, &g, &b))[m + framecolor = cdEncodeColor(r, g, b);[m + }[m + [m + cdCanvasForeground(ih->data->cddbuffer, framecolor);[m +[31m- IUPMAT_LINE(ih, x1, y, x2, y); /* bottom horizontal line */[m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y, x2, y); /* bottom horizontal line */[m + }[m + [m + static void iMatrixDrawFrameVertLineCell(Ihandle* ih, int lin, int col, int x, int y1, int y2, long framecolor, char* str)[m + {[m + if (ih->data->checkframecolor && (ih->data->callback_mode || ih->data->cells[lin][col].flags & IUPMAT_FRAMEVCOLOR))[m + {[m +[32m+[m[32m char* color;[m + unsigned char r,g,b;[m + sprintf(str, "FRAMEVERTCOLOR%d:%d", lin, col);[m +[31m- if (iupStrToRGB(iupAttribGet(ih, str), &r, &g, &b))[m +[32m+[m[32m color = iupAttribGet(ih, str);[m +[32m+[m[32m if (iupStrEqual(color, "BGCOLOR"))[m +[32m+[m[32m return;[m +[32m+[m[32m if (iupStrToRGB(color, &r, &g, &b))[m + framecolor = cdEncodeColor(r, g, b);[m + }[m + [m + cdCanvasForeground(ih->data->cddbuffer, framecolor);[m +[31m- IUPMAT_LINE(ih, x, y1, x, y2); /* right vertical line */[m +[32m+[m[32m iupMATRIX_LINE(ih, x, y1, x, y2); /* right vertical line */[m + }[m + [m + static void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str)[m +[36m@@ -195,37 +229,43 @@[m [mstatic void iMatrixDrawFrameRectTitle(Ihandle* ih, int lin, int col, int x1, int[m + x2 -= IMAT_FRAME_W/2;[m + y2 -= IMAT_FRAME_H/2;[m + [m +[31m- iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str); /* right vertical line */[m +[32m+[m[32m /* right vertical line */[m +[32m+[m[32m iMatrixDrawFrameVertLineCell(ih, lin, col, x2, y1, y2, framecolor, str);[m[41m [m + if (col==0)[m + {[m +[31m- IUPMAT_LINE(ih, x1, y1, x1, y2); /* left vertical line, reuse Foreground */[m +[32m+[m[32m /* left vertical line, reuse Foreground */[m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y1, x1, y2);[m[41m [m + x1++;[m + }[m + else if (col==1 && ih->data->columns.sizes[0] == 0)[m + {[m + /* If does not have line titles then draw the left line of the cell frame */[m +[31m- IUPMAT_LINE(ih, x1, y1, x1, y2-1);[m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y1, x1, y2-1);[m + x1++;[m + }[m + [m +[31m- cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */[m +[31m- IUPMAT_LINE(ih, x1, y1+1, x1, y2-1);[m +[32m+[m[32m /* Titles have a white line near the frame, at left */[m +[32m+[m[32m cdCanvasForeground(ih->data->cddbuffer, CD_WHITE);[m[41m [m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y1+1, x1, y2-1);[m + [m +[31m- iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str); /* bottom horizontal line */[m +[32m+[m[32m /* bottom horizontal line */[m +[32m+[m[32m iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2, y2, framecolor, str);[m[41m [m + if (lin==0)[m + {[m +[31m- IUPMAT_LINE(ih, x1, y1, x2, y1); /* top horizontal line, reuse Foreground */[m +[32m+[m[32m /* top horizontal line, reuse Foreground */[m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y1, x2, y1);[m[41m [m + y1++;[m + }[m + else if (lin==1 && ih->data->lines.sizes[0] == 0)[m + {[m + /* If does not have column titles then draw the top line of the cell frame */[m +[31m- IUPMAT_LINE(ih, x1, y1, x2-1, y1);[m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y1, x2-1, y1);[m + y1++;[m + }[m + [m +[31m- cdCanvasForeground(ih->data->cddbuffer, CD_WHITE); /* Titles have a white line near the frame */[m +[31m- IUPMAT_LINE(ih, x1, y1, x2-1, y1);[m +[32m+[m[32m /* Titles have a white line near the frame, at top */[m +[32m+[m[32m cdCanvasForeground(ih->data->cddbuffer, CD_WHITE);[m[41m [m +[32m+[m[32m iupMATRIX_LINE(ih, x1, y1, x2-1, y1);[m + }[m + [m + static void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int x2, int y1, int y2, long framecolor, char* str)[m +[36m@@ -233,20 +273,20 @@[m [mstatic void iMatrixDrawFrameRectCell(Ihandle* ih, int lin, int col, int x1, int[m + if (col==1 && ih->data->columns.sizes[0] == 0)[m + {[m + /* If does not have line titles then draw the left line of the cell frame */[m +[31m- iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1-1, framecolor, str);[m +[32m+[m[32m iMatrixDrawFrameVertLineCell(ih, lin, col, x1, y1, y2-1, framecolor, str);[m + }[m + [m + if (lin==1 && ih->data->lines.sizes[0] == 0)[m + {[m + /* If does not have column titles then draw the top line of the cell frame */[m +[31m- iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1-1, y1, framecolor, str);[m +[32m+[m[32m iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y1, framecolor, str);[m + }[m + [m + /* bottom line */[m + iMatrixDrawFrameHorizLineCell(ih, lin, col, x1, x2-1, y2-1, framecolor, str);[m + [m + /* rigth line */[m +[31m- iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-1, framecolor, str);[m +[32m+[m[32m iMatrixDrawFrameVertLineCell(ih, lin, col, x2-1, y1, y2-2, framecolor, str);[m + }[m + [m + static int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int active, char* str)[m +[36m@@ -274,15 +314,15 @@[m [mstatic int iMatrixDrawSortSign(Ihandle* ih, int x2, int y1, int y2, int col, int[m + [m + if (iupStrEqualNoCase(sort, "DOWN"))[m + {[m +[31m- IUPMAT_VERTEX(ih, x2 - 5, yc + 2);[m +[31m- IUPMAT_VERTEX(ih, x2 - 1, yc - 2);[m +[31m- IUPMAT_VERTEX(ih, x2 - 9, yc - 2);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, x2 - 5, yc + 2);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, x2 - 1, yc - 2);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, x2 - 9, yc - 2);[m + }[m + else[m + {[m +[31m- IUPMAT_VERTEX(ih, x2 - 1, yc + 2);[m +[31m- IUPMAT_VERTEX(ih, x2 - 9, yc + 2);[m +[31m- IUPMAT_VERTEX(ih, x2 - 5, yc - 2);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, x2 - 1, yc + 2);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, x2 - 9, yc + 2);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, x2 - 5, yc - 2);[m + }[m + [m + cdCanvasEnd(ih->data->cddbuffer);[m +[36m@@ -301,20 +341,20 @@[m [mstatic void iMatrixDrawComboFeedback(Ihandle* ih, int x2, int y1, int y2, int ac[m + [m + /* feedback background */[m + iMatrixDrawSetBgColor(ih, 0, 0, 0, active);[m +[31m- IUPMAT_BOX(ih, x1, x2, y1, y2);[m +[32m+[m[32m iupMATRIX_BOX(ih, x1, x2, y1, y2);[m + [m + /* feedback frame */[m + cdCanvasForeground(ih->data->cddbuffer, framecolor);[m +[31m- IUPMAT_RECT(ih, x1, x2, y1, y2);[m +[32m+[m[32m iupMATRIX_RECT(ih, x1, x2, y1, y2);[m + [m + /* feedback arrow */[m + xh2 = x2 - IMAT_COMBOBOX_W / 2;[m + yh2 = y2 - (y2 - y1) / 2;[m + [m + cdCanvasBegin(ih->data->cddbuffer, CD_FILL);[m +[31m- IUPMAT_VERTEX(ih, xh2, yh2 + 3);[m +[31m- IUPMAT_VERTEX(ih, xh2 + 4, yh2 - 1);[m +[31m- IUPMAT_VERTEX(ih, xh2 - 4, yh2 - 1);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, xh2, yh2 + 3);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, xh2 + 4, yh2 - 1);[m +[32m+[m[32m iupMATRIX_VERTEX(ih, xh2 - 4, yh2 - 1);[m + cdCanvasEnd(ih->data->cddbuffer);[m + }[m + [m +[36m@@ -325,7 +365,7 @@[m [mstatic void iMatrixDrawBackground(Ihandle* ih, int x1, int x2, int y1, int y2, i[m + y2 -= IMAT_FRAME_H/2;[m + [m + iMatrixDrawSetBgColor(ih, lin, col, marked, active);[m +[31m- IUPMAT_BOX(ih, x1, x2, y1, y2);[m +[32m+[m[32m iupMATRIX_BOX(ih, x1, x2, y1, y2);[m + }[m + [m + /* Put the cell contents in the screen, using the specified color and alignment.[m +[36m@@ -372,7 +412,7 @@[m [mstatic void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in[m + if (text && *text)[m + {[m + int num_line, line_height, total_height;[m +[31m- int charheight, ypos;[m +[32m+[m[32m int charheight, ypos, hidden_text_marks = 0;[m + [m + num_line = iupStrLineCount(text);[m + iupdrvFontGetCharSize(ih, NULL, &charheight);[m +[36m@@ -380,12 +420,18 @@[m [mstatic void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in[m + line_height = charheight;[m + total_height = (line_height + IMAT_PADDING_H/2) * num_line - IMAT_PADDING_H/2 - IMAT_FRAME_H/2;[m + [m +[31m- if (lin==0)[m +[32m+[m[32m if (lin==0 || ih->data->hidden_text_marks)[m + {[m + int text_w;[m + iupdrvFontGetMultiLineStringSize(ih, text, &text_w, NULL);[m + if (text_w > x2 - x1 + 1 - IMAT_PADDING_W - IMAT_FRAME_W)[m +[31m- alignment = IMAT_T_LEFT;[m +[32m+[m[32m {[m +[32m+[m[32m if (lin == 0)[m +[32m+[m[32m alignment = IMAT_T_LEFT;[m +[32m+[m +[32m+[m[32m if (ih->data->hidden_text_marks)[m +[32m+[m[32m hidden_text_marks = 1;[m +[32m+[m[32m }[m + }[m + [m + /* Set the color used to draw the text */[m +[36m@@ -395,8 +441,13 @@[m [mstatic void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in[m + iMatrixDrawSetFgColor(ih, lin, col, marked);[m + [m + /* Set the clip area to the cell region informed, the text maybe greatter than the cell */[m +[31m- IUPMAT_CLIPAREA(ih, x1, x2, y1, y2);[m +[31m- cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);[m +[32m+[m[32m if (hidden_text_marks)[m +[32m+[m[32m {[m +[32m+[m[32m int crop = iupdrvFontGetStringWidth(ih, "...") + 2;[m +[32m+[m[32m iMatrixDrawSetCellClipping(ih, x1, x2-crop, y1, y2);[m +[32m+[m[32m }[m +[32m+[m[32m else[m +[32m+[m[32m iMatrixDrawSetCellClipping(ih, x1, x2, y1, y2);[m + [m + cdCanvasNativeFont(ih->data->cddbuffer, iupMatrixGetFont(ih, lin, col));[m + [m +[36m@@ -417,11 +468,11 @@[m [mstatic void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in[m + [m + /* Put the text */[m + if (alignment == IMAT_T_CENTER)[m +[31m- IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, text);[m +[32m+[m[32m iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, text);[m + else if(alignment == IMAT_T_LEFT)[m +[31m- IUPMAT_TEXT(ih, x1, ypos, text);[m +[32m+[m[32m iupMATRIX_TEXT(ih, x1, ypos, text);[m + else[m +[31m- IUPMAT_TEXT(ih, x2, ypos, text);[m +[32m+[m[32m iupMATRIX_TEXT(ih, x2, ypos, text);[m + }[m + else[m + {[m +[36m@@ -441,11 +492,11 @@[m [mstatic void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in[m + [m + /* Draw the text */[m + if(alignment == IMAT_T_CENTER)[m +[31m- IUPMAT_TEXT(ih, (x1 + x2) / 2, ypos, p);[m +[32m+[m[32m iupMATRIX_TEXT(ih, (x1 + x2) / 2, ypos, p);[m + else if(alignment == IMAT_T_LEFT)[m +[31m- IUPMAT_TEXT(ih, x1, ypos, p);[m +[32m+[m[32m iupMATRIX_TEXT(ih, x1, ypos, p);[m + else[m +[31m- IUPMAT_TEXT(ih, x2, ypos, p);[m +[32m+[m[32m iupMATRIX_TEXT(ih, x2, ypos, p);[m + [m + /* Advance the string */[m + if (q) p = q + 1;[m +[36m@@ -457,7 +508,15 @@[m [mstatic void iMatrixDrawCellValue(Ihandle* ih, int x1, int x2, int y1, int y2, in[m + free(newtext);[m + }[m + [m +[31m- cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);[m +[32m+[m[32m iMatrixDrawResetCellClipping(ih);[m +[32m+[m +[32m+[m[32m if (hidden_text_marks)[m +[32m+[m[32m {[m +[32m+[m[32m cdCanvasTextAlignment(ih->data->cddbuffer, CD_EAST);[m +[32m+[m[32m ypos = (int)((y1 + y2) / 2.0 - 0.5);[m +[32m+[m[32m iupMATRIX_TEXT(ih, x2+IMAT_PADDING_W/2, ypos, "...");[m +[32m+[m[32m }[m +[32m+[m + }[m + }[m + [m +[36m@@ -522,7 +581,7 @@[m [mstatic void iMatrixDrawFocus(Ihandle* ih)[m + if (ih->data->lines.focus_cell == 1 && ih->data->lines.sizes[0] == 0)[m + y1++;[m + [m +[31m- cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMatrixInvertYAxis(ih, y1), x2, iupMatrixInvertYAxis(ih, y2));[m +[32m+[m[32m cdIupDrawFocusRect(ih, ih->data->cdcanvas, x1, iupMATRIX_INVERTYAXIS(ih, y1), x2, iupMATRIX_INVERTYAXIS(ih, y2));[m + }[m + [m + [m +[36m@@ -560,6 +619,11 @@[m [mvoid iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2)[m + x2 = ih->data->columns.sizes[0];[m + [m + y1 = ih->data->lines.sizes[0];[m +[32m+[m +[32m+[m[32m iupMATRIX_CLIPAREA(ih, x1, x2, y1, ih->data->h-1);[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);[m +[32m+[m +[32m+[m[32m y1 -= ih->data->lines.first_offset;[m + for(lin = ih->data->lines.first; lin < lin1; lin++)[m + y1 += ih->data->lines.sizes[lin];[m + [m +[36m@@ -592,6 +656,8 @@[m [mvoid iupMatrixDrawLineTitle(Ihandle* ih, int lin1, int lin2)[m + [m + y1 = y2;[m + }[m +[32m+[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);[m + }[m + [m + /* Draw the column titles, visible, between col and lastcol, include it. [m +[36m@@ -623,6 +689,11 @@[m [mvoid iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2)[m + y2 = ih->data->lines.sizes[0];[m + [m + x1 = ih->data->columns.sizes[0];[m +[32m+[m +[32m+[m[32m iupMATRIX_CLIPAREA(ih, x1, ih->data->w-1, y1, y2);[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);[m +[32m+[m +[32m+[m[32m x1 -= ih->data->columns.first_offset;[m + for(col = ih->data->columns.first; col < col1; col++)[m + x1 += ih->data->columns.sizes[col];[m + [m +[36m@@ -657,6 +728,8 @@[m [mvoid iupMatrixDrawColumnTitle(Ihandle* ih, int col1, int col2)[m + [m + x1 = x2;[m + }[m +[32m+[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);[m + }[m + [m + /* Redraw a block of cells of the matrix. Handle marked cells, change[m +[36m@@ -673,13 +746,11 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + IFnii dropcheck_cb;[m + IFniiiiiiC draw_cb;[m + [m +[31m- x1 = 0;[m + x2 = ih->data->w-1;[m +[31m- y1 = 0;[m + y2 = ih->data->h-1;[m + [m + old_x2 = x2;[m +[31m- old_y1 = y1;[m +[32m+[m[32m old_y1 = 0;[m + old_y2 = y2;[m + [m + if (col1 > ih->data->columns.last ||[m +[36m@@ -697,8 +768,14 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + if (lin2 > ih->data->lines.last)[m + lin2 = ih->data->lines.last;[m + [m +[32m+[m[32m x1 = ih->data->columns.sizes[0];[m +[32m+[m[32m y1 = ih->data->lines.sizes[0];[m +[32m+[m +[32m+[m[32m iupMATRIX_CLIPAREA(ih, x1, x2, y1, y2);[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF); /* wait for background */[m +[32m+[m + /* Find the initial position of the first column */[m +[31m- x1 += ih->data->columns.sizes[0];[m +[32m+[m[32m x1 -= ih->data->columns.first_offset;[m + for(col = ih->data->columns.first; col < col1; col++)[m + x1 += ih->data->columns.sizes[col];[m + [m +[36m@@ -708,7 +785,7 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + x2 += ih->data->columns.sizes[col];[m + [m + /* Find the initial position of the first line */[m +[31m- y1 += ih->data->lines.sizes[0];[m +[32m+[m[32m y1 -= ih->data->lines.first_offset;[m + for(lin = ih->data->lines.first; lin < lin1; lin++)[m + y1 += ih->data->lines.sizes[lin];[m + [m +[36m@@ -724,7 +801,7 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + [m + /* If it was drawn until the last column and remains space in the right of it,[m + then delete this area with the the background color. */[m +[31m- IUPMAT_BOX(ih, x2, old_x2, old_y1, old_y2);[m +[32m+[m[32m iupMATRIX_BOX(ih, x2, old_x2, old_y1, old_y2);[m + }[m + [m + if ((lin2 == ih->data->lines.num-1) && (old_y2 > y2))[m +[36m@@ -735,9 +812,12 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + [m + /* If it was drawn until the last line visible and remains space below it,[m + then delete this area with the the background color. */[m +[31m- IUPMAT_BOX(ih, 0, old_x2, y2, old_y2);[m +[32m+[m[32m iupMATRIX_BOX(ih, 0, old_x2, y2, old_y2);[m + }[m + [m +[32m+[m[32m /* after the background */[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPAREA);[m +[32m+[m + /***** Draw the cell values and frame */[m + old_y1 = y1;[m + framecolor = cdIupConvertColor(iupAttribGetStr(ih, "FRAMECOLOR"));[m +[36m@@ -775,7 +855,7 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + [m + if (dropcheck_cb && dropcheck_cb(ih, lin, col) == IUP_DEFAULT)[m + {[m +[31m- drop = IMAT_COMBOBOX_W;[m +[32m+[m[32m drop = IMAT_COMBOBOX_W+IMAT_PADDING_W/2;[m + iMatrixDrawComboFeedback(ih, x2, y1, y2, active, framecolor);[m + }[m + [m +[36m@@ -788,6 +868,8 @@[m [mvoid iupMatrixDrawCells(Ihandle* ih, int lin1, int col1, int lin2, int col2)[m + x1 = x2;[m + y1 = old_y1; /* must reset also y */[m + }[m +[32m+[m +[32m+[m[32m cdCanvasClip(ih->data->cddbuffer, CD_CLIPOFF);[m + }[m + [m + void iupMatrixDraw(Ihandle* ih, int update)[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_edit.c b/iup/srccontrols/matrix/iupmat_edit.c[m +[1mindex a7e0a74..551baed 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_edit.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_edit.c[m +[36m@@ -67,7 +67,7 @@[m [mstatic int iMatrixEditDropDownAction_CB(Ihandle* ih, char* t, int i, int v)[m + if (ret == IUP_CONTINUE)[m + {[m + iupMatrixEditHide(ih_matrix);[m +[31m- iupMatrixDrawUpdate(ih);[m +[32m+[m[32m iupMatrixDrawUpdate(ih_matrix);[m + }[m + }[m + [m +[36m@@ -137,13 +137,31 @@[m [mstatic int iMatrixEditCancel(Ihandle* ih, int focus, int update, int ignore)[m + return IUP_DEFAULT;[m + }[m + [m +[32m+[m[32mstatic int iMatrixEditDropDown_CB(Ihandle* ih, int state)[m +[32m+[m[32m{[m +[32m+[m[32m /* In Motif if DROPDOWN=YES then when the dropdown button is clicked[m[41m [m +[32m+[m[32m the list looses its focus and when the dropped list is closed[m[41m [m +[32m+[m[32m the list regain the focus, also when that happen if the list looses its focus[m[41m [m +[32m+[m[32m to another control the kill focus callback is not called. */[m +[32m+[m[32m Ihandle* ih_matrix = ih->parent;[m +[32m+[m[32m if (state == 1)[m +[32m+[m[32m iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", "1");[m +[32m+[m +[32m+[m[32m return IUP_DEFAULT;[m +[32m+[m[32m}[m +[32m+[m + static int iMatrixEditKillFocus_CB(Ihandle* ih)[m + {[m + Ihandle* ih_matrix = ih->parent;[m +[31m- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))[m +[32m+[m[32m if (IupGetGlobal("MOTIFVERSION"))[m + {[m +[31m- if (iupAttribGet(ih_matrix, "_IUPMAT_DOUBLE_CLICK"))[m +[32m+[m[32m if (iupAttribGet(ih_matrix, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */[m +[32m+[m[32m iupAttribGet(ih_matrix, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */[m +[32m+[m[32m {[m +[32m+[m[32m iupAttribSetStr(ih_matrix, "_IUPMAT_DOUBLECLICK", NULL);[m +[32m+[m[32m iupAttribSetStr(ih_matrix, "_IUPMAT_DROPDOWN", NULL);[m + return IUP_DEFAULT;[m +[32m+[m[32m }[m + }[m + [m + iupMatrixEditForceHidden(ih_matrix);[m +[36m@@ -200,7 +218,7 @@[m [mint iupMatrixEditShow(Ihandle* ih)[m + [m + /* position the cell to make it visible */[m + /* If the focus is not visible, a scroll is done for that the focus to be visible */[m +[31m- if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))[m +[32m+[m[32m if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))[m + iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell);[m + [m + /* set attributes */[m +[36m@@ -235,7 +253,7 @@[m [mint iupMatrixEditShow(Ihandle* ih)[m + ih->data->datah->y = y;[m + if (IupGetGlobal("GTKVERSION"))[m + {[m +[31m- /* In GTK, IupCanvas is not the actual container of the IupText/IupList */[m +[32m+[m[32m /* In GTK, IupCanvas is NOT the actual container of the IupText/IupList */[m + ih->data->datah->x += ih->x;[m + ih->data->datah->y += ih->y;[m + }[m +[36m@@ -366,7 +384,7 @@[m [mstatic int iMatrixEditTextKeyAny_CB(Ihandle* ih, int c)[m + [m + if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE)[m + {[m +[31m- iupMatrixScrollKeyCr(ih_matrix);[m +[32m+[m[32m iupMATRIX_ScrollKeyCr(ih_matrix);[m + iupMatrixAuxCallEnterCellCb(ih_matrix);[m + }[m + iupMatrixDrawUpdate(ih_matrix);[m +[36m@@ -399,7 +417,7 @@[m [mstatic int iMatrixEditDropDownKeyAny_CB(Ihandle* ih, int c)[m + {[m + if (iupMatrixAuxCallLeaveCellCb(ih_matrix) != IUP_IGNORE)[m + {[m +[31m- iupMatrixScrollKeyCr(ih_matrix);[m +[32m+[m[32m iupMATRIX_ScrollKeyCr(ih_matrix);[m + iupMatrixAuxCallEnterCellCb(ih_matrix);[m + }[m + iupMatrixDrawUpdate(ih_matrix);[m +[36m@@ -440,6 +458,9 @@[m [mvoid iupMatrixEditCreate(Ihandle* ih)[m + ih->data->droph = IupList(NULL);[m + iupChildTreeAppend(ih, ih->data->droph);[m + [m +[32m+[m[32m if (IupGetGlobal("MOTIFVERSION"))[m +[32m+[m[32m IupSetCallback(ih->data->droph, "DROPDOWN_CB", (Icallback)iMatrixEditDropDown_CB);[m +[32m+[m + IupSetCallback(ih->data->droph, "ACTION", (Icallback)iMatrixEditDropDownAction_CB);[m + IupSetCallback(ih->data->droph, "KILLFOCUS_CB", (Icallback)iMatrixEditKillFocus_CB);[m + IupSetCallback(ih->data->droph, "K_ANY", (Icallback)iMatrixEditDropDownKeyAny_CB);[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_focus.c b/iup/srccontrols/matrix/iupmat_focus.c[m +[1mindex 3c000f8..0cf680d 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_focus.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_focus.c[m +[36m@@ -35,13 +35,11 @@[m [mint iupMatrixFocus_CB(Ihandle* ih, int focus)[m + if (!iupMatrixIsValid(ih, 1))[m + return IUP_DEFAULT;[m + [m +[31m- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))[m +[32m+[m[32m if (IupGetGlobal("MOTIFVERSION"))[m + {[m +[31m- if (focus && iupAttribGet(ih, "_IUPMAT_DOUBLE_CLICK"))[m +[31m- {[m +[31m- iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", NULL);[m +[32m+[m[32m if (iupAttribGet(ih, "_IUPMAT_DROPDOWN") || /* from iMatrixEditDropDown_CB, in Motif */[m +[32m+[m[32m iupAttribGet(ih, "_IUPMAT_DOUBLECLICK")) /* from iMatrixMouseLeftPress, in Motif */[m + return IUP_DEFAULT;[m +[31m- }[m + }[m + [m + ih->data->has_focus = focus;[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_getset.c b/iup/srccontrols/matrix/iupmat_getset.c[m +[1mindex 34947b6..4424948 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_getset.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_getset.c[m +[36m@@ -313,7 +313,7 @@[m [mchar* iupMatrixGetFont(Ihandle* ih, int lin, int col)[m + return font;[m + }[m + [m +[31m-char *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels)[m +[32m+[m[32mchar *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit)[m + {[m + char* str;[m + int size;[m +[36m@@ -342,7 +342,7 @@[m [mchar *iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels)[m + else[m + size -= IMAT_PADDING_H + IMAT_FRAME_H;[m + [m +[31m- if (!pixels)[m +[32m+[m[32m if (!pixels_unit)[m + {[m + int charwidth, charheight;[m + iupdrvFontGetCharSize(ih, &charwidth, &charheight);[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_getset.h b/iup/srccontrols/matrix/iupmat_getset.h[m +[1mindex 9ae3d07..f26e01e 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_getset.h[m +[1m+++ b/iup/srccontrols/matrix/iupmat_getset.h[m +[36m@@ -26,7 +26,7 @@[m [mvoid iupMatrixGetFgRGB(Ihandle* ih, int lin, int col, unsigned char *r, unsigned[m + [m + void iupMatrixCellUpdateValue(Ihandle* ih);[m + [m +[31m-char* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels);[m +[32m+[m[32mchar* iupMatrixGetSize(Ihandle* ih, int index, int m, int pixels_unit);[m + [m + int iupMatrixCheckCellPos(Ihandle* ih, int lin, int col);[m + [m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_key.c b/iup/srccontrols/matrix/iupmat_key.c[m +[1mindex ae9ed55..4824438 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_key.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_key.c[m +[36m@@ -37,7 +37,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + int ret = IUP_IGNORE; /* default for processed keys */[m + [m + /* If the focus is not visible, a scroll is done for that the focus to be visible */[m +[31m- if (!iupMatrixAuxIsCellFullVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))[m +[32m+[m[32m if (!iupMatrixAuxIsCellStartVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell))[m + iupMatrixScrollToVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell);[m + [m + switch (c)[m +[36m@@ -47,7 +47,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_HOME:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyHome(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyHome(ih);[m + ih->data->homekeycount++;[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m +[36m@@ -57,7 +57,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_END:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyEnd(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyEnd(ih);[m + ih->data->endkeycount++;[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m +[36m@@ -71,7 +71,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_LEFT:[m + if (iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyLeft(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyLeft(ih);[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m + [m +[36m@@ -80,7 +80,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_RIGHT:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyRight(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyRight(ih);[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m + [m +[36m@@ -89,7 +89,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_UP:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyUp(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyUp(ih);[m + iupMatrixAuxCallEnterCellCb(ih);[m + break ;[m + [m +[36m@@ -98,7 +98,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_DOWN:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyDown(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyDown(ih);[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m + [m +[36m@@ -106,7 +106,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_PGUP:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyPgUp(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyPgUp(ih);[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m + [m +[36m@@ -114,7 +114,7 @@[m [mint iupMatrixProcessKeyPress(Ihandle* ih, int c)[m + case K_PGDN:[m + if(iupMatrixAuxCallLeaveCellCb(ih) == IUP_IGNORE)[m + break;[m +[31m- iupMatrixScrollKeyPgDown(ih);[m +[32m+[m[32m iupMATRIX_ScrollKeyPgDown(ih);[m + iupMatrixAuxCallEnterCellCb(ih);[m + break;[m + [m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_mouse.c b/iup/srccontrols/matrix/iupmat_mouse.c[m +[1mindex 33b5fe7..a3ffa82 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_mouse.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_mouse.c[m +[36m@@ -80,12 +80,18 @@[m [mstatic void iMatrixMouseLeftPress(Ihandle* ih, int lin, int col, int shift, int[m + [m + if (iupMatrixEditShow(ih))[m + {[m +[31m- if(ih->data->datah == ih->data->droph) [m +[32m+[m[32m if (ih->data->datah == ih->data->droph)[m + IupSetAttribute(ih->data->datah, "SHOWDROPDOWN", "YES");[m + [m +[31m- if (iupStrEqualNoCase(IupGetGlobal("DRIVER"), "Motif"))[m +[31m- if(atoi(IupGetGlobal("MOTIFNUMBER")) < 2203) /* since OpenMotif version 2.2.3 this is not necessary */[m +[31m- iupAttribSetStr(ih, "_IUPMAT_DOUBLE_CLICK", "1");[m +[32m+[m[32m if (IupGetGlobal("MOTIFVERSION"))[m +[32m+[m[32m {[m +[32m+[m[32m /* Sequece of focus_cb in Motif from here:[m +[32m+[m[32m Matrix-Focus(0) - ok[m +[32m+[m[32m Edit-KillFocus - weird, must avoid using _IUPMAT_DOUBLECLICK[m +[32m+[m[32m Since OpenMotif version 2.2.3 this is not necessary anymore. */[m +[32m+[m[32m if (atoi(IupGetGlobal("MOTIFNUMBER")) < 2203)[m[41m [m +[32m+[m[32m iupAttribSetStr(ih, "_IUPMAT_DOUBLECLICK", "1");[m +[32m+[m[32m }[m + }[m + }[m + else /* single click */[m +[36m@@ -182,14 +188,14 @@[m [mint iupMatrixMouseMove_CB(Ihandle* ih, int x, int y)[m + if (ih->data->leftpressed && ih->data->mark_multiple && ih->data->mark_mode != IMAT_MARK_NO)[m + {[m + if ((x < ih->data->columns.sizes[0] || x < IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.first > 1))[m +[31m- iupMatrixScrollLeft(ih);[m +[32m+[m[32m iupMATRIX_ScrollLeft(ih);[m + else if ((x > ih->data->w - IMAT_DRAG_SCROLL_DELTA) && (ih->data->columns.last < ih->data->columns.num-1))[m +[31m- iupMatrixScrollRight(ih);[m +[32m+[m[32m iupMATRIX_ScrollRight(ih);[m + [m + if ((y < ih->data->lines.sizes[0] || y < IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.first > 1))[m +[31m- iupMatrixScrollUp(ih);[m +[32m+[m[32m iupMATRIX_ScrollUp(ih);[m + else if ((y > ih->data->h - IMAT_DRAG_SCROLL_DELTA) && (ih->data->lines.last < ih->data->lines.num-1))[m +[31m- iupMatrixScrollDown(ih);[m +[32m+[m[32m iupMATRIX_ScrollDown(ih);[m + [m + if (iupMatrixAuxGetLinColFromXY(ih, x, y, &lin, &col))[m + {[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_numlc.c b/iup/srccontrols/matrix/iupmat_numlc.c[m +[1mindex e48720a..6e628b7 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_numlc.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_numlc.c[m +[36m@@ -294,7 +294,7 @@[m [mint iupMatrixSetAddLinAttrib(Ihandle* ih, const char* value)[m + {[m + int base, count, lines_num = ih->data->lines.num;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + [m + if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 0))[m +[36m@@ -326,7 +326,7 @@[m [mint iupMatrixSetDelLinAttrib(Ihandle* ih, const char* value)[m + {[m + int base, count, lines_num = ih->data->lines.num;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + [m + if (!iMatrixGetStartEnd(value, &base, &count, lines_num, 1))[m +[36m@@ -366,7 +366,7 @@[m [mint iupMatrixSetAddColAttrib(Ihandle* ih, const char* value)[m + {[m + int base, count, columns_num = ih->data->columns.num;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + [m + if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 0))[m +[36m@@ -398,7 +398,7 @@[m [mint iupMatrixSetDelColAttrib(Ihandle* ih, const char* value)[m + {[m + int base, count, columns_num = ih->data->columns.num;[m + [m +[31m- if (!ih->handle) /* do not store the action before map */[m +[32m+[m[32m if (!ih->handle) /* do not do the action before map */[m + return 0;[m + [m + if (!iMatrixGetStartEnd(value, &base, &count, columns_num, 1))[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_scroll.c b/iup/srccontrols/matrix/iupmat_scroll.c[m +[1mindex 24bbef2..845d248 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_scroll.c[m +[1m+++ b/iup/srccontrols/matrix/iupmat_scroll.c[m +[36m@@ -32,54 +32,32 @@[m + /* Private functions */[m + /**************************************************************************/[m + [m +[31m-[m +[31m-static int iMatrixScrollIsFullVisibleLast(ImatLinColData *p)[m +[31m-{[m +[31m- int i, sum = 0;[m +[31m-[m +[31m- for(i = p->first; i <= p->last; i++)[m +[31m- sum += p->sizes[i];[m +[31m-[m +[31m- if (sum > p->visible_size)[m +[31m- return 0;[m +[31m- else[m +[31m- return 1;[m +[31m-}[m +[31m-[m +[31m-/* Scroll columns/lines in the left/top side of the matriz until the last column/line is FULLY visible.[m +[31m- -> m : Define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL] */[m +[31m-static void iMatrixScrollToVisible(Ihandle* ih, int m, int index)[m +[32m+[m[32mstatic void iMatrixScrollToVisible(ImatLinColData* p, int index)[m + {[m +[31m- ImatLinColData* p;[m +[32m+[m[32m /* The work here is just to position first and first_offset,[m[41m [m +[32m+[m[32m so "index" is between "first" and "last". */[m +[32m+[m[41m [m +[32m+[m[32m /* It is called only for discrete scrolling,[m[41m [m +[32m+[m[32m so first_offset usually will be set to 0. */[m +[32m+[m +[32m+[m[32m /* already visible, change nothing */[m +[32m+[m[32m if (index > p->first && index < p->last)[m +[32m+[m[32m return;[m + [m +[31m- if (m == IMAT_PROCESS_LIN)[m +[31m- p = &(ih->data->lines);[m +[31m- else[m +[31m- p = &(ih->data->columns);[m +[32m+[m[32m /* scroll to visible, means position the cell so the start at left is visible */[m + [m +[31m- if (index < p->first)[m +[32m+[m[32m if (index <= p->first)[m + {[m + p->first = index;[m +[32m+[m[32m p->first_offset = 0;[m + return;[m + }[m +[31m- else if (index > p->last)[m +[32m+[m[32m else /* (index >= p->last) */[m + {[m +[31m- /* Increment the first column/line until the index is visible */[m +[31m- while(index > p->last && p->last != (p->num - 1))[m +[31m- {[m +[31m- p->first++;[m +[31m- iupMatrixAuxUpdateLast(p);[m +[31m- } [m +[31m- }[m +[32m+[m[32m p->last = index;[m + [m +[31m- if (index == p->last)[m +[31m- {[m +[31m- /* must increment util the last is fully visible */[m +[31m- while(index == p->last && p->last != (p->num - 1) && !iMatrixScrollIsFullVisibleLast(p))[m +[31m- {[m +[31m- p->first++;[m +[31m- iupMatrixAuxUpdateLast(p);[m +[31m- } [m +[32m+[m[32m /* adjust "first" according to "last" */[m +[32m+[m[32m iupMatrixAuxAdjustFirstFromLast(p);[m + }[m + }[m + [m +[36m@@ -133,119 +111,114 @@[m [mstatic int iMatrixScrollGetPrevNonEmpty(Ihandle* ih, int m, int index)[m + return index;[m + }[m + [m +[31m-static void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int m, int index)[m +[32m+[m[32mstatic void iMatrixScrollSetFocusScrollToVisible(Ihandle* ih, int lin, int col)[m +[32m+[m[32m{[m +[32m+[m[32m /* moving focus and eventually scrolling */[m +[32m+[m[32m iupMatrixFocusSet(ih, lin, col);[m +[32m+[m +[32m+[m[32m /* set for both because focus maybe hidden */[m +[32m+[m[32m iMatrixScrollToVisible(&ih->data->columns, ih->data->columns.focus_cell);[m +[32m+[m[32m iMatrixScrollToVisible(&ih->data->lines, ih->data->lines.focus_cell);[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic void iMatrixScrollSetFocusScrollToVisibleLinCol(Ihandle* ih, int m, int index)[m + {[m + if (m == IMAT_PROCESS_COL)[m +[31m- iupMatrixFocusSet(ih, ih->data->lines.focus_cell, index);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.focus_cell, index);[m + else[m +[31m- iupMatrixFocusSet(ih, index, ih->data->columns.focus_cell);[m +[31m-[m +[31m- /* set for both because current focus maybe hidden */[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisible(ih, index, ih->data->columns.focus_cell);[m + }[m + [m +[32m+[m + /**************************************************************************/[m + /* Exported functions */[m + /**************************************************************************/[m + [m + [m +[31m-/* Move using the cells of matrix.[m +[31m- Receive as a parameter a pointer to a function that will make the work,[m +[31m- in fact. This is done to avoid a test to each of the manipulation cursor[m +[31m- functions, verifying if it is necessary to call or not the scroll[m +[31m- callback. This is only done here.[m +[31m- -> func - pointer to the function that will make the movement[m +[31m- -> mode - parameter passed to func, specify if the movement request is of[m +[31m- the scrollbar or the keyboard[m +[31m- -> pos - parameter passed to func, that will be the handle position function[m +[31m- of the scrollbar, returning the scrollbar thumb position...[m +[31m- if func is other function, this parameter will be ignored[m +[31m- -> m - parameter passed to func, specify which is the mode of operation:[m +[31m- lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m +[31m-*/[m +[31m-void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m)[m +[32m+[m[32mvoid iupMatrixScrollToVisible(Ihandle* ih, int lin, int col)[m + {[m + int old_lines_first = ih->data->lines.first;[m + int old_columns_first = ih->data->columns.first;[m +[32m+[m[32m int old_lines_first_offset = ih->data->lines.first_offset;[m +[32m+[m[32m int old_columns_first_offset = ih->data->columns.first_offset;[m + [m +[31m- iupMatrixEditForceHidden(ih);[m +[32m+[m[32m iMatrixScrollToVisible(&ih->data->columns, col);[m +[32m+[m[32m iMatrixScrollToVisible(&ih->data->lines, lin);[m + [m +[31m- func(ih, mode, pos, m);[m +[31m-[m +[31m- if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first)[m +[32m+[m[32m if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) ||[m +[32m+[m[32m (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset))[m + {[m +[31m- if (ih->data->columns.first != old_columns_first)[m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);[m +[32m+[m[32m /* when "first" is changed must update scroll pos */[m +[32m+[m[32m if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);[m + [m +[31m- if (ih->data->lines.first != old_lines_first)[m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);[m +[32m+[m[32m if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset)[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);[m + [m + iMatrixScrollCallScrollTopCb(ih);[m + [m +[31m- iupMatrixDraw(ih, 0);[m +[32m+[m[32m iupMatrixDraw(ih, 1);[m + }[m + }[m + [m +[31m-void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col)[m +[32m+[m[32mvoid iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m)[m + {[m + int old_lines_first = ih->data->lines.first;[m + int old_columns_first = ih->data->columns.first;[m +[32m+[m[32m int old_lines_first_offset = ih->data->lines.first_offset;[m +[32m+[m[32m int old_columns_first_offset = ih->data->columns.first_offset;[m + [m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, col);[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, lin);[m +[32m+[m[32m iupMatrixEditForceHidden(ih);[m + [m +[31m- if (ih->data->lines.first != old_lines_first || ih->data->columns.first != old_columns_first)[m +[32m+[m[32m func(ih, mode, pos, m);[m +[32m+[m +[32m+[m[32m if ((ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset) ||[m +[32m+[m[32m (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset))[m + {[m +[31m- if (ih->data->columns.first != old_columns_first)[m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);[m +[32m+[m[32m /* when "first" is changed must update scroll pos */[m +[32m+[m[32m if (ih->data->columns.first != old_columns_first || ih->data->columns.first_offset != old_columns_first_offset)[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);[m + [m +[31m- if (ih->data->lines.first != old_lines_first)[m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);[m +[32m+[m[32m if (ih->data->lines.first != old_lines_first || ih->data->lines.first_offset != old_lines_first_offset)[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);[m + [m + iMatrixScrollCallScrollTopCb(ih);[m + [m +[31m- iupMatrixDraw(ih, 1);[m +[32m+[m[32m iupMatrixDraw(ih, 0);[m + }[m + }[m + [m +[32m+[m[32m/************************************************************************************/[m +[32m+[m + /* This function is called when the "home" key is pressed.[m + In the first time, go to the beginning of the line.[m + In the second time, go to the beginning of the page.[m + In the third time, go to the beginning of the matrix.[m + -> mode and pos : DO NOT USED.[m + */[m +[31m-void iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)[m +[32m+[m[32mvoid iupMatrixScrollHomeFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)[m + {[m + (void)unused_m;[m + (void)unused_mode;[m + (void)unused_pos;[m + [m + /* called only for mode==IMAT_SCROLLKEY */[m +[32m+[m[32m /* moving focus and eventually scrolling */[m + [m + if(ih->data->homekeycount == 0) /* go to the beginning of the line */[m + {[m +[31m- ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);[m +[31m- iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.first);[m +[32m+[m[32m int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col);[m + }[m + else if(ih->data->homekeycount == 1) /* go to the beginning of the visible page */[m + {[m +[31m- iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first);[m +[31m-[m +[31m- /* set for both because current focus maybe hidden */[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.first, ih->data->columns.first);[m + }[m + else if(ih->data->homekeycount == 2) /* go to the beginning of the matrix 1:1 */[m + {[m +[31m- ih->data->columns.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);[m +[31m- ih->data->lines.first = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1);[m +[31m-[m +[31m- iupMatrixFocusSet(ih, ih->data->lines.first, ih->data->columns.first);[m +[31m-[m +[31m- /* set for both because current focus maybe hidden */[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);[m +[32m+[m[32m int lin = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_LIN, 1);[m +[32m+[m[32m int col = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, 1);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisible(ih, lin, col);[m + }[m + }[m + [m +[36m@@ -255,37 +228,29 @@[m [mvoid iupMatrixScrollHome(Ihandle* ih, int unused_mode, float unused_pos, int unu[m + In the third time, go to the end of the matrix.[m + -> mode and pos : DO NOT USED.[m + */[m +[31m-void iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)[m +[32m+[m[32mvoid iupMatrixScrollEndFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)[m + {[m + (void)unused_m;[m + (void)unused_mode;[m + (void)unused_pos;[m + [m + /* called only for mode==IMAT_SCROLLKEY */[m +[32m+[m[32m /* moving focus and eventually scrolling */[m + [m + if(ih->data->endkeycount == 0) /* go to the end of the line */[m + {[m +[31m- int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);[m +[31m- iMatrixScrollSetFocusScrollToVisible(ih, IMAT_PROCESS_COL, last_col);[m +[32m+[m[32m int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisibleLinCol(ih, IMAT_PROCESS_COL, col);[m + }[m + else if(ih->data->endkeycount == 1) /* go to the end of the visible page */[m + {[m +[31m- iupMatrixFocusSet(ih, ih->data->lines.last, ih->data->columns.last);[m +[31m-[m +[31m- /* set for both because current focus maybe hidden */[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisible(ih, ih->data->lines.last, ih->data->columns.last);[m + }[m + else if(ih->data->endkeycount == 2) /* go to the end of the matrix */[m + {[m +[31m- int last_col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);[m +[31m- int last_lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1);[m +[31m-[m +[31m- iupMatrixFocusSet(ih, last_lin, last_col);[m +[31m-[m +[31m- /* set for both because current focus maybe hidden */[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_COL, ih->data->columns.focus_cell);[m +[31m- iMatrixScrollToVisible(ih, IMAT_PROCESS_LIN, ih->data->lines.focus_cell);[m +[32m+[m[32m int lin = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_LIN, ih->data->lines.num-1);[m +[32m+[m[32m int col = iMatrixScrollGetPrevNonEmpty(ih, IMAT_PROCESS_COL, ih->data->columns.num-1);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisible(ih, lin, col);[m + }[m + }[m + [m +[36m@@ -295,7 +260,7 @@[m [mvoid iupMatrixScrollEnd(Ihandle* ih, int unused_mode, float unused_pos, int unus[m + -> pos : DO NOT USED[m + -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m + */[m +[31m-void iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)[m +[32m+[m[32mvoid iupMatrixScrollLeftUpFunc(Ihandle* ih, int mode, float pos, int m)[m + {[m + ImatLinColData* p;[m + (void)pos;[m +[36m@@ -307,12 +272,15 @@[m [mvoid iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)[m + [m + if (mode == IMAT_SCROLLKEY)[m + {[m +[32m+[m[32m /* moving focus and eventually scrolling */[m + int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell-1);[m +[31m- iMatrixScrollSetFocusScrollToVisible(ih, m, next);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);[m + }[m + else /* IMAT_SCROLLBAR */[m + {[m +[32m+[m[32m /* always scrolling without changing focus */[m + p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first-1);[m +[32m+[m[32m p->first_offset = 0;[m + }[m + }[m + [m +[36m@@ -322,7 +290,7 @@[m [mvoid iupMatrixScrollLeftUp(Ihandle* ih, int mode, float pos, int m)[m + -> pos : DO NOT USED[m + -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m + */[m +[31m-void iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)[m +[32m+[m[32mvoid iupMatrixScrollRightDownFunc(Ihandle* ih, int mode, float pos, int m)[m + {[m + ImatLinColData* p;[m + (void)pos;[m +[36m@@ -334,12 +302,15 @@[m [mvoid iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)[m + [m + if (mode == IMAT_SCROLLKEY)[m + {[m +[32m+[m[32m /* moving focus and eventually scrolling */[m + int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell+1);[m +[31m- iMatrixScrollSetFocusScrollToVisible(ih, m, next);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);[m + }[m + else /* IMAT_SCROLLBAR */[m + {[m +[32m+[m[32m /* always scrolling without changing focus */[m + p->first = iMatrixScrollGetNextNonEmpty(ih, m, p->first+1);[m +[32m+[m[32m p->first_offset = 0;[m + }[m + }[m + [m +[36m@@ -349,7 +320,7 @@[m [mvoid iupMatrixScrollRightDown(Ihandle* ih, int mode, float pos, int m)[m + -> pos : DO NOT USED[m + -> m : define the mode of operation: lines (PgLeft) or columns (PgUp) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m + */[m +[31m-void iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)[m +[32m+[m[32mvoid iupMatrixScrollPgLeftUpFunc(Ihandle* ih, int mode, float pos, int m)[m + {[m + ImatLinColData* p;[m + (void)pos;[m +[36m@@ -361,12 +332,15 @@[m [mvoid iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)[m + [m + if (mode == IMAT_SCROLLKEY)[m + {[m +[32m+[m[32m /* moving focus and eventually scrolling */[m + int next = iMatrixScrollGetPrevNonEmpty(ih, m, p->focus_cell - (p->last - p->first));[m +[31m- iMatrixScrollSetFocusScrollToVisible(ih, m, next);[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);[m + }[m + else /* IMAT_SCROLLBAR */[m + {[m +[32m+[m[32m /* always scrolling without changing focus */[m + p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first - (p->last - p->first));[m +[32m+[m[32m p->first_offset = 0;[m + }[m + }[m + [m +[36m@@ -376,7 +350,7 @@[m [mvoid iupMatrixScrollPgLeftUp(Ihandle* ih, int mode, float pos, int m)[m + -> pos : DO NOT USED[m + -> m : define the mode of operation: lines (PgDown) or columns (PgRight) [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m + */[m +[31m-void iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m)[m +[32m+[m[32mvoid iupMatrixScrollPgRightDownFunc(Ihandle* ih, int mode, float pos, int m)[m + {[m + ImatLinColData* p;[m + (void)pos;[m +[36m@@ -388,16 +362,19 @@[m [mvoid iupMatrixScrollPgRightDown(Ihandle* ih, int mode, float pos, int m)[m + [m + if (mode == IMAT_SCROLLKEY)[m + {[m +[31m- int next = iMatrixScrollGetNextNonEmpty(ih, IMAT_PROCESS_COL, p->focus_cell + (p->last - p->first));[m +[31m- iMatrixScrollSetFocusScrollToVisible(ih, m, next);[m +[32m+[m[32m /* moving focus and eventually scrolling */[m +[32m+[m[32m int next = iMatrixScrollGetNextNonEmpty(ih, m, p->focus_cell + (p->last - p->first));[m +[32m+[m[32m iMatrixScrollSetFocusScrollToVisibleLinCol(ih, m, next);[m + }[m + else /* IMAT_SCROLLBAR */[m + {[m +[32m+[m[32m /* always scrolling without changing focus */[m + p->first = iMatrixScrollGetPrevNonEmpty(ih, m, p->first + (p->last - p->first));[m +[32m+[m[32m p->first_offset = 0;[m + }[m + }[m + [m +[31m-void iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)[m +[32m+[m[32mvoid iupMatrixScrollCrFunc(Ihandle* ih, int unused_mode, float unused_pos, int unused_m)[m + {[m + int oldlin = ih->data->lines.focus_cell;[m + int oldcol = ih->data->columns.focus_cell;[m +[36m@@ -408,13 +385,13 @@[m [mvoid iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse[m + /* called only for mode==IMAT_SCROLLKEY */[m + [m + /* try the normal processing of next cell down */[m +[31m- iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN);[m +[32m+[m[32m iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN);[m + [m + if(ih->data->lines.focus_cell == oldlin && ih->data->columns.focus_cell == oldcol)[m + {[m + /* If focus was not changed, it was because it is in the last line of the column.[m + Go to the next column of the same line. */[m +[31m- iupMatrixScrollRightDown(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL);[m +[32m+[m[32m iupMatrixScrollRightDownFunc(ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL);[m + }[m + }[m + [m +[36m@@ -423,70 +400,51 @@[m [mvoid iupMatrixScrollCr(Ihandle* ih, int unused_mode, float unused_pos, int unuse[m + -> mode : DO NOT USED[m + -> m : define the mode of operation: lines or columns [IMAT_PROCESS_LIN|IMAT_PROCESS_COL][m + */[m +[31m-void iupMatrixScrollPos(Ihandle* ih, int mode, float pos, int m)[m +[32m+[m[32mvoid iupMatrixScrollPosFunc(Ihandle* ih, int mode, float pos, int m)[m + {[m +[31m- int scroll_pos, index, vp;[m +[31m- float d;[m +[32m+[m[32m int scroll_pos;[m + ImatLinColData* p;[m + (void)mode;[m + [m + if (m == IMAT_PROCESS_LIN)[m +[31m- {[m + p = &(ih->data->lines);[m +[31m- d = IupGetFloat(ih, "DY");[m +[31m- }[m + else[m +[31m- {[m + p = &(ih->data->columns);[m +[31m- d = IupGetFloat(ih, "DX");[m +[31m- }[m + [m + if (p->num == 1)[m + {[m + p->first = 1;[m +[32m+[m[32m p->first_offset = 0;[m + return;[m + }[m + [m + scroll_pos = (int)(pos * p->total_size + 0.5);[m + [m +[31m- vp = 0;[m +[31m- for(index = 1; index < p->num; index++)[m +[31m- {[m +[31m- vp += p->sizes[index];[m +[31m- if (vp > scroll_pos)[m +[31m- break;[m +[31m- }[m +[31m-[m +[31m- if (index == p->num)[m +[31m- {[m +[31m- if (p->num == 1)[m +[31m- index = 1;[m +[31m- else[m +[31m- index = p->num-1;[m +[31m- }[m +[31m-[m +[31m- p->first = index;[m +[32m+[m[32m /* position first and first_offset, according to scroll pos */[m +[32m+[m[32m iupMatrixAuxAdjustFirstFromScrollPos(p, scroll_pos);[m + }[m + [m +[31m-int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y)[m +[32m+[m[32m/************************************************************************************/[m +[32m+[m +[32m+[m[32mint iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy)[m + {[m + if (!iupMatrixIsValid(ih, 0))[m + return IUP_DEFAULT;[m + [m + switch(action)[m + {[m +[31m- case IUP_SBUP : iupMatrixScrollUp(ih); break;[m +[31m- case IUP_SBDN : iupMatrixScrollDown(ih); break;[m +[31m- case IUP_SBPGUP : iupMatrixScrollPgUp(ih); break;[m +[31m- case IUP_SBPGDN : iupMatrixScrollPgDown(ih); break;[m +[31m- case IUP_SBRIGHT : iupMatrixScrollRight(ih); break;[m +[31m- case IUP_SBLEFT : iupMatrixScrollLeft(ih); break;[m +[31m- case IUP_SBPGRIGHT : iupMatrixScrollPgRight(ih); break;[m +[31m- case IUP_SBPGLEFT : iupMatrixScrollPgLeft(ih); break;[m +[31m- case IUP_SBPOSV : iupMatrixScrollPosVer(ih,y); break;[m +[31m- case IUP_SBPOSH : iupMatrixScrollPosHor(ih,x); break;[m +[31m- case IUP_SBDRAGV : iupMatrixScrollPosVer(ih,y); break;[m +[31m- case IUP_SBDRAGH : iupMatrixScrollPosHor(ih,x); break;[m +[32m+[m[32m case IUP_SBUP : iupMATRIX_ScrollUp(ih); break;[m +[32m+[m[32m case IUP_SBDN : iupMATRIX_ScrollDown(ih); break;[m +[32m+[m[32m case IUP_SBPGUP : iupMATRIX_ScrollPgUp(ih); break;[m +[32m+[m[32m case IUP_SBPGDN : iupMATRIX_ScrollPgDown(ih); break;[m +[32m+[m[32m case IUP_SBRIGHT : iupMATRIX_ScrollRight(ih); break;[m +[32m+[m[32m case IUP_SBLEFT : iupMATRIX_ScrollLeft(ih); break;[m +[32m+[m[32m case IUP_SBPGRIGHT : iupMATRIX_ScrollPgRight(ih); break;[m +[32m+[m[32m case IUP_SBPGLEFT : iupMATRIX_ScrollPgLeft(ih); break;[m +[32m+[m[32m case IUP_SBPOSV : iupMATRIX_ScrollPosVer(ih,posy); break;[m +[32m+[m[32m case IUP_SBPOSH : iupMATRIX_ScrollPosHor(ih,posx); break;[m +[32m+[m[32m case IUP_SBDRAGV : iupMATRIX_ScrollPosVer(ih,posy); break;[m +[32m+[m[32m case IUP_SBDRAGH : iupMATRIX_ScrollPosHor(ih,posx); break;[m + }[m + [m + iupMatrixDrawUpdate(ih);[m +[1mdiff --git a/iup/srccontrols/matrix/iupmat_scroll.h b/iup/srccontrols/matrix/iupmat_scroll.h[m +[1mindex 582442b..45d7417 100755[m +[1m--- a/iup/srccontrols/matrix/iupmat_scroll.h[m +[1m+++ b/iup/srccontrols/matrix/iupmat_scroll.h[m +[36m@@ -12,54 +12,54 @@[m + extern "C" {[m + #endif[m + [m +[31m-int iupMatrixScroll_CB(Ihandle* ih, int action, float x, float y);[m +[32m+[m[32mint iupMatrixScroll_CB(Ihandle* ih, int action, float posx, float posy);[m + [m + void iupMatrixScrollToVisible(Ihandle* ih, int lin, int col);[m + [m +[31m-typedef void (*iupMatrixScrollMoveF)(Ihandle* ih, int mode, float pos, int m);[m +[31m-void iupMatrixScrollMoveCursor(iupMatrixScrollMoveF func, Ihandle* ih, int mode, float pos, int m);[m +[32m+[m[32mtypedef void (*iupMatrixScrollMoveFunc)(Ihandle* ih, int mode, float pos, int m);[m +[32m+[m[32mvoid iupMatrixScrollMove(iupMatrixScrollMoveFunc func, Ihandle* ih, int mode, float pos, int m);[m + [m + /* Used only by the macros bellow */[m +[31m-void iupMatrixScrollHome (Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollEnd (Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollLeftUp (Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollRightDown (Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollPgLeftUp (Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollPgRightDown(Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollPos (Ihandle* ih, int, float, int);[m +[31m-void iupMatrixScrollCr (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollHomeFunc (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollEndFunc (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollLeftUpFunc (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollRightDownFunc (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollPgLeftUpFunc (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollPgRightDownFunc(Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollPosFunc (Ihandle* ih, int, float, int);[m +[32m+[m[32mvoid iupMatrixScrollCrFunc (Ihandle* ih, int, float, int);[m + [m + /* Mode used to "walk" inside the matrix.[m + It shows if the movement request was from the scrollbar or from a key.[m +[31m- Possible values for the "mode" parameter of the iupMatrixScrollMoveCursor function.[m +[32m+[m[32m Possible values for the "mode" parameter of the iupMatrixScrollMove function.[m + */[m + #define IMAT_SCROLLBAR 0[m + #define IMAT_SCROLLKEY 1[m + [m +[31m-/* Macros to help during the call of iupMatrixScrollMoveCursor function */[m +[32m+[m[32m/* Macros to help during the call of iupMatrixScrollMove function */[m + [m + /* used in the keyboard processing module */[m +[31m-#define iupMatrixScrollKeyHome(ih) iupMatrixScrollMoveCursor(iupMatrixScrollHome , ih, IMAT_SCROLLKEY, 0, 0)[m +[31m-#define iupMatrixScrollKeyEnd(ih) iupMatrixScrollMoveCursor(iupMatrixScrollEnd , ih, IMAT_SCROLLKEY, 0, 0)[m +[31m-#define iupMatrixScrollKeyPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollKeyPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollKeyDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollKeyRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)[m +[31m-#define iupMatrixScrollKeyUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollKeyLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)[m +[31m-#define iupMatrixScrollKeyCr(ih) iupMatrixScrollMoveCursor(iupMatrixScrollCr , ih, IMAT_SCROLLKEY, 0, 0)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyHome(ih) iupMatrixScrollMove(iupMatrixScrollHomeFunc , ih, IMAT_SCROLLKEY, 0, 0)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyEnd(ih) iupMatrixScrollMove(iupMatrixScrollEndFunc , ih, IMAT_SCROLLKEY, 0, 0)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLKEY, 0, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollKeyCr(ih) iupMatrixScrollMove(iupMatrixScrollCrFunc , ih, IMAT_SCROLLKEY, 0, 0)[m + [m + /* Used by the scrollbar callback only */[m +[31m-#define iupMatrixScrollUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[31m-#define iupMatrixScrollDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollRightDown , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[31m-#define iupMatrixScrollPgUp(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollPgLeft(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgLeftUp , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[31m-#define iupMatrixScrollPgDown(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollPgRight(ih) iupMatrixScrollMoveCursor(iupMatrixScrollPgRightDown, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[31m-#define iupMatrixScrollPosVer(ih, y) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, y, IMAT_PROCESS_LIN)[m +[31m-#define iupMatrixScrollPosHor(ih, x) iupMatrixScrollMoveCursor(iupMatrixScrollPos , ih, IMAT_SCROLLBAR, x, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollUp(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollLeft(ih) iupMatrixScrollMove(iupMatrixScrollLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollDown(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollRight(ih) iupMatrixScrollMove(iupMatrixScrollRightDownFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollPgUp(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollPgLeft(ih) iupMatrixScrollMove(iupMatrixScrollPgLeftUpFunc , ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollPgDown(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollPgRight(ih) iupMatrixScrollMove(iupMatrixScrollPgRightDownFunc, ih, IMAT_SCROLLBAR, 0, IMAT_PROCESS_COL)[m +[32m+[m[32m#define iupMATRIX_ScrollPosVer(ih, y) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posy, IMAT_PROCESS_LIN)[m +[32m+[m[32m#define iupMATRIX_ScrollPosHor(ih, x) iupMatrixScrollMove(iupMatrixScrollPosFunc , ih, IMAT_SCROLLBAR, posx, IMAT_PROCESS_COL)[m + [m + [m + #ifdef __cplusplus[m +[1mdiff --git a/iup/srccontrols/matrix/iupmatrix.c b/iup/srccontrols/matrix/iupmatrix.c[m +[1mindex 20d618d..9e379e2 100755[m +[1m--- a/iup/srccontrols/matrix/iupmatrix.c[m +[1m+++ b/iup/srccontrols/matrix/iupmatrix.c[m +[36m@@ -76,10 +76,13 @@[m [mstatic int iMatrixSetOriginAttrib(Ihandle* ih, const char* value)[m + return 0;[m + [m + ih->data->columns.first = col;[m +[32m+[m[32m ih->data->columns.first_offset = 0;[m + ih->data->lines.first = lin;[m +[32m+[m[32m ih->data->lines.first_offset = 0;[m + [m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_COL);[m +[31m- iupMatrixAuxUpdateVisiblePos(ih, IMAT_PROCESS_LIN);[m +[32m+[m[32m /* when "first" is changed must update scroll pos */[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_COL);[m +[32m+[m[32m iupMatrixAuxUpdateScrollPos(ih, IMAT_PROCESS_LIN);[m + [m + iupMatrixDraw(ih, 1);[m + return 0;[m +[36m@@ -109,7 +112,7 @@[m [mstatic int iMatrixSetShowAttrib(Ihandle* ih, const char* value)[m + if((lin < 1) || (col < 1))[m + return 0;[m + [m +[31m- if (!iupMatrixAuxIsCellFullVisible(ih, lin, col))[m +[32m+[m[32m if (!iupMatrixAuxIsCellStartVisible(ih, lin, col))[m + iupMatrixScrollToVisible(ih, lin, col);[m + [m + return 0;[m +[36m@@ -173,6 +176,23 @@[m [mstatic char* iMatrixGetUseTitleSizeAttrib(Ihandle* ih)[m + return "NO";[m + }[m + [m +[32m+[m[32mstatic int iMatrixSetHiddenTextMarksAttrib(Ihandle* ih, const char* value)[m +[32m+[m[32m{[m +[32m+[m[32m if (iupStrBoolean(value))[m +[32m+[m[32m ih->data->hidden_text_marks = 1;[m +[32m+[m[32m else[m[41m [m +[32m+[m[32m ih->data->hidden_text_marks = 0;[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic char* iMatrixGetHiddenTextMarksAttrib(Ihandle* ih)[m +[32m+[m[32m{[m +[32m+[m[32m if (ih->data->hidden_text_marks)[m +[32m+[m[32m return "YES";[m +[32m+[m[32m else[m +[32m+[m[32m return "NO";[m +[32m+[m[32m}[m +[32m+[m + static int iMatrixSetValueAttrib(Ihandle* ih, const char* value)[m + {[m + if (IupGetInt(ih->data->datah, "VISIBLE"))[m +[36m@@ -228,14 +248,14 @@[m [mstatic char* iMatrixGetMultilineAttrib(Ihandle* ih)[m + static char* iMatrixGetNumLinAttrib(Ihandle* ih)[m + {[m + char* num = iupStrGetMemory(100);[m +[31m- sprintf(num, "%d", ih->data->lines.num-1);[m +[32m+[m[32m sprintf(num, "%d", ih->data->lines.num-1); /* the attribute does not include the title */[m + return num;[m + }[m + [m + static char* iMatrixGetNumColAttrib(Ihandle* ih)[m + {[m + char* num = iupStrGetMemory(100);[m +[31m- sprintf(num, "%d", ih->data->columns.num-1);[m +[32m+[m[32m sprintf(num, "%d", ih->data->columns.num-1); /* the attribute does not include the title */[m + return num;[m + }[m + [m +[36m@@ -427,13 +447,19 @@[m [mstatic char* iMatrixGetAlignmentAttrib(Ihandle* ih, const char* name_id)[m + align = iupAttribGet(ih, str);[m + if (!align)[m + {[m +[31m- int col;[m +[31m- if (iupStrToInt(name_id, &col))[m +[32m+[m[32m align = iupAttribGet(ih, "ALIGNMENT");[m +[32m+[m[32m if (align)[m +[32m+[m[32m return align;[m +[32m+[m[32m else[m + {[m +[31m- if (col == 0)[m +[31m- return "ALEFT";[m +[31m- else[m +[31m- return "ACENTER";[m +[32m+[m[32m int col;[m +[32m+[m[32m if (iupStrToInt(name_id, &col))[m +[32m+[m[32m {[m +[32m+[m[32m if (col == 0)[m +[32m+[m[32m return "ALEFT";[m +[32m+[m[32m else[m +[32m+[m[32m return "ACENTER";[m +[32m+[m[32m }[m + }[m + }[m + [m +[36m@@ -642,7 +668,7 @@[m [mstatic int iMatrixCreateMethod(Ihandle* ih, void **params)[m + /* Create the edit fields */[m + iupMatrixEditCreate(ih);[m + [m +[31m- /* defaults */[m +[32m+[m[32m /* defaults that are non zero */[m + ih->data->datah = ih->data->texth;[m + ih->data->mark_continuous = 1;[m + ih->data->columns.num = 1;[m +[36m@@ -656,7 +682,6 @@[m [mstatic int iMatrixCreateMethod(Ihandle* ih, void **params)[m + ih->data->mark_col1 = -1;[m + ih->data->mark_lin2 = -1;[m + ih->data->mark_col2 = -1;[m +[31m- ih->data->use_title_size = 0;[m + [m + return IUP_NOERROR;[m + }[m +[36m@@ -700,11 +725,34 @@[m [mstatic void iMatrixUnMapMethod(Ihandle* ih)[m + iupMatrixMemRelease(ih);[m + }[m + [m +[32m+[m[32mstatic char* iMatrixGetDefault(Ihandle* ih, const char* name)[m +[32m+[m[32m{[m +[32m+[m[32m int inherit;[m +[32m+[m[32m char *def_value;[m +[32m+[m[32m iupClassObjectGetAttributeInfo(ih, name, &def_value, &inherit);[m +[32m+[m[32m return def_value;[m +[32m+[m[32m}[m +[32m+[m +[32m+[m[32mstatic int iMatrixGetInt(Ihandle* ih, const char* name)[m +[32m+[m[32m{[m +[32m+[m[32m char *value = iupAttribGet(ih, name);[m +[32m+[m[32m if (!value) value = iMatrixGetDefault(ih, name);[m +[32m+[m[32m if (value)[m +[32m+[m[32m {[m +[32m+[m[32m int i = 0;[m +[32m+[m[32m if (iupStrToInt(value, &i))[m +[32m+[m[32m return i;[m +[32m+[m[32m }[m +[32m+[m[32m return 0;[m +[32m+[m[32m}[m +[32m+[m + static int iMatrixGetNaturalWidth(Ihandle* ih)[m + {[m + int width = 0, num, col;[m + [m +[31m- num = iupAttribGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */[m +[32m+[m[32m /* must use this custom function because[m[41m [m +[32m+[m[32m the get method for this attribute returns a value with a different meaning */[m +[32m+[m[32m num = iMatrixGetInt(ih, "NUMCOL_VISIBLE")+1; /* include the title column */[m + [m + if (iupAttribGetInt(ih, "NUMCOL_VISIBLE_LAST"))[m + {[m +[36m@@ -716,9 +764,7 @@[m [mstatic int iMatrixGetNaturalWidth(Ihandle* ih)[m + }[m + else[m + {[m +[31m- if (num > ih->data->columns.num)[m +[31m- num = ih->data->columns.num;[m +[31m- for(col = 0; col < num; col++)[m +[32m+[m[32m for(col = 0; col < num; col++) /* num can be > numcol */[m + width += iupMatrixAuxGetColumnWidth(ih, col);[m + }[m + [m +[36m@@ -729,7 +775,9 @@[m [mstatic int iMatrixGetNaturalHeight(Ihandle* ih)[m + {[m + int height = 0, num, lin;[m + [m +[31m- num = iupAttribGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */[m +[32m+[m[32m /* must use this custom function because[m[41m [m +[32m+[m[32m the get method for this attribute returns a value with a different meaning */[m +[32m+[m[32m num = iMatrixGetInt(ih, "NUMLIN_VISIBLE")+1; /* include the title line */[m + [m + if (iupAttribGetInt(ih, "NUMLIN_VISIBLE_LAST"))[m + {[m +[36m@@ -741,9 +789,7 @@[m [mstatic int iMatrixGetNaturalHeight(Ihandle* ih)[m + }[m + else[m + {[m +[31m- if (num > ih->data->lines.num)[m +[31m- num = ih->data->lines.num;[m +[31m- for(lin = 0; lin < num; lin++)[m +[32m+[m[32m for(lin = 0; lin < num; lin++) /* num can be > numlin */[m + height += iupMatrixAuxGetLineHeight(ih, lin);[m + }[m + [m +[36m@@ -902,6 +948,8 @@[m [mIclass* iupMatrixGetClass(void)[m + [m + /* IupMatrix Attributes - GENERAL */[m + iupClassRegisterAttribute(ic, "USETITLESIZE", iMatrixGetUseTitleSizeAttrib, iMatrixSetUseTitleSizeAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[32m iupClassRegisterAttribute(ic, "HIDDENTEXTMARKS", iMatrixGetHiddenTextMarksAttrib, iMatrixSetHiddenTextMarksAttrib, IUPAF_SAMEASSYSTEM, "NO", IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[32m+[m[41m [m + iupClassRegisterAttribute(ic, "FRAMECOLOR", NULL, NULL, IUPAF_SAMEASSYSTEM, "100 100 100", IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "READONLY", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m + iupClassRegisterAttribute(ic, "RESIZEMATRIX", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED|IUPAF_NO_INHERIT);[m +[1mdiff --git a/iup/srcgl/Makefile b/iup/srcgl/Makefile[m +[1mindex 882d0d2..48037f0 100755[m +[1m--- a/iup/srcgl/Makefile[m +[1m+++ b/iup/srcgl/Makefile[m +[36m@@ -3,4 +3,4 @@[m + do_all: iupgl[m + [m + iupgl:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m +[1mdiff --git a/iup/srcim/Makefile b/iup/srcim/Makefile[m +[1mindex 933ded1..d47e014 100755[m +[1m--- a/iup/srcim/Makefile[m +[1m+++ b/iup/srcim/Makefile[m +[36m@@ -3,4 +3,4 @@[m + do_all: iupim[m + [m + iupim:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m +[1mdiff --git a/iup/srcim/iup_im.c b/iup/srcim/iup_im.c[m +[1mindex c26a3ff..ce58d80 100755[m +[1m--- a/iup/srcim/iup_im.c[m +[1m+++ b/iup/srcim/iup_im.c[m +[36m@@ -23,7 +23,7 @@[m + #include "iup_image.h"[m + [m + [m +[31m-static void PrintError(int error)[m +[32m+[m[32mstatic void iSaveErrorMsg(int error)[m + {[m + char* lang = IupGetLanguage();[m + char* msg;[m +[36m@@ -31,20 +31,22 @@[m [mstatic void PrintError(int error)[m + {[m + switch (error)[m + {[m +[32m+[m[32m case IM_ERR_NONE:[m +[32m+[m[32m msg = NULL;[m + case IM_ERR_OPEN:[m +[31m- msg = "Error Opening File.\n";[m +[32m+[m[32m msg = "Error Opening Image File.\n";[m + break;[m + case IM_ERR_MEM:[m + msg = "Insuficient memory.\n";[m + break;[m + case IM_ERR_ACCESS:[m +[31m- msg = "Error Accessing File.\n";[m +[32m+[m[32m msg = "Error Accessing Image File.\n";[m + break;[m + case IM_ERR_DATA:[m + msg = "Image type not Suported.\n";[m + break;[m + case IM_ERR_FORMAT:[m +[31m- msg = "Invalid Format.\n";[m +[32m+[m[32m msg = "Invalid Image File Format.\n";[m + break;[m + case IM_ERR_COMPRESS:[m + msg = "Invalid or unsupported compression.\n";[m +[36m@@ -57,20 +59,22 @@[m [mstatic void PrintError(int error)[m + {[m + switch (error)[m + {[m +[32m+[m[32m case IM_ERR_NONE:[m +[32m+[m[32m msg = NULL;[m + case IM_ERR_OPEN:[m +[31m- msg = "Erro Abrindo Arquivo.\n";[m +[32m+[m[32m msg = "Erro Abrindo Arquivo de Imagem.\n";[m + break;[m + case IM_ERR_MEM:[m + msg = "Memória Insuficiente.\n";[m + break;[m + case IM_ERR_ACCESS:[m +[31m- msg = "Erro Acessando Arquivo.\n";[m +[32m+[m[32m msg = "Erro Acessando Arquivo de Imagem.\n";[m + break;[m + case IM_ERR_DATA:[m + msg = "Tipo de Imagem não Suportado.\n";[m + break;[m + case IM_ERR_FORMAT:[m +[31m- msg = "Formato Inválido.\n";[m +[32m+[m[32m msg = "Formato de Arquivo de Imagem Inválido.\n";[m + break;[m + case IM_ERR_COMPRESS:[m + msg = "Compressão Inválida ou não Suportada.\n";[m +[36m@@ -80,7 +84,7 @@[m [mstatic void PrintError(int error)[m + }[m + }[m + [m +[31m- IupMessage("Error", msg);[m +[32m+[m[32m IupSetGlobal("IUPIM_LASTERROR", msg);[m + }[m + [m + Ihandle* IupLoadImage(const char* file_name)[m +[36m@@ -165,7 +169,7 @@[m [mload_finish:[m + imCounterSetCallback(NULL, old_callback);[m + if (ifile) imFileClose(ifile);[m + if (image_data) free(image_data);[m +[31m- if (error) PrintError(error);[m +[32m+[m[32m iSaveErrorMsg(error);[m + return iup_image;[m + }[m + [m +[36m@@ -188,7 +192,7 @@[m [mint IupSaveImage(Ihandle* ih, const char* file_name, const char* format)[m + ifile = imFileNew(file_name, format, &error);[m + if (!ifile)[m + {[m +[31m- PrintError(error);[m +[32m+[m[32m iSaveErrorMsg(error);[m + return 0;[m + }[m + [m +[36m@@ -238,8 +242,7 @@[m [mint IupSaveImage(Ihandle* ih, const char* file_name, const char* format)[m + [m + imFileClose(ifile); [m + [m +[31m- if (error)[m +[31m- PrintError(error);[m +[32m+[m[32m iSaveErrorMsg(error);[m + [m + return error == IM_ERR_NONE? 1: 0;[m + }[m +[1mdiff --git a/iup/srcimglib/Makefile b/iup/srcimglib/Makefile[m +[1mindex 261537a..873715f 100755[m +[1m--- a/iup/srcimglib/Makefile[m +[1m+++ b/iup/srcimglib/Makefile[m +[36m@@ -3,4 +3,4 @@[m + do_all: iupimglib[m + [m + iupimglib:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m +[1mdiff --git a/iup/srcledc/Makefile b/iup/srcledc/Makefile[m +[1mindex 8854269..71b9235 100755[m +[1m--- a/iup/srcledc/Makefile[m +[1m+++ b/iup/srcledc/Makefile[m +[36m@@ -3,4 +3,4 @@[m + do_all: ledc[m + [m + ledc:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m +[1mdiff --git a/iup/srclua3/Makefile b/iup/srclua3/Makefile[m +[1mindex b63716a..0551725 100755[m +[1m--- a/iup/srclua3/Makefile[m +[1m+++ b/iup/srclua3/Makefile[m +[36m@@ -3,19 +3,19 @@[m + do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim[m + [m + iuplua:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m + [m + iupluacd:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd[m + [m + iupluacontrols:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols[m + [m + iuplua_pplot:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot[m + [m + iupluagl:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl[m + [m + iupluaim:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim[m +[1mdiff --git a/iup/srclua3/config.mak b/iup/srclua3/config.mak[m +[1mindex fae6145..a3ffb1d 100755[m +[1m--- a/iup/srclua3/config.mak[m +[1m+++ b/iup/srclua3/config.mak[m +[36m@@ -6,9 +6,9 @@[m [mOPT = YES[m + [m + LOHDIR = loh[m + SRCLUA = iuplua.lua iuplua_widgets.lua constants.lua spin.lua \[m +[31m- sbox.lua val.lua tree.lua tabs.lua[m +[32m+[m[32m sbox.lua split.lua val.lua tree.lua tabs.lua[m + SRC = iuplua.c iuplua_api.c iuplua_widgets.c il_scanf.c il_cbox.c \[m +[31m- il_sbox.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c[m +[32m+[m[32m il_sbox.c il_split.c il_spin.c il_val.c il_tree.c il_tabs.c il_getcolor.c il_getparam.c[m + [m + USE_LUA = Yes[m + [m +[1mdiff --git a/iup/srclua3/il.h b/iup/srclua3/il.h[m +[1mindex 406ccc4..63f9866 100755[m +[1m--- a/iup/srclua3/il.h[m +[1m+++ b/iup/srclua3/il.h[m +[36m@@ -15,6 +15,7 @@[m [mint iupluaapi_open(void);[m + int iupluawidgets_open(int tag);[m + [m + int sboxlua_open(void);[m +[32m+[m[32mint splitlua_open(void);[m + int spinlua_open(void);[m + int cboxlua_open(void);[m + int gclua_open (void);[m +[1mdiff --git a/iup/srclua3/il_getparam.c b/iup/srclua3/il_getparam.c[m +[1mindex 28a41be..6005ce8 100755[m +[1m--- a/iup/srclua3/il_getparam.c[m +[1m+++ b/iup/srclua3/il_getparam.c[m +[36m@@ -93,6 +93,8 @@[m [mstatic void GetParam(void)[m + param_data[i] = malloc(sizeof(float));[m + *(float*)(param_data[i]) = (float)luaL_check_number(lua_param_start); lua_param_start++;[m + break;[m +[32m+[m[32m case 'f':[m +[32m+[m[32m case 'c':[m + case 's':[m + case 'm':[m + s = luaL_check_string(lua_param_start); lua_param_start++;[m +[36m@@ -136,6 +138,8 @@[m [mstatic void GetParam(void)[m + case 'r':[m + lua_pushnumber(*(float*)(param_data[i]));[m + break;[m +[32m+[m[32m case 'f':[m +[32m+[m[32m case 'c':[m + case 's':[m + case 'm':[m + lua_pushstring((char*)(param_data[i]));[m +[1mdiff --git a/iup/srclua3/il_tree.c b/iup/srclua3/il_tree.c[m +[1mindex 8d5fcf8..5d145bf 100755[m +[1m--- a/iup/srclua3/il_tree.c[m +[1m+++ b/iup/srclua3/il_tree.c[m +[36m@@ -91,6 +91,29 @@[m [mstatic int TREE_multiselection (Ihandle *handle, int *ids, int n)[m + return iuplua_call();[m + }[m + [m +[32m+[m[32mstatic int TREE_multiunselection (Ihandle *handle, int *ids, int n)[m +[32m+[m[32m{[m +[32m+[m[32m int i;[m +[32m+[m[32m lua_Object tb;[m +[32m+[m +[32m+[m[32m iuplua_call_start(handle, "multiunselection");[m +[32m+[m +[32m+[m[32m tb = lua_createtable();[m +[32m+[m[32m for (i = 0; i < n; i++)[m[41m [m +[32m+[m[32m {[m +[32m+[m[32m lua_beginblock();[m +[32m+[m[32m lua_pushobject(tb);[m +[32m+[m[32m lua_pushnumber(i+1);[m +[32m+[m[32m lua_pushnumber(ids[i]);[m +[32m+[m[32m lua_settable();[m +[32m+[m[32m lua_endblock();[m[41m [m +[32m+[m[32m }[m +[32m+[m[32m lua_pushobject(tb);[m +[32m+[m +[32m+[m[32m lua_pushnumber (n);[m +[32m+[m[32m return iuplua_call();[m +[32m+[m[32m}[m +[32m+[m + static int TREE_dragdrop(Ihandle* handle, int drag_id, int drop_id, int isshift, int iscontrol)[m + {[m + iuplua_call_start(handle, "dragdrop");[m +[36m@@ -232,6 +255,7 @@[m [mint treelua_open(void)[m + lua_CFunction func;[m + } TreeAssocList [] = {[m + {"iup_tree_multiselection_cb", (lua_CFunction)TREE_multiselection},[m +[32m+[m[32m {"iup_tree_multiunselection_cb", (lua_CFunction)TREE_multiunselection},[m + {"iup_tree_selection_cb", (lua_CFunction)TREE_selection},[m + {"iup_tree_branchopen_cb", (lua_CFunction)TREE_branchopen},[m + {"iup_tree_branchclose_cb", (lua_CFunction)TREE_branchclose},[m +[1mdiff --git a/iup/srclua3/iuplua.c b/iup/srclua3/iuplua.c[m +[1mindex 7789ce8..5563699 100755[m +[1m--- a/iup/srclua3/iuplua.c[m +[1m+++ b/iup/srclua3/iuplua.c[m +[36m@@ -481,6 +481,7 @@[m [mint iuplua_open(void)[m + iupluawidgets_open(iuplua_tag);[m + [m + sboxlua_open();[m +[32m+[m[32m splitlua_open();[m + spinlua_open();[m + cboxlua_open();[m + vallua_open();[m +[1mdiff --git a/iup/srclua3/iuplua_api.c b/iup/srclua3/iuplua_api.c[m +[1mindex 3221658..a9acf1d 100755[m +[1m--- a/iup/srclua3/iuplua_api.c[m +[1m+++ b/iup/srclua3/iuplua_api.c[m +[36m@@ -182,7 +182,7 @@[m [mstatic void GetAttribute(void)[m + char *name = luaL_check_string(2);[m + Ihandle* ih = iuplua_checkihandle(1);[m + char *value = IupGetAttribute(ih, name);[m +[31m- if (!value || iupAttribIsInternal(name))[m +[32m+[m[32m if (!value || iupATTRIB_ISINTERNAL(name))[m + lua_pushnil();[m + else[m + {[m +[1mdiff --git a/iup/srclua3/iuplua_widgets.c b/iup/srclua3/iuplua_widgets.c[m +[1mindex f6b801b..7591580 100755[m +[1m--- a/iup/srclua3/iuplua_widgets.c[m +[1m+++ b/iup/srclua3/iuplua_widgets.c[m +[36m@@ -170,6 +170,12 @@[m [mstatic int iupluaUnMapCb(Ihandle* handle)[m + return iuplua_call();[m + }[m + [m +[32m+[m[32mstatic int iupluaDestroyCb(Ihandle* handle)[m +[32m+[m[32m{[m +[32m+[m[32m iuplua_call_start(handle, "destroycb");[m +[32m+[m[32m return iuplua_call();[m +[32m+[m[32m}[m +[32m+[m + static int iupluaMapCb(Ihandle* handle)[m + {[m + iuplua_call_start(handle, "mapcb");[m +[36m@@ -610,6 +616,7 @@[m [mint iupluawidgets_open(int tag)[m + { "iup_show_cb", (lua_CFunction)dialog_show},[m + { "iup_map_cb", (lua_CFunction)iupluaMapCb},[m + { "iup_unmap_cb", (lua_CFunction)iupluaUnMapCb},[m +[32m+[m[32m { "iup_destroy_cb", (lua_CFunction)iupluaDestroyCb},[m + { "iup_dropfiles_cb", (lua_CFunction)iupluaDropfilesCb},[m + { "iup_trayclick_cb", (lua_CFunction)dialog_trayclick},[m + { "iup_getfocus_cb", (lua_CFunction)iupluaGetfocusCb},[m +[1mdiff --git a/iup/srclua3/iuplua_widgets.lua b/iup/srclua3/iuplua_widgets.lua[m +[1mindex 33be9e3..a59bde6 100755[m +[1m--- a/iup/srclua3/iuplua_widgets.lua[m +[1m+++ b/iup/srclua3/iuplua_widgets.lua[m +[36m@@ -875,6 +875,7 @@[m [miup_callbacks =[m + showcb = {"SHOW_CB", iup_show_cb},[m + mapcb = {"MAP_CB", iup_map_cb},[m + unmapcb = {"UNMAP_CB", iup_unmap_cb},[m +[32m+[m[32m destroycb = {"DESTROY_CB", iup_destroy_cb},[m + dropfiles = {"DROPFILES_CB", iup_dropfiles_cb},[m + menuclose = {"MENUCLOSE_CB", iup_menuclose_cb},[m + highlight = {"HIGHLIGHT_CB", iup_highlight_cb},[m +[36m@@ -921,6 +922,7 @@[m [miup_callbacks.open_cb = iup_callbacks.open[m + iup_callbacks.show_cb = iup_callbacks.showcb [m + iup_callbacks.map_cb = iup_callbacks.mapcb [m + iup_callbacks.unmap_cb = iup_callbacks.unmapcb [m +[32m+[m[32miup_callbacks.destroy_cb = iup_callbacks.destroycb[m[41m [m + iup_callbacks.dropfiles_cb = iup_callbacks.dropfiles [m + iup_callbacks.menuclose_cb = iup_callbacks.menuclose [m + iup_callbacks.highlight_cb = iup_callbacks.highlight [m +[1mdiff --git a/iup/srclua3/tree.lua b/iup/srclua3/tree.lua[m +[1mindex 659afdb..bf53bca 100755[m +[1m--- a/iup/srclua3/tree.lua[m +[1m+++ b/iup/srclua3/tree.lua[m +[36m@@ -47,6 +47,7 @@[m [miup.TreeSetValue = TreeSetValue[m + [m + iup_callbacks.selection = {"SELECTION_CB", iup_tree_selection_cb}[m + iup_callbacks.multiselection = {"MULTISELECTION_CB", iup_tree_multiselection_cb}[m +[32m+[m[32miup_callbacks.multiunselection = {"MULTIUNSELECTION_CB", iup_tree_multiunselection_cb}[m + iup_callbacks.branchopen = {"BRANCHOPEN_CB", iup_tree_branchopen_cb}[m + iup_callbacks.branchclose = {"BRANCHCLOSE_CB", iup_tree_branchclose_cb}[m + iup_callbacks.executeleaf = {"EXECUTELEAF_CB", iup_tree_executeleaf_cb}[m +[36m@@ -58,6 +59,7 @@[m [miup_callbacks.dragdrop = {"DRAGDROP_CB", iup_tree_dragdrop_cb}[m + [m + iup_callbacks.selection_cb = iup_callbacks.selection [m + iup_callbacks.multiselection_cb = iup_callbacks.multiselection [m +[32m+[m[32miup_callbacks.multiunselection_cb = iup_callbacks.multiunselection[m[41m [m + iup_callbacks.branchopen_cb = iup_callbacks.branchopen [m + iup_callbacks.branchclose_cb = iup_callbacks.branchclose [m + iup_callbacks.executeleaf_cb = iup_callbacks.executeleaf [m +[1mdiff --git a/iup/srclua5/Makefile b/iup/srclua5/Makefile[m +[1mindex 3942e79..1189d32 100755[m +[1m--- a/iup/srclua5/Makefile[m +[1m+++ b/iup/srclua5/Makefile[m +[36m@@ -3,22 +3,22 @@[m + do_all: iuplua iupluacd iupluacontrols iuplua_pplot iupluagl iupluaim iupluaimglib[m + [m + iuplua:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak [m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak[m[41m [m + [m + iupluacd:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcd[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcd[m + [m + iupluacontrols:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupcontrols[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupcontrols[m + [m + iuplua_pplot:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iup_pplot[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iup_pplot[m + [m + iupluagl:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupgl[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupgl[m + [m + iupluaim:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupim[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupim[m + [m + iupluaimglib:[m +[31m- @$(MAKE) --no-print-directory -f ../tecmake_compact.mak MF=iupimglib[m +[32m+[m [32m@$(MAKE) --no-print-directory -f ../tecmake.mak MF=iupimglib[m +[1mdiff --git a/iup/srclua5/button.lua b/iup/srclua5/button.lua[m +[1mindex 946a05e..fc57b1a 100755[m +[1m--- a/iup/srclua5/button.lua[m +[1m+++ b/iup/srclua5/button.lua[m +[36m@@ -3,16 +3,16 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "button",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "S-",[m + callback = {[m + action = "", [m + }[m + } [m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return Button(arg.title)[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.Button(param.title)[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/canvas.lua b/iup/srclua5/canvas.lua[m +[1mindex 562d671..101c4f4 100755[m +[1m--- a/iup/srclua5/canvas.lua[m +[1m+++ b/iup/srclua5/canvas.lua[m +[36m@@ -3,7 +3,7 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "canvas",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "-",[m + callback = {[m + action = "ff",[m +[36m@@ -21,9 +21,9 @@[m [mlocal ctrl = {[m + }[m + }[m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return Canvas()[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.Canvas()[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/cbox.lua b/iup/srclua5/cbox.lua[m +[1mindex 3533970..81ba9be 100755[m +[1m--- a/iup/srclua5/cbox.lua[m +[1m+++ b/iup/srclua5/cbox.lua[m +[36m@@ -3,7 +3,7 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "cbox",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "v",[m + callback = {},[m + funcname = "Cboxv",[m +[36m@@ -20,9 +20,9 @@[m [mstatic int Cboxv(lua_State *L)[m + ]],[m + }[m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return Cboxv(arg)[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.Cboxv(param)[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/cells.lua b/iup/srclua5/cells.lua[m +[1mindex 9c914f2..0355b17 100755[m +[1m--- a/iup/srclua5/cells.lua[m +[1m+++ b/iup/srclua5/cells.lua[m +[36m@@ -3,7 +3,7 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "cells",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "",[m + callback = {[m + mouseclick_cb = "nnnnnns",[m +[36m@@ -24,9 +24,9 @@[m [mfunction ctrl.redraw(handle)[m + handle.repaint = "YES"[m + end[m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return Cells()[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.Cells()[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/clipboard.lua b/iup/srclua5/clipboard.lua[m +[1mindex e60b8bd..663215b 100755[m +[1m--- a/iup/srclua5/clipboard.lua[m +[1m+++ b/iup/srclua5/clipboard.lua[m +[36m@@ -3,15 +3,15 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "clipboard",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "",[m + callback = {[m + },[m + } [m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return Clipboard()[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.Clipboard()[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/colorbar.lua b/iup/srclua5/colorbar.lua[m +[1mindex 524d5f3..7cc07db 100755[m +[1m--- a/iup/srclua5/colorbar.lua[m +[1m+++ b/iup/srclua5/colorbar.lua[m +[36m@@ -3,7 +3,7 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "colorbar",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "",[m + callback = {[m + select_cb = "nn",[m +[36m@@ -15,12 +15,12 @@[m [mlocal ctrl = {[m + include = "iupcontrols.h",[m + }[m + [m +[31m-PRIMARY = -1[m +[31m-SECONDARY = -2[m +[32m+[m[32miup.PRIMARY = -1[m +[32m+[m[32miup.SECONDARY = -2[m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return Colorbar(arg.action)[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.Colorbar(param.action)[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/colorbrowser.lua b/iup/srclua5/colorbrowser.lua[m +[1mindex 16ac58f..496ce21 100755[m +[1m--- a/iup/srclua5/colorbrowser.lua[m +[1m+++ b/iup/srclua5/colorbrowser.lua[m +[36m@@ -3,7 +3,7 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "colorbrowser",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "",[m + callback = {[m + drag_cb = "ccc",[m +[36m@@ -13,9 +13,9 @@[m [mlocal ctrl = {[m + include = "iupcontrols.h",[m + }[m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return ColorBrowser(arg.action)[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.ColorBrowser(param.action)[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m +[1mdiff --git a/iup/srclua5/colordlg.lua b/iup/srclua5/colordlg.lua[m +[1mindex 6eea53b..d6a71a4 100755[m +[1m--- a/iup/srclua5/colordlg.lua[m +[1m+++ b/iup/srclua5/colordlg.lua[m +[36m@@ -3,24 +3,24 @@[m + ------------------------------------------------------------------------------[m + local ctrl = {[m + nick = "colordlg",[m +[31m- parent = WIDGET,[m +[32m+[m[32m parent = iup.WIDGET,[m + creation = "",[m + funcname = "ColorDlg",[m + callback = {}[m + } [m + [m + function ctrl.popup(handle, x, y)[m +[31m- Popup(handle,x,y)[m +[32m+[m[32m iup.Popup(handle,x,y)[m + end[m + [m + function ctrl.destroy(handle)[m +[31m- return Destroy(handle)[m +[32m+[m[32m return iup.Destroy(handle)[m + end[m + [m +[31m-function ctrl.createElement(class, arg)[m +[31m- return ColorDlg()[m +[32m+[m[32mfunction ctrl.createElement(class, param)[m +[32m+[m[32m return iup.ColorDlg()[m + end[m + [m +[31m-iupRegisterWidget(ctrl)[m +[31m-iupSetClass(ctrl, "iup widget")[m +[32m+[m[32miup.RegisterWidget(ctrl)[m +[32m+[m[32miup.SetClass(ctrl, "iup widget")[m + [m +[1mdiff --git a/iup/srclua5/config.mak b/iup/srclua5/config.mak[m +[1mindex 7979f0e..921aa29 100755[m +[1m--- a/iup/srclua5/config.mak[m +[1m+++ b/iup/srclua5/config.mak[m +[36m@@ -17,7 +17,7 @@[m [mCTRLUA = button.lua canvas.lua dialog.lua colordlg.lua clipboard.lua \[m + item.lua image.lua imagergb.lua imagergba.lua label.lua \[m + menu.lua multiline.lua list.lua separator.lua user.lua \[m + submenu.lua text.lua toggle.lua vbox.lua zbox.lua timer.lua \[m +[31m- sbox.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \[m +[32m+[m[32m sbox.lua split.lua spin.lua spinbox.lua cbox.lua messagedlg.lua \[m + radio.lua val.lua tabs.lua fontdlg.lua tree.lua progressbar.lua[m + [m + GC := $(addsuffix .c, $(basename $(CTRLUA)))[m +[1mdiff --git a/iup/srclua5/constants.lua b/iup/srclua5/constants.lua[m +[1mindex 9a72f6a..2a1e76f 100755[m +[1m--- a/iup/srclua5/constants.lua[m +[1m+++ b/iup/srclua5/constants.lua[m +[36m@@ -3,70 +3,70 @@[m + ----------------------------------------------------------------------------[m + -- Common return values [m + ----------------------------------------------------------------------------[m +[31m-ERROR = 1[m +[31m-NOERROR = 0[m +[31m-OPENED = -1[m +[31m-INVALID = -1[m +[32m+[m[32miup.ERROR = 1[m +[32m+[m[32miup.NOERROR = 0[m +[32m+[m[32miup.OPENED = -1[m +[32m+[m[32miup.INVALID = -1[m + [m + ----------------------------------------------------------------------------[m + -- Callback return values [m + ----------------------------------------------------------------------------[m +[31m-IGNORE = -1[m +[31m-DEFAULT = -2[m +[31m-CLOSE = -3[m +[31m-CONTINUE = -4[m +[32m+[m[32miup.IGNORE = -1[m +[32m+[m[32miup.DEFAULT = -2[m +[32m+[m[32miup.CLOSE = -3[m +[32m+[m[32miup.CONTINUE = -4[m + [m + ----------------------------------------------------------------------------[m + -- IupPopup e IupShowXY [m + -------------------------------
\ No newline at end of file |