cxx: Fix bg examples

One uses the Bg widget and the other one uses the part.
This commit is contained in:
Jean-Philippe Andre 2017-11-23 14:10:24 +09:00
parent 63725d71fd
commit e738c5e869
2 changed files with 27 additions and 15 deletions

View File

@ -1,17 +1,25 @@
#define EFL_EO_API_SUPPORT
#include <Elementary.hh>
using efl::eo::instantiate;
EAPI_MAIN int
elm_main (int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
efl::ui::Win win;
win.text_set("Bg Plain");
efl::ui::Win win(instantiate);
win.text_set("Window Background");
win.autohide_set(true);
win.size_set({320,320});
try {
auto bg = efl::eo::downcast<efl::ui::win::Part>(win.part("background"));
bg.color_set(139, 69, 19, 255);
} catch (std::exception const&e) {
std::cerr << "Failed to set bg color: " << e.what() << std::endl;
}
win.eo_cxx::efl::Gfx::size_set({320,320});
//win.size_set(320,320);
win.visible_set(true);
// Clean exit
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
efl::eolian::event_add(efl::ui::Win::delete_request_event, win,
std::bind([&](){ win = nullptr; }));
elm_run();
return 0;

View File

@ -9,27 +9,31 @@
#include <Elementary.hh>
#include <sstream>
using efl::eo::instantiate;
efl::ui::Win win;
static efl::ui::Win win;
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
efl_main(void *data EINA_UNUSED, const Efl_Event *ev)
{
Efl_Loop_Arguments *args = static_cast<Efl_Loop_Arguments *>(ev->info);
win = efl::ui::Win(instantiate);
::efl_ref(win._eo_ptr()); // FIXME: Window is doing BAD THINGS™!
win.text_set("Bg Image");
win.autohide_set(true);
win.delete_request_event_cb_add([](){ win = nullptr; efl_exit(0); });
std::string path;
if (eina_array_count(args->argv) > 0)
path = static_cast<const char *>(eina_array_data_get(args->argv, 0));
else
path = "performance/background.png";
efl::ui::Bg bg(instantiate, win);
bg.scale_type_set(EFL_UI_IMAGE_SCALE_TYPE_FILL);
bg.file_set("performance/background.png", nullptr);
bg.file_set(path, nullptr);
win.content_set(bg);
win.size_set({640, 400});
std::cout << "win " << win._eo_ptr() << std::endl;
win.delete_request_event_cb_add([](){ win = nullptr; efl_exit(0); });
}
EFL_MAIN()