Product Documentation
Cadence User Interface SKILL Reference
Product Version IC23.1, September 2023

enterMultiRep

enterMultiRep(
[ ?prompts l_promptList ] 
[ ?points l_pointList ]
[ ?form s_form ] 
[ ?addPointProc t_addProcName ] 
[ ?delPointProc t_delProcName ] 
[ ?initProc t_initProcName ] 
[ ?doneProc t_doneProcName ]
[ ?formProc t_formProcName ]
[ ?dontDraw g_dontDraw ]
[ ?alwaysMap g_alwaysMap ]
[ ?acceptString g_acceptString ]
[ ?acceptNumber g_acceptNumber ]
[ ?noInfix g_noInfix ]
[ ?cmdName t_cmdName ]
[ ?cursor x_cursor ]
) 
=> l_point_list / nil

Description

Identical to enterSegment except that the two points can be in windows viewing different cellviews.

This is the only enterfunction that allows this capability. All others accept input only in windows viewing the same Cellview (known as equivalent windows).

Arguments

?prompts l_promptList

  

List of prompt strings to be displayed in the CIW. Only the first two strings are used.

?points l_pointList

  

List of no more than two points. If both points are supplied, they are adjusted and returned with no further interaction. In this case, the two points are both assumed to be in the current window. If one point is supplied, it is adjusted and displayed as if the user had entered it. After the first point is entered a rubberbanding line appears between the point and the current cursor location.

The rubberbanding line appears only while the cursor is in windows equivalent to the window in which the first point was entered. When the second point is entered, the function terminates and returns the list of points entered. If the second point is entered in a window that is not equivalent to the first, it is returned in coordinates corresponding to the window in which it was entered. Normally this is not a problem. If the two windows, however, have different database-to-user-unit conversion factors, the result might not be as expected. The segment obeys the current snap mode and snap shape rule when in Graphics Editor windows.

?form s_form

Options form created with hiCreateOptionsForm. This form is displayed when you call hiToggleEnterForm. It contains options relevant to the enterfunction and its caller.

?addPointProc t_addProcName

  

Name of the SKILL function to be called when a point is entered.

?delPointProc t_delProcName

  

Name of the SKILL function to be called when a point is deleted.

?initProc t_initProcName

  

Name of the SKILL function to be called immediately after the enterfunction is started and before any data entry.

?doneProc t_doneProcName

  

Name of the SKILL function to be called when the enterfunction is terminated.

?formProc t_formProcName

  

Name of the SKILL function to be called when the options form is displayed.

?dontDraw g_dontDraw

  

Determines whether or not to draw rubber band lines.

?alwaysMap g_alwaysMap

  

Determines whether or not to immediately display the options form.

?acceptString g_acceptString

  

Determines whether or not to accept string input without terminating the enterfunction.

?acceptNumber g_acceptNumber

  

Determines whether or not to accept numeric input without terminating the enterfunction.

?noInfix g_noInfix

  

Determines whether or not to disable infix mode.

?cmdName t_cmdName

  

Name you associate with the enterfunction. If the command name is set, it can be accessed with hiGetCurrentCmd.

?cursor x_cursor

An integer argument that will default to an appropriate cursor. For example, hicArrowRectangle for enterBox and hicArrowArc for enterArc. For more information on all available cursors see hiSetCursor.

Value Returned

l_point_list

A list of two points.

nil

A nil list is returned.

Retrieve data through the callback procedure t_doneProcName instead of using the return value for this enterfunction.

Examples

Displays the prompt Enter the second point in the CIW prompt line.

procedure( segDone( w done pts )
if( done then
printf("Segment extends from %L to %L.\n"
w hiGetCurrentWindow())
else
println("Segment entry aborted.")
)
)
procedure( segInit( )
w = hiGetCurrentWindow( )
firstWindow =
evalstring(cadr(parseString(sprintf(nil "%L" w) ":")))
)
procedure( myEnterSegment( )
segInit( )
enterMultiRep(
?prompts list( "Enter the first point."
"Enter the second point." )
?doneProc "segDone"
?noInfix t
)
)

Sets the infix mode on and bind the s key to the procedure myEnterSegment. Type the s key in a Schematics window at location p1. Because of the noInfix flag, the infixOn flag is ignored. The prompt “Enter the first point” is displayed in the CIW. Enter point p1 in window(2). The rubberbanding line appears between p1 and the cursor location.

window(1)->infixOn = t
hiSetBindKey("Schematics" "<Key>s" "myEnterSegment( )")

Enter point p2 in window(3), which views a different cellview. doneProc prints out the specified message:

Segment extends from window:2 to window:3.

The enterfunction returns the point list:

( p1 p2 ) 

Related Topics

User Entry Functions

hiCreateOptionsForm

undrawEnterFun

hiGetCurrentCmd


Return to top
 ⠀
X