Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

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