Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:15:29

0001 /*
0002  * Motif
0003  *
0004  * Copyright (c) 1987-2012, The Open Group. All rights reserved.
0005  *
0006  * These libraries and programs are free software; you can
0007  * redistribute them and/or modify them under the terms of the GNU
0008  * Lesser General Public License as published by the Free Software
0009  * Foundation; either version 2 of the License, or (at your option)
0010  * any later version.
0011  *
0012  * These libraries and programs are distributed in the hope that
0013  * they will be useful, but WITHOUT ANY WARRANTY; without even the
0014  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
0015  * PURPOSE. See the GNU Lesser General Public License for more
0016  * details.
0017  *
0018  * You should have received a copy of the GNU Lesser General Public
0019  * License along with these librararies and programs; if not, write
0020  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
0021  * Floor, Boston, MA 02110-1301 USA
0022  * 
0023  */
0024 #ifndef _XmTabStackP_h_
0025 #define _XmTabStackP_h_
0026 
0027 #include <Xm/XmP.h>
0028 #include <Xm/ManagerP.h>
0029 #include <Xm/BulletinBP.h>
0030 #include <Xm/ExtP.h>
0031 #include <Xm/TabBox.h>
0032 #include <Xm/TabList.h>
0033 #include <Xm/TabStack.h>
0034 
0035 #ifdef __cplusplus
0036 extern "C" {
0037 #endif
0038 
0039 typedef struct _XmTabStackClassPart {
0040     String    drag_translations;
0041     XtPointer extension;
0042 } XmTabStackClassPart;
0043 
0044 
0045 typedef struct _XmTabStackClassRec {
0046     CoreClassPart            core_class;
0047     CompositeClassPart       composite_class;
0048     ConstraintClassPart      constraint_class;
0049     XmManagerClassPart       manager_class;
0050     XmBulletinBoardClassPart bulletin_board_class;
0051     XmTabStackClassPart      tab_stack_class;
0052 } XmTabStackClassRec;
0053 externalref XmTabStackClassRec xmTabStackClassRec;
0054 
0055 typedef struct _XmTabStackPart {
0056     /* Resources for the Tab Stack */
0057 
0058     XtCallbackList       tab_select_callback;
0059 
0060     /* Resource to pass down to Tab Box */
0061     XmFontList       font_list;
0062     XmTabStyle       tab_style;
0063     XmTabMode        tab_mode;
0064     XmTabSide            tab_side;
0065     XmTabOrientation     tab_orientation;
0066 
0067     XmString         tear_off_label;
0068 
0069     Boolean      allow_tear_offs;
0070     Boolean      uniform_tab_size;
0071     Boolean      use_image_cache;
0072     Boolean      stacked_effect;
0073     Boolean      tab_auto_select;
0074     
0075     Dimension            tab_margin_width;
0076     Dimension            tab_margin_height;
0077     Dimension        tab_label_spacing;
0078     Dimension            tab_offset;
0079     Dimension            highlight_thickness;
0080 
0081     Pixel        select_color;
0082     Pixel        select_pixmap;
0083 
0084     int          tab_corner_percent;
0085 
0086     Widget               tab_box;
0087 
0088     /* Private Values */
0089 
0090     XmTabbedStackList        _tab_list;
0091 
0092     XRectangle           _size;
0093 
0094     Widget               _active_child;
0095     GC           _gc;
0096 
0097     Boolean      _inited;
0098     Boolean      _set_tab_list;
0099 
0100     Widget               _menu;
0101     Widget       _tear_off_button;
0102 
0103     /* Drag And Drop Stuff */
0104     Pixmap               _source_pixmap;
0105     Pixmap               _source_mask;
0106     Pixmap               _invalid_pixmap;
0107     Pixmap               _invalid_mask;
0108     Widget               _source_icon;
0109     Widget               _invalid_icon;
0110 
0111     Widget      _selected_tab;      /* used within realize method */
0112     Boolean     _selected_notify;   /* used within realize method */
0113 
0114     Boolean     do_notify;  /* for notify XmNtabSelectedCallback */
0115 
0116     Boolean     check_set_render_table;
0117   
0118 } XmTabStackPart;
0119 
0120 #define XmTabStack_tab_select_callback(w) (((XmTabStackWidget)(w))->tab_stack.tab_select_callback)
0121 #define XmTabStack_font_list(w) (((XmTabStackWidget)(w))->tab_stack.font_list)
0122 #define XmTabStack_tab_style(w) (((XmTabStackWidget)(w))->tab_stack.tab_style)
0123 #define XmTabStack_tab_mode(w) (((XmTabStackWidget)(w))->tab_stack.tab_mode)
0124 #define XmTabStack_tab_side(w) (((XmTabStackWidget)(w))->tab_stack.tab_side)
0125 #define XmTabStack_tab_orientation(w) (((XmTabStackWidget)(w))->tab_stack.tab_orientation)
0126 #define XmTabStack_tear_off_label(w) (((XmTabStackWidget)(w))->tab_stack.tear_off_label)
0127 #define XmTabStack_allow_tear_offs(w) (((XmTabStackWidget)(w))->tab_stack.allow_tear_offs)
0128 #define XmTabStack_uniform_tab_size(w) (((XmTabStackWidget)(w))->tab_stack.uniform_tab_size)
0129 #define XmTabStack_use_image_cache(w) (((XmTabStackWidget)(w))->tab_stack.use_image_cache)
0130 #define XmTabStack_stacked_effect(w) (((XmTabStackWidget)(w))->tab_stack.stacked_effect)
0131 #define XmTabStack_tab_auto_select(w) (((XmTabStackWidget)(w))->tab_stack.tab_auto_select)
0132 #define XmTabStack_tab_margin_width(w) (((XmTabStackWidget)(w))->tab_stack.tab_margin_width)
0133 #define XmTabStack_tab_margin_height(w) (((XmTabStackWidget)(w))->tab_stack.tab_margin_height)
0134 #define XmTabStack_tab_label_spacing(w) (((XmTabStackWidget)(w))->tab_stack.tab_label_spacing)
0135 #define XmTabStack_tab_offset(w) (((XmTabStackWidget)(w))->tab_stack.tab_offset)
0136 #define XmTabStack_highlight_thickness(w) (((XmTabStackWidget)(w))->tab_stack.highlight_thickness)
0137 #define XmTabStack_select_color(w) (((XmTabStackWidget)(w))->tab_stack.select_color)
0138 #define XmTabStack_select_pixmap(w) (((XmTabStackWidget)(w))->tab_stack.select_pixmap)
0139 #define XmTabStack_tab_corner_percent(w) (((XmTabStackWidget)(w))->tab_stack.tab_corner_percent)
0140 #define XmTabStack_tab_box(w) (((XmTabStackWidget)(w))->tab_stack.tab_box)
0141 #define XmTabStack__tab_list(w) (((XmTabStackWidget)(w))->tab_stack._tab_list)
0142 #define XmTabStack__size(w) (((XmTabStackWidget)(w))->tab_stack._size)
0143 #define XmTabStack__active_child(w) (((XmTabStackWidget)(w))->tab_stack._active_child)
0144 #define XmTabStack__gc(w) (((XmTabStackWidget)(w))->tab_stack._gc)
0145 #define XmTabStack__inited(w) (((XmTabStackWidget)(w))->tab_stack._inited)
0146 #define XmTabStack__set_tab_list(w) (((XmTabStackWidget)(w))->tab_stack._set_tab_list)
0147 #define XmTabStack__menu(w) (((XmTabStackWidget)(w))->tab_stack._menu)
0148 #define XmTabStack__tear_off_button(w) (((XmTabStackWidget)(w))->tab_stack._tear_off_button)
0149 #define XmTabStack__source_pixmap(w) (((XmTabStackWidget)(w))->tab_stack._source_pixmap)
0150 #define XmTabStack__source_mask(w) (((XmTabStackWidget)(w))->tab_stack._source_mask)
0151 #define XmTabStack__invalid_pixmap(w) (((XmTabStackWidget)(w))->tab_stack._invalid_pixmap)
0152 #define XmTabStack__invalid_mask(w) (((XmTabStackWidget)(w))->tab_stack._invalid_mask)
0153 #define XmTabStack__source_icon(w) (((XmTabStackWidget)(w))->tab_stack._source_icon)
0154 #define XmTabStack__invalid_icon(w) (((XmTabStackWidget)(w))->tab_stack._invalid_icon)
0155 #define XmTabStack__selected_tab(w) (((XmTabStackWidget)(w))->tab_stack._selected_tab)
0156 #define XmTabStack__selected_notify(w) (((XmTabStackWidget)(w))->tab_stack._selected_notify)
0157 #define XmTabStack_do_notify(w) (((XmTabStackWidget)(w))->tab_stack.do_notify)
0158 
0159 typedef struct _XmTabStackRec {
0160     CorePart             core;
0161     CompositePart        composite;
0162     ConstraintPart       constraint;
0163     XmManagerPart        manager;
0164     XmBulletinBoardPart  bulletin_board;
0165     XmTabStackPart       tab_stack;
0166 } XmTabStackRec;
0167 
0168 typedef struct _XmTabStackConstraintPart {
0169     XmString         tab_label_string;
0170     XmStringDirection    tab_string_direction;
0171     unsigned char        tab_alignment;
0172     Pixmap       tab_label_pixmap;
0173     XmPixmapPlacement    tab_pixmap_placement;
0174     Pixel        tab_foreground;
0175     Pixel        tab_background;
0176     Pixmap       tab_background_pixmap;
0177     Boolean      free_tab_pixmap;
0178 
0179     Boolean      tear_off_enabled;
0180 
0181     /* Private Memebers */
0182     int         index;
0183     Dimension       width;
0184     Dimension       height;
0185 } XmTabStackConstraintPart;
0186 
0187 #define XmTabStackC_tab_label_string(w) \
0188     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_label_string)
0189 #define XmTabStackC_tab_string_direction(w) \
0190     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_string_direction)
0191 #define XmTabStackC_tab_alignment(w) \
0192     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_alignment)
0193 #define XmTabStackC_tab_label_pixmap(w) \
0194     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_label_pixmap)
0195 #define XmTabStackC_tab_pixmap_placement(w) \
0196     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_pixmap_placement)
0197 #define XmTabStackC_tab_foreground(w) \
0198     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_foreground)
0199 #define XmTabStackC_tab_background(w) \
0200     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_background)
0201 #define XmTabStackC_tab_background_pixmap(w) \
0202     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tab_background_pixmap)
0203 #define XmTabStackC_free_tab_pixmap(w) \
0204     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.free_tab_pixmap)
0205 #define XmTabStackC_tear_off_enabled(w) \
0206     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.tear_off_enabled)
0207 #define XmTabStackC_index(w) \
0208     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.index)
0209 #define XmTabStackC_width(w) \
0210     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.width)
0211 #define XmTabStackC_height(w) \
0212     (((XmTabStackConstraintPtr)((w)->core.constraints))->tab_stack.height)
0213 
0214 typedef struct _XmTabStackConstraintRec {
0215     XmManagerConstraintPart  manager;
0216     XmTabStackConstraintPart tab_stack;
0217 } XmTabStackConstraintRec, * XmTabStackConstraintPtr;
0218 
0219 #define XmNillegalUniformTabSizeMsg \
0220 "XmNuniformTabSize must be true if XmNtabMode is XmTABS_STACKED or\n\
0221 XmTABS_STACKED_STATIC."
0222 
0223 #define XmTabStackIndex (XmBulletinBoardIndex + 1)
0224 
0225 #ifdef __cplusplus
0226 } /* Close scope of 'extern "C"' declaration */
0227 #endif
0228 
0229 
0230 #endif /* _TabStackP_h_ */