Subversion Repositories Kolibri OS

Rev

Rev 7498 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. //BOX_LIB
  3.  
  4. typedef Dword dword;
  5. typedef unsigned short word;
  6. typedef dword __stdcall dword_func(dword);
  7. //typedef dword __stdcall dword3_func(dword,dword,dword);
  8.  
  9. dword  am__ = 0x0;
  10. dword  bm__ = 0x0;
  11.  
  12. char aEdit_box_draw[]   = "edit_box";
  13. char aEdit_box_key[]    = "edit_box_key";
  14. char aEdit_box_mouse[]  = "edit_box_mouse";
  15. char aVersion_ed[]      = "version_ed";
  16.  
  17. char aCheck_box_draw[]  = "check_box_draw";
  18. char aCheck_box_mouse[] = "check_box_mouse";
  19. char aVersion_ch[]      = "version_ch";
  20.  
  21. char aOption_box_draw[] = "option_box_draw";
  22. char aVersion_op[]      = "version_op" ;
  23.  
  24. char aScrollbar_v_draw [] = "scrollbar_v_draw";
  25. char aScrollbar_v_mouse[] = "scrollbar_v_mouse";
  26. char aScrollbar_h_draw [] = "scrollbar_h_draw";
  27. char aScrollbar_h_mouse[] = "scrollbar_h_mouse";
  28. char aVersion_scrollbar[] = "version_scrollbar";
  29.  
  30. dword_func *edit_box_draw  =(dword_func*) &aEdit_box_draw;
  31. dword_func *edit_box_key   =(dword_func*) &aEdit_box_key;
  32. dword_func *edit_box_mouse =(dword_func*) &aEdit_box_mouse;
  33.  
  34. dword_func *scrollbar_v_draw  = (dword_func*) &aScrollbar_v_draw;
  35. dword_func *scrollbar_v_mouse = (dword_func*) &aScrollbar_v_mouse;
  36. dword_func *scrollbar_h_draw  = (dword_func*) &aScrollbar_h_draw;
  37. dword_func *scrollbar_h_mouse = (dword_func*) &aScrollbar_h_mouse;
  38.  
  39.  
  40. char lib_path[] = "/sys/lib/box_lib.obj";
  41. dword lib_path_addr = (dword)lib_path;
  42. dword dummy = 0;
  43.  
  44. //editbox flags
  45. #define ed_pass             1
  46. #define ed_focus            2   //focused
  47. #define ed_shift            4   //flag is set when Shift is pressed
  48. #define ed_shift_on         8
  49. #define ed_shift_bac       16   //bit for Shift reset, if set the smth is selected
  50. #define ed_left_fl         32
  51. #define ed_offset_fl       64
  52. #define ed_insert         128
  53. #define ed_mouse_on       256
  54. #define ed_mouse_adn_b    280
  55. #define ed_disabled      2048
  56. #define ed_always_focus 16384
  57. #define ed_figure_only  32768   //numbers only
  58. #define ed_shift_cl     65507
  59. #define ed_shift_mcl    65531
  60. #define ed_shift_off    65531
  61. #define ed_shift_on_off 65527
  62. #define ed_shift_bac_cl 65519
  63. #define ed_right_fl     65503
  64. #define ed_offset_cl    65471
  65. #define ed_insert_cl    65407
  66. #define ed_mouse_on_off 65279
  67.  
  68. struct edit_box{
  69. dword width,
  70.         left,
  71.         top,
  72.         color,
  73.         shift_color,
  74.         focus_border_color,
  75.         blur_border_color,
  76.         text_color,
  77.         max,
  78.         text,
  79.         mouse_variable,
  80.         flags,
  81.         size,
  82.         pos,
  83.         offset,
  84.         cl_curs_x,
  85.         cl_curs_y,
  86.         shift,
  87.         shift_old,
  88.         height,
  89.         ed_char_width;
  90. };
  91.  
  92. struct scroll_bar{
  93. word w,
  94.         x,
  95.         h,
  96.         y;
  97.         dword btn_height,
  98.         type,
  99.         max_area,
  100.         cur_area,
  101.         position,
  102.         bckg_col,
  103.         frnt_col,
  104.         line_col,
  105.         redraw;
  106.         word delta,
  107.         delta2,
  108.         r_size_x,
  109.         r_start_x,
  110.         r_size_y,
  111.         r_start_y;
  112.         dword m_pos,
  113.         m_pos_2,
  114.         m_keys,
  115.         run_size,
  116.         position2,
  117.         work_size,
  118.         all_redraw,
  119.         ar_offset;
  120. };
  121.  
  122. void load_edit_box()
  123. {
  124.         kol_struct_import *k = kol_cofflib_load(lib_path);
  125.  
  126.         if (k == NULL)
  127.         {
  128.                 sprintf(debuf, "cannot load library %S", lib_path);
  129.                 rtlDebugOutString(debuf);
  130.                 return;
  131.         }
  132.  
  133.         edit_box_draw  = (dword_func*)kol_cofflib_procload(k, aEdit_box_draw);
  134.         edit_box_key   = (dword_func*)kol_cofflib_procload(k, aEdit_box_key);
  135.         edit_box_mouse = (dword_func*)kol_cofflib_procload(k, aEdit_box_mouse);
  136.  
  137.         scrollbar_v_draw  = (dword_func*)kol_cofflib_procload(k, aScrollbar_v_draw);
  138.         scrollbar_v_mouse = (dword_func*)kol_cofflib_procload(k, aScrollbar_v_mouse);
  139.         scrollbar_h_draw  = (dword_func*)kol_cofflib_procload(k, aScrollbar_h_draw);
  140.         scrollbar_h_mouse = (dword_func*)kol_cofflib_procload(k, aScrollbar_h_mouse);
  141.  
  142.         if (edit_box_draw == NULL || scrollbar_v_draw == NULL || scrollbar_h_draw == NULL)
  143.                 rtlDebugOutString("Some of EDITBOX functions have not been loaded!");
  144. }
  145.