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.