Display two random side lengths to user
This commit is contained in:
+58
-6
@@ -37,6 +37,9 @@ static Layer *s_division_layer;
|
||||
static Layer *s_alarm_highlight_layer;
|
||||
static MenuLayer *s_drop_menu_layer;
|
||||
static TriangleLayer *s_triangle_layer;
|
||||
static TextLayer *s_side_a_txt_layer;
|
||||
static TextLayer *s_side_b_txt_layer;
|
||||
static TextLayer *s_side_c_txt_layer;
|
||||
|
||||
// fonts
|
||||
//// setter
|
||||
@@ -79,8 +82,8 @@ static const char *s_tan;
|
||||
// alarm drop menu options
|
||||
static const char *s_options_type[3] = {"acute", "obtuse", "right"};
|
||||
static const char *s_options_function[3];
|
||||
static char *s_options_over[3];
|
||||
static char *s_options_under[3];
|
||||
static char *s_options_over[2];
|
||||
static char *s_options_under[2];
|
||||
|
||||
/////////////////////////////////
|
||||
|
||||
@@ -535,6 +538,56 @@ static void alarm_window_load() {
|
||||
s_triangle_layer = triangle_layer_create(GRect(0, s_top_bar_grect.size.h + 1, PBL_DISPLAY_WIDTH, PBL_DISPLAY_HEIGHT - (s_top_bar_grect.size.h * 2)), GColorBlack);
|
||||
layer_add_child(window_layer, s_triangle_layer->layer);
|
||||
|
||||
// triangle measurements text layers
|
||||
//// side_a
|
||||
s_side_a_txt_layer = text_layer_create(GRect(0, s_bottom_bar_grect.origin.y - 27, PBL_DISPLAY_WIDTH, 23));
|
||||
text_layer_set_background_color(s_side_a_txt_layer, GColorClear);
|
||||
text_layer_set_font(s_side_a_txt_layer, s_font_mansalva_small);
|
||||
text_layer_set_text_alignment(s_side_a_txt_layer, GTextAlignmentCenter);
|
||||
layer_add_child(window_layer, text_layer_get_layer(s_side_a_txt_layer));
|
||||
//// side_b
|
||||
s_side_b_txt_layer = text_layer_create(GRect(-4, PBL_DISPLAY_WIDTH / 2, PBL_DISPLAY_WIDTH, 23));
|
||||
text_layer_set_background_color(s_side_b_txt_layer, GColorClear);
|
||||
text_layer_set_font(s_side_b_txt_layer, s_font_mansalva_small);
|
||||
text_layer_set_text_alignment(s_side_b_txt_layer, GTextAlignmentRight);
|
||||
layer_add_child(window_layer, text_layer_get_layer(s_side_b_txt_layer));
|
||||
//// side_c
|
||||
s_side_c_txt_layer = text_layer_create(GRect(4, PBL_DISPLAY_WIDTH / 2, PBL_DISPLAY_WIDTH, 23));
|
||||
text_layer_set_background_color(s_side_c_txt_layer, GColorClear);
|
||||
text_layer_set_font(s_side_c_txt_layer, s_font_mansalva_small);
|
||||
layer_add_child(window_layer, text_layer_get_layer(s_side_c_txt_layer));
|
||||
//// display 2 side lengths to the user
|
||||
static char side_a_buffer[3], side_b_buffer[3], side_c_buffer[3];
|
||||
uint8_t ignored_side = rand() % 3;
|
||||
switch (ignored_side) {
|
||||
case 0:
|
||||
snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
|
||||
snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
|
||||
s_options_over[0] = side_b_buffer;
|
||||
s_options_over[1] = side_c_buffer;
|
||||
s_options_under[0] = side_b_buffer;
|
||||
s_options_under[1] = side_c_buffer;
|
||||
break;
|
||||
case 1:
|
||||
snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a);
|
||||
snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
|
||||
s_options_over[0] = side_a_buffer;
|
||||
s_options_over[1] = side_c_buffer;
|
||||
s_options_under[0] = side_a_buffer;
|
||||
s_options_under[1] = side_c_buffer;
|
||||
break;
|
||||
case 2:
|
||||
snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a);
|
||||
snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
|
||||
s_options_over[0] = side_a_buffer;
|
||||
s_options_over[1] = side_b_buffer;
|
||||
s_options_under[0] = side_a_buffer;
|
||||
s_options_under[1] = side_b_buffer;
|
||||
}
|
||||
text_layer_set_text(s_side_a_txt_layer, side_a_buffer);
|
||||
text_layer_set_text(s_side_b_txt_layer, side_b_buffer);
|
||||
text_layer_set_text(s_side_c_txt_layer, side_c_buffer);
|
||||
|
||||
// drop menus
|
||||
//// determine trigonometric function options
|
||||
s_sin = s_sin_arr[rand() % 2];
|
||||
@@ -544,10 +597,6 @@ static void alarm_window_load() {
|
||||
s_options_function[0] = s_sin;
|
||||
s_options_function[1] = s_cos;
|
||||
s_options_function[2] = s_tan;
|
||||
s_options_over[0] = "1";
|
||||
s_options_over[1] = "2";
|
||||
s_options_under[0] = "1";
|
||||
s_options_under[1] = "2";
|
||||
//// create drop window
|
||||
s_drop_window = window_create(); // TODO destroy on window unload?
|
||||
window_set_window_handlers(
|
||||
@@ -559,6 +608,9 @@ static void alarm_window_load() {
|
||||
}
|
||||
|
||||
static void alarm_window_unload() {
|
||||
text_layer_destroy(s_side_a_txt_layer);
|
||||
text_layer_destroy(s_side_b_txt_layer);
|
||||
text_layer_destroy(s_side_c_txt_layer);
|
||||
triangle_layer_destroy(s_triangle_layer);
|
||||
layer_destroy(s_alarm_highlight_layer);
|
||||
layer_destroy(s_division_layer);
|
||||
|
||||
Reference in New Issue
Block a user