
/*
 * This file was generated by the SOM Compiler.
 * FileName: G:\cwpsh\rel\os2c\include\base\os2\wpsystem.xh.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.14
 *     SOM Emitter emitxh: 2.43
 */

/*
 *   Module Header
 * 
 *   Module Name: WPSYSTEM
 * 
 *   OS/2 Presentation Manager Workplace class definitions
 * 
 *   Copyright (c) International Business Machines Corporation 1991, 1992
 * 
 */


#ifndef SOM_WPSystem_xh
#define SOM_WPSystem_xh

class WPSystem;

#define WPSystem_MajorVersion 1
#define WPSystem_MinorVersion 2

/*
 * Passthru lines: File: "C.h", "before"
 */


/**********************************************************/
/* Defines for wpclsQuerySetting and wpclsSetSetting      */
/**********************************************************/

#define ANIMATION_OFF            0
#define ANIMATION_ON             1
#define ANIMATION_DEFAULT        2

#define PRINTSCREEN_OFF          0
#define PRINTSCREEN_ON           1
#define PRINTSCREEN_DEFAULT      2

#define BUTTON_HIDE              1
#define BUTTON_MINIMIZE          2
#define BUTTON_DEFAULT           3

#define LOGO_DEFAULT            -2
#define LOGO_INDEFINITE         -1
#define LOGO_NONE                0

#ifndef NAMECLASH_DEFS
#define NAMECLASH_DEFS           1
#define NAMECLASH_DEFAULT     0x40
#define NAMECLASH_RENAME      0x02
#define NAMECLASH_REPLACE     0x08
#define NAMECLASH_PROMPT      0x10
#endif

#define CONFIRM_OFF              0
#define CONFIRM_ON               1
#define CONFIRM_DEFAULT          2

#define DISPLAY_OFF              0
#define DISPLAY_ON               1
#define DISPLAY_DEFAULT          2

#define MENUS_SHORT 0
#define MENUS_LONG 1
#define MENUS_DEFAULT 2

#define TITLEBARICONS_ON 1
#define TITLEBARICONS_OFF 0
#define TITLEBARICONS_DEFAULT 2

#define MENUBAR_ON 1
#define MENUBAR_OFF 0
#define MENUBAR_DEFAULT 2



/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

/* C++ parent defs */
#ifndef SOM_WPAbstract_xh
#include <wpabs.xh>
#endif

#ifndef WPSystem_API
#define WPSystem_API
/*
 * -- The Class API
 */

/*
 * Start of bindings for IDL types
 */

class SOMClass;
class SOMObject;
class WPFolder;
class M_WPObject;
class WPObject;
class WPImageFile;
class M_WPAbstract;
class M_WPSystem;

/*
 * End of bindings for IDL types.
 */

/* A procedure to create the WPSystem Class */
class M_WPSystem;
SOMEXTERN M_WPSystem * SOMLINK WPSystemNewClass(
		integer4 majorVersion,
		integer4 minorVersion);

/* The API to the WPSystem class object, and the methods it introduces. */
SOMEXTERN struct WPSystemClassDataStructure {
	M_WPSystem *classObject;
	somMToken wpAddSystemWindowPage;
	somMToken wpAddSystemLogoPage;
	somMToken wpAddSystemPrintScreenPage;
	somMToken wpAddSystemConfirmationPage;
	somMToken wpAddTitleConfirmationPage;
	somMToken wpAddSystemScreenPage;
	somMToken wpAddDMQSDisplayTypePage;
	somMToken wpAddSysFdrSelfClosePage;
	somMToken wpAddSysFdrDefViewPage;
	somMToken wpAddSystemInputPage;
	somMToken wpAddSysFdrMenuPage;
	somMToken wpAddSystem256ColorPage;
	somMToken wpAddSystemFontSettingPages;
} SOMDLINK WPSystemClassData;
#define _WPSystem WPSystemClassData.classObject

/* The API to parentMtabs for WPSystem, and the instance data it introduces. */
SOMEXTERN struct WPSystemCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK WPSystemCClassData;

/*
 * -- Typedefs for WPSystem Method Procedures
 */
SOMEXTERN {
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemWindowPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemWindowPage *somTD_WPSystem_wpAddSystemWindowPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemLogoPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemLogoPage *somTD_WPSystem_wpAddSystemLogoPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemPrintScreenPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemPrintScreenPage *somTD_WPSystem_wpAddSystemPrintScreenPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemInputPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemInputPage *somTD_WPSystem_wpAddSystemInputPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemConfirmationPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemConfirmationPage *somTD_WPSystem_wpAddSystemConfirmationPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemFontSettingPages(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemFontSettingPages *somTD_WPSystem_wpAddSystemFontSettingPages;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddTitleConfirmationPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddTitleConfirmationPage *somTD_WPSystem_wpAddTitleConfirmationPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystemScreenPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystemScreenPage *somTD_WPSystem_wpAddSystemScreenPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddDMQSDisplayTypePage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddDMQSDisplayTypePage *somTD_WPSystem_wpAddDMQSDisplayTypePage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSystem256ColorPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSystem256ColorPage *somTD_WPSystem_wpAddSystem256ColorPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSysFdrMenuPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSysFdrMenuPage *somTD_WPSystem_wpAddSysFdrMenuPage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSysFdrSelfClosePage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSysFdrSelfClosePage *somTD_WPSystem_wpAddSysFdrSelfClosePage;
typedef ULONG   SOMLINK somTP_WPSystem_wpAddSysFdrDefViewPage(WPSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSystem_wpAddSysFdrDefViewPage *somTD_WPSystem_wpAddSysFdrDefViewPage;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef M_WPSystem*   SOMLINK somTP_WPSystem_somGetClass(WPSystem *somSelf);
typedef somTP_WPSystem_somGetClass *somTD_WPSystem_somGetClass;
}

#endif /* WPSystem_API */


/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * -- The C++ Wrapper Class for WPSystem
 */
class WPSystem : public WPAbstract
{
public:

// WPSystem::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_WPSystem) WPSystemNewClass(WPSystem_MajorVersion,WPSystem_MinorVersion);
   return (void*)
      SOM_Resolve(_WPSystem,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_WPSystem));
}

// WPSystem::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

WPSystem& operator=(WPSystem& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

WPSystem()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (WPSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

WPSystem(WPSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (WPSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

WPSystem(const WPSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (WPSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: wpAddSystemWindowPage */
ULONG   wpAddSystemWindowPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemWindowPage)
	(this,hwndNotebook);
}


/* method: wpAddSystemLogoPage */
ULONG   wpAddSystemLogoPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemLogoPage)
	(this,hwndNotebook);
}


/* method: wpAddSystemPrintScreenPage */
ULONG   wpAddSystemPrintScreenPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemPrintScreenPage)
	(this,hwndNotebook);
}


/* method: wpAddSystemInputPage */
ULONG   wpAddSystemInputPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemInputPage)
	(this,hwndNotebook);
}


/* method: wpAddSystemConfirmationPage */
ULONG   wpAddSystemConfirmationPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemConfirmationPage)
	(this,hwndNotebook);
}


/* method: wpAddSystemFontSettingPages */
ULONG   wpAddSystemFontSettingPages(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemFontSettingPages)
	(this,hwndNotebook);
}


/* method: wpAddTitleConfirmationPage */
ULONG   wpAddTitleConfirmationPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddTitleConfirmationPage)
	(this,hwndNotebook);
}


/* method: wpAddSystemScreenPage */
ULONG   wpAddSystemScreenPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystemScreenPage)
	(this,hwndNotebook);
}


/* method: wpAddDMQSDisplayTypePage */
ULONG   wpAddDMQSDisplayTypePage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddDMQSDisplayTypePage)
	(this,hwndNotebook);
}


/* method: wpAddSystem256ColorPage */
ULONG   wpAddSystem256ColorPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSystem256ColorPage)
	(this,hwndNotebook);
}


/* method: wpAddSysFdrMenuPage */
ULONG   wpAddSysFdrMenuPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSysFdrMenuPage)
	(this,hwndNotebook);
}


/* method: wpAddSysFdrSelfClosePage */
ULONG   wpAddSysFdrSelfClosePage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSysFdrSelfClosePage)
	(this,hwndNotebook);
}


/* method: wpAddSysFdrDefViewPage */
ULONG   wpAddSysFdrDefViewPage(HWND hwndNotebook)
{
   return SOM_ResolveD(this,WPSystem,WPSystem,wpAddSysFdrDefViewPage)
	(this,hwndNotebook);
}


/*
 * Reintroduce inherited methods
 */

/* method: somGetClass */
M_WPSystem*  somGetClass()
{
/*
 *  Return the receiver's class.
 */
   return SOM_ResolveD(this,WPSystem,SOMObject,somGetClass)
	(this);
}



};   /* WPSystem */



#endif       /* SOM_WPSystem_xh */

#ifndef SOM_M_WPSystem_xh
#define SOM_M_WPSystem_xh

class M_WPSystem;

#define M_WPSystem_MajorVersion 1
#define M_WPSystem_MinorVersion 2

/* C++ SOM defs */
#include <somcls.xh>
#include <somcm.xh>

/* C++ parent defs */
#ifndef SOM_M_WPAbstract_xh
#include <wpabs.xh>
#endif

#ifndef M_WPSystem_API
#define M_WPSystem_API
/*
 * -- The Class API
 */

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

/*
 * -- M_WPSystem is a metaclass for WPSystem. Make sure WPSystem is known.
 */
class WPSystem;


/* A procedure to create the M_WPSystem Class */
SOMEXTERN SOMClass * SOMLINK M_WPSystemNewClass(
		integer4 majorVersion,
		integer4 minorVersion);

/* The API to the M_WPSystem class object, and the methods it introduces. */
SOMEXTERN struct M_WPSystemClassDataStructure {
	SOMClass *classObject;
} SOMDLINK M_WPSystemClassData;
#define _M_WPSystem M_WPSystemClassData.classObject

/* The API to parentMtabs for M_WPSystem, and the instance data it introduces. */
SOMEXTERN struct M_WPSystemCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK M_WPSystemCClassData;

/*
 * -- Typedefs for M_WPSystem Method Procedures
 */
SOMEXTERN {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef WPSystem*   SOMLINK somTP_M_WPSystem_somNew(M_WPSystem *somSelf);
typedef somTP_M_WPSystem_somNew *somTD_M_WPSystem_somNew;
}

#endif /* M_WPSystem_API */


/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * -- The C++ Wrapper Class for M_WPSystem
 */
class M_WPSystem : public M_WPAbstract
{
public:

// M_WPSystem::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_M_WPSystem) M_WPSystemNewClass(M_WPSystem_MajorVersion,M_WPSystem_MinorVersion);
   return (void*)
      SOM_Resolve(_M_WPSystem,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_M_WPSystem));
}

// M_WPSystem::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

M_WPSystem& operator=(M_WPSystem& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

M_WPSystem()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (M_WPSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

M_WPSystem(M_WPSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (M_WPSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

M_WPSystem(const M_WPSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (M_WPSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/*
 * Reintroduce inherited methods
 */

/* method: somNew */
WPSystem*  somNew()
{
   return SOM_ResolveD(this,M_WPSystem,SOMClass,somNew)
	(this);
}



};   /* M_WPSystem */



#endif       /* SOM_M_WPSystem_xh */
