/// <summary>
        /// Create this dialog.
        /// </summary>
        public static DateTimeDialog Create(IModal owner, DateTime time, Vector2 position)
        {
            DateTimeDialog dialog = DateTimeDialog.CreateInstance <DateTimeDialog>();

            float halfWidth = WIDTH / 2;

            float x = position.x - halfWidth;
            float y = position.y;

            Rect rect = new Rect(x, y, 0, 0);

            dialog.owner             = owner;
            dialog.time              = time;
            dialog.position          = rect;
            dialog.titleContent.text = "Date Time";

            DateTime month = new DateTime(1, 1, 1);

            for (int i = 0; i < 12; i++)
            {
                dialog.months[i] = month.ToString("MMMM");
                month            = month.AddMonths(1);
            }

            dialog.ShowAsDropDown(rect, new Vector2(WIDTH, HEIGHT));

            return(dialog);
        }
示例#2
0
 public void OnEntityContextMenu(Entity ent)
 {
     if (ImGui.Selectable("Create prefab"))
     {
         _activeModal = new CreatePrefabModal(Universe, ent);
     }
 }
示例#3
0
    public IModal LoadModal(Type modalType)
    {
        IModal modal = Activator.CreateInstance(modalType) as IModal;

        modals.Add(modal);
        return(modal);
    }
示例#4
0
 public void hideActiveModal()
 {
     if (activeModal != null)
     {
         activeModal.hide();
     }
     activeModal = null;
 }
示例#5
0
 internal static void Add(IModal modal)
 {
     _openedModals.Add(modal);
     Debug.WriteLine($"ModalsManager: Opened {modal.GetHashCode()}.");
     if (!isEventRegistered)
     {
         SystemNavigationManager.GetForCurrentView().BackRequested += ModalsManager_BackRequested;
         isEventRegistered = true;
     }
 }
示例#6
0
        //[MenuItem("Window/Toolbox %e")]
        static void InitToolbox()
        {
            if (Exist <Toolbox>())
            {
                return;
            }

            IModal box = focusedWindow as IModal;

            if (box != null)
            {
                box.ModalRequest(false);
            }
        }
示例#7
0
        public void TestInitialize()
        {
            _scheduler = Substitute.For <IScheduler>();
            _scheduler.Schedule(Arg.Any <Func <bool?> >()).Returns(c => c.Arg <Func <bool?> >()());

            _windowManager = Substitute.For <IWindowManager>();
            _modalWindows  = Substitute.For <IModalWindows>();
            _modal         = Substitute.For <IModal>();

            var builder = new ContainerBuilder();

            builder.Register(c => new WrappedModal(_modal)).AsSelf().SingleInstance();
            _container = builder.Build();
        }
示例#8
0
        /// <summary>
        /// Create a toolbox for this IModal.
        /// </summary>
        public static Toolbox Create(IModal owner, string title, List <DescriptionPair> pairs, Vector2 position, string search)
        {
            Toolbox toolbox = Toolbox.CreateInstance <Toolbox>();

            toolbox.search                       = search;
            toolbox.view                         = new TreeView();
            toolbox.view.visibility              = toolbox.IsItemVisible;
            toolbox.view.AlwaysSelect            = true;
            toolbox.view.CanDrag                 = false;
            toolbox.view.CanDrop                 = false;
            toolbox.view.CanDropOnSelf           = false;
            toolbox.view.CanMultiSelect          = false;
            toolbox.view.HiddenCanBeSelected     = false;
            toolbox.view.SelectionDoubleClicked += toolbox.OnDoubleClick;

            toolbox.owner             = owner;
            toolbox.titleContent.text = title;

            for (int i = 0; i < pairs.Count; i++)
            {
                if (pairs[i].Value == null)
                {
                    continue;
                }

                if (pairs[i].Description != null)
                {
                    toolbox.AddItem(pairs[i].Value, pairs[i].Description.Name, pairs[i].Description.Comment, pairs[i].Description.Icon);
                }
                else
                {
                    toolbox.AddItem(pairs[i].Value, pairs[i].ToString(), "", null);
                }
            }

            toolbox.view.Sort();
            toolbox.view.BuildVisibility();

            float halfWidth = WIDTH / 2;

            float x = position.x - halfWidth;
            float y = position.y;

            Rect rect = new Rect(x, y, 0, 0);

            toolbox.position = rect;
            toolbox.ShowAsDropDown(rect, new Vector2(WIDTH, HEIGHT));

            return(toolbox);
        }
示例#9
0
        public static GKToyMakerChapterInfo Create(IModal owner, Vector2 pos, float width, float height, string title, GKToyBaseOverlord overlord, GameObject obj)
        {
            instance = CreateInstance <GKToyMakerChapterInfo>();

            instance._owner   = owner;
            instance._title   = title;
            instance.overlord = overlord;
            instance.obj      = obj;
            Rect rect = new Rect(pos.x, pos.y, 0, 0);

            instance.position = rect;
            instance.ShowAsDropDown(rect, new Vector2(width, height + MARGIN));

            return(instance);
        }
示例#10
0
        public bool displayModalIfExists(string modalName)
        {
            IModal modalToDisplay = requestModal(modalName);

            if (modalToDisplay == null)
            {
                return(false);
            }
            if (activeModal != null)
            {
                activeModal.hide();
            }
            activeModal = modalToDisplay;
            activeModal.display();
            return(true);
        }
示例#11
0
 private void modalSetup()
 {
     foreach (Modal m in modals)
     {
         if (modalLookup.ContainsKey(m.modalname))
         {
             Debug.Log("There are two Modals with this name: " + m.modalname + ". The second one will be ignored");
             continue;
         }
         GameObject go = Instantiate(m.modalprefab) as GameObject;
         go.transform.SetParent(transform, false);
         IModal modal = go.GetComponent <IModal>();
         modal.modalObject = go;
         modalLookup.Add(m.modalname, modal);
     }
 }
示例#12
0
        void Start()
        {
            IModal modal = ModalManager.instance.requestModal(modalName);

            if (modal != null && feedbackText != null)
            {
                modal.ModifyModal(() => { feedbackText.text = "Canceled"; }, false);
                modal.ModifyModal("A Modal is a prefab whose Text & Title as well as it's behaviour to User Choices can be modified at Runtime",
                                  () => {
                    feedbackText.text = "Accepted";
                    ModalManager.instance.hideActiveModal();
                },
                                  () => {
                    feedbackText.text = "Refused";
                    ModalManager.instance.hideActiveModal();
                },
                                  false);
            }
        }
示例#13
0
        private Task <Page> GetPageFromModal(IModal modal)
        {
            switch (modal)
            {
            case BasicModal basicModal:
                return(Task.FromResult(SetBasicPage(basicModal)));

            case NavigationModal navigationModal:
                return(SetNavigationPageAsync(navigationModal));

            case TabbedModal tabbedModal:
                return(SetTabbedModalAsync(tabbedModal, new BasicModal()));

            case MasterDetailModal masterDetailModal:
                return(SetMasterDetailModalAsync(masterDetailModal, new BasicModal()));

            default:
                throw new NavigationException("Navigation service doesn't support given modal");
            }
        }
示例#14
0
        public static VisualBlockFileNameWindow Create(IModal owner, string title, string[] labels, string[] texts, Vector2 position)
        {
            VisualBlockFileNameWindow rename = VisualBlockFileNameWindow.CreateInstance <VisualBlockFileNameWindow>();

            rename.owner        = owner;
            rename.titleContent = new GUIContent(title);
            rename.labels       = labels;
            rename.texts        = texts;

            float halfWidth = WIDTH / 2;

            float x = position.x - halfWidth;
            float y = position.y;

            float height = HEIGHT + (labels.Length * FIELD_HEIGHT);

            Rect rect = new Rect(x, y, 0, 0);

            rename.position = rect;
            rename.ShowAsDropDown(rect, new Vector2(WIDTH, height));

            return(rename);
        }
示例#15
0
        public async Task <bool> ChangeDetailAsync(IModal modal)
        {
            if (Application.Current.MainPage == null)
            {
                return(false);
            }

            var masterDetailPage = GetLastMasterDetailPage(null);

            if (masterDetailPage == null)
            {
                return(false);
            }
            //set detail
            switch (modal)
            {
            case NavigationModal navigationModal:
                var navigationPage = await SetNavigationPageAsync(navigationModal);

                masterDetailPage.Detail = navigationPage;
                return(true);

            case BasicModal basicModal:
                var basicPage = SetBasicPage(basicModal);
                masterDetailPage.Detail = basicPage;
                return(true);

            case TabbedModal tabbedModal:
                var tabbedPage = await SetTabbedModalAsync(tabbedModal, new MasterDetailModal());

                masterDetailPage.Detail = tabbedPage;
                return(true);

            default:
                return(false);
            }
        }
 public CreationDialog()
 {
     _modal = Modal.Get(WindowLocator);      //Don't declare new variable
 }
示例#17
0
 public CreationDialog()
 {
     IModal _Modal = Modal.Get(WindowLocator);
 }
示例#18
0
 /// <summary>
 /// method to Initialize Navigation service in app class where we can write how we will begin app navigation
 /// </summary>
 /// <param name="modal"></param>
 /// <returns></returns>
 protected static void SetHomePage(IModal modal)
 {
     _navigationService = LocatorService.Instance.Resolve <INavigationService>();
     _navigationService.SetMainModalAsync(modal).SafeFireAndForget();
 }
示例#19
0
 public ModalTagHelper(IModal modal)
 {
     this.modal = modal;
 }
示例#20
0
 public static void Add(IModal modal)
 {
     Items.Add(modal);
 }
示例#21
0
 public WrappedModal(IModal modal)
 {
     _modal = modal;
 }
示例#22
0
文件: Ui.cs 项目: polytronicgr/larx
 public void CloseModals()
 {
     modal         = null;
     State.Focused = null;
     page.Children.RemoveAll(x => x.Component.Key == UiKeys.Modal.Key);
 }
示例#23
0
 /// <summary>
 /// Create a toolbox for this IModal.
 /// </summary>
 public static Toolbox Create(IModal owner, string title, List <DescriptionPair> pairs, Vector2 position)
 {
     return(Create(owner, title, pairs, position, ""));
 }
示例#24
0
        public async Task SetMainModalAsync(IModal modal)
        {
            var page = await GetPageFromModal(modal);

            Application.Current.MainPage = page;
        }
示例#25
0
 internal static void Remove(IModal modal)
 {
     _openedModals.Remove(modal);
     Debug.WriteLine($"ModalsManager: Closed {modal.GetHashCode()}.");
 }
示例#26
0
        public async Task PushModalAsync(IModal modal)
        {
            var page = await GetPageFromModal(modal);

            await InternalPushModalAsync(page);
        }
示例#27
0
        public void OnGUI(string[] initcmd)
        {
            // Docking setup
            //var vp = ImGui.GetMainViewport();
            var wins = ImGui.GetWindowSize();
            var winp = ImGui.GetWindowPos();

            winp.Y += 20.0f;
            wins.Y -= 20.0f;
            ImGui.SetNextWindowPos(winp);
            ImGui.SetNextWindowSize(wins);
            ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f);
            ImGui.PushStyleVar(ImGuiStyleVar.WindowBorderSize, 0.0f);
            ImGui.PushStyleVar(ImGuiStyleVar.WindowPadding, new Vector2(0.0f, 0.0f));
            ImGui.PushStyleVar(ImGuiStyleVar.ChildBorderSize, 0.0f);
            ImGuiWindowFlags flags = ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove;

            flags |= ImGuiWindowFlags.MenuBar | ImGuiWindowFlags.NoDocking;
            flags |= ImGuiWindowFlags.NoBringToFrontOnFocus | ImGuiWindowFlags.NoNavFocus;
            flags |= ImGuiWindowFlags.NoBackground;
            //ImGui.Begin("DockSpace_MapEdit", flags);
            ImGui.PopStyleVar(4);
            var dsid = ImGui.GetID("DockSpace_MapEdit");

            ImGui.DockSpace(dsid, new Vector2(0, 0));

            // Keyboard shortcuts
            if (EditorActionManager.CanUndo() && InputTracker.GetControlShortcut(Key.Z))
            {
                EditorActionManager.UndoAction();
            }
            if (EditorActionManager.CanRedo() && InputTracker.GetControlShortcut(Key.Y))
            {
                EditorActionManager.RedoAction();
            }
            if (!ViewportUsingKeyboard && !ImGui.GetIO().WantCaptureKeyboard)
            {
                if (InputTracker.GetControlShortcut(Key.D) && _selection.IsSelection())
                {
                    var action = new CloneMapObjectsAction(Universe, RenderScene, _selection.GetFilteredSelection <MapEntity>().ToList(), true);
                    EditorActionManager.ExecuteAction(action);
                }
                if (InputTracker.GetKeyDown(Key.Delete) && _selection.IsSelection())
                {
                    var action = new DeleteMapObjectsAction(Universe, RenderScene, _selection.GetFilteredSelection <MapEntity>().ToList(), true);
                    EditorActionManager.ExecuteAction(action);
                }
                if (InputTracker.GetKeyDown(Key.W))
                {
                    Gizmos.Mode = Gizmos.GizmosMode.Translate;
                }
                if (InputTracker.GetKeyDown(Key.E))
                {
                    Gizmos.Mode = Gizmos.GizmosMode.Rotate;
                }

                // Use home key to cycle between gizmos origin modes
                if (InputTracker.GetKeyDown(Key.Home))
                {
                    if (Gizmos.Origin == Gizmos.GizmosOrigin.World)
                    {
                        Gizmos.Origin = Gizmos.GizmosOrigin.BoundingBox;
                    }
                    else if (Gizmos.Origin == Gizmos.GizmosOrigin.BoundingBox)
                    {
                        Gizmos.Origin = Gizmos.GizmosOrigin.World;
                    }
                }

                // F key frames the selection
                if (InputTracker.GetKeyDown(Key.F))
                {
                    var         selected = _selection.GetFilteredSelection <Entity>();
                    bool        first    = false;
                    BoundingBox box      = new BoundingBox();
                    foreach (var s in selected)
                    {
                        if (s.RenderSceneMesh != null)
                        {
                            if (!first)
                            {
                                box   = s.RenderSceneMesh.GetBounds();
                                first = true;
                            }
                            else
                            {
                                box = BoundingBox.Combine(box, s.RenderSceneMesh.GetBounds());
                            }
                        }
                    }
                    if (first)
                    {
                        Viewport.FrameBox(box);
                    }
                }

                // Render settings
                if (InputTracker.GetControlShortcut(Key.Number1))
                {
                    RenderScene.DrawFilter = Scene.RenderFilter.MapPiece | Scene.RenderFilter.Object | Scene.RenderFilter.Character | Scene.RenderFilter.Region;
                }
                else if (InputTracker.GetControlShortcut(Key.Number2))
                {
                    RenderScene.DrawFilter = Scene.RenderFilter.Collision | Scene.RenderFilter.Object | Scene.RenderFilter.Character | Scene.RenderFilter.Region;
                }
                else if (InputTracker.GetControlShortcut(Key.Number3))
                {
                    RenderScene.DrawFilter = Scene.RenderFilter.Collision | Scene.RenderFilter.Navmesh | Scene.RenderFilter.Object | Scene.RenderFilter.Character | Scene.RenderFilter.Region;
                }
                CFG.Current.LastSceneFilter = RenderScene.DrawFilter;
            }

            // Parse select commands
            string propSearchKey = null;

            if (initcmd != null && initcmd[0] == "propsearch")
            {
                if (initcmd.Length > 1)
                {
                    propSearchKey = initcmd[1];
                }
            }

            ImGui.SetNextWindowSize(new Vector2(300, 500), ImGuiCond.FirstUseEver);
            ImGui.SetNextWindowPos(new Vector2(20, 20), ImGuiCond.FirstUseEver);

            System.Numerics.Vector3 clear_color = new System.Numerics.Vector3(114f / 255f, 144f / 255f, 154f / 255f);
            //ImGui.Text($@"Viewport size: {Viewport.Width}x{Viewport.Height}");
            //ImGui.Text(string.Format("Application average {0:F3} ms/frame ({1:F1} FPS)", 1000f / ImGui.GetIO().Framerate, ImGui.GetIO().Framerate));

            Viewport.OnGui();

            SceneTree.OnGui();
            if (MapStudioNew.FirstFrame)
            {
                ImGui.SetNextWindowFocus();
            }
            PropEditor.OnGui(_selection.GetSingleFilteredSelection <Entity>(), "mapeditprop", Viewport.Width, Viewport.Height);
            DispGroupEditor.OnGui(AssetLocator.Type);
            PropSearch.OnGui(propSearchKey);

            // Not usable yet
            //NavMeshEditor.OnGui(AssetLocator.Type);

            ResourceManager.OnGuiDrawTasks(Viewport.Width, Viewport.Height);
            ResourceManager.OnGuiDrawResourceList();

            if (_activeModal != null)
            {
                if (_activeModal.IsClosed)
                {
                    _activeModal.OpenModal();
                }
                _activeModal.OnGui();
                if (_activeModal.IsClosed)
                {
                    _activeModal = null;
                }
            }
        }
示例#28
0
文件: Ui.cs 项目: polytronicgr/larx
 public void ShowModal(IModal modal)
 {
     this.modal = modal;
     page.Children.Add(new Child(DockPosition.Center, modal.Component));
 }
示例#29
0
 public void RemoveModal(IModal modal)
 {
     modals.Remove(modal);
 }