+void draw_app_ana_clock(mwdevice_t *mwdevice, int hour, int minute, unsigned char day)
+{
+ mw_buffer *mwbuf;
+ unsigned char *bbuf;
+ char daystr[5];
+ int len;
+ unsigned int i, x, y, x2, y2;
+ double tmp, mf;
+
+ mw_enable_button(mwdevice, MW_SCREEN_MODE_IDLE, MW_BUTTON_A, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_A);
+
+ mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_A, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_A);
+ mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_B, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_B);
+ mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_C, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_C);
+ mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_E, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_E);
+ mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_F, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_F);
+ mw_configure_watch_mode(mwdevice, MW_SCREEN_MODE_APPLICATION, 0, 30, 0);
+
+ mwbuf = mw_alloc_pbuffer(96, 96, 1);
+ mw_buf_clear(mwbuf, MW_BLACK);
+
+ hour -= 3;
+ mf = (1. / 59.) * (double)minute;
+ minute -= 15;
+
+ // plot(R*cos(360° * i/N), R*sin(360° * i/N))
+ for (i=0; i<12; i++) {
+ tmp = 48. + (43. * cos(((2. * M_PI) / 12.) * (double)i));
+ x = tmp;
+ tmp = 48 + (43. * sin(((2. * M_PI) / 12.) * (double)i));
+ y = tmp;
+ tmp = 48. + (48. * cos(((2. * M_PI) / 12.) * (double)i));
+ x2 = tmp;
+ tmp = 48 + (48. * sin(((2. * M_PI) / 12.) * (double)i));
+ y2 = tmp;
+ mw_buf_draw_line_bresenham_w(mwbuf, x, y, x2, y2, 2, MW_WHITE);
+ };
+ // Hour
+ g_print("hour = %d -> %f (%f)\n", hour, (double)hour + mf, mf);
+ tmp = 48. + (30. * cos(((2. * M_PI) / 12.) * ((double)hour + mf)));
+ x = tmp;
+ tmp = 48 + (30. * sin(((2. * M_PI) / 12.) * ((double)hour + mf)));
+ y = tmp;
+ mw_buf_draw_line_bresenham_w(mwbuf, 48, 48, x, y, 2, MW_WHITE);
+ // Minute
+ tmp = 48. + (40. * cos(((2. * M_PI) / 60.) * (double)minute));
+ x = tmp;
+ tmp = 48 + (40. * sin(((2. * M_PI) / 60.) * (double)minute));
+ y = tmp;
+ mw_buf_draw_line_bresenham_w(mwbuf, 48, 48, x, y, 2, MW_WHITE);
+
+ snprintf(daystr, 5, "%d", day);
+ mw_buf_print(mwbuf, 74, 45, daystr, 0, MW_WHITE, MW_BLACK);
+
+ bbuf = mw_make_mw_buffer(mwbuf, &len);
+ mw_send_bitmap(mwdevice, MW_SCREEN_MODE_APPLICATION, 96, 96, 0, bbuf, len);
+ mw_update_display(mwdevice, MW_SCREEN_MODE_APPLICATION, 1);
+ mw_free_pbuffer(mwbuf);
+}
+