public Belt(Widget parent) : base(parent) { slots = new List <BeltSlot>(SlotCount); int w = 0; int h = 0; var layout = new GridLayout(); for (int i = 0; i < SlotCount; i++) { int index = i; int keyIndex = (i + 1) % 10; var slot = new BeltSlot(this); slot.Label = keyIndex.ToString(); slot.Click += OnSlotClick; slot.Drop += OnSlotDrop; slot.ItemDrop += OnSlotItemDrop; slots.Add(slot); int column = layout.ColumnCount; layout.AddWidget(slot, 0, column); layout.SetColumnWidth(column, slot.Width - 1); w += slot.Width - 1; h = Math.Max(h, slot.Height); Host.Hotkeys.Register(Key.Number1 + keyIndex - 1, () => Click.Raise(new BeltClickEvent(index, MouseButton.Left, 0))); } layout.Spacing = -1; layout.UpdateGeometry(0, 0, 0, 0); this.Resize(w, h); }
public MenuGrid(Widget parent) : base(parent) { buttons = new MenuButton[PageSize]; root = new MenuNode(); root.Children.CollectionChanged += (s, e) => UpdateButtons(); // create buttons var layout = new GridLayout(); for (int i = 0; i < PageSize; i++) { var button = new MenuButton(this); button.Click += OnButtonClick; buttons[i] = button; int row = i / PageRows; int col = i % PageRows; layout.AddWidget(button, row, col); layout.SetColumnWidth(col, cellImage.Width); } layout.Spacing = -1; layout.UpdateGeometry(0, 0, 0, 0); this.Resize(cellImage.Width * PageColumns, cellImage.Height * PageRows); Current = root; }
public EscapeWindow(Widget parent) : base(parent) { btnLogout = new Button(this, 80); btnLogout.Text = "Logout"; btnLogout.Click += () => Logout.Raise(); btnExit = new Button(this, 80); btnExit.Text = "Exit"; btnExit.Click += () => Exit.Raise(); var layout = new GridLayout(); layout.Spacing = 5; layout.AddWidget(btnLogout, 0, 0); layout.AddWidget(btnExit, 1, 0); layout.UpdateGeometry(0, 0, 0, 0); Pack(); }
private void AddSkill(string name, string title) { var attr = session.Attributes[name]; var image = new Image(tabAttr); image.Drawable = App.Resources.Get <Drawable>("gfx/hud/charsh/" + name); var lblName = new Label(tabAttr, Fonts.LabelText); lblName.Text = title + ":"; var lblValue = new Label(tabAttr, Fonts.LabelText); lblValue.AutoSize = true; var skill = new SkillAttributeBinding(attr, lblValue); skill.CostChanged += UpdateCost; attrBindings.Add(skill); var btnMinus = new ImageButton(tabAttr); btnMinus.Image = MinusUp; btnMinus.PressedImage = MinusDown; btnMinus.Click += () => skill.Add(-1); btnMinus.MouseWheel += arg => skill.Add(Math.Sign(arg.Delta)); var btnPlus = new ImageButton(tabAttr); btnPlus.Image = PlusUp; btnPlus.PressedImage = PlusDown; btnPlus.Click += () => skill.Add(1); btnPlus.MouseWheel += arg => skill.Add(Math.Sign(arg.Delta)); int row = skillLayout.RowCount; skillLayout.AddWidget(image, row, 0); skillLayout.AddWidget(lblName, row, 1); skillLayout.AddWidget(lblValue, row, 2); skillLayout.AddWidget(btnMinus, row, 3); skillLayout.AddWidget(btnPlus, row, 4); }
private void AddBelief(string name, string left, string right, bool inv) { var widget = new BeliefWidget(tabBeliefs, left, right); widget.SliderMoved += (delta) => HandleBeliefChange(name, delta, inv); beliefWidgets.Add(widget); var label = new Label(tabBeliefs, Fonts.LabelText); label.TextAlign = TextAlign.Center; label.Text = string.Format("{0} / {1}", left.ToTitleCase(), right.ToTitleCase()); label.Resize(widget.Width, label.Height); var attr = session.Attributes[name]; attrBindings.Add(new BeliefBinding(attr, widget, inv)); int row = beliefLayout.RowCount; beliefLayout.AddWidget(label, row, 0); beliefLayout.AddWidget(widget, row + 1, 0); }
private void AddBase(string name, string title) { var image = new Image(tabAttr); image.Drawable = App.Resources.Get <Drawable>("gfx/hud/charsh/" + name); var lblName = new Label(tabAttr, Fonts.LabelText); lblName.Text = title + ":"; var lblValue = new Label(tabAttr, Fonts.LabelText); lblValue.AutoSize = true; int row = baseLayout.RowCount; baseLayout.AddWidget(image, row, 0); baseLayout.AddWidget(lblName, row, 1); baseLayout.AddWidget(lblValue, row, 2); var attr = session.Attributes[name]; attrBindings.Add(new BaseAttributeBinding(attr, lblValue)); }
public void AddOutput(Item item) { var inv = new InventoryWidget(this); inv.SetInventorySize(1, 1); var itemWidget = new ItemWidget(inv, null); itemWidget.Item = item; int column = outputLayout.ColumnCount; outputLayout.AddWidget(inv, 0, column); outputLayout.SetColumnWidth(column, 31); outputLayout.UpdateGeometry(50, 65, 0, 0); outputs.Add(inv); }
private void Update() { var removed = new List <int>(widgets.Keys); var layout = new GridLayout(); int i = 0; foreach (var buff in session.Buffs) { if (!buff.IsMajor) { continue; } BuffWidget widget; if (widgets.TryGetValue(buff.Id, out widget)) { removed.Remove(buff.Id); } else { widget = new BuffWidget(this); widgets[buff.Id] = widget; } widget.Buff = buff; layout.SetColumnWidth(i, cframe.Width); layout.AddWidget(widget, 0, i); if (++i >= 5) { break; } } foreach (var id in removed) { var widget = widgets[id]; widget.Dispose(); widget.Remove(); widgets.Remove(id); } layout.Spacing = Spacing; layout.UpdateGeometry(0, 0, 0, 0); }
private void InitAttributesTab() { tabAttr = new Container(this); tabAttr.Resize(400, 300); tabs.Add(tabAttr); // LP var lblCost = new Label(tabAttr, Fonts.LabelText); lblCost.Text = "Cost:"; lblCostValue = new Label(tabAttr, Fonts.LabelText); lblCostValue.Text = "0"; var lblExp = new Label(tabAttr, Fonts.LabelText); lblExp.Text = "Learning Points:"; lblExpValue = new Label(tabAttr, Fonts.LabelText); lblExpValue.Text = "0"; var lblExpMod = new Label(tabAttr, Fonts.LabelText); lblExpMod.Text = "Learning Ability:"; lblExpModValue = new Label(tabAttr, Fonts.LabelText); var expMod = session.Attributes["expmod"]; attrBindings.Add(new ExpModBinding(expMod, lblExpModValue)); var btnBuy = new Button(tabAttr, 75); btnBuy.Text = "Buy"; btnBuy.Click += BuySkills; var lpLayout = new GridLayout(); lpLayout.SetColumnWidth(0, 90); lpLayout.AddWidget(lblCost, 0, 0); lpLayout.AddWidget(lblCostValue, 0, 1); lpLayout.AddWidget(lblExp, 1, 0); lpLayout.AddWidget(lblExpValue, 1, 1); lpLayout.AddWidget(lblExpMod, 2, 0); lpLayout.AddWidget(lblExpModValue, 2, 1); lpLayout.AddWidget(btnBuy, 3, 0); lpLayout.UpdateGeometry(210, 220, 0, 0); // Base Attributes var lblBase = new Label(tabAttr, Fonts.LabelText); lblBase.Move(10, 10); lblBase.Text = "Base Attributes:"; AddBase("str", "Strength"); AddBase("agil", "Agility"); AddBase("intel", "Intelligence"); AddBase("cons", "Constitution"); AddBase("perc", "Perception"); AddBase("csm", "Charisma"); AddBase("dxt", "Dexterity"); AddBase("psy", "Psyche"); baseLayout.UpdateGeometry(10, 40, 0, 0); // Skills var lblSkill = new Label(tabAttr, Fonts.LabelText); lblSkill.Move(210, 10); lblSkill.Text = "Skill Values:"; AddSkill("unarmed", "Unarmed Combat"); AddSkill("melee", "Melee Combat"); AddSkill("ranged", "Marksmanship"); AddSkill("explore", "Exploration"); AddSkill("stealth", "Stealth"); AddSkill("sewing", "Sewing"); AddSkill("smithing", "Smithing"); AddSkill("carpentry", "Carpentry"); AddSkill("cooking", "Cooking"); AddSkill("farming", "Farming"); AddSkill("survive", "Survival"); skillLayout.UpdateGeometry(210, 40, 0, 0); // Food foodMeter = new FoodMeter(tabAttr); foodMeter.Move(10, 180); }