numbtnsdigss equ 33 ;23
rept 1 {
        invoke  GetModuleHandle,0
        mov     [wc.hInstance],eax
        mov     [wc.cbSize], sizeof.WNDCLASSEX
        invoke  LoadCursor,0,IDC_IBEAM
        mov     [wc.hCursor],eax
        mov     [wc.style],CS_HREDRAW or CS_VREDRAW  ;CS_GLOBALCLASS+CS_DBLCLKS
        mov     [wc.lpfnWndProc],WndProc

        mov     [wc.cbWndExtra],4
        xor     eax,eax
        mov     [wc.hbrBackground],eax
        mov     [wc.cbClsExtra],eax
        mov     [wc.lpszMenuName],IDR_MAINMENU
        mov     [wc.lpszClassName],wndcls ;_fedit
        invoke  RegisterClassEx,wc
        ;PrintValue pvvv,eax
        invoke GetLastError
        ;PrintValue pvvv,eax

        invoke  CreateWindowEx,WS_EX_ACCEPTFILES,wndcls,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW, \
                               495,44+15,612+634,712-55,NULL,NULL,[wc.hInstance],NULL
                               mov esi,eax
                                mov [mhwnd],eax
        }


        invoke  GetModuleHandle,0
        ;FES_OPTIMALFILL uberet probeli a mne oni nuzni
        ;+FES_AUTOINDENT posle enter prodolzit s otstupom !
        invoke  CreateWindowEx,0,_fedit,_title,WS_VISIBLE+WS_CHILD+WS_VSCROLL or WS_HSCROLL+ FES_CONSOLECARET+FES_TIMESCROLL+ES_NOHIDESEL+FES_AUTOINDENT, \
                               0,5,612+620,612,esi,NULL,[wc.hInstance],NULL
        test    eax,eax
        jz      exit
        mov     [hwnd],eax
        mov    [cf.lStructSize],sizeof.CHOOSEFONT
        mov    [cf.lpLogFont],tmp_font
        ;mov    [cf.Flags], CF_SCREENFONTS + CF_EFFECTS
        ;mov    ebx,[hwnd]
        ;mov    [cf.hwndOwner],ebx
        ;invoke  ChooseFontA,cf
;static window for show info lineXY
        BS_DEFSPLITBUTTON = WS_POPUP+0;x0d    ;+WS_POPUP
        SS_BITMAP2 = BS_DEFSPLITBUTTON;+SS_BITMAP
        invoke  CreateWindowEx,WS_EX_TOPMOST,lStatic,0,WS_VISIBLE+SS_BITMAP2, \
                               591,762,260,28,0,NULL,0,NULL   ;591,659
        mov     [tmpStatic],eax
include 'combolist.txt'
        jmp @f
align 8
        mousexy dd 0,0
        ignorMove db 0
        combot db 'combobox',0
        ComboList dd 0
        include 'wndproc.txt'
        ;pupsi db 'mouse',0
        fepos FEPOS
        ;pSelAllTxt dd 1,1,1,-1
        pvvv    db '%d',0
        ppp     dd 0
        wwttxt1 db 'user colors',0
        wwttxt2 db 'button',0
        btnUsrColors dd 0

        wwttxtB db 'tab',0
        btnExit      dd 0

        wwttxtD db 'file',0
        btnFile      dd 0

        wwttxtE db 'save',0
        btnSave      dd 0

        wwttxtW db 'undo',0
        btnUndo      dd 0

        wwttxtQ db 'paste',0
        btnPaste     dd 0

        wwttxtR db 'cut',0
        btnCut     dd 0

        wwttxtF db 'find',0
        btnFind     dd 0

        wwttxtv db 'enter',0
        btnEnter     dd 0
        wwttxtpin db 'pin',0
        btnPin    dd 0

        wwttxtci db 'c++ interface',0
        btnCInterface dd 0
@@btn db '&&',0
        digtsBtn dd 34 dup(0)
        digtsTxt: rept 10 t:48 {db t,0 }
                db '.',0 
                db ',',0
                db ';',0
                db '/',0
                db '*',0
                db '+',0
                db '-',0
                db '=',0
                db '@',0
                db ':',0
                db '#',0
                db '>',0
                db '<',0
                db '"',0
		db '_',0
		db '\',0
		db '[',0
		db ']',0
                db ' ',0
                db 'W',0
                db 'X',0
                db 'Y',0
                db 'Z',0

        smallX  = 68

@@:     btFlag = WS_VISIBLE+WS_CHILD

;------very small btns digits
if digsBtnNO = 0
        mov esi,digtsTxt
rept numbtnsdigss n:0 {
        invoke  CreateWindowEx,0,wwttxt2,esi,btFlag, \
                               (22+2)*n+(smallX+2)*4-16*4,572-28,22,22,[hwnd],NULL,0,NULL
        ;inc byte [digtsTxt]
        add esi,2
        mov [digtsBtn+n*4],eax
}
invoke  CreateWindowEx,0,wwttxt2,@@btn,btFlag, \
                               (smallX+2)*4-16*5-8,572-28,22,22,[hwnd],NULL,0,NULL
	mov [digtsBtn+numbtnsdigss*4],eax
end if
;------small btns
rept 0 {
        invoke  CreateWindowEx,0,wwttxt2,wwttxt1,btFlag , \
                               0,572,84,22,[hwnd],0,0,NULL
                 mov [btnUsrColors],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtD,btFlag, \
                               86,572,84,22,[hwnd],0,0,NULL
                 mov [btnFile],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtE,btFlag, \
                               86*13+7,572,80,22,[hwnd],NULL,0,NULL
                 mov [btnSave],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtW,btFlag, \
                               (smallX+2)*7,572,smallX,22,[hwnd],NULL,0,NULL
                 mov [btnUndo],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtQ,btFlag, \
                               (smallX+2)*4,572,smallX,22,[hwnd],NULL,0,NULL
                 mov [btnPaste],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtR,btFlag, \
                               (smallX+2)*5,572,smallX,22,[hwnd],NULL,0,NULL
                 mov [btnCut],eax

        ;invoke  CreateWindowEx,0,wwttxt2,wwttxtF,btFlag, \
        ;                       (smallX+2)*6,572,smallX,22,[hwnd],NULL,0,NULL
        ;         mov [btnFind],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtB,btFlag, \
                               (smallX+2)*8,572,smallX,22,[hwnd],NULL,0,NULL
                 mov [btnExit],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtv,btFlag, \
                               (smallX+2)*9,572,smallX,22,[hwnd],NULL,0,NULL
                 mov [btnEnter],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtpin,btFlag, \
                               (smallX+2)*10,572,smallX,22,[hwnd],NULL,0,NULL
                 mov [btnPin],eax

        invoke  CreateWindowEx,0,wwttxt2,wwttxtci,btFlag, \
                               (smallX+2)*11,572,smallX+22,22,[hwnd],NULL,0,NULL
                 mov [btnCInterface],eax
         }