#ifndef INPUTSCROLLBAR_H #define INPUTSCROLLBAR_H #include #include "ValuedGuiElement.h" #include "InputGuiElementCallback.h" class InputScrollbar : public ValuedGuiElement { int x, y; int w, h; int limit; void (*func)(); InputGuiElementCallback upButton; InputGuiElementCallback downButton; int value; public: void scrollUp(); void scrollDown(); InputScrollbar(BITMAP *desiredCanvas, int desiredX, int desiredY, int desiredW, int desiredH, int desiredLimit, void (*desiredFunc)(), int desiredValue = 0) : ValuedGuiElement(desiredCanvas, false, false), x(desiredX), y(desiredY), w(desiredW), h(desiredH), limit(desiredLimit), func(desiredFunc), value(desiredValue), upButton(desiredCanvas, desiredX, desiredY, desiredW, desiredW, "-", (GuiElement*)this, (void (GuiElement::*)())&InputScrollbar::scrollUp), downButton(desiredCanvas, desiredX, desiredY + desiredH - desiredW, desiredW, desiredW, "+", (GuiElement*)this, (void (GuiElement::*)())&InputScrollbar::scrollDown) {} int getValue(); void setValue(int desiredValue); void setLimit(int desiredLimit); InputGuiElementCallback* getUpButtonPointer(); InputGuiElementCallback* getDownButtonPointer(); bool acknowledgeMouse(); void focus(); void blur(); void shift(int xOffset, int yOffset); bool within(int xOffset, int yOffset); void draw(); void erase(); }; #endif