void inventoryGrid_ItemClicked(MyGuiControlGrid control, MyGuiControlGrid.EventArgs args) { Debug.Assert(control == m_inventoryGrid); if (CurrentAssemblerMode == AssemblerMode.Assembling) { return; } var gridItem = control.GetItemAt(args.ItemIndex); if (gridItem == null) { return; } var item = (MyPhysicalInventoryItem)gridItem.UserData; var blueprint = MyDefinitionManager.Static.TryGetBlueprintDefinitionByResultId(item.Content.GetId()); if (blueprint != null) { var amount = MyInput.Static.IsAnyShiftKeyPressed() ? 100 : MyInput.Static.IsAnyCtrlKeyPressed() ? 10 : 1; EnqueueBlueprint(blueprint, amount); } }
private void RecreateControls(bool contructor) { m_toolbarItemsGrid = new MyGuiControlGrid() { OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM, VisualStyle = MyGuiControlGridStyleEnum.Toolbar, ColumnsCount = MyToolbarComponent.CurrentToolbar.SlotCount + 1, RowsCount = 1 }; m_toolbarItemsGrid.ItemDoubleClicked += grid_ItemDoubleClicked; m_toolbarItemsGrid.ItemClickedWithoutDoubleClick += grid_ItemClicked; m_selectedItemLabel = new MyGuiControlLabel(); m_colorVariantPanel = new MyGuiControlPanel(size: new Vector2(0.1f, 0.025f)); m_colorVariantPanel.BackgroundTexture = MyGuiConstants.TEXTURE_GUI_BLANK; m_contextMenu = new MyGuiControlContextMenu(); m_contextMenu.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM; m_contextMenu.Deactivate(); m_contextMenu.ItemClicked += contextMenu_ItemClicked; Elements.Add(m_colorVariantPanel); Elements.Add(m_selectedItemLabel); Elements.Add(m_toolbarItemsGrid); Elements.Add(m_contextMenu); m_colorVariantPanel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_selectedItemLabel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_toolbarItemsGrid.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_contextMenu.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM; RefreshInternals(); }
private void grid_ItemDoubleClicked(MyGuiControlGrid sender, MyGuiControlGrid.EventArgs eventArgs) { RemoveToolbarItem(eventArgs.ColumnIndex); if (m_shownToolbar.IsValidIndex(eventArgs.ColumnIndex)) { m_shownToolbar.ActivateItemAtSlot(eventArgs.ColumnIndex); } }
private void StartDragging(MyDropHandleType dropHandlingType, MyGuiControlGrid gridControl, ref MyGuiControlGrid.EventArgs args) { m_dragAndDropInfo = new MyDragAndDropInfo(); m_dragAndDropInfo.Grid = gridControl; m_dragAndDropInfo.ItemIndex = args.ItemIndex; var draggingItem = m_dragAndDropInfo.Grid.GetItemAt(m_dragAndDropInfo.ItemIndex); m_dragAndDrop.StartDragging(dropHandlingType, args.Button, draggingItem, m_dragAndDropInfo, includeTooltip: false); }
private void OnGridMouseOverIndexChanged(MyGuiControlGrid myGuiControlGrid, MyGuiControlGrid.EventArgs eventArgs) { if (m_gridBlocks.Visible) { MyGuiControlGrid.Item gridItem = m_gridBlocks.MouseOverItem ?? m_gridBlocks.SelectedItem; if (gridItem == null) { m_blockInfoList.InitControls(new MyGuiControlBase[] { }); return; } GridItemUserData userData = gridItem.UserData as GridItemUserData; if (userData == null) { return; } MyObjectBuilder_ToolbarItemCubeBlock itemData = userData.ItemData as MyObjectBuilder_ToolbarItemCubeBlock; if (itemData == null) { return; } MyDefinitionBase definition; if (MyDefinitionManager.Static.TryGetDefinition(itemData.DefinitionId, out definition)) { var group = MyDefinitionManager.Static.GetDefinitionGroup((definition as MyCubeBlockDefinition).BlockPairName); if (MyCubeBuilder.Static.CubeBuilderState.CubeSizeMode == MyCubeSize.Small && MyCubeBuilder.Static.IsCubeSizeAvailable(group.Small)) { m_blockInfoList.InitControls(GenerateBlockInfos(group.Small, ref m_blockInfoStyle)); } else if (MyCubeBuilder.Static.CubeBuilderState.CubeSizeMode == MyCubeSize.Large && MyCubeBuilder.Static.IsCubeSizeAvailable(group.Large)) { m_blockInfoList.InitControls(GenerateBlockInfos(group.Large, ref m_blockInfoStyle)); } else { bool blockSizeLarge = MyCubeBuilder.Static.CubeBuilderState.CubeSizeMode == MyCubeSize.Large; m_blockInfoList.InitControls(new MyGuiControlBase[] { GenerateSizeInfoLabel(blockSizeLarge), GenerateSizeNotAvailableText(blockSizeLarge) }); } } } else { m_blockInfoList.InitControls(new MyGuiControlBase[] { }); } }
void inventoryGrid_MouseOverIndexChanged(MyGuiControlGrid control, MyGuiControlGrid.EventArgs args) { Debug.Assert(control == m_inventoryGrid); if (CurrentAssemblerMode == AssemblerMode.Assembling) { return; } RefreshMaterialsPreview(); }
private MyGuiControlGrid MakeInventoryGrid(MyInventory inventory) { var grid = new MyGuiControlGrid(); grid.Name = "InventoryGrid"; grid.VisualStyle = MyGuiControlGridStyleEnum.Inventory; grid.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_TOP; grid.ColumnsCount = 7; grid.RowsCount = 1; grid.ShowTooltipWhenDisabled = true; grid.UserData = inventory; return(grid); }
private void RecreateControls(bool contructor) { m_toolbarItemsGrid = new MyGuiControlGrid() { OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM, VisualStyle = MyGuiControlGridStyleEnum.Toolbar, ColumnsCount = MyToolbarComponent.CurrentToolbar.SlotCount + 1, RowsCount = 1 }; m_toolbarItemsGrid.ItemDoubleClicked += grid_ItemDoubleClicked; m_toolbarItemsGrid.ItemClickedWithoutDoubleClick += grid_ItemClicked; m_selectedItemLabel = new MyGuiControlLabel(); m_colorVariantPanel = new MyGuiControlPanel(size: new Vector2(0.1f, 0.025f)); m_colorVariantPanel.BackgroundTexture = MyGuiConstants.TEXTURE_GUI_BLANK; //grid size image (left from toolbar) m_gridSize = new MyGuiControlImage(size: m_toolbarItemsGrid.ItemSize * 0.6f); m_gridSize.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_gridSize.SetTexture(MyGuiConstants.TEXTURE_ICON_LARGE_BLOCK); m_gridSize.Visible = false; m_gridSize.BackgroundTexture = MyGuiConstants.TEXTURE_GUI_BLANK; Elements.Add(m_gridSize); //grid size label (above grid size image) m_gridSizeLabel = new MyGuiControlLabel(); m_gridSizeLabel.Text = ""; m_gridSizeLabel.Visible = false; m_gridSizeLabel.Size = new Vector2(m_toolbarItemsGrid.ItemSize.X * 3f, m_toolbarItemsGrid.ItemSize.Y / 2f); m_gridSizeLabel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_gridSizeLabel.BackgroundTexture = null; m_gridSizeLabel.TextScale = 0.75f; Elements.Add(m_gridSizeLabel); m_contextMenu = new MyGuiControlContextMenu(); m_contextMenu.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM; m_contextMenu.Deactivate(); m_contextMenu.ItemClicked += contextMenu_ItemClicked; Elements.Add(m_colorVariantPanel); Elements.Add(m_selectedItemLabel); Elements.Add(m_toolbarItemsGrid); Elements.Add(m_contextMenu); m_colorVariantPanel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_selectedItemLabel.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_toolbarItemsGrid.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_RIGHT_AND_VERTICAL_BOTTOM; m_contextMenu.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_BOTTOM; RefreshInternals(); }
void queueGrid_ItemClicked(MyGuiControlGrid control, MyGuiControlGrid.EventArgs args) { Debug.Assert(control == m_queueGrid); // Changing queue in auto-disassembling mode is forbidden. if (CurrentAssemblerMode == AssemblerMode.Disassembling && m_selectedAssembler.RepeatEnabled) { return; } if (args.Button == MySharedButtonsEnum.Secondary) { m_selectedAssembler.RemoveQueueItemRequest(args.ItemIndex); } }
void blueprintsGrid_ItemClicked(MyGuiControlGrid control, MyGuiControlGrid.EventArgs args) { Debug.Assert(control == m_blueprintsGrid); //if(CurrentAssemblerMode == AssemblerMode.Assembling) { var item = control.GetItemAt(args.ItemIndex); if (item == null) { return; } var blueprint = (MyBlueprintDefinitionBase)item.UserData; var amount = MyInput.Static.IsAnyShiftKeyPressed() ? 100 : MyInput.Static.IsAnyCtrlKeyPressed() ? 10 : 1; EnqueueBlueprint(blueprint, amount); } }
private void grid_ItemClicked(MyGuiControlGrid sender, MyGuiControlGrid.EventArgs eventArgs) { if (eventArgs.Button == MySharedButtonsEnum.Secondary) { int slot = eventArgs.ColumnIndex; var toolbar = MyToolbarComponent.CurrentToolbar; MyToolbarItem item = toolbar.GetSlotItem(slot); if (item == null) { return; } //right clicks in multifunctional items should trigger their menus (if they have more than 0 options) if (item is MyToolbarItemActions) { var actionList = (item as MyToolbarItemActions).PossibleActions(ShownToolbar.ToolbarType); if (UseContextMenu && actionList.Count > 0) { m_contextMenu.CreateNewContextMenu(); foreach (var action in actionList) { m_contextMenu.AddItem(action.Name, icon: action.Icon, userData: action.Id); } m_contextMenu.AddItem(MyTexts.Get(MySpaceTexts.BlockAction_RemoveFromToolbar)); m_contextMenu.Enabled = true; m_contextMenuItemIndex = toolbar.SlotToIndex(slot); } else { RemoveToolbarItem(eventArgs.ColumnIndex); } } else { RemoveToolbarItem(eventArgs.ColumnIndex); } } if (m_shownToolbar.IsValidIndex(eventArgs.ColumnIndex)) { m_shownToolbar.ActivateItemAtSlot(eventArgs.ColumnIndex, true); } }
private static void MakeScreenWithIconGrid() { var screen = new TmpScreen(); var grid = new MyGuiControlGrid(); screen.Controls.Add(grid); grid.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER; grid.VisualStyle = MyGuiControlGridStyleEnum.Inventory; grid.RowsCount = 12; grid.ColumnsCount = 18; foreach (var definition in MyDefinitionManager.Static.GetAllDefinitions()) { grid.Add(new MyGuiControlGrid.Item( icon: definition.Icon, toolTip: definition.DisplayNameText)); } MyGuiSandbox.AddScreen(screen); }
void queueGrid_ItemDragged(MyGuiControlGrid control, MyGuiControlGrid.EventArgs args) { StartDragging(MyDropHandleType.MouseRelease, control, ref args); }
public void Init(IMyGuiControlsParent controlsParent, MyCubeGrid grid) { if (grid == null) { ShowError(MySpaceTexts.ScreenTerminalError_ShipNotConnected, controlsParent); return; } grid.RaiseGridChanged(); m_assemblerKeyCounter = 0; m_assemblersByKey.Clear(); foreach (var block in grid.GridSystems.TerminalSystem.Blocks) { var assembler = block as MyAssembler; if (assembler == null) { continue; } if (!assembler.HasLocalPlayerAccess()) { continue; } m_assemblersByKey.Add(m_assemblerKeyCounter++, assembler); } m_controlsParent = controlsParent; m_terminalSystem = grid.GridSystems.TerminalSystem; m_blueprintsArea = (MyGuiControlScrollablePanel)controlsParent.Controls.GetControlByName("BlueprintsScrollableArea"); m_queueArea = (MyGuiControlScrollablePanel)controlsParent.Controls.GetControlByName("QueueScrollableArea"); m_inventoryArea = (MyGuiControlScrollablePanel)controlsParent.Controls.GetControlByName("InventoryScrollableArea"); m_blueprintsBgPanel = controlsParent.Controls.GetControlByName("BlueprintsBackgroundPanel"); m_blueprintsLabel = controlsParent.Controls.GetControlByName("BlueprintsLabel"); m_comboboxAssemblers = (MyGuiControlCombobox)controlsParent.Controls.GetControlByName("AssemblersCombobox"); m_blueprintsGrid = (MyGuiControlGrid)m_blueprintsArea.ScrolledControl; m_queueGrid = (MyGuiControlGrid)m_queueArea.ScrolledControl; m_inventoryGrid = (MyGuiControlGrid)m_inventoryArea.ScrolledControl; m_materialsList = (MyGuiControlComponentList)controlsParent.Controls.GetControlByName("MaterialsList"); m_repeatCheckbox = (MyGuiControlCheckbox)controlsParent.Controls.GetControlByName("RepeatCheckbox"); m_slaveCheckbox = (MyGuiControlCheckbox)controlsParent.Controls.GetControlByName("SlaveCheckbox"); m_disassembleAllButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("DisassembleAllButton"); m_controlPanelButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("ControlPanelButton"); m_inventoryButton = (MyGuiControlButton)controlsParent.Controls.GetControlByName("InventoryButton"); { var assemblingButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("AssemblingButton"); var disassemblingButton = (MyGuiControlRadioButton)controlsParent.Controls.GetControlByName("DisassemblingButton"); assemblingButton.Key = (int)AssemblerMode.Assembling; disassemblingButton.Key = (int)AssemblerMode.Disassembling; m_modeButtonGroup.Add(assemblingButton); m_modeButtonGroup.Add(disassemblingButton); } foreach (var entry in m_assemblersByKey) { if (entry.Value.IsFunctional == false) { m_incompleteAssemblerName.Clear(); m_incompleteAssemblerName.AppendStringBuilder(entry.Value.CustomName); m_incompleteAssemblerName.AppendStringBuilder(MyTexts.Get(MySpaceTexts.Terminal_BlockIncomplete)); m_comboboxAssemblers.AddItem(entry.Key, m_incompleteAssemblerName); } else { m_comboboxAssemblers.AddItem(entry.Key, entry.Value.CustomName); } } m_comboboxAssemblers.ItemSelected += Assemblers_ItemSelected; m_comboboxAssemblers.SelectItemByIndex(0); m_dragAndDrop = new MyGuiControlGridDragAndDrop(MyGuiConstants.DRAG_AND_DROP_BACKGROUND_COLOR, MyGuiConstants.DRAG_AND_DROP_TEXT_COLOR, 0.7f, MyGuiConstants.DRAG_AND_DROP_TEXT_OFFSET, true); controlsParent.Controls.Add(m_dragAndDrop); m_dragAndDrop.DrawBackgroundTexture = false; m_dragAndDrop.ItemDropped += dragDrop_OnItemDropped; RefreshBlueprints(); Assemblers_ItemSelected(); RegisterEvents(); if (m_assemblersByKey.Count == 0) { ShowError(MySpaceTexts.ScreenTerminalError_NoAssemblers, controlsParent); } }
public static void DoubleClickItem(this MyGuiControlGrid grid) { grid.CallMethod <object>("DoubleClickItem"); }
private void OnGridMouseOverIndexChanged(MyGuiControlGrid myGuiControlGrid, MyGuiControlGrid.EventArgs eventArgs) { if (m_gridBlocks.Visible) { MyGuiControlGrid.Item gridItem = m_gridBlocks.MouseOverItem ?? m_gridBlocks.SelectedItem; if (gridItem == null) { m_blockInfoList.InitControls(new MyGuiControlBase[] { }); return; } GridItemUserData userData = gridItem.UserData as GridItemUserData; if (userData == null) { return; } MyObjectBuilder_ToolbarItemCubeBlock itemData = userData.ItemData as MyObjectBuilder_ToolbarItemCubeBlock; if (itemData == null) { return; } MyDefinitionBase definition; if (MyDefinitionManager.Static.TryGetDefinition(itemData.DefinitionId, out definition)) { var group = MyDefinitionManager.Static.GetDefinitionGroup((definition as MyCubeBlockDefinition).BlockPairName); List <MyGuiControlBase> blockInfos = null; if (group.Small != null) { var blockInfosSmall = GenerateBlockInfos(group.Small, ref m_blockInfoStyle); if (blockInfosSmall != null) { if (blockInfos == null) { blockInfos = new List <MyGuiControlBase>(); } blockInfos.AddArray(blockInfosSmall); } } if (group.Large != null) { var blockInfosLarge = GenerateBlockInfos(group.Large, ref m_blockInfoStyle); if (blockInfosLarge != null) { if (blockInfos == null) { blockInfos = new List <MyGuiControlBase>(); } blockInfos.AddArray(blockInfosLarge); } } if (blockInfos != null) { m_blockInfoList.InitControls(blockInfos); } else { m_blockInfoList.InitControls(new MyGuiControlBase[] { }); } //else //{ // bool blockSizeLarge = MyCubeBuilder.Static.CubeBuilderState.CubeSizeMode == MyCubeSize.Large; // m_blockInfoList.InitControls(new MyGuiControlBase[] // { // GenerateSizeInfoLabel(blockSizeLarge), // GenerateSizeNotAvailableText(blockSizeLarge) // }); //} } } else { m_blockInfoList.InitControls(new MyGuiControlBase[] { }); } }
public bool IsToolbarGrid(MyGuiControlGrid grid) { return(m_toolbarItemsGrid == grid); }
public static void ClickItem(this MyGuiControlGrid grid) { grid.CallMethod <object>("TryTriggerSingleClickEvent"); }
private void OnSelectedItemChanged(MyGuiControlGrid arg1, MyGuiControlGrid.EventArgs arg2) { OnGridMouseOverIndexChanged(arg1, arg2); }
void queueGrid_MouseOverIndexChanged(MyGuiControlGrid control, MyGuiControlGrid.EventArgs args) { Debug.Assert(control == m_queueGrid); RefreshMaterialsPreview(); }
public static IEnumerable <TResult> GridItemUserDataOfType <TResult>(this MyGuiControlGrid source) { return(source.Items.OfType <MyGuiGridItem>().Select(i => i.UserData).OfType <TResult>()); }