This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository elimine.

View the commit online.

commit 2067c296b58c728b499e709bd802e6a2cef95fb3
Author: Vincent Torri <vto...@outlook.fr>
AuthorDate: Thu Jul 10 20:17:27 2025 +0200

    put the grid in a table
---
 src/bin/elimine.c | 51 ++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 40 insertions(+), 11 deletions(-)

diff --git a/src/bin/elimine.c b/src/bin/elimine.c
index 70a2739..2263ed0 100644
--- a/src/bin/elimine.c
+++ b/src/bin/elimine.c
@@ -41,10 +41,14 @@ typedef struct
     int nc; /* number of columns of the board */
     int nm; /* number of mines in the board */
     int pixel_sz; /* size in pixels of a tile */
+    int flagged; /* number of tile with a flag */
 
     Eina_Bool finished;
 } Ctx;
 
+static Evas_Object *cph = NULL;
+static Evas_Object *rect = NULL;
+
 static inline int in_board(Ctx *ctx, int l, int c)
 {
     return  (l >= 0) && (c >= 0) && (l < ctx->nl) && (c < ctx->nc);
@@ -95,8 +99,8 @@ Ctx *ctx_new(Difficulty d, int pixel_sz)
             ctx->nm = 40;
             break;
         case HARD:
-            ctx->nl = 30;
-            ctx->nc = 16;
+            ctx->nl = 16;
+            ctx->nc = 30;
             ctx->nm = 99;
             break;
         default:
@@ -237,20 +241,27 @@ static void uncover(Ctx *ctx, int l, int c)
 }
 
 static void
-_cb_mouse_up(void *ctx_, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+_cb_mouse_up(void *ctx_, Evas *evas EINA_UNUSED, Evas_Object *obj, void *event_info)
 {
     Ctx *ctx;
     Evas_Event_Mouse_Up *ev;
     int l;
     int c;
+    int x;
+    int y;
+    int w;
+    int h;
 
     ctx = (Ctx *)ctx_;
     if (ctx->finished == EINA_TRUE)
         return;
 
+    evas_object_geometry_get(obj, &x, &y, NULL, NULL);
+    tile_size_get(&w, &h);
     ev = (Evas_Event_Mouse_Up *)event_info;
-    c = ev->output.x / (16 * ctx->pixel_sz);
-    l = (ev->output.y - 32 * ctx->pixel_sz) / (16 * ctx->pixel_sz);
+    c = (ev->output.x - x) / (w * ctx->pixel_sz);
+    l = (ev->output.y - y) / (h * ctx->pixel_sz);
+    printf(" $$ %d %d\n", c, l);
 
     if ((ev->button == 3) ||
         ((ev->button == 1) &&
@@ -260,6 +271,7 @@ _cb_mouse_up(void *ctx_, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v
         {
             ctx->known[lookup(l, c)] = TILE_FLAG;
             TILE(TILE_FLAG, l, c);
+            ctx->flagged++;
         }
         else if (ctx->known[lookup(l, c)] == TILE_FLAG)
         {
@@ -342,6 +354,11 @@ _cb_mouse_down(void *ctx_, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
     TILE(TILE_NOTHING, l, c);
     evas_object_image_data_set(ctx->smiley, smiley_bmp_get(SMILEY_CLICKED));
     evas_object_image_pixels_dirty_set(ctx->smiley, EINA_TRUE);
+    int x, y, w, h;
+    evas_object_geometry_get(cph, &x, &y, &w, &h);
+    printf(" ** 1 cph : %d %d %d %d\n", x, y, w, h);
+    evas_object_geometry_get(rect, &x, &y, &w, &h);
+    printf(" ** 1 cph : %d %d %d %d\n", x, y, w, h);
 }
 
 EAPI_MAIN int
@@ -352,12 +369,13 @@ elm_main(int argc, char **argv)
     Evas_Object *win;
     Evas_Object *vbox;
     Evas_Object *hbox;
+    Evas_Object *tbl;
     Evas_Object *o;
     int win_w;
     int win_h;
     int l;
 
-    ctx = ctx_new(INTERMEDIATE, 3);
+    ctx = ctx_new(HARD, 3);
     if (!ctx)
         return 1;
 
@@ -406,6 +424,7 @@ elm_main(int argc, char **argv)
     evas_object_size_hint_max_set(o, icon_w, icon_h);
     elm_box_pack_end(hbox, o);
     evas_object_show(o);
+    cph = o;
 
     o = evas_object_image_filled_add(evas_object_evas_get(win));
     smiley_size_get(&icon_w, &icon_h);
@@ -432,12 +451,21 @@ elm_main(int argc, char **argv)
     elm_box_pack_end(hbox, o);
     evas_object_show(o);
 
+    /* table */
+    o = elm_table_add(win);
+    elm_table_homogeneous_set(o, EINA_TRUE);
+    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
+    elm_box_pack_end(vbox, o);
+    evas_object_show(o);
+    tbl = o;
+
     /* grid */
     o = elm_grid_add(win);
     elm_grid_size_set(o, ctx->nc, ctx->nl);
     evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-    elm_box_pack_end(vbox, o);
+    elm_table_pack(tbl, o, 0, 0, 1, 1);
     evas_object_show(o);
     ctx->grd = o;
 
@@ -472,17 +500,18 @@ elm_main(int argc, char **argv)
 
     ctx->tiles = elm_grid_children_get(ctx->grd);
 
-    o = evas_object_rectangle_add(win);
+    o = evas_object_rectangle_add(evas_object_evas_get(win));
     evas_object_color_set(o, 0, 0, 0, 0);
     evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-    elm_win_resize_object_add(win, o);
+    elm_table_pack(tbl, o, 0, 0, 1, 1);
     evas_object_repeat_events_set(o, EINA_TRUE);
     evas_object_show(o);
-    evas_object_event_callback_add(ctx->grd, EVAS_CALLBACK_MOUSE_UP,
+    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP,
                                    _cb_mouse_up, ctx);
-    evas_object_event_callback_add(ctx->grd, EVAS_CALLBACK_MOUSE_DOWN,
+    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
                                    _cb_mouse_down, ctx);
+    rect = o;
 
     ctx->finished = EINA_FALSE;
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to