#ifndef INPUTSCROLLINGMENU_H #define INPUTSCROLLINGMENU_H #include #include "ValuedGuiElement.h" class InputScrollingMenu : public ValuedGuiElement { int x, y; int displayLength; int scrollDiff, scrollStep; int length; const char * const *command; int commandMaxCharCount; void (*onScroll)(); int value; int scrollPosition; int oldMouseB; public: InputScrollingMenu(BITMAP *desiredCanvas, int desiredX, int desiredY, int desiredDisplayLength, int desiredScrollDiff, int desiredScrollStep, int desiredLength, const char * const *desiredCommand, int desiredCommandMaxCharCount, bool desiredBlocking, void (*desiredOnScroll)() = NULL, int desiredSelection = 0, int desiredScrollPosition = 0, bool desiredActive = false) : ValuedGuiElement(desiredCanvas, desiredBlocking, desiredActive), x(desiredX), y(desiredY), displayLength(desiredDisplayLength), scrollDiff(desiredScrollDiff), scrollStep(desiredScrollStep), length(desiredLength), command(desiredCommand), commandMaxCharCount(desiredCommandMaxCharCount), onScroll(desiredOnScroll), value(desiredSelection), scrollPosition(desiredScrollPosition), oldMouseB(0x0) {} int getScrollPosition(); void setCommand(int desiredLength, const char * const *desiredCommand); void setScrollPosition(int desiredScrollPosition); void previous(); void next(); void scrollUp(); void scrollDown(); int getValue(); void setValue(int desiredValue); bool acknowledgeKeyStroke(int keyStroke); bool acknowledgeMouse(); void shift(int xOffset, int yOffset); bool within(int xTarget, int yTarget); void draw(); void erase(); }; #endif