From 555c98cb9bfc95a05a956b1be10cd2fea4afb677 Mon Sep 17 00:00:00 2001
From: A404M <ahmadmahmoudiprogrammer@gmail.com>
Date: Thu, 29 Aug 2024 02:59:19 +0330
Subject: made tui_make_widget_array needless to determining size

---
 src/main.c   | 10 +++++-----
 src/ui/tui.c |  2 +-
 src/ui/tui.h |  4 +++-
 3 files changed, 9 insertions(+), 7 deletions(-)

(limited to 'src')

diff --git a/src/main.c b/src/main.c
index c1a2563..da5241e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -14,13 +14,13 @@ WIDGET *ui_build(TUI *tui) {
     return tui_make_box(
         -1, -1,
         tui_make_column(tui_make_widget_array(
-            2, tui_make_box(0, 12, NULL, COLOR_NO_COLOR),
+            tui_make_box(0, 12, NULL, COLOR_NO_COLOR),
             tui_make_row(tui_make_widget_array(
-                2, tui_make_box(50, 0, NULL, COLOR_NO_COLOR),
+                tui_make_box(50, 0, NULL, COLOR_NO_COLOR),
                 tui_make_box(
                     20, 3,
                     tui_make_column(tui_make_widget_array(
-                        2, tui_make_text("This is the second page", COLOR_BLUE),
+                        tui_make_text("This is the second page", COLOR_BLUE),
                         tui_make_button(tui_make_text("       Back", COLOR_RED),
                                         on_button_click))),
 
@@ -30,9 +30,9 @@ WIDGET *ui_build(TUI *tui) {
     return tui_make_box(
         -1, -1,
         tui_make_column(tui_make_widget_array(
-            2, tui_make_box(0, 12, NULL, COLOR_NO_COLOR),
+            tui_make_box(0, 12, NULL, COLOR_NO_COLOR),
             tui_make_row(tui_make_widget_array(
-                2, tui_make_box(50, 0, NULL, COLOR_NO_COLOR),
+                tui_make_box(50, 0, NULL, COLOR_NO_COLOR),
                 tui_make_button(
                     tui_make_box(16, 3,
                                  tui_make_text("\nClick here", COLOR_BLUE),
diff --git a/src/ui/tui.c b/src/ui/tui.c
index e7336bf..30456d2 100644
--- a/src/ui/tui.c
+++ b/src/ui/tui.c
@@ -650,7 +650,7 @@ void _tui_delete_box(WIDGET *box) {
   free(box->metadata);
 }
 
-WIDGET_ARRAY *tui_make_widget_array(size_t size, ...) {
+WIDGET_ARRAY *tui_make_widget_array_raw(size_t size, ...) {
   va_list arg_pointer;
   va_start(arg_pointer, size);
 
diff --git a/src/ui/tui.h b/src/ui/tui.h
index 0de4adb..d351d5c 100644
--- a/src/ui/tui.h
+++ b/src/ui/tui.h
@@ -155,7 +155,9 @@ extern BOX_METADATA *_tui_make_box_metadata(WIDGET *restrict child, int width,
                                             int height, COLOR color);
 extern void _tui_delete_box(WIDGET *restrict box);
 
-extern WIDGET_ARRAY *tui_make_widget_array(size_t size, ...);
+extern WIDGET_ARRAY *tui_make_widget_array_raw(size_t size, ...);
 extern void _tui_delete_widget_array(WIDGET_ARRAY *restrict widget_array);
 
+#define tui_make_widget_array(...) tui_make_widget_array_raw(sizeof((WIDGET* []) {__VA_ARGS__}) / sizeof(WIDGET*), __VA_ARGS__)
+
 #endif
-- 
cgit v1.2.3