:>> SimMX uni ui creator!


Snippets are really sort of templates!
For quick demo without any compilers check down Html sample!
Win7 faster graphics: rightClick SUniGuiCreator.exe->properties->Compatibility->Disable desktop composition
Design mode buttons can be customized, check down [[ Customizing 'design mode' buttons ]]


[[ HowToUse ]]
  there should be 2 orange user tools at top - this are just an example; <=if'any.tool'DoesntHavePosYet,itCanBeUsedAs:dblClickAnywhereNearThisTwoAndChoose(anyfilename.tool<=shoudExist,posWillBeAdded)
	-testing 1st tool: just hit it, it should open cmd window with some stuff
	-testing simmxhdrtools(somethingLikeLinux1stLineScript) and in-file compiling:
	 open zz_smx\testcommenttools.cpp.all - read - adjust as necesarry,
	 and hit Export(or F12 or Alt-c) - testcommenttools.cpp should be created in same folder.
	 now hit 2nd orange user tool - if everything goes right some cmd line windows will show,
	   optionally new compiled testcommenttools.exe and 3progs(write notepad calc) opened.
   note that default ToolsInComment expects exported file!

If you read the 'config' - even if you don't want to tweak - it has some usefull info!
For simple template/wizard like sample, just click 'snippets'->'html'->'index5.html'.
Some icons/background images and MainSwf.swf are in resources.7z if needed.

Hover over 'save' for current loaded/saved file!

AsHexStructEditor: 1st load ...-binary.gfx(onlyMainTabIsUsed), then any file for editor - optionally save.


[[ Samples ]]
HaXe flash sample:
  -install haxe, then in tools\haxe-flash.bat modify path to it
  -in SUniGuiCreator:
     browserVer(open MainSwf.hx.all then sample.gfx and hit Export(hold down Shift while pressing OK, or dont and see if MainSwf gets executed-justCloseIfItRuns), then open index-haxe-swf.html.all) and hit Export
     flashPlayerVer-ifYouHaveFlPlayerTool-orDefaultSwfOpener(open MainSwf.hx.all and sample.gfx) and hit Export

Html sample:
  -open index5.html.all and sample.gfx, then hit Export - it should produce similar effect to upper haXe flash

Native windows sample:
	-open wnative.cpp.all(upper-txt) and wnative.gfx(lower-gfx)
	-compiler:
  	msvc14: in tools\compile-wnd-msvc14.bat,modify path to this compiler(configuredForWXPsp2UpButTestedOnW7-target=x32)
  	gcc: in tools\compile-wnd-gcc.bat,modify path to this compiler(configuredForGenericButTestedOnW7-target=x32), and modify header of opened wnative.cpp.all
  	anotherOne: create file tools\compile-wnd-CompilerName.bat and modify header of opened wnative.cpp.all
	-export(itShouldCompileExeAndOpenThatApp)
  For 'class ids': BUTTON|EDIT|... [wndflagsNoWS_|exwndflagsNoWS_EX_|WS_...|WS_EX_...] [EXTRACLASSFLAGS] <=uppercaseAreAsTheyAreInHeaders,lowercaseAreWindowAndWindowExFlagsWithoutWS_orWS_EX_(thisIsSoThatHiddenCanBeUsed) <=updated so WS_ and WS_EX_ can be used!
  	nativeClassesAreUsed-BUTTON,EDIT,etc-withAllUppercase, any flags can be added to this with 'space' as separator(allLowercase)
    and available flags can be found in upperSection of snippets\cpp\windows\ab_ui-create-exp.esc, eg: BUTTON hidden BS_FLAT WS_VSCROLL WS_EX_LEFTSCROLLBAR
    AllItemsHaveAutoAdded: visible|child, if hidden is spec then no visible is added.
	For LISTBOX/COMBOBOX: lastLineCanSpecifyWhichLineIsSelected,as in sample:"Line1\nLine2\nLine3\\r1" <=1=whichOne
  Alignment is not implemented in script template for now, if anybody adds this, it would be fine to uppload to upp site

ExportOnly sample:
  double click zz_zexp/export-and-compile.bat <=compiler-env-gcc.bat should have correct path set to gcc

note for cb-loop-items-any.any:
  for now only vecobjitems props are expanded multiple-times if used in vecobj-extra-code


[[ Customizing 'design mode' buttons ]]
This is primarily used for setting customized extra button tools, with rearanging - renaming/copying *.tool files(tid-set-utools canBeUsed-lookDown)!
Creating dm-button-1.all in tools dir will be executed when clicking 1stButton, yes, that is without intermediate .cpp.all,.c.all,etc.
Intermediate files(andExporting) in this case are not used, but headertools are
For rearanging - renaming/copying *.tool files, @tid-set-utools pattern; can be used(assumingDir-tools/usertools/ut-*.tool), eg: @tid-set-utools ut-sample-*.tool;
UserToolsButtons: the one with ...>(justASample) have option to rightMouseButtonClick(lastOptOnLine nul ... in *.tool)

[[ Parse func ]]
Parsing is done like so:
esc functions, then @tool or @snippet etc(moreOrLessEscFuncsAreCalledInBetween-egForItems), then again esc functions

[[ <<End sectionS>> ]]


In About are command line switches

That's it!



simmxtools
  can be downloaded from
    https://ws-tools.000webhostapp.com



Extra esc keywords(everyReturnIsAsString,"atStartAndEndMeansIt'sRealString):
  msgbox(str);
  str=input(text,title="Edit...",desc="");
  str=inputdbl(dbl,title="Edit...",desc="");
  dbl=dblinput(dbl,title="Edit...",desc="");
  vecStr=split(str,delimChOrStr,ignoreempty=0);   //vecStr=vector<string>, note that boolean is 0 and 1 - not false/true
  str=join(vecStr,delimStr);                      //vecStr=vector<string>
  str=mid(text,from,num)                       		//from and num should be specified - this is internal version
  str=mid_ex(text,from,num=-pow(2,31))            //from:<0MeansFromEnd,num:-pow(2,31) means till end, eg mid(txt,-4) - note,from/num may be both negative
  bool=exists(map,key)
  int=find(text,find,from=0);                     //-1=notFound
  str=cmd(progAndArgs,detach=0)                   //by def will wait cmd to finish, ret:void=err
  str=run(progAndArgs,detach=1)                   //by def will return immediately - without waiting to finish, ret:asEmptyStr,void=err
  
  gfxget(gfxtabind,str,itemind=-1,cfgFromSnippets="");  //gfxtabind=0..15, str: any $<>,eg $<num-items> or $<painter-bgclr> or when itemind is spec - $<pos.x> etc; cfgFromSnippets may be as snippets\html\aa-snipptypesettings.cfg <=this is def, you can spec another
  str=$<esc{x=any; return any}>;                        //<= this can be done for any 'regular/static' $<> or @any; pre-parsing or
  str=$<esc{"script.esc"}>;                             //<= this can be done for any 'regular/static' $<> or @any; pre-parsing or
  str=@tid-str;                                         //<= this
  parse(str);                                           //parse any dynamically-whenThisCodeIsReached-butWithout@and;, eg parse("snippet \"html\index5.html\"");
  
  bool=fileexists(fname)													//selfExplanatory
  bool=filecopy(src,dest)													//dest may end with ".../dir/" so this can be used: filecopy("c:/files/main.txt","c:/backup/");
  bool=filedelete(fname)
  file=OpenFileIn(x)															//methods: IsEof Get GetLine Close
  file=OpenFileOut(x)															//methods: Put PutLine Close
  file=OpenFileAppend(x)													//-||-
