editresP.h revision 33c89af1
133c89af1Smrg
233c89af1Smrg/*
333c89af1Smrg * $Xorg: editresP.h,v 1.4 2001/02/09 02:05:29 xorgcvs Exp $
433c89af1Smrg *
533c89af1SmrgCopyright 1989, 1998  The Open Group
633c89af1Smrg
733c89af1SmrgPermission to use, copy, modify, distribute, and sell this software and its
833c89af1Smrgdocumentation for any purpose is hereby granted without fee, provided that
933c89af1Smrgthe above copyright notice appear in all copies and that both that
1033c89af1Smrgcopyright notice and this permission notice appear in supporting
1133c89af1Smrgdocumentation.
1233c89af1Smrg
1333c89af1SmrgThe above copyright notice and this permission notice shall be included in
1433c89af1Smrgall copies or substantial portions of the Software.
1533c89af1Smrg
1633c89af1SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1733c89af1SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1833c89af1SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
1933c89af1SmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
2033c89af1SmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2133c89af1SmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2233c89af1Smrg
2333c89af1SmrgExcept as contained in this notice, the name of The Open Group shall not be
2433c89af1Smrgused in advertising or otherwise to promote the sale, use or other dealings
2533c89af1Smrgin this Software without prior written authorization from The Open Group.
2633c89af1Smrg *
2733c89af1Smrg * Author:  Chris D. Peterson, MIT X Consortium
2833c89af1Smrg */
2933c89af1Smrg/* $XFree86: xc/programs/editres/editresP.h,v 1.6 2001/07/25 15:05:13 dawes Exp $ */
3033c89af1Smrg
3133c89af1Smrg#include <X11/Xmu/EditresP.h>
3233c89af1Smrg#include <X11/Xresource.h>
3333c89af1Smrg
3433c89af1Smrg#define DEBUG
3533c89af1Smrg
3633c89af1Smrg#ifdef DEBUG
3733c89af1Smrg#  define CLIENT_TIME_OUT 60000	/* wait sixty seconds for the client. */
3833c89af1Smrg#else
3933c89af1Smrg#  define CLIENT_TIME_OUT 5000	/* wait five seconds for the client. */
4033c89af1Smrg#endif /* DEBUG */
4133c89af1Smrg
4233c89af1Smrg#define PROTOCOL_VERSION_ONE_POINT_ONE  5 /* version 1.1 */
4333c89af1Smrg#define ONE_POINT_ONE_STRING "1.1"
4433c89af1Smrg#define PROTOCOL_VERSION_ONE_POINT_ZERO 4 /* version 1.0 */
4533c89af1Smrg#define ONE_POINT_ZERO_STRING "1.0" ONE_POINT_ONE_STRING
4633c89af1Smrg
4733c89af1Smrg#define CURRENT_PROTOCOL_VERSION PROTOCOL_VERSION_ONE_POINT_ONE
4833c89af1Smrg#define CURRENT_PROTOCOL_VERSION_STRING ONE_POINT_ONE_STRING
4933c89af1Smrg
5033c89af1Smrg#define FLASH_TIME  1000	/* Default flash time in microseconds */
5133c89af1Smrg#define NUM_FLASHES 3		/* Default number of flashes. */
5233c89af1Smrg
5333c89af1Smrg#define NO_IDENT 0		/* an ident that will match nothing. */
5433c89af1Smrg
5533c89af1Smrg#define NUM_INC 10		/* amount to increment allocators. */
5633c89af1Smrg
5733c89af1Smrg#define ANY_RADIO_DATA ("the any widget")
5833c89af1Smrg#define RESOURCE_BOX ("resourceBox")
5933c89af1Smrg
6033c89af1Smrg
6133c89af1Smrg/*
6233c89af1Smrg * Retrieving ResType and Boolean is the same as retrieving a Card8 except
6333c89af1Smrg * possibly for signedness.
6433c89af1Smrg */
6533c89af1Smrg
6633c89af1Smrg#define _XEditResGetBoolean(_s, _r) _XEditResGet8((_s), (unsigned char *)(_r))
6733c89af1Smrg#define _XEditResGetResType _XEditResGet8
6833c89af1Smrg
6933c89af1Smrg/*
7033c89af1Smrg * Contexts to use with the X Context Manager.
7133c89af1Smrg */
7233c89af1Smrg
7333c89af1Smrg#define NODE_INFO ((XContext) 42)
7433c89af1Smrg
7533c89af1Smrg/*
7633c89af1Smrg * Error codes for X Server errors.
7733c89af1Smrg */
7833c89af1Smrg
7933c89af1Smrg#define NO_ERROR 0
8033c89af1Smrg#define NO_WINDOW 1
8133c89af1Smrg
8233c89af1Smrgtypedef enum {LocalSendWidgetTree, LocalSetValues, LocalFindChild,
8333c89af1Smrg	      LocalFlashWidget, LocalGetGeometry, LocalGetResources,
8433c89af1Smrg              LocalGetValues} ResCommand;
8533c89af1Smrg
8633c89af1Smrgtypedef enum {ClassLabel, NameLabel, IDLabel, WindowLabel,
8733c89af1Smrg	      ToggleLabel} LabelTypes;
8833c89af1Smrgtypedef enum {SelectWidget, SelectAll, SelectNone, SelectInvert, SelectParent,
8933c89af1Smrg	      SelectChildren,  SelectDescendants, SelectAncestors} SelectTypes;
9033c89af1Smrg
9133c89af1Smrgtypedef struct _NameInfo {
9233c89af1Smrg    struct _NameInfo * next;	/* Next element in the linked list. */
9333c89af1Smrg    Widget sep_leader;		/* The separator toggle group leader. */
9433c89af1Smrg    Widget name_leader;		/* The name toggle group leader. */
9533c89af1Smrg} NameInfo;
9633c89af1Smrg
9733c89af1Smrgtypedef struct _ResourceBoxInfo {
9833c89af1Smrg    Widget value_wid;		/* The string containing the value. */
9933c89af1Smrg    Widget res_label;		/* The label containing current resoruce. */
10033c89af1Smrg    Widget shell;		/* Shell widget containing resource box. */
10133c89af1Smrg    Widget norm_list;		/* The List widget for the normal list. */
10233c89af1Smrg    Widget cons_list;		/* The List widget for the
10333c89af1Smrg				   Constriaint Resources */
10433c89af1Smrg    NameInfo * name_info;	/* The info about the widgets for each
10533c89af1Smrg				   name and class in the instance heirarchy. */
10633c89af1Smrg} ResourceBoxInfo;
10733c89af1Smrg
10833c89af1Smrgtypedef struct _WidgetResourceInfo {
10933c89af1Smrg    char * name, * class, *type; /* Name, Class and Type of each resource. */
11033c89af1Smrg} WidgetResourceInfo;
11133c89af1Smrg
11233c89af1Smrgtypedef struct _WidgetResources {
11333c89af1Smrg    int num_normal, num_constraint;
11433c89af1Smrg    WidgetResourceInfo *normal, *constraint;
11533c89af1Smrg    ResourceBoxInfo * res_box;
11633c89af1Smrg} WidgetResources;
11733c89af1Smrg
11833c89af1Smrgtypedef struct _WNode {
11933c89af1Smrg    char * name;
12033c89af1Smrg    char * class;
12133c89af1Smrg    unsigned long id, window;
12233c89af1Smrg    struct _WNode * parent;
12333c89af1Smrg    struct _WNode ** children;
12433c89af1Smrg    struct _TreeInfo * tree_info;
12533c89af1Smrg    Cardinal num_children, alloc_children;
12633c89af1Smrg    Widget widget;
12733c89af1Smrg    WidgetResources * resources;
12833c89af1Smrg} WNode;
12933c89af1Smrg
13033c89af1Smrg/*
13133c89af1Smrg * Information for the Select any widget, toggle buttons in the resource
13233c89af1Smrg * boxes.
13333c89af1Smrg */
13433c89af1Smrg
13533c89af1Smrgtypedef struct _AnyInfo {
13633c89af1Smrg    WNode * node;		/* A Pointer off to the node corrsponding to
13733c89af1Smrg				   this resource box. */
13833c89af1Smrg    Widget left_dot, left_star;	/* The dot and star widgets to our left. */
13933c89af1Smrg    Widget right_dot, right_star; /* The dot and star widgets to our right. */
14033c89af1Smrg    int left_count, *right_count; /* If count > 0 then desensitize the left or
14133c89af1Smrg				    right dot and star widgets. */
14233c89af1Smrg} AnyInfo;
14333c89af1Smrg
14433c89af1Smrg/*
14533c89af1Smrg * Information about the client we are currently working with.
14633c89af1Smrg */
14733c89af1Smrg
14833c89af1Smrgtypedef struct _CurrentClient {
14933c89af1Smrg    ResCommand command;		/* the command sent. */
15033c89af1Smrg    ResIdent ident;
15133c89af1Smrg    ProtocolStream stream;	/* protocol stream for this client. */
15233c89af1Smrg    XtIntervalId timeout;	/* timeout set in case he doesn't answer. */
15333c89af1Smrg    Window window;		/* window to communicate with. */
15433c89af1Smrg    Atom atom;			/* Atom used to communicate with this client.*/
15533c89af1Smrg} CurrentClient;
15633c89af1Smrg
15733c89af1Smrg/*
15833c89af1Smrg * Information about a tree we can display.
15933c89af1Smrg */
16033c89af1Smrg
16133c89af1Smrgtypedef struct _TreeInfo {
16233c89af1Smrg    Widget tree_widget;		/* The Tree widget that contains all nodes */
16333c89af1Smrg    WNode * top_node;		/* The top node in the tree. */
16433c89af1Smrg    WNode ** active_nodes;	/* The currently active nodes. */
16533c89af1Smrg    Cardinal num_nodes, alloc_nodes; /* number of active nodes, and space */
16633c89af1Smrg    Widget * flash_widgets;	/* list of widgets to flash on and off. */
16733c89af1Smrg    Cardinal num_flash_widgets, alloc_flash_widgets; /* number of flash wids.*/
16833c89af1Smrg} TreeInfo;
16933c89af1Smrg
17033c89af1Smrg/*
17133c89af1Smrg * Information specific to a give APPLICATION screen.
17233c89af1Smrg */
17333c89af1Smrg
17433c89af1Smrgtypedef struct _ScreenData {
17533c89af1Smrg    Widget set_values_popup;	/* The SetValues popup. */
17633c89af1Smrg    Widget res_text;		/* SetValues resource text widget. */
17733c89af1Smrg    Widget val_text;		/* SetValues value text widget. */
17833c89af1Smrg    Widget info_label;	        /* The information label. */
17933c89af1Smrg} ScreenData;
18033c89af1Smrg
18133c89af1Smrgtypedef struct _AppResources {
18233c89af1Smrg    Boolean debug;		/* Is debugging on? */
18333c89af1Smrg    int num_flashes, flash_time; /* Number and duration of flashes. */
18433c89af1Smrg    Pixel flash_color;		/* Color of flash window. */
18533c89af1Smrg    char * save_resources_file;	/* File to save the resources into. */
18633c89af1Smrg
18733c89af1Smrg    /* Private state */
18833c89af1Smrg    Boolean allocated_save_resources_file;
18933c89af1Smrg} AppResources;
19033c89af1Smrg
19133c89af1Smrg/*
19233c89af1Smrg * Information needed to apply the resource string to all widgets.
19333c89af1Smrg */
19433c89af1Smrg
19533c89af1Smrgtypedef struct _ApplyResourcesInfo {
19633c89af1Smrg    char * name, *class;	/* name and class  of this resource. */
19733c89af1Smrg    unsigned short count;
19833c89af1Smrg    ProtocolStream * stream;
19933c89af1Smrg    XrmDatabase database;
20033c89af1Smrg} ApplyResourcesInfo;
20133c89af1Smrg
20233c89af1Smrg/*
20333c89af1Smrg * Information needed to get a resource string from a widget.
20433c89af1Smrg */
20533c89af1Smrg
20633c89af1Smrgtypedef struct _ObtainResourcesInfo {
20733c89af1Smrg    char * name, *class;	/* name and class  of this resource. */
20833c89af1Smrg    unsigned short count;
20933c89af1Smrg    ProtocolStream * stream;
21033c89af1Smrg    XrmDatabase database;
21133c89af1Smrg} ObtainResourcesInfo;
21233c89af1Smrg
21333c89af1Smrg/************************************************************
21433c89af1Smrg *
21533c89af1Smrg * The Event Structures.
21633c89af1Smrg *
21733c89af1Smrg ************************************************************/
21833c89af1Smrg
21933c89af1Smrgtypedef struct _AnyEvent {
22033c89af1Smrg    EditresCommand type;
22133c89af1Smrg} AnyEvent;
22233c89af1Smrg
22333c89af1Smrgtypedef struct _WidgetTreeInfo {
22433c89af1Smrg    WidgetInfo widgets;
22533c89af1Smrg    char * name;
22633c89af1Smrg    char * class;
22733c89af1Smrg    unsigned long window;
22833c89af1Smrg} WidgetTreeInfo;
22933c89af1Smrg
23033c89af1Smrgtypedef struct _SendWidgetTreeEvent {
23133c89af1Smrg    EditresCommand type;
23233c89af1Smrg    char * toolkit;
23333c89af1Smrg    unsigned short num_entries;
23433c89af1Smrg    WidgetTreeInfo * info;
23533c89af1Smrg} SendWidgetTreeEvent;
23633c89af1Smrg
23733c89af1Smrgtypedef struct _SetValuesInfo {
23833c89af1Smrg    WidgetInfo widgets;
23933c89af1Smrg    char * message;
24033c89af1Smrg} SetValuesInfo;
24133c89af1Smrg
24233c89af1Smrgtypedef struct _SetValuesEvent {
24333c89af1Smrg    EditresCommand type;
24433c89af1Smrg    unsigned short num_entries;
24533c89af1Smrg    SetValuesInfo * info;
24633c89af1Smrg} SetValuesEvent;
24733c89af1Smrg
24833c89af1Smrgtypedef struct _GetValuesInfo {
24933c89af1Smrg    WidgetInfo widgets;
25033c89af1Smrg    char * value;
25133c89af1Smrg} GetValuesInfo;
25233c89af1Smrg
25333c89af1Smrgtypedef struct _GetValuesEvent {
25433c89af1Smrg    EditresCommand type;
25533c89af1Smrg    unsigned short num_entries;
25633c89af1Smrg    GetValuesInfo * info;
25733c89af1Smrg} GetValuesEvent;
25833c89af1Smrg
25933c89af1Smrgtypedef struct _ResourceInfo {
26033c89af1Smrg    ResourceType res_type;
26133c89af1Smrg    char * name, *class, *type;
26233c89af1Smrg} ResourceInfo;
26333c89af1Smrg
26433c89af1Smrgtypedef struct _GetResourcesInfo {
26533c89af1Smrg    WidgetInfo widgets;
26633c89af1Smrg    Boolean error;
26733c89af1Smrg    char * message;
26833c89af1Smrg    unsigned short num_resources;
26933c89af1Smrg    ResourceInfo * res_info;
27033c89af1Smrg} GetResourcesInfo;
27133c89af1Smrg
27233c89af1Smrgtypedef struct _GetResourcesEvent {
27333c89af1Smrg    EditresCommand type;
27433c89af1Smrg    unsigned short num_entries;
27533c89af1Smrg    GetResourcesInfo * info;
27633c89af1Smrg} GetResourcesEvent;
27733c89af1Smrg
27833c89af1Smrgtypedef struct _GetGeomInfo {
27933c89af1Smrg    EditresCommand type;
28033c89af1Smrg    WidgetInfo widgets;
28133c89af1Smrg    Boolean error;
28233c89af1Smrg    char * message;
28333c89af1Smrg    Boolean visable;
28433c89af1Smrg    short x, y;
28533c89af1Smrg    unsigned short width, height, border_width;
28633c89af1Smrg} GetGeomInfo;
28733c89af1Smrg
28833c89af1Smrgtypedef struct _GetGeomEvent {
28933c89af1Smrg    EditresCommand type;
29033c89af1Smrg    unsigned short num_entries;
29133c89af1Smrg    GetGeomInfo * info;
29233c89af1Smrg} GetGeomEvent;
29333c89af1Smrg
29433c89af1Smrgtypedef struct _FindChildEvent {
29533c89af1Smrg    EditresCommand type;
29633c89af1Smrg    WidgetInfo widgets;
29733c89af1Smrg} FindChildEvent;
29833c89af1Smrg
29933c89af1Smrgtypedef union _Event {
30033c89af1Smrg    AnyEvent any_event;
30133c89af1Smrg    SendWidgetTreeEvent send_widget_tree_event;
30233c89af1Smrg    SetValuesEvent set_values_event;
30333c89af1Smrg    GetResourcesEvent get_resources_event;
30433c89af1Smrg    GetGeomEvent get_geom_event;
30533c89af1Smrg    FindChildEvent find_child_event;
30633c89af1Smrg    GetValuesEvent get_values_event;
30733c89af1Smrg} Event;
30833c89af1Smrg
30933c89af1Smrg/*
31033c89af1Smrg * number of application resource labels.
31133c89af1Smrg */
31233c89af1Smrg
31333c89af1Smrg#define NUM_RES_LABELS 37
31433c89af1Smrg
31533c89af1Smrg/*
31633c89af1Smrg * Global variables.
31733c89af1Smrg */
31833c89af1Smrg
31933c89af1Smrg#ifndef THIS_IS_MAIN
32033c89af1Smrg    extern int global_effective_protocol_version;
32133c89af1Smrg    extern char* global_effective_toolkit;
32233c89af1Smrg    extern int global_error_code;
32333c89af1Smrg    extern unsigned long global_serial_num;
32433c89af1Smrg    extern int (*global_old_error_handler)(Display *, XErrorEvent *);
32533c89af1Smrg    extern Boolean global_resource_box_up;
32633c89af1Smrg
32733c89af1Smrg    extern TreeInfo *global_tree_info;
32833c89af1Smrg    extern CurrentClient global_client;
32933c89af1Smrg    extern ScreenData global_screen_data;
33033c89af1Smrg    extern Widget global_tree_parent;
33133c89af1Smrg    extern Widget global_paned;	/* named after toolkit */
33233c89af1Smrg    extern Widget global_toplevel;
33333c89af1Smrg    extern AppResources global_resources;
33433c89af1Smrg
33533c89af1Smrg    extern String res_labels[NUM_RES_LABELS];
33633c89af1Smrg#endif
33733c89af1Smrg
33833c89af1Smrg/*
33933c89af1Smrg * Macros.
34033c89af1Smrg */
34133c89af1Smrg
34233c89af1Smrg#define streq(a, b)        ( strcmp((a), (b)) == 0 )
34333c89af1Smrg
34433c89af1Smrg/* number of entries in the command menu */
34533c89af1Smrg#define NUM_CM_ENTRIES 8
34633c89af1Smrg/* offset into CM entries for setting insensitive */
34733c89af1Smrg#define CM_OFFSET 1
34833c89af1Smrg/* number of CM entries to make insensitive */
34933c89af1Smrg#define CM_NUM 5
35033c89af1Smrg/* number of entries in the tree menu */
35133c89af1Smrg#define NUM_TM_ENTRIES 16
35233c89af1Smrg#define TM_OFFSET 0
35333c89af1Smrg#define TM_NUM 16
35433c89af1Smrg
35533c89af1Smrg/*
35633c89af1Smrg * Prototypes
35733c89af1Smrg */
35833c89af1Smrgextern void ActivateResourceWidgets ( Widget w, XtPointer node_ptr, XtPointer junk );
35933c89af1Smrgextern void ActivateWidgetsAndSetResourceString ( Widget w, XtPointer node_ptr, XtPointer call_data );
36033c89af1Smrgextern void AddString ( char ** str, char *add );
36133c89af1Smrgextern void AddTreeNode ( Widget tree, WNode * top );
36233c89af1Smrgextern void AnyChosen ( Widget w, XtPointer any_info_ptr, XtPointer state_ptr );
36333c89af1Smrgextern void ApplyResource ( Widget w, XtPointer node_ptr, XtPointer junk );
36433c89af1Smrgextern void BuildVisualTree ( Widget tree_parent, Event * event );
36533c89af1Smrgextern void BuildWidgetTree ( Widget parent );
36633c89af1Smrgextern Boolean CheckDatabase ( XrmDatabase db, XrmQuarkList names, XrmQuarkList classes );
36733c89af1Smrgextern void CreateResourceBox ( WNode * node, char ** errors );
36833c89af1Smrgextern void CreateResourceBoxWidgets ( WNode * node, char **names, char **cons_names );
36933c89af1Smrgextern TreeInfo * CreateTree ( Event * event );
37033c89af1Smrgextern void DisplayChild ( Event * event );
37133c89af1Smrgextern void DumpTreeToFile ( Widget w, XtPointer junk, XtPointer garbage );
37233c89af1Smrgextern void ExecuteOverAllNodes ( WNode * top_node, void (*func)(WNode *, XtPointer), XtPointer data );
37333c89af1Smrgextern WNode * FindNode ( WNode *top_node, unsigned long * ids, Cardinal number );
37433c89af1Smrgextern void FindWidget ( Widget w, XtPointer client_data, XtPointer call_data );
37533c89af1Smrgextern WNode * FindWidgetFromWindow ( TreeInfo * tree_info, Window win );
37633c89af1Smrgextern void FlashActiveWidgets ( Widget w, XtPointer junk, XtPointer garbage );
37733c89af1Smrgextern void GetAllStrings ( char *in, char sep, char ***out, int * num );
37833c89af1Smrgextern Window GetClientWindow ( Widget w, int *x, int *y );
37933c89af1Smrgextern char * GetFailureMessage ( ProtocolStream * stream );
38033c89af1Smrgextern void GetNamesAndClasses ( WNode * node, char *** names, char ***classes );
38133c89af1Smrgextern ResIdent GetNewIdent ( void );
38233c89af1Smrgextern void GetResourceList ( Widget w, XtPointer junk, XtPointer garbage );
38333c89af1Smrgextern char * GetResourceValueForSetValues ( WNode * node, unsigned short * size );
38433c89af1Smrgextern char * HandleFlashWidget ( Event * event );
38533c89af1Smrgextern char * HandleGetResources ( Event * event );
38633c89af1Smrgextern int HandleXErrors ( Display * display, XErrorEvent * error );
38733c89af1Smrgextern void InitSetValues ( Widget w, XtPointer client_data, XtPointer call_data );
38833c89af1Smrgextern void InsertWidgetFromNode ( ProtocolStream * stream, WNode * node );
38933c89af1Smrgextern void InternAtoms ( Display * dpy );
39033c89af1Smrgextern void LayoutTree ( Widget tree );
39133c89af1Smrgextern int main ( int argc, char **argv );
39233c89af1Smrgextern void ModifySVEntry ( Widget w, XEvent *event, String * params, Cardinal * num_params );
39333c89af1Smrgextern void PannerCallback ( Widget w, XtPointer closure, XtPointer report_ptr );
39433c89af1Smrgextern void PerformTreeToFileDump ( WNode * node, int num_tabs, FILE * fp );
39533c89af1Smrgextern void PopdownResBox ( Widget w, XtPointer shell_ptr, XtPointer junk );
39633c89af1Smrgextern void PopupCentered ( XEvent * event, Widget w, XtGrabKind mode );
39733c89af1Smrgextern void PopupSetValues ( Widget parent, XEvent * event );
39833c89af1Smrgextern void PortholeCallback ( Widget w, XtPointer panner_ptr, XtPointer report_ptr );
39933c89af1Smrgextern void PrepareToLayoutTree ( Widget tree );
40033c89af1Smrgextern void PrintNodes ( WNode * top );
40133c89af1Smrgextern char * PrintSetValuesError ( Event * event );
40233c89af1Smrgextern char * ProtocolFailure ( ProtocolStream * stream );
40333c89af1Smrgextern XrmQuarkList Quarkify ( char ** list, char * ptr );
40433c89af1Smrgextern void Quit ( Widget w, XtPointer client_data, XtPointer call_data );
40533c89af1Smrgextern void RebuildMenusAndLabel ( String toolkit );
40633c89af1Smrgextern void ResourceListCallback ( Widget list, XtPointer node_ptr, XtPointer junk );
40733c89af1Smrgextern void SaveResource ( Widget w, XtPointer res_box_ptr, XtPointer junk );
40833c89af1Smrgextern void SendTree ( Widget w, XtPointer value, XtPointer call_data );
40933c89af1Smrgextern void SetAndCenterTreeNode ( WNode * node );
41033c89af1Smrgextern void SetApplicationActions ( XtAppContext app_con );
41133c89af1Smrgextern void SetCommand ( Widget w, ResCommand command, char * msg );
41233c89af1Smrgextern void SetEntriesSensitive ( Widget *entries, int num, Boolean sensitive );
41333c89af1Smrgextern void SetFile ( Widget w, XtPointer junk, XtPointer garbage );
41433c89af1Smrgextern void SetMessage ( Widget w, char * str );
41533c89af1Smrgextern void SetResourceString ( Widget w, XtPointer node_ptr, XtPointer junk );
41633c89af1Smrgextern void TreeRelabel ( Widget w, XtPointer client_data, XtPointer call_data );
41733c89af1Smrgextern void TreeSelect ( Widget w, XtPointer client_data, XtPointer call_data );
41833c89af1Smrgextern void TreeToggle ( Widget w, XtPointer node_ptr, XtPointer state_ptr );
41933c89af1Smrgextern void _DumpTreeToFile ( Widget w, XtPointer tree_ptr, XtPointer filename );
42033c89af1Smrgextern void _FindWidget ( Widget w );
42133c89af1Smrgextern void _FlashActiveWidgets ( TreeInfo * tree_info );
42233c89af1Smrgextern void _PopdownFileDialog ( Widget w, XtPointer client_data, XtPointer junk );
42333c89af1Smrgextern void _PopupFileDialog ( Widget w, String str, String default_value, XtCallbackProc func, XtPointer data );
42433c89af1Smrgextern void _TreeActivateNode ( WNode * node, SelectTypes type );
42533c89af1Smrgextern void _TreeRelabel ( TreeInfo * tree_info, LabelTypes type );
42633c89af1Smrgextern void _TreeRelabelNode ( WNode * node, LabelTypes type, Boolean recurse );
42733c89af1Smrgextern void _TreeSelect ( TreeInfo * tree_info, SelectTypes type );
42833c89af1Smrgextern void _TreeSelectNode ( WNode * node, SelectTypes type, Boolean recurse );
42933c89af1Smrg
430