Esempio n. 1
0
        public override void Draw(Graphics drawer, Bitmap[] images, WatchState state)
        {
            AmPm?.Draw(drawer, images, state);

            var hours        = AmPm == null ? state.Time.Hour : state.Time.Hour % 12;
            var drawingOrder = DrawingOrder ?? 0x1234;

            foreach (var position in DrawingOrderIterator.Iterate(drawingOrder))
            {
                switch (position)
                {
                case DrawingOrderPosition.HourTens:
                    Hours?.Tens?.Draw(drawer, images, hours % 100 / 10);
                    break;

                case DrawingOrderPosition.HourOnes:
                    Hours?.Ones?.Draw(drawer, images, hours % 10);
                    break;

                case DrawingOrderPosition.MinuteTens:
                    Minutes?.Tens?.Draw(drawer, images, state.Time.Minute % 100 / 10);
                    break;

                case DrawingOrderPosition.MinuteOnes:
                    Minutes?.Ones?.Draw(drawer, images, state.Time.Minute % 10);
                    break;

                default:
                    Logger.Warn("Not supported element {0} in DrawingOrder value", position);
                    break;
                }
            }

            Seconds?.Draw(drawer, images, state.Time.Second);
        }