mi32/xmipane.h

Go to the documentation of this file.
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

Generated on Thu Aug 12 06:19:13 2004 for TNTsdk by doxygen 1.3.4-20031026