Esempio n. 1
0
        void DrawScale(Canvas canvas, MotoRect rect)
        {
            //if (MoonAge == MoonAges.Full & FaceStyle == FaceStyles.Moon)
            if (MoonAge == MoonAges.Full)
            {
                return;
            }

            canvas.DrawPath(scalePath, scalePaint);

            #region graph gray mm = 46~59

            int minute = NextFullMoon.Minute;

            if (minute >= 46)
            {
                scaleGrayPath.Reset();

                float startAngle = scaleStartAngle + (55 - minute) * 6;
                if (startAngle < scaleStartAngle)
                {
                    startAngle = scaleStartAngle;
                }

                float sweepAngle = 30;
                if (minute <= 49)
                {
                    sweepAngle = (minute - 45) * 6;
                }
                else if (minute >= 56)
                {
                    sweepAngle = (60 - minute) * 6;
                }

                scaleGrayPath.AddArc(scaleRectF, startAngle, sweepAngle);
                canvas.DrawPath(scaleGrayPath, scaleGrayPaint);
            }

            #endregion

            canvas.DrawTextOnPath(
                NextFullMoon.ToString(FORMAT_HHMM, ci),
                scaleTextPath, 0, 0, scaleTextPaint);
        }
Esempio n. 2
0
        void DrawReminder(Canvas canvas, MotoRect rect)
        {
            DateTime now       = WatchfaceUtility.ConvertToDateTime(Calendar);
            int      totalMins = (int)NextFullMoon.Subtract(now).TotalMinutes;

            if (totalMins > 40 | totalMins < 0)
            {
                return;
            }

            reminderPath.Reset();

            //float startAngle = (45 - min) * 6;
            //float sweepAngle = min * 6;

            int nowMin  = now.Minute;
            int nextMin = NextFullMoon.Minute;

            float startAngle = 0f;
            float sweepAngle = 0f;

            if (nowMin < 15 & nextMin <= 15)
            {
                startAngle = 270f + nowMin * 6f;
                sweepAngle = (nextMin - nowMin) * 6f;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);
            }
            else if (nowMin < 15)
            {
                startAngle = 270f + nowMin * 6f;
                sweepAngle = 360f - startAngle;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);

                startAngle = 0f;
                sweepAngle = (nextMin - 15) * 6f;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);
            }
            else if (nextMin <= 15)
            {
                startAngle = (nowMin - 15) * 6f;
                sweepAngle = 270f - startAngle;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);

                startAngle = 270f;
                sweepAngle = nextMin * 6f;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);
            }
            else if (nextMin < nowMin)
            {
                startAngle = (nowMin - 15) * 6f;
                sweepAngle = 360f - startAngle;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);

                startAngle = 0f;
                sweepAngle = (nextMin - 15) * 6f;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);
            }
            else
            {
                startAngle = (nowMin - 15) * 6f;
                sweepAngle = (nextMin - nowMin) * 6f;

                reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);
            }

            //float startAngle = (nextMin * 6f) + 15f;
            //float sweepAngle = totalMins * 6;

            //reminderPath.AddArc(reminderRectF, startAngle, sweepAngle);

            canvas.DrawPath(reminderPath, reminderPaint);
        }
Esempio n. 3
0
        void DrawList(Canvas canvas, MotoRect rect)
        {
            Rect     grayRect;
            DateTime dateTime;

            for (int i = 0; i < 6; i++)
            {
                dateTime = NextFullMoon.AddMinutes(INTERVAL_MINUTES * i);

                canvas.DrawRect(listRects[i], listPaint);

                #region gray mm = 46~59

                if (dateTime.Minute >= 46)
                {
                    grayRect = new Rect(listRects[i]);

                    if (dateTime.Minute <= 54)
                    {
                        grayRect.Left +=
                            (55 - dateTime.Minute) * (listRects[i].Width() / 10);
                    }

                    if (dateTime.Minute >= 51)
                    {
                        grayRect.Right -=
                            (dateTime.Minute - 50) * (listRects[i].Width() / 10);
                    }

                    canvas.DrawRect(grayRect, listGrayPaint);
                }

                #endregion

                int margin = 3;
                int y      = listRects[i].Top + listRects[i].Height() - margin;

                //if (i == 0)
                //{
                //    canvas.DrawText(
                //        dateTime.ToString(FORMAT_MMDD),
                //        dateLeft, y, listTextPaint);
                //}
                //else
                //{
                //    if (dateTime.AddMinutes(INTERVAL_MINUTES * -1).Day != dateTime.Day)
                //    {
                //        canvas.DrawText(
                //            dateTime.ToString(FORMAT_MMDD),
                //            dateLeft, y, listTextPaint);
                //    }
                //}
                if (i == 0 |
                    i != 0 & dateTime.AddMinutes(INTERVAL_MINUTES * -1).Day != dateTime.Day)
                {
                    canvas.DrawText(
                        dateTime.ToString(FORMAT_MMDD),
                        dateLeft, y, listTextPaint);
                }

                canvas.DrawText(
                    dateTime.ToString(FORMAT_HHMM),
                    timeLeft, y, listTextPaint);
            }
        }