Пример #1
0
        /// <summary>
        /// Draws the dropdown menu for picking a property in the view model to bind to.
        /// </summary>
        private void ShowViewModelPropertyMenu(TwoWayPropertyBinding target, PropertyInfo[] bindableProperties, Type viewPropertyType, Rect position)
        {
            var selectedIndex = Array.IndexOf(
                bindableProperties.Select(p => p.ReflectedType + p.Name).ToArray(),
                target.viewModelName + target.viewModelPropertyName
                );

            var options = bindableProperties.Select(p =>
                                                    new InspectorUtils.MenuItem(
                                                        new GUIContent(p.ReflectedType + "/" + p.Name + " : " + p.PropertyType.Name),
                                                        p.PropertyType == viewPropertyType
                                                        )
                                                    ).ToArray();

            InspectorUtils.ShowCustomSelectionMenu(index =>
                                                   SetViewModelProperty(target, bindableProperties[index]), options, selectedIndex, position);
        }
Пример #2
0
        /// <summary>
        /// Draws the dropdown for selecting a method from bindableViewModelCollections
        /// </summary>
        private void ShowCollectionSelectorDropdown(CollectionBinding targetScript, PropertyInfo[] bindableViewModelCollections, Rect position)
        {
            var selectedIndex = Array.IndexOf(
                bindableViewModelCollections.Select(m => m.ReflectedType + m.Name).ToArray(),
                targetScript.viewModelName + targetScript.viewModelPropertyName
                );

            var options = bindableViewModelCollections.Select(m =>
                                                              new InspectorUtils.MenuItem(
                                                                  new GUIContent(m.ReflectedType + "/" + m.Name),
                                                                  true
                                                                  )
                                                              ).ToArray();

            InspectorUtils.ShowCustomSelectionMenu(
                index => SetViewModelProperty(targetScript, bindableViewModelCollections[index]),
                options,
                selectedIndex,
                position);
        }
Пример #3
0
        private void ShowViewModelMethodDropdown(EventBinding target, MethodInfo[] bindableViewModelMethods, Type[] viewEventArgs, Rect position)
        {
            var selectedIndex = Array.IndexOf(
                bindableViewModelMethods.Select(m => m.ReflectedType + m.Name).ToArray(),
                target.viewModelName + target.viewModelMethodName
                );

            var options = bindableViewModelMethods.Select(m =>
                                                          new InspectorUtils.MenuItem(
                                                              new GUIContent(m.ReflectedType + "/" + m.Name + "(" + ParameterInfoToString(m.GetParameters()) + ")"),
                                                              MethodMatchesSignature(m, viewEventArgs)
                                                              )
                                                          ).ToArray();

            InspectorUtils.ShowCustomSelectionMenu(
                index => SetBoundMethod(target, bindableViewModelMethods[index]),
                options,
                selectedIndex,
                position);
        }