UserInterfaceTextBox
UserInterfaceControlUserInterfaceObjectBaseA single line text box. Click it to give it keyboard focus, then type. The characters go into the box instead of to the command line for as long as it has focus; Enter commits what was typed, Escape puts back the text the box started with, and both give the focus back to the viewport.
Constructors
Properties
BackgroundColor
Color the control is filled with: the face of a button, the track of a slider, the box of a check box or radio button, the field of a text box, the whole rectangle of a label, icon or grid. Color.Empty, the default, means the control chooses the color for the theme that is in use and follows the theme when it changes. Labels and icons draw no background when this is Color.Empty. A grid fills with the theme's panel color when it is a top level control, and draws no background when it is inside another control. UserInterfaceGrid.BackgroundOpacity makes the theme color see through, or turns the background off at 0.
Color of the outline around the box. Color.Empty, the default, means use the standard color for the theme that is in use. The outline is drawn thicker and brighter while the box has keyboard focus, whatever color it is given.
BoundToActiveView
Where the insertion point sits, as a count of characters from the start of the text. Setting it clamps to the length of the text.
HasKeyboardFocus
Does this object have keyboard focus? An object with keyboard focus gets first refusal on what is typed in a viewport; what it does not use carries on to the command line as usual.
HorizontalAlignment
Most characters the text will hold. 0, the default, means no limit.
Text drawn, dimmed, when the box is empty and does not have focus
A read only text box can take focus and be scrolled through, but typing does not change it. False by default.
What the box holds. Unlike the other controls, this is something the user changes, so reading it asks the box itself what is in it.
Overrides: UserInterfaceControl.Text
TextColor
Color used to draw the text. Color.Empty, the default, means use the standard text color for the theme that is in use.
TextHeight
Height of the text in logical pixels. A value of 0, the default, means use the standard control font height. Controls that draw no text ignore this setting.
TextHorizontalAlignment
Where the text sits inside the control's rectangle. This is not the same as HorizontalAlignment, which is where the control sits inside its parent.
TextVerticalAlignment
Where the text sits inside the control's rectangle. This is not the same as VerticalAlignment, which is where the control sits inside its parent.
Tooltip
Text shown in a tooltip when the mouse rests over this object. Null or an empty string means no tooltip, which is what an object starts with. One tooltip is on screen at a time; whichever object the mouse is over owns it.
TrackingPoint
3d location that control "sticks" to if not null
VerticalAlignment
Visible
Is the user interface object visible? Objects that are not visible will not be drawn and will not receive mouse events
Methods
ComputedRectangle
IsMouseOver
Called to test if the mouse is actively over this object
Parameters:
| mouse (MouseState) |
Returns: Return true if the mouse is over this object
OnDraw
All user interface objects are drawn and can customize their look with the OnDraw function
Parameters:
| args (DrawEventArgs) |
OnEditCanceled
#protected virtual void OnEditCanceled()
Called when Escape is pressed. The text has already been put back to what it was when the box took focus. The default implementation raises the EditCanceled event.
OnKeyboardFocusChanged
#Called when the box gains or loses keyboard focus. Read HasKeyboardFocus to find out which. The default implementation raises the KeyboardFocusChanged event.
Parameters:
| hasFocus (bool) | True when the box has just taken focus |
OnMouseClick
Called during a mouse click event on this object
Parameters:
| mouse (MouseState) |
OnMouseDoubleClick
Called during a mouse double click event on this object
Parameters:
| mouse (MouseState) |
OnMouseDown
Called when the mouse goes down on this object
Parameters:
| mouse (MouseState) | Current mouse state when this event occurs |
OnMouseEnter
Called when the mouse goes over this object
Parameters:
| mouse (MouseState) |
OnMouseLeave
Called when the mouse leaves this object
Parameters:
| mouse (MouseState) |
Parameters:
| mouse (MouseState) |
OnMouseUp
Called when the mouse is released on this object
Parameters:
| mouse (MouseState) |
OnRunCommand
Called after the above RunCommand function is called. This will be executing while inside of a Rhino command.
Parameters:
| doc (RhinoDoc) | Document that the command is running in |
| mode (RunMode) | Interactive or scripted mode |
| mouse (MouseState) | Mouse state that was passed to RunCommand |
Returns: Result of the command. The default implementation returns Success
OnTextChanged
#protected virtual void OnTextChanged()
Called every time the text changes, once per keystroke. The default implementation raises the TextChanged event.
OnTextCommitted
#protected virtual void OnTextCommitted()
Called when Enter is pressed, and when the box loses focus with the text changed from what it started with. This is where you do something about the new text. The default implementation raises the TextCommitted event.
RegisterForAllDocuments
Make this object visible for all documents. Typically you will only have user interface objects work with single documents. For that case, call doc.ViewUserInterface.Add
RunCommand
Call RunCommand to have the virtual OnRunCommand function executed in the scope of a Rhino command. If you are modifying the document from one of the mouse functions on this object, this is the best approach to do so since changes made inside of a command are recorded for undo.
Parameters:
| mouse (MouseState) | Current mouse state. This is handed back to OnRunCommand |
Parameters:
| svg (string) |
Give this text box keyboard focus, as clicking it does
Parameters:
| doc (RhinoDoc) | Document to redraw. This can be null. |
Unregister
public void Unregister()
Unregister this object
Events
Event triggered when Escape puts back the text the box started with
Event triggered when the box gains or loses keyboard focus
Event triggered every time the text changes, once per keystroke
Event triggered when what was typed is committed, by Enter or by the box losing focus with the text changed