AssetBundleGraph.NodeGUIEditor.DrawPlatformSelector C# (CSharp) Method

DrawPlatformSelector() private method

private DrawPlatformSelector ( NodeGUI node ) : bool
node NodeGUI
return bool
        private bool DrawPlatformSelector(NodeGUI node)
        {
            BuildTargetGroup g = currentEditingGroup;
            bool editGroupChanged = false;

            EditorGUI.BeginChangeCheck();
            using (new EditorGUILayout.HorizontalScope()) {
                var choosenIndex = -1;
                for (var i = 0; i < NodeGUIUtility.platformButtons.Length; i++) {
                    var onOffBefore = NodeGUIUtility.platformButtons[i].targetGroup == currentEditingGroup;
                    var onOffAfter = onOffBefore;

                    GUIStyle toolbarbutton = new GUIStyle("toolbarbutton");

                    if(NodeGUIUtility.platformButtons[i].targetGroup == BuildTargetUtility.DefaultTarget) {
                        onOffAfter = GUILayout.Toggle(onOffBefore, NodeGUIUtility.platformButtons[i].ui, toolbarbutton);
                    } else {
                        var width = Mathf.Max(32f, toolbarbutton.CalcSize(NodeGUIUtility.platformButtons[i].ui).x);
                        onOffAfter = GUILayout.Toggle(onOffBefore, NodeGUIUtility.platformButtons[i].ui, toolbarbutton, GUILayout.Width( width ));
                    }

                    if (onOffBefore != onOffAfter) {
                        choosenIndex = i;
                        break;
                    }
                }

                if (EditorGUI.EndChangeCheck()) {
                    g = NodeGUIUtility.platformButtons[choosenIndex].targetGroup;
                }
            }

            if (g != currentEditingGroup) {
                currentEditingGroup = g;
                editGroupChanged = true;
                GUI.FocusControl(string.Empty);
            }

            return editGroupChanged;
        }