UiViewModels Top-Level ViewModel object for Global Search floating widget. default constructor SearchFilter Property Name Current Search Filter being applied ResultItems Property Name The items that currently match the filter. IsFilterApplied Property Name A value which indicates whether a filter is applied or not. Threshold of items that we attempt to show to the user IsWithinResultsThreshold Property Name A boolean that checks whether we are within a prescibed threshold of results. IsHighlightedIndex Property Name The index of the highlighted item Toolbar VM representation default constructor Tabs Property Name Set of Tabs in toolbar Sets browse mode to true if any of the Tabs are browsing. Titles property name The title of the toolbar, if it's floating Titles property name Returns true if in browser mode, false otherwise. Resets all toolbar IsBrowsing properties to false. ShowIcon Property Name Toolbar shows icons at the top level ShowText Property Name Toolbar shows text at the top level. ShowShortcutKeys Property Name Represents the state where the toolbar is displaying the top-level tab shortcut keys. Browses to a specific tab using its hotkey Represents an item in the toolbar Standard constructor Action Property Name The application action associated with this item Owner Property Name The Owner of this item Image Property Name The small image of the item Tooltip Property Name A tooltip of the item Title of the item Can be either Action.MenuText or MenuItem.Title depending on whether the menu has a custom title Title of the item UseCustomTitle Property Name Use the menu item's custom title instead of the action item MenuText property IsSeparator Property Name Is a separator item rather than an action item IsInFilterCondition Property Name If this item conforms to the current filter. IsHighlighted Property Name Whether the item is highlighted for selection. HasAssignedIcon Property Name Has an assigned icon (not the missing icon) Creates a shallow-copy of the item, where the resolved application action is reference-copied. A shallow-copy of the item. A sub-panel of a toolbar constructor The Items property name The collection of items this panel holds Name Property Name The Name of the Panel StripText Property Name This panel should not display textual descriptions. StripIcon Property Name Determines whether icons should be shown If panel show icons only IsOverWhenLockOn Property Name Mouse is over panel IsHover Property Name Whether the flyout of the panel is showing or not IsGestureLockForFlyout Property Name Determines if we currently in gesture lock state for determining whether the flyout should be shown or fl PostGestureLockForFlyout Property Name This property reflects the value IsGestureLockForFlyout but is set after any change is made to IsGestureLockForFlyout. We need this property because we have an action which needs to take place deterministically after the processing of the state change for IsGestureLockForFlyout is complete. StripText Property Name This panel should not display textual descriptions. IsFlyoutMode Property Name Whether the panel is in flyout mode or is being displayed linearly. IsInFlyout Property Name Whether the flyout is being shown or not. HasBeenVisited Property Name True if the panel has been visited by the user yet IsDocked Property Name IsDocked Property IsDropOnTop Property Name IsDropOnTop Property IsDropOnBottom Property Name IsDropOnBottom Property Reset drop positions (onTop and onBottom) IsVisible Property Name IsVisible Property IsSeparator Property Name IsSeparator Property Creates a deep copy of the panel, where all the items are copied as well. A deep-copy version of the panel. Class to hold a toolbar that goes on a tab. Constructor Toolbar Property Name Gets the owning toolbar. Panels Property Name Set of Panels in toolbar Name Property Name The Name of the Panel Gets the Shortcut key for this tab, or Char.MinValue if no shortcut key exists. By convention, the shortcut key is identified by placing an ampersand before it in the title. Image Property Name The small image of the item IsBrowsing Property Name When the tab is being browsed (is open). IsHover Property Name Mouse hovering above tab TabFilter Property Name The current filter being applied to the tab. IsFilterApplied Property Name Shows whether a filter is in effect on a particular tab. ShowTabShortcutKey Property Name Indicates that tab should show its shortcut key, if it exists States representing the various phases of the gesture needed to "lock" a panel. The initial state, before any point is recorded An in-between state when the user is moving towards a lock, but hasn't gotten there yet The user is in a Lock state. CurrentTabFlyoutGestureState Property Name The representative state for where we are in the gesture state machine. CurrentTabFlyoutGestureState Property Name The current selected item. Input type of the last selection change. Input by mouse Input by Keyboard The input type of the last selection change. Gets all of the items currently being shown, filter included A list of items being shown EventArgs containing the ICuiAction affected by the event. The ICuiAction affected by the event. Additional properties of an action. The item's TooltipKey The item's 16x16 path The item's 24x24 path The item's 30x30 path The item's 32x32 path The item's 36x36 path The item's 48x48 path The item's metadata: a string with data separated by commas By deriving from this class (which includes ICommand and ICuiAction) and placing the DLL containing the implemented class in bin\assemblies, 3ds Max will dynamically load an instance of this class as an action in its CUI interface. When the action is executed, it will call ICommand.Execute(). This is an adapter class. A client only need to satisfy the ICuiActionCommand interface for their class to be loaded by the managed assembly loading process. However, this class is easier to use. The name of the action - to be used when browsing a list of actions. Required for ICuiAction. The name of the category to which this action should belong. Required for ICuiAction. This is internal text that is not used in the user interface anywhere, but is used to uniquely identify the action. This text should be identical across all localized versions of the product. Required for ICuiAction. This is internal text that is not used in the user interface anywhere, but is used to uniquely identify the action category. This text should be identical across all localized versions of the product. Required for ICuiAction. The text that will be used if the action is instantiated in a toolbar button. By default implementation is to forward ActionText as the result. The text that will be used if the action is instantiated in the application menu or a quad-menu. By default implementation is to forward ActionText as the result. Marks whether this action should appear in a menu. This condition is evaluated whenever a menu is shown - meaning the result can be dynamic. By default implementation is to return true. Marks when this action should be available for use. This condition is evaluated whenever a menu is shown - meaning the result can be dynamic. If False, an item will appear "grayed out". Implementation is to forward CanExecute(null) as the result. This implementation is non-virtual. To override the behaviour, override and implement CanExecute from the ICommand interface. Implement this method if the action is "checked" (which means that the UI will show the button as pressed, or the menu item as checked.) By default implementation is to return false. See ICommand.CanExecute() By default implementation is to return true. The event that is raised when the value of CanExecute changes. Deriving classes can call OnCanExecuteChanged(EventArgs.Empty) to raise this event when appropriate. This method will raise the CanExecuteChanged event. Should be EventArgs.Empty The method that is called when this action is executed. An optional parameter, usually null when called from the 3ds Max CUI system. Gets access to the tooltip key which is assigned to the action The key is used to connect the action and its rich tooltip which is prepared by Doc team. This is a stub implementation of a CUI action command, for design-time purposes. You can easily instantiate this class for designing Action-based UI. constructor Sample sample does nothing ActionText to reflect Category to reflect ActionText Category Actiontext Actiontext true Blank - set at construction Blank - set at construction Gets access to the tooltip key which is assigned to the action The key is used to connect the action and its rich tooltip which is prepared by Doc team. Returns the human-readable string describing the hotkey associated with the action, if it exists. An adapter for the ICuiDockableContent interface that provides default implementations of many of the interface methods. This is an adapter class. A client only need to satisfy the ICuiDockableContent interface for their class to be loaded by the managed assembly loading process. However, this class is easier to use. Constructor - initializes the DestroyOnClose property to true. The internal name of the docking frame. This property should be not localized since it acts as identifier and is used by the docking layout for storing / restoring layout information. The name that the CUIFrame should assume. This property should be localizable. The Type of the user control that is created by this action. Return true if moving the CUIFrame should Invalidate the user control and force a repaint. Return true if, when the CUIFrame dialog is closed, it should call DestroyWindow() on itself. Alternatively, if false is returned here, the window will simply be closed, but not destroyed. This would be useful if the content is expensive to create. The default implementation does destroy the content on close. This method is called by the managed assembly loading process process when it is ready to create and show the managed user control. An instance of the Control to create and place as the root object in a CUIFrame. This is a callback function that 3ds Max calls when the CUI frame is docked or floated from the main application frame. By default, this fucntion does nothing. Implement this method to notify content of docking changes. An instance of a Control returned by CreateDockableContent(). The new dock state of the CUIFrame. The dock modes that this control supports. By default, this property is implemented to only return the Top docking position as a possible dock mode. This should be raised when this component is asked to reset its configuration to factory defaults. Raises the ResettingConfiguration event. Raises the ResettingConfiguration event with the passed in parameters. normally EventArgs.Empty This should be raised when this component is currently saving out its current state. Raises the SavingConfiguration event with the passed in file name. The full path of the file where the configuration is being saved. Raises the SavingConfiguration event with the passed in parameters. EventArgs that store the target filename This should be raised when this component is currently loading in a persisted state. Raises the LoadingConfiguration event with the passed in file name. The full path of the file where the configuration is being loaded from. Raises the LoadingConfiguration event with the passed in parameters. EventArgs that store the target filename By default, control docks maximized. By default, the control is not considered a main toolbar. The name of the action - to be used when browsing a list of actions. Required for ICuiAction. The name of the category to which this action should belong. Required for ICuiAction. This is internal text that is not used in the user interface anywhere, but is used to uniquely identify the action. This text should be identical across all localized versions of the product. Required for ICuiAction. This is internal text that is not used in the user interface anywhere, but is used to uniquely identify the action category. This text should be identical across all localized versions of the product. Required for ICuiAction. The text that will be used if the action is instantiated in a toolbar button. By default implementation is to forward ActionText as the result. The text that will be used if the action is instantiated in the application menu or a quad-menu. By default implementation is to forward ActionText as the result. Marks whether this action should appear in a menu. This condition is evaluated whenever a menu is shown - meaning the result can be dynamic. By default implementation is to return true. Marks when this action should be available for use. This condition is evaluated whenever a menu is shown - meaning the result can be dynamic. If False, an item will appear "grayed out". By default implementation is to return true. Implement this method if the action is "checked" (which means that the UI will show the button as pressed, or the menu item as checked.) By default implementation is to return false. Implement this method if your component does not capture keyboard focus when it activates. Default implementation is to return true. Gets access to the tooltip key which is assigned to the action The key is used to connect the action and its rich tooltip which is prepared by Doc team. Given a ICuiDockableWindow, provides an "action-like" interface to that Window. Standard constructor. An object that implements the interface that needs to be adapted to the action system. Access to the wrapped interface object. The internal name of the docking frame. An appropriate WindowTitle (though it likely won't be seen by the user). The Wrapped ContentType of the internal object. Access to the equivalent method of the wrapped interface. Stub ActionText (won't be seen by user). Stub ActionText (won't be seen by user). Stub category (won't be seen by user). Stub category (won't be seen by user). By default, control docks maximized. Docking modes allowed by internal object. Forwarded to internal interface. object that is being docked The dock mode being set (not bit masked). Fulfills control for CuiDockableContentAdapter. Contains the Dock enum values. These bit values match the CUI docking bit values found in custcont.h Allows Dock to Top of application frame Allows Dock to Bottom of application frame Allows Dock to Left of application frame Allows Dock to Right of application frame All docking content can be floated, but this is used to indicate that the content has entered Floating mode. Allows Docking to viewport as an Extended View The mask to apply to a Dock enum to only discover the edges that it docks to. Bits found beyond this mask are not related to the dock edge. This base interface should be implemented if the user wants to expose a new CUI action whose entry-point is a .NET assembly. This is actually the root interface of two other important interfaces - ICuiActionExecuteNotifier and ICuiDockableContent. By implementing those interfaces in a DLL that targets the bin\assemblies folder of a 3ds Max install, you will see them appear in the standard CUI dialog under the category specified below. The name of the action - to be used when browsing a list of actions. This is equivalent to DescriptionText in the ActionItem C++ SDK class. This property should be localized. The name of the category to which this action should belong. When dynamically loading actions, a category will be created if an action is declared to be part of a, as of yet, undeclared category. This property should be localized. This is internal text that is not used in the user interface anywhere, but is used to uniquely identify the action. This text should be identical across all localized versions of the product. Normally you would have the ActionText property refer to a localized resource entry, while this text can and should be hardcoded into the code. This is internal text that is not used in the user interface anywhere, but is used to uniquely identify the action category. This text should be identical across all localized versions of the product. Normally you would have the Category property refer to a localized resource entry, while this text can and should be hardcoded into the code. The text that will be used if the action is instantiated in a toolbar button. Equivalent to ActionItem::ButtonText() in the C++ SDK. This property should be localized. The text that will be used if the action is instantiated in the application menu or a quad-menu. Equivalent to ActionItem::MenuText() in the C++ SDK. This property should be localized. Marks whether this action should appear in a menu. This condition is evaluated whenever a menu is shown - meaning the result can be dynamic. Marks when this action should be available for use. This condition is evaluated whenever a menu is shown - meaning the result can be dynamic. If False, an item will appear "grayed out". Implement this method if the action is "checked" (which means that the UI will show the button as pressed, or the menu item as checked.) Gets access to the tooltip key which is assigned to the action The key is used to connect the action and its rich tooltip which is prepared by Doc team. Static placeholder class. If a class implements ICuiActionExecuteNotifier or ICuiDockableContent, the bootstrap loader will look to see if a method with the name GetInstanceOfAction is declared (static, with no parameters.) If so, it will assume that the action is meant to be a singleton and will load it as such. Actions should be declared as singletons if they contain some system state that is not serialized or discoverable using regular means. By implementing this interface and placing the DLL containing the implemented class in bin\assemblies, 3ds Max will, as a result, dynamically load an instance of this class as an action in its CUI interface. When the action is executed, it will call ICommand.Execute(). A client only need to satisfy the ICuiActionCommand interface for their class to be loaded by the managed assembly loading process. However, The CuiActionCommandAdapter class exists to make this interface easier to use. An interface that allows the client to batch-create and declare CuiActions. Implementing this action will result in the bootstrap manager calling this method on startup to declare a batch of action items. This allows a plugin to procedurally declare action items in bunches. An iterator of CuiActions to declare to the bootstrap manager. By implementing this interface (which includes ICuiAction), and placing the class in a DLL that is deposited in bin\assemblies, 3ds Max will dynamically load this class as an action in its CUI interface. When the action is executed, content returned by ICuiDockableContent will be loaded into a CUIFrame Win32 dockable window and launched. This interface is provided as a means to quickly add a .NET WPF-based User Interface solution to 3ds Max. In particular, this method supports creating a WPF Control which can then be instantiated within 3ds Max. In brief, a developer can create a WPF Control project, model a control and program the functionality, and finally declare an action class that implements this interface and who creates an instance of this Control. The Control will fill the CUIFrame, but otherwise will behave as if it was created within a WPF dialog. The internal name of the docking frame. This property should be not localized since it acts as identifier and is used by the docking layout for storing / restoring layout information. The name that the CUIFrame should assume. This property should be localizable. The Type of the user control that is created by this action. Return true if moving the CUIFrame should Invalidate the user control and force a repaint. Return true if, when the CUIFrame dialog is closed, it should call DestroyWindow() on itself. Alternatively, if false is returned here, the window will simply be closed, but not destroyed. This would be useful if the content is expensive to create. This method is called by the managed assembly loading process process when it is ready to create and show the managed user control. An instance of the Control to create and place as the root object in a CUIFrame. This is a callback function that 3ds Max calls when the CUI frame is docked or floated from the main application frame. An instance of a Control returned by CreateDockableContent(). The new dock state of the CUIFrame. The dock modes that this control supports. When docking on application edges, this control maximizes to fill the screen in the direction of the dock. A content provider can decide whether it should always have keyboard focus, or whether max's keyboard should still work while working with this user control. In some cases it may be more appropriate to control accelerators at a finer level of granularity. For instance, you may want the main canvas area of your control to accept max hotkey commands, while you want to obtain keyboard focus (disable accelerators) when selecting a sub-control (i.e. a textbox). If true, this content provider will be listed in the main toolbars context menu of the application, and will be shown and hidden accordingly. Due to the requirements of this entry point, the DestroyOnClose property will always be treated as being 'false' if this property is true. A closed toolbar will only be hidden, not destroyed. It will be destroyed on shutdown, as per usual. This should be raised when this component is asked to reset its configuration to factory defaults. This should be raised when this component is currently saving out its current state. This should be raised when this component is currently loading in a persisted state. An interface that a Window object can implement to interact with the Max CUI system to provide a dock-representation object. Often when a window is to dock in the main frame, it won't want to keep the exact same representation of itself. Instead, this interface allows the Application to query the Window for a representation or UI control which is appropriate in a doc state. Often, the same ViewModel can be used to plug-in to the new UI control. The Type of the user control that is created by this action. This method is called by the managed assembly loading process process when it is ready to create and show the managed user control. An instance of the Control to create and place as the root object in a CUIFrame. This is a callback function that 3ds Max calls when the CUI frame is docked or floated from the main application frame. An instance of a Control returned by CreateDockableContent(). The new dock state of the CUIFrame. The dock modes that this control supports. The internal name of the docking frame. This property should be not localized since it acts as identifier and is used by the docking layout for storing / restoring layout information. The name that the CUIFrame should assume. This property should be localizable. Notifies 3ds Max that a new ActionItem was created dynamically after the application initialization phase and must be published in the CUI system. To publish dynamic events from a managed plug-in placed in bin\assemblies, create a public concrete singleton class implementing IDynamicActionCreator. The plug-in loading system will listen for ActionItemCreated events, and register the ICuiAction instance from the ActionItemEventArgs into 3ds Max's action manager. Fires when a new ActionItem is instantiated to signal the plug-in loader to register it within the CUI action manager. This interface should be implemented when a class needs to allow callers to re-query its states (properties) to force binding update. This function should contain the functionality that requeries the states (properties) Base class that supplies some boiler-plate for the common ViewModel architectural patter, as used by WPF. Call this method to raise the PropertyChanged event. name of property that changed Event for interface INotifyPropertyChanged. A command implementation for putting a ViewportTab into the editing state. Executes the command. the param (expected MouseEventArgs) ViewModel class which represents a system ViewPanel preset. Constructor. Property name for Name property. The name of the ViewPanel preset. Property name for CreateViewportFromPresetCommand. The command to a new view panel using the current preset as a template. Property name for DeletePresetCommand. The command to Delete a given preset from the system configuration. Name of Layout property. The base layout configuration of this viewport. Property name for TypesInLayout Retrieves an array of the type of viewports present in this preset. The index of the type in the array corresponds to the viewport in the screen, with index 0 being the top left corner, and the index increasing in a clockwise direction from there. Property name for Index property. The current index of the ViewPanel preset in the model Property name for IsEditing property. Whether or not we are currently editing the presets The VM for the ViewportTabs control. Contructor. Property name for Views. A collection of viewport tabs. Name of Presets property. A collection of the system ViewPanel presets. Property name for CanCreateMoreViews. A value which keeps track of whether the current Viewport tabbing system can create more viewports. Property name for CanCreateMoreViews. A value which keeps track of whever we are in new panel adding mode Property name for IsEditingPresets. A value which keeps tracks whether we are in the process of editing the presets or not Property name for CreateCommand. The command to call to create a tab Property name for CreatePresetCommand. The command to call to create a viewport preset based on a given viewpanel configuration. Property name for MainWindowHwnd. The main application window handle. Used for certain calculations relating to dialog popups. IsTabSettingsPanelOpen Property Name Is true if any Tab Settings Panel is open. Acts a VM model for a Viewport Tab. Viewport Tab status enum There is no status for Viewport Tab This value should be used as default View Panel Preset is created successfully View Panel Preset is not created Name property name. The name of the Viewport. ViewIndex property name The viewport index. Represents the different possibile types of viewports present in the layout a 3D view an extended view Property name for TypesInLayout Retrieves an array of the type of viewports present in this layout. The index of the type in the array corresponds to the viewport in the screen, with index 0 being the top left corner, and the index increasing in a clockwise direction from there. ViewPanel layout configurations Single viewport 2 vertical viewports 2 horizontal viewports 2 horizontal viewports, big on top 2 horizontal viewports, big on bottom 3 viewports, 2 vertical on left 3 viewports, 2 vertical on right 3 viewports, 2 horizontal on top 3 viewports, 2 horizontal on bottom Default layout, four quadrant viewports 4 viewports, 3 vertical on left 4 viewports, 3 vertical on right 4 viewports, 3 horizontal on top 4 viewports, 3 horizontal on bottom 1 central viewport? Command property name The configuration of the viewports in this tab. This variable defines how the viewports are laid out. Command property name Command associated with the viewport button. Delete Command property name Delete Command associated with the viewport button. Create Preset Command property name The command for creating a preset from this tab. IsActive property name Represents whether this viewport is currently active. IsLocked property name Represents whether this viewport is currently highlighted. IsLocked property name Represents whether this viewport is locked, or undeletable. IsEditing Property name. Determines whether the ViewportTab is an in editing state. The command to run to show the editing popup. Status Property name Status of viewport tab like: preset is created, preset is not created, etc The owning Viewports VM object. Represents a Workspace loader Name property name. The name of the Viewport. FullPath property name. The full file path of the Workspace root file. Identifier property name. The workspace identifier (language-independent key) Whether or not this is the Active workspace (loaded). The workspace identifier (language-independent key) Run Script options. Run script. Run Script path options. Run script path. Run Script exit path options. Run script exit path. Subsystem options. Subsystems. Command property name Loader Command parameter Command Parameter property name Loader Command parameter Command property name Delete workspace Command IsSystemWorkpace property name Whether this is a system workspace or not Equality checked for WorkspaceLoaderItems. Equality is based on FullPath and Name being equal. the item to compare true if equal Represents a Workspace's Subsystems Name property Name The name of the subsystem. Description property Name The description of the subsystem. Value property Name The value of the subsystem. Equality checked for WorkspaceLoaderItemSubsystem. Equality is based on FullPath and Name being equal. the item to compare true if equal ViewModel for Workspace Manager dialog. Default Workspaces property name Set of available workspaces. CurrentActiveWorkspace property name The Active workspace, which also corresponds to the Loaded workspace. The SaveAsNewCommand property name The command that is launched once Save As New is requested. The SaveAsDefaultCommand property name The command that is launched once Save As Default is requested. The RestoreToDefaultCommand property name The command that is launched once Restore to Default is requested. The BrowseEntryScriptCommand property name The command that is launched once Restore to Default is requested. The BrowseExitScriptCommand property name The command that is launched once Restore to Default is requested. ProcessSaveAsNewCommand Property Name The meta command that launches the Save As New interactive dialog.