File: layers.cpp

package info (click to toggle)
openmw 0.50.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,076 kB
  • sloc: cpp: 380,958; xml: 2,192; sh: 1,449; python: 911; makefile: 26; javascript: 5
file content (28 lines) | stat: -rw-r--r-- 868 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "layers.hpp"

#include <components/debug/debuglog.hpp>

namespace LuaUi
{
    size_t Layer::indexOf(std::string_view name)
    {
        for (size_t i = 0; i < count(); i++)
            if (at(i)->getName() == name)
                return i;
        return count();
    }

    void Layer::insert(size_t index, std::string_view name, Options options)
    {
        if (index > count())
            throw std::logic_error("Invalid layer index");
        if (indexOf(name) < count())
            Log(Debug::Error) << "Layer \"" << name << "\" already exists";
        else
        {
            auto layer = MyGUI::LayerManager::getInstance().createLayerAt(std::string(name), "OverlappedLayer", index);
            auto overlappedLayer = dynamic_cast<MyGUI::OverlappedLayer*>(layer);
            overlappedLayer->setPick(options.mInteractive);
        }
    }
}