COMMENT @----------------------------------------------------------------------

	Copyright (c) GeoWorks 1991 -- All Rights Reserved

PROJECT:	PC GEOS
MODULE:		Include/Objects
FILE:		gPrimC.def

REVISION HISTORY:
	Name	Date		Description
	----	----		-----------
	brianc	2/92		Initial version

DESCRIPTION:
	Object definitions for GenPrimaryClass.   

	$Id: gPrimC.def,v 1.1 97/04/04 14:18:31 newdeal Exp $

------------------------------------------------------------------------------@

SetDef	__GPRIMC

StartLibrary	ui
		
include ui.def


GenPrimaryClass	class	GenDisplayClass

;------------------------------------------------------------------------------
;	Methods
;------------------------------------------------------------------------------

MSG_GEN_PRIMARY_GET_LONG_TERM_MONIKER			message
;
; Fetches the long term moniker from a GenPrimary object. Returns the chunk
; handle of the current long term moniker in use.
;
; This method is guaranteed NOT to force the specific building of any object.
;
; Context:	Utility message sent to get GenPrimaryClass object's long term
;		moniker chunk
; Source:	Anyone
; Destination:	Any GenPrimaryClass object
; Interception: Normally not intercepted.
;
; Pass:		nothing
; Return:	ax - chunk handle of long term moniker in use
;		cx, dx, bp - destroyed
;

MSG_GEN_PRIMARY_USE_LONG_TERM_MONIKER			message
;
; MSG_GEN_PRIMARY_USE_LONG_TERM_MONIKER is called to switch the long term
; moniker being used for this GenPrimary object.  The long term moniker itself
; must already exist in the same block as the GenPrimary.  Use
; MSG_GEN_PRIMARY_USE_LONG_TERM_MONIKER if the long term moniker already exists
; in the same block as the object.  Use one of the
; MSG_GEN_PRIMARY_SET_LONG_TERM_MONIKER_<> messages to create a new long term
; moniker from some other source.
;
; This method is guaranteed NOT to force the specific building of any object.
;
; Context:	Utility message sent to set GenPrimaryClass object's long term
;		moniker to an existing long term moniker chunk
; Source:	Anyone
; Destination:	Any GenPrimary object
; Interception: Generally not intercepted.  However, subclasses may intercept
;		to know when the long term moniker is being changed.
;
; Pass:		cx - chunk handle of new long term moniker to use.
; Return:	nothing
;		ax, cx, dx, bp - destroyed
;

MSG_GEN_PRIMARY_REPLACE_LONG_TERM_MONIKER			message
;
; Replaces the long term moniker of an object.  New long term moniker is
; created from either a complete visual moniker, a visual moniker list, a text
; string, a graphics string, or a token.db token.  The source may be referenced
; by either a far pointer, a global heap block handle, or an optr.
;
; MSG_GEN_PRIMARY_REPLACE_LONG_TERM_MONIKER always creates a new Visual Moniker
; chunk and points the GPI_longTermMoniker field at the new moniker.  Because
; the old long term moniker is overwritten, the object is visually updated.  The
; VisUpdateMode passed determines how this visual update occurs.
;
; When a text string or a gstring is passed, a visual moniker structure will be
; created for the text string or gstring.
;
; Both the object and long term moniker chunk are marked as dirty (ObjSetFlags
; may be used to undo, if necessary).
;
; If a moniker list is passed to this message, and the destination object is
; specifically resolved, the appropriate moniker based on the DisplayScheme of
; the application object and specific UI preferences will be set for the object.
; If the object is not specifically resolved yet, the source moniker list will
; replace the object's current long term moniker.  A moniker is selected from
; the moniker list when the object is specifically resolved.  You must ensure
; that the monikers in the moniker list will exist at that time.  (If some
; specific moniker in the list is desired, the moniker list can be resolved
; manually with the GenFindMoniker or VisFindMoniker routines.)
;
; If VMDT_TOKEN is passed to indicate that the source is a GeodeToken, the
; destination object must be usable, as it is the Specific UI who must decide
; which moniker to choose from the moniker list in the Token Database.  It
; chooses based on the current video mode and its internal preferences.  If the
; destination object is not usable, its moniker will be cleared.  Since any
; moniker set via VMDT_TOKEN may be based on video mode, it must not be saved
; and restored to and from state file, as the video mode could be changed
; during that time.  Alternately, the moniker can be reset at each startup.
;
; Context:	Utility message sent to replace a GenPrimaryClass object's
;		long term moniker.
; Source:	Anyone
; Destination:	Any GenPrimaryClass object
; Interception: Generally not intercepted.
;
; Pass:		ss:bp - ptr to ReplaceVisMonikerFrame
;			ReplaceVisMonikerFrame	struct
;				RVMF_source	dword
;				RVMF_sourceType	VisMonikerSourceType
;				RVMF_dataType	VisMonikerDataType
;				RVMF_length	word
;				RVMF_width	word
;				RVMF_height	word
;				RVMF_updateMode	VisUpdateMode
;			ReplaceVisMonikerFrame	ends
;		dx - size of ReplaceVisMonikerFrame
; Return:	ax - chunk handle of object's long term moniker
;		cx, dx, bp - destroyed
;

;------------------------------------------------------------------------------
;	Hints
;------------------------------------------------------------------------------

HINT_PRIMARY_FULL_SCREEN		vardata
;
; Set to specify that this is the main window for a "major" application.  The
; specific UI may decide that it should be placed at upper left and extended
; to near the lower right corner of the screen.

HINT_PRIMARY_NO_FILE_MENU		vardata
;
; Set to specify that a File menu is not appropriate for this GenPrimary.
;

HINT_PRIMARY_NO_EXPRESS_MENU		vardata
;
; Set to specify that the Express Menu should not attach itself to this
; GenPrimary.  Currently affects only PMBA (WizardBA).
;

HINT_PRIMARY_OPEN_ICON_BOUNDS		vardata Rectangle
;
; This hint is used to store the bounds of the icon from which the GenPrimary
; was opened.  Currently affects only PM - is used as the starting point
; for zoom lines.
;

HINT_PRIMARY_NO_HELP_BUTTON		vardata
;
; Set to specify that a help button should not be automatically added to
; the primary (normally done if ATTR_GEN_HELP_CONTEXT is placed on a GenClass
; object).  This can be used if the application is adding its own objects
; to the title bar with HINT_SEEK_TITLE_BAR_LEFT/RIGHT, which would conflict
; with the help button.  UIHO_HIDE_HELP_BUTTONS is also checked, and will
; prevent the help button from being added to the primary.
;

protominor UIDoneDialog

GPDoneData	struct
	GPDD_explainString	lptr
	GPDD_documentControl	optr
	GPDD_documentParent	optr	; must be run by same thread as
					; GenPrimary, if numChildren>1,
					; use GPDD_multiDocExitString
	GPDD_printControl	optr
	GPDD_saveMoniker	lptr
	GPDD_saveString		lptr
	GPDD_printMoniker	lptr
	GPDD_printString	lptr
	GPDD_exitMoniker	lptr
	GPDD_exitString		lptr
	GPDD_multiDocExitString	lptr
	GPDD_backMoniker	lptr
	GPDD_backString		lptr
GPDoneData	ends

ATTR_GEN_PRIMARY_DONE_ON_CLOSE		vardata GPDoneData
;
; Data for Done dialog.  All GPDD_<>String and GPDD_<>Moniker lptrs
; should point to VisMoniker chunks.
;
protoreset

protominor UIMinimizeReplacesClose

HINT_PRIMARY_MINIMIZE_REPLACES_CLOSE_FUNCTION vardata
;
; If supported, removes the close button from the primary and causes
; the minimize button to take on the close button's functionality
; (i.e., closes the primary, does not minimize it).  Primary
; must be minimizable for this to work.
;

protoreset

protominor UIHideMinimize

HINT_PRIMARY_HIDE_MINIMIZE_UI vardata
;
; If supported, removes all UI for minimizing the primary, but still
; allows the primary to be minimized programmatically.  

protoreset


HINT_PRIMARY_AVOID_MENU_BAR_IF_EXTENDIBLE_SYSTRAY vardata
;
; Like HINT_AVOID_MENU_BAR, but only if UI supports adding objects to the
; system tray. For windows that would prefer to have an icon in the system
; tray instead of in the taskbar. This hint allows the window to still be
; accessible if the UI doesn't support adding objects to the system tray.
;

;------------------------------------------------------------------------------
;	Attributes stored in hints area
;------------------------------------------------------------------------------

;------------------------------------------------------------------------------
;	Constants & Structures
;------------------------------------------------------------------------------

;------------------------------------------------------------------------------
;	Instance data
;------------------------------------------------------------------------------

    ;IMPORTANT: if you add instance data, update GenPrimaryGenCopyTree
	
	GPI_longTermMoniker	lptr		;long term moniker handle

GenPrimaryClass	endc


EndLibrary 	ui
