123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- //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
|