You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mapbox-sdk/Unity/Editor/PropertyDrawers/StyleSearchAttributeDrawer.cs

58 lines
1.9 KiB

1 year ago
namespace Mapbox.Editor
{
using UnityEngine;
using UnityEditor;
using Mapbox.Unity.Utilities;
using Mapbox.Unity;
/// <summary>
/// Custom property drawer for style searching. <para/>
/// Includes a search window to enable listing of styles associated with a username.
/// Requires a Mapbox token be set for the project.
/// </summary>
[CustomPropertyDrawer(typeof(StyleSearchAttribute))]
public class StyleSearchAttributeDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
EditorGUILayout.HelpBox("Style Id and Modified date is required for optimized tileset feature. You can copy&paste those values from Styles page under your Mapbox Account or use the search feature to fetch them automatically.", MessageType.Info);
EditorGUI.indentLevel++;
var id = property.FindPropertyRelative("Id");
var name = property.FindPropertyRelative("Name");
var modified = property.FindPropertyRelative("Modified");
id.stringValue = EditorGUILayout.TextField("Style Id: ", id.stringValue);
name.stringValue = EditorGUILayout.TextField("Name: ", name.stringValue);
modified.stringValue = EditorGUILayout.TextField("Modified: ", modified.stringValue);
EditorGUILayout.BeginHorizontal();
if (string.IsNullOrEmpty(MapboxAccess.Instance.Configuration.AccessToken))
{
GUI.enabled = false;
GUILayout.Button("Need Mapbox Access Token");
GUI.enabled = true;
}
else
{
if (GUILayout.Button("Search"))
{
StyleSearchWindow.Open(property);
}
}
if (GUILayout.Button("Clear", GUILayout.Width(100)))
{
id.stringValue = "";
name.stringValue = "";
modified.stringValue = "";
}
EditorGUILayout.EndHorizontal();
EditorGUI.indentLevel--;
}
}
}