VS:vsoStateGetParamChng

From Vectorworks Developer
Revision as of 18:07, 7 June 2015 by CBM-c- (talk | contribs) (behaviour using worksheets)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Used to determine if the object parameter has changed. See VS:Parametric State Notifications#vsoStateGetParamChng

This function should be called during the parametric reset event: 3: {kParametricRecalculate}

FUNCTION vsoStateGetParamChng(
hObj  : HANDLE;
VAR outWidgID  : LONGINT;
VAR outPrmIdx  : INTEGER;
VAR outOldVal  : STRING) : BOOLEAN;
def vs.vsoStateGetParamChng(hObj):
    return (BOOLEAN, outWidgID, outPrmIdx, outOldVal)

Parameters

hObj HANDLE Handle to the parametric object. Obtained by call to VS:GetCustomObjectInfo
outWidgID LONGINT Output parameter. Widget ID of the changed parameter.
outPrmIdx INTEGER Output parameter. Parameter index.
outOldVal STRING Output parameter. String representation of the old value.

Remarks

(Orso, 2015.06.07): In VW 2013 and perhaps before this won't be triggered by edits performed through worksheets. Otherwise in later versions it sets:

  • outWidgID = -1: on edit control pt
  • outWidgID = 0: on edit through WS <--- DON'T USE outWidgID!!!

Example

VectorScript

BEGIN
  result := GetCustomObjectInfo(objectName, objectHand, recordHand, wallHand);
  vsoGetEventInfo(theEvent, message );

  CASE theEvent OF
    5: {kObjOnInitXProperties}
    BEGIN
      {enable eventing for this plug-in}
      SetPrefInt( 590, 1 ); {varParametricEnableStateEventing, kParametricStateEvent_ResetStatesEvent}
      result := SetObjPropVS(18, TRUE); {kObjXPropAcceptStates}
    END;	

    44: {kObjOnAddState}
    BEGIN
      message := vsoStateAddCurrent( objectHand, message );
    END;

    3: {kParametricRecalculate}
    BEGIN
      MoveTo( 5mm, 8mm );
      CreateText( 'State events received after the last kParametricRecalculate:' );

      IF vsoStateGetParamChng( objectHand, widgID, prmIndex, oldValue ) THEN BEGIN
        MoveTo( 0,-30mm );
        CreateText( Concat( 'Object parameter just changed! widgetID=', widgID, ' paramIndex=', prmIndex,' OldValue=', oldValue ) );
      END;
    END;

Python


Version

Availability: from Vectorworks 2009

This is drop-in function.

See Also

VS:Parametric State Notifications | VS:vsoStateAddCurrent

VS:vsoStateGetPos | VS:vsoStateGetRot | VS:vsoStateGetParamChng | VS:vsoStateGetObjChng | VS:vsoStateGetLayrChng | VS:vsoStateGetExitGroup | VS:vsoStateGetNameChng

[[VS:Parametric State Notifications]] | [[VS:vsoStateAddCurrent]] [[VS:vsoStateGetPos]] | [[VS:vsoStateGetRot]] | [[VS:vsoStateGetParamChng]] | [[VS:vsoStateGetObjChng]] | [[VS:vsoStateGetLayrChng]] | [[VS:vsoStateGetExitGroup]] | [[VS:vsoStateGetNameChng]]