public override void Initialize() { Tab = new ThemedTab { Text = "Devices" }; Content = new Widget { Layout = new VBoxLayout(), Nodes = { (mainToolbar = new RemoteScriptingWidgets.Toolbar()), new Widget { Layout = new HBoxLayout(), Nodes = { (devicesScrollView = new ThemedScrollView { MinMaxWidth = 300, TabTravesable = new TabTraversable() }), (deviceWidgetPlaceholder = new Widget() { Layout = new HBoxLayout() }) } } } }; RefreshMainToolbar(); Content.AddChangeWatcher( () => CompiledAssembly.Instance, _ => { RefreshMainToolbar(); } ); void SelectDeviceBasedOnMousePosition() { devicesScrollView.SetFocus(); var index = (devicesScrollView.Content.LocalMousePosition().Y / rowHeight).Floor(); if (index < devices.Count) { SelectDevice(index); } } var mouseDownGesture = new ClickGesture(0); mouseDownGesture.Began += SelectDeviceBasedOnMousePosition; devicesScrollView.Gestures.Add(mouseDownGesture); devicesScrollView.Content.CompoundPresenter.Insert(0, new SyncDelegatePresenter <Widget>(w => { w.PrepareRendererState(); Renderer.DrawRect( 0, rowHeight * selectedDeviceIndex, w.Width, rowHeight * (selectedDeviceIndex + 1), devicesScrollView.IsFocused() ? Theme.Colors.SelectedBackground : Theme.Colors.SelectedInactiveBackground ); })); }
public override void Initialize() { Tab = new ThemedTab { Text = "Assembly" }; RemoteScriptingWidgets.Toolbar toolbar; Content = new Widget { Layout = new VBoxLayout(), Nodes = { (toolbar = new RemoteScriptingWidgets.Toolbar()), (assemblyBuilderLog = new RemoteScriptingWidgets.TextView()) } }; toolbar.Content.Nodes.AddRange( buildAssemblyButton = new ToolbarButton("Build Assembly") { Clicked = () => BuildAssembly(requiredBuildGame: false) }, buildGameAndAssemblyButton = new ToolbarButton("Build Game and Assembly") { Clicked = () => BuildAssembly() } ); var preferences = ProjectPreferences.Instance; var arePreferencesCorrect = !string.IsNullOrEmpty(preferences.ScriptsPath) && !string.IsNullOrEmpty(preferences.ScriptsAssemblyName) && !string.IsNullOrEmpty(preferences.RemoteStoragePath); if (!arePreferencesCorrect) { buildAssemblyButton.Enabled = false; buildGameAndAssemblyButton.Enabled = false; SetStatusAndLog("Preferences is invalid."); } }