|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <stdio.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include "XmI.h"
|
|
Packit |
b099d7 |
#include "MessagesI.h"
|
|
Packit |
b099d7 |
#include <Xm/MultiListP.h>
|
|
Packit |
b099d7 |
#include <Xm/Ext18List.h>
|
|
Packit |
b099d7 |
#include <Xm/Ext18ListP.h>
|
|
Packit |
b099d7 |
#include <Xm/Frame.h>
|
|
Packit |
b099d7 |
#include <Xm/Label.h>
|
|
Packit |
b099d7 |
#include <Xm/PushB.h>
|
|
Packit |
b099d7 |
#include <Xm/ScrollBar.h>
|
|
Packit |
b099d7 |
#include <Xm/TextF.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/VaSimpleP.h>
|
|
Packit |
b099d7 |
#include <Xm/ExtP.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
* TYPEDEFS AND DEFINES
|
|
Packit |
b099d7 |
*************************************************************/
|
|
Packit |
b099d7 |
#define BUG_FIX_1385 1
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define H_MARGIN 5
|
|
Packit |
b099d7 |
#define V_MARGIN 5
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define FIND_STRING _XmMMsgResource_0013
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
extern XmMultiListRowInfo \
|
|
Packit |
b099d7 |
*XmI18ListFindRow(Widget, String, int *, Boolean, Boolean);
|
|
Packit |
b099d7 |
extern int *XmI18ListGetSelectedRowArray(XmI18ListWidget, int *);
|
|
Packit |
b099d7 |
extern void XmI18ListMakeRowVisible(XmI18ListWidget, int);
|
|
Packit |
b099d7 |
extern void XmI18ListDeselectRow(XmI18ListWidget, int);
|
|
Packit |
b099d7 |
extern void XmI18ListSelectRow(XmI18ListWidget, int, Boolean);
|
|
Packit |
b099d7 |
extern void XmI18ListSelectAllItems(XmI18ListWidget, Boolean);
|
|
Packit |
b099d7 |
extern void XmI18ListDeselectItems(XmI18ListWidget, XmString, int);
|
|
Packit |
b099d7 |
extern void XmI18ListSelectItems(XmI18ListWidget, XmString, int, Boolean);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget CreateTitle(Widget, XmString, ArgList, Cardinal);
|
|
Packit |
b099d7 |
static Widget CreateScrollbar(Widget, Boolean, ArgList, Cardinal);
|
|
Packit |
b099d7 |
static Widget CreateFindButton(Widget, ArgList, Cardinal);
|
|
Packit |
b099d7 |
static Widget CreateFindText(Widget, ArgList, Cardinal);
|
|
Packit |
b099d7 |
static Widget CreateFrame(Widget, ArgList, Cardinal);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void ActivateTextSearch(Widget, XtPointer, XtPointer);
|
|
Packit |
b099d7 |
static void LayoutChildren(Widget), ChangeManaged(Widget);
|
|
Packit |
b099d7 |
static void PositionFindAndFindText(Widget);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void ClassInitialize();
|
|
Packit |
b099d7 |
static void Initialize(Widget, Widget, ArgList, Cardinal *);
|
|
Packit |
b099d7 |
static void ClassPartInitialize(WidgetClass w_class);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void Resize(Widget), Destroy(Widget w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Boolean SetValues(Widget, Widget, Widget, ArgList, Cardinal *);
|
|
Packit |
b099d7 |
static void GetValuesHook(Widget, ArgList, Cardinal *);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtGeometryResult GeometryManager(Widget, XtWidgetGeometry *,
|
|
Packit |
b099d7 |
XtWidgetGeometry *);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtResource resources[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNwidth, XmCWidth, XmRHorizontalDimension,
|
|
Packit |
b099d7 |
sizeof(Dimension), XtOffsetOf(CoreRec, core.width),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNheight, XmCHeight, XmRVerticalDimension,
|
|
Packit |
b099d7 |
sizeof(Dimension), XtOffsetOf(CoreRec, core.height),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtitle, XmCTitle, XmRXmString,
|
|
Packit |
b099d7 |
sizeof(XmString), XtOffsetOf(XmMultiListRec, ext_list.title),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtitleString, XmCTitleString, XmRXmString,
|
|
Packit |
b099d7 |
sizeof(XmString), XtOffsetOf(XmMultiListRec, ext_list.title_string),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNdoubleClickCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList), XtOffsetOf(XmMultiListRec, ext_list.double_click),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
"pri.vate", "Pri.vate", XmRBoolean,
|
|
Packit |
b099d7 |
sizeof(Boolean), XtOffsetOf(XmMultiListRec, ext_list.check_set_select_callback),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) False
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNselectCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList), XtOffsetOf(XmMultiListRec, ext_list.single_select),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* this is the old name for the above */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNsingleSelectionCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList), XtOffsetOf(XmMultiListRec, ext_list.single_select),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNshowFind, XmCShowFind, XmRBoolean,
|
|
Packit |
b099d7 |
sizeof(Boolean), XtOffsetOf(XmMultiListRec, ext_list.show_find),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) True
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNfindLabel, XmCFindLabel, XmRXmString,
|
|
Packit |
b099d7 |
sizeof(XmString), XtOffsetOf(XmMultiListRec, ext_list.find_label),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNitemNotFoundCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList), XtOffsetOf(XmMultiListRec, ext_list.not_found),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNitemFoundCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList), XtOffsetOf(XmMultiListRec, ext_list.item_found),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNvisibleItemCount, XmCVisibleItemCount, XmRInt,
|
|
Packit |
b099d7 |
sizeof(int), XtOffsetOf(XmMultiListRec, ext_list.visible_rows),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmMultiList_DEFAULT_VISIBLE_COUNT
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
#ifndef BUG_FIX_1385
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNnumColumns, XmCNumColumns, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNnumRows, XmCNumRows, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNselectedColumn, XmCSelectedColumn, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNcolumnTitles, XmCColumnTitles, XmRXmStringTable,
|
|
Packit |
b099d7 |
sizeof(XmString *), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNentryData, XmCEntryData, XmRPointer,
|
|
Packit |
b099d7 |
sizeof(XtPointer), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNentryBackground, XmCBackground, XtRPixel,
|
|
Packit |
b099d7 |
sizeof(Pixel), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNfirstColumnPixmaps, XmCFirstColumnPixmaps, XmRBoolean,
|
|
Packit |
b099d7 |
sizeof(Boolean), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNfontList, XmCFontList, XmRFontList,
|
|
Packit |
b099d7 |
sizeof(XmFontList), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNrenderTable, XmCRenderTable, XmRRenderTable,
|
|
Packit |
b099d7 |
sizeof(XmRenderTable), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNverticalScrollBar, XmCScrollBar, XmRWidget,
|
|
Packit |
b099d7 |
sizeof(Widget), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNhorizontalScrollBar, XmCScrollBar, XmRWidget,
|
|
Packit |
b099d7 |
sizeof(Widget), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNfirstRow, XmCFirstLocation, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNfirstColumn, XmCFirstLocation, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNsortFunctions, XmCFunction, XmRFunction,
|
|
Packit |
b099d7 |
sizeof(Xm18SortFunction **), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNselectionPolicy, XmCSelectionPolicy, XmRSelectionPolicy,
|
|
Packit |
b099d7 |
sizeof(unsigned char), 0,
|
|
Packit |
b099d7 |
NULL, (XtPointer) NULL
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmSyntheticResource syn_resources[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNwidth,
|
|
Packit |
b099d7 |
sizeof (Dimension), XtOffsetOf(CoreRec, core.width),
|
|
Packit |
b099d7 |
XmeFromHorizontalPixels, XmeToHorizontalPixels
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNheight,
|
|
Packit |
b099d7 |
sizeof (Dimension), XtOffsetOf(CoreRec, core.height),
|
|
Packit |
b099d7 |
XmeFromVerticalPixels, XmeToVerticalPixels
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiListClassRec xmMultiListClassRec = {
|
|
Packit |
b099d7 |
{ /* core fields */
|
|
Packit |
b099d7 |
/* superclass */ (WidgetClass)&xmManagerClassRec,
|
|
Packit |
b099d7 |
/* class_name */ "XmMultiList",
|
|
Packit |
b099d7 |
/* widget_size */ sizeof(XmMultiListRec),
|
|
Packit |
b099d7 |
/* class_initialize */ ClassInitialize,
|
|
Packit |
b099d7 |
/* class_part_initialize */ ClassPartInitialize,
|
|
Packit |
b099d7 |
/* class_inited */ FALSE,
|
|
Packit |
b099d7 |
/* initialize */ Initialize,
|
|
Packit |
b099d7 |
/* initialize_hook */ NULL,
|
|
Packit |
b099d7 |
/* realize */ XtInheritRealize,
|
|
Packit |
b099d7 |
/* actions */ NULL,
|
|
Packit |
b099d7 |
/* num_actions */ (Cardinal)0,
|
|
Packit |
b099d7 |
/* resources */ (XtResource*)resources,
|
|
Packit |
b099d7 |
/* num_resources */ XtNumber(resources),
|
|
Packit |
b099d7 |
/* xrm_class */ NULLQUARK,
|
|
Packit |
b099d7 |
/* compress_motion */ TRUE,
|
|
Packit |
b099d7 |
/* compress_exposure */ TRUE,
|
|
Packit |
b099d7 |
/* compress_enterleave */ TRUE,
|
|
Packit |
b099d7 |
/* visible_interest */ FALSE,
|
|
Packit |
b099d7 |
/* destroy */ Destroy,
|
|
Packit |
b099d7 |
/* resize */ Resize,
|
|
Packit |
b099d7 |
/* expose */ NULL,
|
|
Packit |
b099d7 |
/* set_values */ SetValues,
|
|
Packit |
b099d7 |
/* set_values_hook */ NULL,
|
|
Packit |
b099d7 |
/* set_values_almost */ XtInheritSetValuesAlmost,
|
|
Packit |
b099d7 |
/* get_values_hook */ GetValuesHook,
|
|
Packit |
b099d7 |
/* accept_focus */ NULL,
|
|
Packit |
b099d7 |
/* version */ XtVersion,
|
|
Packit |
b099d7 |
/* callback_private */ NULL,
|
|
Packit |
b099d7 |
/* tm_table */ XtInheritTranslations,
|
|
Packit |
b099d7 |
/* query_geometry */ XtInheritQueryGeometry,
|
|
Packit |
b099d7 |
/* display_accelerator */ XtInheritDisplayAccelerator,
|
|
Packit |
b099d7 |
/* extension */ NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{ /* composite_class fields */
|
|
Packit |
b099d7 |
/* geometry_manager */ GeometryManager,
|
|
Packit |
b099d7 |
/* change_managed */ ChangeManaged,
|
|
Packit |
b099d7 |
/* insert_child */ XtInheritInsertChild,
|
|
Packit |
b099d7 |
/* delete_child */ XtInheritDeleteChild,
|
|
Packit |
b099d7 |
/* extension */ NULL,
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{ /* constraint_class fields */
|
|
Packit |
b099d7 |
/* resource list */ NULL,
|
|
Packit |
b099d7 |
/* num resources */ 0,
|
|
Packit |
b099d7 |
/* constraint size */ 0,
|
|
Packit |
b099d7 |
/* destroy proc */ NULL,
|
|
Packit |
b099d7 |
/* init proc */ NULL,
|
|
Packit |
b099d7 |
/* set values proc */ NULL,
|
|
Packit |
b099d7 |
/* extension */ NULL,
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{ /* manager_class fields */
|
|
Packit |
b099d7 |
/* default translations */ XtInheritTranslations,
|
|
Packit |
b099d7 |
/* syn_resources */ syn_resources,
|
|
Packit |
b099d7 |
/* num_syn_resources */ XtNumber(syn_resources),
|
|
Packit |
b099d7 |
/* syn_cont_resources */ NULL,
|
|
Packit |
b099d7 |
/* num_syn_cont_resources */ 0,
|
|
Packit |
b099d7 |
/* parent_process */ NULL,
|
|
Packit |
b099d7 |
/* extension */ NULL,
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{ /* Extended List fields */
|
|
Packit |
b099d7 |
NULL /* extension */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
WidgetClass xmMultiListWidgetClass = (WidgetClass)&xmMultiListClassRec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: ClassInitialize
|
|
Packit |
b099d7 |
* Description: Initializes class-specific data (offsets)
|
|
Packit |
b099d7 |
* Arguments: none
|
|
Packit |
b099d7 |
* Returns: nothing
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ClassInitialize()
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* do nothing */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: Initialize
|
|
Packit |
b099d7 |
* Description: Called to initialize information specific
|
|
Packit |
b099d7 |
* to this widget.
|
|
Packit |
b099d7 |
* Arguments: req - what was originally requested.
|
|
Packit |
b099d7 |
* set - what will be created (our superclassed have
|
|
Packit |
b099d7 |
* already mucked with this)
|
|
Packit |
b099d7 |
* args, num_args - The arguments passed to
|
|
Packit |
b099d7 |
* the creation call.
|
|
Packit |
b099d7 |
* Returns: none.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static void Initialize(Widget req, Widget set,
|
|
Packit |
b099d7 |
ArgList args, Cardinal * num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ArgList f_args;
|
|
Packit |
b099d7 |
Cardinal f_num_args;
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) set;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Pass filtered setvalues requests down to all children.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmFilterArgs(args, *num_args, xm_std_filter, &f_args, &f_num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiList_last_search(elist) = NULL;
|
|
Packit |
b099d7 |
XmMultiList_ilist(elist) = NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_title(elist) != NULL)
|
|
Packit |
b099d7 |
XmMultiList_title(elist) = XmStringCopy(XmMultiList_title(elist));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_title_string(elist) != NULL)
|
|
Packit |
b099d7 |
XmMultiList_title_string(elist) =
|
|
Packit |
b099d7 |
XmStringCopy(XmMultiList_title_string(elist));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_find_label(elist) != NULL)
|
|
Packit |
b099d7 |
XmMultiList_find_label(elist) = XmStringCopy(XmMultiList_find_label(elist));
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XmMultiList_find_label(elist) =
|
|
Packit |
b099d7 |
XmStringGenerate(FIND_STRING, NULL, XmCHARSET_TEXT, NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiList_title_wid(elist) = CreateTitle(set,
|
|
Packit |
b099d7 |
(XmMultiList_title_string(elist) ?
|
|
Packit |
b099d7 |
XmMultiList_title_string(elist) :
|
|
Packit |
b099d7 |
XmMultiList_title(elist)),
|
|
Packit |
b099d7 |
f_args, f_num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiList_v_bar(elist) = CreateScrollbar(set, True, f_args, f_num_args);
|
|
Packit |
b099d7 |
XmMultiList_h_bar(elist) = CreateScrollbar(set, False, f_args, f_num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Scrollbars must be created before the frame.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiList_frame(elist) = CreateFrame(set, f_args, f_num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiList_find(elist) = CreateFindButton(set, f_args, f_num_args);
|
|
Packit |
b099d7 |
XmMultiList_find_text(elist) = CreateFindText(set, f_args, f_num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Compute our initial height & width if unset... */
|
|
Packit |
b099d7 |
if (XtHeight(req) == 0)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int title_height = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_title(elist) || XmMultiList_title_string(elist))
|
|
Packit |
b099d7 |
title_height = XmMultiList_title_wid(elist)->core.height + 2 *
|
|
Packit |
b099d7 |
(XmMultiList_title_wid(elist)->core.border_width + V_MARGIN);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_show_find(elist))
|
|
Packit |
b099d7 |
XtHeight(set) = XmMultiList_h_bar(elist)->core.height +
|
|
Packit |
b099d7 |
XmMultiList_frame(elist)->core.height + title_height +
|
|
Packit |
b099d7 |
XmMultiList_find(elist)->core.height + 2 *
|
|
Packit |
b099d7 |
(V_MARGIN + elist->core.border_width +
|
|
Packit |
b099d7 |
XmMultiList_h_bar(elist)->core.border_width +
|
|
Packit |
b099d7 |
XmMultiList_frame(elist)->core.border_width +
|
|
Packit |
b099d7 |
XmMultiList_find(elist)->core.border_width);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XtHeight(set) = XmMultiList_title_wid(elist)->core.height +
|
|
Packit |
b099d7 |
XmMultiList_h_bar(elist)->core.height + title_height +
|
|
Packit |
b099d7 |
XmMultiList_frame(elist)->core.height + 2 *
|
|
Packit |
b099d7 |
(V_MARGIN + elist->core.border_width +
|
|
Packit |
b099d7 |
XmMultiList_h_bar(elist)->core.border_width +
|
|
Packit |
b099d7 |
XmMultiList_frame(elist)->core.border_width);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XtWidth(req) == 0)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtWidth(set) = XmMultiList_ilist(elist)->core.width +
|
|
Packit |
b099d7 |
XmMultiList_v_bar(elist)->core.width + (5 * H_MARGIN) +
|
|
Packit |
b099d7 |
(2 * elist->core.border_width);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer) f_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* ClassPartInitialize sets up the fast subclassing for the widget.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ClassPartInitialize(WidgetClass w_class)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmFastSubclassInit (w_class, XmEXT18LIST_BIT);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: Destroy
|
|
Packit |
b099d7 |
* Description: Cleans up after the widget.
|
|
Packit |
b099d7 |
* Arguments: w - the widget.
|
|
Packit |
b099d7 |
* Returns: none.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Destroy(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmStringFree(XmMultiList_title(elist));
|
|
Packit |
b099d7 |
XmStringFree(XmMultiList_title_string(elist));
|
|
Packit |
b099d7 |
XmStringFree(XmMultiList_find_label(elist));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtRemoveAllCallbacks(w, XmNsingleSelectionCallback);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: Resize
|
|
Packit |
b099d7 |
* Description: Called when this widget has been resized.
|
|
Packit |
b099d7 |
* Arguments: w - Extended List Widget to realize.
|
|
Packit |
b099d7 |
* Returns: none.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Resize(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
LayoutChildren(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: ChangeManaged
|
|
Packit |
b099d7 |
* Description: when a management change has occurred.
|
|
Packit |
b099d7 |
* Arguments: w - the Ext List widget.
|
|
Packit |
b099d7 |
* Returns: none.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* ARGSUSED */
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ChangeManaged(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
LayoutChildren(w);
|
|
Packit |
b099d7 |
XmeNavigChangeManaged((Widget)w); /* for Motif navigation */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: GetValuesHook
|
|
Packit |
b099d7 |
* Description: Called to retrieve resource values from either
|
|
Packit |
b099d7 |
* the extended list or the interal list
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget.
|
|
Packit |
b099d7 |
* args, num_args - the argument list.
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Added: 04/09/92 beth
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetValuesHook(Widget w, ArgList args, Cardinal *num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
register Cardinal i, num=0, j = *num_args;
|
|
Packit |
b099d7 |
Arg i_args[15];
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Get the correct args to pass to the I18List widget
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
for (i=0; i < j; i++) {
|
|
Packit |
b099d7 |
if (streq(args[i].name, XmNnumColumns) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNnumRows) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNselectedColumn) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNcolumnTitles) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNentryData) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNentryBackground) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNfirstColumnPixmaps) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNfontList) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNrenderTable) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNverticalScrollBar) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNhorizontalScrollBar) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNfirstRow) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNfirstColumn) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNsortFunctions) ||
|
|
Packit |
b099d7 |
streq(args[i].name, XmNselectionPolicy)) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(i_args[num], args[i].name, args[i].value);
|
|
Packit |
b099d7 |
num++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else if (streq(args[i].name, XmNtitle))
|
|
Packit |
b099d7 |
*(XmString*)args[i].value = XmStringCopy(XmMultiList_title(elist));
|
|
Packit |
b099d7 |
else if (streq(args[i].name, XmNtitleString))
|
|
Packit |
b099d7 |
*(XmString*)args[i].value = XmStringCopy(XmMultiList_title_string(elist));
|
|
Packit |
b099d7 |
else if (streq(args[i].name, XmNfindLabel))
|
|
Packit |
b099d7 |
*(XmString*)args[i].value = XmStringCopy(XmMultiList_find_label(elist));
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Pass argument list through to the IList widget.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (num > 0)
|
|
Packit |
b099d7 |
XtGetValues(XmMultiList_ilist(elist), i_args, num);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: SetValues
|
|
Packit |
b099d7 |
* Description: Called when some widget data needs to be modified on-
|
|
Packit |
b099d7 |
* the-fly.
|
|
Packit |
b099d7 |
* Arguments: current - the current (old) widget values.
|
|
Packit |
b099d7 |
* request - before superclassed have changed things.
|
|
Packit |
b099d7 |
* set - what will acutally be the new values.
|
|
Packit |
b099d7 |
* args, num_args - the arguments in the list.
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define NUM_FIND_WIDGETS 2
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValues(Widget current, Widget request, Widget set,
|
|
Packit |
b099d7 |
ArgList args, Cardinal * num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget e_old = (XmMultiListWidget) current;
|
|
Packit |
b099d7 |
XmMultiListWidget e_set = (XmMultiListWidget) set;
|
|
Packit |
b099d7 |
ArgList f_args;
|
|
Packit |
b099d7 |
Cardinal f_num_args;
|
|
Packit |
b099d7 |
Boolean redisplay = False;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Pass the SetValues request through to all children.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmFilterArgs(args, *num_args, xm_std_filter, &f_args, &f_num_args);
|
|
Packit |
b099d7 |
_XmSetValuesOnChildren((Widget) e_set, f_args, f_num_args);
|
|
Packit |
b099d7 |
XtFree((XtPointer) f_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_visible_rows(e_old) != XmMultiList_visible_rows(e_set))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (XmMultiList_visible_rows(e_set) < 1)
|
|
Packit |
b099d7 |
XmMultiList_visible_rows(e_set) = 1; /* reset values less than 1 */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_show_find(e_old) != XmMultiList_show_find(e_set))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget find_widgets[NUM_FIND_WIDGETS];
|
|
Packit |
b099d7 |
find_widgets[0] = XmMultiList_find(e_set);
|
|
Packit |
b099d7 |
find_widgets[1] = XmMultiList_find_text(e_set);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_show_find(e_set))
|
|
Packit |
b099d7 |
XtManageChildren(find_widgets, NUM_FIND_WIDGETS);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XtUnmanageChildren(find_widgets, NUM_FIND_WIDGETS);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This check may return, so it must be last.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_find_label(e_old) != XmMultiList_find_label(e_set))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
redisplay = True;
|
|
Packit |
b099d7 |
XmStringFree(XmMultiList_find_label(e_old));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_find_label(e_set) != NULL)
|
|
Packit |
b099d7 |
XmMultiList_find_label(e_set) =
|
|
Packit |
b099d7 |
XmStringCopy(XmMultiList_find_label(e_set));
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XmMultiList_find_label(e_set) =
|
|
Packit |
b099d7 |
XmStringCreateLocalized(FIND_STRING);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNlabelString, XmMultiList_find_label(e_set));
|
|
Packit |
b099d7 |
XtSetValues(XmMultiList_find(e_set), args, 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* MultiList supports both XmNtitle (for backwards compatibility) and
|
|
Packit |
b099d7 |
* XmNtitleString resources, so we must check for changes to both here
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((XmMultiList_title(e_old) != XmMultiList_title(e_set)) ||
|
|
Packit |
b099d7 |
(XmMultiList_title_string(e_old) != XmMultiList_title_string(e_set)))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmString *title, old_title;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* note: fails if both are set at the same time */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_title_string(e_old) != XmMultiList_title_string(e_set))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
title = &XmMultiList_title_string(e_set);
|
|
Packit |
b099d7 |
old_title = XmMultiList_title_string(e_old);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
title = &XmMultiList_title(e_set);
|
|
Packit |
b099d7 |
old_title = XmMultiList_title(e_old);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*title == NULL) || (old_title == NULL))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
LayoutChildren(set);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (*title != NULL)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg zargs[2];
|
|
Packit |
b099d7 |
Cardinal znum_args = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*title = XmStringCopy(*title);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(zargs[znum_args], XmNlabelString, *title); znum_args++;
|
|
Packit |
b099d7 |
XtSetValues(XmMultiList_title_wid(e_set), zargs, znum_args);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmStringFree(old_title);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(redisplay);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: GeometryManager
|
|
Packit |
b099d7 |
* Description: handles requests from children for a size change.
|
|
Packit |
b099d7 |
* Arguments: child - the child to change.
|
|
Packit |
b099d7 |
* request - the geometry that the child wants.
|
|
Packit |
b099d7 |
* return - what we will allow if this is an almost.
|
|
Packit |
b099d7 |
* Returns: status.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* This function will allow any width or height request on the label,
|
|
Packit |
b099d7 |
* find button, or frame. Any other widget will have its request
|
|
Packit |
b099d7 |
* disallowed.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static XtGeometryResult
|
|
Packit |
b099d7 |
GeometryManager(Widget w, XtWidgetGeometry * request,
|
|
Packit |
b099d7 |
XtWidgetGeometry * result)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) XtParent(w);
|
|
Packit |
b099d7 |
XtGeometryResult answer = XtGeometryYes;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!(request->request_mode & (CWWidth | CWHeight | CWBorderWidth)))
|
|
Packit |
b099d7 |
return(XtGeometryNo);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Only these three widgets are ever allowed to initiate a resize
|
|
Packit |
b099d7 |
* request: Frame (parent of I18List), Title Widget, Find Button
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* The scrollbars should be allowed to be thicker, and the text area
|
|
Packit |
b099d7 |
* should be able to ask to resize the window wider if necessary...
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((w != XmMultiList_title_wid(elist)) && (w != XmMultiList_find(elist)) &&
|
|
Packit |
b099d7 |
(w != XmMultiList_frame(elist)))
|
|
Packit |
b099d7 |
return(XtGeometryNo);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Handle the request from the I18List (frame & ilist) child to resize...
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((w == XmMultiList_frame(elist)) &&
|
|
Packit |
b099d7 |
((request->request_mode & CWWidth) ||
|
|
Packit |
b099d7 |
(request->request_mode & CWWidth)))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget parent = XtParent(XtParent(w));
|
|
Packit |
b099d7 |
XtWidgetGeometry ext_request, ext_reply;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ext_request.request_mode = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (request->request_mode & CWWidth)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ext_request.width = elist->core.width -
|
|
Packit |
b099d7 |
(w->core.width - request->width);
|
|
Packit |
b099d7 |
ext_request.request_mode |= CWWidth;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (request->request_mode & CWHeight)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ext_request.height = elist->core.height -
|
|
Packit |
b099d7 |
(w->core.height - request->height);
|
|
Packit |
b099d7 |
ext_request.request_mode |= CWHeight;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
answer = XtMakeGeometryRequest(parent, &ext_request, &ext_reply);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (answer == XtGeometryYes)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (request->request_mode & CWHeight)
|
|
Packit |
b099d7 |
elist->core.height = ext_request.height;
|
|
Packit |
b099d7 |
if (request->request_mode & CWWidth)
|
|
Packit |
b099d7 |
elist->core.width = ext_request.width;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else if (answer == XtGeometryAlmost)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (request->request_mode & CWHeight)
|
|
Packit |
b099d7 |
elist->core.height = ext_reply.height;
|
|
Packit |
b099d7 |
if (request->request_mode & CWWidth)
|
|
Packit |
b099d7 |
elist->core.width = ext_reply.width;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!(request->request_mode & CWWidth))
|
|
Packit |
b099d7 |
request->width = w->core.width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!(request->request_mode & CWHeight))
|
|
Packit |
b099d7 |
request->height = w->core.height;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!(request->request_mode & CWBorderWidth))
|
|
Packit |
b099d7 |
request->border_width = w->core.border_width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*result = *request;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (request->request_mode & (CWX | CWY | CWStackMode | CWSibling)) {
|
|
Packit |
b099d7 |
return(XtGeometryAlmost);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (request->request_mode & XtCWQueryOnly)
|
|
Packit |
b099d7 |
return(XtGeometryYes);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A real allowed request, set the new dimensions
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
w->core.width = result->width;
|
|
Packit |
b099d7 |
w->core.height = result->height;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
LayoutChildren((Widget) elist);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(answer);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Actions and Callbacks (More entry points into the widget code).
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ActivateTextSearch(Widget w, XtPointer elist_ptr, XtPointer client)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) elist_ptr;
|
|
Packit |
b099d7 |
XmMultiListCallbackStruct find_info;
|
|
Packit |
b099d7 |
XmPushButtonCallbackStruct *cbs = (XmPushButtonCallbackStruct *) client;
|
|
Packit |
b099d7 |
Boolean reset = True;
|
|
Packit |
b099d7 |
XmMultiListRowInfo *match;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
char * ptr;
|
|
Packit |
b099d7 |
wchar_t *wc_string;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!XmMultiList_show_find(elist))
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ptr = XmTextFieldGetString(XmMultiList_find_text(elist));
|
|
Packit |
b099d7 |
wc_string = XmTextFieldGetStringWcs(XmMultiList_find_text(elist));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_last_search(elist))
|
|
Packit |
b099d7 |
reset = !streq(ptr, XmMultiList_last_search(elist));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Last parameter tells search proc to highlight a matching row... */
|
|
Packit |
b099d7 |
match = XmI18ListFindRow(XmMultiList_ilist(elist), ptr,
|
|
Packit |
b099d7 |
&find_info.column, reset, True);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
find_info.event = cbs->event;
|
|
Packit |
b099d7 |
find_info.string = ptr;
|
|
Packit |
b099d7 |
find_info.wc_string = wc_string;
|
|
Packit |
b099d7 |
find_info.row = match;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!match)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XBell(XtDisplay(w), 0);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
find_info.reason = XmMULTILIST_NOT_FOUND;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtCallCallbackList((Widget) elist, XmMultiList_not_found(elist),
|
|
Packit |
b099d7 |
(XtPointer) &find_info);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
find_info.reason = XmMULTILIST_FOUND;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtCallCallbackList((Widget) elist, XmMultiList_item_found(elist),
|
|
Packit |
b099d7 |
(XtPointer) &find_info);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer)wc_string);
|
|
Packit |
b099d7 |
XtFree(XmMultiList_last_search(elist));
|
|
Packit |
b099d7 |
XmMultiList_last_search(elist) = ptr;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
* LOCAL CODE
|
|
Packit |
b099d7 |
*************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: LayoutChildren
|
|
Packit |
b099d7 |
* Description: Lays out the "child" widgets in the Ext List widget.
|
|
Packit |
b099d7 |
* Arguments: w - the ext list widget.
|
|
Packit |
b099d7 |
* Returns: none.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void LayoutChildren(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget t_wid = XmMultiList_title_wid(elist);
|
|
Packit |
b099d7 |
Widget frame = XmMultiList_frame(elist);
|
|
Packit |
b099d7 |
Widget find_text = XmMultiList_find_text(elist);
|
|
Packit |
b099d7 |
Widget vbar = XmMultiList_v_bar(elist);
|
|
Packit |
b099d7 |
Widget hbar = XmMultiList_h_bar(elist);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Dimension title_height, h_thick, v_thick, temp_val;
|
|
Packit |
b099d7 |
Position scroll_top, scroll_bottom, scroll_left, scroll_right;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Dimension height = elist->core.height;
|
|
Packit |
b099d7 |
Dimension width = elist->core.width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Put Find and Find Text along the bottom
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
PositionFindAndFindText(w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((XmMultiList_title(elist) == NULL) &&
|
|
Packit |
b099d7 |
(XmMultiList_title_string(elist) == NULL))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
scroll_top = V_MARGIN;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNmappedWhenManaged, False);
|
|
Packit |
b099d7 |
XtSetValues(t_wid, args, (Cardinal) 1);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Put the title widget in the top left corner
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (LayoutIsRtoLM(w))
|
|
Packit |
b099d7 |
_XmMoveWidget(t_wid, (Position)(width - H_MARGIN - XtWidth(t_wid)),
|
|
Packit |
b099d7 |
(Position) V_MARGIN);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
_XmMoveWidget(t_wid, (Position) H_MARGIN, (Position) V_MARGIN);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNmappedWhenManaged, True);
|
|
Packit |
b099d7 |
XtSetValues(t_wid, args, (Cardinal) 1);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
title_height = t_wid->core.height + 2 * t_wid->core.border_width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
scroll_top = title_height + 2 * V_MARGIN;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
v_thick = vbar->core.width + 2 * vbar->core.border_width;
|
|
Packit |
b099d7 |
h_thick = hbar->core.height + 2 * vbar->core.border_width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_show_find(elist))
|
|
Packit |
b099d7 |
scroll_bottom = find_text->core.y - find_text->core.border_width - V_MARGIN;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
scroll_bottom = height - V_MARGIN;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
scroll_left = H_MARGIN;
|
|
Packit |
b099d7 |
scroll_right = width - H_MARGIN;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Place the frame.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* NOTE: I am reusing "width" and "height" for the size of the widget
|
|
Packit |
b099d7 |
* that I am about to configure.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
temp_val = v_thick + scroll_left + H_MARGIN;
|
|
Packit |
b099d7 |
if ((int)temp_val >= (int)scroll_right)
|
|
Packit |
b099d7 |
width = 1;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
width = scroll_right - temp_val;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
temp_val = h_thick + scroll_top + V_MARGIN;
|
|
Packit |
b099d7 |
if ( (Position) temp_val >= scroll_bottom )
|
|
Packit |
b099d7 |
height = 1;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
height = scroll_bottom - temp_val;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmConfigureWidget(frame, scroll_left, scroll_top, width, height,
|
|
Packit |
b099d7 |
frame->core.border_width);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Place the scrollbars.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmConfigureWidget(hbar, scroll_left, scroll_bottom - (Position) h_thick,
|
|
Packit |
b099d7 |
width, hbar->core.height, hbar->core.border_width);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
temp_val = h_thick + scroll_top + V_MARGIN;
|
|
Packit |
b099d7 |
if ( (Position) temp_val >= scroll_bottom)
|
|
Packit |
b099d7 |
height = 1;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
height = scroll_bottom - temp_val;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmConfigureWidget(vbar, scroll_right - v_thick, scroll_top,
|
|
Packit |
b099d7 |
vbar->core.width, height, vbar->core.border_width);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: PositionFindAndFindText
|
|
Packit |
b099d7 |
* Description: Positions the find and find text widgets.
|
|
Packit |
b099d7 |
* Arguments: parent - the parent of the find and find text- the EList
|
|
Packit |
b099d7 |
* Returns: none.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void PositionFindAndFindText(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget find = XmMultiList_find(elist);
|
|
Packit |
b099d7 |
Widget find_text = XmMultiList_find_text(elist);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Dimension find_height, max_child_height, find_width;
|
|
Packit |
b099d7 |
Dimension height = elist->core.height;
|
|
Packit |
b099d7 |
Dimension width = elist->core.width;
|
|
Packit |
b099d7 |
Position find_x, find_y;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (!XmMultiList_show_find(elist))
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
find_height = find->core.height + 2 * find->core.border_width;
|
|
Packit |
b099d7 |
find_width = find->core.width + 2 * find->core.border_width;
|
|
Packit |
b099d7 |
max_child_height = find_text->core.height + 2*find_text->core.border_width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (find_height > max_child_height)
|
|
Packit |
b099d7 |
max_child_height = find_height;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Put the Find widget in the lower left corner.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (LayoutIsRtoLM(w))
|
|
Packit |
b099d7 |
find_x = width - H_MARGIN - find_width;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
find_x = H_MARGIN;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
find_y = (Position) height -
|
|
Packit |
b099d7 |
(Position) ((int)(max_child_height + find_height)/2 + V_MARGIN);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmMoveWidget(find, find_x, find_y);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Put the Find Text widget next to the find widget,
|
|
Packit |
b099d7 |
* and resize it to fill the entire bottom width.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Dimension text_width, temp_val;
|
|
Packit |
b099d7 |
Position x, y;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (LayoutIsRtoLM(w))
|
|
Packit |
b099d7 |
x = H_MARGIN;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
x = (Dimension) find_x + find_width + H_MARGIN;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
y = find_y - (int)(max_child_height - find_height)/2;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
temp_val = x + H_MARGIN;
|
|
Packit |
b099d7 |
if (temp_val >= width)
|
|
Packit |
b099d7 |
text_width = 1;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
if (LayoutIsRtoLM(w))
|
|
Packit |
b099d7 |
text_width = width - find_width - temp_val;
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
text_width = width - temp_val;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmConfigureWidget(find_text, x, y, text_width, find_text->core.height,
|
|
Packit |
b099d7 |
find_text->core.border_width);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Functions that Create Widgets.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: CreateTitle
|
|
Packit |
b099d7 |
* Description: Creates the Title widget.
|
|
Packit |
b099d7 |
* Arguments: parent - parent of the title widget.
|
|
Packit |
b099d7 |
* label - The label string.
|
|
Packit |
b099d7 |
* args, num_args - arguments used to create ext list.
|
|
Packit |
b099d7 |
* Returns: the title widget.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
CreateTitle(Widget parent, XmString label, ArgList args, Cardinal num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget w;
|
|
Packit |
b099d7 |
Arg *new_args, largs[5];
|
|
Packit |
b099d7 |
Cardinal num_largs;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
num_largs = 0;
|
|
Packit |
b099d7 |
if (label != NULL) {
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNlabelString, label); num_largs++;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
new_args = XtMergeArgLists(args, num_args, largs, num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
w = XtCreateManagedWidget("title", xmLabelWidgetClass, parent,
|
|
Packit |
b099d7 |
new_args, num_largs + num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer) new_args);
|
|
Packit |
b099d7 |
return(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: CreateScrollbar
|
|
Packit |
b099d7 |
* Description: Creates a vert or horizontal scrollbar.
|
|
Packit |
b099d7 |
* Arguments: parent - parent of the scrollbar widget.
|
|
Packit |
b099d7 |
* is_vert - if true then create a vertical scrollbar,
|
|
Packit |
b099d7 |
* else, create a horiz one.
|
|
Packit |
b099d7 |
* args, num_args - arguments used to create ext list.
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
CreateScrollbar(Widget parent, Boolean is_vert,ArgList args, Cardinal num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget w;
|
|
Packit |
b099d7 |
Arg *new_args, largs[5];
|
|
Packit |
b099d7 |
Cardinal num_largs = 0;
|
|
Packit |
b099d7 |
String name;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (is_vert) {
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNorientation, XmVERTICAL);
|
|
Packit |
b099d7 |
name = "vertBar";
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else {
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNorientation, XmHORIZONTAL);
|
|
Packit |
b099d7 |
name = "horizBar";
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
num_largs++;
|
|
Packit |
b099d7 |
new_args = XtMergeArgLists(args, num_args, largs, num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
w = XtCreateManagedWidget(name, xmScrollBarWidgetClass, parent,
|
|
Packit |
b099d7 |
new_args, num_args + num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer) new_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
CreateFindButton(Widget parent, ArgList args, Cardinal num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget w;
|
|
Packit |
b099d7 |
Arg *new_args, largs[5];
|
|
Packit |
b099d7 |
Cardinal num_largs = 0;
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) parent;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
num_largs = 0;
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNlabelString, XmMultiList_find_label(elist));
|
|
Packit |
b099d7 |
num_largs++;
|
|
Packit |
b099d7 |
new_args = XtMergeArgLists(args, num_args, largs, num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
w = XtCreateWidget("find", xmPushButtonWidgetClass, parent,
|
|
Packit |
b099d7 |
new_args, num_largs + num_args);
|
|
Packit |
b099d7 |
XtAddCallback(w, XmNactivateCallback, ActivateTextSearch, parent);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_show_find(elist))
|
|
Packit |
b099d7 |
XtManageChild(w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer) new_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: CreateFindText
|
|
Packit |
b099d7 |
* Description: Creates the find text.
|
|
Packit |
b099d7 |
* Arguments: parent - parent of the find text widget.
|
|
Packit |
b099d7 |
* args, num_args - arguments used to create ext list.
|
|
Packit |
b099d7 |
* Returns: the find text widget.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
CreateFindText(Widget parent, ArgList args, Cardinal num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget w;
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) parent;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
w = XtCreateWidget("findText", xmTextFieldWidgetClass,
|
|
Packit |
b099d7 |
parent, args, num_args);
|
|
Packit |
b099d7 |
XtAddCallback(w, XmNactivateCallback, ActivateTextSearch, parent);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmMultiList_show_find(elist))
|
|
Packit |
b099d7 |
XtManageChild(w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: CreateFrame
|
|
Packit |
b099d7 |
* Description: Creates the frame to contain the list region
|
|
Packit |
b099d7 |
* Arguments: parent - parent of the frame.
|
|
Packit |
b099d7 |
* args, num_args - arguments used to create ext list.
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
CreateFrame(Widget parent, ArgList args, Cardinal num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) parent;
|
|
Packit |
b099d7 |
Widget w;
|
|
Packit |
b099d7 |
Arg largs[2], * new_args;
|
|
Packit |
b099d7 |
Cardinal num_largs;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
num_largs = 0;
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNshadowType, XmSHADOW_IN); num_largs++;
|
|
Packit |
b099d7 |
new_args = XtMergeArgLists(args, num_args, largs, num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
w = XtCreateWidget("frame", xmFrameWidgetClass, parent,
|
|
Packit |
b099d7 |
new_args, num_args + num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer) new_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
num_largs = 0;
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNverticalScrollBar, XmMultiList_v_bar(elist));
|
|
Packit |
b099d7 |
num_largs++;
|
|
Packit |
b099d7 |
XtSetArg(largs[num_largs], XmNhorizontalScrollBar, XmMultiList_h_bar(elist));
|
|
Packit |
b099d7 |
num_largs++;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
new_args = XtMergeArgLists(args, num_args, largs, num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiList_ilist(elist) = XtCreateManagedWidget("list", xmI18ListWidgetClass,
|
|
Packit |
b099d7 |
w, new_args,
|
|
Packit |
b099d7 |
num_args + num_largs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((XtPointer) new_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* PWC - Note...
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Required to force geometry of frame here (it won't inherit child's size)
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
w->core.width = XmMultiList_ilist(elist)->core.width +
|
|
Packit |
b099d7 |
2 * w->core.border_width;
|
|
Packit |
b099d7 |
w->core.height = XmMultiList_ilist(elist)->core.height +
|
|
Packit |
b099d7 |
2 * w->core.border_width;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtManageChild(w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return(w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Public Functions.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* -kat 1/18/91
|
|
Packit |
b099d7 |
* Function Name: XmMultiListGetSelectedRows
|
|
Packit |
b099d7 |
* Description: Takes an Extended List and returns a NULL terminated array
|
|
Packit |
b099d7 |
* of pointers to selected rows from the internal list
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* Returns: XmMultiListRowInfo **
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmMultiListRowInfo **
|
|
Packit |
b099d7 |
XmMultiListGetSelectedRows(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
XmMultiListRowInfo **ret_rows = NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ret_rows = XmI18ListGetSelectedRows(XmMultiList_ilist(elist));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return ret_rows;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmCreateMultiList
|
|
Packit |
b099d7 |
* Description: Creation Routine for UIL and ADA.
|
|
Packit |
b099d7 |
* Arguments: parent - the parent widget.
|
|
Packit |
b099d7 |
* name - the name of the widget.
|
|
Packit |
b099d7 |
* args, num_args - the number and list of args.
|
|
Packit |
b099d7 |
* Returns: The created widget.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget
|
|
Packit |
b099d7 |
XmCreateMultiList(Widget parent, String name,
|
|
Packit |
b099d7 |
ArgList args, Cardinal num_args)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return (XtCreateWidget(name, xmMultiListWidgetClass,
|
|
Packit |
b099d7 |
parent, args, num_args));
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget
|
|
Packit |
b099d7 |
XmVaCreateMultiList(
|
|
Packit |
b099d7 |
Widget parent,
|
|
Packit |
b099d7 |
char *name,
|
|
Packit |
b099d7 |
...)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
register Widget w;
|
|
Packit |
b099d7 |
va_list var;
|
|
Packit |
b099d7 |
int count;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var,name);
|
|
Packit |
b099d7 |
count = XmeCountVaListSimple(var);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var, name);
|
|
Packit |
b099d7 |
w = XmeVLCreateWidget(name,
|
|
Packit |
b099d7 |
xmMultiListWidgetClass,
|
|
Packit |
b099d7 |
parent, False,
|
|
Packit |
b099d7 |
var, count);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
return w;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget
|
|
Packit |
b099d7 |
XmVaCreateManagedMultiList(
|
|
Packit |
b099d7 |
Widget parent,
|
|
Packit |
b099d7 |
char *name,
|
|
Packit |
b099d7 |
...)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget w = NULL;
|
|
Packit |
b099d7 |
va_list var;
|
|
Packit |
b099d7 |
int count;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var, name);
|
|
Packit |
b099d7 |
count = XmeCountVaListSimple(var);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var, name);
|
|
Packit |
b099d7 |
w = XmeVLCreateWidget(name,
|
|
Packit |
b099d7 |
xmMultiListWidgetClass,
|
|
Packit |
b099d7 |
parent, True,
|
|
Packit |
b099d7 |
var, count);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
return w;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListUnselectAllItems
|
|
Packit |
b099d7 |
* Description: Unselects all rows
|
|
Packit |
b099d7 |
* Arguments: w - the ilist widget.
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListUnselectAllItems(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget)w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Xm18IListUnselectAllItems( XmMultiList_ilist(elist) );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListUnselectItem
|
|
Packit |
b099d7 |
* Description: Unselects the row passed in
|
|
Packit |
b099d7 |
* Arguments: w - the ilist widget.
|
|
Packit |
b099d7 |
* row_info - ptr to the row passed in
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListUnselectItem(Widget w, XmMultiListRowInfo *row_info)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Xm18IListUnselectItem( XmMultiList_ilist(elist), row_info );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListToggleRow
|
|
Packit |
b099d7 |
* Description: Toggles the selection state of a specified row
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListToggleRow(Widget w, short row)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListToggleRow(XmMultiList_ilist(elist), row);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListSelectItems
|
|
Packit |
b099d7 |
* Description: Set selection state by matching column entries to XmString
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* item - XmString to use as selection key
|
|
Packit |
b099d7 |
* notify - if True, call XmNsingleSelectionCallback
|
|
Packit |
b099d7 |
* column - column number (0 - N) to match (or XmANY_COLUMN)
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void XmMultiListSelectItems(Widget w, XmString item,
|
|
Packit |
b099d7 |
int column, Boolean notify)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListSelectItems((XmI18ListWidget)XmMultiList_ilist(elist),
|
|
Packit |
b099d7 |
item, column, notify);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListDeselectItems
|
|
Packit |
b099d7 |
* Description: Set selection state by matching column entries to XmString
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* item - XmString to use as selection key
|
|
Packit |
b099d7 |
* column - column number (0 - N) to match (or XmANY_COLUMN)
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListDeselectItems(Widget w, XmString item, int column)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListDeselectItems((XmI18ListWidget)XmMultiList_ilist(elist),
|
|
Packit |
b099d7 |
item, column);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListSelectAllItems
|
|
Packit |
b099d7 |
* Description: Set selection state of all rows
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* notify - if True, call XmNsingleSelectionCallback
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void XmMultiListSelectAllItems(Widget w, Boolean notify)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListSelectAllItems((XmI18ListWidget)XmMultiList_ilist(elist), notify);
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListSelectRow
|
|
Packit |
b099d7 |
* Description: Set selection state on all rows
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* row - the row to select
|
|
Packit |
b099d7 |
* notify - if True, call XmNsingleSelectionCallback
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListSelectRow(Widget w, int row, Boolean notify)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListSelectRow((XmI18ListWidget)XmMultiList_ilist(elist), row, notify);
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListDeselectRow
|
|
Packit |
b099d7 |
* Description: Set selection state on all rows
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* row - the row to select
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListDeselectRow(Widget w, int row)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListDeselectRow((XmI18ListWidget)XmMultiList_ilist(elist), row);
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiGetSelectedRowArray
|
|
Packit |
b099d7 |
* Description: Creates an array of integers which are selected row #'s
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* rows - pointer to the array of selected row #'s
|
|
Packit |
b099d7 |
* num_rows - pointer to the number of selected rows
|
|
Packit |
b099d7 |
* Returns: selected rows array
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
int *
|
|
Packit |
b099d7 |
XmMultiListGetSelectedRowArray(Widget w, int *num_rows)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
int *ret_val;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ret_val = XmI18ListGetSelectedRowArray(
|
|
Packit |
b099d7 |
(XmI18ListWidget)XmMultiList_ilist(elist),
|
|
Packit |
b099d7 |
num_rows);
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return ret_val;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Function Name: XmMultiListMakeRowVisible
|
|
Packit |
b099d7 |
* Description: Shifts the visible extended list rows as desired
|
|
Packit |
b099d7 |
* Arguments: w - the extended list widget
|
|
Packit |
b099d7 |
* row - the row number wished to be made visible
|
|
Packit |
b099d7 |
* Returns: none
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmMultiListMakeRowVisible(Widget w, int row)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmMultiListWidget elist = (XmMultiListWidget) w;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(w);
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmI18ListMakeRowVisible((XmI18ListWidget)XmMultiList_ilist(elist), row);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* aliases of deprecated functiosn of XmExt18List */
|
|
Packit |
b099d7 |
extern WidgetClass xmExt18ListWidgetClass XM_ALIAS(xmMultiListWidgetClass);
|
|
Packit |
b099d7 |
XmMultiListRowInfo ** XmExt18ListGetSelectedRows(Widget) XM_ALIAS(XmMultiListGetSelectedRows);
|
|
Packit |
b099d7 |
Widget XmCreateExtended18List(Widget, String, ArgList, Cardinal) XM_ALIAS(XmCreateMultiList);
|
|
Packit |
b099d7 |
Widget XmCreateExt18List(Widget, String, ArgList, Cardinal) XM_ALIAS(XmCreateMultiList);
|
|
Packit |
b099d7 |
Widget XmVaCreateExt18List(Widget, char *, ...) XM_ALIAS(XmVaCreateMultiList);
|
|
Packit |
b099d7 |
Widget XmVaCreateManagedExt18List(Widget, char *, ...) XM_ALIAS(XmVaCreateManagedMultiList);
|
|
Packit |
b099d7 |
void XmExt18ListUnselectAllItems(Widget) XM_ALIAS(XmMultiListUnselectAllItems);
|
|
Packit |
b099d7 |
void XmExt18ListUnselectItem(Widget, XmMultiListRowInfo*) XM_ALIAS(XmMultiListUnselectItem);
|
|
Packit |
b099d7 |
void XmExt18ListToggleRow(Widget, short) XM_ALIAS(XmMultiListToggleRow);
|
|
Packit |
b099d7 |
void XmExt18ListSelectItems(Widget, XmString, int, Boolean) XM_ALIAS(XmMultiListSelectItems);
|
|
Packit |
b099d7 |
void XmExt18ListDeselectItems(Widget, XmString, int) XM_ALIAS(XmMultiListDeselectItems);
|
|
Packit |
b099d7 |
void XmExt18ListSelectAllItems(Widget, Boolean) XM_ALIAS(XmMultiListSelectAllItems);
|
|
Packit |
b099d7 |
void XmExt18ListSelectRow(Widget, int, Boolean) XM_ALIAS(XmMultiListSelectRow);
|
|
Packit |
b099d7 |
void XmExt18ListDeselectRow(Widget, int) XM_ALIAS(XmMultiListDeselectRow);
|
|
Packit |
b099d7 |
int *XmExt18ListGetSelectedRowArray(Widget, int *) XM_ALIAS(XmMultiListGetSelectedRowArray);
|
|
Packit |
b099d7 |
void XmExt18ListMakeRowVisible(Widget, int) XM_ALIAS(XmMultiListMakeRowVisible);
|
|
Packit |
b099d7 |
extern XmMultiListClassRec xmExt18ListClassRec XM_ALIAS(xmMultiListClassRec);
|