#ifndef INPUTMENUBAR_H #define INPUTMENUBAR_H #include "ValuedGuiElement.h" #include "InputMenu.h" class InputMenuBar : public ValuedGuiElement { InputMenu content; const int *barMenuLength; const char ** const *barMenuCommand; const int **barMenuAcceleratorKey; const int *barMenuCommandCharCount; void (* const * const *barMenuFunction)(); bool above; bool barMenuIsUp; int barMenuX, barMenuY; InputMenu barMenu; bool showContentSelection; int oldMouseB; void decide(); public: InputMenuBar(BITMAP *desiredCanvas, const InputMenu &desiredContent, const int *desiredBarMenuLength, const char ** const *desiredBarMenuCommand, const int **desiredBarMenuAcceleratorKey, const int *desiredBarMenuCommandCharCount, void (* const * const *desiredBarMenuFunction)(), bool desiredAbove, bool desiredBlocking, bool desiredActive = false) : ValuedGuiElement(desiredCanvas, desiredBlocking, desiredActive), content(desiredContent), barMenuLength(desiredBarMenuLength), barMenuCommand(desiredBarMenuCommand), barMenuAcceleratorKey(desiredBarMenuAcceleratorKey), barMenuCommandCharCount(desiredBarMenuCommandCharCount), barMenuFunction(desiredBarMenuFunction), above(desiredAbove), barMenu(spawnBarMenu()), oldMouseB(0x0) { killBarMenu(); } bool getBarMenuIsUp(); void bringUpMenu(int index); InputMenu spawnBarMenu(); void killBarMenu(); bool getValue(); bool acknowledgeKeyStroke(int keyStroke); bool acknowledgeMouse(); void shift(int xOffset, int yOffset); bool within(int xTarget, int yTarget); void draw(); void erase(); }; #endif