protocol.h

00001 
00023 #ifndef __NTW_H
00024 #define __NTW_H
00025 
00026 #include <stdint.h>
00027 
00028 #define BUFSIZE 5
00029 #define PORT 12345
00030 
00031 #define SYNC 1
00032 #define ASYNC 2
00033 
00034 #define uint8 uint8_t
00035 #define uint16 uint16_t
00036 #define uint32 uint32_t
00037 #define int8 int8_t
00038 #define int16 int16_t
00039 #define int32 int32_t
00040 
00041 struct event_mask {
00042   int32 sync_general;
00043   int32 async_general;
00044   int32 sync_specific;
00045   int32 async_specific;
00046 };
00047 
00048 #ifndef TRUE
00049 #define TRUE 1
00050 #endif
00051 
00052 #ifndef FALSE 
00053 #define FALSE 0
00054 #endif
00055 
00056 
00058 #define OP_INFO    'I'
00059 #define OP_DESTROY 'D'
00060 #define OP_SET     'S'
00061 #define OP_GET     'G'
00062 #define OP_EVENT   'E'
00063 #define OP_EOT     'X'
00064 #define OP_ERROR   'Z'
00065 
00066 
00068 #define ERROR_NO_PROPERTY  11
00069 
00071 /* high bit is container flag */
00072 /* next bit is viewable widget flag */
00073 /* next bit is toplevel flag */
00074 #define NTW_CONTAINER_TYPE        0x80000000
00075 #define NTW_WIDGET_TYPE           0x40000000
00076 #define NTW_TOPLEVEL_TYPE         0x20000000
00077 /* Widgets that contain others */
00078 #define TYPE_WINDOW          (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | NTW_TOPLEVEL_TYPE | 0x01)
00079 #define TYPE_DIALOG          (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | NTW_TOPLEVEL_TYPE | 0x02)
00080 #define TYPE_GRID            (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x03)
00081 #define TYPE_BUTTON          (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x04)
00082 #define TYPE_CHECK_BUTTON    (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x05)
00083 #define TYPE_MENU_BAR        (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x06)
00084 #define TYPE_MENU            (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x07)
00085 #define TYPE_MENU_ITEM       (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x08)
00086 #define TYPE_RADIO_BUTTON    (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x09)
00087 #define TYPE_NOTEBOOK        (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x0a)
00088 #define TYPE_NOTEBOOK_PAGE   (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x0b)
00089 #define TYPE_SCROLLPANE      (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x0c)
00090 #define TYPE_FRAME           (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x0d)
00091 #define TYPE_SPLIT_PANE      (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x0e)
00092 #define TYPE_TABLE           (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x0f)
00093 #define TYPE_TOOL_BAR        (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x10)
00094 #define TYPE_TOOL_ITEM       (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x11)
00095 #define TYPE_TOOL_BUTTON     (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x12)
00096 #define TYPE_TOOL_MENU_BUTTON (NTW_WIDGET_TYPE | NTW_CONTAINER_TYPE | 0x13)
00097 /* Non-container widgets */
00098 #define TYPE_LABEL           (NTW_WIDGET_TYPE | 0x0100)
00099 #define TYPE_IMAGE           (NTW_WIDGET_TYPE | 0x0200)
00100 #define TYPE_ENTRY           (NTW_WIDGET_TYPE | 0x0300)
00101 #define TYPE_TABLE_COLUMN    (NTW_WIDGET_TYPE | 0x0400)
00102 #define TYPE_COMBO_BOX       (NTW_WIDGET_TYPE | 0x0500)
00103 #define TYPE_COMBO_BOX_ENTRY (NTW_WIDGET_TYPE | 0x0600)
00104 #define TYPE_STATUS_BAR      (NTW_WIDGET_TYPE | 0x0700)
00105 #define TYPE_SPIN_BUTTON     (NTW_WIDGET_TYPE | 0x0800)
00106 #define TYPE_SLIDER          (NTW_WIDGET_TYPE | 0x0900)
00107 #define TYPE_PROGRESS_BAR    (NTW_WIDGET_TYPE | 0x0a00)
00108 #define TYPE_TEXT_EDITOR     (NTW_WIDGET_TYPE | 0x0b00)
00109 /* These are abstract widgets that are never drawn and cannot be contained */
00110 #define TYPE_LIST_MODEL      (NTW_TOPLEVEL_TYPE | 0x010000)
00111 #define TYPE_LIST_MODEL_NODE (NTW_TOPLEVEL_TYPE | 0x020000)
00112 #define TYPE_TREE_MODEL      (NTW_TOPLEVEL_TYPE | 0x030000)
00113 #define TYPE_TREE_MODEL_NODE (NTW_TOPLEVEL_TYPE | 0x040000)
00114 #define TYPE_RADIO_GROUP     (NTW_TOPLEVEL_TYPE | 0x050000)
00115 #define TYPE_IMAGE_BUFFER    (NTW_TOPLEVEL_TYPE | 0x060000)
00116 #define TYPE_CACHED_IMAGE    (NTW_TOPLEVEL_TYPE | 0x070000)
00117 #define TYPE_TIMER           (NTW_TOPLEVEL_TYPE | 0x080000)
00118 /* These are only used in the server when saving the state */
00119 #define TYPE_EVENT_TABLE     (NTW_TOPLEVEL_TYPE | 0x100000)
00120 
00121 
00123 #define DESTROY_EVENT_MASK        0x0001
00124 #define LEAVE_ENTER_EVENT_MASK    0x0002
00125 #define MOUSE_CLICK_EVENT_MASK    0x0004
00126 #define MOUSE_MOVE_EVENT_MASK     0x0008
00127 #define KEY_PRESS_EVENT_MASK      0x0010
00128 #define KEY_RELEASE_EVENT_MASK    0x0020
00129 #define FOCUS_EVENT_MASK          0x0040
00130 #define WINDOW_EVENT_MASK         0x0080 
00131 #define ALL_EVENTS_MASK           0x00ff
00132 
00134 /* Default event handler is always at position 0 in the event table */
00135 #define DESTROY_EVENT        1
00136 #define DELETE_EVENT         2
00137 #define LEAVE_EVENT          3
00138 #define ENTER_EVENT          4
00139 #define MOUSE_CLICK_EVENT    5
00140 #define MOUSE_MOVE_EVENT     6
00141 #define KEY_PRESS_EVENT      7
00142 #define KEY_RELEASE_EVENT    8
00143 #define FOCUS_IN_EVENT       9
00144 #define FOCUS_OUT_EVENT      10
00145 #define WINDOW_STATE_EVENT   11
00146 #define WINDOW_MOVE_OR_RESIZE_EVENT 12
00147 #define GENERAL_EVENT_COUNT 13
00148 
00149 
00150 /* WIDGET FLAGS */
00151 #define WIDGET_FLAG_VISIBLE   0x01
00152 #define WIDGET_FLAG_COUNT     1
00153 
00154 /* GRID PLACEMENT FLAGS */
00155 #define FLAG_EXPAND    0x01
00156 #define FLAG_SHRINK    0x02
00157 #define FLAG_FILL      0x04
00158 
00159 /* DEFAULTS */
00160 #define DEFAULT_XFLAGS FLAG_EXPAND | FLAG_FILL 
00161 #define DEFAULT_YFLAGS FLAG_EXPAND | FLAG_FILL 
00162 #define DEFAULT_XPAD   0
00163 #define DEFAULT_YPAD   0
00164 
00165 /* PROPERTIES */
00166 #define P_EVENT_MASK      1
00167 #define P_PARENT          2
00168 #define P_VISIBLE         3 
00169 #define P_TITLE           4
00170 #define P_WIDTH           5
00171 #define P_HEIGHT          6
00172 #define P_SIZE            7
00173 #define P_TEXT            8
00174 #define P_DATA_LENGTH     9
00175 #define P_DATA            10
00176 #define P_ROWS            11 
00177 #define P_COLUMNS         12 
00178 #define P_ROW_SPACING     13 
00179 #define P_COLUMN_SPACING  14 
00180 #define P_HOMOGENEOUS     15 
00181 #define P_EDITABLE        16
00182 #define P_VISIBILITY      17
00183 #define P_CHECKED         18
00184 #define P_MAX_LENGTH      20 
00185 #define P_SELECTED        21
00186 #define P_MODAL           22
00187 #define P_VALUE           23
00188 #define P_MIN_VALUE       24
00189 #define P_MAX_VALUE       25
00190 #define P_FRACTION        26
00191 #define P_VERTICAL        27
00192 #define P_DELETE_ROW      30
00193 #define P_CLEAR           31 
00194 #define P_TIMEOUT_SECONDS 40 
00195 #define P_RESET           41 
00196 
00197 
00198 /* DATA TYPES FOR DATA MODELS */
00199 #define DT_BOOLEAN   1
00200 #define DT_INT       2
00201 #define DT_UINT      3
00202 #define DT_FLOAT     4
00203 #define DT_IMAGE     5
00204 #define DT_STRING    6
00205 
00206 /* CELL RENDERER TYPES */
00207 #define CR_TEXT      1
00208 #define CR_TOGGLE    2
00209 #define CR_COMBO     3
00210 #define CR_IMAGE     4
00211 
00212 /* SPLIT PANE TYPES */
00213 #define SPLIT_VERTICAL   1
00214 #define SPLIT_HORIZONTAL 2
00215 #define SP_TOP           1
00216 #define SP_BOTTOM        2
00217 #define SP_LEFT          1
00218 #define SP_RIGHT         2
00219 
00220 #define COMMON_FIELDS \
00221 int32 id;\
00222 int32 parent_id;\
00223 int32 type;\
00224 int32 flags;\
00225 struct event_mask ev_mask;
00226 
00227 #define GRID_PLACEMENT \
00228   uint16 left_coord;\
00229   uint16 right_coord;\
00230   uint16 top_coord;\
00231   uint16 bottom_coord;\
00232   uint8 xflags;\
00233   uint8 yflags;\
00234   uint8 xpad;\
00235   uint8 ypad;
00236 
00237 struct widget_header{
00238   COMMON_FIELDS
00239 };
00240 
00241 struct widget_data{
00242   COMMON_FIELDS
00243   GRID_PLACEMENT
00244 };
00245 
00246 
00247 /****** WIDGETS ******/
00248 
00252 struct window_data{
00253   COMMON_FIELDS
00254 
00255   int32 width;
00256   int32 height;
00257   char title[];
00258 };
00259 #define WINDOW_FLAG_MODAL  (1 << WIDGET_FLAG_COUNT) 
00260 #define WINDOW_EVENT_COUNT  0
00261 
00262 
00266 struct dialog_data{
00267   COMMON_FIELDS
00268 
00269   int32 width;
00270   int32 height;
00271   char title[];
00272 };
00273 #define DIALOG_FLAG_MODAL  (1 << WIDGET_FLAG_COUNT) 
00274 #define DIALOG_EVENT_COUNT  0
00275 
00276 
00280 struct grid_data {
00281   COMMON_FIELDS
00282   GRID_PLACEMENT
00283   
00284   uint16 rows;
00285   uint16 columns;
00286   uint8 row_spacing;
00287   uint8 column_spacing;
00288 };
00289 #define GRID_FLAG_HOMOGENEOUS (1 << WIDGET_FLAG_COUNT)
00290 #define GRID_EVENT_COUNT    0
00291 
00292 
00293 
00297 struct button_data {
00298   COMMON_FIELDS 
00299   GRID_PLACEMENT
00300 };
00301 #define BUTTON_EVENT_COUNT  5
00302 #define BUTTON_CLICKED       (GENERAL_EVENT_COUNT)
00303 #define BUTTON_PRESSED       (GENERAL_EVENT_COUNT + 1)
00304 #define BUTTON_RELEASED      (GENERAL_EVENT_COUNT + 2)
00305 #define BUTTON_ENTER         (GENERAL_EVENT_COUNT + 3)
00306 #define BUTTON_LEAVE         (GENERAL_EVENT_COUNT + 4)
00307 
00308 
00309 
00313 struct check_button_data {
00314   COMMON_FIELDS 
00315   GRID_PLACEMENT
00316 };
00317 #define CHECK_BUTTON_FLAG_CHECKED  (1 << WIDGET_FLAG_COUNT)
00318 #define CHECK_BUTTON_EVENT_COUNT  6
00319 #define CHECK_BUTTON_CLICKED       (GENERAL_EVENT_COUNT)
00320 #define CHECK_BUTTON_PRESSED       (GENERAL_EVENT_COUNT + 1)
00321 #define CHECK_BUTTON_RELEASED      (GENERAL_EVENT_COUNT + 2)
00322 #define CHECK_BUTTON_ENTER         (GENERAL_EVENT_COUNT + 3)
00323 #define CHECK_BUTTON_LEAVE         (GENERAL_EVENT_COUNT + 4)
00324 #define CHECK_BUTTON_TOGGLED       (GENERAL_EVENT_COUNT + 5)
00325 
00326 
00330 struct label_data {
00331   COMMON_FIELDS
00332   GRID_PLACEMENT
00333 
00334   char text[];
00335 };
00336 #define LABEL_EVENT_COUNT   0
00337 
00338 
00339 
00343 struct image_data {
00344   COMMON_FIELDS
00345   GRID_PLACEMENT
00346 
00347   int32 pixbuf_id;
00348   int32 data_length;
00349   char data[];
00350 };
00351 #define IMAGE_EVENT_COUNT   0
00352 
00353 
00357 struct image_buffer_data {
00358   int32 id;
00359   int32 parent_id;
00360   int32 type;
00361 
00362   uint8 status; /* i.e. ready, loading, broken, etc. */
00363   int32 data_length;
00364   char data[];
00365 };
00366 #define IMAGE_BUFFER_EVENT_COUNT   0
00367 
00368 
00372 struct entry_data {
00373   COMMON_FIELDS
00374   GRID_PLACEMENT
00375 
00376   int32 max_length;
00377   char text[];
00378 };
00379 #define ENTRY_FLAG_EDITABLE   (0x1 << WIDGET_FLAG_COUNT)
00380 #define ENTRY_FLAG_VISIBILITY (0x2 << WIDGET_FLAG_COUNT)
00381 #define ENTRY_EVENT_COUNT   2
00382 #define ENTRY_ACTIVATE      (GENERAL_EVENT_COUNT)
00383 #define ENTRY_CHANGED       (GENERAL_EVENT_COUNT + 1)
00384 
00385 
00386 
00390 struct menu_bar_data {
00391   COMMON_FIELDS
00392   GRID_PLACEMENT
00393 };
00394 #define MENU_BAR_EVENT_COUNT 0
00395 
00396 
00400 struct menu_data {
00401   COMMON_FIELDS
00402   GRID_PLACEMENT
00403 };
00404 #define MENU_EVENT_COUNT 0
00405 
00406 
00410 struct menu_item_data {
00411   COMMON_FIELDS
00412 };
00413 #define MENU_ITEM_EVENT_COUNT 1
00414 #define MENU_ITEM_ACTIVATE (GENERAL_EVENT_COUNT)
00415 
00416 
00420 struct tool_bar_data {
00421   COMMON_FIELDS
00422   GRID_PLACEMENT
00423 };
00424 
00425 #define TOOL_BAR_FLAG_STYLE_BOTH            (1 << WIDGET_FLAG_COUNT)
00426 #define TOOL_BAR_FLAG_STYLE_BOTH_HORIZONTAL (2 << WIDGET_FLAG_COUNT)
00427 #define TOOL_BAR_FLAG_STYLE_ICONS           (4 << WIDGET_FLAG_COUNT)
00428 #define TOOL_BAR_FLAG_STYLE_TEXT            (8 << WIDGET_FLAG_COUNT)
00429 #define TOOL_BAR_EVENT_COUNT 0
00430 
00431 
00435 struct tool_item_data {
00436   COMMON_FIELDS
00437 };
00438 #define TOOL_ITEM_EVENT_COUNT 1
00439 #define TOOL_ITEM_ACTIVATE (GENERAL_EVENT_COUNT)
00440 
00441 
00445 struct tool_button_data {
00446   COMMON_FIELDS
00447   
00448   int32 image_id;
00449   char label[];
00450 };
00451 #define TOOL_BUTTON_EVENT_COUNT 1
00452 #define TOOL_BUTTON_CLICKED          (GENERAL_EVENT_COUNT)
00453 
00457 struct tool_menu_button_data {
00458   COMMON_FIELDS
00459   
00460   int32 image_id;
00461   int32 menu_id;
00462   char label[];
00463 };
00464 #define TOOL_MENU_BUTTON_EVENT_COUNT 1
00465 #define TOOL_MENU_BUTTON_CLICKED          (GENERAL_EVENT_COUNT)
00466 
00467 
00468 
00472 struct radio_group_data {
00473   int32 id;
00474   int32 parent_id;
00475   int32 type;
00476 
00477   int32 selected_button;
00478 };
00479 #define RADIO_GROUP_EVENT_COUNT 0
00480 
00481 
00485 struct radio_button_data {
00486   COMMON_FIELDS
00487   GRID_PLACEMENT
00488 
00489   int32 group_id;
00490 };
00491 #define RADIO_BUTTON_FLAG_CHECKED  (1 << WIDGET_FLAG_COUNT)
00492 #define RADIO_BUTTON_EVENT_COUNT  6
00493 #define RADIO_BUTTON_CLICKED       (GENERAL_EVENT_COUNT)
00494 #define RADIO_BUTTON_PRESSED       (GENERAL_EVENT_COUNT + 1)
00495 #define RADIO_BUTTON_RELEASED      (GENERAL_EVENT_COUNT + 2)
00496 #define RADIO_BUTTON_ENTER         (GENERAL_EVENT_COUNT + 3)
00497 #define RADIO_BUTTON_LEAVE         (GENERAL_EVENT_COUNT + 4)
00498 #define RADIO_BUTTON_TOGGLED       (GENERAL_EVENT_COUNT + 5)
00499 
00500 
00501 
00505 struct notebook_data {
00506   COMMON_FIELDS
00507   GRID_PLACEMENT
00508 };
00509 #define NOTEBOOK_EVENT_COUNT 0
00510 
00511 
00515 struct notebook_page_data { /* always a child of notebook */
00516   COMMON_FIELDS
00517   
00518   char title[];
00519 };
00520 #define NOTEBOOK_PAGE_EVENT_COUNT 0
00521 
00522 
00526 struct scrollpane_data {
00527   COMMON_FIELDS
00528   GRID_PLACEMENT
00529 };
00530 #define SCROLLPANE_EVENT_COUNT 0
00531 
00532 
00533 
00538 struct list_model_data {
00539   COMMON_FIELDS
00540 
00541   int32 columns;
00542   uint8 column_type[]; 
00543 };
00544 #define LIST_MODEL_EVENT_COUNT 2
00545 #define LIST_MODEL_CELL_TOGGLED  (GENERAL_EVENT_COUNT)
00546 #define LIST_MODEL_CELL_EDITED   (GENERAL_EVENT_COUNT + 1)
00547 
00551 struct list_model_node_data {
00552   int32 row;
00553   int32 parent_id; /* list model */
00554   int32 type; 
00555 
00556   int32 var_data_offset;
00557   char data[]; 
00558 };
00559 
00560 
00561 
00566 struct tree_model_data {
00567   COMMON_FIELDS
00568 
00569   int32 columns;
00570   uint8 column_type[]; 
00571 };
00572 #define TREE_MODEL_EVENT_COUNT 2
00573 #define TREE_MODEL_CELL_TOGGLED  (GENERAL_EVENT_COUNT)
00574 #define TREE_MODEL_CELL_EDITED   (GENERAL_EVENT_COUNT + 1)
00575 
00576 
00581 struct tree_model_node_data {
00582   int32 row;
00583   int32 parent_id; /* tree model or another tree node */
00584   int32 type; 
00585 
00586   int32 var_data_offset;
00587   char data[]; 
00588 };
00589 
00590 
00591 
00595 struct table_data{
00596   COMMON_FIELDS
00597   GRID_PLACEMENT
00598 
00599   int32 data_model;
00600 };
00601 #define TABLE_EVENT_COUNT 1
00602 #define TABLE_SELECTION_CHANGED (GENERAL_EVENT_COUNT) 
00603 
00604 
00609 struct table_column_data{
00610   COMMON_FIELDS
00611   
00612   int32 column_number;
00613   int32 combo_model;
00614   int32 combo_column;
00615   uint8 render_type;
00616   char title[];
00617 };
00618 #define TABLE_COLUMN_FLAG_EDITABLE  (1 << WIDGET_FLAG_COUNT)
00619 #define TABLE_COLUMN_EVENT_COUNT 1
00620 #define TABLE_COLUMN_CLICKED  (GENERAL_EVENT_COUNT)
00621 
00622 
00623 
00627 struct frame_data {
00628   COMMON_FIELDS
00629   GRID_PLACEMENT
00630 
00631   char label[]; 
00632 };
00633 #define FRAME_EVENT_COUNT 0
00634 
00635 
00636 
00640 struct split_pane_data {
00641   COMMON_FIELDS
00642   GRID_PLACEMENT
00643 
00644   int32 position;
00645   uint8 alignment;
00646 };
00647 #define SPLIT_PANE_EVENT_COUNT 0
00648 
00649 
00653 struct combo_box_data {
00654   COMMON_FIELDS
00655   GRID_PLACEMENT
00656 
00657   int32 list_model;
00658   int32 list_model_column;
00659   int32 selected;
00660   uint8 render_type;
00661 };
00662 #define COMBO_BOX_EVENT_COUNT 1
00663 #define COMBO_BOX_SELECTION_CHANGED  (GENERAL_EVENT_COUNT)
00664 
00665 
00666 
00671 struct combo_box_entry_data {
00672   COMMON_FIELDS
00673   GRID_PLACEMENT
00674 
00675   int32 max_length;
00676   int32 list_model;
00677   int32 list_model_column;
00678   char text[];
00679 };
00680 #define COMBO_BOX_ENTRY_FLAG_EDITABLE    (0x1 << WIDGET_FLAG_COUNT)
00681 #define COMBO_BOX_ENTRY_FLAG_VISIBILITY  (0x2 << WIDGET_FLAG_COUNT)
00682 #define COMBO_BOX_ENTRY_EVENT_COUNT   3
00683 #define COMBO_BOX_ENTRY_SELECTION_CHANGED  (GENERAL_EVENT_COUNT)
00684 #define COMBO_BOX_ENTRY_ACTIVATE           (GENERAL_EVENT_COUNT + 1)
00685 #define COMBO_BOX_ENTRY_CHANGED            (GENERAL_EVENT_COUNT + 2)
00686 
00687 
00691 struct status_bar_data {
00692   COMMON_FIELDS
00693   GRID_PLACEMENT
00694 
00695   char text[];
00696 };
00697 #define STATUS_BAR_EVENT_COUNT      0
00698 
00699 
00703 struct spin_button_data {
00704   COMMON_FIELDS
00705   GRID_PLACEMENT
00706 
00707   int32 precision;
00708   char value[32];
00709   char min_value[32];
00710   char max_value[32];
00711   char step[32];
00712 };
00713 #define SPIN_BUTTON_EVENT_COUNT      1
00714 #define SPIN_BUTTON_CHANGED          (GENERAL_EVENT_COUNT)
00715 
00716 
00720 struct slider_data {
00721   COMMON_FIELDS
00722   GRID_PLACEMENT
00723 
00724   int32 precision;
00725   char value[32];
00726   char min_value[32];
00727   char max_value[32];
00728   char step[32];
00729 };
00730 #define SLIDER_FLAG_VERTICAL  (1 << WIDGET_FLAG_COUNT) 
00731 #define SLIDER_EVENT_COUNT    1
00732 #define SLIDER_CHANGED        (GENERAL_EVENT_COUNT)
00733 
00734 
00738 struct progress_bar_data {
00739   COMMON_FIELDS
00740   GRID_PLACEMENT
00741 
00742   char fraction[32];
00743   char text[];
00744 };
00745 #define PROGRESS_BAR_FLAG_VERTICAL     (0x1 << WIDGET_FLAG_COUNT) 
00746 #define PROGRESS_BAR_FLAG_INDEFINITE   (0x2 << WIDGET_FLAG_COUNT) 
00747 #define PROGRESS_BAR_EVENT_COUNT    0
00748 
00749 
00753 struct text_editor_data {
00754   COMMON_FIELDS
00755   GRID_PLACEMENT
00756 
00757   int32 text_length;
00758   char text[];
00759 };
00760 #define TEXT_EDITOR_FLAG_EDITABLE (0x1 << WIDGET_FLAG_COUNT)
00761 #define TEXT_EDITOR_EVENT_COUNT   2
00762 #define TEXT_EDITOR_TEXT_INSERTED (GENERAL_EVENT_COUNT)
00763 #define TEXT_EDITOR_TEXT_DELETED  (GENERAL_EVENT_COUNT + 1)
00764 
00765 
00769 struct timer_data {
00770   int32 id;
00771   int32 parent_id; 
00772   int32 type; 
00773   int32 synchronized;
00774 
00775   int32 timeout_seconds;
00776 };
00777 #define TIMER_TIMEOUT (GENERAL_EVENT_COUNT)
00778 #define TIMER_EVENT_COUNT 1
00779 
00780 #endif /* __NTW_H */

Generated on Wed Jun 28 17:00:07 2006 for NTW Server C Library by  doxygen 1.4.6