///////////////////////////////////////////////////////////////////////////////
//////   Copyright 1998, Silicon Graphics, Inc.  All Rights Reserved.   ///////
//                                                                           //
// This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;    //
// the contents of this file may not be disclosed to third parties, copied   //
// or duplicated in any form, in whole or in part, without the prior written //
// permission of Silicon Graphics, Inc.                                      //
//                                                                           //
// RESTRICTED RIGHTS LEGEND:                                                 //
// Use,duplication or disclosure by the Government is subject to restrictions /
// as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data    //
// and Computer Software clause at DFARS 252.227-7013, and/or in similar or  //
// successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -   //
// rights reserved under the Copyright Laws of the United States.            //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#ifndef VKAPPPROTO_H
#define VKAPPPROTO_H

///////////////////////////////////////////////////////////////////////////////
// VkAppProto.h

#include <X11/Xlib.h>
#include <Vk/VkComponent.h>
#include <Vk/VkComponentList.h>

class VkAppProto;
class VkSimpleWindow;
class VkBusyDialog;
class VkDialogManager;
class VkCursorList;

// opaque structure... [ "internal" VkApp context data ]
//
typedef struct _VkContextRec  *VkContextPtr;


/*******************************************************
CLASS
    VkAppProto

OVERVIEW


******************************************************/

class VkAppProto : public VkComponent {

  public:

    virtual      ~VkAppProto();

    virtual const char *className() = 0;

    ////////////
    // "callData" for "helpInitCallback".
    struct HelpInitArgs {
	Display *display;
	char *client;
	char *sep;
	int returnValue;
    };

    ////////////
    // "callData" for "helpMsgCallback".
    struct HelpMsgArgs {
	char *key;
	char *book;
	char *userData;
	int returnValue;
    };

    ////////////
    // "callData" for "helpIndexMsgCallback".
    struct HelpIndexMsgArgs {
	char *key;
	char *book;
	int returnValue;
    };

  protected:

    // Normal constructor -- 
    VkAppProto( const char *name ); 

    ////////////
    //Default constructor should never be used directly, but may be
    //called from subclass default constructors.
    VkAppProto();

  private:
}; 

#endif /* VKAPPPROTO_H */
