static void _init_photo(Evas_Object *win) { Evas_Object *bg, *bx, *photo; const char * const filename = "./data/th-whiterabbit01.jpg"; bg = elm_bg_add(win); elm_bg_color_set(bg, 255, 255, 255); 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); elm_box_horizontal_set(bx, EINA_TRUE); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_homogeneous_set(bx, EINA_TRUE); elm_win_resize_object_add(win, bx); photo = elm_photo_add(win); g_assert(elm_photo_file_set(photo, filename)); elm_photo_size_set(photo, 100); elm_photo_aspect_fixed_set(photo, EINA_FALSE); evas_object_smart_callback_add(photo, "clicked", _on_photo_clicked, NULL); evas_object_size_hint_weight_set(photo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_photo_fill_inside_set(photo, EINA_TRUE); evas_object_size_hint_align_set(photo, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, photo); evas_object_show(photo); evas_object_show(bx); }
static Evas_Object * _create_dialog ( const gchar *username) { Evas_Object *dialog, *bg, *box, *frame, *content_box; Evas_Object *button_frame, *pad_frame, *button_box; Evas_Object *cancel_button, *ok_button; g_free (main_dialog); main_dialog = g_malloc0 (sizeof (MainDialog)); /* main window */ dialog = elm_win_add (NULL, "dialog", ELM_WIN_BASIC); elm_win_title_set (dialog, "Enter user password"); elm_win_center (dialog, EINA_TRUE, EINA_TRUE); evas_object_smart_callback_add (dialog, "delete,request", _on_close_dialog_clicked, dialog); main_dialog->dialog = dialog; /* window background */ bg = elm_bg_add (dialog); evas_object_size_hint_weight_set (bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show (bg); elm_win_resize_object_add (dialog, bg); box = elm_box_add (dialog); evas_object_size_hint_min_set (box, 200, 200); evas_object_size_hint_weight_set (box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show (box); elm_win_resize_object_add (dialog, box); frame = elm_frame_add (dialog); elm_object_style_set (frame, "pad_small"); evas_object_size_hint_weight_set (frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show (frame); elm_box_pack_start (box, frame); content_box = elm_box_add (dialog); elm_box_padding_set (content_box, 0, 3); evas_object_size_hint_weight_set (content_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (content_box, 0.0, 0.0); evas_object_show (content_box); elm_object_part_content_set (frame, NULL, content_box); main_dialog->username_entry = _add_entry (dialog, content_box, "Username:"******"Password:"******"outdent_bottom"); evas_object_size_hint_weight_set (button_frame, 0.0, 0.0); evas_object_size_hint_align_set (button_frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show (button_frame); elm_box_pack_end (box, button_frame); pad_frame = elm_frame_add (dialog); elm_object_style_set (pad_frame, "pad_medium"); evas_object_show (pad_frame); elm_object_part_content_set (button_frame, NULL, pad_frame); button_box = elm_box_add (dialog); elm_box_horizontal_set (button_box, 1); elm_box_homogeneous_set (button_box, 1); evas_object_show (button_box); elm_object_part_content_set (pad_frame, NULL, button_box); /* Cancel button */ cancel_button = elm_button_add (dialog); elm_object_text_set (cancel_button, "Cancel"); evas_object_size_hint_weight_set (cancel_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (cancel_button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add (cancel_button, "clicked", _on_close_dialog_clicked, dialog); evas_object_show (cancel_button); elm_box_pack_end (button_box, cancel_button); /* OK button */ ok_button = elm_button_add (dialog); elm_object_text_set (ok_button, "OK"); evas_object_size_hint_weight_set (ok_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (ok_button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add (ok_button, "clicked", _on_ok_dialog_clicked, dialog); evas_object_show (ok_button); elm_box_pack_end (button_box, ok_button); return dialog; }
static Evas_Object * _create_nfc_dialog ( const gchar *username) { Evas_Object *dialog, *bg, *box, *frame, *content_box, *label; Evas_Object *button_frame, *pad_frame, *button_box; Evas_Object *ok_button; main_dialog = g_malloc0 (sizeof (MainDialog)); /* main window */ dialog = elm_win_add (NULL, "dialog", ELM_WIN_BASIC); elm_win_title_set (dialog, "Show NFC tag"); elm_win_center (dialog, EINA_TRUE, EINA_TRUE); evas_object_smart_callback_add (dialog, "delete,request", _on_close_dialog_clicked, dialog); main_dialog->dialog = dialog; /* window background */ bg = elm_bg_add (dialog); evas_object_size_hint_weight_set (bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show (bg); elm_win_resize_object_add (dialog, bg); box = elm_box_add (dialog); evas_object_size_hint_min_set (box, 200, 200); evas_object_size_hint_weight_set (box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show (box); elm_win_resize_object_add (dialog, box); frame = elm_frame_add (dialog); elm_object_style_set (frame, "pad_small"); evas_object_size_hint_weight_set (frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show (frame); elm_box_pack_start (box, frame); content_box = elm_box_add (dialog); elm_box_padding_set (content_box, 0, 3); evas_object_size_hint_weight_set (content_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (content_box, 0.0, 0.0); evas_object_show (content_box); elm_object_part_content_set (frame, NULL, content_box); /* NFC label */ label = elm_label_add(dialog); elm_object_text_set(label, "Show your NFC tag"); elm_object_style_set(label, "marker"); evas_object_color_set(label, 255, 0, 0, 255); elm_box_pack_end (content_box, label); evas_object_show(label); button_frame = elm_frame_add (dialog); elm_object_style_set (button_frame, "outdent_bottom"); evas_object_size_hint_weight_set (button_frame, 0.0, 0.0); evas_object_size_hint_align_set (button_frame, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show (button_frame); elm_box_pack_end (box, button_frame); pad_frame = elm_frame_add (dialog); elm_object_style_set (pad_frame, "pad_medium"); evas_object_show (pad_frame); elm_object_part_content_set (button_frame, NULL, pad_frame); button_box = elm_box_add (dialog); elm_box_horizontal_set (button_box, 1); elm_box_homogeneous_set (button_box, 1); evas_object_show (button_box); elm_object_part_content_set (pad_frame, NULL, button_box); /* OK button */ ok_button = elm_button_add (dialog); elm_object_text_set (ok_button, "OK"); evas_object_size_hint_weight_set (ok_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (ok_button, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add (ok_button, "clicked", _on_ok_dialog_clicked, dialog); evas_object_show (ok_button); elm_box_pack_end (button_box, ok_button); return dialog; }
static void set_api_state(api_data *api) { const Eina_List *items = elm_box_children_get(api->box); if (!eina_list_count(items)) return; /* use elm_box_children_get() to get list of children */ switch(api->state) { /* Put all api-changes under switch */ case BOX_PACK_START: /* Move last item to begining */ elm_box_unpack(api->box, eina_list_data_get(eina_list_last(items))); elm_box_pack_start(api->box, eina_list_data_get(eina_list_last(items))); break; case BOX_PACK_BEFORE: if (eina_list_count(items) > 1) { /* Put last item before the one preceeding it */ elm_box_unpack(api->box, eina_list_data_get(eina_list_last(items))); elm_box_pack_before(api->box, eina_list_data_get(eina_list_last(items)), eina_list_nth(items, eina_list_count(items)-2)); } break; case BOX_PACK_AFTER: if (eina_list_count(items) > 1) { /* Put item before last to last */ elm_box_unpack(api->box, eina_list_nth(items, eina_list_count(items)-2)); elm_box_pack_after(api->box, eina_list_nth(items, eina_list_count(items)-2), eina_list_data_get(eina_list_last(items))); } break; case BOX_PADDING_SET: elm_box_padding_set(api->box, 30, 15); break; case BOX_ALIGN_SET: elm_box_align_set(api->box, 0.25, 0.75); break; case BOX_HOMOGENEOUS_SET: elm_box_homogeneous_set(api->box, EINA_TRUE); break; case BOX_UNPACK_ALL: { Eina_List *l; Evas_Object *data; elm_box_unpack_all(api->box); EINA_LIST_REVERSE_FOREACH(items, l, data) elm_box_pack_end(api->box, data); } break; case BOX_CLEAR: elm_box_clear(api->box); break; case API_STATE_LAST: break; default: return; } }
Evas_Object * init_panel_camera_light(Evas_Object *win, Eo *camera_node, Eo *light_node, double posX, double posY) { Evas_Object *nnavig = NULL, *bx_navigall = NULL; Evas_Object *bx_navigcamup = NULL, *bx_navigcamlow = NULL, *bx_navigligthup = NULL, *bx_navigligthlow = NULL; Evas_Object *spX = NULL, *spY = NULL, *spZ = NULL; Evas_Object *spangle = NULL, *spaX = NULL, *spaY = NULL, *spaZ = NULL; Evas_Object *splX = NULL, *splY = NULL, *splZ = NULL; Evas_Object *splangle = NULL, *splaX = NULL, *splaY = NULL, *splaZ = NULL; Evas_Object *separator = NULL; Axis_Key *camera_xyz = NULL, *light_xyz = NULL; Panel_Struct *pobject = NULL; Evas_Real px = 0, py = 0, pz = 0; if (ELM_WIN_UNKNOWN == elm_win_type_get(win)) { fprintf(stdout, "Not appropriate parent object - at %s line %d\n", __FILE__, __LINE__); return NULL; } if (!_alloc_memory(&camera_xyz, &pobject, &light_xyz)) return NULL; /*Navigation panel layout*/ bx_navigall = elm_box_add(win); elm_box_homogeneous_set(bx_navigall, EINA_TRUE); evas_object_show(bx_navigall); bx_navigcamup = elm_box_add(win); elm_box_horizontal_set(bx_navigcamup, EINA_TRUE); elm_box_homogeneous_set(bx_navigcamup, EINA_TRUE); elm_box_pack_end(bx_navigall, bx_navigcamup); evas_object_show(bx_navigcamup); bx_navigcamlow = elm_box_add(win); elm_box_horizontal_set(bx_navigcamlow, EINA_TRUE); elm_box_homogeneous_set(bx_navigcamlow, EINA_TRUE); elm_box_pack_end(bx_navigall, bx_navigcamlow); evas_object_show(bx_navigcamlow); separator = elm_separator_add(win); elm_separator_horizontal_set(separator, EINA_TRUE); elm_box_pack_end(bx_navigall, separator); evas_object_show(separator); bx_navigligthup = elm_box_add(win); elm_box_horizontal_set(bx_navigligthup, EINA_TRUE); elm_box_homogeneous_set(bx_navigligthup, EINA_TRUE); elm_box_pack_end(bx_navigall, bx_navigligthup); evas_object_show(bx_navigligthup); bx_navigligthlow = elm_box_add(win); elm_box_horizontal_set(bx_navigligthlow, EINA_TRUE); elm_box_homogeneous_set(bx_navigligthlow, EINA_TRUE); elm_box_pack_end(bx_navigall, bx_navigligthlow); evas_object_show(bx_navigligthlow); /*Set UI panel for changing camera and light*/ /*Init sp camera by default*/ spX = elm_spinner_add(win); elm_spinner_editable_set(spX, EINA_TRUE); elm_spinner_min_max_set(spX, -COORDRANGE, COORDRANGE); elm_spinner_label_format_set(spX, "camera X: %1.0f"); elm_spinner_step_set(spX, 1.0); pobject->cspX = spX; elm_box_pack_end(bx_navigcamup, spX); evas_object_show(spX); evas_object_smart_callback_add(spX, "changed", _camera_light_changeX_cb, camera_node); spY = elm_spinner_add(win); elm_spinner_editable_set(spY, EINA_TRUE); elm_spinner_min_max_set(spY, -COORDRANGE, COORDRANGE); elm_spinner_label_format_set(spY, "camera Y: %1.0f"); elm_spinner_step_set(spY, 1.0); pobject->cspY = spY; elm_box_pack_end(bx_navigcamup, spY); evas_object_show(spY); evas_object_smart_callback_add(spY, "changed", _camera_light_changeY_cb, camera_node); spZ = elm_spinner_add(win); elm_spinner_editable_set(spZ, EINA_TRUE); elm_spinner_min_max_set(spZ, -COORDRANGE, COORDRANGE); elm_spinner_label_format_set(spZ, "camera Z: %1.0f"); elm_spinner_step_set(spY, 1.0); pobject->cspZ = spZ; elm_box_pack_end(bx_navigcamup, spZ); evas_object_show(spZ); evas_object_smart_callback_add(spZ, "changed", _camera_light_changeZ_cb, camera_node); eo_do(camera_node, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &px, &py, &pz)); elm_spinner_value_set(spX, px); elm_spinner_value_set(spY, py); elm_spinner_value_set(spZ, pz); spangle = elm_spinner_add(win); elm_spinner_editable_set(spangle, EINA_TRUE); elm_spinner_min_max_set(spangle, 0.0, ANGLERANGE); elm_spinner_label_format_set(spangle, "angle: %1.0f"); elm_spinner_step_set(spangle, 1.0); pobject->cspangle = spangle; evas_object_data_set(spangle, axiskeys, camera_xyz); elm_box_pack_end(bx_navigcamlow, spangle); elm_spinner_value_set(spangle, 0.0); evas_object_show(spangle); evas_object_smart_callback_add(spangle, "changed", _camera_light_angle_change_cb, camera_node); spaX = elm_spinner_add(win); elm_spinner_min_max_set(spaX, 0.0, 1.0); elm_spinner_label_format_set(spaX, "axisX: %1.0f"); elm_spinner_step_set(spaX, 1.0); elm_box_pack_end(bx_navigcamlow, spaX); evas_object_show(spaX); evas_object_smart_callback_add(spaX, "changed", _camera_light_axisX_change_cb, spangle); spaY = elm_spinner_add(win); elm_spinner_min_max_set(spaY, 0.0, 1.0); elm_spinner_label_format_set(spaY, "axisY: %1.0f"); elm_spinner_step_set(spaY, 1.0); elm_box_pack_end(bx_navigcamlow, spaY); evas_object_show(spaY); evas_object_smart_callback_add(spaY, "changed", _camera_light_axisY_change_cb, spangle); spaZ = elm_spinner_add(win); elm_spinner_min_max_set(spaZ, 0.0, 1.0); elm_spinner_label_format_set(spaZ, "axisZ: %1.0f"); elm_spinner_step_set(spaZ, 1.0); elm_box_pack_end(bx_navigcamlow, spaZ); evas_object_show(spaZ); evas_object_smart_callback_add(spaZ, "changed", _camera_light_axisZ_change_cb, spangle); /*Init spl light by default*/ splX = elm_spinner_add(win); elm_spinner_editable_set(splX, EINA_TRUE); elm_spinner_min_max_set(splX, -COORDRANGE, COORDRANGE); elm_spinner_label_format_set(splX, "light X: %1.0f"); elm_spinner_step_set(splX, 1.0); pobject->lspX = splX; elm_box_pack_end(bx_navigligthup, splX); evas_object_show(splX); evas_object_smart_callback_add(splX, "changed", _camera_light_changeX_cb, light_node); splY = elm_spinner_add(win); elm_spinner_editable_set(splY, EINA_TRUE); elm_spinner_min_max_set(splY, -COORDRANGE, COORDRANGE); elm_spinner_label_format_set(splY, "light Y: %1.0f"); elm_spinner_step_set(splY, 1.0); pobject->lspY = splY; elm_box_pack_end(bx_navigligthup, splY); evas_object_show(splY); evas_object_smart_callback_add(splY, "changed", _camera_light_changeY_cb, light_node); splZ = elm_spinner_add(win); elm_spinner_editable_set(splZ, EINA_TRUE); elm_spinner_min_max_set(splZ, -COORDRANGE, COORDRANGE); elm_spinner_label_format_set(splZ, "light Z: %1.0f"); elm_spinner_step_set(splY, 1.0); pobject->lspZ = splZ; elm_box_pack_end(bx_navigligthup, splZ); evas_object_show(splZ); evas_object_smart_callback_add(splZ, "changed", _camera_light_changeZ_cb, light_node); eo_do(light_node, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &px, &py, &pz)); elm_spinner_value_set(splX, px); elm_spinner_value_set(splY, py); elm_spinner_value_set(splZ, pz); splangle = elm_spinner_add(win); elm_spinner_editable_set(splangle, EINA_TRUE); elm_spinner_min_max_set(splangle, 0.0, ANGLERANGE); elm_spinner_label_format_set(splangle, "angle: %1.0f"); elm_spinner_step_set(splangle, 1.0); pobject->lspangle = splangle; evas_object_data_set(splangle, axiskeys, light_xyz); elm_box_pack_end(bx_navigligthlow, splangle); elm_spinner_value_set(splangle, 0.0); evas_object_show(splangle); evas_object_smart_callback_add(splangle, "changed", _camera_light_angle_change_cb, light_node); splaX = elm_spinner_add(win); elm_spinner_min_max_set(splaX, 0.0, 1.0); elm_spinner_label_format_set(splaX, "axisX: %1.0f"); elm_spinner_step_set(splaX, 1.0); elm_box_pack_end(bx_navigligthlow, splaX); evas_object_show(splaX); evas_object_smart_callback_add(splaX, "changed", _camera_light_axisX_change_cb, splangle); splaY = elm_spinner_add(win); elm_spinner_min_max_set(splaY, 0.0, 1.0); elm_spinner_label_format_set(splaY, "axisY: %1.0f"); elm_spinner_step_set(splaY, 1.0); elm_box_pack_end(bx_navigligthlow, splaY); evas_object_show(splaY); evas_object_smart_callback_add(splaY, "changed", _camera_light_axisY_change_cb, splangle); splaZ = elm_spinner_add(win); elm_spinner_min_max_set(splaZ, 0.0, 1.0); elm_spinner_label_format_set(splaZ, "axisZ: %1.0f"); elm_spinner_step_set(splaZ, 1.0); elm_box_pack_end(bx_navigligthlow, splaZ); evas_object_show(splaZ); evas_object_smart_callback_add(spaZ, "changed", _camera_light_axisZ_change_cb, splangle); nnavig = elm_notify_add(win); elm_object_content_set(nnavig, bx_navigall); elm_notify_align_set(nnavig, posX, posY); evas_object_data_set(nnavig, pb, pobject); return nnavig; }
int ewallset_main() { Evas_Object *win, *bg, *bx, *bx2, *bx3, *bt, *ic, *image , *frame, *rd, *rdg,*sl; int tw,th; char buf[1024]; e->win = elm_win_add(NULL, "Ewallset", ELM_WIN_BASIC); elm_win_autodel_set(e->win, 1); evas_object_focus_set(e->win, 1); evas_object_smart_callback_add(e->win, "delete,request", usr_click_cancel, NULL); bg = elm_bg_add(e->win); elm_win_resize_object_add(e->win, bg); evas_object_size_hint_weight_set(bg, 1.0, 1.0); evas_object_show(bg); bx = elm_box_add(e->win); evas_object_size_hint_weight_set(bx, 1.0, 1.0); elm_win_resize_object_add(e->win,bx); evas_object_show(bx); image = elm_image_add(bx); elm_image_file_set(image, e->image_file, NULL); evas_object_size_hint_weight_set(image, 1.0, 1.0); evas_object_size_hint_align_set(image, -1.0, -1.0); elm_image_object_size_get(image,&e->w,&e->h); get_correct_size(410,e->w,e->h,&tw,&th,BY_HEIGHT); //printf("Res:%dx%d \n",e->w,e->h); //_get_correct_size(w,h,&tw,&th); evas_object_size_hint_min_set(image, tw, th); elm_box_pack_end(bx, image); evas_object_show(image); snprintf(buf, sizeof(buf), "Ewallset - %s", ecore_file_file_get(e->image_file)); elm_win_title_set(e->win, buf); e->quality = 90; sl = elm_slider_add(e->win); elm_slider_indicator_show_set(sl, EINA_FALSE); elm_object_text_set(sl, "Quality"); elm_slider_unit_format_set(sl, "%1.0f Percent"); elm_slider_span_size_set(sl, 250); elm_slider_min_max_set(sl, 10, 100); elm_slider_value_set(sl, e->quality); evas_object_smart_callback_add(sl, "delay,changed", slider_change_cb, NULL); evas_object_size_hint_align_set(sl, 0.5, 0.5); evas_object_size_hint_weight_set(sl, 0.0, 0.0); elm_box_pack_end(bx, sl); evas_object_show(sl); frame = elm_frame_add(e->win); elm_object_text_set(frame,"Where to place this Wallpaper"); elm_object_style_set(frame,"outdent_bottom"); elm_box_pack_end(bx, frame); evas_object_show(frame); bx3 = elm_box_add(e->win); elm_box_horizontal_set(bx3, 1); elm_object_content_set(frame,bx3); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, 0); elm_object_text_set(rd, "All Desktops"); evas_object_smart_callback_add(rd, "changed", desk_changed,e->rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); e->rdg = rd; rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, 1); elm_radio_group_add(rd, e->rdg); elm_object_text_set(rd, "This Desktop"); evas_object_smart_callback_add(rd, "changed", desk_changed,e->rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, 2); elm_radio_group_add(rd, e->rdg); elm_object_text_set(rd, "This Screen"); evas_object_smart_callback_add(rd, "changed", desk_changed,e->rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); ecore_timer_add(0.1,get_config_timer,NULL); frame = elm_frame_add(e->win); elm_object_text_set(frame,"Fill and Stretch Options"); elm_object_style_set(frame,"outdent_top"); elm_box_pack_end(bx, frame); evas_object_show(frame); bx3 = elm_box_add(e->win); elm_box_horizontal_set(bx3, 1); elm_box_homogeneous_set(bx3, EINA_TRUE); elm_object_content_set(frame,bx3); evas_object_show(bx3); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, IMPORT_STRETCH); elm_object_text_set(rd, "Stretch"); evas_object_smart_callback_add(rd, "changed", selection_changed,rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); rdg = rd; rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, IMPORT_TILE); elm_radio_group_add(rd, rdg); elm_object_text_set(rd, "Tile"); evas_object_smart_callback_add(rd, "changed", selection_changed,rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, IMPORT_CENTER); elm_radio_group_add(rd, rdg); elm_object_text_set(rd, "Center"); evas_object_smart_callback_add(rd, "changed", selection_changed,rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, IMPORT_SCALE_ASPECT_IN); elm_radio_group_add(rd, rdg); elm_object_text_set(rd, "Within"); evas_object_smart_callback_add(rd, "changed", selection_changed,rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, IMPORT_SCALE_ASPECT_OUT); elm_radio_group_add(rd, rdg); elm_object_text_set(rd, "Fill"); evas_object_smart_callback_add(rd, "changed", selection_changed,rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); rd = elm_radio_add(e->win); elm_radio_state_value_set(rd, IMPORT_SCALE_ASPECT_IN_TILE); elm_radio_group_add(rd, rdg); elm_object_text_set(rd, "Tile-In"); evas_object_smart_callback_add(rd, "changed", selection_changed,rdg); elm_box_pack_end(bx3, rd); evas_object_show(rd); elm_radio_value_set(rdg, 0); bx2 = elm_box_add(e->win); elm_box_horizontal_set(bx2, 1); elm_box_homogeneous_set(bx2, EINA_TRUE); elm_box_pack_end(bx, bx2); evas_object_show(bx2); ic = elm_icon_add(e->win); elm_icon_file_set(ic, "/usr/share/ewallset/data/dialog-ok.png", NULL); bt = elm_button_add(bx2); elm_object_text_set(bt, "Continue"); //elm_button_icon_set(bt, ic); evas_object_smart_callback_add(bt, "clicked", usr_click_ok, NULL); elm_box_pack_end(bx2, bt); evas_object_show(bt); ic = elm_icon_add(e->win); elm_icon_file_set(ic, "/usr/share/ewallset/data/dialog-cancel.png", NULL); bt = elm_button_add(bx2); elm_object_text_set(bt, "Cancel"); //elm_button_icon_set(bt, ic); evas_object_smart_callback_add(bt, "clicked", usr_click_cancel, NULL); elm_box_pack_end(bx2, bt); evas_object_show(bt); evas_object_show(e->win); //evas_object_del(e->win); return 0; }
/* public functions */ EM_INTERN Eina_Bool em_gui_init(void) { Evas_Object *o, *oo; /* allocate our object */ gui = EM_OBJECT_ALLOC(Em_Gui, EM_GUI_TYPE, _em_gui_cb_free); if (!gui) return EINA_FALSE; /* create window */ gui->w_win = elm_win_add(NULL, "emote", ELM_WIN_BASIC); elm_win_title_set(gui->w_win, "Emote"); elm_win_keyboard_mode_set(gui->w_win, ELM_WIN_KEYBOARD_ALPHA); evas_object_smart_callback_add(gui->w_win, "delete,request", _em_gui_cb_win_del, NULL); /* create background */ o = elm_bg_add(gui->w_win); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(gui->w_win, o); evas_object_show(o); o = elm_box_add(gui->w_win); elm_box_homogeneous_set(o, EINA_FALSE); elm_win_resize_object_add(gui->w_win, o); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_box_align_set(o, 0.5, 0.5); evas_object_show(o); /* create main toolbar */ gui->w_tb = elm_toolbar_add(gui->w_win); elm_toolbar_icon_size_set(gui->w_tb, (8 * elm_config_scale_get())); elm_toolbar_align_set(gui->w_tb, 1.0); elm_toolbar_shrink_mode_set(gui->w_tb, ELM_TOOLBAR_SHRINK_SCROLL); elm_toolbar_item_append(gui->w_tb, "preferences-system", _("Settings"), _em_gui_cb_settings, NULL); elm_toolbar_item_append(gui->w_tb, "application-exit", _("Quit"), _em_gui_cb_quit, NULL); evas_object_size_hint_weight_set(gui->w_tb, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(gui->w_tb, EVAS_HINT_FILL, 0.0); evas_object_show(gui->w_tb); elm_box_pack_start(o, gui->w_tb); /* create packing box */ gui->w_box = elm_panes_add(gui->w_win); elm_panes_fixed_set(gui->w_box, EINA_FALSE); elm_panes_horizontal_set(gui->w_box, EINA_FALSE); elm_panes_content_left_size_set(gui->w_box, 0.20); evas_object_size_hint_weight_set(gui->w_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(gui->w_box, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(o, gui->w_box); evas_object_show(gui->w_box); gui->w_chansel_itc = elm_genlist_item_class_new(); gui->w_chansel_itc->item_style = "default"; gui->w_chansel_itc->func.text_get = _em_gui_chansel_cb_label_get; gui->w_chansel_itc->func.content_get = NULL; gui->w_chansel_itc->func.state_get = NULL; gui->w_chansel_itc->func.del = NULL; /* create channel selector w/ frame */ gui->w_chansel = elm_genlist_add(gui->w_win); elm_genlist_mode_set(gui->w_chansel, ELM_LIST_SCROLL); evas_object_size_hint_min_set(gui->w_chansel, 200, MIN_WIN_HEIGHT); evas_object_size_hint_weight_set(gui->w_chansel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(gui->w_chansel); o = elm_frame_add(gui->w_win); elm_object_part_text_set(o, "default", "Channels"); oo = elm_frame_add(gui->w_win); elm_object_style_set(oo, "pad_small"); elm_object_part_content_set(o, "default", oo); elm_object_part_content_set(oo, "default", gui->w_chansel); elm_object_part_content_set(gui->w_box, "left", o); evas_object_show(oo); evas_object_show(o); /* set min size of window and show it */ evas_object_show(gui->w_win); evas_object_resize(gui->w_win, MIN_WIN_WIDTH, MIN_WIN_HEIGHT); gui->servers = eina_hash_string_small_new(_em_gui_server_del); return EINA_TRUE; }
/* ad-hoc network .-box-------------------------------------------------------------------. | .-scroller----------------------------------------------------------. | | | .-table---------------------------------------------------------. | | | | | Crate an Ad-Hoc Network | | | | | | ESSID: [...................................] | | | | | | IP: [...................................] | | | | | | Channel: [...................................] | | | | | | [] Activate Internet Connection Sharing | | | | | | [] Use Encryption (WEP only) | | | | | | Key: [...................................] | | | | | `---------------------------------------------------------------' | | | `-------------------------------------------------------------------' | | .-box---------------------------------------------------------------. | | | [Cancel] [OK] | | | `-------------------------------------------------------------------' | `-----------------------------------------------------------------------' */ void wicd_adhoc(void) { Evas_Object *bx, *sc, *tb, *ob, *bx2; bx = elm_box_add(wicdelm->win); elm_box_homogeneous_set(bx, EINA_FALSE); elm_box_horizontal_set(bx, EINA_FALSE); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bx); wicdelm->adhoc.page = bx; sc = elm_scroller_add(wicdelm->win); elm_scroller_content_min_limit(sc, EINA_TRUE, EINA_FALSE); elm_scroller_policy_set(sc , ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE); elm_box_pack_end(bx, sc); evas_object_show(sc); // table tb = elm_table_add(wicdelm->win); elm_table_homogeneous_set(tb, EINA_FALSE); evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, 0.0); elm_object_content_set(sc, tb); evas_object_show(tb); ob = elm_label_add(wicdelm->win); elm_object_text_set(ob, "<b>Create an Ad-Hoc Network</b>"); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.5); elm_table_pack(tb, ob, 0, 0, 2, 1); evas_object_show(ob); ob = elm_label_add(wicdelm->win); elm_object_text_set(ob, "ESSID:"); evas_object_size_hint_weight_set(ob, 0.0, 0.0); evas_object_size_hint_align_set(ob, 0.0, 0.5); elm_table_pack(tb, ob, 0, 1, 1, 1); evas_object_show(ob); ob = elm_entry_add(wicdelm->win); elm_entry_scrollable_set(ob, EINA_TRUE); elm_entry_single_line_set(ob, EINA_TRUE); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); elm_table_pack(tb, ob, 1, 1, 1, 1); evas_object_show(ob); evas_object_smart_callback_add(ob, "changed", _changed_cb, NULL); wicdelm->adhoc.essid = ob; ob = elm_label_add(wicdelm->win); elm_object_text_set(ob, "IP:"); evas_object_size_hint_weight_set(ob, 0.0, 0.0); evas_object_size_hint_align_set(ob, 0.0, 0.5); elm_table_pack(tb, ob, 0, 2, 1, 1); evas_object_show(ob); ob = elm_entry_add(wicdelm->win); elm_entry_scrollable_set(ob, EINA_TRUE); elm_entry_single_line_set(ob, EINA_TRUE); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); elm_table_pack(tb, ob, 1, 2, 1, 1); evas_object_show(ob); evas_object_smart_callback_add(ob, "changed", _changed_cb, NULL); wicdelm->adhoc.ip = ob; ob = elm_label_add(wicdelm->win); elm_object_text_set(ob, "Channel:"); evas_object_size_hint_weight_set(ob, 0.0, 0.0); evas_object_size_hint_align_set(ob, 0.0, 0.5); elm_table_pack(tb, ob, 0, 3, 1, 1); evas_object_show(ob); ob = elm_slider_add(wicdelm->win); elm_slider_min_max_set(ob, 1.0, 14.0); elm_slider_indicator_format_set(ob, "%02.0f"); elm_slider_unit_format_set(ob, "%02.0f"); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); elm_table_pack(tb, ob, 1, 3, 1, 1); evas_object_show(ob); evas_object_smart_callback_add(ob, "delay,changed", _changed_cb, NULL); wicdelm->adhoc.channel = ob; ob = elm_check_add(wicdelm->win); elm_object_text_set(ob, "Share Internet"); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.5); elm_table_pack(tb, ob, 0, 4, 2, 1); evas_object_show(ob); evas_object_smart_callback_add(ob, "changed", _changed_cb, NULL); wicdelm->adhoc.shareInternet = ob; ob = elm_check_add(wicdelm->win); elm_object_text_set(ob, "WEP Encryption"); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.5); elm_table_pack(tb, ob, 0, 5, 2, 1); evas_object_show(ob); evas_object_smart_callback_add(ob, "changed", _changed_cb, NULL); wicdelm->adhoc.useEncryption = ob; ob = elm_label_add(wicdelm->win); elm_object_text_set(ob, "Key:"); evas_object_size_hint_weight_set(ob, 0.0, 0.0); evas_object_size_hint_align_set(ob, 0.0, 0.5); elm_table_pack(tb, ob, 0, 6, 1, 1); evas_object_show(ob); ob = elm_entry_add(wicdelm->win); elm_entry_scrollable_set(ob, EINA_TRUE); elm_entry_single_line_set(ob, EINA_TRUE); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.0); evas_object_size_hint_weight_set(ob, EVAS_HINT_EXPAND, 0.0); elm_table_pack(tb, ob, 1, 6, 1, 1); evas_object_show(ob); evas_object_smart_callback_add(ob, "changed", _changed_cb, NULL); wicdelm->adhoc.key = ob; bx2 = elm_box_add(wicdelm->win); elm_box_homogeneous_set(bx2, EINA_TRUE); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_align_set(bx2, 1.0, 1.0); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx, bx2); evas_object_show(bx2); ob = elm_button_add(wicdelm->win); elm_object_text_set(ob, "Cancel"); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.0); evas_object_smart_callback_add(ob, "clicked", _cancel_cb, NULL); elm_box_pack_end(bx2, ob); evas_object_show(ob); ob = elm_button_add(wicdelm->win); elm_object_text_set(ob, "Ok"); evas_object_size_hint_align_set(ob, EVAS_HINT_FILL, 0.0); evas_object_smart_callback_add(ob, "clicked", _ok_cb, NULL); elm_box_pack_end(bx2, ob); evas_object_show(ob); wicdelm->adhoc.item = elm_naviframe_item_simple_push(wicdelm->naviframe, bx); }
void Box::setHomogeneous(bool enabled) { elm_box_homogeneous_set(getHandle(), enabled); }
int message_show_view_init(char* path, GHashTable *properties) { struct MessageShowViewData *view; Evas_Object *win, *ico, *box, *obj; int ret; GVariant *tmp; const char *direction = NULL; Eina_Bool in_msg = EINA_FALSE; /* path MUST always be set! It will be freed by destroying the messageviews hashtable in here, thus must be a copy */ if (!path) { g_warning("Trying to initialize a message view without path!"); return 1; } g_debug("Initializing the contact view for '%s'", path); view = malloc(sizeof(struct MessageShowViewData)); if (!view) { g_critical("Failed to allocate message view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(path); return 1; } ret = ui_utils_view_init(VIEW_PTR(*view), ELM_WIN_BASIC, D_("Message"), NULL, NULL, _destroy_cb); if (ret) { g_critical("Failed to init message view for '%s'", path); if (properties) { g_hash_table_unref(properties); } free(view); free(path); return ret; } /* cache the views to open only one view per message */ if (messageviews == NULL) { messageviews = g_hash_table_new_full(g_str_hash, g_str_equal, free, NULL); } g_hash_table_insert(messageviews, path, view); view->path = path; view->number = NULL; view->name = NULL; view->photopath = NULL; elm_theme_extension_add(NULL, phoneui_theme); win = ui_utils_view_window_get(VIEW_PTR(*view)); ui_utils_view_delete_callback_set(VIEW_PTR(*view), _delete_cb); ui_utils_view_layout_set(VIEW_PTR(*view), phoneui_theme, "phoneui/messages/show"); GList *keys = g_hash_table_get_keys(properties); for (; keys; keys = keys->next) { tmp = g_hash_table_lookup(properties, keys->data); if (tmp) { g_debug("--- %s: %s", (char *)keys->data, g_variant_print(tmp, TRUE)); } } tmp = g_hash_table_lookup(properties, "Peer"); if (!tmp) { tmp = g_hash_table_lookup(properties, "Sender"); } if (!tmp) { tmp = g_hash_table_lookup(properties, "Recipient"); } if (tmp) { view->number = g_variant_dup_string(tmp, NULL); g_debug("Found number %s - starting lookup", view->number); // FIXME: use new @Contacts feature from opimd whenever it is // clear how to do that :P phoneui_utils_contact_lookup(view->number, _common_name_callback, common_utils_object_ref(view)); ui_utils_view_text_set(VIEW_PTR(*view), "text_number", view->number); } tmp = g_hash_table_lookup(properties, "Timestamp"); if (tmp) { char *date = common_utils_timestamp_to_date( (long)g_variant_get_int32(tmp)); if (date) { g_debug("Found date %s", date); ui_utils_view_text_set(VIEW_PTR(*view), "text_date", date); free(date); } } view->photo = elm_icon_add(win); evas_object_size_hint_aspect_set(view->photo, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); elm_image_file_set(view->photo, phoneui_theme, "icon/contact"); ui_utils_view_swallow(VIEW_PTR(*view), "photo", view->photo); evas_object_show(view->photo); ico = elm_icon_add(win); tmp = g_hash_table_lookup(properties, "Direction"); if (tmp) { direction = g_variant_get_string(tmp, NULL); if (strcmp(direction, "in") == 0) { g_debug("Setting status icon for an incoming message"); in_msg = EINA_TRUE; elm_image_file_set(ico, phoneui_theme, "icon/phonelog-incoming"); } else { g_debug("Setting status icon for a sent message"); in_msg = EINA_FALSE; elm_image_file_set(ico, phoneui_theme, "icon/phonelog-outgoing"); } } ui_utils_view_swallow(VIEW_PTR(*view), "icon_status", ico); evas_object_show(ico); const char *content = NULL; tmp = g_hash_table_lookup(properties, "Content"); if (tmp) { content = elm_entry_utf8_to_markup(g_variant_get_string(tmp, NULL)); } view->sc_content = elm_scroller_add(win); elm_scroller_bounce_set(view->sc_content, EINA_FALSE, EINA_FALSE); view->content = elm_entry_add(win); elm_entry_anchor_hover_style_set(view->content, "popout"); elm_entry_anchor_hover_parent_set(view->content, win); evas_object_size_hint_weight_set(view->content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); if (content) { elm_object_text_set(view->content, content); } elm_object_content_set(view->sc_content, view->content); evas_object_show(view->content); ui_utils_view_swallow(VIEW_PTR(*view), "text_content", view->sc_content); evas_object_show(view->sc_content); obj = elm_button_add(win); elm_object_text_set(obj, D_("Close")); evas_object_smart_callback_add(obj, "clicked", _close_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "button_close", obj); evas_object_show(obj); // Options button with hover view->hv = elm_hover_add(win); obj = elm_button_add(win); elm_object_text_set(obj, D_("Options")); evas_object_smart_callback_add(obj, "clicked", _hover_bt_1, view->hv); ui_utils_view_swallow(VIEW_PTR(*view), "button_options", obj); evas_object_show(obj); elm_hover_parent_set(view->hv, win); elm_hover_target_set(view->hv, obj); box = elm_box_add(win); elm_box_horizontal_set(box, 0); elm_box_homogeneous_set(box, 1); evas_object_show(box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Delete")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _delete_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); if (in_msg) { obj = elm_button_add(win); elm_object_text_set(obj, D_("Call")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _call_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); } obj = elm_button_add(win); elm_object_text_set(obj, D_("Add Contact")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _new_contact_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); view->add_contact_bt = obj; obj = elm_button_add(win); elm_object_text_set(obj, D_("Forward")); evas_object_size_hint_min_set(obj, 140, 80); evas_object_smart_callback_add(obj, "clicked", _forward_clicked, view); evas_object_show(obj); elm_box_pack_end(box, obj); elm_object_part_content_set(view->hv, "top", box); obj = elm_button_add(win); elm_object_text_set(obj, D_("Answer")); evas_object_smart_callback_add(obj, "clicked", _answer_clicked, view); ui_utils_view_swallow(VIEW_PTR(*view), "button_answer", obj); evas_object_show(obj); if (in_msg) { g_debug("going to set read status for the message"); phoneui_utils_message_set_read_status(view->path, 1, NULL, NULL); g_debug("done - destroying properties now"); } g_hash_table_destroy(properties); g_debug("done"); return 0; }
void create_cat_dialog(void *data, Evas_Object *obj, void *event_info) { Evas_Object *bg, *inwin, *lb, *bt, *bt1, *entry, *vbox, *hbox, *hbox1; cat_dialog = elm_win_add(NULL, "inwin", ELM_WIN_DIALOG_BASIC); elm_win_title_set(cat_dialog, "Add Category"); elm_win_autodel_set(cat_dialog, 1); bg = elm_bg_add(cat_dialog); elm_win_resize_object_add(cat_dialog, bg); evas_object_size_hint_weight_set(bg, 1.0, 1.0); evas_object_show(bg); inwin = elm_win_inwin_add(cat_dialog); elm_object_style_set(inwin, "minimal_vertical"); //add vbox vbox = elm_box_add(cat_dialog); elm_win_resize_object_add(cat_dialog, vbox); evas_object_size_hint_weight_set(vbox, 1.0, 1.0); elm_object_content_set(inwin, vbox); evas_object_show(vbox); //add hbox to vbox hbox = elm_box_add(cat_dialog); elm_box_horizontal_set(hbox, 1); evas_object_size_hint_weight_set(hbox, 1.0, 0.0); evas_object_size_hint_align_set(hbox, -1.0, 0.0); elm_box_pack_end(vbox, hbox); evas_object_show(hbox); //add a label to hbox lb = elm_label_add(cat_dialog); elm_object_text_set(lb,"Category:"); elm_box_pack_end(hbox, lb); evas_object_show(lb); //add an entry to hbox entry = elm_entry_add(cat_dialog); //evas_object_size_hint_weight_set(entry, 1.0, 0.0); //evas_object_size_hint_align_set(entry, -1.0, 0.0); elm_entry_entry_set(entry, "New Cat"); elm_entry_single_line_set(entry, 1); elm_entry_editable_set(entry, 1); elm_entry_line_wrap_set(entry, 0); elm_box_pack_end(hbox, entry); evas_object_show(entry); //add another hbox hbox1 = elm_box_add(cat_dialog); elm_box_horizontal_set(hbox1, 1); elm_box_homogeneous_set(hbox1, 1); elm_box_pack_end(vbox, hbox1); evas_object_show(hbox1); //add yes button bt = elm_button_add(cat_dialog); elm_object_text_set(bt, "Add"); evas_object_size_hint_align_set(bt, -1.0, -1.0); elm_box_pack_end(hbox1, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", cat_dialog_add, entry); //add close button bt1 = elm_button_add(cat_dialog); elm_object_text_set(bt1, "Cancel"); elm_box_pack_end(hbox1, bt1); evas_object_show(bt1); evas_object_smart_callback_add(bt1, "clicked", cat_win_del, cat_dialog); evas_object_show(inwin); evas_object_resize(cat_dialog, 480, 640); evas_object_show(cat_dialog); }