Exemplo n.º 1
0
 public void LateBindInterfaceMethods(Tools provider)
 {
     m_MainMenuTools = provider.allTools.Where(t =>
     {
         return(!Tools.IsDefaultTool(t) && !HiddenTypes.Contains(t));
     }).ToList(); // Don't show tools that can't be selected/toggled
 }
Exemplo n.º 2
0
            public void ConnectInterface(object target, object userData = null)
            {
                var rayOrigin            = userData as Transform;
                var settingsMenuProvider = target as ISettingsMenuProvider;

                if (settingsMenuProvider != null)
                {
                    m_SettingsMenuProviders[new KeyValuePair <Type, Transform>(target.GetType(), rayOrigin)] = settingsMenuProvider;
                    foreach (var kvp in m_MainMenus)
                    {
                        if (rayOrigin == null || kvp.Key == rayOrigin)
                        {
                            kvp.Value.AddSettingsMenu(settingsMenuProvider);
                        }
                    }
                }

                var settingsMenuItemProvider = target as ISettingsMenuItemProvider;

                if (settingsMenuItemProvider != null)
                {
                    m_SettingsMenuItemProviders[new KeyValuePair <Type, Transform>(target.GetType(), rayOrigin)] = settingsMenuItemProvider;
                    foreach (var kvp in m_MainMenus)
                    {
                        if (rayOrigin == null || kvp.Key == rayOrigin)
                        {
                            kvp.Value.AddSettingsMenuItem(settingsMenuItemProvider);
                        }
                    }
                }

                var mainMenu = target as IMainMenu;

                if (mainMenu != null && rayOrigin != null)
                {
                    mainMenu.menuTools                 = m_MainMenuTools;
                    mainMenu.menuWorkspaces            = WorkspaceModule.workspaceTypes.Where(t => !HiddenTypes.Contains(t)).ToList();
                    mainMenu.settingsMenuProviders     = m_SettingsMenuProviders;
                    mainMenu.settingsMenuItemProviders = m_SettingsMenuItemProviders;
                    m_MainMenus[rayOrigin]             = mainMenu;
                }

                var menuOrigins = target as IUsesMenuOrigins;

                if (menuOrigins != null)
                {
                    Transform mainMenuOrigin;
                    var       proxy = Rays.GetProxyForRayOrigin(rayOrigin);
                    if (proxy != null && proxy.menuOrigins.TryGetValue(rayOrigin, out mainMenuOrigin))
                    {
                        menuOrigins.menuOrigin = mainMenuOrigin;
                        Transform alternateMenuOrigin;
                        if (proxy.alternateMenuOrigins.TryGetValue(rayOrigin, out alternateMenuOrigin))
                        {
                            menuOrigins.alternateMenuOrigin = alternateMenuOrigin;
                        }
                    }
                }

                var alternateMenu = target as IAlternateMenu;

                if (alternateMenu != null)
                {
                    AddAlternateMenu(alternateMenu, rayOrigin);
                }

                var spatialMenuProvider = target as ISpatialMenuProvider;

                if (spatialMenuProvider != null)
                {
                    SpatialMenu.AddProvider(spatialMenuProvider);
                }
            }