diff options
Diffstat (limited to 'Src/Wasabi/api/wnd/wndclass/textbar.h')
-rw-r--r-- | Src/Wasabi/api/wnd/wndclass/textbar.h | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/Src/Wasabi/api/wnd/wndclass/textbar.h b/Src/Wasabi/api/wnd/wndclass/textbar.h new file mode 100644 index 00000000..6c6cb97e --- /dev/null +++ b/Src/Wasabi/api/wnd/wndclass/textbar.h @@ -0,0 +1,219 @@ +//PORTABLE +#ifndef _TEXTBAR_H +#define _TEXTBAR_H + +#include <bfc/virtualwnd.h> +#include <bfc/autobitmap.h> +#include <bfc/textalign.h> + +class CheckWnd; + +#define TEXTBAR_PARENT VirtualWnd +/** + TextBar uses the BaseWnd name field of the object as the text + to be displayed. + + @short TextBar control. + @author Nullsoft + @ver 1.0 + @see LabelWnd +*/ +class TextBar : public VirtualWnd { +public: + /** + Sets the default flags of the TextBar. Defaults to 16px fonts, + no background texture, left justified text, shadowed text in + the bgcolor, no outline, not box around the text. + */ + TextBar(); + + /** + Event is triggered when the window requires a repaint. + Override this to implement your own behavior. + + Paints the bitmap on canvas according to current + options (centering, tiling, stretching, title). + + @ret 0 for failure, 1 for success + @param canvas The canvas on which to paint. + */ + virtual int onPaint(Canvas *canvas); + + /** + Event is triggered when the name of the window is changed. + Override this to implement your own behavior. + + @see BaseWnd::setName() + */ + virtual void onSetName(); + + /** + Set the text to be displayed to an ascii representation of a numeric value. + + @ret 1. + @param i The numeric value to be displayed. + */ + int setInt(int i); + + /** + Set the size of the text for the textbar. + + @ret 1, success; 0, failure. + @param newsize The new text size, range is from 1 to 72 pixels. + */ + int setTextSize(int newsize); + + /** + Get the width of the text displayed, in pixels. + + @ret Width of the displayed text (in pixels). + */ + int getTextWidth(); + + /** + Get the height of the text displayed, in pixels. + + @ret Height of the displayed text. + */ + int getTextHeight(); + + /** + Use the base texture when rendering the TextBar? + If the base texture is used, it will be rendered as + the background of the textbar. + + @param u !0, Use base texture; 0, Do not use base texture; + */ + void setUseBaseTexture(int u); + + /** + Event is triggered when the left mouse button is pressed while + the textbar has focus. Override this to implement your + own behavior. + + @param x X coordinate of the mouse pointer. + @param y Y coordinate of the mouse pointer. + */ + virtual int onLeftButtonDown(int x, int y); + + /** + Center the text in the textbar? If not, + it will be left justified by default. + + @param center !0, Center text; 0, Do not center text; + */ +// void setCenter(int center); //old code + + /** + Get the center text flag. + + @see setCenter() + @ret TRUE, Text is being centered; FALSE, No centering (left justified); + */ +// bool getCentered(); + + /** + Sets the alignment of the text to left, center, or right aligned + (possibly more later on, not too sure yet) + */ + void setAlign(TextAlign alignment); + + /** + @ret returns the alignment of the text + */ + TextAlign getAlign(); + + + // The following three options have ascending overriding priority -- + + /** + Sets the shadowed text flag. If enabled, the text will be shadowed + with the "bgcolor" value. + + @see getTextShadowed() + @param settextshadowed !0, Shadow the text; 0, Do not shadow the text; + */ + void setTextShadowed(int settextshadowed) { + textshadowed = !!settextshadowed; + } + + /** + Get the shadowed text flag. If enabled, the text will be shadowed + with the "bgcolor" value. + + @see setTextShadowed() + @ret !0, Shadow the text; 0, Do not shadow the text; + */ + int getTextShadowed() { + return textshadowed; + } + + /** + Sets the outline text flag. If enabled, the text will be + outlined with the "bgcolor" value. + + @param settextoutlined !0, Outline the text; 0, Do not outline the text; + */ + void setTextOutlined(int settextoutlined) { + textoutlined = !!settextoutlined; + } + + /** + Get the outline text flag. If enabled, the text will be + outlined with the "bgcolor" value. + + @ret !0, Outline the text; 0, Do not outline the text; + */ + int getTextOutlined() { + return textoutlined; + } + + /** + Set the drawbox flag. If true, the drawbox flag will cause + a box to be drawn around the text in the textbar. + + @param setdrawbox !0, Drawbox around the text; 0, No drawbox; + */ + void setDrawBox(int setdrawbox) { + drawbox = !!setdrawbox; + } + + /** + Get the drawbox flag. If true, the drawbox flag will cause + a box to be drawn around the text in the textbar. + + @ret !0, Drawbox around the text; 0, No drawbox; + */ + int getDrawBox() { + return drawbox; + } + + /** + Associate a checkbox with the textbar. When a textbar is linked + to a checkbox, it will toggle the checkbox when it receives + left clicks. + + @param target A pointer to the CheckWnd to link. + */ + void setAutoToggleCheckWnd(CheckWnd *target) { + checkwndtarget = target; + } + + +private: + int size; + int usebt; + TextAlign alignment; //i changed this from centered, to a set text alignment thingie + + + int textshadowed; // display a shadow of the text in bgcolor. default: on + int textoutlined; // draw an outline of the text in bgcolor. default: off + int drawbox; // draw a box of bgcolor the size of the boundsrect. default: off + + AutoSkinBitmap bgbitmap; + CheckWnd *checkwndtarget; +}; + +const int TEXTBAR_LEFTMARGIN = 2; + +#endif |