/* $XConsortium: NotebookP.h /main/4 1995/07/15 20:53:46 drk $ */ /* * @OPENGROUP_COPYRIGHT@ * COPYRIGHT NOTICE * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc. * Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group * ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for * the full copyright text. * * This software is subject to an open license. It may only be * used on, with or for operating systems which are themselves open * source systems. You must contact The Open Group for a license * allowing distribution and sublicensing of this software on, with, * or for operating systems which are not Open Source programs. * * See http://www.opengroup.org/openmotif/license for full * details of the license agreement. Any use, reproduction, or * distribution of the program constitutes recipient's acceptance of * this agreement. * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS * PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY * WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY * OR FITNESS FOR A PARTICULAR PURPOSE * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT * NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE * EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. */ /* * HISTORY */ #ifndef _XmNotebookP_h #define _XmNotebookP_h #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* Notebook's constraint info. fields */ typedef struct _XmNotebookConstraintPart { /* resources */ int page_number; /* page number */ unsigned char child_type; /* notebook child type */ Boolean resizable; /* is this child resizable? */ /* private variables */ Boolean active; /* True if the child is active */ } XmNotebookConstraintPart, *XmNotebookConstraint; typedef struct _XmNotebookConstraintRec { XmManagerConstraintPart manager; XmNotebookConstraintPart notebook; } XmNotebookConstraintRec, *XmNotebookConstraintPtr; /* New fields for the Notebook widget class record */ typedef struct _XmNotebookClassPart { XtPointer extension; } XmNotebookClassPart; /* Full class record declaration */ typedef struct _NotebookClassRec { CoreClassPart core_class; CompositeClassPart composite_class; ConstraintClassPart constraint_class; XmManagerClassPart manager_class; XmNotebookClassPart notebook_class; } XmNotebookClassRec; externalref XmNotebookClassRec xmNotebookClassRec; /* New fields for the Notebook widget instance record */ typedef struct _XmNotebookPart { /* resources */ int current_page_number; /* the current page number */ int first_page_number; /* the first page number */ int last_page_number; /* the last page number */ unsigned char orientation; /* notebook orientation */ unsigned char back_page_pos; /* position of back pages */ Cardinal back_page_number; /* the of back page lines */ Dimension back_page_size; /* the thickness of back pages */ Pixel back_page_foreground; /* foreground color for bk pgs */ Pixel back_page_background; /* background color for bk pgs */ Pixel frame_background; /* background color for frame */ unsigned char binding_type; /* binding type */ Pixmap binding_pixmap; /* pixmap for the binding */ Pixmap spiral_pixmap; /* pixmap for the spiral binding */ Dimension binding_width; /* the width of the binding */ Dimension margin_width; /* horizontal margin between widgets */ Dimension margin_height; /* vertical margin between widgets */ Dimension major_spacing; /* gap between major tabs */ Dimension minor_spacing; /* gap between minor tabs */ Dimension shadow_thickness; /* notebook frame shadow thickness */ XtCallbackList page_change_callback;/* the page change callback */ /* child widgets */ Widget scroller; /* the page scroller widget */ Widget scroller_child; /* TextF child of def page scroller */ Widget next_major; /* next major tab scroll button */ Widget prev_major; /* prev major tab scroll button */ Widget next_minor; /* next minor tab scroll button */ Widget prev_minor; /* prev minor tab scroll button */ /* preferred children sizes */ Dimension real_binding_width; /* real binding width */ Dimension real_back_page_number; /* real back page number */ Dimension page_width; /* width of page widgets */ Dimension page_height; /* height of page widgets */ Dimension status_width; /* width of the status areas */ Dimension status_height; /* height of the status areas */ Dimension major_width; /* width of major tabs */ Dimension major_height; /* height of major tabs */ Dimension minor_width; /* width of minor tabs */ Dimension minor_height; /* height of minor tabs */ Dimension scroller_width; /* width of the page scroller */ Dimension scroller_height; /* height of the page scroller */ Dimension major_scroller_width; /* width of major scrollers */ Dimension major_scroller_height; /* height of major scroller */ Dimension minor_scroller_width; /* width of minor scrollers */ Dimension minor_scroller_height; /* height of minor scrollers */ Dimension frame_width; /* width of the frame */ Dimension frame_height; /* height of the frame */ /* for layouting tabs */ Widget first_major; /* the first major tab */ Widget old_top_major; /* the old top major tab */ Widget top_major; /* the top major tab */ Widget last_major; /* the last major tab */ Widget first_minor; /* the first minor tab */ Widget old_top_minor; /* the old top minor tab */ Widget top_minor; /* the top minor tab */ Widget last_minor; /* the last minor tab */ Widget constraint_child; /* changing geom during ConstraintSV */ /* shadow thickness state for current page major and minor tab */ Dimension major_shadow_thickness; /* joined major tab shadow thickness */ Dimension minor_shadow_thickness; /* joined minor tab shadow thickness */ Widget major_shadow_child; /* saved shadow thickness tab */ Widget minor_shadow_child; /* saved shadow thickness tab */ Boolean in_setshadow; /* setting tab shadow thickness */ /* extra position information */ unsigned char major_pos; /* position of major tabs */ unsigned char minor_pos; /* position of minor tabs */ unsigned char binding_pos; /* binding position */ /* other misc. variables */ unsigned char which_tab; /* currently active tab type */ int last_alloc_num; /* lastly allocated page number */ unsigned char scroller_status; /* status of the page scroller */ unsigned short need_scroller; /* need for tab scrollers */ Boolean dynamic_last_page_num; /* True if using dynamic last page# */ Boolean in_callback; /* True if processing a callback */ GC back_page_gc; /* GC for drawing backpages */ GC frame_gc; /* GC for drawing frame */ GC binding_gc; /* GC for drawing binding */ GC foreground_gc; /* GC for drawing foreground */ GC background_gc; /* GC for drawing background */ Boolean first_change_managed; /* flags 1st call to ChangeManaged */ XmScrollFrameData scroll_frame_data; /* data for ScrollFrame trait */ } XmNotebookPart; /* Full instance record declaration */ typedef struct _XmNotebookRec { CorePart core; CompositePart composite; ConstraintPart constraint; XmManagerPart manager; XmNotebookPart notebook; } XmNotebookRec; /****************************************************************************** * * * constants & useful macros * * * ******************************************************************************/ /* internal child types, must not conflict with XmRNBChildType enum */ #define XmMAJOR_TAB_SCROLLER 12 #define XmMINOR_TAB_SCROLLER 13 #define XmTAB_SCROLLER 14 #ifdef __cplusplus } #endif #endif /* _XmNotebookP_h */