00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(__AKNSCBUT_H__)
00024 #define __AKNSCBUT_H__
00025
00026
00027 #include <AknControl.h>
00028
00029
00030
00031 class CAknScrollIndicator;
00032
00038 NONSHARABLE_CLASS(CAknScrollButton) : public CAknControl
00039 {
00040 public:
00044 enum TType
00045 {
00047 ENudgeLeft,
00049 ENudgeUp,
00051 ENudgeRight,
00053 ENudgeDown,
00055 EPageLeft,
00057 EPageUp,
00059 EPageRight,
00061 EPageDown,
00063 EHome,
00065 ETop,
00067 EEnd,
00069 EBottom
00070 };
00071
00072 public:
00076 enum TTypeOfScrollBar
00077 {
00079 ENormal =0x00,
00081 EArrowHead =0x01
00082 };
00083
00084 public:
00085
00091 IMPORT_C static CAknScrollButton* NewL(TType aType);
00092
00096 IMPORT_C ~CAknScrollButton();
00097
00102 IMPORT_C TType Type() const;
00103
00109 IMPORT_C void CreateWindowOnlyForArrowsL(const CCoeControl* aParent);
00110
00116 IMPORT_C TBool IsNormalScrollBarUsingButton() const;
00117
00122 IMPORT_C void SetTypeOfScrollBarUsingButton(TTypeOfScrollBar aTypeOfScrollBar);
00123
00129 IMPORT_C void SetPosition(const TInt aFocusPosition, const TInt aScrollSpan);
00130
00138 IMPORT_C static CAknScrollButton* NewL(TType aType, TTypeOfScrollBar aTypeOfScrollBar);
00139
00140 void SetContainerWindowL( const CCoeControl& aControl );
00141 TInt CountComponentControls() const;
00142 CCoeControl* ComponentControl( TInt aIndex ) const;
00143
00144 private:
00145 CAknScrollButton(TType aType);
00146 void ConstructL();
00147 void SizeChanged();
00148 void DrawIndicator() const;
00149 void ConstructL(TTypeOfScrollBar aTypeOfScrollBar);
00150 private:
00151 virtual void Draw(const TRect& aRect) const;
00152 private:
00153 friend class CAknScrollBar;
00154 TType iType;
00155 TInt iFlag;
00156 CAknScrollIndicator* iScrollIndicator;
00157 TRect iOldRect;
00158 };
00159
00160
00161 #endif