1/* 2 * ComboBoxP.h - Das schon lange schmerzlich vermisste Combo-Box- 3 * Widget -- nun endlich auf fuer Motif! 4 * Wahlweise Motif 1.1 oder 1.2. 5 * 6 * Letzte Modifikation: 04.10.1995 Revisionsstand: 1.32a 7 * 8 * (c) 1993, 1994 Harald Albrecht 9 * Institut fuer Geometrie und Praktische Mathematik 10 * RWTH Aachen, Germany 11 * albrecht@igpm.rwth-aachen.de 12 * 13 * This program is free software; you can redistribute it and/or modify 14 * it under the terms of the GNU General Public License as published by 15 * the Free Software Foundation; either version 2 of the License, or 16 * (at your option) any later version. 17 * 18 * This program is distributed in the hope that it will be useful, 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * GNU General Public License for more details. 22 * 23 * You should have received a copy of the GNU General Public License 24 * along with this program (see the file COPYING for more details); 25 * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, 26 * Cambridge, MA 02139, USA. 27 * 28 */ 29#ifndef __ComboBoxWidgetP_h 30#define __ComboBoxWidgetP_h 31 32#include "xmcombo.h" 33#include <Xm/XmP.h> 34#if (XmVersion > 1001) /* sounds like tales from 1000 and 1 night.... */ 35#include <Xm/ManagerP.h> 36#endif 37 38/********************************************************************* 39 * Klassendefinition 40 *********************************************************************/ 41/* Neue Datenfelder fuer den Klassenrecord der Center-Widgetklasse */ 42typedef struct _XmComboBoxClassPart { 43 int Just_to_keep_the_compiler_happy; /* Der Name ist Programm */ 44} XmComboBoxClassPart; 45/* 46 * Nun folgt die vollstaendige Klassenstruktur, mit all' den Felder, 47 * die bereits von den Vorfahren geerbt wurden. 48 */ 49typedef struct _XmComboBoxClassRec { 50 CoreClassPart core_class; 51 CompositeClassPart composite_class; 52 ConstraintClassPart constraint_class; 53 XmManagerClassPart manager_class; 54 XmComboBoxClassPart combobox_class; 55} XmComboBoxClassRec; 56extern XmComboBoxClassRec xmComboBoxClassRec; 57 58/********************************************************************* 59 *Instanzdefinition 60 *********************************************************************/ 61typedef struct _XmComboBoxPart { 62/* Resourcen ... hierauf darf von aussen zugegriffen werden! */ 63 Boolean Editable; /* Editierbare Eingabezeile ? */ 64 Boolean StaticList; /* Liste immer dargestellt? */ 65 unsigned char SelectionPolicy; /* Was geht hier ab?! */ 66 unsigned char ScrollBarDisplayPolicy; 67 unsigned char ListSizePolicy; /* Rollbalken! */ 68 Boolean AutomaticSelection; /* Wann Callbacks aufrufen? */ 69 Boolean Sorted; /* Liste sortiert */ 70 XtCallbackList SortingCBL; /* Wie wird extern sortiert? */ 71 int VisibleItemCount; /* Anz dargstellte Eintraege */ 72 XmFontList Font; /* verwendete Fonts */ 73 XtCallbackList SelectionCBL; /* Auswahl aus Liste */ 74 XtCallbackList UnselectionCBL; /* Auswahl zurueckgenommen */ 75 XtCallbackList DefaultActionCBL; /* bei Doppelklick */ 76 XtCallbackList DropDownCBL; /* Liste angezeigt/versteckt */ 77 XtCallbackList ModifyVerifyCBL; /* Vor Aenderung im Textfeld */ 78 XtCallbackList ValueChangedCBL; /* Danach... */ 79 XtCallbackList MotionVerifyCBL; /* Der Cursor bewegt sich doch*/ 80 XtCallbackList ActivateCBL; /* Eingabe beendet? */ 81 Boolean SquareArrow; /* Quadratischer Pfeil? */ 82 Boolean ArrowSpacingOn; /* Abstand zw. Pfeil und Text */ 83 Boolean Persistent; /* Liste & Focus-Out */ 84 Boolean TwmHandlingOn; /* dto. */ 85 Boolean ShowLabel; /* Label anzeigen? */ 86 Position DropDownOffset; /* delta Ecke Eingabefeld, 87 Liste */ 88 89/* Ab hier wird's privat! */ 90 Widget EditCtrl; /* Editorzeile */ 91 Widget ArrowCtrl; /* Pfeil nach unten */ 92 Widget LabelCtrl; /* Text links neben dem Eingabefeld */ 93 94 Widget PopupShell; /* Shell, in der die Liste liegt */ 95 Widget ListCtrl; /* Listenfeld */ 96 97 Widget MyNextShell; 98 99 Cursor ArrowCursor; 100 Boolean InInit; 101 102 int LastSelection; 103 104 Boolean ListVisible; 105 Boolean IgnoreFocusOut; 106 Boolean PendingFocusOut; 107 Boolean PendingOverrideInOut; 108 XtWorkProcId WorkProcID; 109 XEvent xevent; 110 111 Boolean PassVerification; 112 Boolean ConvertBitmapToPixmap, 113 ConvertBitmapToPixmapInsensitive; 114 Pixmap LabelPixmap, LabelInsensitivePixmap; 115 116 XtPointer Dummy; 117} XmComboBoxPart; 118 119/* 120 * vollstaengige Instanzenstruktur 121 */ 122typedef struct _XmComboBoxRec { 123 CorePart core; 124 CompositePart composite; 125 ConstraintPart constraint; 126 XmManagerPart manager; 127 XmComboBoxPart combobox; 128} XmComboBoxRec; 129 130#endif 131/* Ende von ComboBoxP.h */ 132