Subversion Repositories Kolibri OS

Rev

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

  1. //BOX_LIB - Asper
  2. #ifndef INCLUDE_BOX_LIB_H
  3. #define INCLUDE_BOX_LIB_H
  4.  
  5. #ifndef INCLUDE_KOLIBRI_H
  6. #include "../lib/kolibri.h"
  7. #endif
  8.  
  9. #ifndef INCLUDE_DLL_H
  10. #include "../lib/dll.h"
  11. #endif
  12.  
  13. dword boxlib = #aEdit_box_lib;
  14. char aEdit_box_lib[]="/sys/lib/box_lib.obj";
  15.  
  16. dword box_lib_init   = #aboxlib_init;
  17.  
  18. dword edit_box_draw     = #aEdit_box_draw;
  19. dword edit_box_key      = #aEdit_box_key;
  20. dword edit_box_mouse    = #aEdit_box_mouse;
  21. dword edit_box_set_text = #aEdit_box_set_text;
  22. dword version_ed        = #aVersion_ed;
  23.  
  24. dword scrollbar_v_draw  = #aScrollbar_v_draw;
  25. dword scrollbar_v_mouse = #aScrollbar_v_mouse;
  26. dword scrollbar_h_draw  = #aScrollbar_h_draw;
  27. dword scrollbar_h_mouse = #aScrollbar_h_mouse;
  28. dword version_scrollbar = #aVersion_scrollbar;
  29.  
  30. dword PathShow_prepare  = #aPathShow_prepare;
  31. dword PathShow_draw     = #aPathShow_draw;
  32.  
  33. dword progressbar_draw = #aProgressbar_draw;
  34. dword progressbar_progress = #aProgressbar_progress;
  35.  
  36. dword frame_draw = #aFrame_draw;
  37.  
  38. $DD 2 dup 0
  39.  
  40. char aEdit_box_draw []    = "edit_box";
  41. char aEdit_box_key  []    = "edit_box_key";
  42. char aEdit_box_mouse[]    = "edit_box_mouse";
  43. char aEdit_box_set_text[] = "edit_box_set_text";
  44. char aVersion_ed    []    = "version_ed";
  45.  
  46. char aboxlib_init[]        = "lib_init";
  47. char aScrollbar_v_draw [] = "scrollbar_v_draw";
  48. char aScrollbar_v_mouse[] = "scrollbar_v_mouse";
  49. char aScrollbar_h_draw [] = "scrollbar_h_draw";
  50. char aScrollbar_h_mouse[] = "scrollbar_h_mouse";
  51. char aVersion_scrollbar[] = "version_scrollbar";
  52.  
  53. char aPathShow_prepare [] = "PathShow_prepare";
  54. char aPathShow_draw    [] = "PathShow_draw";
  55.  
  56. char aProgressbar_draw  [] = "progressbar_draw";
  57. char aProgressbar_progress[] = "progressbar_progress";
  58.  
  59. char aFrame_draw[] = "frame_draw";
  60.  
  61.  
  62. struct PathShow_data
  63. {
  64. dword type;
  65. word start_y,
  66.         start_x,
  67.         font_size_x,    // 6 - for font 0, 8 - for font 1
  68.         area_size_x;
  69. dword font_number,  // 0 - monospace, 1 - variable
  70.         background_flag,
  71.         font_color,
  72.         background_color,
  73.         text_pointer,
  74.         work_area_pointer,
  75.         temp_text_length;
  76. };
  77. /*
  78. char temp[128];
  79. PathShow_data PathShow = {0, 100,20, 6, 200, 0, 1, 0x0, 0xFFFfff, #email_text, #temp, 0};
  80. PathShow_prepare stdcall(#PathShow);
  81. PathShow_draw stdcall(#PathShow);
  82. */
  83.  
  84. //editbox flags
  85. #define ed_pass                        1b
  86. #define ed_focus                      10b   //focused
  87. #define ed_shift                     100b   //flag is set when Shift is pressed
  88. #define ed_shift_on                 1000b
  89. #define ed_shift_bac               10000b   //bif for Shift reset, if set the smth is selected
  90. #define ed_left_fl                100000b
  91. #define ed_offset_fl             1000000b
  92. #define ed_insert               10000000b
  93. #define ed_mouse_on            100000000b
  94. #define ed_mous_adn_b          100011000b
  95. #define ed_always_focus  100000000000000b
  96. #define ed_figure_only  1000000000000000b   //numbers only
  97. #define ed_shift_cl     1111111111100011b
  98. #define ed_shift_mcl    1111111111111011b
  99. #define ed_shift_off    1111111111111011b
  100. #define ed_shift_on_off 1111111111110111b
  101. #define ed_shift_bac_cl 1111111111101111b
  102. #define ed_right_fl     1111111111011111b
  103. #define ed_offset_cl    1111111110111111b
  104. #define ed_insert_cl    1111111101111111b
  105. #define ed_mouse_on_off 1111111011111111b
  106.  
  107. struct edit_box{
  108. dword width,
  109.         left,
  110.         top,
  111.         color,
  112.         shift_color,
  113.         focus_border_color,
  114.         blur_border_color,
  115.         text_color,
  116.         max,
  117.         text,
  118.         mouse_variable,
  119.         flags,
  120.         size,
  121.         pos,
  122.         offset,
  123.         cl_curs_x,
  124.         cl_curs_y,
  125.         shift,
  126.         shift_old,
  127.         ed_height,
  128.         ed_char_width;
  129. };
  130.  
  131. struct scroll_bar
  132. {
  133.         word size_x,
  134.         start_x,
  135.         size_y,
  136.         start_y;
  137.         dword btn_height,
  138.         type,
  139.         max_area,
  140.         cur_area,
  141.         position,
  142.         bckg_col,
  143.         frnt_col,
  144.         line_col,
  145.         redraw;
  146.         word delta,
  147.         delta2,
  148.         r_size_x,
  149.         r_start_x,
  150.         r_size_y,
  151.         r_start_y;
  152.         dword m_pos,
  153.         m_pos_2,
  154.         m_keys,
  155.         run_size,
  156.         position2,
  157.         work_size,
  158.         all_redraw,
  159.         ar_offset;
  160. };
  161.  
  162. struct progress_bar
  163. {
  164.   dword
  165.         value,
  166.         left,
  167.         top,
  168.         width,
  169.         height,
  170.         style,
  171.         min,
  172.         max,
  173.         back_color,
  174.         progress_color,
  175.         frame_color;
  176. };
  177.  
  178. struct frame
  179. {
  180.         dword type;
  181.         word size_x; //start_x, size_x => Mario, WTF? Is this so complex to use x/y/w/h ?                  
  182.         word start_x;                
  183.         word size_y;                  
  184.         word start_y;                
  185.         dword ext_col;            
  186.         dword int_col;            
  187.         dword flags;  // see FR_FLAGS
  188.         dword text_pointer;          
  189.         dword text_position;   //  0-up,1-bottom
  190.         dword font_number;     //  0-monospace,1-variable
  191.         dword font_size_y;          
  192.         dword font_color;            
  193.         dword font_backgr_color;
  194. };
  195.  
  196. // FR_FLAGS = [x][yyy][z]
  197. // z        -  Caption
  198. // yyy      -  BorderStyle
  199. // x        -  BackStyle
  200. #define FR_CAPTION 00001b // [z]
  201. #define FR_DOUBLE  00000b // [yyy]
  202. #define FR_RAISED  00010b // [yyy]
  203. #define FR_SUNKEN  00100b // [yyy]
  204. #define FR_ETCHED  00110b // [yyy]
  205. #define FR_RIDGED  01000b // [yyy]
  206. #define FR_FILLED  10000b // [x]
  207.  
  208. :frame frame123 = { 0, 260, 10, 60, 16, NULL, 0xFFFfff, 1, NULL, 0, 1, 12, 0x000111, 0xCCCccc };
  209. :void DrawFrame(dword x,y,w,h,text)
  210. {
  211.         frame123.font_color = system.color.work_text;
  212.         frame123.ext_col = system.color.work_graph;
  213.         frame123.int_col = system.color.work_light;
  214.         frame123.font_backgr_color = system.color.work;
  215.  
  216.         frame123.start_x = x;
  217.         frame123.start_y = y;
  218.         frame123.size_x = w;
  219.         frame123.size_y = h;
  220.         frame123.text_pointer = text;
  221.         if (!text) frame123.flags=0; else frame123.flags=FR_CAPTION;
  222.         frame_draw stdcall (#frame123);
  223. }
  224.  
  225.  
  226. #endif