00001 // 00002 // CascadeSpinnerWidget.h - interface of class CascadeSpinnerWidget 00003 // 00004 // Copyright (c) 2003, Roku, LLC. All rights reserved. 00005 // 00008 #ifndef _ROKU_INCLUDE_CASCADE_WIDGETS_CASCADESPINNERWIDGET_H 00009 #define _ROKU_INCLUDE_CASCADE_WIDGETS_CASCADESPINNERWIDGET_H 00010 00011 #include <cascade/widgets/CascadeWidget.h> 00012 #include <cascade/util/CascadeString.h> 00013 00025 class CascadeSpinnerWidget : public CascadeWidget 00026 { 00027 public: 00028 CascadeSpinnerWidget(); 00032 virtual ~CascadeSpinnerWidget(); 00036 public: 00037 00038 void SetBitmapHighlight(CascadeBitmap * pBitmap); 00046 00047 void SetBitmapNormal(CascadeBitmap * pBitmap); 00055 00056 void SetTextOptions(const CascadeString* inStringList, u32 nCount); 00064 00065 typedef void (ChoiceChangeCallback)(const CascadeSpinnerWidget * pSpinner,const u32 & newChoice, void * pClientData); 00074 00075 void RegisterChoiceChangeCallback(ChoiceChangeCallback * pCallback, void * pClientData); 00083 00084 void SetSpinOnSelect(bool bSpinOnSelect) { m_bSpinOnSelect = bSpinOnSelect; } 00092 00093 bool GetSpinOnSelect() { return m_bSpinOnSelect; } 00100 00101 u32 GetCurrentChoiceIndex() const { return m_nCurrentChoice; } 00108 00109 bool SetCurrentChoiceIndex(u32 inNewChoiceIndex); 00117 00118 bool SetCurrentChoiceString(const CascadeString& inNewChoiceString); 00127 00128 protected: // virtual functions overridden from base classes 00129 virtual bool OnKeyDown(u32 nKey); 00137 00138 virtual void OnPaint(CascadeBitmap & bitmap); 00145 00146 virtual bool OnNavKey(u32 nKey, CascadeWindow * & pProposedNewFocusWnd); 00155 00156 00157 protected: 00158 const CascadeString* m_textChoices; 00162 u32 m_nNumChoices; 00166 u32 m_nCurrentChoice; 00171 CascadeBitmap* m_pBitmapHighlight; 00176 CascadeBitmap* m_pBitmapNormal; 00181 ChoiceChangeCallback * m_pCallback; 00186 void * m_pClientData; 00190 bool m_bSpinOnSelect; 00194 }; 00195 00196 #endif // #ifndef _ROKU_INCLUDE_CASCADE_WIDGETS_CASCADESPINNERWIDGET_H 00197 00199 // LOG 00201 // 06-Mar-03 pellis created 00202 // 31-Jul-03 dwoodward made GetCurrentChoiceIndex const 00203 // 31-Jul-03 dwoodward added GetSpinOnSelect and SetSpinOnSelect