public virtual void Initialize(DevUILuaExpression luaExpression, DevUIView view) { base.Initialize(); this.view = view; this.luaExpression = luaExpression; labelOutput.text = luaExpression.name; valueOutput.text = luaExpression.Value; //Value listener luaExpression.valueProperty.Subscribe(e => { valueOutput.text = e; }).AddTo(this); //Setup buttons if (luaExpression.createdDynamically) { deleteButton.onClick.AddListener(Delete); } else { IsEditable = false; } luaCommandInput.text = luaExpression.LuaExpression; nameInput.text = luaExpression.name; luaExpression.luaExpressionProperty.Subscribe(e => { luaCommandInput.text = e; }).AddTo(this); intervalSlider.value = luaExpression.updateRateInSeconds; luaExpression.SetInterval(intervalSlider.value); }
public virtual void Initialize(string label, Action callback, DevUILUAButton luaButton, DevUIView view) { base.Initialize(); this.luaButton = luaButton; this.view = view; labelOutput.text = label; executeButton.onClick.AddListener(callback.Invoke); //Setup buttons if (luaButton.createdDynamically) { deleteButton.onClick.AddListener(Delete); } else { IsEditable = false; } luaCommandInput.text = luaButton.LuaCommand; nameInput.text = luaButton.name; luaButton.luaCommandProperty.Subscribe(e => { luaCommandInput.text = e; }).AddTo(this); }
/// <summary> /// Sets up a new ui view and adds ui elements if there are any /// </summary> /// <param name="devUIView">The dev UI view data</param> public void SpawnUIView(DevUIView devUIView) { //Spawn the tab GameObject uiViewTabGO = Instantiate(uiViewTabPrefab) as GameObject; uiViewTabGO.transform.SetParent(uiViewTabbar.transform, false); uiViewTabGO.name = "tab_" + devUIView.Name; //Spawn the view GameObject uiViewGO = Instantiate(uiViewPrefab) as GameObject; uiViewGO.transform.SetParent(uiViewsContainer, false); //Connect tab and view GMTab uiViewTab = uiViewTabGO.GetComponent <GMTab>(); uiViewTab.content = uiViewGO; uiViewTabbar.RegisterTab(uiViewTab); UIViewController uiViewController = uiViewGO.GetComponent <UIViewController>(); uiViewController.Initialize(devUIView, uiViewTab); uiViews.Add(devUIView, uiViewController); }
protected override void AfterBind() { base.AfterBind(); //Load existing ReactiveCollection <DevUIView> devUIViews = _devUiService.GetRxViews(); foreach (DevUIView uiView in devUIViews) { SpawnUIView(uiView); } //listen to new _devUiService.GetRxViews().ObserveAdd().Subscribe(evt => { // spawn View DevUIView view = evt.Value; SpawnUIView(view); }).AddTo(this); //listen to remove _devUiService.GetRxViews().ObserveRemove().Subscribe(evt => { RemoveView(evt.Value); }).AddTo(this); //Button browseViewsButton.onClick.AddListener(Browse); //Refresh refreshViewsButton.onClick.AddListener(Refresh); //Pick from Scene pickObjectFromSceneButton.onClick.AddListener(PickObjectFromScene); }
void RemoveView(DevUIView view) { if (uiViews.ContainsKey(view)) { //Remove tab uiViewTabbar.RemoveTab(uiViews[view].myTab, true); //Destroy uiView Destroy(uiViews[view].gameObject); uiViews.Remove(view); } }
public void Initialize(DevUIView uiView, GMTab uiViewTab) { myView = uiView; myTab = uiViewTab; //Set name UpdateName(myView.Name); //Check if we want to have extension buttons extensionButtonGroup.SetActive(uiView.extensionAllowed); //Button events if (uiView.extensionAllowed) { addLuaCommandButton.onClick.AddListener(AddLuaButton); addLuaExpressionButton.onClick.AddListener(AddLuaExpression); } applyAllButton.onClick.AddListener(ApplyAll); applyAllAndCloseButton.onClick.AddListener(ApplyAllAndClose); //Setup buttons if this UI Views is created dynamically from script. If this is not the case deactivate the buttons to rename or archive the ui view. if (uiView.createdDynamically) { saveNameButton.onClick.AddListener( () => { UpdateName(renameInputField.text); ToggleNamingMode(false); } ); renameButton.onClick.AddListener( () => ToggleNamingMode(true) ); renameInputField.onValueChanged.AddListener(ValidateName); archiveButton.onClick.AddListener(ArchiveView); } else { renameButton.gameObject.SetActive(false); archiveButton.gameObject.SetActive(false); } //Setup ui elements foreach (DevUIElement uiElement in uiView.uiElements) { SpawnUIElement(uiElement); } //Add listener _eventService.OnEvent <Service.DevUIService.Events.NewUIElement>().Where(u => u.view == myView).Subscribe(evt => { if (evt.elem is DevUILuaExpression) { SpawnLuaExpression((DevUILuaExpression)evt.elem, evt.inEditMode); } else if (evt.elem is DevUILUAButton) { SpawnLuaButton((DevUILUAButton)evt.elem, evt.inEditMode); } else { SpawnUIElement(evt.elem); } }).AddTo(this); uiView.uiElements.ObserveRemove().Subscribe(e => { RemoveUIElement(e.Value); }).AddTo(this); ToggleNamingMode(false); }