1 /* 2 * Motif 3 * 4 * Copyright (c) 1987-2012, The Open Group. All rights reserved. 5 * 6 * These libraries and programs are free software; you can 7 * redistribute them and/or modify them under the terms of the GNU 8 * Lesser General Public License as published by the Free Software 9 * Foundation; either version 2 of the License, or (at your option) 10 * any later version. 11 * 12 * These libraries and programs are distributed in the hope that 13 * they will be useful, but WITHOUT ANY WARRANTY; without even the 14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 15 * PURPOSE. See the GNU Lesser General Public License for more 16 * details. 17 * 18 * You should have received a copy of the GNU Lesser General Public 19 * License along with these librararies and programs; if not, write 20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth 21 * Floor, Boston, MA 02110-1301 USA 22 */ 23 #ifndef _XmDisplayP_h 24 #define _XmDisplayP_h 25 26 #include <Xm/DesktopP.h> 27 #include <Xm/VendorSEP.h> 28 #include <Xm/DropSMgr.h> 29 #include <Xm/Display.h> 30 #include <Xm/ScreenP.h> 31 32 /* A little incest */ 33 #include <Xm/DragCP.h> 34 #include <Xm/VirtKeysP.h> 35 36 #include <Xm/TearOffP.h> 37 38 #ifdef __cplusplus 39 extern "C" { 40 #endif 41 42 typedef Widget (*XmDisplayGetDisplayProc)(Display *); 43 44 45 typedef struct { 46 XmDisplayGetDisplayProc GetDisplay; 47 XtPointer extension; 48 } XmDisplayClassPart; 49 50 /* 51 * we make it a appShell subclass so it can have it's own instance 52 * hierarchy 53 */ 54 typedef struct _XmDisplayClassRec{ 55 CoreClassPart core_class; 56 CompositeClassPart composite_class; 57 ShellClassPart shell_class; 58 WMShellClassPart wm_shell_class; 59 VendorShellClassPart vendor_shell_class; 60 TopLevelShellClassPart top_level_shell_class; 61 ApplicationShellClassPart application_shell_class; 62 XmDisplayClassPart display_class; 63 } XmDisplayClassRec; 64 65 typedef struct _XmModalDataRec{ 66 Widget wid; 67 XmVendorShellExtObject ve; 68 XmVendorShellExtObject grabber; 69 Boolean exclusive; 70 Boolean springLoaded; 71 } XmModalDataRec, *XmModalData; 72 73 typedef struct { 74 unsigned char dragInitiatorProtocolStyle; 75 unsigned char dragReceiverProtocolStyle; 76 77 unsigned char userGrabbed; /* flag for menu vs dnd */ 78 79 WidgetClass dragContextClass; 80 WidgetClass dropTransferClass; 81 WidgetClass dropSiteManagerClass; 82 XmDragContext activeDC; 83 XmDropSiteManagerObject dsm; 84 Time lastDragTime; 85 Window proxyWindow; 86 87 XmModalData modals; 88 Cardinal numModals; 89 Cardinal maxModals; 90 XtPointer xmim_info; 91 92 String bindingsString; 93 XmVKeyBindingRec *bindings; 94 XKeyEvent *lastKeyEvent; /* unused */ 95 unsigned char keycode_tag[XmKEYCODE_TAG_SIZE]; /* unused */ 96 97 int shellCount; 98 XtPointer displayInfo; /* extension */ 99 XtPointer user_data; 100 int motif_version ; 101 XtEnum enable_warp ; 102 Cardinal num_bindings; 103 XtCallbackList dragStartCallback; 104 XtCallbackList noFontCallback; 105 XtCallbackList noRenditionCallback; 106 Boolean displayHasShapeExtension; 107 108 XtEnum enable_btn1_transfer ; 109 Boolean enable_button_tab ; 110 Boolean enable_etched_in_menu; 111 Boolean default_button_emphasis; 112 Boolean enable_toggle_color; 113 Boolean enable_toggle_visual; 114 Boolean enable_drag_icon; 115 Boolean enable_unselectable_drag; 116 Boolean enable_thin_thickness; 117 Boolean enable_multi_key_bindings; 118 } XmDisplayPart, *XmDisplayPartPtr; 119 120 typedef struct _XmDisplayInfo { 121 /* so much for information hiding */ 122 Cursor SashCursor; /* Sash.c */ 123 Widget destinationWidget; /* Dest.c */ 124 Cursor TearOffCursor; /* TearOff.c */ 125 XtPointer UniqueStamp; /* UniqueEvnt.c */ 126 XmExcludedParentPaneRec excParentPane;/* TearOff.c */ 127 unsigned short resetFocusFlag; /* TravAct.c */ 128 Boolean traversal_in_progress; /* Traversal.c */ 129 } XmDisplayInfo; 130 131 typedef struct _XmDisplayRec{ 132 CorePart core; 133 CompositePart composite; 134 ShellPart shell; 135 WMShellPart wm; 136 VendorShellPart vendor; 137 TopLevelShellPart topLevel; 138 ApplicationShellPart application; 139 XmDisplayPart display; 140 } XmDisplayRec; 141 142 externalref XmDisplayClassRec xmDisplayClassRec; 143 144 externalref String _Xm_MOTIF_DRAG_AND_DROP_MESSAGE ; 145 146 147 #ifdef __cplusplus 148 } /* Close scope of 'extern "C"' declaration which encloses file. */ 149 #endif 150 151 #endif /* _XmDisplayP_h */ 152 /* DON'T ADD STUFF AFTER THIS #endif */ 153 154