00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #if !defined (__EIKLBBUT_H__)
00020 #define __EIKLBBUT_H__
00021
00022 #if !defined(__COECNTRL_H__)
00023 #include <coecntrl.h>
00024 #endif
00025
00026 #if !defined(__COECOBS_H__)
00027 #include <coecobs.h>
00028 #endif
00029
00030 #include <akncontrol.h>
00031
00032 class CEikCommandButtonBase;
00033 class CEikLabel;
00034
00047 class CEikLabeledButton : public CAknControl, private MCoeControlObserver
00048 {
00049 public:
00053 enum TFlags
00054 {
00055 EShowHotKey = 0x01,
00056 EPlainHotKey = 0x02
00057 };
00058 public:
00059
00063 IMPORT_C CEikLabeledButton();
00064
00068 IMPORT_C ~CEikLabeledButton();
00069
00075 IMPORT_C void ConstructL(CEikCommandButtonBase* aButton,TInt aHotKeyCode,TInt aFlags);
00076
00082 IMPORT_C CEikCommandButtonBase* Button() const;
00083
00089 IMPORT_C CEikLabel* Label() const;
00090
00096 IMPORT_C TInt HotKeyCode() const;
00097
00103 IMPORT_C TBool ShowsHotKey() const;
00104
00110 IMPORT_C TBool PlainHotKey() const;
00111
00115 IMPORT_C void Animate();
00116
00122 IMPORT_C void UpdateHotKey(TInt aKeyCode,TFlags aFlags);
00123
00124
00125 public:
00134 IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
00135
00143 IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
00144
00152 IMPORT_C TSize MinimumSize();
00153
00161 IMPORT_C void SetContainerWindowL(const CCoeControl& aContainer);
00162
00170 IMPORT_C void SetDimmed(TBool aDimmed);
00171
00179 IMPORT_C void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const;
00180
00189 IMPORT_C void HandleResourceChange(TInt aType);
00190
00198 IMPORT_C TCoeInputCapabilities InputCapabilities() const;
00199
00207 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00208
00209 protected:
00217 IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const;
00218
00219 private:
00227 TInt CountComponentControls() const;
00228
00236 CCoeControl* ComponentControl(TInt aIndex) const;
00237
00238 void SizeChanged();
00239
00240 void Reserved_2();
00241
00242 private:
00246 IMPORT_C void* ExtensionInterface( TUid aInterface );
00247 private:
00251 void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
00252 private:
00253 void CreateLabelL();
00254 void UpdateHotKeyL();
00255 private:
00260 CEikCommandButtonBase* iButton;
00261
00266 CEikLabel* iLabel;
00267
00268 TInt iHotKeyCode;
00269 TInt iLButFlags;
00270
00271 TInt iSpare[2];
00272 };
00273
00274 #endif