Ejemplo n.º 1
0
        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 "?";
     }
 }
Ejemplo n.º 3
0
        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);
        }