diff --git a/package.json b/package.json index 8e1cb61..8a59a9a 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ ] }, { - "characterRegex": "[ntype:θ=acuobsrigh¯¹0123456789]", + "characterRegex": "[?ntype:θ=acuobsrigh¯¹0123456789]", "file": "mansalva_regular.ttf", "name": "FONT_MANSALVA_REGULAR_22", "type": "font" diff --git a/src/c/main.c b/src/c/main.c index e28a431..0452b14 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -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);