Hi,

I'm trying to create a simple dialog window. Just a dialog which
contains a label, an entry and a button bar with ok and cancel. That's
seems so simple to do, but i can't do it. The solution must be simple,
but i can't find it.
I made a simple test program [test1.c attached], With a main window
and a button. When you click on this button, the dilaog box is
launched.

* First problem, when i run it on e17, the dialog box is not centered,
i don't know if it should be, but i always seen dialog boxes centered
on his parent.
* Second problem, when i run it on illume, the size of the dialog box
is 1x1 pixel. Not very usefull .... here the result :
http://www.deco-crea.com/files/2011-08-18-004550_480x800_scrot.png you
can find the 1x1 box on the center of the screen (this time it is
centered :P)
* Third problem, when it's displayed my box looks bad, i would like
more space between elements, and wouls like to add some pading arround
my main box. I tried to use the elm_box_padding_set, but it add
padding only between elements and not before or after last elements.
My second attempt [test2.c attached] was to add a layout, with a
swallow and manage the padding in edje. But if i do that, the box
swallowed in my edje part do no take all the space. It's like it was
always taken the min size. I really don't see how to get a dialog box
which is correctly displayed in e17 and in illume and wich looks good.
So if you could help me please it would be great:)

Regards,
--
Nicolas Aguirre
Mail: [email protected]
Web: http://enna.geexbox.org
Blog: http://dev.enlightenment.fr/~captainigloo/
/* Build : gcc -o test test.c `pkg-config elementary --cflags --libs` */

#include <Elementary.h>

static void
_clicked_cb(void *data, Evas_Object *btn, void *ev)
{
   Evas_Object *win;
   Evas_Object *bg;
   Evas_Object *en;
   Evas_Object *lb;
   Evas_Object *bx;
   Evas_Object *btn_bx;
   Evas_Object *btn_ok;
   Evas_Object *btn_cancel;
   Evas_Object *sep;

   Evas_Object *main_win = data;

   win = elm_win_add(main_win, "test", ELM_WIN_DIALOG_BASIC);
   elm_win_title_set(win, "New Folder");
   elm_win_autodel_set(win, EINA_TRUE);
   evas_object_show(win);

   bg = elm_bg_add(win);
   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(win, bg);
   evas_object_show(bg);

   bx = elm_box_add(win);
   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(bx, -1, -1);
   evas_object_show(bx);
   elm_win_resize_object_add(win, bx);

   lb = elm_label_add(win);
   elm_object_text_set(lb, "Enter folder name");
   evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(lb, 0.5, -1);
   evas_object_show(lb);
   elm_box_pack_end(bx, lb);

   en = elm_entry_add(win);
   elm_entry_single_line_set(en, EINA_TRUE);
   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(en, -1, -1);
   elm_box_pack_end(bx, en);
   evas_object_show(en);

   sep = elm_separator_add(win);
   elm_separator_horizontal_set(sep, EINA_TRUE);
   evas_object_show(sep);
   elm_box_pack_end(bx, sep);

   btn_bx = elm_box_add(win);
   elm_box_horizontal_set(btn_bx, EINA_TRUE);
   elm_box_homogeneous_set(btn_bx, EINA_TRUE);
   evas_object_size_hint_weight_set(btn_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn_bx, EVAS_HINT_FILL, 0.5);
   evas_object_show(btn_bx);

   btn_ok = elm_button_add(win);
   elm_button_label_set(btn_ok, "OK");
   evas_object_show(btn_ok);
   evas_object_size_hint_weight_set(btn_ok, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn_ok, EVAS_HINT_FILL, 0.5);
   elm_box_pack_end(btn_bx, btn_ok);

   btn_cancel = elm_button_add(win);
   elm_button_label_set(btn_cancel, "Cancel");
   evas_object_show(btn_cancel);
   evas_object_size_hint_weight_set(btn_cancel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn_cancel, EVAS_HINT_FILL, EVAS_HINT_FILL);
   elm_box_pack_end(btn_bx, btn_cancel);

   elm_box_pack_end(bx, btn_bx);

   evas_object_resize(win, 320, 240);
}

int main(int argc, char **argv)
{
   Evas_Object *main_win;
   Evas_Object *bg;
   Evas_Object *btn;

   elm_init(argc, argv);

   main_win = elm_win_add(NULL, "test", ELM_WIN_BASIC);
   elm_win_title_set(main_win, "TEST");
   elm_win_autodel_set(main_win, EINA_TRUE);
   evas_object_show(main_win);


   bg = elm_bg_add(main_win);
   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(main_win, bg);
   evas_object_show(bg);

   btn = elm_button_add(main_win);
   elm_object_text_set(btn, "Test Dialog");
   evas_object_show(btn);
   elm_win_resize_object_add(main_win, btn);
   evas_object_smart_callback_add(btn, "clicked", _clicked_cb, main_win);

   evas_object_resize(main_win, 480, 800);

   elm_run();

   elm_shutdown();

}
/* Build : gcc -o test2 test2.c `pkg-config elementary --cflags --libs`
   edje_cc test2.edc test2.edc
*/

#include <Elementary.h>

static void
_clicked_cb(void *data, Evas_Object *btn, void *ev)
{
   Evas_Object *win;
   Evas_Object *bg;
   Evas_Object *layout;
   Evas_Object *en;
   Evas_Object *lb;
   Evas_Object *bx;
   Evas_Object *btn_bx;
   Evas_Object *btn_ok;
   Evas_Object *btn_cancel;
   Evas_Object *sep;

   Evas_Object *main_win = data;

   win = elm_win_add(main_win, "test", ELM_WIN_DIALOG_BASIC);
   elm_win_title_set(win, "New Folder");
   elm_win_autodel_set(win, EINA_TRUE);
   evas_object_show(win);

   bg = elm_bg_add(win);
   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(win, bg);
   evas_object_show(bg);
   evas_object_size_hint_min_set(bg, 320, 240);

   layout = elm_layout_add(win);
   elm_layout_file_set(layout, "test2.edj", "dialog/layout");
   elm_win_resize_object_add(win, layout);
   evas_object_size_hint_min_set(layout, 320, 240);
   evas_object_show(layout);

   bx = elm_box_add(win);
   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(bx, -1, -1);
   evas_object_show(bx);
   elm_layout_content_set(layout, "content.layout", bx);

   lb = elm_label_add(win);
   elm_object_text_set(lb, "Enter folder name");
   evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(lb, 0.5, -1);
   evas_object_show(lb);
   elm_box_pack_end(bx, lb);

   en = elm_entry_add(win);
   elm_entry_single_line_set(en, EINA_TRUE);
   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(en, -1, -1);
   elm_box_pack_end(bx, en);
   evas_object_show(en);

   sep = elm_separator_add(win);
   elm_separator_horizontal_set(sep, EINA_TRUE);
   evas_object_show(sep);
   elm_box_pack_end(bx, sep);

   btn_bx = elm_box_add(win);
   elm_box_horizontal_set(btn_bx, EINA_TRUE);
   elm_box_homogeneous_set(btn_bx, EINA_TRUE);
   evas_object_size_hint_weight_set(btn_bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn_bx, EVAS_HINT_FILL, 0.5);
   evas_object_show(btn_bx);

   btn_ok = elm_button_add(win);
   elm_object_text_set(btn_ok, "OK");
   evas_object_show(btn_ok);
   evas_object_size_hint_weight_set(btn_ok, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn_ok, EVAS_HINT_FILL, 0.5);
   elm_box_pack_end(btn_bx, btn_ok);

   btn_cancel = elm_button_add(win);
   elm_object_text_set(btn_cancel, "Cancel");
   evas_object_show(btn_cancel);
   evas_object_size_hint_weight_set(btn_cancel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(btn_cancel, EVAS_HINT_FILL, EVAS_HINT_FILL);
   elm_box_pack_end(btn_bx, btn_cancel);

   elm_box_pack_end(bx, btn_bx);

   evas_object_resize(win, 320, 240);
}

int main(int argc, char **argv)
{
   Evas_Object *main_win;
   Evas_Object *bg;
   Evas_Object *btn;

   elm_init(argc, argv);

   main_win = elm_win_add(NULL, "test", ELM_WIN_BASIC);
   elm_win_title_set(main_win, "TEST");
   elm_win_autodel_set(main_win, EINA_TRUE);
   evas_object_show(main_win);


   bg = elm_bg_add(main_win);
   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(main_win, bg);
   evas_object_show(bg);

   btn = elm_button_add(main_win);
   elm_object_text_set(btn, "Test Dialog");
   evas_object_show(btn);
   elm_win_resize_object_add(main_win, btn);
   evas_object_smart_callback_add(btn, "clicked", _clicked_cb, main_win);

   evas_object_resize(main_win, 480, 800);

   elm_run();

   elm_shutdown();

}

Attachment: test2.edc
Description: Binary data

------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to