private void toolStrip_Refresh(object sender, EventArgs e) { DFHackReply<ListUnitsOut> reply; using (var client = new DFHackClient()) { client.Open(); reply = client.ListUnits(); } var dwarves = new ObjectBindingList<Dwarf>(reply.Data.ValueList .Where(u => u.Race == GameData.World.RaceId) .Select(u => new Dwarf(u))); GameData.UpdateLabors(dwarves); grid_dwarves.DataSource = dwarves; grid_labors.DataSource = new ObjectBindingList<DwarfLabor>(GameData.GetLabors()); ApplyFilters(); }
private void ToolStrip_NewEncounter(object sender, EventArgs e) { TabPage page; DataGridView grid; ObjectBindingList<InitiativeTableEntry> entries; string name = ""; // get a name for the new encounter if (InputDialog.ShowDialog(this, "New Encounter", "Encounter name?", ref name) != DialogResult.OK) return; // check the name is a name if (string.IsNullOrEmpty(name) || name.Trim().Length < 2) { MessageBox.Show(this, "Encounter names must be at least 2 characters long", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // create entry list entries = new ObjectBindingList<InitiativeTableEntry>(); entries.ApplySort(m_sorts); // create the grid grid = new DataGridView(); grid.Name = "grid"; GridHelper.Initialize(grid, true); grid.Dock = DockStyle.Fill; grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; grid.MultiSelect = false; grid.SelectionMode = DataGridViewSelectionMode.FullRowSelect; GridHelper.AddColumn(grid, "Initiative", "Init"); GridHelper.AddColumn(grid, "InitiativeBonus", " "); GridHelper.AddColumn(grid, new DataGridViewImageColumn(), "Image", " "); GridHelper.AddColumn(grid, "Description", "Description"); GridHelper.AddColumn(grid, "AC", "AC"); GridHelper.AddColumn(grid, "Fortitude", "Fort"); GridHelper.AddColumn(grid, "Reflex", "Ref"); GridHelper.AddColumn(grid, "Will", "Will"); grid.Columns["Initiative"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grid.Columns["InitiativeBonus"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grid.Columns["InitiativeBonus"].DefaultCellStyle.Format = "(+0)"; grid.Columns["InitiativeBonus"].DefaultCellStyle.ForeColor = Color.Gray; grid.Columns["AC"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grid.Columns["Fortitude"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grid.Columns["Reflex"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grid.Columns["Will"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grid.Columns["Description"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; GridHelper.DisableClickToSort(grid, false); grid.CurrentCellChanged += new EventHandler(grid_CurrentCellChanged); grid.DataSource = entries; // create the tab page page = new TabPage(name); page.Controls.Add(grid); page.Tag = new EncounterStatus(); // add it to the tab control encounter_tabs.TabPages.Add(page); // refresh some stuff UpdateButtons(); }