/** * * $Id: ManagerP.h,v 1.1 2004/08/28 19:23:25 dannybackx Exp $ * * Copyright (C) 1995 Free Software Foundation, Inc. * Copyright © 1995, 1997, 1999, 2000, 2001 LessTif Development Team * * This file is part of the GNU LessTif Library. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * **/ #ifndef _XM_MANAGERP_H #define _XM_MANAGERP_H #include #ifdef __cplusplus extern "C" { #endif #define MCEPTR(cl) \ ((XmManagerClassExt *)(&(((XmManagerWidgetClass)(cl))->manager_class.extension))) #define _XmGetManagerClassExtPtr(cl, o) \ ((*MCEPTR(cl) && (((*MCEPTR(cl))->record_type) == (o))) \ ? MCEPTR(cl) \ : ((XmManagerClassExt *)_XmGetClassExtensionPtr(((XmGenericClassExt *)MCEPTR(cl)), (o)))) /* structure used for storing accelerator and mnemonic information */ typedef struct { unsigned int eventType; KeySym keysym; KeyCode key; unsigned int modifiers; Widget component; Boolean needGrab; Boolean isMnemonic; } XmKeyboardData; /* Define the manager instance part */ typedef struct { Pixel foreground; Dimension shadow_thickness; Pixel top_shadow_color; Pixmap top_shadow_pixmap; Pixel bottom_shadow_color; Pixmap bottom_shadow_pixmap; Pixel highlight_color; Pixmap highlight_pixmap; XtCallbackList help_callback; XtPointer user_data; Boolean traversal_on; unsigned char unit_type; XmNavigationType navigation_type; /* private instance variables */ Boolean event_handler_added; Widget active_child; Widget highlighted_widget; Widget accelerator_widget; Boolean has_focus; XmStringDirection string_direction; /* 2.x */ XmKeyboardData *keyboard_list; short num_keyboard_entries; short size_keyboard_list; XmGadget selected_gadget; XmGadget eligible_for_multi_button_event; GC background_GC; GC highlight_GC; GC top_shadow_GC; GC bottom_shadow_GC; Widget initial_focus; XtCallbackList popup_handler_callback; /* new for 2.0 */ } XmManagerPart; typedef struct { XtPointer next_extension; XrmQuark record_type; long version; Cardinal record_size; XmTraversalChildrenProc traversal_children; } XmManagerClassExtRec, *XmManagerClassExt; #define XmManagerClassExtVersion 1L /* Define the full instance record */ typedef struct _XmManagerRec { CorePart core; CompositePart composite; ConstraintPart constraint; XmManagerPart manager; } XmManagerRec; /* Define class part structure */ typedef struct { String translations; XmSyntheticResource *syn_resources; int num_syn_resources; XmSyntheticResource *syn_constraint_resources; int num_syn_constraint_resources; XmParentProcessProc parent_process; XtPointer extension; } XmManagerClassPart; #define XmInheritParentProcess ((XmParentProcessProc) _XtInherit) /* Define the full class record */ typedef struct _XmManagerClassRec { CoreClassPart core_class; CompositeClassPart composite_class; ConstraintClassPart constraint_class; XmManagerClassPart manager_class; } XmManagerClassRec; /* manager constraints */ typedef struct _XmManagerConstraintPart { int unused; } XmManagerConstraintPart; typedef struct _XmManagerConstraintRec { XmManagerConstraintPart manager; } XmManagerConstraintRec, *XmManagerConstraintPtr; XMLIBEXPORT extern XmManagerClassRec xmManagerClassRec; /* * easy access macros -- FOR USE BY GADGET CODE ONLY */ #define XmParentTopShadowGC(w) (((XmManagerWidget) \ (((XmGadget)(w))->object.parent))->manager.top_shadow_GC) #define XmParentBottomShadowGC(w) (((XmManagerWidget) \ (((XmGadget)(w))->object.parent))->manager.bottom_shadow_GC) #define XmParentHighlightGC(w) (((XmManagerWidget) \ (((XmGadget)(w))->object.parent))->manager.highlight_GC) #define XmParentBackgroundGC(w) (((XmManagerWidget) \ (((XmGadget)(w))->object.parent))->manager.background_GC) /* * easy access macros -- FOR USE BY MANAGERS. */ #define MGR_SizeKeyboardList(m) (((XmManagerWidget)(m))->manager.size_keyboard_list) #define MGR_ShadowThickness(m) (((XmManagerWidget)(m))->manager.shadow_thickness) #define MGR_KeyboardList(m) (((XmManagerWidget)(m))->manager.keyboard_list) #define MGR_NumKeyboardEntries(m) (((XmManagerWidget)(m))->manager.num_keyboard_entries) /* Motif 2.* */ #define MGR_LayoutDirection(m) (((XmManagerWidget)(m))->manager.string_direction) /* internal manager routines */ Boolean _XmParentProcess(Widget widget, XmParentProcessData data); void _XmDestroyParentCallback ( Widget w, XtPointer client, XtPointer call ); /* What the F is this? */ void _XmSocorro(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmClearShadowType(Widget w, Dimension old_width, Dimension old_height, Dimension old_shadow_thickness, Dimension old_highlight_thickness); /* action routine prototypes */ void _XmGadgetButtonMotion(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetArm(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetActivate(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetMultiArm(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetMultiActivate(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetDrag(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetSelect(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmParentActivate(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmParentCancel(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraversePrevTabGroup(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseNextTabGroup(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraversePrev(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseNext(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseUp(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseDown(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseLeft(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseRight(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetTraverseHome(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetHelp(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmGadgetKeyInput(Widget w, XEvent *event, String *params, Cardinal *num_params); void _XmManagerHelp(Widget w, XEvent *event, String *params, Cardinal *num_params); #ifdef __cplusplus } #endif #endif /* _XM_MANAGERP_H */