Subversion Repositories Kolibri OS

Rev

Rev 826 | Rev 1624 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. diff16 'tp-dialog.asm',0,$
  2.  
  3. ;-----------------------------------------------------------------------------
  4. proc define_3d_button ;///////////////////////////////////////////////////////
  5. ;-----------------------------------------------------------------------------
  6. ; ebx = <x,width>
  7. ; ecx = <y,height>
  8. ; esp+4*3 = id
  9. ; esp+4*2 = text
  10. ; esp+4*1 = text length
  11. ;-----------------------------------------------------------------------------
  12.         pushad
  13.         mov     edx,[esp+4*8+4+4*2]
  14.         or      edx,0x40000000
  15.         mcall   8
  16.         mov     eax,[esp+4*8+4*1]
  17.         add     eax,2
  18.         imul    eax,6
  19.         pushad
  20.         shr     ebx,16
  21.         shr     ecx,16
  22.         push    ebx ecx eax 15
  23.         call    draw_3d_panel
  24.         popad
  25.         shr     ecx,16
  26.         mov     bx,cx
  27.         add     ebx,7*65536+4
  28.         mcall   4,,[sc.work_text],[esp+4*8+4*2],[esp+4*8+4*1]
  29.         popad
  30.         ret     4*3
  31. endp
  32.  
  33. finddlg_handler:
  34.         cmp     al,1
  35.         je      .draw
  36.         cmp     al,2
  37.         je      .key
  38.         cmp     al,3
  39.         je      botdlg.button
  40.         ret
  41.  
  42.   .draw:
  43.         mov     ebx,[bot_ofs]
  44.         add     ebx,(1+3)*65536+6
  45.         mcall   4,,[sc.work_text],s_2find,s_2find.size+1
  46.         mov     ecx,[bot_ofs]
  47.         shl     ecx,16
  48.         add     ecx,(3+17)*65536+15
  49.  
  50.         push    ecx
  51.         cmp     [bot_mode2],0
  52.         je      @f
  53.         add     ebx,18
  54.         mcall   4,,[sc.work_text],s_2replace,s_2replace.size+1
  55.         mov     ecx,[esp]
  56.         add     ecx,18*65536
  57.     @@:
  58.  
  59.         mov     ebx,[p_info.client_box.width]
  60.         shl     ebx,16
  61.  
  62.         push    20003
  63.         cmp     [bot_mode2],0
  64.         jne     .draw.lp1
  65.         add     ebx,-(2+6*(s_2find.size+2))*65536+6*(s_2find.size+2)
  66.         push    s_2find s_2find.size
  67.         jmp     @f
  68.  
  69.   .draw.lp1:
  70.         add     ebx,-(2+6*(s_2replace.size+2))*65536+6*(s_2replace.size+2)
  71.         push    s_2replace s_2replace.size
  72.  
  73.     @@: call    define_3d_button
  74.         sub     ebx,(6*(s_2cancel.size+2)+3)*65536
  75.         mov     bx,6*(s_2cancel.size+2)
  76.         push    20001 s_2cancel s_2cancel.size
  77.         call    define_3d_button
  78.  
  79.         mov     ecx,[esp]
  80.  
  81.         mov     ebp,tb_find
  82.         mov     eax,[p_info.client_box.width]
  83.         sub     eax,6*(s_2find.size+2)+1
  84.         add     eax,6*(s_2find.size+2)*65536
  85.         mov     dword[tbox.width],eax
  86.         add     ecx,-18*65536+1
  87.         mov     dword[tbox.height],ecx
  88.         call    textbox.draw
  89.  
  90.         pop     ecx
  91.  
  92.         cmp     [bot_mode2],0
  93.         je      @f
  94.         mov     ebp,tb_replace
  95.         mov     eax,[p_info.client_box.width]
  96.         sub     eax,6*(s_2replace.size+2)+1
  97.         add     eax,6*(s_2replace.size+2)*65536
  98.         mov     dword[tbox.width],eax
  99.         inc     ecx
  100.         mov     dword[tbox.height],ecx
  101.         call    textbox.draw
  102.     @@:
  103.  
  104.         ret
  105.  
  106.   .key:
  107.         cmp     ebx,KEY_ESCAPE
  108.         je      btn.bot.cancel
  109.         cmp     ebx,KEY_RETURN
  110.         je      btn.bot.find
  111.         cmp     ebx,KEY_NUMRETURN
  112.         je      btn.bot.find
  113.         cmp     ebx,KEY_TAB
  114.         je      ..tab
  115.         call    textbox.key
  116.         ret
  117.  
  118.   ..tab:
  119.         cmp     [bot_mode2],0
  120.         je      @f
  121.         mov     eax,tb_replace
  122.         cmp     eax,[focused_tb]
  123.         jne     .key.lp1
  124.         mov     eax,tb_find
  125.   .key.lp1:
  126.         mov     [focused_tb],eax
  127.         call    .draw
  128.     @@: ret
  129.  
  130. osdlg_handler:
  131.         cmp     al,1
  132.         je      .draw
  133.         cmp     al,2
  134.         je      .key
  135.         cmp     al,3
  136.         je      botdlg.button
  137.         ret
  138.  
  139.   .draw:
  140.         mov     ebx,[bot_ofs]
  141.         add     ebx,(1+3)*65536+6
  142.         mcall   4,,[sc.work_text],s_2filename,s_2filename.size
  143.         mov     ebx,[p_info.client_box.width]
  144.         shl     ebx,16
  145.         mov     ecx,[bot_ofs]
  146.         shl     ecx,16
  147.         add     ecx,(2+18)*65536+15
  148.  
  149.         push    20002
  150.         cmp     [bot_mode2],0
  151.         jne     .draw.lp1
  152.         add     ebx,-(2+6*(s_2open.size+2))*65536+6*(s_2open.size+2)
  153.         push    s_2open s_2open.size
  154.         jmp     @f
  155.   .draw.lp1:
  156.         add     ebx,-(2+6*(s_2save.size+2))*65536+6*(s_2save.size+2)
  157.         push    s_2save s_2save.size
  158.  
  159.     @@: call    define_3d_button
  160.         sub     ebx,(6*(s_2cancel.size+2)+3)*65536
  161.         mov     bx,6*(s_2cancel.size+2)
  162.         push    20001 s_2cancel s_2cancel.size
  163.         call    define_3d_button
  164.  
  165.         cmp     [bot_mode2], 2      ; exit-save dialog
  166.         jne     @f
  167.  
  168.         sub     ebx,(6*(s_2save_no.size+2)+3)*65536
  169.         mov     bx,6*(s_2save_no.size+2)
  170.         push    20007 s_2save_no s_2save_no.size
  171.         call    define_3d_button
  172.  
  173.     @@: mov     ebp,tb_opensave
  174.         mov     eax,[p_info.client_box.width]
  175.         sub     eax,6*(s_2filename.size+1)+1
  176.         add     eax,6*(s_2filename.size+1)*65536
  177.         mov     dword[tbox.width],eax
  178.         add     ecx,-18*65536+1
  179.         mov     dword[tbox.height],ecx
  180.         call    textbox.draw
  181.  
  182.         ret
  183.  
  184.   .key:
  185.         cmp     ebx,KEY_ESCAPE
  186.         je      btn.bot.cancel
  187.         cmp     ebx,KEY_RETURN
  188.         je      btn.bot.opensave
  189.         cmp     ebx,KEY_NUMRETURN
  190.         je      btn.bot.opensave
  191.         call    textbox.key
  192.         ret
  193.  
  194. gotodlg_handler:
  195.         cmp     al,1
  196.         je      .draw
  197.         cmp     al,2
  198.         je      .key
  199.         cmp     al,3
  200.         je      botdlg.button
  201.         ret
  202.  
  203.   .draw:
  204.         mov     ebx,[bot_ofs]
  205.         add     ebx,(1+3)*65536+6
  206.         mcall   4,,[sc.work_text],s_2filename,s_2filename.size
  207.         mov     ebx,[p_info.box.width]
  208.         shl     ebx,16
  209.         mov     ecx,[bot_ofs]
  210.         shl     ecx,16
  211.         add     ecx,(2+18)*65536+15
  212.  
  213.         push    20002
  214.         cmp     [bot_mode2],0
  215.         jne     .draw.lp1
  216.         add     ebx,-(2+6*(s_2open.size+2))*65536+6*(s_2open.size+2)
  217.         push    s_2open s_2open.size
  218.         jmp     @f
  219.   .draw.lp1:
  220.         add     ebx,-(2+6*(s_2save.size+2))*65536+6*(s_2save.size+2)
  221.         push    s_2save s_2save.size
  222.  
  223.     @@: call    define_3d_button
  224.         sub     ebx,(6*(s_2cancel.size+2)+3)*65536
  225.         mov     bx,6*(s_2cancel.size+2)
  226.         push    20001 s_2cancel s_2cancel.size
  227.         call    define_3d_button
  228.  
  229.         mov     ebp,tb_opensave
  230.         mov     eax,[p_info.box.width]
  231.         sub     eax,6*(s_2filename.size+3)
  232.         add     eax,6*(s_2filename.size+2)*65536
  233.         mov     dword[tbox.width],eax
  234.         add     ecx,-18*65536+1
  235.         mov     dword[tbox.height],ecx
  236.         call    textbox.draw
  237.  
  238.         sub     ebx,(6*(s_2cancel.size+2)+3)*65536
  239.         mov     bx,6*(s_2cancel.size+2)
  240.         push    20010 s_2cancel s_2cancel.size
  241.         call    define_3d_button
  242.  
  243.         ret
  244.  
  245.   .key:
  246.         cmp     ebx,KEY_ESCAPE
  247.         je      btn.bot.cancel
  248.         cmp     ebx,KEY_RETURN
  249.         je      btn.bot.opensave
  250.         cmp     ebx,KEY_NUMRETURN
  251.         je      btn.bot.opensave
  252.         call    textbox.key
  253.         ret
  254.  
  255. cur_part   dd ?
  256. cur_color  dd ?
  257. cur_colors rd 10
  258.  
  259. optsdlg_handler:
  260.         cmp     al,1
  261.         je      .draw
  262.         cmp     al,2
  263.         je      .key
  264.         cmp     al,3
  265.         je      botdlg.button
  266.         cmp     al,4
  267.         je      .mouse
  268.         ret
  269.  
  270.   .xchg_colors:
  271.         mov     ecx,10
  272.         mov     esi,color_tbl
  273.         mov     edi,cur_colors
  274.     @@: lodsd
  275.         xchg    eax,[edi]
  276.         mov     [esi-4],eax
  277.         add     edi,4
  278.         loop    @b
  279.         ret
  280.  
  281.   .draw:
  282.         call    .draw_editor
  283.  
  284.         mov     ecx,[bot_ofs-2]
  285.         mov     cx,word[bot_ofs]
  286.         push    ecx
  287.         add     ecx,128
  288.         mcall   38,<2+3+165,2+3+165>,,[cl_3d_inset]
  289.         mov     bx,word[p_info.client_box.width]
  290.         pop     ecx
  291.         add     ecx,35*65536+35
  292.         mcall
  293.         add     ecx,0x00240024
  294.         mcall
  295.  
  296.         shr     ecx,16
  297.         mov     bx,cx
  298.         add     ebx,38*65536-21
  299.         mcall   4,,[sc.work_text],s_tabpos,s_tabpos.size
  300.  
  301.         call    .draw_tabpos
  302.  
  303.         mov     ebx,[bot_ofs]
  304.         add     ebx,(2+6+165+35)*65536+5+16
  305.         mcall   4,,[sc.work_text],s_color,s_color.size
  306.  
  307.         mov     dword[tb_color.width],(2+6+6*s_color.size+165+35)*65536+(6*6+8)
  308.         mov     eax,ebx
  309.         add     ax,-3
  310.         shl     eax,16
  311.         mov     ax,14
  312.         mov     dword[tb_color.height],eax
  313.  
  314.         call    .draw_color
  315.  
  316.         mov     ebx,[p_info.client_box.width]
  317.         shl     ebx,16
  318.         mov     ecx,[p_info.client_box.height]
  319.         shl     ecx,16
  320.         add     ecx,(-34)*65536+15
  321.  
  322.         add     ebx,-(2+6*(s_2save.size+2))*65536+6*(s_2save.size+2)
  323.         push    20004 s_2save s_2save.size
  324.         call    define_3d_button
  325.         sub     ebx,(6*(s_2cancel.size+2)+3)*65536
  326.         mov     bx,6*(s_2cancel.size+2)
  327.         push    20001 s_2cancel s_2cancel.size
  328.         call    define_3d_button
  329.  
  330.         ret
  331.  
  332.   .get_color:
  333.         movzx   ecx,[tb_color.length]
  334.         mov     esi,tb_color.text
  335.         xor     eax,eax
  336.         xor     ebx,ebx
  337.         jecxz   .lp2
  338.   .lp1: lodsb
  339.         cmp     al,'9'
  340.         mov     dl,-'0'
  341.         jbe     @f
  342.         mov     dl,-'A'+10
  343.     @@: add     al,dl
  344.         shl     ebx,4
  345.         add     bl,al
  346.         loop    .lp1
  347.   .lp2: mov     eax,[cur_part]
  348.         mov     [cur_colors+eax*4],ebx
  349.         mov     [cur_color],ebx
  350.         jmp     .draw_color.2
  351.  
  352.   .draw_editor:
  353.         ;push    dword[options] [tab_bar.Current.Ptr]
  354.         push    [tab_bar.Current.Ptr]
  355.         ;mov     [options],0
  356.         mov     ebp,optsdlg_editor
  357.         call    set_cur_tab
  358.  
  359.         call    .xchg_colors
  360.         mov     [cur_editor.Bounds.Left],2
  361.         mov     [cur_editor.Bounds.Right],2+165
  362.         mov     eax,[p_info.client_box.height]
  363.         add     eax,-125-STATH
  364.         mov     [cur_editor.Bounds.Top],eax
  365.         add     eax,122
  366.         mov     [cur_editor.Bounds.Bottom],eax
  367.         call    draw_editor
  368.         call    .xchg_colors
  369.  
  370.         ;pop     ebp eax
  371.         pop     ebp
  372.         ;mov     [options],al
  373.         call    set_cur_tab
  374.         ret
  375.  
  376.   .draw_tabpos:
  377.         mov     ecx,[bot_ofs-2]
  378.         xor     cx,cx
  379.         mov     ebx,(2+3+165+3)*65536+31
  380.         add     ecx,38*65536+31
  381.         mov     edx,[cl_3d_inset]
  382.         mov     esi,[sc.work]
  383.         call    draw_fillrect
  384.         dec     ebx
  385.         dec     ecx
  386.         mcall   8,,,0x40000000+21001
  387.         mov     esi,[cl_3d_normal]
  388.         mov     al,[tabs_pos]
  389.  
  390. TPOSH = 6
  391. TPOSW = 10
  392.  
  393.         dec     al
  394.         jnz     @f
  395.         ;// top
  396.         inc     ebx
  397.         mov     cx,TPOSH
  398.         call    draw_fillrect
  399.         add     ecx,2*65536-2
  400.         jmp     .lp3
  401.     @@: dec     al
  402.         jnz     @f
  403.         ;// bottom
  404.         inc     ebx
  405.         mov     cx,TPOSH
  406.         add     ecx,(31-TPOSH)*65536
  407.         call    draw_fillrect
  408.         add     ecx,-2
  409.         jmp     .lp3
  410.     @@: dec     al
  411.         jnz     @f
  412.         ;// left
  413.         inc     ecx
  414.         mov     bx,TPOSW
  415.         call    draw_fillrect
  416.         add     ebx,2*65536-2
  417.         jmp     .lp4
  418.     @@: dec     al
  419.         jnz     @f
  420.         ;// right
  421.         inc     ecx
  422.         mov     bx,TPOSW
  423.         add     ebx,(31-TPOSW)*65536
  424.         call    draw_fillrect
  425.         add     ebx,-2
  426.         jmp     .lp4
  427.  
  428.   .lp3:
  429.         add     ebx,(2+TPOSW-2+1)*65536-31+TPOSW-2
  430.         call    draw_fillrect
  431.         add     ebx,-(TPOSW-2+1)*65536
  432.         mov     esi,[sc.work]
  433.         call    draw_fillrect
  434.         ret
  435.   .lp4:
  436.         add     ecx,7*65536-31+4
  437.         call    draw_fillrect
  438.         add     ecx,-5*65536
  439.         mov     esi,[sc.work]
  440.         call    draw_fillrect
  441.         ret
  442.  
  443.   .draw_color:
  444.         mov     ecx,[cur_part]
  445.         mov     edx,s_appearance+1
  446.     @@: dec     ecx
  447.         js      @f
  448.         movzx   eax,byte[edx-1]
  449.         lea     edx,[edx+eax+1]
  450.         jmp     @b
  451.     @@:
  452.         movzx   esi,byte[edx-1]
  453.         mov     ebx,[bot_ofs]
  454.         add     ebx,(2+6+165+35)*65536+8
  455.         push    ebx ecx edx
  456.         mov     ecx,ebx
  457.         shl     ecx,16
  458.         mov     bx,s_appearance.maxl*6
  459.         mov     cx,10
  460.         mcall   13,,,[cl_3d_normal]
  461.         pop     edx ecx ebx
  462.         mcall   4,,[sc.work_text]
  463.  
  464.         mov     eax,[cur_color]
  465.         mov     edi,tb_color.text
  466.         mov     ebx,6
  467.         mov     ecx,16
  468.         call    uint2strz
  469.         mov     [tb_color.length],6
  470.         mov     [tb_color.sel.x],0
  471.         mov     [tb_color.pos.x],6
  472.  
  473.         mov     ebp,tb_color
  474.         call    textbox.draw
  475.  
  476.   .draw_color.2:
  477.         mov     ecx,[p_info.client_box.height]
  478.         sub     ecx,[bot_dlg_height]
  479.         add     ecx,-STATH
  480.         shl     ecx,16
  481.         add     ecx,3*65536+31
  482.         mov     ebx,(2+6+165)*65536+31
  483.         mov     edx,[cl_3d_inset]
  484.         mov     esi,[cur_color]
  485.         call    draw_fillrect
  486.  
  487.         ret
  488.  
  489.   .key:
  490.         cmp     ebx,KEY_ESCAPE
  491.         je      btn.bot.cancel
  492.         cmp     ebx,KEY_RETURN
  493.         je      btn.bot.appearance
  494.         cmp     ebx,KEY_NUMRETURN
  495.         je      btn.bot.appearance
  496.  
  497.         cmp     ebx,KEY_BACKSPACE
  498.         je      .key.tb.2
  499.         cmp     ebx,KEY_TAB
  500.         je      .key.tb.2
  501.         cmp     bx,0x00FF
  502.         ja      .key.tb.2
  503.         ;cmp     ebx,KEY_LSHIFT
  504.         ;je      .key.tb.2
  505.         ;cmp     ebx,KEY_RSHIFT
  506.         ;je      .key.tb.2
  507.         ;cmp     ebx,0x00000147
  508.         ;jb      .key.exit
  509.         ;cmp     ebx,0x00000153
  510.         ;jbe     .key.tb.2
  511.  
  512.         test    [chr],KM_CTRLALT
  513.         jnz     .key.exit
  514.         movzx   eax,byte[chr]
  515.         movzx   eax,[eax+key0]
  516.         or      al,al
  517.         jz      .key.exit
  518.         movzx   eax,[eax+key1]
  519.  
  520.         cmp     al,'0'
  521.         jb      @f
  522.         cmp     al,'9'
  523.         jbe     .key.tb
  524.     @@: cmp     al,'A'
  525.         jb      @f
  526.         cmp     al,'F'
  527.         jbe     .key.tb
  528.     @@: cmp     al,'a'
  529.         jb      @f
  530.         cmp     al,'f'
  531.         jbe     .key.tb
  532.     @@: ret
  533.   .key.tb:
  534.         cmp     [tb_color.length],6
  535.         jb      @f
  536.         mov     al,[tb_color.sel.x]
  537.         cmp     al,[tb_color.pos.x]
  538.         jne     @f
  539.         ret
  540.   .key.tb.2:
  541.     @@: call    textbox.key
  542.         call    .get_color
  543.         call    .draw_editor
  544.   .key.exit:
  545.         ret
  546.  
  547.   .mouse:
  548.         cmp     ah,MEV_LDOWN
  549.         jne     .mouse.exit
  550.         mcall   37,1
  551.         movsx   ebx,ax
  552.         sar     eax,16
  553.         cmp     eax,[optsdlg_editor+EDITOR.Bounds.Right]
  554.         jg      .mouse.exit
  555.         cmp     ebx,[optsdlg_editor+EDITOR.Bounds.Bottom]
  556.         jg      .mouse.exit
  557.         sub     eax,[optsdlg_editor+EDITOR.Bounds.Left]
  558.         js      .mouse.exit
  559.         sub     ebx,[optsdlg_editor+EDITOR.Bounds.Top]
  560.         js      .mouse.exit
  561.         mov     esi,optsdlg_editor_parts-5
  562.     @@: add     esi,5
  563.         cmp     byte[esi+0],-1
  564.         je      .mouse.exit
  565.         cmp     al,byte[esi+1]
  566.         jb      @b
  567.         cmp     bl,byte[esi+2]
  568.         jb      @b
  569.         cmp     al,byte[esi+3]
  570.         ja      @b
  571.         cmp     bl,byte[esi+4]
  572.         ja      @b
  573.         movzx   ebp,byte[esi+0]
  574.         mov     [cur_part],ebp
  575.         m2m     [cur_color],[cur_colors+ebp*4]
  576.         ;mcall   13,<200,30>,<250,30>,[color_tbl+ebp*4]
  577.         ;call    .draw_color
  578.         call    .draw
  579.  
  580.   .mouse.exit:
  581.         ret
  582.  
  583. botdlg.button:
  584.         mov     esi,accel_table2_botdlg
  585.   .acc: cmp     ebx,[esi]
  586.         jne     @f
  587.         call    dword[esi+4]
  588.         ret
  589.     @@: add     esi,8
  590.         cmp     byte[esi],0
  591.         jne     .acc
  592.         ret
  593.  
  594.   btn.bot.cancel:
  595.         xor     eax,eax
  596.         mov     [bot_mode],al
  597.         mov     [main_closing],al
  598.         mov     [bot_dlg_height],eax
  599.         mov     [s_status],eax
  600.         call    drawwindow
  601.         ret
  602.  
  603.   btn.bot.opensave:
  604.         cmp     [bot_mode2],0
  605.         je      .lp1
  606.         call    save_file
  607.         jnc     @f
  608.         jmp     .lp2
  609.   .lp1: call    load_file
  610.         jnc     @f
  611.   .lp2:
  612.         ret
  613.     @@: ;call    update_caption
  614.         xor     eax,eax
  615.         mov     [bot_mode],al
  616.         mov     [bot_dlg_height],eax
  617.         call    drawwindow
  618.         ret
  619.  
  620.   btn.bot.no:
  621.         xor     eax,eax
  622.         mov     [bot_mode],al
  623.         mov     [bot_dlg_height],eax
  624.         mov     [s_status],eax
  625.         call    drawwindow
  626.         cmp     [main_closing],0
  627.         je      @f
  628.         add     [exit_tab_item],sizeof.TABITEM
  629.         jmp     key.alt_x.direct
  630.         ret
  631.     @@: call    key.ctrl_f4.close
  632.         ret
  633.  
  634.   btn.bot.find:
  635.         movzx   ecx,[tb_find.length]
  636.         mov     [s_search.size],ecx
  637.         mov     esi,tb_find.text
  638.         mov     edi,s_search
  639.         cld
  640.         rep     movsb
  641.  
  642.         cmp     [bot_mode2],0
  643.         je      @f
  644.         call    search
  645.         jnc     .found
  646.         call    editor_check_for_changes
  647.         ret
  648.  
  649.   .found:
  650.         push    [copy_size] [copy_count] [copy_buf]
  651.  
  652.         movzx   eax,[tb_replace.length]
  653.         add     eax,10
  654.         stdcall mem.Alloc,eax
  655.         mov     [copy_buf],eax
  656.  
  657.         movzx   eax,[tb_replace.length]
  658.         mov     esi,tb_replace.text
  659.         mov     edi,[copy_buf]
  660.         stosd
  661.         mov     ecx,eax
  662.         jecxz   .lp1
  663.         rep     movsb
  664.   .lp1: add     eax,4
  665.         mov     [copy_size],eax
  666.         mov     [copy_count],1
  667.  
  668.         push    [cur_editor.SelStart.X]
  669.         mov     ebp,cur_editor
  670.         call    init_sel_vars
  671.         call    key.ctrl_v
  672.         pop     [cur_editor.SelStart.X]
  673.  
  674.         stdcall mem.Free,[copy_buf]
  675.  
  676.         pop     [copy_buf] [copy_count] [copy_size]
  677.  
  678.         call    editor_check_for_changes
  679.         ret
  680.     @@: xor     eax,eax
  681.         mov     [bot_mode],al
  682.         mov     [bot_dlg_height],eax
  683.         call    key.f3
  684.         call    drawwindow
  685.         ret
  686.  
  687.   btn.bot.appearance:
  688.     @@: xor     eax,eax
  689.         mov     [bot_mode],al
  690.         mov     [bot_dlg_height],eax
  691.         call    optsdlg_handler.xchg_colors
  692.         mov     al,[tabs_pos]
  693.         mov     [tab_bar.Style],al
  694.  
  695.         stdcall save_settings
  696.         call    drawwindow
  697.         ret
  698.  
  699. tabpos_round db 4,3,1,2
  700.  
  701.   btn.bot.tabpos:
  702.         movzx   eax,[tabs_pos]
  703.         mov     al,[tabpos_round+eax-1]
  704.         mov     [tabs_pos],al
  705.     @@: call    optsdlg_handler.draw_tabpos
  706.         ret
  707.