00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #pragma once
00029 #ifndef TEXTFIELDTHEME_H
00030 #define TEXTFIELDTHEME_H
00031
00032 #include ".\ComponentTheme.h"
00033 #include "..\..\event\PropertyListener.h"
00034 #include "..\..\event\KeyListener.h"
00035 #include "..\..\event\MouseListener.h"
00036 #include "..\..\event\FocusListener.h"
00037 #include "..\..\border\BevelBorder.h"
00038 #include "..\..\util\GradientColor.h"
00039 #include "..\..\util\LinearTimeInterpolator.h"
00040
00041 namespace ui
00042 {
00043 namespace theme
00044 {
00045 namespace defaulttheme
00046 {
00047 class TextFieldTheme : public ComponentTheme, public event::PropertyListener, public event::KeyListener, public event::FocusListener, public event::MouseAdapter, public util::Interpolatee
00048 {
00049 public:
00050 TextFieldTheme();
00051 ~TextFieldTheme();
00052 void installTheme(Component *comp);
00053 void deinstallTheme(Component *comp);
00054 void paint(Graphics& g,Component *comp);
00055 const util::Dimension getPreferredSize(const Component *comp) const;
00056 private:
00057 void propertyChanged(const event::PropertyEvent &e);
00058 void keyPressed(const event::KeyEvent &e);
00059 void keyReleased(const event::KeyEvent &e);
00060 void keyTyped(const event::KeyEvent &e);
00061
00062 void focusLost(const event::FocusEvent &e);
00063 void focusGained(const event::FocusEvent &e);
00064
00065 void update(float value);
00066
00067 util::Color foreground;
00068 util::GradientColor background;
00069 border::BevelBorder border;
00070 util::LinearTimeInterpolator interpolator;
00071 bool displayCursor;
00072 int cursorPosition;
00073 };
00074 }
00075 }
00076 }
00077
00078 #endif