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);