00001
00002
00003
00004
00005
00008
00009 #ifndef _ROKU_INCLUDE_CASCADE_WIDGETS_CASCADEWIDGET_H
00010 #define _ROKU_INCLUDE_CASCADE_WIDGETS_CASCADEWIDGET_H
00011
00012 #include <cascade/app/CascadeWindow.h>
00013 #include <cascade/graphics/CascadeBitmap.h>
00014 #include <cascade/graphics/CascadeColor.h>
00015 #include <cascade/graphics/CascadeFont.h>
00016
00027 class CascadeWidget : public CascadeWindow
00028 {
00029 public:
00030 CascadeWidget();
00034 virtual ~CascadeWidget();
00038 public:
00039 enum Scheme {
00040 kActiveNormal = 0,
00041 kActiveFocus = 1,
00042 kInactiveNormal = 2,
00043 kInactiveFocus = 3,
00044 kDisabled = 4,
00045 kNumSchemes = kDisabled + 1
00046 };
00054 public:
00055 inline CascadeColor GetColorHi();
00064 inline CascadeColor GetColorLo();
00073 inline CascadeColor GetColorMid();
00082 inline CascadeColor GetColorText();
00091 inline CascadeFont GetFont();
00100 void SetDisabled(bool bDisabled, bool bRedraw = true);
00109 inline bool IsDisabled() const ;
00114
00115 Scheme GetScheme();
00123
00124 public:
00125 static CascadeColor GetColorHi(Scheme scheme);
00133 static CascadeColor GetColorLo(Scheme scheme);
00141 static CascadeColor GetColorMid(Scheme scheme);
00149 static CascadeColor GetColorText(Scheme scheme);
00157 static CascadeFont GetFont(Scheme scheme);
00165
00166 static void SetColorHi(const CascadeColor & color, Scheme scheme);
00180 static void SetColorLo(const CascadeColor & color, Scheme scheme);
00194 static void SetColorMid(const CascadeColor & color, Scheme scheme);
00208 static void SetColorText(const CascadeColor & color, Scheme scheme);
00222 static void SetFont(const CascadeFont & font, Scheme scheme);
00236
00237 static void NotifyParametersChanged();
00246
00247 public:
00248 virtual bool WillAcceptFocus() { return (! m_bDisabled); }
00254
00255 protected:
00256 bool m_bDisabled;
00260 private:
00261
00262 #ifndef DOXY_SKIP
00263 friend class CascadeApp;
00264 #endif
00265
00266 static void ReCacheSharedParameters();
00267 };
00268
00270
00271 inline CascadeColor CascadeWidget::GetColorHi() { return GetColorHi(GetScheme()); }
00272 inline CascadeColor CascadeWidget::GetColorLo() { return GetColorLo(GetScheme()); }
00273 inline CascadeColor CascadeWidget::GetColorMid() { return GetColorMid(GetScheme()); }
00274 inline CascadeColor CascadeWidget::GetColorText() { return GetColorText(GetScheme()); }
00275 inline CascadeFont CascadeWidget::GetFont() { return GetFont(GetScheme()); }
00276 inline bool CascadeWidget::IsDisabled() const { return m_bDisabled; }
00277
00278 #endif // #ifndef _ROKU_INCLUDE_CASCADE_WIDGETS_CASCADEWIDGET_H
00279
00281
00283
00284
00285
00286
00287
00288