private static void DrawExpanded(Rect position, SerializedProperty property)
        {
            var val = property.quaternionValue;

            using (var cc = Disposables.ChangeCheck()) {
                using (Disposables.SetIndent(0))
                    val.eulerAngles = EditorGUI.Vector3Field(position.Edit(RectEdit.SetHeight(SingleLine), RectEdit.SubtractWidth(2)), GUIContent.none, val.eulerAngles);

                if (cc.changed)
                {
                    property.quaternionValue = val;
                }
            }
        }
 private static void DrawNormal(Rect position, SerializedProperty property)
 {
     using (Disposables.SetIndent(0)) {
         using (Disposables.LabelSetWidth(LABEL_WIDTH)) {
             using (var scope = Disposables.RectHorizontalScope(4, position)) {
                 property.Next(true);
                 EditorGUI.PropertyField(scope.GetNext(RectEdit.SubtractWidth(2)), property, X_Content);
                 property.Next(true);
                 EditorGUI.PropertyField(scope.GetNext(RectEdit.SubtractWidth(2)), property, Y_Content);
                 property.Next(true);
                 EditorGUI.PropertyField(scope.GetNext(RectEdit.SubtractWidth(2)), property, Z_Content);
                 property.Next(true);
                 EditorGUI.PropertyField(scope.GetNext(RectEdit.SubtractWidth(2)), property, W_Content);
             }
         }
     }
 }
            public override void DrawTab(FoCsWindow <AdvancedUnitySettingsWindow> owner)
            {
                //if(storage == null)
                //	storage = new UnityReorderableListStorage(owner);

                using (Disposables.HorizontalScope(GUI.skin.box))
                    EditorGUILayout.LabelField(TabName);

                using (Disposables.HorizontalScope()) {
                    DrawSpace(LEFT_BORDER * 0.5f);
                    Search = FoCsGUI.Layout.TextField(SearchGuiContent, Search);
                }

                using (Disposables.LabelAddWidth(EXTRA_LABEL_WIDTH)) {
                    using (Disposables.SetIndent(1)) {
                        //if(handlerControllers.IsNullOrEmpty())
                        //{
                        //	handlerControllers = new HandlerController[Assets.Length];
                        //
                        //	for(var i = 0; i < handlerControllers.Length; i++)
                        //		handlerControllers[i] = new HandlerController();
                        //}

                        for (var i = 0; i < Assets.Length; i++)
                        {
                            var asset = Assets[i];
                            //var handlerController = handlerControllers[i];
                            asset.Update();

                            //handlerController.VerifyIPropertyLayoutHandlerArrayNoObject(storage);
                            //handlerController.VerifyHandlingDictionary(asset);

                            using (Disposables.HorizontalScope()) {
                                DrawSpace(LEFT_BORDER);

                                using (var scrollViewScope = Disposables.ScrollViewScope(vector2, true)) {
                                    vector2 = scrollViewScope.scrollPosition;

                                    using (var changeCheckScope = Disposables.ChangeCheck()) {
                                        foreach (var property in asset.Properties())
                                        {
                                            if (Search.IsNullOrEmpty())
                                            {
                                                FoCsGUI.Layout.PropertyField(property);
                                            }
                                            else if (property.name.ToLower().Contains(Search.ToLower()))
                                            {
                                                FoCsGUI.Layout.PropertyField(property);
                                            }
                                        }

                                        if (changeCheckScope.changed)
                                        {
                                            asset.ApplyModifiedProperties();
                                        }
                                    }
                                }

                                DrawSpace(RIGHT_BORDER);
                            }
                        }
                    }
                }

                DrawFooter();
            }