leda_panel.h
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:4k
开发平台:

MultiPlatform

  1. /*******************************************************************************
  2. +
  3. +  LEDA-R  3.2.3
  4. +
  5. +  leda_panel.h
  6. +
  7. +  Copyright (c) 1995  by  Max-Planck-Institut fuer Informatik
  8. +  Im Stadtwald, 66123 Saarbruecken, Germany     
  9. +  All rights reserved.
  10. *******************************************************************************/
  11. #include <LEDA/leda_window.h>
  12. typedef void (*action_func)(int);
  13. #define MAX_BUT_NUM  64
  14. #define MAX_ITEM_NUM 64 
  15. class LEDA_PANEL : public LEDA_WINDOW {
  16. Window win;
  17. char*  header;
  18. int    XPOS;
  19. int    YPOS;
  20. int    WIDTH;
  21. int    HEIGHT;
  22. int    but_count;
  23. int    item_count;
  24. int    act_str_item;
  25. int    last_ycoord;
  26. char*  button_str[MAX_BUT_NUM];
  27. char*  label_str [MAX_ITEM_NUM];
  28. char*  data_str  [MAX_ITEM_NUM];
  29. int    ycoord[MAX_ITEM_NUM]; 
  30. int    kind   [MAX_ITEM_NUM];
  31. void*  ref    [MAX_ITEM_NUM];
  32. int    dat1   [MAX_ITEM_NUM];   // min (slider), size (choice), 
  33.                                 // number of menu items (string_menu_item)
  34. int    dat2   [MAX_ITEM_NUM];   // max (slider)  step (choice)
  35. int    offset [MAX_ITEM_NUM];   // choice item only
  36. char** choices[MAX_ITEM_NUM];   // choice item, string_menu_item)
  37. action_func action[MAX_ITEM_NUM];
  38. int but_layout;
  39. int bg_color;
  40. int item_bg_color;
  41. int d3_box_bg_color;
  42. int shadow_color;
  43. int press_color;
  44. // geometry
  45. int   th;               // text height
  46. int   tw;               // text width
  47. int   xoff;             /* left and right boundary space */
  48. int   yoff;             /* top and bottom boundary space */
  49. int   xoff1;            /* start of items */
  50. int   slider_w;         /* slider item length */
  51. int   slider_h;         /* height of slider items   */
  52. int   string_w;         /* string/int/float item length */
  53. int   string_h;         /* string/int/float item height */
  54. int   ytskip;           /* height of text items   */
  55. int   yskip;            /* height of other items  */
  56. int   choice_h;         /* height of choice items   */
  57. int   choice_w;         /* choice field width */
  58. int   button_h;         /* button height */
  59. int   button_w;         /* button width */
  60. int   bskip;            /* button space */
  61. int   bxoff;            /* left and right button boundary space */
  62. int   but_per_line;
  63. void draw_box_with_shadow(int,int,int,int,int,int);
  64. void draw_d3_box(int x1,int y1,int x2,int y2, int pressed=0);
  65. void draw_string_item(int i, int activ=0, const char* s=0);
  66. void activate_string_item(int);
  67. void panel_text_edit(int i);
  68. void put_text_item(int x, int y, const char* s, int t_len);
  69. void draw_choice_bool_item(int i, int x, int y, int c, int n);
  70. void draw_choice_item(int i);
  71. void draw_bool_item(int i);
  72. void draw_color_item(int i);
  73. void change_color_item(int i, int j);
  74. void draw_slider_item(int i,float x);
  75. void draw_button(const char* s, int x, int y,int pressed);
  76. void draw_menu_button(int x, int y,int pressed);
  77. void item_error();
  78. public:
  79. void set_bg_color(int c) { bg_color = c; }
  80. void buttons_per_line(int n) { but_per_line = n; }
  81. void text_item(const char* s);
  82. void string_item(const char* s, char** x);
  83. void string_menu_item(const char* s, char** x, const char* menu_label,int argc,const char** argv);
  84. void int_item(const char* s, int* x);
  85. void slider_item(const char* s, int* x, int min, int max, action_func F = 0);
  86. void float_item(const char* s, double* x);
  87. void choice_item(const char* text, int* address, int argc, const char** argv, int step, int offset);
  88. void bool_item(const char* text, char* address);
  89. void color_item(const char* text, int* x);
  90. int  button(const char* s);
  91. void button_line(int n, const char** b) ;
  92. void display(int x,int y,int win_x,int win_y,int width,int height);
  93. int  read();
  94. void close();
  95. int open(int x,int y,int win_x,int win_y,int width,int height,int mode=1);
  96. void init(const char*);
  97.  LEDA_PANEL(const char* label="", int bl=0);
  98.  LEDA_PANEL(const char*, int, int);
  99.  LEDA_PANEL(int, int);
  100. ~LEDA_PANEL();
  101. static void panel_redraw_func();
  102. };