EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *vbox, *hbox, *ic, *ck, *fs_bt, *en, *lb, *sep; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("fileselector-button", "File Selector Button Example"); elm_win_autodel_set(win, EINA_TRUE); vbox = elm_box_add(win); evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, vbox); evas_object_show(vbox); ic = elm_icon_add(win); elm_icon_standard_set(ic, "file"); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); /* file selector button */ fs_bt = elm_fileselector_button_add(win); elm_fileselector_button_path_set(fs_bt, "/tmp"); elm_object_text_set(fs_bt, "Select a file"); elm_object_part_content_set(fs_bt, "icon", ic); elm_box_pack_end(vbox, fs_bt); evas_object_show(fs_bt); evas_object_show(ic); /* attribute setting knobs */ sep = elm_separator_add(win); elm_separator_horizontal_set(sep, EINA_TRUE); elm_box_pack_end(vbox, sep); evas_object_show(sep); hbox = elm_box_add(win); elm_box_horizontal_set(hbox, EINA_TRUE); elm_box_pack_end(vbox, hbox); evas_object_show(hbox); ck = elm_check_add(win); elm_object_text_set(ck, "editable selection"); elm_check_state_set(ck, elm_fileselector_button_is_save_get(fs_bt)); evas_object_smart_callback_add(ck, "changed", _current_sel_toggle, fs_bt); elm_box_pack_end(hbox, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "\"inwin\" mode"); elm_check_state_set(ck, elm_fileselector_button_inwin_mode_get(fs_bt)); evas_object_smart_callback_add(ck, "changed", _inwin_mode_toggle, fs_bt); elm_box_pack_end(hbox, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "folders only"); elm_check_state_set(ck, elm_fileselector_button_folder_only_get(fs_bt)); evas_object_smart_callback_add(ck, "changed", _folder_only_toggle, fs_bt); elm_box_pack_end(hbox, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "expandable"); elm_check_state_set(ck, elm_fileselector_button_expandable_get(fs_bt)); evas_object_smart_callback_add(ck, "changed", _expandable_toggle, fs_bt); elm_box_pack_end(hbox, ck); evas_object_show(ck); lb = elm_label_add(win); elm_object_text_set(lb, "Last selection:"); elm_box_pack_end(vbox, lb); evas_object_show(lb); en = elm_entry_add(win); elm_entry_line_wrap_set(en, EINA_FALSE); elm_entry_editable_set(en, EINA_FALSE); evas_object_smart_callback_add(fs_bt, "file,chosen", _file_chosen, en); elm_box_pack_end(vbox, en); evas_object_show(en); evas_object_resize(win, 400, 400); evas_object_show(win); elm_run(); elm_shutdown(); return 0; }
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; }