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();
}
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
