René Nyffenegger's collection of things on the web | |
René Nyffenegger on Oracle - Most wanted - Feedback
- Follow @renenyffenegger
|
TextField [Ming wrapper class] | ||
The sourceTextField.h
#ifndef TEXTFIELD_H #define TEXTFIELD_H #include <string> #include "ming.h" #include "Font.h" #include "Action.h" #include "Character_.h" class TextField : public Character_ { friend class Button; friend class Movie; friend class MovieClip; public: TextField(Font font, int size, float x, float y, std::string const& txt, byte r, byte g, byte b, byte a=0xff); // /* Returns advance */ void Add (std::string const& txt); // void Kerning (int k); // ???? Kerning = Spacing ???? void Coordinates(float x, float y); void Color (byte r, byte g, byte b, byte a=0xff); void setFont (Font const& font); void Size (int size); void Size (int size, const Font&); void Rect (float width, float height); void ReadOnly (bool); void Password (bool); void Wordwrap (bool); /* The following tags are permitted if using HTML: <p>...</p>, <br> <a href='must_be_present'>...</a> <font face='...' size='...' color='#rrggbb'>...</font> <b>bold Text</b> <i>italic</i> <u>underlined</u> <li>...</li><li>...</li><li>....</li> (Note, <ul> and <ol> not permitted, numbered lists not possible <textformat leftmargin='in_twips rightmargin='in_twips indent='in_twips blockindent='in_twips' leading='leading_in_twips tabstops='ts1,ts2,tsn'>... </textformat> <tab>advancing to next tabstop [as defined in textformat] */ void HTML (bool); void DrawBox (bool); void NoSelect (bool); void AutoSize (bool); void Multline (bool); /* Links the content of this TextField to a variable */ void Variable (std::string const&); // float Width (std::string const& txt); private: SWFTextField text_; int flags_; void Flags(bool, int); protected: // HACK? virtual SWFBlock_s* swf_block() const; }; #endif TextField.cpp
#include "TextField.h" // TODO: x and y used? TextField::TextField(Font font, int size, float x, float y, std::string const& txt, byte r, byte g, byte b, byte a) { flags_=0; text_ = newSWFTextField(); setFont (font); Size (size, font); Color (r,g,b,a); //Coordinates(x, y); //SWFText_setSpacing(text_, 0); Add (txt); } void TextField::Flags(bool b, int f) { if (b) flags_ |= f; else flags_ &= ~f; SWFTextField_setFlags(text_, flags_); } void TextField::ReadOnly(bool b) { Flags(b, SWFTEXTFIELD_NOEDIT); } void TextField::Password(bool b) { Flags(b, SWFTEXTFIELD_PASSWORD); } void TextField::Multline(bool b) { Flags(b, SWFTEXTFIELD_MULTILINE); } void TextField::Wordwrap(bool b) { Flags(b, SWFTEXTFIELD_WORDWRAP); } void TextField::HTML(bool b) { Flags(b, SWFTEXTFIELD_HTML); } void TextField::DrawBox(bool b) { Flags(b, SWFTEXTFIELD_HTML); } void TextField::NoSelect(bool b) { Flags(b, SWFTEXTFIELD_NOSELECT); } void TextField::AutoSize(bool b) { Flags(b, SWFTEXTFIELD_AUTOSIZE); } void TextField::Add(std::string const& txt) { SWFTextField_addString(text_, txt.c_str()); } //void Text::Kerning(int k) { // SWFText_setSpacing(text_, k); //} //// ???? Kerning = Spacing ???? //void TextField::Coordinates(float x, float y) { // SWFTextField_setXY(text_, x, y); //} void TextField::Color(byte r, byte g, byte b, byte a) { SWFTextField_setColor(text_, r, g, b, a); } void TextField::setFont(Font const& font) { SWFTextField_setFont(text_, reinterpret_cast<SWFBlock>(font.font_)); } void TextField::Size(int size) { SWFTextField_setHeight(text_, size); } void TextField::Rect(float width, float height) { SWFTextField_setBounds(text_, width, height); } void TextField::Size(int size, const Font& f) { Size(size); SWFTextField_setFieldHeight(text_, f.LineHeight(size)); } void TextField::Variable(std::string const& variable) { SWFTextField_setVariableName(text_, variable.c_str()); } SWFBlock_s* TextField::swf_block() const { return reinterpret_cast<SWFBlock_s*>(text_); } Examples
The following examples demonstrate this class:
|