public void SetData(DwarfListItem data, DwarfListMode mode) { // store it m_data = data; m_mode = mode; // measure it using (var g = this.CreateGraphics()) this.ClientSize = DrawTip(g, false).ToSize(); }
public string GetCaption(DwarfListMode mode) { switch (mode) { case DwarfListMode.Dwarf: return this.Dwarf.Name; case DwarfListMode.Labor: return this.Labor.Caption; default: return "?"; } }
private void DrawDwarfList(Graphics g, string header, IEnumerable<DwarfListItem> dwarves, DwarfListMode mode, Brush brush, bool draw, ref int y, ref float width) { SizeF measured; var list = dwarves.OrderBy(d => Tuple.Create(-d.SkillInfo.Level, d.GetCaption(mode))).ToList(); // header y += LAYOUT_PADDING; measured = g.MeasureString(header, m_font_bold_small); if (draw) g.DrawString(header, m_font_bold_small, brush, LAYOUT_PADDING, y); y += (int)Math.Ceiling(measured.Height); // no data? if (list.Count < 1) { measured = g.MeasureString(MESSAGE_NONE, m_font_italic); if (draw) g.DrawString(MESSAGE_NONE, m_font_italic, brush, LAYOUT_PADDING * 2, y); y += (int)Math.Ceiling(measured.Height); } // draw the list foreach (var item in list) DrawSkillBar(g, item, brush, item.GetCaption(mode), draw, ref y, ref width); }