void OnGUI()
        {
            if (map == null)
            {
                Close();
                EditorGUIUtility.ExitGUI();
                return;
            }

            EditorGUILayout.HelpBox("Download tiles and bundle them with application. Please check server license information for terms of use of tiles.", MessageType.Info);
            EditorGUILayout.Separator();
            EditorGUILayout.HelpBox("Using current server: " + map.tileServer.ToString() + "\nResources path: " + cachePath, MessageType.Info);

            EditorGUI.BeginChangeCheck();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Zoom Level Min", GUILayout.Width(120));
            zoomLevelMin = EditorGUILayout.IntSlider(zoomLevelMin, WMSK.TILE_MIN_ZOOM_LEVEL, WMSK.TILE_MAX_ZOOM_LEVEL);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Zoom Level Max", GUILayout.Width(120));
            zoomLevelMax = EditorGUILayout.IntSlider(zoomLevelMax, WMSK.TILE_MIN_ZOOM_LEVEL, WMSK.TILE_MAX_ZOOM_LEVEL);
            EditorGUILayout.EndHorizontal();
            if (zoomLevelMax < zoomLevelMin)
            {
                zoomLevelMax = zoomLevelMin;
            }

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Concurrent Downloads", GUILayout.Width(120));
            concurrentDownloads = EditorGUILayout.IntSlider(concurrentDownloads, 1, MAX_CONCURRENT_DOWNLOADS);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("World Area", GUILayout.Width(120));
            worldArea = (RestrictMode)EditorGUILayout.EnumPopup(worldArea);
            EditorGUILayout.EndHorizontal();

            if (worldArea == RestrictMode.Restricted)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("   Country", GUILayout.Width(120));
                countryIndex = EditorGUILayout.Popup(countryIndex, countryNames);
                if (GUILayout.Button("Pick LatLon Rect"))
                {
                    PickCountryLatLon();
                }
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("   Latitude Min", GUILayout.Width(120));
                latMin = EditorGUILayout.Slider(latMin, -90, 90);
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("   Longitude Min", GUILayout.Width(120));
                lonMin = EditorGUILayout.Slider(lonMin, -180, 180);
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("   Latitude Max", GUILayout.Width(120));
                latMax = EditorGUILayout.Slider(latMax, -90, 90);
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("   Longitude Max", GUILayout.Width(120));
                lonMax = EditorGUILayout.Slider(lonMax, -180, 180);
                EditorGUILayout.EndHorizontal();

                if (latMax < latMin)
                {
                    latMax = latMin;
                }
                if (lonMax < lonMin)
                {
                    lonMax = lonMin;
                }

                EditorGUILayout.Separator();
                Rect space = EditorGUILayout.BeginVertical();
                GUILayout.Space(Mathf.Min(160, EditorGUIUtility.currentViewWidth));
                EditorGUILayout.EndVertical();
                EditorGUI.DrawPreviewTexture(space, GetWorldTexture(), null, ScaleMode.ScaleToFit);
            }

            if (EditorGUI.EndChangeCheck())
            {
                numTiles = GetNumberOfTiles();
            }

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Tile Count", GUILayout.Width(120));
            EditorGUILayout.LabelField(numTiles.ToString());
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Estimated Size", GUILayout.Width(120));
            if (status == DownloadStatus.Estimating)
            {
                EditorGUILayout.LabelField("Sampling... " + ((int)storageSize).ToString() + " MB", GUILayout.Width(120));
                if (GUILayout.Button("Cancel", GUILayout.Width(80)))
                {
                    StopOperation();
                }
            }
            else
            {
                EditorGUILayout.LabelField(storageSize > 0 ? ((int)storageSize / 2).ToString() + "-" + ((int)storageSize + 1).ToString() + " MB" : "-", GUILayout.Width(120));
                if (GUILayout.Button("Estimate", GUILayout.Width(80)))
                {
                    StartEstimate();
                }
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Downloaded tiles", GUILayout.Width(120));
            EditorGUILayout.LabelField(downloadedTilesCount.ToString() + " (" + ((float)downloadedTilesSize / ONE_MEGABYTE).ToString("F2") + " MB)", GUILayout.Width(120));
            GUI.enabled = downloadedTilesCount > 0;
            if (GUILayout.Button("Delete", GUILayout.Width(80)))
            {
                if (EditorUtility.DisplayDialog("Delete Downloaded Tiles", "Are you sure you want to delete " + numTiles + " tiles from " + cachePath + "?", "Yes", "Cancel"))
                {
                    DeleteResourcesTiles();
                }
            }
            GUI.enabled = true;
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.BeginHorizontal();
            if (status == DownloadStatus.Downloading)
            {
                ShowProgressBar(progressTileCount / (float)numTiles);
                if (GUILayout.Button("Stop", GUILayout.Width(60)))
                {
                    StopOperation();
                }
            }
            else
            {
                EditorGUILayout.HelpBox("This operation can take some time. Cancel at any time.", MessageType.Warning);
                if (GUILayout.Button("Start", GUILayout.Width(60)))
                {
                    StartDownload();
                }
            }
            if (GUILayout.Button("Close", GUILayout.Width(60)))
            {
                Close();
            }
        }
Пример #2
0
 public void MeasureRestrictModeSet(RestrictMode restrictMode)
 {
     _MeasureTool.RestrictModeSet(restrictMode);
     MenuUpdate();
 }
Пример #3
0
 public void RestrictModeSet(RestrictMode restrictMode)
 {
     _MeasurementLineRestrictMode = restrictMode;
 }