#ifndef SelectionBox_H #define SelectionBox_H #include "Array.h" #include "Drawing.h" namespace Framework { class TextField; //! TextField.h class VScrollBar; //! Scroll.h class Border; //! Border.h class Button; //! Button.h class AlphaField; //! AlphaField.h class Text; //! Tet.h class Font; //! Font.h class TextRenderer; //! A 2D GUI Framework drawing. Represents a box from which //! the user can select different values by expanding it class SelectionBox : public DrawableBackground { public: class Style : public DrawableBackground::Style { public: //! If this flag is set, each value in the list has a border static const __int64 FieldBorder = 0x000001000; //! If this flag is set, each value in the list has a background static const __int64 FieldBackground = 0x000002000; //! If this flag is set, each value in the list has an image //! as background static const __int64 FieldHImage = 0x000004000; //! If this flag is set, each value in the list has a //! transparent background static const __int64 FieldHAlpha = 0x000008000; //! If this flag is set, each value in the list has a //! color gradient static const __int64 FieldBuffer = 0x000010000; //! If this flag is set, the currently selected value //! gets a background static const __int64 SelectionBackground = 0x000020000; //! If this flag is set, the currently selected value //! gets a background image static const __int64 SelectionHImage = 0x000040000; //! If this flag is set, the currently selected value //! gets a transparent background static const __int64 SelectionHAlpha = 0x000080000; //! If this flag is set, the currently selected value //! gets a color gradient static const __int64 SelectionBuffer = 0x000100000; //! If this flag is set, the currently selected value //! gets a border static const __int64 SelectionBorder = 0x000200000; //! If this flag is set, each value has its own backgrounds //! and borders instead of sharing the same ones static const __int64 MultiStyled = 0x000400000; //! Sets a maximum height for the expanded list. A scrollbar //! appears automatically when there are more elements than //! can be visible static const __int64 MaxHeight = 0x004000000; //! If this flag is set, the element the mouse is pointing //! at has a background static const __int64 MouseBackground = 0x008000000; //! If this flag is set, the element the mouse is pointing //! at has a background image static const __int64 MouseHImage = 0x010000000; //! If this flag is set, the element the mouse is pointing //! at has a transparent background static const __int64 MouseHAlpha = 0x020000000; //! If this flag is set, the element the mouse is pointing //! at has a color gradient static const __int64 MouseBuffer = 0x040000000; //! If this flag is set, the element the mouse is pointing //! at has a border static const __int64 MouseBorder = 0x080000000; //! const int NachObenDropDownen = 0x100000000; //! const int AutoDropDownRichtung = 0x200000000; //! Normal style: Visible, Enabled, Border, FieldBorder, //! SelectionBuffer, SelectionBorder, MaxHeight, VScroll, //! MouseBorder, MouseBuffer static const __int64 Normal = Visible | Allowed | Border | FieldBorder | SelectionBuffer | SelectionBorder | MaxHeight | VScroll | MouseBorder | MouseBuffer | Background | MEIgnoreParentInside | MEIgnoreProcessed; }; private: TextRenderer* textRd; Array<__int64>* msStyle; RCArray* members; Button* ausfahren; Border* selBorder; int selBgF; Image* selBgB; AlphaField* selAf; RCArray* msSelBorder; Array* msSelBgF; RCArray* msSelBgB; RCArray* msSelAf; Border* mouseBorder; int mouseBgF; Image* mouseBgB; AlphaField* mouseAf; RCArray* msMouseBorder; Array* msMouseBgF; RCArray* msMouseBgB; RCArray* msMouseAf; int anzahl; int selection; bool ausgeklappt; int ausklappHeight; int ausklapMaxHeight; int entryHeight; double tickval; int mouseEntry; bool scrollAnzeigen; void* eAkP; std::function eAk; //! Processes mouse messages //! \param me The event triggered by the mouse input DLLEXPORT void doMouseEvent(MouseEvent& me, bool userRet) override; public: //! Constructor DLLEXPORT SelectionBox(); //! Destructor DLLEXPORT virtual ~SelectionBox(); //! Sets the parameter of the callback function that is called when //! the user selects a new element \param p The parameter DLLEXPORT void setEventParam(void* p); //! Sets the callback function that is called when the user //! selects a new element \param eAk The callback function call: //! eAk( parameter, this, 0, selectionIndex ) DLLEXPORT void setEventAktion( std::function event); //! Sets the used TextRenderer //! \param textRd The text renderer DLLEXPORT void setTextRendererZ(TextRenderer* textRd); //! Sets the used font //! \param font The font DLLEXPORT void setFontZ(Font* font); //! Adds a selectable entry to the list. The first entry is //! automatically selected at the beginning \param txt The text of //! the entry DLLEXPORT void addEntry(const char* txt); //! Adds a selectable entry to the list. The first entry is //! automatically selected at the beginning \param txt The text of //! the entry DLLEXPORT void addEntry(Text* txt); //! Adds a selectable entry to the list. The first entry is //! automatically selected at the beginning \param txt A pointer to //! the entry DLLEXPORT void addEntryZ(TextField* txt); //! Changes the text of an entry //! \param i The index of the entry //! \param txt The new text DLLEXPORT void setEntry(int i, const char* txt); //! Changes the text of an entry //! \param i The index of the entry //! \param txt The new text DLLEXPORT void setEntry(int i, Text* txt); //! Changes an entry //! \param i The index of the entry //! \param txt A pointer to the new entry DLLEXPORT void setEntryZ(int i, TextField* txt); //! Deletes an entry //! \param i The index of the entry DLLEXPORT void removeEntry(int i); //! Sets a pointer to the button used for expanding and collapsing //! the list \param ausK The button DLLEXPORT void setDropDownButtonZ(Button* ausK); //! Sets a pointer to a border used for a specific entry //! \param i The index of the entry \param border The border DLLEXPORT void setEntryBorderZ(int i, Border* border); //! Sets the color of a border used for a specific entry //! \param i The index of the entry \param f The color in //! A8R8G8B8 format DLLEXPORT void setEntryBorderColor(int i, int f); //! Sets the width of a border used for a specific entry //! \param i The index of the entry \param rbr The width //! of the border in pixels DLLEXPORT void setEntryBorderWidth(int i, int rbr); //! Sets a background color used for a specific entry //! \param i The index of the entry \param f The color in //! A8R8G8B8 format DLLEXPORT void setEntryBackgroundColor(int i, int f); //! Sets a pointer to a background image used for a specific //! entry \param i The index of the entry //! \param bgB The background image DLLEXPORT void setEntryBackgroundImageZ(int i, Image* bgB); //! Sets a background image by copying, used for a specific //! entry \param i The index of the entry \param bgB The //! background image DLLEXPORT void setEntryBackgroundImage(int i, Image* bgB); //! Sets a pointer to a color gradient used for a specific //! entry \param i The index of the entry \param af The //! color gradient DLLEXPORT void setEntryAlphaFieldZ(int i, AlphaField* af); //! Sets the color of a color gradient used for a specific //! entry \param i The index of the entry \param afF The //! color in A8R8G8B8 format DLLEXPORT void setEntryAlphaFieldColor(int i, int afF); //! Sets the strength of a color gradient used for a specific //! entry \param i The index of the entry \param afSt The //! strength DLLEXPORT void setEntryAlphaFieldStrength(int i, int afSt); //! Sets a pointer to a border used for the selected entry //! \param border The border DLLEXPORT void setSelBorderZ(Border* border); //! Sets the color of a border used for the selected entry //! \param f The color in A8R8G8B8 format DLLEXPORT void setSelBorderColor(int f); //! Sets the width of a border used for the selected entry //! \param rbr The width in pixels DLLEXPORT void setSelBorderWidth(int rbr); //! Sets the background color used for the selected entry //! \param f The color in A8R8G8B8 format DLLEXPORT void setSelBackgroundColor(int f); //! Sets a pointer to a background image used for the selected //! entry \param bgB The image DLLEXPORT void setSelBackgroundImageZ(Image* bgB); //! Sets a background image by copying, used for the selected //! entry \param bgB The image DLLEXPORT void setSelBackgroundImage(Image* bgB); //! Sets a pointer to a color gradient used for the selected //! entry \param af The color gradient DLLEXPORT void setSelAlphaFieldZ(AlphaField* af); //! Sets the color of a color gradient used for the selected //! entry \param afF The color in A8R8G8B8 format DLLEXPORT void setSelAlphaFieldColor(int afF); //! Sets the strength of a color gradient used for the selected //! entry \param afSt The strength DLLEXPORT void setSelAlphaFieldStrength(int afSt); //! Sets a pointer to a border used with the MultiStyled flag //! when selecting a specific entry \param i //! The index of the entry \param border The border DLLEXPORT void setMsSelBorderZ(int i, Border* border); //! Sets the color of a border used with the MultiStyled flag when //! selecting a specific entry \param i The index //! of the entry \param f The color in A8R8G8B8 format DLLEXPORT void setMsSelBorderColor(int i, int f); //! Sets the width of a border used with the MultiStyled flag when //! selecting a specific entry \param i The //! index of the entry \param rbr The width in pixels DLLEXPORT void setMsSelBorderWidth(int i, int rbr); //! Sets the background color used with the MultiStyled flag when //! selecting a specific entry \param i The index //! of the entry \param f The color in A8R8G8B8 format DLLEXPORT void setMsSelBackgroundColor(int i, int f); //! Sets a pointer to a background image used with the MultiStyled //! flag when selecting a specific entry //! \param i The index of the entry //! \param bgB The image DLLEXPORT void setMsSelBackgroundImageZ(int i, Image* bgB); //! Sets a background image by copying, used with the MultiStyled //! flag when selecting a specific entry //! \param i The index of the entry //! \param bgB The image DLLEXPORT void setMsSelBackgroundImage(int i, Image* bgB); //! Sets a pointer to a color gradient used with the MultiStyled //! flag when selecting a specific entry //! \param i The index of the entry //! \param af The color gradient DLLEXPORT void setMsSelAlphaFieldZ(int i, AlphaField* af); //! Sets the color of a color gradient used with the MultiStyled flag //! when selecting a specific entry \param i The //! index of the entry \param afF The color in A8R8G8B8 format DLLEXPORT void setMsSelAlphaFieldColor(int i, int afF); //! Sets the strength of a color gradient used with the MultiStyled //! flag when selecting a specific entry \param i //! The index of the entry \param afSt The strength DLLEXPORT void setMsSelAlphaFieldStrength(int i, int afSt); //! Sets a pointer to a border used for the entry the mouse is //! pointing at \param border The border DLLEXPORT void setMouseBorderZ(Border* border); //! Sets the color of a border used for the entry the mouse is //! pointing at \param f The color in A8R8G8B8 format DLLEXPORT void setMouseBorderColor(int f); //! Sets the width of a border used for the entry the mouse is //! pointing at \param rbr The width of the border in pixels DLLEXPORT void setMouseBorderWidth(int rbr); //! Sets the background color used for the entry the mouse is //! pointing at \param f The color in A8R8G8B8 format DLLEXPORT void setMouseBackgroundColor(int f); //! Sets a pointer to a background image used for the entry the mouse //! is pointing at \param bgB The image DLLEXPORT void setMouseBackgroundImageZ(Image* bgB); //! Sets a background image by copying, used for the entry the mouse //! is pointing at \param bgB The image DLLEXPORT void setMouseBackgroundImage(Image* bgB); //! Sets a color gradient used for the entry the mouse is pointing //! at \param af The color gradient DLLEXPORT void setMouseAlphaFieldZ(AlphaField* af); //! Sets the color of a color gradient used for the entry the mouse //! is pointing at \param afF The color in A8R8G8B8 format DLLEXPORT void setMouseAlphaFieldColor(int afF); //! Sets the strength of a color gradient used for the entry the mouse //! is pointing at \param afSt The strength DLLEXPORT void setMouseAlphaFieldStrength(int afSt); //! Sets a pointer to a border used with the MultiStyled flag for a //! specific entry the mouse is pointing at //! \param i The index of the entry //! \param border The border DLLEXPORT void setMsMouseBorderZ(int i, Border* border); //! Sets the color of a border used with the MultiStyled flag for a //! specific entry the mouse is pointing at \param i //! The index of the entry \param f The color in A8R8G8B8 format DLLEXPORT void setMsMouseBorderColor(int i, int f); //! Sets the width of a border used with the MultiStyled flag for a //! specific entry the mouse is pointing at //! \param i The index of the entry //! \param rbr The width in pixels DLLEXPORT void setMsMouseBorderWidth(int i, int rbr); //! Sets the background color used with the MultiStyled flag for a //! specific entry the mouse is pointing at \param i //! The index of the entry \param f The color in A8R8G8B8 format DLLEXPORT void setMsMouseBackgroundColor(int i, int f); //! Sets a pointer to a background image used with the MultiStyled //! flag for a specific entry the mouse is pointing at //! \param i The index of the entry \param bgB The image DLLEXPORT void setMsMouseBackgroundImageZ(int i, Image* bgB); //! Sets a background image by copying, used with the MultiStyled //! flag for a specific entry the mouse is pointing at //! \param i The index of the entry \param bgB The image DLLEXPORT void setMsMouseBackgroundImage(int i, Image* bgB); //! Sets a pointer to a color gradient used with the MultiStyled //! flag for a specific entry the mouse is pointing at //! \param i The index of the entry \param af The color gradient DLLEXPORT void setMsMouseAlphaFieldZ(int i, AlphaField* af); //! Sets the color of a color gradient used with the MultiStyled //! flag for a specific entry the mouse is pointing at //! \param i The index of the entry //! \param afF The color in A8R8G8B8 format DLLEXPORT void setMsMouseAlphaFieldColor(int i, int afF); //! Sets the strength of a color gradient used with the MultiStyled //! flag for a specific entry the mouse is pointing at //! \param i The index of the entry //! \param afSt The strength DLLEXPORT void setMsMouseAlphaFieldStrength(int i, int afSt); //! Selects an element //! \param i The index of the element DLLEXPORT void setSelection(int i); //! Expands the list for selection DLLEXPORT void expand(); //! Collapses the list DLLEXPORT void collapse(); //! Scrolls in the list to a specific entry //! \param i The index of the entry DLLEXPORT void scrollToEntry(int i); //! Sets the maximum expansion height of the list //! \param maxHeight The maximum height in pixels DLLEXPORT void setMaxAuskappHeight(int maxHeight); //! Sets the height of the entries //! \param height The height in pixels DLLEXPORT void setEntryHeight(int height); //! Adds styles to a specific entry if the MultiStyled flag //! is set \param i The index of the entry \param //! abStyle The style to add DLLEXPORT void addMsStyle(int i, __int64 abStyle); //! Sets styles of a specific entry if the MultiStyled flag //! is set \param i The index of the entry \param abStyle The //! style \param add 1 if the styles should be added, //! 0 if they should be removed DLLEXPORT void setMsStyle(int i, __int64 abStyle, bool add); //! Replaces the styles of a specific entry if the MultiStyled //! flag is set \param i The index of the entry \param //! abStyle The new style DLLEXPORT void setMsStyle(int i, __int64 abStyle); //! Removes styles from a specific entry if the MultiStyled //! flag is set \param i The index of the entry \param //! abStyle The style to remove DLLEXPORT void removeMsStyle(int i, __int64 abStyle); //! Updates the object. Called by the framework //! \param tickVal The time in seconds since the last call //! of this function \return 1 if something changed //! and the image needs to be redrawn. 0 otherwise DLLEXPORT bool tick(double tickVal) override; //! Processes keyboard messages //! \param te The event triggered by the keyboard input DLLEXPORT void doKeyboardEvent(KeyboardEvent& te) override; //! Draws the object to zRObj if it is visible //! \param zRObj The image to draw into DLLEXPORT void render(Image& zRObj) override; //! Returns the index of an entry //! \param txt The text of the entry DLLEXPORT int getEntryPos(const char* txt) const; //! Returns the index of an entry //! \param txt The text of the entry DLLEXPORT int getEntryPos(Text* txt) const; //! Returns the text of an entry //! \param i The index of the entry DLLEXPORT Text* getEntryText(int i) const; //! Returns the text of an entry without increased reference counter //! \param i The index of the entry DLLEXPORT Text* zEntryText(int i) const; //! Returns an entry //! \param i The index of the entry DLLEXPORT TextField* getEntry(int i) const; //! Returns an entry without increased reference counter //! \param i The index of the entry DLLEXPORT TextField* zEntry(int i) const; //! Returns the index of the selected entry DLLEXPORT int getSelection() const; //! Returns the number of entries DLLEXPORT int getEntryCount() const; //! Returns whether the list is currently expanded DLLEXPORT bool isExpanded() const; //! Returns the maximum height of the expanded list DLLEXPORT int getMaxHeight() const; //! Returns the height of an entry DLLEXPORT int getEntryHeight() const; //! Returns the button used for expanding and collapsing the list DLLEXPORT Button* getDropDownButton() const; //! Returns the button without increased reference counter used for //! expanding and collapsing the list DLLEXPORT Button* zDropDownButton() const; //! Returns the border of an entry //! \param i The index of the entry DLLEXPORT Border* getEntryBorder(int i) const; //! Returns the border of an entry without increased reference counter //! \param i The index of the entry DLLEXPORT Border* zEntryBorder(int i) const; //! Returns the color of a border of an entry in A8R8G8B8 format //! \param i The index of the entry DLLEXPORT int getEntryBorderColor(int i) const; //! Returns the width of a border of an entry //! \param i The index of the entry DLLEXPORT int getEntryBorderWidth(int i) const; //! Returns the color gradient of an entry //! \param i The index of the entry DLLEXPORT AlphaField* getEntryAlphaField(int i) const; //! Returns the color gradient of an entry without increased reference //! counter \param i The index of the entry DLLEXPORT AlphaField* zEntryAlphaField(int i) const; //! Returns the color of a color gradient of an entry in A8R8G8B8 format //! \param i The index of the entry DLLEXPORT int getEntryAlphaFieldColor(int i) const; //! Returns the strength of a color gradient of an entry //! \param i The index of the entry DLLEXPORT int getEntryAlphaFieldStrength(int i) const; //! Returns the background color of an entry in A8R8G8B8 format //! \param i The index of the entry DLLEXPORT int getEntryBackgroundColor(int i) const; //! Returns the background image of an entry //! \param i The index of the entry DLLEXPORT Image* getEntryBackgroundImage(int i) const; //! Returns the background image of an entry without increased reference //! counter \param i The index of the entry DLLEXPORT Image* zEntryBackgroundImage(int i) const; //! Returns the border used when selecting an entry DLLEXPORT Border* getSelBorder() const; //! Returns the border without increased reference counter used when //! selecting an entry DLLEXPORT Border* zSelBorder() const; //! Returns the color of the border in A8R8G8B8 format used when //! selecting an entry DLLEXPORT int getSelBorderColor() const; //! Returns the width of the border used when selecting an entry DLLEXPORT int getSelBorderWidth() const; //! Returns the color gradient used when selecting an entry DLLEXPORT AlphaField* getSelAlphaField() const; //! Returns the color gradient without increased reference counter used //! when selecting an entry DLLEXPORT AlphaField* zSelAlphaField() const; //! Returns the color of the color gradient used when selecting //! an entry DLLEXPORT int getSelAlphaFieldColor() const; //! Returns the strength of the color gradient used when selecting //! an entry DLLEXPORT int getSelAlphaFieldStrength() const; //! Returns the background color in A8R8G8B8 format used when //! selecting an entry DLLEXPORT int getSelBackgroundColor() const; //! Returns the background image used when selecting an entry DLLEXPORT Image* getSelBackgroundImage() const; //! Returns the background image without increased reference counter used //! when selecting an entry DLLEXPORT Image* zSelBackgroundImage() const; //! Returns the border used with the MultiStyled flag when selecting //! a specific entry \param i The index of the entry DLLEXPORT Border* getMsSelBorder(int i) const; //! Returns the border without increased reference counter used with the //! MultiStyled flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT Border* zMsSelBorder(int i) const; //! Returns the color of the border in A8R8G8B8 format used with the //! MultiStyled flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT int getMsSelBorderColor(int i) const; //! Returns the width of the border used with the MultiStyled flag when //! selecting a specific entry \param i The index of the entry DLLEXPORT int getMsSelBorderWidth(int i) const; //! Returns the color gradient used with the MultiStyled flag when //! selecting a specific entry \param i The index of the entry DLLEXPORT AlphaField* getMsSelAlphaField(int i) const; //! Returns the color gradient without increased reference counter used //! with the MultiStyled flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT AlphaField* zMsSelAlphaField(int i) const; //! Returns the color of the color gradient in A8R8G8B8 format used with //! the MultiStyled flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT int getMsSelAlphaFieldColor(int i) const; //! Returns the strength of the color gradient used with the MultiStyled //! flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT int getMsSelAlphaFieldStrength(int i) const; //! Returns the background color in A8R8G8B8 format used with the //! MultiStyled flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT int getMsSelBackgroundColor(int i) const; //! Returns the background image used with the MultiStyled flag when //! selecting a specific entry \param i The index of the entry DLLEXPORT Image* getMsSelBackgroundImage(int i) const; //! Returns the background image without increased reference counter used //! with the MultiStyled flag when selecting a specific entry //! \param i The index of the entry DLLEXPORT Image* zMsSelBackgroundImage(int i) const; //! Returns the border used when the mouse is pointing at an entry DLLEXPORT Border* getMouseBorder() const; //! Returns the border without increased reference counter used when //! the mouse is pointing at an entry DLLEXPORT Border* zMouseBorder() const; //! Returns the color of the border in A8R8G8B8 format used when //! the mouse is pointing at an entry DLLEXPORT int getMouseBorderColor() const; //! Returns the width of the border used when the mouse is pointing //! at an entry DLLEXPORT int getMouseBorderWidth() const; //! Returns the color gradient used when the mouse is pointing //! at an entry DLLEXPORT AlphaField* getMouseAlphaField() const; //! Returns the color gradient without increased reference counter used //! when the mouse is pointing at an entry DLLEXPORT AlphaField* zMouseAlphaField() const; //! Returns the color of the color gradient in A8R8G8B8 format used //! when the mouse is pointing at an entry DLLEXPORT int getMouseAlphaFieldColor() const; //! Returns the strength of the color gradient used when the mouse //! is pointing at an entry DLLEXPORT int getMouseAlphaFieldStrength() const; //! Returns the background color in A8R8G8B8 format used when the //! mouse is pointing at an entry DLLEXPORT int getMouseBackgroundColor() const; //! Returns the background image used when the mouse is pointing //! at an entry DLLEXPORT Image* getMouseBackgroundImage() const; //! Returns the background image without increased reference counter used //! when the mouse is pointing at an entry DLLEXPORT Image* zMouseBackgroundImage() const; //! Returns the border used with the Multistyle flag when the mouse //! is pointing at a specific entry \param i The index of the entry DLLEXPORT Border* getMsMouseBorder(int i) const; //! Returns the border without increased reference counter used with the //! Multistyle flag when the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT Border* zMsMouseBorder(int i) const; //! Returns the color of the border in A8R8G8B8 format used with the //! Multistyle flag when the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT int getMsMouseBorderColor(int i) const; //! Returns the width of the border used with the Multistyle flag //! when the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT int getMsMouseBorderWidth(int i) const; //! Returns the color gradient used with the Multistyle flag when //! the mouse is pointing at a specific entry \param i The index //! of the entry DLLEXPORT AlphaField* getMsMouseAlphaField(int i) const; //! Returns the color gradient without increased reference counter used //! with the Multistyle flag when the mouse is pointing at a specific //! entry \param i The index of the entry DLLEXPORT AlphaField* zMsMouseAlphaField(int i) const; //! Returns the color of the color gradient in A8R8G8B8 format used with //! the Multistyle flag when the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT int getMsMouseAlphaFieldColor(int i) const; //! Returns the strength of the color gradient used with the Multistyle //! flag when the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT int getMsMouseAlphaFieldStrength(int i) const; //! Returns the background color in A8R8G8B8 format used with the //! Multistyle flag when the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT int getMsMouseBackgroundColor(int i) const; //! Returns the background image used with the Multistyle flag when //! the mouse is pointing at a specific entry //! \param i The index of the entry DLLEXPORT Image* getMsMouseBackgroundImage(int i) const; //! Returns the background image without increased reference counter used //! with the Multistyle flag when the mouse is pointing at a specific //! entry \param i The index of the entry DLLEXPORT Image* zMsMouseBackgroundImage(int i) const; //! Checks whether a point is inside this object //! \param x The x coordinate of the point //! \param y The y coordinate of the point //! \return 1 if the point is inside, 0 otherwise DLLEXPORT bool isPointInside(int x, int y) const override; //! Checks whether a specific style is set for a specific entry with the //! MultiStyled flag \param i The index of the entry //! \param abStyle The style DLLEXPORT inline bool hasMsStyle(int i, __int64 abStyle) const; //! Checks whether a specific style is not set for a specific entry with //! the MultiStyled flag \param i The index of the entry //! \param abStyle The style DLLEXPORT inline bool hasMsStyleNot(int i, __int64 abStyle) const; DLLEXPORT Drawable* duplicate() const override; //! Creates a copy of the drawing }; } // namespace Framework #endif