private static void RenderWidgetOutline(WidgetBase widget) { var contentArea = widget.GetContentArea(); Tig.ShapeRenderer2d.DrawRectangleOutline( new Vector2(contentArea.X, contentArea.Y), new Vector2(contentArea.X + contentArea.Width, contentArea.Y + contentArea.Height), PackedLinearColorA.White ); }
private bool HandleWidgetMessage(MessageWidgetArgs msg) { // Determine where inside the widget the user clicked. var contentArea = _slotWidget.GetContentArea(); var relPos = new Point(msg.x - contentArea.X, msg.y - contentArea.Y); var currentItem = CurrentItem; switch (msg.widgetEventType) { case TigMsgWidgetEvent.Exited: UiSystems.CharSheet.Help.ClearHelpText(); break; case TigMsgWidgetEvent.Clicked: { if (currentItem == null) { return(false); } if (UiSystems.CharSheet.Looting.IsIdentifying) { return(false); } if (UiSystems.CharSheet.State == CharInventoryState.CastingSpell) { return(false); } UiSystems.CharSheet.Inventory.DraggedObject = currentItem; var texturePath = currentItem.GetInventoryIconPath(); var iconSize = _slotWidget.GetSize(); iconSize.Height -= 4; iconSize.Width -= 4; Tig.Mouse.SetDraggedIcon(texturePath, new Point(-relPos.X + 4, -relPos.Y + 4), iconSize); return(false); } case TigMsgWidgetEvent.MouseReleased: if (UiSystems.CharSheet.Looting.IsIdentifying) { if (currentItem == null || GameSystems.Item.IsIdentified(currentItem) || GameSystems.Party.GetPartyMoney() < 10000) { return(false); } GameSystems.Party.RemovePartyMoney(0, 100, 0, 0); currentItem.SetItemFlag(ItemFlag.IDENTIFIED, true); } else { // Shift+Click will show extra info about an item if (AllowShowInfo && (Tig.Keyboard.IsKeyPressed(VirtualKey.VK_LSHIFT) || Tig.Keyboard.IsKeyPressed(VirtualKey.VK_RSHIFT)) && GameSystems.MapObject.HasLongDescription(currentItem)) { UiSystems.CharSheet.ShowItemDetailsPopup(currentItem, ActingCritter); } UiSystems.CharSheet.Inventory.DraggedObject = null; Tig.Mouse.ClearDraggedIcon(); } return(false); case TigMsgWidgetEvent.MouseReleasedAtDifferentButton: var droppedOn = Globals.UiManager.GetWidgetAt(msg.x, msg.y); if (droppedOn != null) { var mouseMsg = new Message(new MessageMouseArgs(msg.x, msg.y, 0, MouseEventFlag.LeftReleased)); _slotWidget.HandleMessage(mouseMsg); } UiSystems.CharSheet.Inventory.DraggedObject = null; Tig.Mouse.ClearDraggedIcon(); break; } return(true); }