bool XmasWidget::LoadWidget(std::string, double _x, double _y, std::string _id) { std::string witem = "calaos/widget/xmas"; if (!LoadEdje(witem)) { return false; } setLayer(500); EdjeObject::Show(); clip = evas_object_rectangle_add(evas); evas_object_show(clip); edje_object_part_swallow(edje, "widget.swallow", clip); Resize(1024, 768); //create some flakes for (int i = 0;i < MAX_FLAKE;i++) { std::string type; if (i < MAX_FLAKE / 3) type = "flake_small"; else if (i >= MAX_FLAKE / 3 && i < (MAX_FLAKE / 3) * 2) type = "flake_medium"; else type = "flake_large"; EdjeObject *o = new EdjeObject(theme, evas); if (!o->LoadEdje("calaos/widget/xmas/" + type)) cError() << "Error loading edje group calaos/widget/xmas/" + type; o->setLayer(500); evas_object_clip_set(o->getEvasObject(), clip); Flake *flake = new Flake(o); int tx = random() % clipw; int ty = random() % cliph; flake->Move(tx + clipx, ty + clipy); flake->Show(); flake->setStart(ecore_time_get() + (double)(random() % (flake->getHeight() * 10)) / (double)flake->getHeight()); if (type == "flake_small") flake->setSpeed(1); if (type == "flake_medium") flake->setSpeed(2); if (type == "flake_large") flake->setSpeed(3); flakes.push_back(flake); } return true; }