Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:24

0001 /*
0002 Copyright 1989, 1994, 1998  The Open Group
0003 
0004 Permission to use, copy, modify, distribute, and sell this software and its
0005 documentation for any purpose is hereby granted without fee, provided that
0006 the above copyright notice appear in all copies and that both that
0007 copyright notice and this permission notice appear in supporting
0008 documentation.
0009 
0010 The above copyright notice and this permission notice shall be included in
0011 all copies or substantial portions of the Software.
0012 
0013 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0014 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0015 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
0016 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
0017 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0018 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0019 
0020 Except as contained in this notice, the name of The Open Group shall not be
0021 used in advertising or otherwise to promote the sale, use or other dealings
0022 in this Software without prior written authorization from The Open Group.
0023 */
0024 
0025 
0026 /*
0027  * This is a List widget.  It allows the user to select an item in a list and
0028  * notifies the application through a callback function.
0029  *
0030  *  Created:    8/13/88
0031  *  By:     Chris D. Peterson
0032  *                      MIT - Project Athena
0033  */
0034 
0035 #ifndef _XawListP_h
0036 #define _XawListP_h
0037 
0038 /*
0039  * List Widget Private Data
0040  */
0041 #include <X11/Xaw/SimpleP.h>
0042 #include <X11/Xaw/List.h>
0043 
0044 #define NO_HIGHLIGHT            XAW_LIST_NONE
0045 #define OUT_OF_RANGE            -1
0046 #define OKAY                     0
0047 
0048 /* New fields for the List widget class */
0049 typedef struct {
0050     XtPointer extension;
0051 } ListClassPart;
0052 
0053 /* Full class record */
0054 typedef struct _ListClassRec {
0055     CoreClassPart   core_class;
0056     SimpleClassPart simple_class;
0057     ListClassPart   list_class;
0058 } ListClassRec;
0059 
0060 extern ListClassRec listClassRec;
0061 
0062 /* New fields for the List widget */
0063 typedef struct {
0064     /* resources */
0065     Pixel foreground;
0066     Dimension internal_width;       /* if not 3d, user sets directly */
0067     Dimension internal_height;
0068     Dimension column_space;     /* half of *_space is add on
0069                        top/bot/left of */
0070     Dimension row_space;        /* each item's text bounding box
0071                        half added to longest for right */
0072     int default_cols;
0073     Boolean force_cols;
0074     Boolean paste;
0075     Boolean vertical_cols;
0076     int longest;            /* in pixels */
0077     int nitems;
0078     XFontStruct *font;
0079     XFontSet fontset;           /* Sheeran, Omron KK, 93/03/05 */
0080     String *list;           /* for i18n, always in multibyte
0081                        format */
0082     XtCallbackList callback;
0083 
0084     /* private */
0085     int is_highlighted;         /* set to the item currently
0086                        highlighted */
0087     int highlight;          /* set to the item that should be
0088                        highlighted */
0089     int col_width;          /* width of each column */
0090     int row_height;         /* height of each row */
0091     int nrows;              /* number of rows in the list */
0092     int ncols;              /* number of columns in the list */
0093     GC normgc;
0094     GC revgc;
0095     GC graygc;
0096     int freedoms;           /* flags for resizing height
0097                        and width */
0098 #ifndef OLDXAW
0099     int selected;
0100     Boolean show_current;
0101     char pad1[(sizeof(XtPointer) - sizeof(Boolean)) +
0102          (sizeof(XtPointer) - sizeof(int))];
0103     XtPointer pad2[2];  /* for future use and keep binary compatibility */
0104 #endif
0105 } ListPart;
0106 
0107 
0108 /* Full instance record */
0109 typedef struct _ListRec {
0110     CorePart    core;
0111     SimplePart  simple;
0112     ListPart    list;
0113 } ListRec;
0114 
0115 #endif /* _XawListP_h */