00001 /* 00002 * ============================================================================ 00003 * Name : eiklbbut.h 00004 * Part of : EikStd / EikCoCtl 00005 * Description : Uikon legacy labelled button control 00006 * Version : %version: 5 % 00007 * 00008 * Copyright © 2000-2006 Nokia. All rights reserved. 00009 * This material, including documentation and any related computer 00010 * programs, is protected by copyright controlled by Nokia. All 00011 * rights are reserved. Copying, including reproducing, storing, 00012 * adapting or translating, any or all of this material requires the 00013 * prior written consent of Nokia. This material also contains 00014 * confidential information which may not be disclosed to others 00015 * without the prior written consent of Nokia. 00016 * ============================================================================ 00017 * Template version: 4.1 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, // Hot keys are displayed 00056 EPlainHotKey = 0x02 // Hot keys are displayed plain 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 // from CCoeControl 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; // not available before Release 005u 00180 00189 IMPORT_C void HandleResourceChange(TInt aType); // not available before Release 005u 00190 00198 IMPORT_C TCoeInputCapabilities InputCapabilities() const; // not available before Release 006 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; // Owned 00267 00268 TInt iHotKeyCode; 00269 TInt iLButFlags; 00270 00271 TInt iSpare[2]; 00272 }; 00273 00274 #endif