SetInstanceRefBox

(Engine-Level Function)

Description: Programmatically, set the module reference box of a single module instance.
Warning: This statement should be used by advanced users only since irrevocable alteration of your application may occur.
Returns: Invalid.
Usage: Script Only.
Function Groups: Compilation and On-Line Modifications, Graphics,  Advanced Module
Related to: SetModuleRefBox
Format: SetInstanceRefBox(Module, Left, Bottom, Right, Top)
Parameters:  
Module
Required. Any expression for the object value of the instance of the module.
Left
Required. Any numeric expression for the left side of the reference box for Module's graphics.
Bottom
Required. Any numeric expression for the bottom side of the reference box for Module's graphics.
Right
Required. Any numeric expression for the right side of the reference box for Module's graphics.
Top
Required. Any numeric expression for the top side of the reference box for Module's graphics.
Comments:

This function adds a way to set the module reference box of a single module instance programmatically. If a module has SetInstanceRefBox called for an instance of it, then SetModuleRefBox will not affect that instance.

Comparing the two functions, SetModuleRefBox provides a way to programmatically set the default size of a module whereas SetInstanceRefBox provides a way to set the size of a specific instance of a module.

In any of the parameters are omitted, or if one or more is invalid, the instance-specific reference box will be cleared.

Examples:

The following is a widget that will draw the image, which is specified by its full path name in the text parameter, at its native size:

{================== Image Widget ======================}
(
  ImageChoice <:"Select Image":> Text;
)
[
  Title = "ImageWidget";
  Shared UserMethods (LIBRARIES);
  bWidth  = 1  { default size is 1x1} ;
  bHeight = 1                         ;
  bObj         { bitmap object ref  } ;
]
Init [
  If Watch(1) WidgetMain;
  [
     ifelse(ImageChoice,
            bObj = MakeBitmap(ImageChoice),
            bObj = MakeBitmap("\Bitmaps\Icons\Question icon.bmp"));
    bWidth   = PickValid(BitmapInfo(bObj, 0), 1);
    bHeight = PickValid(BitmapInfo(bObj, 1), 1);
    SetInstanceRefBox(Self, 0, bHeight, bWidth, 0);
  ]
]
WidgetMain [

  GUIBitmap(0, 1, 1, 0 { Bounding box of image },
            1 - 0, bHeight, bWidth, 1 - 0, 1 { Scaling },
            0, 0 { No trajectory or rotation },
            1 { Bitmap is visible },
            0 { Reserved },
            4 { Left mouse button activates },
            0 { Focus ID number },
            0 { Focus trigger },
            bObj { Bitmap to show });
]