compile insert ps_TypeInfo_Equates
/* 
   ** Copyright (C) 2012-2024 Revelation Software Inc. All Rights Reserved **
   
   Author   : Captain C
   Date     : September 2012
   Purpose  : PS_TYPEINFO constant declaration module
   
   Comments
   ========
   
   Amended  Date        Reason
   =======  ====        ======
   Mr C     16 Nov 23   Added PSTI_MI_POS_DEFPREVPOSPROPHANDLER$
                        Added PS_ST_POS_DEFPREVPROPPOS_NAME$
   Mr C     21 Oct 22   Added PS_TF_FLAG_DEFPROPLISTSELECT$
   Mr C     17 Sep 22   Added PS_TF_FLAG_FORMDESDBONLY$
   Mr C     02 Jul 21   Added PS_TF_FLAG_NODEFPROPIDXSUPPORT$
   Mr C     29 Mar 21   Added PS_TF_FLAG_DBSYMSOFTDISABLE$
   Mr C     03 May 20   Added PS_TF_FLAG_NOOMNIEVENT$
   Mr C     19 Sep 19   Added PSTI_MI_POS_OLECHECK$
   Mr C     03 Sep 17   Added GETEVENTS method equates
   Mr C     14 Aug 17   Added constants for CFG_PS_TYPEINFO_SORT
   Mr C     26 Jul 16   Removed FormDes fields - not needed
                        Added description fields
   Mr C     21 Jan 16   Added GETEVENTINFO equates
   Mr C     07 Dec 15   Added PS_TF_FLAG_SIBLINGPARENT$
   Mr C     03 Nov 15   Corrected PS_TF_FLAG_DEFVALSUPPORT$
   Mr C     10 Sep 15   Added PS_TF_FLAG_TYPEINFOONLY$
                        Added PS_TF_FLAG_HIDEFORMDESDB$
   Mr C     11 Feb 15   Added PSTI_MI_POS_EVENTFLAGS$
   Mr C     19 Nov 14   Added PS_TF_FLAG_DEFVALSUPPORT$
   
*/
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef _PS_TYPEINFO_EQUATES_
#define _PS_TYPEINFO_EQUATES_
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   declare function ps_TypeInfo

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   // Meta Info table record - keyed on the TYPECLASS
   
   equ PSTI_METAINFO_TABLE$               to "PSTI_METAINFO_TABLE"
   
   equ PSTI_MI_POS_DEFPROPHANDLER$        to 1   ; // PS Property Name or Basic+ Handler
   equ PSTI_MI_POS_DBSUPPORT$             to 2   ; // Control supports Data Binding
   equ PSTI_MI_POS_MULTICOLUMN$           to 3   ; // Control supports AMVs
   equ PSTI_MI_POS_DEFPOSPROPHANDLER$     to 4   ; // PS Property Name or Basic+ Handler
   equ PSTI_MI_POS_POSCHANGEDEVENT$       to 5   ; // Name of the OLE event used to trigger 
                                                 ; // POSCHANGED events
   equ PSTI_MI_POS_CLICKEVENT$            to 6   ; // Name of the OLE event used to trigger 
                                                 ; // CLICK event processing
   equ PSTI_MI_POS_DISPLAYNAME$           to 7   ; // Display name for FormDes
   equ PSTI_MI_POS_TYPEFLAGS$             to 8   ; // SysCreate, GUI etc
   equ PSTI_MI_POS_DEFPREVPOSPROPHANDLER$ to 9   ; // PS Property Name or Basic+ Handler
   
   equ PSTI_MI_POS_PROPERTIES$            to 10  ; // PS property system names
   equ PSTI_MI_POS_PROPERTYNAMES$         to 11  ; // PS property display names
   equ PSTI_MI_POS_PROPERTYFLAGS$         to 12  ; // PS property flags (Get/Set etc)
   equ PSTI_MI_POS_PROPERTYTYPE$          to 13  ; // PS property types
   equ PSTI_MI_POS_PROPERTYCAT$           to 14  ; // PS property categories
   equ PSTI_MI_POS_PROPSTYLEBITS$         to 15  ; // PS property style bit(s)
   equ PSTI_MI_POS_PROPDESCS$             to 16  ; // Property descriptions
   
   equ PSTI_MI_POS_EVENTS$                to 20  ; // PS events
   equ PSTI_MI_POS_EVENTNAMES$            to 21  ; // PS event display names
   equ PSTI_MI_POS_EVENTARGS$             to 22  ; // PS event arg names (@svm'd)
   equ PSTI_MI_POS_EVENTARGTYPES$         to 23  ; // PS event arg types (@svm'd)
   equ PSTI_MI_POS_EVENTARGFLAGS$         to 24  ; // PS event arg flags (@svm'd)
   equ PSTI_MI_POS_EVENTCAT$              to 25  ; // PS event category strings
   equ PSTI_MI_POS_EVENTFLAGS$            to 26  ; // PS event flags (custom event etc)
   equ PSTI_MI_POS_EVENTDESCS$            to 27  ; // Event descriptions
   
   equ PSTI_MI_POS_METHODS$               to 30  ; // PS method system name
   equ PSTI_MI_POS_METHODNAMES$           to 31  ; // PS method display names
   equ PSTI_MI_POS_METHODARGS$            to 32  ; // PS method arg names (@svm'd)
   equ PSTI_MI_POS_METHODARGTYPES$        to 33  ; // PS method arg types (@svm'd)
   equ PSTI_MI_POS_METHODARGFLAGS$        to 34  ; // PS method arg flags (@svm'd)
   equ PSTI_MI_POS_METHODRETVAL$          to 35  ; // PS method return value name
   equ PSTI_MI_POS_METHODRETVALTYPES$     to 36  ; // PS method return value type
   equ PSTI_MI_POS_METHODRETVALFLAGS$     to 37  ; // PS method return value flags
   equ PSTI_MI_POS_METHODDESCS$           to 38  ; // PS method description strings
   
   equ PSTI_MI_POS_DESCCHECK$             to 40  ; // if TRUE$ then descriptions have been loaded
   equ PSTI_MI_POS_OLECHECK$              to 41  ; // if TRUE$ then OLE properties have been sync'd
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   // SYSTEM TYPES type structure
   //
   //    <0,1> Type Name
   //    <0,2> Type Flags
   //    <0,3> Display Name
   //    <0,4> DEFPROP property
   //    <0,5> DEFPOSPROP property
   //    <0,6> DEFPREVPOSPROP property
   
   equ PS_ST_POS_NAME$                  to 1
   equ PS_ST_POS_FLAGS$                 to 2
   equ PS_ST_POS_DISPNAME$              to 3
   equ PS_ST_POS_DEFPROP_NAME$          to 4
   equ PS_ST_POS_DEFPROPPOS_NAME$       to 5
   equ PS_ST_POS_DEFPREVPROPPOS_NAME$   to 6

   // Type flags - from RevPS_TypeFactory.h
   
   equ PS_TF_FLAG_SYSCREATE$            to 0x00000001 ; // Only the PS App can create this type
   equ PS_TF_FLAG_GUI$                  to 0x00000002 ; // Type is a GUI object (i.e. HWND derived)
   equ PS_TF_FLAG_FORMDESHIDE$          to 0x00000004 ; // Don't show in FormDes
   equ PS_TF_FLAG_MULTICOLUMN$          to 0x00000008 ; // Supports AMV grouping
   equ PS_TF_FLAG_DBSUPPORT$            to 0x00000010 ; // Can support data binding
   equ PS_TF_FLAG_ICONVSUPPORT$         to 0x00000020 ; // Can support iconv (VALID property)
   equ PS_TF_FLAG_OCONVSUPPORT$         to 0x00000040 ; // Can support oconv (CONV property)
   equ PS_TF_FLAG_REQSUPPORT$           to 0x00000080 ; // Can support REQUIRED property
   equ PS_TF_FLAG_ALLOWFOCUS$           to 0x00000100 ; // Can support GOT/LOSTFOCUS processing
   equ PS_TF_FLAG_DATACLICK$            to 0x00000200 ; // CLICK event triggers DB uppdate
   equ PS_TF_FLAG_DEFVALSUPPORT$        to 0x00000400 ; // Can support DEFAULTVALUE handler
   equ PS_TF_FLAG_TYPEINFOONLY$         to 0x00000800 ; // Object Def is for type-info purposes only
   equ PS_TF_FLAG_HIDEFORMDESDB$        to 0x00001000 ; // Hide DB properties from FormDes
   equ PS_TF_FLAG_SIBLINGPARENT$        to 0x00002000 ; // Acts as a sibling parent - only allowed a WINDOW as a parent.
   equ PS_TF_FLAG_FORMDESCONTAINER$     to 0x00004000 ; // Can be a FormDes container.
   equ PS_TF_FLAG_FDPOSTPARSE$          to 0x00008000 ; // Requires post-PARSESTRUCT processing when loaded into the FD 
   equ PS_TF_FLAG_NOOMNIEVENT$          to 0x00010000 ; // No OMNIEVENT support 
   equ PS_TF_FLAG_DBSYMSOFTDISABLE$     to 0x00020000 ; // "Soft-disable" controls bound to symbolic columns
   equ PS_TF_FLAG_NODEFPROPIDXSUPPORT$  to 0x00040000 ; // No DEFPROP property indexing support
   equ PS_TF_FLAG_FORMDESDBONLY$        to 0x00080000 ; // Only show in FormDes DataBound ToolBox
   equ PS_TF_FLAG_DEFPROPLISTSELECT$    to 0x00100000 ; // Move @fm <-> @vm for DB DEFPROP Read/Write ops 

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   // GETEVENTINFO method equates
   
   equ PSTI_GEI_POS_EVENTNAME$          to 1  ; // PS event display name
   equ PSTI_GEI_POS_EVENTARGS$          to 2  ; // PS event arg names (@svm'd)
   equ PSTI_GEI_POS_EVENTARGTYPES$      to 3  ; // PS event arg types (@svm'd)
   equ PSTI_GEI_POS_EVENTARGFLAGS$      to 4  ; // PS event arg flags (@svm'd)
   equ PSTI_GEI_POS_EVENTCAT$           to 5  ; // PS event category string
   equ PSTI_GEI_POS_EVENTFLAGS$         to 6  ; // PS event flags (custom event etc)
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   // GETEVENTS method equates
   
   equ PSTI_GEV_POS_EVENTID$            to 1  ; // PS event ID
   equ PSTI_GEV_POS_EVENTNAME$          to 2  ; // PS event display name
   equ PSTI_GEV_POS_EVENTARGS$          to 3  ; // PS event arg names (@svm'd)
   equ PSTI_GEV_POS_EVENTARGTYPES$      to 4  ; // PS event arg types (@svm'd)
   equ PSTI_GEV_POS_EVENTARGFLAGS$      to 5  ; // PS event arg flags (@svm'd)
   equ PSTI_GEV_POS_EVENTCAT$           to 6  ; // PS event category string
   equ PSTI_GEV_POS_EVENTFLAGS$         to 7  ; // PS event flags (custom event etc)
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   // APPNOTE entity prefixes for type description records
   
   equ PSTI_APPNOTE_PROPERTY_ID$        to @appID<1> : "*APPNOTE**PSTI-P-"
   equ PSTI_APPNOTE_EVENT_ID$           to @appID<1> : "*APPNOTE**PSTI-E-"
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   // CFG_PS_TYPEINFO_SORT record layout
   //
   //    <1> @vm delimited list of category names
   //    <2> @vm delimited list of category weights
   //    <3> @vm/@svm delimited list of property Names for each category
   //    <4> @vm/@svm delimited list of property weights for each category
   //
   // All four fields form an AMV group, which each value in <3> and <4>
   // forming an @svm-based AMV.
   
   equ PSTI_SORTREC_ID$                 to "CFG_PS_TYPEINFO_SORT"
   equ PSTI_DFLT_SORT_WEIGHT$           to 500
   
   equ PSTI_SORTREC_POS_CATNAMES$       to 1
   equ PSTI_SORTREC_POS_CATWEIGHTS$     to 2
   equ PSTI_SORTREC_POS_PROPNAMES$      to 3
   equ PSTI_SORTREC_POS_PROPWEIGHTS$    to 4
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
