diff --git a/example/nuklear-calc.c b/example/nuklear-calc.c new file mode 100644 index 0000000..5d150cc --- /dev/null +++ b/example/nuklear-calc.c @@ -0,0 +1,96 @@ + + +#include + + +nk_heli hnk; +struct nk_context *nk; + + +void init() { + nk_heli_init(&hnk, 12); + nk = &hnk.context; +} + + +void deinit() { + nk_heli_deinit(&hnk); +} + + +void draw() { + if (nk_begin(nk, "Calculator", nk_rect(10, 10, 180, 250), + NK_WINDOW_BORDER|NK_WINDOW_TITLE|NK_WINDOW_NO_SCROLLBAR|NK_WINDOW_MOVABLE)) + { + static double a = 0, b = 0, c = 0, *cur = &a; + static char sign = 0; + + nk_layout_row_dynamic(nk, 35, 1); + char buffer[256]; + int len = snprintf(buffer, 256, "%g", *cur); + nk_edit_string(nk, NK_EDIT_SIMPLE, buffer, &len, 255, nk_filter_float); + + nk_layout_row_dynamic(nk, 35, 4); + int num = -1; + + if (nk_button_label(nk, "7")) num = 7; + if (nk_button_label(nk, "8")) num = 8; + if (nk_button_label(nk, "9")) num = 9; + if (nk_button_label(nk, "+")) sign = '+'; + + if (nk_button_label(nk, "4")) num = 4; + if (nk_button_label(nk, "5")) num = 5; + if (nk_button_label(nk, "6")) num = 6; + if (nk_button_label(nk, "-")) sign = '-'; + + if (nk_button_label(nk, "1")) num = 1; + if (nk_button_label(nk, "2")) num = 2; + if (nk_button_label(nk, "3")) num = 3; + if (nk_button_label(nk, "*")) sign = '*'; + + if (nk_button_label(nk, "С")) num = -2; + if (nk_button_label(nk, "0")) num = 5; + if (nk_button_label(nk, "=")) num = -3; + if (nk_button_label(nk, "/")) sign = '/'; + + + if (sign) cur = &b; + + // new digit + if (num >= 0) { + if (cur != &b) cur = &a; + *cur = *cur*10 + num; + } + + // reset + if (num == -2) { + cur = &a; + a = b = c = sign = 0; + } + + // solve + if (num == -3 && cur == &b) { + if (sign == '+') c = a + b; + if (sign == '-') c = a - b; + if (sign == '*') c = a * b; + if (sign == '/') c = a / b; + cur = &c; + a = b = sign = 0; + } + } + nk_end(nk); + + nk_heli_process(&hnk); +} + + +int main() { + windowSetResizable(TRUE); + windowSetVariableFrameRate(); + windowSetInit(&init); + windowSetDeinit(&deinit); + windowSetDraw(&draw); + windowRun(); + return 0; +} + diff --git a/example/nuklear-test.c b/example/nuklear-test.c deleted file mode 100644 index 5d150cc..0000000 --- a/example/nuklear-test.c +++ /dev/null @@ -1,96 +0,0 @@ - - -#include - - -nk_heli hnk; -struct nk_context *nk; - - -void init() { - nk_heli_init(&hnk, 12); - nk = &hnk.context; -} - - -void deinit() { - nk_heli_deinit(&hnk); -} - - -void draw() { - if (nk_begin(nk, "Calculator", nk_rect(10, 10, 180, 250), - NK_WINDOW_BORDER|NK_WINDOW_TITLE|NK_WINDOW_NO_SCROLLBAR|NK_WINDOW_MOVABLE)) - { - static double a = 0, b = 0, c = 0, *cur = &a; - static char sign = 0; - - nk_layout_row_dynamic(nk, 35, 1); - char buffer[256]; - int len = snprintf(buffer, 256, "%g", *cur); - nk_edit_string(nk, NK_EDIT_SIMPLE, buffer, &len, 255, nk_filter_float); - - nk_layout_row_dynamic(nk, 35, 4); - int num = -1; - - if (nk_button_label(nk, "7")) num = 7; - if (nk_button_label(nk, "8")) num = 8; - if (nk_button_label(nk, "9")) num = 9; - if (nk_button_label(nk, "+")) sign = '+'; - - if (nk_button_label(nk, "4")) num = 4; - if (nk_button_label(nk, "5")) num = 5; - if (nk_button_label(nk, "6")) num = 6; - if (nk_button_label(nk, "-")) sign = '-'; - - if (nk_button_label(nk, "1")) num = 1; - if (nk_button_label(nk, "2")) num = 2; - if (nk_button_label(nk, "3")) num = 3; - if (nk_button_label(nk, "*")) sign = '*'; - - if (nk_button_label(nk, "С")) num = -2; - if (nk_button_label(nk, "0")) num = 5; - if (nk_button_label(nk, "=")) num = -3; - if (nk_button_label(nk, "/")) sign = '/'; - - - if (sign) cur = &b; - - // new digit - if (num >= 0) { - if (cur != &b) cur = &a; - *cur = *cur*10 + num; - } - - // reset - if (num == -2) { - cur = &a; - a = b = c = sign = 0; - } - - // solve - if (num == -3 && cur == &b) { - if (sign == '+') c = a + b; - if (sign == '-') c = a - b; - if (sign == '*') c = a * b; - if (sign == '/') c = a / b; - cur = &c; - a = b = sign = 0; - } - } - nk_end(nk); - - nk_heli_process(&hnk); -} - - -int main() { - windowSetResizable(TRUE); - windowSetVariableFrameRate(); - windowSetInit(&init); - windowSetDeinit(&deinit); - windowSetDraw(&draw); - windowRun(); - return 0; -} -