--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputhwrtrui/inc/truiappradiobutton.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,301 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: radio button - control in Training UI application
+*
+*/
+
+
+#ifndef C_TRUIAPPRADIOBUTTON_H
+#define C_TRUIAPPRADIOBUTTON_H
+
+// includes
+#include <coecntrl.h>
+
+// Class declaration
+class MTruiRadioButtonObserver;
+
+/**
+ * CTruiRadioButton is a new component for selecting own/preset model
+ * in shortcut edit view.
+ * @lib avkon.lib
+ */
+
+class CTruiRadioButton: public CCoeControl, public MCoeControlObserver
+ {
+public:
+ /* Flags for radion button status. */
+ enum TRadioButtonStatus
+ {
+ ENonSelected = 0,
+ ESelected
+ };
+
+ /* Flags for button type. */
+ enum TSelectionType
+ {
+ ERadioButton = 0,
+ ECheckBox
+ };
+
+ /**
+ * Two-phased constructor.
+ * @param aParent the parent control for choice list
+ * @param aTextArray the items' text that will be displayed in radion button.
+ * @param aStatusArray the selected status for each radio button.
+ * @param aSelectionType The type of the selection type, radio or checkbox
+ * @return Pointer to CTruiRadioButton's instance
+ */
+ static CTruiRadioButton* NewL( CCoeControl* aParent,
+ TSelectionType aSelectionType,
+ MTruiRadioButtonObserver* aObserver = NULL );
+
+ /**
+ * Two-phased constructor.
+ * @param aParent the parent control for choice list
+ * @param aTextArray the items' text that will be displayed in radion button.
+ * @param aStatusArray The selected status for each radio button.
+ * @param aSelectionType The type of the selection type, radio or checkbox
+ * @return Pointer to CTruiRadioButton's instance
+ */
+ static CTruiRadioButton* NewLC( CCoeControl* aParent,
+ TSelectionType aSelectionType,
+ MTruiRadioButtonObserver* aObserver = NULL );
+ /**
+ * Destructor
+ */
+ ~CTruiRadioButton();
+
+ /**
+ * Convert texts into Label and update them in radio buttons
+ */
+ void HandleItemAdditionL();
+
+ /**
+ * Add one item to radio button
+ * @param aText The text of the radio button.
+ * @param aStatus The current selected status of the radio button
+ */
+ void AddItem( const HBufC* aText, TRadioButtonStatus aStatus );
+
+ /**
+ * Return the status array
+ */
+ inline const RArray<TRadioButtonStatus>& StatusArray() const
+ {
+ return iStatusArray;
+ };
+
+ /**
+ * Handle pointer on radio button
+ *
+ * @param aIndex The index of the button group item.
+ * @param aEventType The event type.
+ */
+ void HandlePointerRadioButtonL( TInt aIndex, TCoeEvent aEventType );
+
+ /**
+ * Handle pointer on checkbox
+ *
+ * @param aIndex The index of the button group item.
+ * @param aEventType The event type.
+ */
+ void HandlePointerCheckBox( TInt aIndex, TCoeEvent aEventType );
+
+ inline void SetMultilineLayout( const TAknMultiLineTextLayout& aMultilineLayout )
+ {
+ iMultilineLayout = aMultilineLayout;
+ };
+
+// from CCoeControl
+ /**
+ * Return the control's minisize.
+ */
+ TSize MinimumSize();
+
+private:
+
+ /**
+ * C++ Default Constructor
+ */
+ CTruiRadioButton( MTruiRadioButtonObserver* aObserver,
+ TSelectionType aSelectionType );
+
+ /**
+ * 2nd phase constructor
+ * @param aParent the parent control for choice list
+ * @param aTextArray the items' text that will be displayed in radion button.
+ * @param aStatusArray the selected status for each radio button.
+ */
+ void ConstructL( CCoeControl* aParent );
+
+ /**
+ * Create radio button's bitmap.
+ */
+ void CreateBitmapForRadioButtonL();
+
+ /**
+ * Get cached color of skin for label control
+ *
+ * @param aColor The color of Label will be set
+ */
+ TInt GetCachedLabelTextColor( TRgb& aColor );
+
+ /**
+ * Load layouts for icons from LAF.
+ *
+ * @param aVarity Varity for LAF
+ */
+ void LoadIconsLayout( TInt aVarity );
+
+ /**
+ * Convert logical name to visual name for label when needed.
+ *
+ * @param aLabel The label is used to show text
+ * @param aLogicalTxt The logical text which is needed to be converted.
+ * @param aFont The font of label text
+ * @param aLineWidth The line width of each text of label
+ */
+ void ConvertToVisualForEdwinL( CEikLabel* aLabel, const TDesC& aLogicalTxt,
+ const CFont& aFont, TInt aLineWidth );
+
+ /**
+ * Clip text of label to fit label width.
+ *
+ * @param aLabel The label is used to show text
+ * @param aIndex The index of text in text array
+ */
+ void ClipToFitLabelL( CEikLabel* aLabel, TInt aIndex );
+
+// from MCoeControlObserver
+ /**
+ * From MCoeControlObserver. Handles an event from an observed control.
+ * @param aControl The control that sent the event.
+ * @param aEventType The event type.
+ */
+ void HandleControlEventL( CCoeControl* aControl,TCoeEvent aEventType );
+
+// from CCoeControl
+ /**
+ * Responds to changes to the size and position of the contents of this control.
+ */
+ void SizeChanged();
+
+ /**
+ * Draws control to given area
+ * @param aRect The rectangle that should be drawn by the control.
+ */
+ void Draw( const TRect& aRect ) const;
+
+ /**
+ * Gets the number of controls contained in a compound control.
+ * @return The number of component controls contained by this control.
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * Gets an indexed component of a compound control.
+ * @param aIndex The index of the control.
+ * @return The component control with an index of aIndex.
+ */
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ /**
+ * Gets an indexed component of a compound control.
+ * @param aIndex The index of the control.
+ * @return The component control with an index of aIndex.
+ */
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+ /**
+ * From CoeControl.
+ * Handles a change to the control's resources.
+ *
+ * @param aType A message UID value.
+ */
+ void HandleResourceChange( TInt aType );
+
+private: // data
+
+ /**
+ * The control array store all sub-controls
+ * Own
+ */
+ CArrayPtrFlat<CCoeControl>* iControlArray;
+
+ /**
+ * The array to store the current status for each radio button
+ * Own
+ */
+ RArray<TRadioButtonStatus> iStatusArray;
+
+ /**
+ * The text array to store the text for each radio button
+ * Own
+ */
+ RPointerArray<HBufC> iTextArray;
+
+ /**
+ * The bitmap for selected radio button.
+ * Own
+ */
+ CFbsBitmap* iRadioButtonSelectedBmp;
+
+ /**
+ * The bitmap mask for selected radio button.
+ * Own
+ */
+ CFbsBitmap* iRadioButtonSelectedBmpm;
+
+ /**
+ * The bitmap for non-selected radio button.
+ * Own
+ */
+ CFbsBitmap* iRadioButtonNonSelectedBmp;
+
+ /**
+ * The bitmap mask for non-selected radio button.
+ * Own
+ */
+ CFbsBitmap* iRadioButtonNonSelectedBmpm;
+
+ /**
+ * The observer used to notify the current selected item changed
+ * Not own
+ */
+ MTruiRadioButtonObserver* iObserver;
+
+ /**
+ * The observer used to notify the current selected item changed
+ * Not own
+ */
+ TSelectionType iSelectionType;
+
+ /**
+ * Array to store TAknLayoutRect for icons
+ *
+ * Own
+ */
+ RArray<TAknLayoutRect> iIconLayout;
+
+ TBool iTactileSupported;
+
+ /**
+ * MultilineLayout for edwin
+ *
+ */
+ TAknMultiLineTextLayout iMultilineLayout;
+ };
+
+#endif // C_TRUIAPPRADIOBUTTON_H
+