/* * Motif * * Copyright (c) 1987-2012, The Open Group. All rights reserved. * * These libraries and programs are free software; you can * redistribute them and/or modify them under the terms of the GNU * Lesser General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) * any later version. * * These libraries and programs are distributed in the hope that * they will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public * License along with these librararies and programs; if not, write * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth * Floor, Boston, MA 02110-1301 USA * */ #ifndef _XmIconBoxP_h #define _XmIconBoxP_h #if defined(VMS) || defined(__VMS) #include #endif /************************************************************ * INCLUDE FILES *************************************************************/ #include #include #ifdef __cplusplus extern "C" { #endif /************************************************************ * TYPEDEFS AND DEFINES *************************************************************/ /* * Hack to get around naming conventions. The XmConstraintPartOffset macro * requires our contraint part structure to have this name */ #define XmIconBoxConstraintPart IconInfo /* * Access macros for widget instance fields */ #define XmIconBox_min_v_cells(w) (((XmIconBoxWidget)(w))->box.min_v_cells) #define XmIconBox_min_h_cells(w) (((XmIconBoxWidget)(w))->box.min_h_cells) #define XmIconBox_v_margin(w) (((XmIconBoxWidget)(w))->box.v_margin) #define XmIconBox_h_margin(w) (((XmIconBoxWidget)(w))->box.h_margin) #define XmIconBox_min_cell_width(w) (((XmIconBoxWidget)(w))->box.min_cell_width) #define XmIconBox_min_cell_height(w) (((XmIconBoxWidget)(w))->box.min_cell_height) #define XmIconBox_cell_width(w) (((XmIconBoxWidget)(w))->box.cell_width) #define XmIconBox_cell_height(w) (((XmIconBoxWidget)(w))->box.cell_height) #define XmIconBoxC_cell_x(w) (((XmIconBoxConstraintsRec*)((w)->core.constraints))->icon.cell_x) #define XmIconBoxC_cell_y(w) (((XmIconBoxConstraintsRec*)((w)->core.constraints))->icon.cell_y) #define XmIconBoxC_pref_width(w) (((XmIconBoxConstraintsRec*)((w)->core.constraints))->icon.pref_width) #define XmIconBoxC_pref_height(w) (((XmIconBoxConstraintsRec*)((w)->core.constraints))->icon.pref_height) /************************************************************ * MACROS *************************************************************/ /************************************************************ * GLOBAL DECLARATIONS *************************************************************/ typedef struct { XtPointer extension; /* Just in case we need it later. */ } XmIconBoxClassPart; typedef struct _XmIconBoxClassRec { CoreClassPart core_class; CompositeClassPart composite_class; ConstraintClassPart constraint_class; XmManagerClassPart manager_class; XmIconBoxClassPart box_class; } XmIconBoxClassRec; typedef struct { /* resources */ Dimension min_v_cells; /* Default number of cells in the vert dir. */ Dimension min_h_cells; /* Default number of cells in the horiz dir. */ Dimension v_margin; /* Amount of space to leave between cells */ Dimension h_margin; /* and window edges. */ Dimension min_cell_width; /* Minimum width of the cells. */ Dimension min_cell_height; /* Minimum height of the cells. */ /* private state */ Dimension cell_width; /* Width and height of all cells. */ Dimension cell_height; } XmIconBoxPart; typedef struct _XmIconBoxRec { CorePart core; CompositePart composite; ConstraintPart constraint; XmManagerPart manager; XmIconBoxPart box; } XmIconBoxRec; typedef struct _IconInfo { /* * Resources. */ short cell_x; /* X location of this icon in cell space. */ short cell_y; /* Y location of this icon in cell space. */ /* * Private state. */ Dimension pref_width, pref_height; /* The preferred size of this widget. */ } IconInfo; typedef struct _XmIconBoxConstraintsRec { XmManagerConstraintPart manager; IconInfo icon; } XmIconBoxConstraintsRec, *XmIconBoxConstraints; /************************************************************ * EXTERNAL DECLARATIONS *************************************************************/ extern XmIconBoxClassRec xmIconBoxClassRec; /************************************************************ * STATIC DECLARATIONS *************************************************************/ #ifdef __cplusplus } /* Closes scope of 'extern "C"' declaration */ #endif #if defined(VMS) || defined(__VMS) #include #endif #endif /* _XmIconBoxP_h */