1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-07 03:54:40 +00:00
OpenMW/apps/openmw/mwgui/spellwindow.hpp

66 lines
1.6 KiB
C++
Raw Normal View History

#ifndef MWGUI_SPELLWINDOW_H
#define MWGUI_SPELLWINDOW_H
#include "windowpinnablebase.hpp"
namespace MWGui
{
2013-03-03 11:01:19 +00:00
class SpellIcons;
bool sortItems(const MWWorld::Ptr& left, const MWWorld::Ptr& right)
{
int cmp = left.getClass().getName(left).compare(
right.getClass().getName(right));
return cmp < 0;
}
bool sortSpells(const std::string& left, const std::string& right)
{
const MWWorld::Store<ESM::Spell> &spells =
MWBase::Environment::get().getWorld()->getStore().get<ESM::Spell>();
const ESM::Spell* a = spells.find(left);
const ESM::Spell* b = spells.find(right);
int cmp = a->mName.compare(b->mName);
return cmp < 0;
}
class SpellWindow : public WindowPinnableBase, public NoDrop
{
public:
SpellWindow(DragAndDrop* drag);
2013-03-03 11:01:19 +00:00
virtual ~SpellWindow();
2012-05-29 10:35:03 +00:00
void updateSpells();
void onFrame(float dt) { NoDrop::onFrame(dt); }
protected:
MyGUI::ScrollView* mSpellView;
MyGUI::Widget* mEffectBox;
2012-05-29 10:35:03 +00:00
int mHeight;
int mWidth;
std::string mSpellToDelete;
2012-05-29 10:35:03 +00:00
void addGroup(const std::string& label, const std::string& label2);
int estimateHeight(int numSpells) const;
void onWindowResize(MyGUI::Window* _sender);
void onEnchantedItemSelected(MyGUI::Widget* _sender);
void onSpellSelected(MyGUI::Widget* _sender);
void onMouseWheel(MyGUI::Widget* _sender, int _rel);
void onDeleteSpellAccept();
virtual void onPinToggled();
2012-05-29 10:35:03 +00:00
virtual void open();
2013-03-03 11:01:19 +00:00
SpellIcons* mSpellIcons;
};
}
#endif