--- a/epoc32/include/mw/eiklbbut.h Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/eiklbbut.h Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,273 @@
-eiklbbut.h
+/*
+* Copyright (c) 2000-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Uikon legacy labelled button control
+*
+*/
+
+#if !defined (__EIKLBBUT_H__)
+#define __EIKLBBUT_H__
+
+#if !defined(__COECNTRL_H__)
+#include <coecntrl.h>
+#endif
+
+#if !defined(__COECOBS_H__)
+#include <coecobs.h>
+#endif
+
+#include <akncontrol.h>
+
+class CEikCommandButtonBase;
+class CEikLabel;
+
+/**
+ * This class combines a command button with a label and a hotkey binding.
+ *
+ * The label is used to display a text describing a hotkey. The hotkey is set via API or resource, as the ASCII code
+ * of the key that is combined with CTRL to form the hotkey combination. E.g. setting the hotkey to decimal 65
+ * will bind CTRL+'A' as the hotkey. "CTRL+A" will be displayed in the label.
+ *
+ * This class does not implement S60 look-and-feel and is not skinned.
+ *
+ * @lib eikcoctl
+ * @since S60 1.0
+ */
+ class CEikLabeledButton : public CAknControl, private MCoeControlObserver
+ {
+public:
+ /**
+ * Options for display of the hotkey shortcut
+ */
+ enum TFlags
+ {
+ EShowHotKey = 0x01, // Hot keys are displayed
+ EPlainHotKey = 0x02 // Hot keys are displayed plain
+ };
+public:
+
+ /**
+ * Constructor
+ */
+ IMPORT_C CEikLabeledButton();
+
+ /**
+ * C++ Destructor
+ */
+ IMPORT_C ~CEikLabeledButton();
+
+ /**
+ * 2nd Stage constructor
+ *
+ * @param aButton Sets the button to use as the active part of the CEikLabeledButton
+ */
+ IMPORT_C void ConstructL(CEikCommandButtonBase* aButton,TInt aHotKeyCode,TInt aFlags);
+
+ /**
+ * Access to the button component of the labeled button
+ *
+ * @return Pointer to the button component. No ownership is transferred.
+ */
+ IMPORT_C CEikCommandButtonBase* Button() const;
+
+ /**
+ * Access to the label component of the labeled button
+ *
+ * @return Pointer to the CEikLabel component. No ownership is transferred.
+ */
+ IMPORT_C CEikLabel* Label() const;
+
+ /**
+ * Access the hotkey code
+ *
+ * @return The hot key code
+ */
+ IMPORT_C TInt HotKeyCode() const;
+
+ /**
+ * Access to hot key setting
+ *
+ * @return EFase iff ShowsHotKeys is not set
+ */
+ IMPORT_C TBool ShowsHotKey() const;
+
+ /**
+ * Access the key display mode
+ *
+ * @return EFalse if the key mode is not set to Plain
+ */
+ IMPORT_C TBool PlainHotKey() const;
+
+ /**
+ * Cause the button to animate and to generate its command ID
+ */
+ IMPORT_C void Animate();
+
+ /**
+ * Change the hot key binding
+ *
+ * @param aKeyCode Key to use (along with pressing CTRL) as the hotkey
+ */
+ IMPORT_C void UpdateHotKey(TInt aKeyCode,TFlags aFlags);
+
+// from CCoeControl
+public:
+ /**
+ * From CCoeControl
+ *
+ * CONE framework is requesting that the passed-in key be handled.
+ *
+ * @param aKeyEvent Wserv event type
+ * @param aKeyCode Key code
+ */
+ IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+
+ /**
+ * From CCoeControl
+ *
+ * Construct the object from resource
+ *
+ * @param aReader Fully constructed resource reader
+ */
+ IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
+
+ /**
+ * From CCoeControl
+ *
+ * Reports to the caller the minimum size that the control can be, given its contents.
+ *
+ * @return The minimum size
+ */
+ IMPORT_C TSize MinimumSize();
+
+ /**
+ * From CCoeControl
+ *
+ * Sets the control whose window is to be used as a container for this control
+ *
+ * @param aContainer control
+ */
+ IMPORT_C void SetContainerWindowL(const CCoeControl& aContainer);
+
+ /**
+ * From CCoeControl
+ *
+ * Sets the button to be inactive. The button is drawn with a dimmed effect.
+ *
+ * @param aDimmed If not EFalse, set the state to dimmed. Otherwise set to non-dimmed
+ */
+ IMPORT_C void SetDimmed(TBool aDimmed);
+
+ /**
+ * From CCoeControl
+ *
+ * Obtain the list of colors to be used by this control
+ *
+ * @param aColorUseList
+ */
+ IMPORT_C void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const; // not available before Release 005u
+
+ /**
+ * From CCoeControl
+ *
+ * This is called when resource or layout or other display-affecting setting has changed.
+ * Change the internals of the control so that it is ready for a subsequent SizeChanged call.
+ *
+ * @param aType Type of resource or setting that has changed
+ */
+ IMPORT_C void HandleResourceChange(TInt aType); // not available before Release 005u
+
+ /**
+ * From CCoeControl
+ *
+ * Report the input capabilities of the control
+ *
+ * @return A copy of the object holding the capabilities of this control
+ */
+ IMPORT_C TCoeInputCapabilities InputCapabilities() const; // not available before Release 006
+
+ /**
+ * From CCoeControl
+ *
+ * Handle a pointer event coming from the CONE framework
+ *
+ * @param aPointerEvent Event to handle
+ */
+ IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+
+protected:
+ /**
+ * From CCoeControl
+ *
+ * Serialize the state of the control
+ *
+ * @param aWriteStream Output stream for the serialization
+ */
+ IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const;
+
+private:
+ /**
+ * From CCoeControl
+ *
+ * Returns the number of component controls
+ *
+ * @return Number of component controls
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * From CCoeControl
+ *
+ * Return a pointer to the component control at the give index.
+ *
+ * @return Pointer to the conponent control. No ownership is transferred
+ */
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+ void SizeChanged();
+
+ void Reserved_2();
+
+private:
+ /**
+ * From CAknControl
+ */
+ IMPORT_C void* ExtensionInterface( TUid aInterface );
+private:
+ /**
+ * from MCoeControlObserver
+ */
+ void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
+private:
+ void CreateLabelL();
+ void UpdateHotKeyL();
+private:
+ /**
+ * Contained command button object.
+ * Owned
+ */
+ CEikCommandButtonBase* iButton;
+
+ /**
+ * Contained label to implement the text
+ * Owned
+ */
+ CEikLabel* iLabel; // Owned
+
+ TInt iHotKeyCode;
+ TInt iLButFlags;
+
+ TInt iSpare[2];
+ };
+
+#endif