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
0015
0016
0017 #define XmMultiList_DEFAULT_VISIBLE_COUNT 5
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
0099
0100
0101
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;
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
0125
0126
0127 unsigned char selection_policy;
0128 short num_columns;
0129 XmString * column_titles;
0130 short num_rows;
0131 XmMultiListRowInfo *row_data;
0132 Boolean first_col_pixmaps;
0133
0134 XmFontList font_list;
0135
0136 Widget v_bar, h_bar;
0137
0138
0139 short first_row;
0140 short first_col;
0141
0142 XtCallbackList double_click;
0143 XtCallbackList single_select;
0144
0145 short selected_header;
0146
0147 Xm18SortFunction *sort_functions;
0148
0149 unsigned char string_direction;
0150 unsigned char alignment;
0151
0152
0153
0154
0155
0156 short * column_widths;
0157 short end;
0158 short anchor;
0159
0160
0161 int sep_y;
0162
0163 short title_row_height;
0164 short row_height;
0165
0166 GC gc;
0167 GC rev_gc;
0168 GC stippled_gc;
0169 GC stippled_rev_gc;
0170 GC inv_gc;
0171
0172 unsigned short state;
0173 XtIntervalId timeout;
0174
0175 short working_row, working_col;
0176 Time time;
0177
0178 int left_loc;
0179
0180 short search_column;
0181
0182 int visible_rows;
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;
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
0208
0209
0210 typedef struct {
0211 XtPointer extension;
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
0224
0225 XmString title;
0226 XmString find_label;
0227
0228 XtCallbackList double_click;
0229 XtCallbackList single_select;
0230
0231 Boolean show_find;
0232
0233
0234
0235 Widget title_wid;
0236 Widget frame;
0237 Widget ilist;
0238 Widget v_bar, h_bar;
0239 Widget find, find_text;
0240
0241 String last_search;
0242
0243 XtCallbackList item_found;
0244 XtCallbackList not_found;
0245
0246 int visible_rows;
0247 XmString title_string;
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
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