public BasicInfoUiThing(CharacterSheet characterSheet) { this.characterSheet = characterSheet; panel = new TableLayoutPanel(); panel.Dock = DockStyle.Fill; panel.AutoSize = true; panel.AutoSizeMode = AutoSizeMode.GrowAndShrink; panel.ColumnCount = 4; Label label = GurpenatorRow.createLabel(); label.Text = "Name:"; panel.Controls.Add(label); nameTextBox = new TextBox(); nameTextBox.Width = 167; nameTextBox.Text = characterSheet.Character.Name; nameTextBox.TextChanged += nameTextBox_TextChanged; panel.Controls.Add(nameTextBox); Label pointsTotalLabelLabel = GurpenatorRow.createLabel(); pointsTotalLabelLabel.Text = "Total:"; panel.Controls.Add(pointsTotalLabelLabel); pointsTotalLabel = GurpenatorRow.createLabel(); pointsTotalLabel.TextAlign = ContentAlignment.MiddleLeft; panel.Controls.Add(pointsTotalLabel); character_changed(); characterSheet.Character.changed += character_changed; }
public override GurpenatorUiElement createUi(CharacterSheet characterSheet) { return new BasicInfoUiThing(characterSheet); }
public override GurpenatorUiElement createUi(CharacterSheet characterSheet) { return new GurpenatorTable(characterSheet, this); }
public override GurpenatorUiElement createUi(CharacterSheet characterSheet) { return new GurpenatorLayoutPanel(title, orientation, characterSheet, (from m in members select m.createUi(characterSheet)).ToList()); }
protected Control maybeContainInGroupBox(string title, TableLayoutPanel panel, CharacterSheet characterSheet) { if (title == null) return panel; GroupBox groupBox = new GroupBox(); groupBox.Dock = DockStyle.Fill; groupBox.AutoSize = true; groupBox.AutoSizeMode = AutoSizeMode.GrowAndShrink; Action updateText = delegate() { IEnumerable<PurchasedProperty> properties = getTables().Select((table) => table.layout.names.Select((name) => characterSheet.Character.getPurchasedProperty(name))).chain(); int cost = (from property in properties where property.nonDefault select property.getCost()).Sum(); groupBox.Text = title + " (" + cost + ")"; }; updateText(); characterSheet.Character.changed += updateText; groupBox.Controls.Add(panel); return groupBox; }
public abstract GurpenatorUiElement createUi(CharacterSheet characterSheet);
public GurpenatorTable(CharacterSheet characterSheet, TraitList layout) { this.characterSheet = characterSheet; this.layout = layout; table = new TableLayoutPanel(); table.Dock = DockStyle.Fill; table.AutoSizeMode = AutoSizeMode.GrowAndShrink; table.AutoSize = true; rootControl = maybeContainInGroupBox(layout.title, table, characterSheet); refreshRows(); }
public GurpenatorLayoutPanel(string title, Orientation orientation, CharacterSheet characterSheet, List<GurpenatorUiElement> members) { this.members = members; TableLayoutPanel panel = new TableLayoutPanel(); panel.Dock = DockStyle.Fill; panel.AutoSize = true; panel.AutoSizeMode = AutoSizeMode.GrowAndShrink; panel.ColumnCount = 1; panel.RowCount = 1; panel.GrowStyle = orientation == Orientation.Vertical ? TableLayoutPanelGrowStyle.AddRows : TableLayoutPanelGrowStyle.AddColumns; foreach (GurpenatorUiElement element in members) panel.Controls.Add(element.RootControl); panel.Controls.Add(GurpenatorRow.createFiller()); rootControl = maybeContainInGroupBox(title, panel, characterSheet); }