Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef _XmMultiListP_h_
0002 #define _XmMultiListP_h_
0003 
0004 #include <Xm/ManagerP.h>
0005 #include <Xm/PrimitiveP.h>
0006 
0007 #include <Xm/MultiList.h>
0008 
0009 #if defined(__cplusplus)
0010 extern "C" {
0011 #endif
0012 
0013 /*
0014  * IList Stuff.
0015  */
0016 
0017 #define XmMultiList_DEFAULT_VISIBLE_COUNT   5 /* XmNvisibleItemCount */
0018 
0019 #define XmMultiListIndex (XmManagerIndex + 1)
0020 #define XmI18ListIndex (XmPrimitiveIndex + 1)
0021 
0022 #define XmI18List_selection_policy(w) (((XmI18ListWidget)(w))->ilist.selection_policy)
0023 #define XmI18List_num_columns(w) (((XmI18ListWidget)(w))->ilist.num_columns)
0024 #define XmI18List_column_titles(w) (((XmI18ListWidget)(w))->ilist.column_titles)
0025 #define XmI18List_num_rows(w) (((XmI18ListWidget)(w))->ilist.num_rows)
0026 #define XmI18List_row_data(w) (((XmI18ListWidget)(w))->ilist.row_data)
0027 #define XmI18List_first_col_pixmaps(w) (((XmI18ListWidget)(w))->ilist.first_col_pixmaps)
0028 #define XmI18List_font_list(w) (((XmI18ListWidget)(w))->ilist.font_list)
0029 #define XmI18List_v_bar(w) (((XmI18ListWidget)(w))->ilist.v_bar)
0030 #define XmI18List_h_bar(w) (((XmI18ListWidget)(w))->ilist.h_bar)
0031 #define XmI18List_first_row(w) (((XmI18ListWidget)(w))->ilist.first_row)
0032 #define XmI18List_first_col(w) (((XmI18ListWidget)(w))->ilist.first_col)
0033 #define XmI18List_double_click(w) (((XmI18ListWidget)(w))->ilist.double_click)
0034 #define XmI18List_single_select(w) (((XmI18ListWidget)(w))->ilist.single_select)
0035 #define XmI18List_selected_header(w) (((XmI18ListWidget)(w))->ilist.selected_header)
0036 #define XmI18List_sort_functions(w) (((XmI18ListWidget)(w))->ilist.sort_functions)
0037 #define XmI18List_string_direction(w) (((XmI18ListWidget)(w))->ilist.string_direction)
0038 #define XmI18List_alignment(w) (((XmI18ListWidget)(w))->ilist.alignment)
0039 #define XmI18List_column_widths(w) (((XmI18ListWidget)(w))->ilist.column_widths)
0040 #define XmI18List_end(w) (((XmI18ListWidget)(w))->ilist.end)
0041 #define XmI18List_anchor(w) (((XmI18ListWidget)(w))->ilist.anchor)
0042 #define XmI18List_sep_y(w) (((XmI18ListWidget)(w))->ilist.sep_y)
0043 #define XmI18List_title_row_height(w) (((XmI18ListWidget)(w))->ilist.title_row_height)
0044 #define XmI18List_row_height(w) (((XmI18ListWidget)(w))->ilist.row_height)
0045 #define XmI18List_gc(w) (((XmI18ListWidget)(w))->ilist.gc)
0046 #define XmI18List_rev_gc(w) (((XmI18ListWidget)(w))->ilist.rev_gc)
0047 #define XmI18List_stippled_gc(w) (((XmI18ListWidget)(w))->ilist.stippled_gc)
0048 #define XmI18List_stippled_rev_gc(w) (((XmI18ListWidget)(w))->ilist.stippled_rev_gc)
0049 #define XmI18List_inv_gc(w) (((XmI18ListWidget)(w))->ilist.inv_gc)
0050 #define XmI18List_state(w) (((XmI18ListWidget)(w))->ilist.state)
0051 #define XmI18List_timeout(w) (((XmI18ListWidget)(w))->ilist.timeout)
0052 #define XmI18List_working_row(w) (((XmI18ListWidget)(w))->ilist.working_row)
0053 #define XmI18List_working_col(w) (((XmI18ListWidget)(w))->ilist.working_col)
0054 #define XmI18List_time(w) (((XmI18ListWidget)(w))->ilist.time)
0055 #define XmI18List_left_loc(w) (((XmI18ListWidget)(w))->ilist.left_loc)
0056 #define XmI18List_search_column(w) (((XmI18ListWidget)(w))->ilist.search_column)
0057 #define XmI18List_visible_rows(w) (((XmI18ListWidget)(w))->ilist.visible_rows)
0058 #define XmI18List_new_visual_style(w) (((XmI18ListWidget)(w))->ilist.new_visual_style)
0059 #define XmI18List_entry_background_pixel(w) (((XmI18ListWidget)(w))->ilist.entry_background_pixel)
0060 #define XmI18List_entry_background_use(w) (((XmI18ListWidget)(w))->ilist.entry_background_use)
0061 #define XmI18List_entry_background_gc(w) (((XmI18ListWidget)(w))->ilist.entry_background_gc)
0062 #define XmI18List_entry_background_fill_gc(w) (((XmI18ListWidget)(w))->ilist.entry_background_fill_gc)
0063 #define XmI18List_entry_background_rev_gc(w) (((XmI18ListWidget)(w))->ilist.entry_background_rev_gc)
0064 #define XmI18List_entry_background_stippled_gc(w) (((XmI18ListWidget)(w))->ilist.entry_background_stippled_gc)
0065 #define XmI18List_entry_background_stippled_rev_gc(w) (((XmI18ListWidget)(w))->ilist.entry_background_stippled_rev_gc)
0066 #define XmI18List_entry_background_inv_gc(w) (((XmI18ListWidget)(w))->ilist.entry_background_inv_gc)
0067 
0068 #define XmMultiList_title(w)    (((XmMultiListWidget)(w))->ext_list.title)
0069 #define XmMultiList_find_label(w)       \
0070    (((XmMultiListWidget)(w))->ext_list.find_label)
0071 #define XmMultiList_double_click(w)     \
0072     (((XmMultiListWidget)(w))->ext_list.double_click)
0073 #define XmMultiList_single_select(w)    \
0074     (((XmMultiListWidget)(w))->ext_list.single_select)
0075 #define XmMultiList_show_find(w)        \
0076     (((XmMultiListWidget)(w))->ext_list.show_find)
0077 #define XmMultiList_title_wid(w)        \
0078     (((XmMultiListWidget)(w))->ext_list.title_wid)
0079 #define XmMultiList_frame(w)    (((XmMultiListWidget)(w))->ext_list.frame)
0080 #define XmMultiList_ilist(w)    (((XmMultiListWidget)(w))->ext_list.ilist)
0081 #define XmMultiList_v_bar(w)    (((XmMultiListWidget)(w))->ext_list.v_bar)
0082 #define XmMultiList_h_bar(w)    (((XmMultiListWidget)(w))->ext_list.h_bar)
0083 #define XmMultiList_find(w)     (((XmMultiListWidget)(w))->ext_list.find)
0084 #define XmMultiList_find_text(w)        \
0085     (((XmMultiListWidget)(w))->ext_list.find_text)
0086 #define XmMultiList_last_search(w)      \
0087     (((XmMultiListWidget)(w))->ext_list.last_search)
0088 #define XmMultiList_item_found(w)       \
0089     (((XmMultiListWidget)(w))->ext_list.item_found)
0090 #define XmMultiList_not_found(w)        \
0091     (((XmMultiListWidget)(w))->ext_list.not_found)
0092 #define XmMultiList_visible_rows(w)     \
0093     (((XmMultiListWidget)(w))->ext_list.visible_rows)
0094 #define XmMultiList_title_string(w)     \
0095     (((XmMultiListWidget)(w))->ext_list.title_string)
0096 
0097 /*
0098  * IList widget definitions.
0099  */
0100 
0101 /* I18List struct passed to Convert proc for drag and drop */
0102 typedef struct _XmI18ListDragConvertStruct
0103 {
0104     Widget    w;
0105     XmString *strings;
0106     int       num_items;
0107     Pixmap    pixmap;
0108 } XmI18ListDragConvertStruct;
0109 
0110 typedef struct _I18ListClassPart {
0111     XtPointer extension;    /* Just in case we need it later. */
0112 } I18ListClassPart;
0113 
0114 typedef struct _XmI18ListClassRec {
0115     CoreClassPart       core_class;
0116     XmPrimitiveClassPart    primitive;
0117     I18ListClassPart        ilist_class;
0118 } XmI18ListClassRec;
0119 
0120 externalref XmI18ListClassRec xmI18ListClassRec;
0121 
0122 typedef struct _XmI18ListPart {
0123     /*
0124      * Resources
0125      */
0126 
0127     unsigned char selection_policy; /* selection mode - kat 12-28-90 */
0128     short num_columns;      /* number of columns in the list. */
0129     XmString * column_titles;   /* title for each column. */
0130     short num_rows;     /* number of rows in the list. */
0131     XmMultiListRowInfo *row_data;/* Data to put into each column. */
0132     Boolean first_col_pixmaps;  /* Should we put mini_icons in the first
0133                    column of each entry? */     
0134     XmFontList font_list;   /* This widget's font list. */
0135 
0136     Widget v_bar, h_bar;    /* Scrollbars that may be used
0137                    to scroll this widget. */
0138 
0139     short first_row;        /* which row is at the top of the display. */
0140     short first_col;        /* which column is at the far left. */
0141 
0142     XtCallbackList double_click; /* The double click callback list. */
0143     XtCallbackList single_select; /*The single click callback list. */
0144 
0145     short selected_header;  /* The currently selected header. */
0146 
0147     Xm18SortFunction *sort_functions; /* The client supplied sort functions */
0148 
0149     unsigned char string_direction;
0150     unsigned char alignment;
0151 
0152     /* 
0153      * Private State
0154      */
0155 
0156     short * column_widths;  /* Width of each column. */
0157     short end;          /* The non-anchor end point. */ 
0158     short anchor;       /* The anchor point for the extended 
0159                    selection. */
0160 
0161     int sep_y;          /*location of the top of the separator line.*/
0162     
0163     short title_row_height; /* height of title row */
0164     short row_height;   /* height of all other data rows */
0165 
0166     GC gc;          /* The graphics context for normal text. */
0167     GC rev_gc;          /* The graphics context for inverted text. */
0168     GC stippled_gc;     /* The graphics context for normal text. */
0169     GC stippled_rev_gc;     /* The graphics context for inverted text. */
0170     GC inv_gc;          /* The graphics context for inverting areas. */
0171 
0172     unsigned short state;   /* The state of this widget. */
0173     XtIntervalId timeout;   /* The mulit - click timout. */
0174 
0175     short working_row, working_col; /* A Working row and column. */
0176     Time time;          /*The server time of the last button click. */
0177 
0178     int left_loc;       /* left margin in pixels. */
0179 
0180     short search_column;    /* added for I18List Find support */
0181 
0182     int visible_rows;       /* Visible item (row) count */
0183 
0184     Boolean new_visual_style;
0185 
0186     Pixel entry_background_pixel;
0187     Boolean entry_background_use;
0188     GC entry_background_gc;         
0189     GC entry_background_fill_gc;            
0190     GC entry_background_stippled_gc;        
0191     GC entry_background_stippled_rev_gc;    
0192     GC entry_background_inv_gc;         
0193     GC entry_background_rev_gc;         
0194 
0195     Boolean check_set_render_table; /* used in CheckSetRenderTable */
0196 
0197     XmI18ListDragConvertStruct * drag_conv;
0198 } XmI18ListPart;
0199 
0200 typedef struct _XmI18ListRec {
0201     CorePart        core;
0202     XmPrimitivePart primitive;
0203     XmI18ListPart   ilist;
0204 } XmI18ListRec;
0205 
0206 /*
0207  * Extended List.
0208  */
0209 
0210 typedef struct {
0211     XtPointer extension;    /* Just in case we need it later. */
0212 } XmMultiListClassPart;
0213 
0214 typedef struct _XmMultiListClassRec {
0215     CoreClassPart       core_class;
0216     CompositeClassPart      composite_class;
0217     ConstraintClassPart     constraint_class;
0218     XmManagerClassPart      manager_class;
0219     XmMultiListClassPart    ext_list_class;
0220 } XmMultiListClassRec;
0221 
0222 typedef struct {
0223     /* resources */
0224 
0225     XmString title;     /* Title for the list (backwards compatible) */
0226     XmString find_label;    /* label for Find button */
0227 
0228     XtCallbackList double_click; /* The double click callbacks. */
0229     XtCallbackList single_select; /* The single click callbacks. -kat */
0230 
0231     Boolean show_find;    /* whether to display the Find button and textF */
0232 
0233     /* private state */
0234 
0235     Widget title_wid;       /* The list title widget. */
0236     Widget frame;       /* Frame to display list into. */
0237     Widget ilist;       /* The internal list widget. */
0238     Widget v_bar, h_bar;    /* The scrollbars. */
0239     Widget find, find_text; /* Widgets used for a find. */
0240 
0241     String last_search;
0242 
0243     XtCallbackList item_found;  /* Called when find succeeds */
0244     XtCallbackList not_found;   /* Called when find doesn't succeed */
0245 
0246     int visible_rows;       /* visible items (mirrored in XmI18ListPart) */
0247     XmString title_string;  /* (preferred use) Title for the list */
0248 
0249     Boolean check_set_select_callback;
0250 } XmMultiListPart;
0251 
0252 typedef struct _XmMultiListRec {
0253     CorePart        core;
0254     CompositePart   composite;
0255     ConstraintPart  constraint;
0256     XmManagerPart   manager;
0257     XmMultiListPart ext_list;
0258 } XmMultiListRec;
0259 
0260 /************************************************************
0261 *   EXTERNAL DECLARATIONS
0262 *************************************************************/
0263 
0264 XmMultiListRowInfo ** XmI18ListGetSelectedRows(Widget);
0265 
0266 void Xm18IListUnselectItem(Widget, XmMultiListRowInfo *);
0267 
0268 void Xm18IListUnselectAllItems(Widget);
0269 
0270 void XmI18ListToggleRow(Widget , short);
0271 
0272 typedef struct _XmI18ListClassRec   *XmI18ListWidgetClass;
0273 typedef struct _XmI18ListRec    *XmI18ListWidget;
0274 
0275 extern XmMultiListClassRec xmMultiListClassRec;
0276 
0277 extern XmI18ListClassRec xiI18ListClassRec;
0278 extern WidgetClass xmI18ListWidgetClass; 
0279 
0280 #if defined(__cplusplus)
0281 }
0282 #endif
0283 
0284 #endif /* _XmMultiListP_h_ */