Subversion Repositories Kolibri OS

Rev

Rev 675 | Blame | Last modification | View Log | Download | RSS feed

  1. ;**********************************************************************
  2. ; library of Graphics Universal Interface for Kolibri operation system
  3. ;
  4. ; version 071119
  5. ; 2007 year
  6. ;
  7. ;autors:
  8. ;
  9. ;andrew_programmer  polynki@mail.ru
  10. ;
  11. ;menegement of controls : destroy_control, send_message,move_component
  12. ;                         resize_component,activate_trap_for_specialized_message
  13. ;GUI components : button,scroller,Bookmark,text,image,number,progres_bar
  14. ;
  15. ;<Lrz> and Maxxxx32
  16. ;
  17. ;GUI components : CheckBox,EditBox
  18. ;
  19. ;**********************************************************************
  20.  
  21. format MS COFF
  22.  
  23. public EXPORTS
  24.  
  25. control_header_size = 44
  26.  
  27. border_width        = 5
  28.  
  29. activate_trap       = 01000000b
  30. deactivate_trap     = 10111111b
  31.  
  32. section '.flat' code readable align 16
  33.  
  34.      include 'macros.inc'
  35.      include 'debug.inc'
  36.  
  37.      ;GUI components
  38.  
  39.      include 'button.inc'
  40.  
  41.      include 'scroller.inc'
  42.  
  43.      include 'bookmark.inc'
  44.  
  45.      include 'image.inc'
  46.  
  47.      include 'text.inc'
  48.  
  49.      include 'number.inc'
  50.  
  51.      include 'check_box.inc'
  52.  
  53.      include 'edit_box.inc'
  54.  
  55.      include 'progress_bar.inc'
  56.  
  57.      ;engen of libGUI(menegment of controls)
  58.  
  59.      include 'menegment_of_controls.inc'
  60.  
  61.      ;functions which proved work of GUI components
  62.  
  63.      include 'draw.inc'
  64.  
  65.      include 'string.inc'
  66.  
  67.      include 'check_crossing_box.inc'
  68.  
  69.      include 'memory.inc'
  70.  
  71.      ;function for get version of library
  72.      include 'version.inc'
  73.  
  74.      ;function for resize GUI component
  75.      include 'resize_component.inc'
  76.  
  77.      ;function for move GUI component
  78.      include 'move_component.inc'
  79.  
  80.      ;function for activate trap for specialized messages
  81.      include 'activate_trap.inc'
  82.  
  83. align 16
  84. EXPORTS:
  85.                    dd szDestroyControl,destroy_control
  86.                    dd szSendMessage,send_message
  87.                    dd szVersion,get_version
  88.                    dd szResizeComponent,resize_component
  89.                    dd szMoveComponent,move_component
  90.                    dd szActivateTrap,activate_trap_for_specialized_message
  91.                    dd szcraeteButton,craete_button
  92.                    dd szcraeteScroller,craete_scroller
  93.                    dd szcraeteBookmark,craete_Bookmark
  94.                    dd szcraeteImage,craete_image
  95.                    dd szcraeteText,craete_text
  96.                    dd szcraeteNumber,craete_number
  97.                    dd szcraeteCheckBox,craete_check_box
  98.                    dd szcraeteEditBox,craete_edit_box
  99.                    dd szcraeteProgressBar,craete_progress_bar
  100.                    dd 0,0
  101.  
  102. szDestroyControl    db 'DestroyControl',0
  103. szSendMessage       db 'SendMessage',0
  104. szVersion           db 'Version',0
  105. szResizeComponent   db 'ResizeComponent',0
  106. szMoveComponent     db 'MoveComponent',0
  107. szActivateTrap      db 'ActivateTrapForSpecializedMessage',0
  108. szcraeteButton      db 'CraeteButton',0
  109. szcraeteScroller    db 'CraeteScroller',0
  110. szcraeteBookmark    db 'CraeteBookmark',0
  111. szcraeteImage       db 'CraeteImage',0
  112. szcraeteText        db 'CraeteText',0
  113. szcraeteNumber      db 'CraeteNumber',0
  114. szcraeteCheckBox    db 'CraeteCheckbox',0
  115. szcraeteEditBox     db 'CraeteEditbox',0
  116. szcraeteProgressBar db 'CraeteProgressbar',0
  117.  
  118. section '.data' data readable writable align 16
  119. ;************************************************
  120. ;******************DLL DATA**********************
  121. ;************************************************
  122.  
  123. point       db '.',0
  124. signum      db '-',0
  125.  
  126. BitsPerPixel              rd 1
  127. BytesPerString            rd 1
  128. WindowCoordinatX          rd 1
  129. WindowCoordinatY          rd 1
  130. WindowSizeX               rd 1
  131. WindowSizeY               rd 1
  132.  
  133. PointerToMem              rd 1
  134. offset                    rd 1
  135.  
  136. v                         rd 1
  137. v2                        rd 1
  138. v3                        rd 1
  139.  
  140. r_min                     rb 1
  141. r_max                     rb 1
  142. g_min                     rb 1
  143. g_max                     rb 1
  144. b_min                     rb 1
  145. b_max                     rb 1
  146. r                         rb 1
  147. g                         rb 1
  148. b                         rb 1
  149. r_f                       rd 1
  150. g_f                       rd 1
  151. b_f                       rd 1
  152. step_r                    rd 1
  153. step_g                    rd 1
  154. step_b                    rd 1
  155. length                    rd 1
  156. length2                   rd 1
  157. Color                     rd 1
  158. AveregeColor              rd 1
  159.  
  160. line_coordinat_x          rd 1
  161. line_coordinat_y          rd 1
  162. line_size_x               rd 1
  163. line_size_y               rd 1
  164. line_size_y_f             rd 1
  165.  
  166. x                         rd 1
  167. y                         rd 1
  168. xo                        rd 1
  169. yo                        rd 1
  170. x_ctl                     rd 1
  171. y_ctl                     rd 1
  172.  
  173. ;ReturnAddresButton        rd 1
  174. ;ReturnAddresScroller      rd 1
  175. ;ReturnAddresBookmark      rd 1
  176. ;ReturnAddresImage         rd 1
  177. ;ReturnAddresText          rd 1
  178. ;ReturnAddresNumber        rd 1
  179. ;ReturnAddresCheckBox      rd 1
  180. ;ReturnAddresEditBox       rd 1
  181. ;ReturnAddresProgressBar   rd 1
  182.  
  183. Button_Flag               rb 1
  184.  
  185. Scrollersize              rd 1
  186. ControlID                 rd 1
  187. Message                   rd 4
  188. Parend                    rd 1
  189. Control                   rd 1
  190. ReturnControl             rd 1
  191. PointerToControl          rd 1
  192. ActiveControl             rd 1
  193. ActiveControlForKeys      rd 1
  194. ButtonsOfMouse            rd 1
  195.  
  196. PointerToStructureForBookmark    rd 1
  197. ParendForBookmark                rd 1
  198. PointerToStructureForButton      rd 1
  199. ParendForButton                  rd 1
  200. PointerToStructureForScroller    rd 1
  201. ParendForScroller                rd 1
  202. PointerToStructureForImage       rd 1
  203. PointerToStructureForText        rd 1
  204. PointerToStructureForNumber      rd 1
  205. PointerToStructureForCheckBox    rd 1
  206. PointerToStructureForEditBox     rd 1
  207. PointerToStructureForProgressBar rd 1
  208.  
  209. PointerForButton                rd 1
  210. PointerForScroller              rd 1
  211. PointerForBookmark              rd 1
  212. PointerForImage                 rd 1
  213. PointerForText                  rd 1
  214. PointerForNumber                rd 1
  215. PointerForCheckBox              rd 1
  216. PointerForEditBox               rd 1
  217. PointerForProgressBar           rd 1
  218.  
  219. ChisloZakladok                  rd 1
  220.  
  221. integer_part                    rd 1
  222. float_part                      rd 1
  223. tochnost1                       rd 1
  224. tochnost2                       rd 1
  225. signum_float_number             rb 1
  226.  
  227. skin_height                     rd 1
  228.  
  229. ;*********************************
  230. ;**********GUI structures*********
  231. ;*********************************
  232.  
  233. ;struc CONTROL
  234. ;{
  235. ; .ctrl_proc        rd 0  ;0
  236. ; .ctrl_fd          rd 0  ;4
  237. ; .ctrl_bk          rd 0  ;8
  238. ; .child_fd         rd 0  ;12
  239. ; .child_bk         rd 0  ;16
  240. ; .parend           rd 0  ;20
  241. ; .x                rd 0  ;24
  242. ; .y                rd 0  ;28
  243. ; .sizex            rd 0  ;32
  244. ; .sizey            rd 0  ;36
  245. ; .ID               rd 0  ;40
  246. ;}
  247.  
  248. struc BUTTON
  249. {
  250.  .ctrl_proc        rd 1
  251.  .ctrl_fd          rd 1
  252.  .ctrl_bk          rd 1
  253.  .child_fd         rd 1
  254.  .child_bk         rd 1
  255.  .parend           rd 1
  256.  .ctrl_x           rd 1
  257.  .ctrl_y           rd 1
  258.  .ctrl_sizex       rd 1
  259.  .ctrl_sizey       rd 1
  260.  .ctrl_ID          rd 1
  261.  
  262.  .type             rb 1
  263.  .flag             rb 1
  264.  .x                rw 1
  265.  .y                rw 1
  266.  .width            rw 1
  267.  .height           rw 1
  268.  .image            rd 1
  269.  .imageX           rw 1
  270.  .imageY           rw 1
  271.  .imageSizeX       rw 1
  272.  .imageSizeY       rw 1
  273.  .transparentColor rd 1
  274.  .text             rd 1
  275.  .textX            rw 1
  276.  .textY            rw 1
  277.  .textcolor        rd 1
  278.  .color1           rd 1
  279.  .color2           rd 1
  280.  .mouseX           rw 1
  281.  .mouseY           rw 1
  282. }
  283.  
  284. struc SCROLLER
  285. {
  286.  .ctrl_proc        rd 1
  287.  .ctrl_fd          rd 1
  288.  .ctrl_bk          rd 1
  289.  .child_fd         rd 1
  290.  .child_bk         rd 1
  291.  .parend           rd 1
  292.  .ctrl_x           rd 1
  293.  .ctrl_y           rd 1
  294.  .ctrl_sizex       rd 1
  295.  .ctrl_sizey       rd 1
  296.  .ctrl_ID          rd 1
  297.  
  298.  .type             rb 1
  299.  .x                rw 1
  300.  .y                rw 1
  301.  .length           rw 1
  302.  .color1           rd 1
  303.  .size             rd 1
  304.  .pos              rd 1
  305.  .buttons_flags    rw 1
  306.  .ChildButton1     rd 1
  307.  .ChildButton2     rd 1
  308.  .mouseX           rw 1
  309.  .mouseY           rw 1
  310. }
  311.  
  312. ;********************************
  313. ;*********Child Buttons**********
  314. ;********************************
  315. struc CHILDBUTTON
  316. {
  317.  .type             rb 1
  318.  .flag             rb 1
  319.  .x                rw 1
  320.  .y                rw 1
  321.  .width            rw 1
  322.  .height           rw 1
  323.  .image            rd 1
  324.  .imageX           rw 1
  325.  .imageY           rw 1
  326.  .imageSizeX       rw 1
  327.  .imageSizeY       rw 1
  328.  .transparentColor rd 1
  329.  .text             rd 1
  330.  .textX            rw 1
  331.  .textY            rw 1
  332.  .textcolor        rd 1
  333.  .color1           rd 1
  334.  .color2           rd 1
  335.  .mouseX           rw 1
  336.  .mouseY           rw 1
  337. }
  338.  
  339. struc BOOKMARK
  340. {
  341.  .type                          rb 1
  342.  .flag                          rb 1
  343.  .x                             rd 1
  344.  .y                             rd 1
  345.  .sizex                         rd 1
  346.  .sizey                         rd 1
  347.  .color1                        rd 1
  348.  .reserved                      rd 1
  349.  .color2                        rd 1
  350.  
  351.  .FullBookmarkSizeX             rd 1
  352.  .BookmarkSizeX                 rd 1
  353.  .PointerToTextForBookmark      rd 1
  354.  .BookmarkX                     rd 1
  355.  .BookmarkY                     rd 1
  356.  .ChildButtonsForBookmark       rd 1
  357.  .CounterChildButtons           rd 1
  358.  .ChisloZakladok                rd 1
  359.  .ChisloStrokeZakladok          rd 1
  360.  .MessageForChildButton         rd 5
  361.  .ChildControlForBookmark       rd 1
  362.  .NumberBookmarksInActiveString rd 1
  363.  .NumberBookmarksInEndString    rd 1
  364.  .PointerToActiveBookmarks      rd 1
  365.  .PointerToEndBookmarks         rd 1
  366.  .BookmarkFlag                  rb 1
  367.  .y_end_stroke                  rd 1
  368.  
  369.  .CounterChildControls          rd 1
  370.  .ActiveChildControl            rd 1
  371.  .AddresOfActiveChildControl    rd 1
  372.  .MouseX                        rd 1
  373.  .MouseY                        rd 1
  374.  
  375.  .DefectSizeX                   rd 1
  376.  .ControlAddres                 rd 1
  377.  
  378.  .counter1                      rd 1
  379.  .counter2                      rd 1
  380.  
  381.  .NumberActiveControl           rd 1
  382.  
  383.  .WorkPlace_x                   rd 1
  384.  .WorkPlace_y                   rd 1
  385.  .WorkPlace_sizex               rd 1
  386.  .WorkPlace_sizey               rd 1
  387.  .WorkPlace_windowx             rd 1
  388.  .WorkPlace_windowsizex         rd 1
  389.  
  390. }
  391.  
  392. struc IMAGE
  393. {
  394.  .type                          rb 1
  395.  .flag                          rb 1
  396.  .color                         rd 1
  397.  .x                             rd 1
  398.  .y                             rd 1
  399.  .sizex                         rd 1
  400.  .sizey                         rd 1
  401.  .pointer                       rd 1
  402. }
  403.  
  404. struc TEXT
  405. {
  406.  .type                          rb 1
  407.  .flag                          rb 1
  408.  .color                         rd 1
  409.  .x                             rd 1
  410.  .y                             rd 1
  411.  .length                        rd 1
  412.  .pointer                       rd 1
  413.  .background_color              rd 1
  414. }
  415.  
  416. struc NUMBER
  417. {
  418.   .type                         rb 1
  419.   .flag                         rb 1
  420.   .color                        rd 1
  421.   .x                            rd 1
  422.   .y                            rd 1
  423.   .number                       rd 1
  424.   .parameters                   rd 1
  425. }
  426.  
  427. struc CHECKBOX
  428. {
  429.  .ch_flags                      rw 1
  430.  .ch_left                       rw 1
  431.  .ch_top                        rw 1
  432.  .ch_text_margin                rd 1
  433.  .ch_size                       rd 1
  434.  .ch_size_2                     rw 1
  435.  .ch_size_3                     rw 1
  436.  .ch_color                      rd 1
  437.  .ch_border_color               rd 1
  438.  .ch_text_color                 rd 1
  439.  .ch_text_ptr                   rd 1
  440.  .ch_text_length                rw 1
  441.  .mouseX                        rd 1
  442.  .mouseY                        rd 1
  443. }
  444.  
  445. struc EDITBOX
  446. {
  447.  .ed_width                      rd 1
  448.  .ed_left                       rd 1
  449.  .ed_top                        rd 1
  450.  .ed_color                      rd 1
  451.  .shift_color                   rd 1
  452.  .ed_focus_border_color         rd 1
  453.  .ed_blur_border_color          rd 1
  454.  .ed_text_color                 rd 1
  455.  .ed_max                        rd 1
  456.  .ed_text                       rd 1
  457.  .ed_flags                      rw 1
  458.  .ed_size                       rd 1
  459.  .ed_pos                        rd 1
  460.  .ed_offset                     rd 1
  461.  .cl_curs_x                     rd 1
  462.  .cl_curs_y                     rd 1
  463.  .ed_shift_pos                  rd 1
  464.  .ed_shift_pos_old              rd 1
  465.  .ed_height                     rd 1
  466.  .mouseX                        rd 1
  467.  .mouseY                        rd 1
  468. }
  469.  
  470. struc PROGRESSBAR
  471. {
  472.  .type                          rb 1
  473.  .flag                          rb 1
  474.  .color1                        rd 1
  475.  .color2                        rd 1
  476.  .x                             rd 1
  477.  .y                             rd 1
  478.  .sizex                         rd 1
  479.  .sizey                         rd 1
  480.  .progress                      rd 1
  481.  .color3                        rd 1
  482. }
  483.  
  484. ;********************************
  485. ;*Graphics primitives structures*
  486. ;********************************
  487. struc LINE
  488. {
  489.  .x1               rd 1
  490.  .y1               rd 1
  491.  .x2               rd 1
  492.  .y2               rd 1
  493.  .color            rd 1
  494. }
  495.  
  496. struc PIXEL
  497. {
  498.  .x                rd 1
  499.  .y                rd 1
  500.  .color            rd 1
  501. }
  502.  
  503. struc FONT1
  504. {
  505.  .sizeX            rd 6
  506.  .sizeY            rd 9
  507.  .x                rd 1
  508.  .y                rd 1
  509. }
  510.  
  511. struc RECTANGLE
  512. {
  513.  .x                rd 1
  514.  .y                rd 1
  515.  .width            rd 1
  516.  .height           rd 1
  517.  .color            rd 1
  518. }
  519.  
  520. struc SCROLLBAR
  521. {
  522.  .x                rd 1
  523.  .y                rd 1
  524. }
  525.  
  526. Line               LINE
  527. Pixel              PIXEL
  528. Font               FONT1
  529. Rectangle          RECTANGLE
  530. ScrollBar          SCROLLBAR
  531. ChildButton        CHILDBUTTON
  532.  
  533. Button             BUTTON
  534. Scroller           SCROLLER
  535. Bookmark           BOOKMARK
  536. Image              IMAGE
  537. Text               TEXT
  538. Number             NUMBER
  539. CheckBox           CHECKBOX
  540. EditBox            EDITBOX
  541. ProgressBar        PROGRESSBAR
  542.  
  543. pointer                   rd 50
  544. pointer2                  rd 13
  545. IPC_table  process_information;               rb 1024
  546. colors_table1             rd 15
  547. colors_table2             rd 15
  548.  
  549.