00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #ifndef __CTK_H__
00051 #define __CTK_H__
00052
00053
00054 #include "contiki-conf.h"
00055 #include "contiki.h"
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #define CTK_WIDGET_SEPARATOR 1
00066
00067 #define CTK_WIDGET_LABEL 2
00068
00069 #define CTK_WIDGET_BUTTON 3
00070
00071 #define CTK_WIDGET_HYPERLINK 4
00072
00073 #define CTK_WIDGET_TEXTENTRY 5
00074
00075 #define CTK_WIDGET_BITMAP 6
00076
00077 #define CTK_WIDGET_ICON 7
00078
00079
00080
00081 struct ctk_widget;
00082
00083 #if CTK_CONF_WIDGET_FLAGS
00084 #define CTK_WIDGET_FLAG_INITIALIZER(x) x,
00085 #else
00086 #define CTK_WIDGET_FLAG_INITIALIZER(x)
00087 #endif
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112 #define CTK_SEPARATOR(x, y, w) \
00113 NULL, NULL, x, y, CTK_WIDGET_SEPARATOR, w, 1, CTK_WIDGET_FLAG_INITIALIZER(0)
00114 struct ctk_separator {
00115 struct ctk_widget *next;
00116 struct ctk_window *window;
00117 unsigned char x, y;
00118 unsigned char type;
00119 unsigned char w, h;
00120 #if CTK_CONF_WIDGET_FLAGS
00121 unsigned char flags;
00122 #endif
00123 };
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141 #define CTK_BUTTON(x, y, w, text) \
00142 NULL, NULL, x, y, CTK_WIDGET_BUTTON, w, 1, CTK_WIDGET_FLAG_INITIALIZER(0) text
00143 struct ctk_button {
00144 struct ctk_widget *next;
00145 struct ctk_window *window;
00146 unsigned char x, y;
00147 unsigned char type;
00148 unsigned char w, h;
00149 #if CTK_CONF_WIDGET_FLAGS
00150 unsigned char flags;
00151 #endif
00152 char *text;
00153 };
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172 #define CTK_LABEL(x, y, w, h, text) \
00173 NULL, NULL, x, y, CTK_WIDGET_LABEL, w, h, CTK_WIDGET_FLAG_INITIALIZER(0) text,
00174 struct ctk_label {
00175 struct ctk_widget *next;
00176 struct ctk_window *window;
00177 unsigned char x, y;
00178 unsigned char type;
00179 unsigned char w, h;
00180 #if CTK_CONF_WIDGET_FLAGS
00181 unsigned char flags;
00182 #endif
00183 char *text;
00184 };
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203 #define CTK_HYPERLINK(x, y, w, text, url) \
00204 NULL, NULL, x, y, CTK_WIDGET_HYPERLINK, w, 1, CTK_WIDGET_FLAG_INITIALIZER(0) text, url
00205 struct ctk_hyperlink {
00206 struct ctk_widget *next;
00207 struct ctk_window *window;
00208 unsigned char x, y;
00209 unsigned char type;
00210 unsigned char w, h;
00211 #if CTK_CONF_WIDGET_FLAGS
00212 unsigned char flags;
00213 #endif
00214 char *text;
00215 char *url;
00216 };
00217
00218
00219 #define CTK_TEXTENTRY_NORMAL 0
00220
00221 #define CTK_TEXTENTRY_EDIT 1
00222
00223
00224
00225
00226
00227
00228
00229
00230 #define CTK_TEXTENTRY_CLEAR(e) \
00231 do { memset((e)->text, 0, (e)->h * ((e)->len + 1)); \
00232 (e)->xpos = 0; (e)->ypos = 0; } while(0)
00233
00234 #ifdef CTK_ARCH_KEY_T
00235 typedef CTK_ARCH_KEY_T ctk_arch_key_t;
00236 #else
00237 typedef char ctk_arch_key_t;
00238 #endif
00239
00240 #ifndef CH_ENTER
00241 #define CH_ENTER '\n'
00242 #endif
00243
00244 struct ctk_textentry;
00245 typedef unsigned char (* ctk_textentry_input)(ctk_arch_key_t c,
00246 struct ctk_textentry *t);
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269 #ifdef SDCC
00270 #define CTK_TEXTENTRY(x, y, w, h, text, len) \
00271 NULL, NULL, x, y, CTK_WIDGET_TEXTENTRY, w, 1, CTK_WIDGET_FLAG_INITIALIZER(0) text, len, \
00272 CTK_TEXTENTRY_NORMAL, 0, 0, ctk_textentry_input_null
00273 #else
00274 #define CTK_TEXTENTRY(x, y, w, h, text, len) \
00275 NULL, NULL, x, y, CTK_WIDGET_TEXTENTRY, w, 1, CTK_WIDGET_FLAG_INITIALIZER(0) text, len, \
00276 CTK_TEXTENTRY_NORMAL, 0, 0, NULL
00277 #endif
00278 #define CTK_TEXTENTRY_INPUT(x, y, w, h, text, len, input) \
00279 NULL, NULL, x, y, CTK_WIDGET_TEXTENTRY, w, h, CTK_WIDGET_FLAG_INITIALIZER(0) text, len, \
00280 CTK_TEXTENTRY_NORMAL, 0, 0, input
00281 struct ctk_textentry {
00282 struct ctk_widget *next;
00283 struct ctk_window *window;
00284 unsigned char x, y;
00285 unsigned char type;
00286 unsigned char w, h;
00287 #if CTK_CONF_WIDGET_FLAGS
00288 unsigned char flags;
00289 #endif
00290 char *text;
00291 unsigned char len;
00292 unsigned char state;
00293 unsigned char xpos, ypos;
00294 ctk_textentry_input input;
00295 };
00296
00297 #ifdef SDCC
00298
00299
00300 unsigned char ctk_textentry_input_null(ctk_arch_key_t c, struct ctk_textentry *t);
00301 #endif
00302
00303 #if CTK_CONF_ICON_BITMAPS
00304 #define CTK_ICON_BITMAP(bitmap) bitmap
00305 #else
00306 #define CTK_ICON_BITMAP(bitmap) NULL
00307 #endif
00308
00309 #if CTK_CONF_ICON_TEXTMAPS
00310 #define CTK_ICON_TEXTMAP(textmap) textmap
00311 #else
00312 #define CTK_ICON_TEXTMAP(textmap) NULL
00313 #endif
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328 #if CTK_CONF_ICONS
00329 #define CTK_ICON(title, bitmap, textmap) \
00330 NULL, NULL, 0, 0, CTK_WIDGET_ICON, 2, 4, CTK_WIDGET_FLAG_INITIALIZER(0) \
00331 title, PROCESS_NONE, \
00332 CTK_ICON_BITMAP(bitmap), CTK_ICON_TEXTMAP(textmap)
00333 struct ctk_icon {
00334 struct ctk_widget *next;
00335 struct ctk_window *window;
00336 unsigned char x, y;
00337 unsigned char type;
00338 unsigned char w, h;
00339 #if CTK_CONF_WIDGET_FLAGS
00340 unsigned char flags;
00341 #endif
00342 char *title;
00343 struct process *owner;
00344 unsigned char *bitmap;
00345 char *textmap;
00346 };
00347
00348 #define CTK_BITMAP(x, y, w, h, bitmap, bitmap_width, bitmap_height) \
00349 NULL, NULL, x, y, CTK_WIDGET_BITMAP, w, h, \
00350 CTK_WIDGET_FLAG_INITIALIZER(0) bitmap, bitmap_width, bitmap_height
00351 struct ctk_bitmap {
00352 struct ctk_widget *next;
00353 struct ctk_window *window;
00354 unsigned char x, y;
00355 unsigned char type;
00356 unsigned char w, h;
00357 #if CTK_CONF_WIDGET_FLAGS
00358 unsigned char flags;
00359 #endif
00360 unsigned char *bitmap;
00361 unsigned short bw, bh;
00362 };
00363
00364 #define CTK_TEXTMAP_NORMAL 0
00365 #define CTK_TEXTMAP_ACTIVE 1
00366
00367 #define CTK_TEXTMAP(x, y, w, h, textmap) \
00368 NULL, NULL, x, y, CTK_WIDGET_LABEL, w, h, CTK_WIDGET_FLAG_INITIALIZER(0) text, CTK_TEXTMAP_NORMAL
00369 struct ctk_textmap {
00370 struct ctk_widget *next;
00371 struct ctk_window *window;
00372 unsigned char x, y;
00373 unsigned char type;
00374 unsigned char w, h;
00375 #if CTK_CONF_WIDGET_FLAGS
00376 unsigned char flags;
00377 #endif
00378 char *textmap;
00379 unsigned char state;
00380 };
00381 #endif
00382
00383
00384
00385
00386 struct ctk_widget_button {
00387 char *text;
00388 };
00389
00390
00391
00392
00393 struct ctk_widget_label {
00394 char *text;
00395 };
00396
00397
00398
00399
00400 struct ctk_widget_hyperlink {
00401 char *text;
00402 char *url;
00403 };
00404
00405 struct ctk_widget_textentry {
00406 char *text;
00407 unsigned char len;
00408 unsigned char state;
00409 unsigned char xpos, ypos;
00410 ctk_textentry_input input;
00411 };
00412
00413 struct ctk_widget_icon {
00414 char *title;
00415 struct process *owner;
00416 unsigned char *bitmap;
00417 char *textmap;
00418 };
00419
00420 struct ctk_widget_bitmap {
00421 unsigned char *bitmap;
00422 unsigned short bw, bh;
00423 };
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443 struct ctk_widget {
00444 struct ctk_widget *next;
00445
00446
00447 struct ctk_window *window;
00448
00449 unsigned char x,
00450
00451
00452 y;
00453
00454
00455 unsigned char type;
00456
00457
00458
00459
00460
00461
00462 unsigned char w,
00463
00464 h;
00465
00466 #if CTK_CONF_WIDGET_FLAGS
00467 unsigned char flags;
00468 #endif
00469
00470 union {
00471 struct ctk_widget_label label;
00472 struct ctk_widget_button button;
00473 struct ctk_widget_hyperlink hyperlink;
00474 struct ctk_widget_textentry textentry;
00475 struct ctk_widget_icon icon;
00476 struct ctk_widget_bitmap bitmap;
00477 } widget;
00478
00479
00480 };
00481
00482
00483 struct ctk_desktop;
00484
00485 #define CTK_WIDGET_FLAG_NONE 0
00486 #define CTK_WIDGET_FLAG_MONOSPACE 1
00487 #define CTK_WIDGET_FLAG_CENTER 2
00488
00489 #if CTK_CONF_WIDGET_FLAGS
00490 #define CTK_WIDGET_SET_FLAG(w, f) ((struct ctk_widget *)(w))->flags = (f)
00491 #else
00492 #define CTK_WIDGET_SET_FLAG(w, f)
00493 #endif
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503
00504
00505 struct ctk_window {
00506 struct ctk_window *next,
00507
00508
00509 *prev;
00510
00511 struct ctk_desktop *desktop;
00512
00513
00514 struct process *owner;
00515
00516
00517
00518
00519 char *title;
00520
00521 unsigned char titlelen;
00522
00523
00524 #if CTK_CONF_WINDOWCLOSE
00525 struct ctk_button closebutton;
00526
00527
00528 #else
00529 struct ctk_label closebutton;
00530 #endif
00531
00532 #if CTK_CONF_WINDOWMOVE
00533 struct ctk_button titlebutton;
00534
00535
00536
00537 #else
00538 struct ctk_label titlebutton;
00539 #endif
00540
00541 #if CTK_CONF_WINDOWS
00542 unsigned char x,
00543
00544 y;
00545
00546 #endif
00547 unsigned char w,
00548
00549 h;
00550
00551
00552
00553 struct ctk_widget *inactive;
00554
00555
00556
00557 struct ctk_widget *active;
00558
00559
00560
00561 struct ctk_widget *focused;
00562
00563
00564
00565 };
00566
00567
00568
00569
00570 struct ctk_menuitem {
00571 char *title;
00572 unsigned char titlelen;
00573
00574 };
00575
00576 #ifdef CTK_CONF_MAXMENUITEMS
00577 #define CTK_MAXMENUITEMS CTK_CONF_MAXMENUITEMS
00578 #else
00579 #define CTK_MAXMENUITEMS 8
00580 #endif
00581
00582
00583
00584
00585 struct ctk_menu {
00586 struct ctk_menu *next;
00587
00588
00589
00590
00591 char *title;
00592 unsigned char titlelen;
00593
00594 #if CC_UNSIGNED_CHAR_BUGS
00595 unsigned int nitems;
00596 unsigned int active;
00597 #else
00598 unsigned char nitems;
00599
00600 unsigned char active;
00601 #endif
00602 struct ctk_menuitem items[CTK_MAXMENUITEMS];
00603
00604
00605 };
00606
00607
00608
00609
00610 struct ctk_menus {
00611 struct ctk_menu *menus;
00612
00613
00614 struct ctk_menu *open;
00615
00616
00617 struct ctk_menu *desktopmenu;
00618
00619
00620
00621
00622 };
00623
00624
00625
00626
00627
00628
00629
00630 struct ctk_desktop {
00631 char *name;
00632
00633 struct ctk_window desktop_window;
00634
00635 struct ctk_window *windows;
00636 struct ctk_window *dialog;
00637
00638
00639 #if CTK_CONF_MENUS
00640 struct ctk_menus menus;
00641 struct ctk_menu *lastmenu;
00642 struct ctk_menu desktopmenu;
00643 #endif
00644
00645 unsigned char height,
00646 width;
00647
00648
00649 #define CTK_REDRAW_NONE 0
00650
00651 #define CTK_REDRAW_ALL 1
00652
00653 #define CTK_REDRAW_WINDOWS 2
00654
00655 #define CTK_REDRAW_WIDGETS 4
00656
00657 #define CTK_REDRAW_MENUS 8
00658
00659 #define CTK_REDRAW_PART 16
00660
00661
00662 #ifndef CTK_CONF_MAX_REDRAWWIDGETS
00663 #define CTK_CONF_MAX_REDRAWWIDGETS 8
00664 #endif
00665 #ifndef CTK_CONF_MAX_REDRAWWINDOWS
00666 #define CTK_CONF_MAX_REDRAWWINDOWS 8
00667 #endif
00668
00669 unsigned char redraw;
00670
00671 struct ctk_widget *redraw_widgets[CTK_CONF_MAX_REDRAWWIDGETS];
00672 unsigned char redraw_widgetptr;
00673
00674 struct ctk_window *redraw_windows[CTK_CONF_MAX_REDRAWWINDOWS];
00675 unsigned char redraw_windowptr;
00676
00677 unsigned char redraw_y1,
00678 redraw_y2;
00679 };
00680
00681
00682
00683 #define CTK_MODE_NORMAL 0
00684 #define CTK_MODE_WINDOWMOVE 1
00685 #define CTK_MODE_SCREENSAVER 2
00686 #define CTK_MODE_EXTERNAL 3
00687
00688
00689 PROCESS_NAME(ctk_process);
00690 void ctk_init(void);
00691 void ctk_restore(void);
00692
00693 void ctk_mode_set(unsigned char mode);
00694 unsigned char ctk_mode_get(void);
00695
00696
00697
00698 CCIF void ctk_window_new(struct ctk_window *window,
00699 unsigned char w, unsigned char h,
00700 char *title);
00701 CCIF void ctk_window_clear(struct ctk_window *w);
00702 CCIF void ctk_window_open(struct ctk_window *w);
00703 #define ctk_window_move(w,xpos,ypos) do { (w)->x=xpos; (w)->y=ypos; } while(0)
00704 CCIF void ctk_window_close(struct ctk_window *w);
00705 CCIF void ctk_window_redraw(struct ctk_window *w);
00706 #define ctk_window_isopen(w) ((w)->next != NULL)
00707
00708
00709
00710 CCIF void ctk_dialog_new(struct ctk_window *window,
00711 unsigned char w, unsigned char h);
00712 CCIF void ctk_dialog_open(struct ctk_window *d);
00713 CCIF void ctk_dialog_close(void);
00714
00715
00716 CCIF void ctk_menu_new(struct ctk_menu *menu, char *title);
00717 CCIF void ctk_menu_add(struct ctk_menu *menu);
00718 CCIF void ctk_menu_remove(struct ctk_menu *menu);
00719 CCIF unsigned char ctk_menuitem_add(struct ctk_menu *menu, char *name);
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734 #define CTK_ICON_ADD(icon, p) ctk_icon_add((struct ctk_widget *)icon, p)
00735 void ctk_icon_add(struct ctk_widget *icon, struct process *p);
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745 #define CTK_WIDGET_ADD(win, widg) \
00746 ctk_widget_add(win, (struct ctk_widget *)widg)
00747 CCIF void CC_FASTCALL ctk_widget_add(struct ctk_window *window,
00748 struct ctk_widget *widget);
00749
00750
00751
00752
00753
00754
00755
00756 #define CTK_WIDGET_FOCUS(win, widg) \
00757 (win)->focused = (struct ctk_widget *)(widg)
00758
00759
00760
00761
00762
00763
00764 #define CTK_WIDGET_REDRAW(widg) \
00765 ctk_widget_redraw((struct ctk_widget *)widg)
00766 CCIF void ctk_widget_redraw(struct ctk_widget *w);
00767
00768
00769
00770
00771
00772
00773 #define CTK_WIDGET_TYPE(w) ((w)->type)
00774
00775
00776
00777
00778
00779
00780
00781
00782 #define CTK_WIDGET_SET_WIDTH(widget, width) do { \
00783 ((struct ctk_widget *)(widget))->w = (width); } while(0)
00784
00785
00786
00787
00788
00789
00790
00791
00792 #define CTK_WIDGET_XPOS(w) (((struct ctk_widget *)(w))->x)
00793
00794
00795
00796
00797
00798
00799
00800
00801 #define CTK_WIDGET_SET_XPOS(w, xpos) \
00802 ((struct ctk_widget *)(w))->x = (xpos)
00803
00804
00805
00806
00807
00808
00809
00810 #define CTK_WIDGET_YPOS(w) (((struct ctk_widget *)(w))->y)
00811
00812
00813
00814
00815
00816
00817
00818
00819 #define CTK_WIDGET_SET_YPOS(w, ypos) \
00820 ((struct ctk_widget *)(w))->y = (ypos)
00821
00822
00823
00824
00825
00826
00827
00828
00829
00830
00831
00832
00833 #define ctk_label_set_height(w, height) \
00834 (w)->widget.label.h = (height)
00835
00836
00837
00838
00839
00840
00841
00842 #define ctk_label_set_text(l, t) (l)->text = (t)
00843
00844
00845
00846
00847
00848
00849
00850 #define ctk_button_set_text(b, t) (b)->text = (t)
00851
00852 #define ctk_bitmap_set_bitmap(b, m) (b)->bitmap = (m)
00853
00854 #define CTK_BUTTON_NEW(widg, xpos, ypos, width, buttontext) \
00855 do { (widg)->window = NULL; \
00856 (widg)->next = NULL; \
00857 (widg)->type = CTK_WIDGET_BUTTON; \
00858 (widg)->x = (xpos); \
00859 (widg)->y = (ypos); \
00860 (widg)->w = (width); \
00861 (widg)->h = 1; \
00862 (widg)->text = (buttontext); \
00863 } while(0)
00864
00865 #define CTK_LABEL_NEW(widg, xpos, ypos, width, height, labeltext) \
00866 do { (widg)->window = NULL; \
00867 (widg)->next = NULL; \
00868 (widg)->type = CTK_WIDGET_LABEL; \
00869 (widg)->x = (xpos); \
00870 (widg)->y = (ypos); \
00871 (widg)->w = (width); \
00872 (widg)->h = (height); \
00873 (widg)->text = (labeltext); \
00874 } while(0)
00875
00876 #define CTK_BITMAP_NEW(widg, xpos, ypos, width, height, bmap) \
00877 do { (widg)->window = NULL; \
00878 (widg)->next = NULL; \
00879 (widg)->type = CTK_WIDGET_BITMAP; \
00880 (widg)->x = (xpos); \
00881 (widg)->y = (ypos); \
00882 (widg)->w = (width); \
00883 (widg)->h = (height); \
00884 (widg)->bitmap = (bmap); \
00885 } while(0)
00886
00887 #define CTK_TEXTENTRY_NEW(widg, xxpos, yypos, width, height, textptr, textlen) \
00888 do { (widg)->window = NULL; \
00889 (widg)->next = NULL; \
00890 (widg)->type = CTK_WIDGET_TEXTENTRY; \
00891 (widg)->x = (xxpos); \
00892 (widg)->y = (yypos); \
00893 (widg)->w = (width); \
00894 (widg)->h = 1; \
00895 (widg)->text = (textptr); \
00896 (widg)->len = (textlen); \
00897 (widg)->state = CTK_TEXTENTRY_NORMAL; \
00898 (widg)->xpos = 0; \
00899 (widg)->ypos = 0; \
00900 (widg)->input = NULL; \
00901 } while(0)
00902
00903 #define CTK_TEXTENTRY_INPUT_NEW(widg, xxpos, yypos, width, height, textptr, textlen, iinput) \
00904 do { (widg)->window = NULL; \
00905 (widg)->next = NULL; \
00906 (widg)->type = CTK_WIDGET_TEXTENTRY; \
00907 (widg)->x = (xxpos); \
00908 (widg)->y = (yypos); \
00909 (widg)->w = (width); \
00910 (widg)->h = (height); \
00911 (widg)->text = (textptr); \
00912 (widg)->len = (textlen); \
00913 (widg)->state = CTK_TEXTENTRY_NORMAL; \
00914 (widg)->xpos = 0; \
00915 (widg)->ypos = 0; \
00916 (widg)->input = (ctk_textentry_input)(iinput); \
00917 } while(0)
00918
00919 #define CTK_HYPERLINK_NEW(widg, xpos, ypos, width, linktext, linkurl) \
00920 do { (widg)->window = NULL; \
00921 (widg)->next = NULL; \
00922 (widg)->type = CTK_WIDGET_HYPERLINK; \
00923 (widg)->x = (xpos); \
00924 (widg)->y = (ypos); \
00925 (widg)->w = (width); \
00926 (widg)->h = 1; \
00927 (widg)->text = (linktext); \
00928 (widg)->url = (linkurl); \
00929 } while(0)
00930
00931
00932 void ctk_desktop_redraw(struct ctk_desktop *d);
00933 CCIF unsigned char ctk_desktop_width(struct ctk_desktop *d);
00934 unsigned char ctk_desktop_height(struct ctk_desktop *d);
00935
00936
00937 CCIF extern process_event_t ctk_signal_keypress,
00938 ctk_signal_widget_activate,
00939 ctk_signal_widget_select,
00940 ctk_signal_timer,
00941 ctk_signal_menu_activate,
00942 ctk_signal_window_close,
00943 ctk_signal_pointer_move,
00944 ctk_signal_pointer_button;
00945
00946 #if CTK_CONF_SCREENSAVER
00947 extern process_event_t ctk_signal_screensaver_stop,
00948 ctk_signal_screensaver_start;
00949
00950 extern unsigned short ctk_screensaver_timeout;
00951
00952
00953
00954
00955
00956 #define CTK_SCREENSAVER_SET_TIMEOUT(t) ctk_screensaver_timeout = (t)
00957
00958
00959
00960
00961
00962 #define CTK_SCREENSAVER_TIMEOUT() ctk_screensaver_timeout
00963 #endif
00964
00965
00966 CCIF extern process_event_t ctk_signal_button_activate,
00967 ctk_signal_button_hover,
00968 ctk_signal_hyperlink_activate,
00969 ctk_signal_hyperlink_hover;
00970
00971
00972
00973
00974
00975
00976
00977
00978
00979 #define CTK_FOCUS_NONE 0
00980
00981 #define CTK_FOCUS_WIDGET 1
00982
00983 #define CTK_FOCUS_WINDOW 2
00984
00985 #define CTK_FOCUS_DIALOG 4
00986
00987
00988
00989
00990 #endif