#ifndef D_LYT_DEPOSIT_BOX_CURSOR_H
#define D_LYT_DEPOSIT_BOX_CURSOR_H

#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_common_icon_item.h"
#include "nw4r/lyt/lyt_pane.h"

// made up name
class dLytDepositBoxCursor_c : public d2d::dSubPane {
public:
    enum ItemLocation_e {
        LOC_POUCH,
        LOC_STOCK,
    };

public:
    dLytDepositBoxCursor_c() : mSlot(-1), mItem(0), mItemLocation(0) {}
    /* vt 0x0C */ virtual bool build(d2d::ResAccIf_c *resAcc) override;
    /* vt 0x10 */ virtual bool remove() override;
    /* vt 0x14 */ virtual bool execute() override;
    /* vt 0x18 */ virtual nw4r::lyt::Pane *getPane() override {
        return mLyt.getLayout()->GetRootPane();
    }
    /* vt 0x1C */ virtual d2d::LytBase_c *getLyt() override {
        return &mLyt;
    }
    /* vt 0x20 */ virtual const char *getName() const override {
        return mLyt.getName();
    }

    /* vt 0x08 */ virtual ~dLytDepositBoxCursor_c() {}

    bool draw();

    void init(s32 location, s32 slot, s32 item, bool isSell);
    void updateSlot(s32 location, s32 slot, s32 item, bool isSell);
    void activateSell();

    bool isVisible() const {
        return mIsVisible;
    }

    void setVisible(bool b) {
        mIsVisible = b;
    }

private:
    static const s32 NUM_ICONS_PER_PAGE = 12;

    void initIcon();
    void realizeNav();

    /* 0x008 */ d2d::dLytSub mLyt;
    /* 0x09C */ d2d::AnmGroup_c mAnm[2];
    /* 0x11C */ nw4r::lyt::Pane *mpStickCursorPane;
    /* 0x120 */ nw4r::lyt::Pane *mpGetIconPane;
    /* 0x124 */ dLytCommonIconItem_c mIcon;
    /* 0x930 */ d2d::SubPaneList mSubpaneList;
    /* 0x938 */ d2d::SubPaneListNode mNode;
    /* 0x948 */ bool mIsVisible;
    /* 0x949 */ bool mIsSellMode;
    /* 0x94C */ s32 mSlot;
    /* 0x950 */ s32 mItem;
    /* 0x954 */ s32 mItemLocation;
};

#endif
