Mercurial > hg > xemacs-beta
comparison src/glyphs-widget.c @ 420:41dbb7a9d5f2 r21-2-18
Import from CVS: tag r21-2-18
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:24:09 +0200 |
parents | e804706bfb8c |
children | 95016f13131a |
comparison
equal
deleted
inserted
replaced
419:66615b78f1a5 | 420:41dbb7a9d5f2 |
---|---|
36 #include "frame.h" | 36 #include "frame.h" |
37 #include "insdel.h" | 37 #include "insdel.h" |
38 #include "opaque.h" | 38 #include "opaque.h" |
39 | 39 |
40 DEFINE_IMAGE_INSTANTIATOR_FORMAT (button); | 40 DEFINE_IMAGE_INSTANTIATOR_FORMAT (button); |
41 DEFINE_IMAGE_INSTANTIATOR_FORMAT (combo); | 41 DEFINE_IMAGE_INSTANTIATOR_FORMAT (combo_box); |
42 Lisp_Object Qcombo; | 42 Lisp_Object Qcombo_box; |
43 DEFINE_IMAGE_INSTANTIATOR_FORMAT (edit); | 43 DEFINE_IMAGE_INSTANTIATOR_FORMAT (edit_field); |
44 Lisp_Object Qedit; | 44 Lisp_Object Qedit_field; |
45 DEFINE_IMAGE_INSTANTIATOR_FORMAT (scrollbar); | 45 DEFINE_IMAGE_INSTANTIATOR_FORMAT (scrollbar); |
46 Lisp_Object Qscrollbar; | 46 Lisp_Object Qscrollbar; |
47 DEFINE_IMAGE_INSTANTIATOR_FORMAT (widget); | 47 DEFINE_IMAGE_INSTANTIATOR_FORMAT (widget); |
48 #if 0 | 48 #if 0 |
49 DEFINE_IMAGE_INSTANTIATOR_FORMAT (group); | 49 DEFINE_IMAGE_INSTANTIATOR_FORMAT (group); |
50 Lisp_Object Qgroup; | 50 Lisp_Object Qgroup; |
51 #endif | 51 #endif |
52 DEFINE_IMAGE_INSTANTIATOR_FORMAT (label); | 52 DEFINE_IMAGE_INSTANTIATOR_FORMAT (label); |
53 Lisp_Object Qlabel; | 53 Lisp_Object Qlabel; |
54 DEFINE_IMAGE_INSTANTIATOR_FORMAT (progress); | 54 DEFINE_IMAGE_INSTANTIATOR_FORMAT (progress_gauge); |
55 Lisp_Object Qprogress; | 55 Lisp_Object Qprogress_gauge; |
56 DEFINE_IMAGE_INSTANTIATOR_FORMAT (tree); | 56 DEFINE_IMAGE_INSTANTIATOR_FORMAT (tree_view); |
57 Lisp_Object Qtree; | 57 Lisp_Object Qtree_view; |
58 DEFINE_IMAGE_INSTANTIATOR_FORMAT (tab); | 58 DEFINE_IMAGE_INSTANTIATOR_FORMAT (tab_control); |
59 Lisp_Object Qtab; | 59 Lisp_Object Qtab_control; |
60 | 60 |
61 Lisp_Object Q_descriptor, Q_height, Q_width, Q_properties, Q_items; | 61 Lisp_Object Q_descriptor, Q_height, Q_width, Q_properties, Q_items; |
62 Lisp_Object Q_image, Q_text, Q_percent; | 62 Lisp_Object Q_image, Q_text, Q_percent; |
63 | 63 |
64 #define WIDGET_BORDER_HEIGHT 2 | 64 #define WIDGET_BORDER_HEIGHT 2 |
185 subwindows or widgets for example). For widgets we need to preserve | 185 subwindows or widgets for example). For widgets we need to preserve |
186 this type information so that we can do widget specific operations on | 186 this type information so that we can do widget specific operations on |
187 the instances. This is encoded in the widget type | 187 the instances. This is encoded in the widget type |
188 field. widget_property gets invoked by decoding the primary type | 188 field. widget_property gets invoked by decoding the primary type |
189 (Qwidget), widget property then invokes based on the secondary type | 189 (Qwidget), widget property then invokes based on the secondary type |
190 (Qedit for example). It is debatable that we should wire things in this | 190 (Qedit_field for example). It is debatable that we should wire things in this |
191 generalised way rather than treating widgets specially in | 191 generalised way rather than treating widgets specially in |
192 image_instance_property. */ | 192 image_instance_property. */ |
193 static Lisp_Object | 193 static Lisp_Object |
194 widget_property (Lisp_Object image_instance, Lisp_Object prop) | 194 widget_property (Lisp_Object image_instance, Lisp_Object prop) |
195 { | 195 { |
268 && !NILP (find_keyword_in_vector (instantiator, Q_pixel_height))) | 268 && !NILP (find_keyword_in_vector (instantiator, Q_pixel_height))) |
269 signal_simple_error ("Must supply only one of :height and :pixel-height", instantiator); | 269 signal_simple_error ("Must supply only one of :height and :pixel-height", instantiator); |
270 } | 270 } |
271 | 271 |
272 static void | 272 static void |
273 combo_validate (Lisp_Object instantiator) | 273 combo_box_validate (Lisp_Object instantiator) |
274 { | 274 { |
275 widget_validate (instantiator); | 275 widget_validate (instantiator); |
276 if (NILP (find_keyword_in_vector (instantiator, Q_properties))) | 276 if (NILP (find_keyword_in_vector (instantiator, Q_properties))) |
277 signal_simple_error ("Must supply item list", instantiator); | 277 signal_simple_error ("Must supply item list", instantiator); |
278 } | 278 } |
432 pointer_bg, dest_mask, domain, 1, 0, 0); | 432 pointer_bg, dest_mask, domain, 1, 0, 0); |
433 } | 433 } |
434 | 434 |
435 /* combo-box generic instantiation - get he heigh right */ | 435 /* combo-box generic instantiation - get he heigh right */ |
436 static void | 436 static void |
437 combo_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 437 combo_box_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
438 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 438 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
439 int dest_mask, Lisp_Object domain) | 439 int dest_mask, Lisp_Object domain) |
440 { | 440 { |
441 Lisp_Object data = Fplist_get (find_keyword_in_vector (instantiator, Q_properties), | 441 Lisp_Object data = Fplist_get (find_keyword_in_vector (instantiator, Q_properties), |
442 Q_items, Qnil); | 442 Q_items, Qnil); |
445 widget_instantiate_1 (image_instance, instantiator, pointer_fg, | 445 widget_instantiate_1 (image_instance, instantiator, pointer_fg, |
446 pointer_bg, dest_mask, domain, len + 1, 0, 0); | 446 pointer_bg, dest_mask, domain, len + 1, 0, 0); |
447 } | 447 } |
448 | 448 |
449 static void | 449 static void |
450 tab_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, | 450 tab_control_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, |
451 Lisp_Object pointer_fg, Lisp_Object pointer_bg, | 451 Lisp_Object pointer_fg, Lisp_Object pointer_bg, |
452 int dest_mask, Lisp_Object domain) | 452 int dest_mask, Lisp_Object domain) |
453 { | 453 { |
454 Lisp_Object data = Fplist_get (find_keyword_in_vector (instantiator, Q_properties), | 454 Lisp_Object data = Fplist_get (find_keyword_in_vector (instantiator, Q_properties), |
455 Q_items, Qnil); | 455 Q_items, Qnil); |
539 IIFORMAT_VALID_KEYWORD (button, Q_image, check_valid_glyph_or_image); | 539 IIFORMAT_VALID_KEYWORD (button, Q_image, check_valid_glyph_or_image); |
540 VALID_WIDGET_KEYWORDS (button); | 540 VALID_WIDGET_KEYWORDS (button); |
541 VALID_GUI_KEYWORDS (button); | 541 VALID_GUI_KEYWORDS (button); |
542 | 542 |
543 /* edit fields */ | 543 /* edit fields */ |
544 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (edit, "edit"); | 544 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (edit_field, "edit-field"); |
545 IIFORMAT_HAS_SHARED_METHOD (edit, validate, widget); | 545 IIFORMAT_HAS_SHARED_METHOD (edit_field, validate, widget); |
546 IIFORMAT_HAS_SHARED_METHOD (edit, possible_dest_types, widget); | 546 IIFORMAT_HAS_SHARED_METHOD (edit_field, possible_dest_types, widget); |
547 IIFORMAT_HAS_SHARED_METHOD (edit, instantiate, widget); | 547 IIFORMAT_HAS_SHARED_METHOD (edit_field, instantiate, widget); |
548 VALID_WIDGET_KEYWORDS (edit); | 548 VALID_WIDGET_KEYWORDS (edit_field); |
549 VALID_GUI_KEYWORDS (edit); | 549 VALID_GUI_KEYWORDS (edit_field); |
550 | 550 |
551 /* combo box */ | 551 /* combo box */ |
552 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (combo, "combo"); | 552 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (combo_box, "combo-box"); |
553 IIFORMAT_HAS_METHOD (combo, validate); | 553 IIFORMAT_HAS_METHOD (combo_box, validate); |
554 IIFORMAT_HAS_SHARED_METHOD (combo, possible_dest_types, widget); | 554 IIFORMAT_HAS_SHARED_METHOD (combo_box, possible_dest_types, widget); |
555 IIFORMAT_HAS_METHOD (combo, instantiate); | 555 IIFORMAT_HAS_METHOD (combo_box, instantiate); |
556 VALID_GUI_KEYWORDS (combo); | 556 VALID_GUI_KEYWORDS (combo_box); |
557 | 557 |
558 IIFORMAT_VALID_KEYWORD (combo, Q_width, check_valid_int); | 558 IIFORMAT_VALID_KEYWORD (combo_box, Q_width, check_valid_int); |
559 IIFORMAT_VALID_KEYWORD (combo, Q_height, check_valid_int); | 559 IIFORMAT_VALID_KEYWORD (combo_box, Q_height, check_valid_int); |
560 IIFORMAT_VALID_KEYWORD (combo, Q_pixel_width, check_valid_int); | 560 IIFORMAT_VALID_KEYWORD (combo_box, Q_pixel_width, check_valid_int); |
561 IIFORMAT_VALID_KEYWORD (combo, Q_face, check_valid_face); | 561 IIFORMAT_VALID_KEYWORD (combo_box, Q_face, check_valid_face); |
562 IIFORMAT_VALID_KEYWORD (combo, Q_properties, check_valid_item_list); | 562 IIFORMAT_VALID_KEYWORD (combo_box, Q_properties, check_valid_item_list); |
563 | 563 |
564 /* scrollbar */ | 564 /* scrollbar */ |
565 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (scrollbar, "scrollbar"); | 565 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (scrollbar, "scrollbar"); |
566 IIFORMAT_HAS_SHARED_METHOD (scrollbar, validate, widget); | 566 IIFORMAT_HAS_SHARED_METHOD (scrollbar, validate, widget); |
567 IIFORMAT_HAS_SHARED_METHOD (scrollbar, possible_dest_types, widget); | 567 IIFORMAT_HAS_SHARED_METHOD (scrollbar, possible_dest_types, widget); |
571 IIFORMAT_VALID_KEYWORD (scrollbar, Q_pixel_width, check_valid_int); | 571 IIFORMAT_VALID_KEYWORD (scrollbar, Q_pixel_width, check_valid_int); |
572 IIFORMAT_VALID_KEYWORD (scrollbar, Q_pixel_height, check_valid_int); | 572 IIFORMAT_VALID_KEYWORD (scrollbar, Q_pixel_height, check_valid_int); |
573 IIFORMAT_VALID_KEYWORD (scrollbar, Q_face, check_valid_face); | 573 IIFORMAT_VALID_KEYWORD (scrollbar, Q_face, check_valid_face); |
574 | 574 |
575 /* progress guage */ | 575 /* progress guage */ |
576 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (progress, "progress"); | 576 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (progress_gauge, "progress-gauge"); |
577 IIFORMAT_HAS_SHARED_METHOD (progress, validate, widget); | 577 IIFORMAT_HAS_SHARED_METHOD (progress_gauge, validate, widget); |
578 IIFORMAT_HAS_SHARED_METHOD (progress, possible_dest_types, widget); | 578 IIFORMAT_HAS_SHARED_METHOD (progress_gauge, possible_dest_types, widget); |
579 IIFORMAT_HAS_SHARED_METHOD (progress, instantiate, combo); | 579 IIFORMAT_HAS_SHARED_METHOD (progress_gauge, instantiate, combo_box); |
580 VALID_WIDGET_KEYWORDS (progress); | 580 VALID_WIDGET_KEYWORDS (progress_gauge); |
581 VALID_GUI_KEYWORDS (progress); | 581 VALID_GUI_KEYWORDS (progress_gauge); |
582 | 582 |
583 /* tree view */ | 583 /* tree view */ |
584 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tree, "tree"); | 584 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tree_view, "tree-view"); |
585 IIFORMAT_HAS_SHARED_METHOD (tree, validate, combo); | 585 IIFORMAT_HAS_SHARED_METHOD (tree_view, validate, combo_box); |
586 IIFORMAT_HAS_SHARED_METHOD (tree, possible_dest_types, widget); | 586 IIFORMAT_HAS_SHARED_METHOD (tree_view, possible_dest_types, widget); |
587 IIFORMAT_HAS_SHARED_METHOD (tree, instantiate, combo); | 587 IIFORMAT_HAS_SHARED_METHOD (tree_view, instantiate, combo_box); |
588 VALID_WIDGET_KEYWORDS (tree); | 588 VALID_WIDGET_KEYWORDS (tree_view); |
589 VALID_GUI_KEYWORDS (tree); | 589 VALID_GUI_KEYWORDS (tree_view); |
590 IIFORMAT_VALID_KEYWORD (tree, Q_properties, check_valid_item_list); | 590 IIFORMAT_VALID_KEYWORD (tree_view, Q_properties, check_valid_item_list); |
591 | 591 |
592 /* tab control */ | 592 /* tab control */ |
593 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tab, "tab"); | 593 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (tab_control, "tab-control"); |
594 IIFORMAT_HAS_SHARED_METHOD (tab, validate, combo); | 594 IIFORMAT_HAS_SHARED_METHOD (tab_control, validate, combo_box); |
595 IIFORMAT_HAS_SHARED_METHOD (tab, possible_dest_types, widget); | 595 IIFORMAT_HAS_SHARED_METHOD (tab_control, possible_dest_types, widget); |
596 IIFORMAT_HAS_METHOD (tab, instantiate); | 596 IIFORMAT_HAS_METHOD (tab_control, instantiate); |
597 VALID_WIDGET_KEYWORDS (tab); | 597 VALID_WIDGET_KEYWORDS (tab_control); |
598 VALID_GUI_KEYWORDS (tab); | 598 VALID_GUI_KEYWORDS (tab_control); |
599 IIFORMAT_VALID_KEYWORD (tab, Q_properties, check_valid_item_list); | 599 IIFORMAT_VALID_KEYWORD (tab_control, Q_properties, check_valid_item_list); |
600 | 600 |
601 /* labels */ | 601 /* labels */ |
602 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (label, "label"); | 602 INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (label, "label"); |
603 IIFORMAT_HAS_SHARED_METHOD (label, possible_dest_types, widget); | 603 IIFORMAT_HAS_SHARED_METHOD (label, possible_dest_types, widget); |
604 IIFORMAT_HAS_SHARED_METHOD (label, instantiate, static); | 604 IIFORMAT_HAS_SHARED_METHOD (label, instantiate, static); |