imgTag

The ImgTag UI Control can be used to place images in MAXScript Rollouts. Other than the Bitmap UI Control, it does not have a sunken edge and can be integrated better in the layout. In addition, it supports transparency effects and various mouse handlers which could be used to design customized controls.

The syntax is:

imgTag <name> [caption] [tooltip:<string>] [style:<key>] [bitmap:<bitmap>] [opacity:<float>] [transparent:<color>] [iconName:<filename>] [iconSize:<point2>]     [ applyUIScaling:<boolean> ]

Properties:

<ImgTag>.tooltip String default:""   
<ImgTag>.bitmap Bitmap default:undefined 

Current image being displayed.

<ImgTag>.style Key default:#bmp_stretch 

Way the bitmap will be displayed in the control.

Can be one of the following:

 #bmp_stretch #bmp_tile #bmp_center 
<ImgTag>.opacity float default:0.0 

Overall opacity of the image, can range from 0.0 to 1.0

<ImgTag>.transparent color default:(color 0 0 0) 

The RGB color in the source bitmap to treat as transparent.

Note:

Opacity and transparent properties only have an effect in Windows 2000 and higher. These do not have an effect in NT.

<ImgTag>.iconName string

Specifies the path of an icon file to load from the 3ds Max system icons resource. See the Icon Guide in the 3ds Max Developer Guide for a list of available system icons and their paths.

<ImgTag>.iconSize point2

Specifies the icon's size at 100% DPI scaling.

<ImgTag>.applyUIScaling bool

Specifies whether to apply scaling on high-DPI displays.

Methods:

 getIconAsBitmap <iconName> iconSize:<point2> enabled:<boolean> on:<boolean> applyUIScaling:<boolean>

-- defaults values: [24,24], true, false, true

Returns the icon as a bitmap value, if the icon is found in the 3ds Max icon resources. See the Icon Guide in the 3ds Max Developer Guide for a list of available system icons and their paths. Returns undefined if it is not found. Available in in 3ds Max 2017 and higher.

EXAMPLE

   b = getIconAsBitmap @"PolyTools\TransformTools\PB_CW"
getIconSizes <iconName> enabled:<boolean> on:<boolean>
 -- defaults values: true, false

Returns an array of icon sizes that are defined for the specified icon name in the 3ds Max icon resources. Returns undefined if the icon is not found.

EXAMPLE

   getIconSizes @"PolyTools\TransformTools\PB_CW"
   #([20,20], [25,25], [30,30], [40,40])

Events:

on <ImgTag> mousedown do <expr> 

Called when the left mouse button is pressed down.

on <ImgTag> mouseup do <expr> 

Called when the left mouse button is released.

on <ImgTag> click do <expr> 

Called when the left mouse button is released.

on <ImgTag> dblclick do <expr> 

Called when the left mouse button double clicked.

on <ImgTag> mouseover do <expr> 

Called when the mouse is moved into the image area.

on <ImgTag> mouseout do <expr> 

Called when the mouse is moved out of the image area.

on <ImgTag> rightclick do <expr> 

Called when the right mouse button is released. Available in 3ds Max 8 and higher.

on <ImgTag> lbuttondown <Point2> <Flags> do <expr> 

Called when the left mouse button has been pressed. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value which is a combination of the following bits:

Hexadecimal Decimal Binary Key Pressed
0x0001 1 00000001 The left mouse button is down.
0x0002 2 00000010 The right mouse button is down.
0x0004 4 00000100 The SHIFT key is down.
0x0008 8 00001000 The CTRL key is down.
0x0010 16 00010000 The middle mouse button is down.
0x0020 32 00100000 The first X button is down (the left side button of the mouse)
0x0040 64 01000000 The second X button is down (the right side button of the mouse)

You can use the bit.get() method to determine whether a key is pressed or not:

EXAMPLE

   rollout ui_imgtag "imgtag"
   (
   local bm = bitmap 50 50 color:red
   imgtag img_tag "imgtag" bitmap:bm align:#center
   fn printButtonStates Flags =
   (
   LMB = bit.get Flags 1
   RMB = bit.get Flags 2
   SHIFT = bit.get Flags 3
   CTRL = bit.get Flags 4
   MMB = bit.get Flags 5
   XB1 = bit.get Flags 6
   XB2 = bit.get Flags 7
   format "LMB:% MMB:% RMB:% SHIFT:% CTRL:% XB1:% XB2:%\n" LMB MMB RMB SHIFT CTRL XB1 XB2
   )
   on img_tag lbuttondown v1 v2 do printButtonStates v2
   on img_tag mbuttondown v1 v2 do printButtonStates v2
   on img_tag rbuttondown v1 v2 do printButtonStates v2
   )
   createdialog ui_imgtag width:100
on <ImgTag> lbuttonup <Point2> <Flags> do <expr> 

Called when the left mouse button has been released. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> lbuttondblclk <Point2> <Flags> do <expr> 

Called when the left mouse button has been double-clicked. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> mbuttondown <Point2> <Flags> do <expr> 

Called when the middle mouse button has been pressed. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> mbuttonup <Point2> <Flags> do <expr> 

Called when the middle mouse button has been released. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> mbuttondblclk <Point2> <Flags> do <expr> 

Called when the middle mouse button has been double-clicked. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> rbuttondown <Point2> <Flags> do <expr> 

Called when the middle mouse button has been pressed. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> rbuttonup <Point2> <Flags> do <expr> 

Called when the middle mouse button has been released. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

on <ImgTag> rbuttondblclk <Point2> <Flags> do <expr> 

Called when the middle mouse button has been double-clicked. Available in 3ds Max 8 and higher.

The first argument contains a Point2 value representing the 0-based pixel coordinates within the ImgTag.

The second argument is the Flags value as described above.

EXAMPLE

   rcmenu MyRCmenu
   (
   menuItem mi_cs "First Option" checked:false
   menuItem mi_rs "Second Option" checked:false
   )
   rollout ui_items "ui items"
   (
   button a2 "button"
   on a2 rightClick do print a2
   checkbutton a4 "checkbutton"
   on a4 rightClick do print a4
   local bm = bitmap 50 50 color:red
   imgtag b5 "imgtag" bitmap:bm align:#center
   on b5 mousedown v1 v2 do
   format "% ; % ; % ; %\n" b5 #mousedown v1 v2
   on b5 lbuttondown v1 v2 do
   format "% ; % ; % ; %\n" b5 #lbuttondown v1 v2
   on b5 mbuttondown v1 v2 do
   format "% ; % ; % ; %\n" b5 #mbuttondown v1 v2
   on b5 rightClick v1 v2 do
   format "% ; % ; % ; %\n" b5 #rightClick v1 v2
   on b5 rbuttondown v1 v2 do
   format "% ; % ; % ; %\n" b5 #rbuttondown v1 v2
   on b5 mouseup v1 v2 do
   format "% ; % ; % ; %\n" b5 #mouseup v1 v2
   on b5 click v1 v2 do
   format "% ; % ; % ; %\n" b5 #click v1 v2
   on b5 lbuttonup v1 v2 do
   format "% ; % ; % ; %\n" b5 #lbuttonup v1 v2
   on b5 mbuttonup v1 v2 do
   format "% ; % ; % ; %\n" b5 #mbuttonup v1 v2
   on b5 rbuttonup v1 v2 do
   format "% ; % ; % ; %\n" b5 #rbuttonup v1 v2
   on b5 dblclick v1 v2 do
   format "% ; % ; % ; %\n" b5 #dblclick v1 v2
   on b5 lbuttondblclk v1 v2 do
   format "% ; % ; % ; %\n" b5 #lbuttondblclk v1 v2
   on b5 mbuttondblclk v1 v2 do
   format "% ; % ; % ; %\n" b5 #mbuttondblclk v1 v2
   on b5 rbuttondblclk v1 v2 do
   format "% ; % ; % ; %\n" b5 #rbuttondblclk v1 v2
   on b5 mouseout v1 v2 do
   format "% ; % ; % ; %\n" b5 #mouseout v1 v2
   on b5 mouseover v1 v2 do
   format "% ; % ; % ; %\n" b5 #mouseover v1 v2
   mapbutton a11 "mapButton"
   on a11 rightClick do print a11
   materialbutton a12 "materialbutton"
   on a12 rightClick do print a12
   pickbutton a13 "pickbutton"
   on a13 rightClick do (print a13; popupmenu MyRCmenu)
   )
   createdialog ui_items width:100