Subversion Repositories Kolibri OS

Rev

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

  1.     use32
  2.     org     0x0
  3. ;-------------------------------------------------------------------------------
  4.     db      "MENUET01"
  5.     dd      1, @code, @data, @mem, @stack, 0, 0
  6. ;-------------------------------------------------------------------------------
  7.     include "../../macros.inc"
  8. ;===============================================================================
  9. @code:
  10.     mov     [tabs.index], byte 2
  11.  
  12.     mcall   48, 3, color, 40
  13. ;-------------------------------------------------------------------------------
  14. main_loop:
  15.     mcall   10
  16.     cmp     eax, EV_REDRAW
  17.     je      event_redraw
  18.     cmp     eax, EV_BUTTON
  19.     je      event_button
  20.  
  21.     jmp     main_loop
  22. ;-------------------------------------------------------------------------------
  23. exit:
  24.     mcall   -1
  25. ;-------------------------------------------------------------------------------
  26. event_redraw:
  27.     call    win.draw
  28.     jmp     main_loop
  29. ;-------------------------------------------------------------------------------
  30. event_button:
  31.     mcall   17
  32.     cmp     ah, 0x01
  33.     je      exit
  34.     cmp     ah, 0x10
  35.     je      .tabs.walls
  36.     cmp     ah, 0x11
  37.     je      .tabs.skins
  38.     cmp     ah, 0x12
  39.     je      .tabs.docky
  40.     cmp     ah, 0x13
  41.     je      .tabs.panel
  42.  
  43.     cmp     ah, 0x44
  44.     je      .checkbox_fsize
  45.  
  46.     jmp     main_loop
  47.  
  48.  .tabs.walls:
  49.     mov     [tabs.index], byte 0
  50.     call    win.draw
  51.     jmp     main_loop
  52.  .tabs.skins:
  53.     mov     [tabs.index], byte 1
  54.     call    win.draw
  55.     jmp     main_loop
  56.  .tabs.docky:
  57.     mov     [tabs.index], byte 2
  58.     call    win.draw
  59.     jmp     main_loop
  60.  .tabs.panel:
  61.     mov     [tabs.index], byte 3
  62.     call    win.draw
  63.     jmp     main_loop
  64.  
  65.  .checkbox_fsize:
  66.     mov     al, 1
  67.     sub     al, byte [win.docky.fsize]
  68.     mov     [win.docky.fsize], al
  69.     push    183
  70.     push    win.docky.fsize
  71.     call    checkbox.draw
  72.     jmp     main_loop
  73. ;-------------------------------------------------------------------------------
  74. win.draw:
  75.     mcall   12, 1
  76.  
  77.     mov     edx, [color.work]
  78.     or      edx, 0x34000000
  79.     mcall   0, <128, 256>, <128, 299>, , , win.title
  80.  
  81.     call    tabs.draw
  82.  
  83.     mcall   12, 2
  84.  
  85.     ret
  86. ;-------------------------------------------------------------------------------
  87. tabs.draw:
  88.     mcall    8, <  8,  57>, < 9, 25>, 0x40000010
  89.     mcall     , < 65,  57>,         , 0x40000011
  90.     mcall     , <122,  57>,         , 0x40000012
  91.     mcall     , <179,  58>,         , 0x40000013
  92.  
  93.     mcall   13, <  9, 228>,         , [color.work]
  94.  
  95.     mcall     ,           , < 9,  1>, [color.workE]
  96.     mcall     ,           , <34,  1>
  97.     mcall     , <  8,   1>, <10, 24>
  98.     mcall     , < 65,   1>
  99.     mcall     , <122,   1>
  100.     mcall     , <179,   1>
  101.     mcall     , <237,   1>
  102.  
  103.     mov     edx, [color.workE]
  104.  
  105.     cmp     [tabs.index], byte 0
  106.     je      .walls
  107.     cmp     [tabs.index], byte 1
  108.     je      .skins
  109.     cmp     [tabs.index], byte 2
  110.     je      .docky
  111.     jmp     .panel
  112.  
  113.  .walls:
  114.     mcall     , <  9,  56>
  115.  
  116.     mcall   4, < 22, 18>, [color.textE], tabs.walls_title, 5
  117.     mcall    , < 79, 18>, [color.text] , tabs.skins_title
  118.     mcall    , <136, 18>,              , tabs.docky_title
  119.     mcall    , <193, 18>,              , tabs.panel_title
  120.  
  121.     call    tabs.walls.draw
  122.  
  123.     ret
  124.  .skins:
  125.     mcall     , < 66,  56>
  126.  
  127.     mcall   4, < 79, 18>, [color.textE], tabs.skins_title, 5
  128.     mcall    , < 22, 18>, [color.text] , tabs.walls_title
  129.     mcall    , <136, 18>,              , tabs.docky_title
  130.     mcall    , <193, 18>,              , tabs.panel_title
  131.  
  132.     call    tabs.skins.draw
  133.  
  134.     ret
  135.  .docky:
  136.     mcall     , <123,  56>
  137.  
  138.     mcall   4, <136, 18>, [color.textE], tabs.docky_title, 5
  139.     mcall    , < 79, 18>, [color.text] , tabs.skins_title
  140.     mcall    , < 22, 18>,              , tabs.walls_title
  141.     mcall    , <193, 18>,              , tabs.panel_title
  142.  
  143.     call    tabs.docky.draw
  144.  
  145.     ret
  146.  .panel:
  147.     mcall     , <180,  57>
  148.  
  149.     mcall   4, <193, 18>, [color.textE], tabs.panel_title, 5
  150.     mcall    , < 79, 18>, [color.text] , tabs.skins_title
  151.     mcall    , <136, 18>,              , tabs.docky_title
  152.     mcall    , < 22, 18>,              , tabs.walls_title
  153.  
  154.     call    tabs.panel.draw
  155.  
  156.     ret
  157. ;-------------------------------------------------------------------------------
  158. tabs.walls.draw:
  159.     ret
  160. ;-------------------------------------------------------------------------------
  161. tabs.skins.draw:
  162.     ret
  163. ;-------------------------------------------------------------------------------
  164. tabs.docky.draw:
  165.   ; == FRAME: POSITION == ;
  166.     mcall   13, <10, 226>, <48, 112>, [color.workE]
  167.     mcall     , <11, 224>, <49, 110>, [color.textE]
  168.     mcall     , <12, 222>, <50, 108>, [color.work]
  169.  
  170.     mov     ecx, [color.text]
  171.     or      ecx, 0xC0000000
  172.     mcall   4, <20, 45>, , tabs.docky.frame_pos_title, , [color.work]
  173.  
  174.     mcall   8, < 81, 84>, < 64, 24>, 0x40, [color.workE]
  175.     mcall    , < 58, 64>, < 91, 24>, 0x41
  176.     mcall    , <125, 64>, < 91, 24>, 0x42
  177.     mcall    , < 81, 84>, <118, 24>, 0x43
  178.  
  179.     mov     ecx, [color.textE]
  180.     or      ecx, 0x80000000
  181.     mcall   4, <115,  73>, , tabs.docky.button_top
  182.     mcall    , < 79, 100>, , tabs.docky.button_left
  183.     mcall    , <106, 127>, , tabs.docky.button_bottom
  184.     mcall    , <143, 100>, , tabs.docky.button_right
  185.  
  186.   ; == FRAME: SETTINGS == ;
  187.     mcall   13, <10, 226>, <170, 40>, [color.workE]
  188.     mcall     , <11, 224>, <171, 38>, [color.textE]
  189.     mcall     , <12, 222>, <172, 36>, [color.work]
  190.  
  191.     mov     ecx, [color.text]
  192.     or      ecx, 0xC0000000
  193.     mcall   4, <20, 167>, , tabs.docky.frame_set_title, , [color.work]
  194.  
  195.     mcall   8, <20, 206>, <182, 16>, 0x60000044
  196.  
  197.     mov     ecx, [color.text]
  198.     or      ecx, 0x80000000
  199.     mcall   4, <20, 187>, , tabs.docky.checkbox_fsize_title
  200.  
  201.     push    183
  202.     push    win.docky.fsize
  203.     call    checkbox.draw
  204.  
  205.   ; == FRAME: THEARD == ;
  206.     mcall   13, <10, 226>, <220, 44>, [color.workE]
  207.     mcall     , <11, 224>, <221, 42>, [color.textE]
  208.     mcall     , <12, 222>, <222, 40>, [color.work]
  209.  
  210.     mov     ecx, [color.text]
  211.     or      ecx, 0xC0000000
  212.     mcall   4, <20, 217>, , tabs.docky.frame_theard_title, , [color.work]
  213.  
  214.     mcall   8, < 20,  98>, <230, 24>, 0x45, [color.workE]
  215.     mcall   8, <128,  98>,          , 0x46
  216.  
  217.     mov     ecx, [color.textE]
  218.     or      ecx, 0x80000000
  219.     mcall   4, < 54,  238>, , tabs.docky.button_close
  220.     mcall    , <139,  238>, , tabs.docky.button_start
  221.  
  222.     ret
  223. ;-------------------------------------------------------------------------------
  224. tabs.panel.draw:
  225.     ret
  226. ;-------------------------------------------------------------------------------
  227. checkbox.draw:
  228.     pop     ebp
  229.     pop     edi
  230.     pop     ecx
  231.     push    ebp
  232.  
  233.     shl     ecx, 16
  234.     mov     cx, 16
  235.     mcall   13, <188, 34>, , [color.workE]
  236.     sub     ecx, 2
  237.     add     ecx, 0x00010000
  238.     mcall     , <189, 32>, , [color.textE]
  239.  
  240.     mov     eax, 13
  241.     mov     edx, [color.workE]
  242.     cmp     [edi], byte 0
  243.     je      .draw_off
  244.  .draw_on:
  245.     mcall   , <189, 6>
  246.     mov     edi, ecx
  247.     shr     edi, 16
  248.     add     edi, 3
  249.     mcall   4, <189, edi>, [color.text], checkbox.on, 5
  250.  
  251.     ret
  252.  
  253.  .draw_off:
  254.     mov     edx, [color.work]
  255.     mcall   , <215, 6>
  256.     mov     edi, ecx
  257.     shr     edi, 16
  258.     add     edi, 3
  259.     mcall   4, <189, edi>, [color.text], checkbox.off, 5
  260.     ret
  261. ;===============================================================================
  262. win.title:
  263.     db      "Desktop configuration", 0
  264.  
  265. tabs.walls_title:
  266.     db      "Walls"
  267. tabs.skins_title:
  268.     db      "Skins"
  269. tabs.docky_title:
  270.     db      "Docky"
  271. tabs.panel_title:
  272.     db      "Panel"
  273.  
  274. tabs.docky.frame_pos_title:
  275.     db      " Position ", 0
  276. tabs.docky.button_top:
  277.     db      "TOP", 0
  278. tabs.docky.button_left:
  279.     db      "LEFT", 0
  280. tabs.docky.button_bottom:
  281.     db      "BOTTOM", 0
  282. tabs.docky.button_right:
  283.     db      "RIGHT", 0
  284.  
  285. tabs.docky.frame_set_title:
  286.     db      " Settings ", 0
  287. tabs.docky.checkbox_fsize_title:
  288.     db      "Full size mode", 0
  289.  
  290. tabs.docky.frame_theard_title:
  291.     db      " Theard ", 0
  292. tabs.docky.button_close:
  293.     db      "Close", 0
  294. tabs.docky.button_start:
  295.     db      "Start/Restart", 0
  296.  
  297.  
  298. checkbox.on:
  299.     db      "  ON "
  300. checkbox.off:
  301.     db      " OFF "
  302.  
  303. @data:
  304. ;===============================================================================
  305.     rb      2048
  306. @stack:
  307. ;-------------------------------------------------------------------------------
  308. win.docky.fsize:
  309.     rb      1
  310.  
  311. tabs.index:
  312.     rb      1
  313.  
  314. color:
  315.  .frame:
  316.     rd      5
  317.  .work:
  318.     rd      1
  319.  .workE:
  320.     rd      1
  321.  .textE:
  322.     rd      1
  323.  .text:
  324.     rd      2
  325.  
  326. @mem: