📄 xmcombo.h
字号:
/* * ComboBox.h - Das schon lange schmerzlich vermisste Combo-Box- * Widget -- nun endlich auf fuer Motif! * * Letzte Modifikation: 04.10.1995 Revisionsstand: 1.32a * * (c) 1993, 1994 Harald Albrecht * Institut fuer Geometrie und Praktische Mathematik * RWTH Aachen, Germany * albrecht@igpm.rwth-aachen.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program (see the file COPYING for more details); * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, * Cambridge, MA 02139, USA. * */#ifndef __ComboBoxWidget_h#define __ComboBoxWidget_h#include <Xm/Xm.h>#if defined(__cplusplus) || defined(c_plusplus)extern "C" {#endif#ifdef XmNselectionCallback#undef XmNselectionCallback#endif #define XmNselectionCallback "selectionCallback"#define XmCSelectionCallback "SelectionCallback"#define XmNunselectionCallback "unselectionCallback"#define XmCUnselectionCallback "UnselectionCallback"#define XmNdropDownCallback "dropDownCallback"#define XmCDropDownCallback "DropDownCallback"#define XmNdropDownCursor "dropDownCursor"#define XmCDropDownCursor "DropDownCursor"/* ICH GLAUB' ES JA EINFACH NICHT! DIESE @#$!%^ BEI DER OSF HABEN * DOCH TATSAECHLICH VERGESSEN, DASS DIE EINTRAEGE IN DER LISTBOX * VIELLEICHT AUCH SORTIERT SEIN SOLLEN -- MUSS MAN DENN ALLES * SELBST MACHEN?! */#define XmNsorted "sorted"#define XmCSorted "Sorted"#define XmNsortingCallback "sortingCallback"#define XmCSortingCallback "SortingCallback"#define XmNstaticList "staticList"#define XmCStaticList "StaticList"#define XmNsquareArrow "squareArrow"#define XmCSquareArrow "SquareArrow"#define XmNarrowSpacingOn "arrowSpacingOn"#define XmCArrowSpacingOn "ArrowSpacingOn"/* * Wie verhaeltsich die Liste, wenn der Focus verloren geht, sobald * der Mauszeiger aus dem Dialog herausbewegt wird? */#define XmNpersistentDropDown "persistentDropDown"#define XmCPersistentDropDown "PersistentDropDown"#define XmNtwmHandlingOn "twmHandlingOn"#define XmCTwmHandlingOn "TwmHandlingOn"/* * alles fuer das Label... */#define XmNshowLabel "showLabel"#define XmCShowLabel "ShowLabel"#define XmNdropDownOffset "dropDownOffset"#define XmCDropDownOffset "DropDownOffset"#define XmNlabelMarginBottom "labelMarginBottom"#define XmCLabelMarginBottom "LabelMarginBottom"#define XmNlabelMarginHeight "labelMarginHeight"#define XmCLabelMarginHeight "LabelMarginHeight"#define XmNlabelMarginLeft "labelMarginLeft"#define XmCLabelMarginLeft "LabelMarginLeft"#define XmNlabelMarginRight "labelMarginRight"#define XmCLabelMarginRight "LabelMarginRight"#define XmNlabelMarginTop "labelMarginTop"#define XmCLabelMarginTop "LabelMarginTop"#define XmNlabelMarginWidth "labelMarginWidth"#define XmCLabelMarginWidth "LabelMarginWidth"/* Callback reasons: (part. predefined) * * XmCR_SINGLE_SELECT user selected item in the list */typedef struct { int reason; /* Grund */ XEvent *event; /* Ausloesender Event */ XmString value; /* Ausgewaehlter Eintrag */ int index; /* Index dieses Eintrages */} XmComboBoxSelectionCallbackStruct,XmComboBoxDefaultActionCallbackStruct;typedef struct { int reason; XEvent *event; Boolean doit; Position currInsert, newInsert; Position startPos, endPos; XmTextBlock text;} XmComboBoxTextVerifyCallbackStruct, *XmComboBoxTextVerifyPtr;/* Callback reasons: new * * XmCR_SHOW_LIST list is dropping down * XmCR_HIDE_LIST list is getting hidden * * XmCR_UNSELECT unselecting item from list or osfDelete */#define XmCR_SHOW_LIST 4200 /* ten times "42", that should */#define XmCR_HIDE_LIST 4201 /* explain everything of live... */#define XmCR_UNSELECT 4202typedef struct { int reason; /* Grund */ XEvent *event; /* Ausloesender Event */} XmComboBoxDropDownCallbackStruct, XmComboBoxUnselectionCallbackStruct;#define XmCR_SORTING 4203#define XmOP_INIT 1#define XmOP_DONE 2#define XmOP_COMPARE 3typedef struct { int reason; XEvent *event; /* IMMER NULL!! */ int operation; void *item_internal; XmString item; int result;} XmComboBoxSortingCallbackStruct, *XmComboBoxSortingPtr;/* Alle Funktionen, um auf die Liste der Combo-Box zuzugreifen. * Bitte immer diese Funktionen dazu benutzen und nicht direkt * auf das entsprechende Widget in der Combo-Box zugreifen! * Aus diesem Grunde sind auch nicht alle Funktionen einer Listbox * verfuegbar, da sich einige Funktionen mit der Verwaltung der * Combo-Box beissen wuerden. */extern void XmComboBoxAddItem(Widget w, XmString item, int pos);extern void XmComboBoxAddItems(Widget w, XmString *items, int item_count, int pos);extern void XmComboBoxAddItemUnselected(Widget w, XmString item, int pos);extern void XmComboBoxDeleteItem(Widget w, XmString item);extern void XmComboBoxDeleteItems(Widget w, XmString *items, int item_count);extern void XmComboBoxDeletePos(Widget w, int pos);extern void XmComboBoxDeleteItemsPos(Widget w, int item_count, int pos);extern void XmComboBoxDeleteAllItems(Widget w);extern void XmComboBoxReplaceItems(Widget w, XmString *old_items, int item_count, XmString *new_items);extern void XmComboBoxReplaceItemsPos(Widget w, XmString *new_items, int item_count, int position);extern Boolean XmComboBoxItemExists(Widget w, XmString item);extern int XmComboBoxItemPos(Widget w, XmString item);extern Boolean XmComboBoxGetMatchPos(Widget w, XmString item, int **pos_list, int *pos_count);extern void XmComboBoxSelectPos(Widget w, int pos, Boolean notify);extern void XmComboBoxSelectItem(Widget w, XmString item, Boolean notify);/* Etwas anders als bei der Listbox, da es sowieso nur einen ausge- * waehlten Eintrag in der Listbox geben kann! * Liefert Index des ausgewaehlten Eintrages oder 0. */extern int XmComboBoxGetSelectedPos(Widget w);extern void XmComboBoxClearItemSelection(Widget w);/* * Nun alle Funktionen, die auf das Eingabefeld zugreifen... * Auch hier gilt wieder, es gibt 'was auf die Finger, wenn jemand * versucht, direkt auf das Eingabefeld direkt zuzugreifen! */extern void XmComboBoxClearSelection(Widget w, Time time);extern Boolean XmComboBoxCopy(Widget w, Time time);extern Boolean XmComboBoxCut(Widget w, Time time);extern XmTextPosition XmComboBoxGetInsertionPosition(Widget w);extern XmTextPosition XmComboBoxGetLastPosition(Widget w);extern int XmComboBoxGetMaxLength(Widget w);extern char * XmComboBoxGetSelection(Widget w);extern Boolean XmComboBoxGetSelectionPosition(Widget w, XmTextPosition *left, XmTextPosition *right);extern char * XmComboBoxGetString(Widget w);extern void XmComboBoxInsert(Widget w, XmTextPosition position, char *value);extern Boolean XmComboBoxPaste(Widget w);extern Boolean XmComboBoxRemove(Widget w);extern void XmComboBoxReplace(Widget w, XmTextPosition from_pos, XmTextPosition to_pos, char *value);extern void XmComboBoxSetAddMode(Widget w, Boolean state);extern void XmComboBoxSetHighlight(Widget w, XmTextPosition left, XmTextPosition right, XmHighlightMode mode);extern void XmComboBoxSetInsertionPosition(Widget w, XmTextPosition position);extern void XmComboBoxSetMaxLength(Widget w, int max_length);extern void XmComboBoxSetSelection(Widget w, XmTextPosition first, XmTextPosition last, Time time);extern void XmComboBoxSetString(Widget w, char *value);extern void XmComboBoxShowPosition(Widget w, XmTextPosition position);extern WidgetClass xmComboBoxWidgetClass; /* Die Klasse hoechstselbst */#ifndef XmIsComboBox#define XmIsComboBox(w) XtIsSubclass(w, xmComboBoxWidgetClass)#endif /* XmIsComboBox */typedef struct _XmComboBoxClassRec *XmComboBoxWidgetClass;typedef struct _XmComboBoxRec *XmComboBoxWidget;extern Widget XmCreateComboBox(Widget parent, String name, ArgList arglist, Cardinal argcount);/* PLEASE do not use this functions if you really not need to do so !!! */extern Widget XmComboBoxGetEditWidget(Widget w);extern Widget XmComboBoxGetListWidget(Widget w);extern Widget XmComboBoxGetLabelWidget(Widget w);#if defined(__cplusplus) || defined(c_plusplus)}#endif#endif /* __ComboBoxWidget_h *//* Ende von ComboBox.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -