Esempio n. 1
0
bool ActivityWidgetsView::AddWidget(ModuleDef &type, int x, int y, int w, int h, string id)
{
        for (uint i = 0;i < widgets.size();i++)
        {
                if (widgets[i]->getId() == id) id = "";
        }

        for (int nid = 0;nid < 9999;nid++)
        {
                bool failed = false;
                for (uint i = 0;i < widgets.size();i++)
                {
                        if (widgets[i]->getId() == Utils::to_string(nid))
                                failed = true;
                }

                if (!failed)
                {
                        id = Utils::to_string(nid);
                        break;
                }
        }

        //create new widget
        try
        {
                Widget *widget = new Widget(theme, evas, type, id, parent, this);
                _AddWidget(widget);
                widget->Move(x, y);
                widget->Resize(w, h);
                widget->Show();
        }
        catch(const std::exception &e)
        {
                Utils::logger("module") << Priority::ERROR << "ActivityWidgetsView: Error creating widget, " <<
                        e.what() << log4cpp::eol;
                return false;
        }

        SaveWidgets();

        return true;
}