# Grasshopper2.UI namespace

Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

## Interfaces

- [IBundleAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.ibundleaware.md): Interface to indicate an object contains an assignable [Bundle<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.bundle-1.md) property. This property must have public gettings and setters and be of type [Bundle<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.bundle-1.md).
- [IContextMenuAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.icontextmenuaware.md): Interface for objects who need to insert items into context menus.
- [ISnapAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.isnapaware.md): Implement this interface to indicate you know what snapping is.

## Classes

- [Bundle<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.bundle-1.md): Represents a bundle of UI controls, ie. objects that are associated with each other and may share certain visual properties. For example, bundled sliders will synchronise the width of their grips so they look more in tune with each other.
- [CustomTitleBar](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.customtitlebar.md): A control which acts as a custom titlebar on certain Grasshopper windows.
- [CustomTitleBarEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.customtitlebareventargs.md): Event arguments used in the Save and Copy operations of the [CustomTitleBar](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.customtitlebar.md).
- [DelayedMethod](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.delayedmethod.md)
- [Editor](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.editor.md): The standard editor window for Grasshopper. There's only ever at most one of these.
- [EditorMainMenu](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.editormainmenu.md)
- [Layout](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.layout.md): Provides static methods for layout out axis aligned boxes.
- [LayoutString](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.layoutstring.md): Represents a single string with layout properties.
- [LazyString](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.lazystring.md): A process which computes a string lazily in a background thread.
- [LazyStrings](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.lazystrings.md): A pair of [LazyString](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.lazystring.md)s.
- [Nomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomen.md): Collates a set of descriptive properties of some entity. The Latinate archaic term 'nomen' was picked for this type since we needed both a short and otherwise unused name. Hence, 'Name', 'Id', 'Description', 'Label' or 'Tag' were not acceptable. Nomens will convert automatically from strings, provided they are formatted thusly: '[Chapter.[Section.]]Name[//Info]'
- [NomenAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomenattribute.md): Attribute for associating Nomens with types.
- [NomenChapter<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomenchapter-1.md): A collection of Nomen chapters.
- [NomenControl](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomencontrol.md): A control for editing Nomen values.
- [NomenEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomeneventargs.md)
- [NomenSection<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomensection-1.md): A collection of Nomen sections.
- [NotesEditor](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.noteseditor.md): A small window which contains the text notes for a document.
- [Plurality<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.plurality-1.md): Represents a collection of values, some of which may be identical. This class is used for 'varies' UI to keep track of multiple states.
- [PluralityEventArgs<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.pluralityeventargs-1.md): Event arguments for changes to plurality states.
- [ResizingFrame](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.resizingframe.md): A utility type handy for resizing rectangles.
- [RhinoSlavedForm](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.rhinoslavedform.md): A modeless form which does its level best to stay on top of rhino.
- [ScrollingFrame](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.scrollingframe.md): Utility class for solving scroll bar dimensions.
- [Sentence](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.sentence.md): Utility class for formatting adjectives and subclauses into a single sentence.
- [StretchLayoutSolver](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.stretchlayoutsolver.md): Utility class for solving stretching layouts.
- [StringLayout](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.stringlayout.md): Provides layout and display for string key/value pairs.
- [StringSequence](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.stringsequence.md): A sequence of strings which can be padded to provide aligment amongst multiple instances (assuming a monospaced font).
- [TransientForm](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.transientform.md): Provides a form hosting a single control, a custom title bar and an auto-close on focus loss mechanism.
- [UiInfoAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uiinfoattribute.md): Assign this attribute to types or values if they are associated with a detailed info text.
- [UiInteger](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uiinteger.md): An integer with controllable limits.
- [UiNameAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uinameattribute.md): Assign this attribute to types or values if their name needs to be something other than the type of method name.
- [UiNumber](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uinumber.md): A number with controllable limits and decimal places. This type of number is not fast, do not use it for actual mathematics.
- [UiTintAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uitintattribute.md): Assign this attribute to types or values if they are associated with a specific colour.
- [ValueEntry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.valueentry.md): A single entry in an edit data form.
- [ValueEntryForm](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.valueentryform.md)
- [ValuePickerDialog<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.valuepickerdialog-1.md)

## Enums

- [FeedbackLocation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.feedbacklocation.md): Enumerates the possible locations where the zoom change feedback can be drawn.
- [PluralityState](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.pluralitystate.md): Enumerates the possible types of plurality.
- [Rank](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.rank.md): Enumerates the possible ranks of objects.
- [ValueEntryKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.valueentrykind.md): Enumerates the possible states of a ValueEntry.
- [ZoomThreshold](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.zoomthreshold.md): Enumerates the various zoom levels at which UI element appear or disappear.

## Structs

- [LayoutPadding](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.layoutpadding.md): Padding fields for layout.
- [RowColumn](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.rowcolumn.md): Represents a row+column index pair.
- [SearchValence](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.searchvalence.md): A struct holding search relevance valence information for a [Nomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.nomen.md).
