00001 /** 00002 * \file xmipane.h <mi32/xmipane.h> 00003 * \brief Definitions for XmiPane widget. 00004 * 00005 * \if NODOC 00006 * $Id: xmipane.h_v 1.8 2004/03/08 15:37:15 mju Exp $ 00007 * 00008 * $Log: xmipane.h_v $ 00009 * Revision 1.8 2004/03/08 15:37:15 mju 00010 * Fix comment for old mgui hdr. 00011 * 00012 * Revision 1.7 2003/09/15 13:49:56 fileserver!dwilliss 00013 * Doxygen 00014 * 00015 * Revision 1.6 2002/02/20 16:01:29 mju 00016 * Add comments for support XtNminHeight/Width constraint resources. 00017 * 00018 * Revision 1.5 2001/12/20 14:37:55 mju 00019 * Change comment about spacing to say not added around border. 00020 * 00021 * Revision 1.4 2001/12/11 17:54:50 mju 00022 * Add orientations for horizontal LtoR and RtoL. 00023 * 00024 * Revision 1.3 2001/12/11 17:17:23 mju 00025 * Change default sizealign to FixedSize. 00026 * 00027 * Revision 1.2 2001/12/11 16:59:36 mju 00028 * Add documentation comments. 00029 * 00030 * Revision 1.1 2001/12/10 21:17:03 mju 00031 * Initial revision 00032 * 00033 * \endif 00034 **/ 00035 00036 #ifndef INC_MI32_XMIPANE_H 00037 #define INC_MI32_XMIPANE_H 00038 00039 #ifndef _XmBulletinBoard_h 00040 #include <Xm/BulletinB.h> 00041 #endif 00042 00043 extern "C" { 00044 00045 //!:Associate with "XmiPane widget functions" 00046 //!\addtogroup XmiPane XmiPane Widget Functions 00047 //!@{ 00048 00049 extern WidgetClass xmiPaneWidgetClass; 00050 00051 //! Add expanding space to pane. 00052 //! Space will be inserted after the most recently added child, or 00053 //! if no children have yet been added, before the first child. 00054 void XmiPaneAddSpaceExpanding ( 00055 Widget PaneWidget 00056 ); 00057 00058 //! Add fixed space to pane. 00059 //! Space will be inserted after the most recently added child, or 00060 //! if no children have yet been added, before the first child. 00061 void XmiPaneAddSpaceFixed ( 00062 Widget PaneWidget, 00063 int size 00064 ); 00065 00066 //! Create unmanaged XmiPane widget. 00067 //! 00068 //! An XmiPane is a composite container widget which places its children in either a 00069 //! horizontal or vertical "pane". Children are arranged in the order in which they 00070 //! are added, with optional fixed and expanding space between each child and before 00071 //! the first child. 00072 //! 00073 //! XmiPane inherits behavior from XmBulletinBoard. 00074 //! The class pointer is xmiPaneWidgetClass. 00075 //! 00076 //! 00077 //! The following resources are available for XmiPane: 00078 //! Name Default Access 00079 //! Class Type 00080 //! XmNmarginHeight 0 CSG 00081 //! XmCMarginHeight Dimension (Inherited from BulletinBoard) 00082 //! XmNmarginWidth 0 CSG 00083 //! XmCMarginWidth Dimension (Inherited from BulletinBoard) 00084 //! XtNorientation XmiPANE_ORIENTATION_HORIZONTAL CG 00085 //! XtCOrientation unsigned char 00086 //! XmiNspacing 4 CSG 00087 //! XmiCSpacing Dimension 00088 //! XmiNignoreNonVisible False CSG 00089 //! XmiCIgnoreNonVisible Boolean 00090 //! 00091 //! XtNorientation 00092 //! Determines whether children are horizontally or vertically. Possible values are: 00093 //! XmiPANE_ORIENTATION_HORIZONTAL Order horizontally based on locale 00094 //! XmiPANE_ORIENTATION_HORIZONTAL_LTOR Order horizontally left to right 00095 //! XmiPANE_ORIENTATION_HORIZONTAL_RTOL Order horizontally right to left 00096 //! XmiPANE_ORIENTATION_VERTICAL Order vertically top to bottom 00097 //! Values are equal to the corresponding MGUI::LAYOUT_ORIENTATION enum values in <mgui/layout.h>. 00098 //! 00099 //! XmiNspacing 00100 //! Determines spacing between children in the pane orientation. This spacing is not added 00101 //! between the children and pane edges, use XmNmarginWidth and XmNmarginHeight in that case. 00102 //! 00103 //! XmiNignoreNonVisible 00104 //! Determines whether space for nonvisible (unmanaged) children is retained in the layout 00105 //! or not. The default of False will retain space, thus retaining all managed child 00106 //! positions. Setting this resource to True will cause the Pane to adjust the positions 00107 //! of remaining visible children to fill the space left by the unmanaged child(ren). 00108 //! 00109 //! 00110 //! The following constraint resources are available to children of XmiPane: 00111 //! Name Default Access 00112 //! Class Type 00113 //! XmiNsizeAlign XmiPANE_SIZEALIGN_FixedSize CG 00114 //! XmiCSizeAlign unsigned short 00115 //! XtNminHeight [none] CSG 00116 //! XtCMinHeight Dimension 00117 //! XtNminWidth [none] CSG 00118 //! XtCMinWidth Dimension 00119 //! 00120 //! XmiNsizeAlign 00121 //! Determines how a child is sized and aligned with other children in the parent XmiPane. 00122 //! The values for this resource may be bitwise-or'd (|) together. In addition, these values 00123 //! exactly correspond to the MGUI::LAYOUT_SIZEALIGN enum values defined in <mgui/layout.h> 00124 //! 00125 //! XmiPANE_SIZEALIGN_Expand Expand both width and height to fill space 00126 //! XmiPANE_SIZEALIGN_FixedWidth Width fixed, height can change 00127 //! XmiPANE_SIZEALIGN_FixedHeight Height fixed, width can change 00128 //! XmiPANE_SIZEALIGN_FixedSize Both horizontal and vertical size fixed 00129 //! XmiPANE_SIZEALIGN_AlignLeft Align with left edge of available space 00130 //! XmiPANE_SIZEALIGN_AlignRight Align with right edge of available space 00131 //! XmiPANE_SIZEALIGN_AlignTop Align with top edge of available space 00132 //! XmiPANE_SIZEALIGN_AlignBottom Align with bottom edge of available space 00133 //! XmiPANE_SIZEALIGN_CenterHorz Center horizontally in available space 00134 //! XmiPANE_SIZEALIGN_CenterVert Center vertically in available space 00135 //! XmiPANE_SIZEALIGN_Center Center both horizontal and vertically 00136 //! 00137 //! XtNminHeight 00138 //! Minimum height of child in pixels. If not specified will default to the initial child height. 00139 //! 00140 //! XtNminWidth 00141 //! Minimum width of child in pixels. If not specified will default to the initial child width. 00142 //! 00143 Widget XmiPaneCreate ( 00144 Widget parent, 00145 char *name, 00146 ArgList arglist, 00147 Cardinal argcount 00148 ); 00149 00150 //! Create Dialog and XmiPane widget. 00151 Widget XmiPaneCreateDialog ( 00152 Widget parent, 00153 char *name, 00154 ArgList arglist, 00155 Cardinal argcount 00156 ); 00157 00158 //! Determine if widget is an XmiPane or subclass thereof. 00159 inline Boolean XmiIsPane ( 00160 Widget w 00161 ) { 00162 return (XtIsSubclass(w, xmiPaneWidgetClass)); 00163 } 00164 00165 //! Pane child placement orientation. 00166 //! These values must remain equal to the corresponsing MGUI::LAYOUT_ORIENTATION values in <mgui/layout.h> 00167 #define XmiPANE_ORIENTATION_HORIZONTAL 0 //!< Horizontal layout based on locale 00168 #define XmiPANE_ORIENTATION_VERTICAL 1 //!< Vertical layout top to bottom 00169 #define XmiPANE_ORIENTATION_HORIZONTAL_LTOR 2 //!< Horizontal layout left to right 00170 #define XmiPANE_ORIENTATION_HORIZONTAL_RTOL 3 //!< Horizontal layout right to left 00171 00172 //! Child sizing/alignment constraint values, can be |'d together. 00173 //! These values must remain equal to the corresponding MGUI::LAYOUT_SIZEALIGN values in <mgui/layout.h> 00174 #define XmiPANE_SIZEALIGN_Expand 0x0000 //!< Expand both width and height to fill space 00175 #define XmiPANE_SIZEALIGN_FixedWidth 0x0001 //!< Width fixed, height can change 00176 //!#define XmiPANE_SIZEALIGN_RelativeHorz 0x0002 00177 #define XmiPANE_SIZEALIGN_FixedHeight 0x0004 //!< Height fixed, width can change 00178 //!#define XmiPANE_SIZEALIGN_RelativeVert 0x0008 00179 #define XmiPANE_SIZEALIGN_FixedSize 0x0005 //!< Both horizontal and vertical size fixed 00180 #define XmiPANE_SIZEALIGN_AlignLeft 0x0010 //!< Align with left edge of available space 00181 #define XmiPANE_SIZEALIGN_AlignRight 0x0020 //!< Align with right edge of available space 00182 #define XmiPANE_SIZEALIGN_AlignTop 0x0040 //!< Align with top edge of available space 00183 #define XmiPANE_SIZEALIGN_AlignBottom 0x0080 //!< Align with bottom edge of available space 00184 #define XmiPANE_SIZEALIGN_CenterHorz 0x0030 //!< Center horizontally in available space 00185 #define XmiPANE_SIZEALIGN_CenterVert 0x00C0 //!< Center vertically in available space 00186 #define XmiPANE_SIZEALIGN_Center 0x00F0 //!< Center both horizontal and vertically 00187 00188 00189 #define XmiNspacing "spacing" 00190 #define XmiCSpacing "Spacing" 00191 #define XmiNignoreNonVisible "ignoreNonVisible" 00192 #define XmiCIgnoreNonVisible "IgnoreNonVisible" 00193 #define XmiNsizeAlign "sizeAlign" 00194 #define XmiCSizeAlign "SizeAlign" 00195 00196 //!@} 00197 00198 } /* Close scope of 'extern "C"' declaration which encloses file. */ 00199 00200 #endif //!< INC_MI32_XMIPANE_H
1.3.4-20031026