00001 /********************************************************************** 00002 00003 Copyright (c) 2005, TomTom B.V. 00004 00005 All rights reserved 00006 00007 00008 ***********************************************************************/ 00009 00010 00011 #ifndef __CUIWIDGETGROUP_H__ 00012 #define __CUIWIDGETGROUP_H__ 00013 00014 00015 #include "MUIWidget.h" 00016 00023 class CUIWidgetGroup: public MUIWidget 00024 { 00025 public: 00027 CUIWidgetGroup( const CUIRect& aRectangle ); 00028 virtual ~CUIWidgetGroup(); 00029 00030 virtual void Draw(); 00031 virtual bool HandlePenEvent( MInputReader::TTouchEventData& aData ); 00032 virtual bool HandleKeyEvent( MInputReader::TKeyEventData& aData ); 00033 00034 virtual void SetColorScheme( MColorScheme* aColorScheme ); 00035 virtual void SetFont( MFont* aFont ); 00036 00038 virtual bool AddWidget( MUIWidget* aChild ); 00039 00041 virtual bool DeleteWidget( MUIWidget* aChild ); 00042 00045 virtual bool ContainsWidget( MUIWidget* aChild ); 00046 00048 virtual unsigned int GetWidgetsNumber(); 00049 00051 virtual void Clear(); 00052 00061 virtual void RestoreBackground( CUIRect& aRect ) = 0; 00062 00063 private: 00064 CUIWidgetGroup(); 00065 CUIWidgetGroup( const CUIWidgetGroup& ); 00066 CUIWidgetGroup& operator=( const CUIWidgetGroup& ); 00067 00068 protected: 00069 MUIWidget* iPreviousWidget; 00071 enum { KMaxWidgets = 64 }; 00073 MUIWidget* iWidgets[ KMaxWidgets ]; 00078 MUIWidget* FindWidget( const CUIPoint& aPosition ) const; 00079 00087 bool ActivateNextWidget( int aDirection ) const; 00088 00099 MUIWidget* FindActiveWidget( int aDirection, int* aIndex ) const; 00100 00101 00110 MUIWidget* FindDefaultActiveWidget( int aDirection, int* aIndex ) const; 00111 }; 00112 00113 #endif // __CUIWIDGETGROUP_H__ 00114 00115