fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlContainerChinese.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlContainerChinese.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,344 @@
+/*
+* Copyright (c) 2002-2004 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:
+* Provides the CAknFepUICtrlContainerChinese definition.
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+#ifndef __AKN_FEP_UI_AVKON_CONTAINER_CHINESE_H__
+#define __AKN_FEP_UI_AVKON_CONTAINER_CHINESE_H__
+
+#include <AknFepUiCtrlContainerChinese.h>
+#include <coecntrl.h>
+#include <AknUtils.h>
+
+class CAknsFrameBackgroundControlContext;
+class CAknFepUICtrlInputPane;
+class CAknFepUICtrlCandidatePane;
+class CAknFepUICtrlPinyinPopup;
+class CAknFepUICtrlPinyinEEP;
+class MAknFepManagerUIInterface;
+class CAknFepUiLayoutDataMgr;
+
+class MAknFepUICtrlPinyinPopupSizeChangedObserver
+ {
+public:
+ /// this is called when the selection popup changes size
+ virtual void SelectionPopupSizeChanged(TInt aNumLines) = 0;
+
+ /// this is called when the popup is enabled
+ virtual void SelectionPopupEnabled(TBool aEnabled) = 0;
+ };
+
+NONSHARABLE_CLASS(CAknFepUICtrlContainerChinese)
+ :
+ public CCoeControl,
+ public MAknFepUICtrlPinyinPopupSizeChangedObserver,
+ public MAknFepUICtrlContainerChinese
+{
+public:
+ /**
+ * first phase construction
+ */
+ static CAknFepUICtrlContainerChinese* NewL();
+
+ /**
+ * destructor
+ */
+ ~CAknFepUICtrlContainerChinese();
+
+ /**
+ * get the input pane
+ *
+ * @return pointer to the input pane, ownership is not passed
+ */
+ MAknFepUICtrlInputPane* InputPane() const;
+
+ /**
+ * get the candidate pane
+ *
+ * @return pointer to the candidate pane, ownership is not passed
+ */
+ MAknFepUICtrlCandidatePane* CandidatePane() const;
+
+ /**
+ * get the phrase pinyin popup window
+ *
+ * @return pointer to the phrase popup window, ownership is not passed
+ */
+ MAknFepUICtrlPinyinPopup* PinyinPopupWindow() const;
+
+ /**
+ *
+ * get the pinyin phrase creation popup window
+ *
+ * @return pointer to the pinyin phrase popup window, ownership is not passed
+ */
+ MAknFepUICtrlEditPane* EditPaneWindow() const;
+
+ /**
+ * Is the control displayed on the screen?
+ *
+ * @return if not enabled, returns EFalse
+ *
+ */
+ TBool IsEnabled() const;
+ /**
+ * Enables the display of the control. Sets the control's
+ * window postion and visibility, but only if the value has
+ * changed (so it's ok to call it excessively).
+ *
+ * @param aEnable if ETrue, makes visible
+ * if EFalse, makes non-visible
+ *
+ */
+ void Enable(TBool aEnable);
+
+ /**
+ * Arrange the constituent panes into the correct proportions for
+ * the required layout.
+ *
+ * @param aPaneLayout the required layout
+ *
+ */
+ void SetLayout(TPaneLayout aPaneLayout);
+
+
+ /**
+ * Set the Highlight to the desired control.
+ *
+ * @param aValue if aValue is ETrue set the focus to the Candidate Pane.
+ * if aValue is EFalse set focus to the Chinese Input Pane
+ */
+ void FocusCandidatePane(TBool aValue);
+
+ /**
+ * enable/disable the rendering of the Horizontal Scroll Arrows.
+ *
+ * @param aValue if ETrue, enable the arrows
+ * if EFalse, disable the arrrows
+ */
+ void ShowHorizontalScrollArrows(TBool aValue);
+
+ /**
+ * enable/disable the rendering of the Vertical Scroll Arrows.
+ *
+ * @param aValue if ETrue, enable the arrows
+ * if EFalse, disable the arrrows
+ */
+ void ShowVerticalScrollArrows(TBool aValue);
+
+ /**
+ * Call this method if the fep is being displayed for a control that is
+ * contained in a popup window (i.e. a Query). It changes the layout
+ * of the container.
+ *
+ * @param aValue if ETrue, use the layout for display with a query
+ * if EFalse, use the normal layout
+ */
+ void SetIsShownWithPopupWindows(TBool aValue);
+
+ /**
+ * This function sets cursor position.
+ *
+ * @param aCurPos containing the cursor position
+ * @param aHeight containing font height
+ */
+ void SetContainerPosition(TPoint aCurPos,TInt aHeight);
+
+ /**
+ * Set Candidate and pinyin popup invisible
+ *
+ */
+ void SetControlInVisible( TBool aVisible );
+
+ /**
+ * Set the state to phrase creation
+ */
+ void PhraseCreation( TBool aPhraseCreation );
+
+ /**
+ * Is the state is in phrase creation
+ *
+ * @return if not enabled, return EFalse
+ */
+ TInt& IsPhraseCreation();
+
+ /**
+ * Set FepMan
+ *
+ * @return if not enabled, return EFalse
+ */
+ void SetFepMan( MAknFepManagerUIInterface* aFepMan );
+
+public: // from CCoeControl
+
+ /**
+ * size changed
+ */
+ virtual void SizeChanged();
+
+ /**
+ * count component controls
+ *
+ * @return number of contained controls
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * Component control
+ *
+ * @param aIndex the control to return, must be between 0 and the number of controls
+ * @return pointer to contained control, ownership is not passed
+ *
+ */
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+ /**
+ * draw
+ *
+ * @param aRect rectangle
+ *
+ */
+ virtual void Draw(const TRect& aRect) const;
+
+ virtual void HandleResourceChange(TInt aType);
+
+protected: // From CCoeControl
+ TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+
+public: // from MAknFepUICtrlPinyinPopupSizeChangedObserver
+
+ /**
+ * called when the popup window changes size, so that it can be
+ * laid out correctly
+ *
+ * @param aNumLines the number of visible lines
+ */
+ void SelectionPopupSizeChanged(TInt aNumLines);
+
+ /**
+ * the popup has been enabled or disabled, so change layout where necessary
+ *
+ * @param aEnabled ETrue if popup has been enabled
+ * EFalse if popup has been disabled
+ */
+ void SelectionPopupEnabled(TBool aEnabled);
+protected:
+
+ /**
+ * second phase construction
+ */
+ void ConstructL();
+
+ /**
+ * constructor
+ */
+ CAknFepUICtrlContainerChinese();
+
+ /**
+ * layout this control relative to the control pane (aka the CBA).
+ */
+ void LayoutContainer();
+ /**
+ * layout the rectangles
+ */
+ void LayoutRects();
+ /**
+ * layout entry pane
+ */
+ void LayoutInputPane();
+ /**
+ * layout contained controls
+ */
+ void LayoutContainedControls();
+
+ /**
+ * layout the popup window
+ */
+ void LayoutPinyinPopupWindow();
+
+ /**
+ * layout the EEP window
+ */
+ void LayoutPinyinEEPWindow();
+
+ /**
+ * set control vilisibilty, according to the current pane layout
+ */
+ void SetControlVisibility();
+
+ /**
+ * return the layout as an index that can be passed to the
+ * layout dll
+ *
+ * @return index into layout macro
+ */
+ TInt ConvertLayoutToIndex() const;
+
+ /**
+ * layout the background frames
+ */
+ void LayoutFrames();
+
+ /**
+ * layout the background frames
+ *
+ * @param aOuterRect filled with outer rect coords
+ * @param aInnerRect filled with inner rect coords
+ *
+ */
+ void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;
+
+private:
+ CAknFepUiLayoutDataMgr* iLafDataMgr;
+ CAknFepUICtrlInputPane* iInputPane;
+ CAknFepUICtrlCandidatePane* iCandidatePane;
+ CAknFepUICtrlPinyinPopup* iPinyinPopupWindow;
+ CAknFepUICtrlPinyinEEP* iEditPane;
+ CAknsFrameBackgroundControlContext* iBgContext;
+
+private:
+ TBool iEnabled;
+ TPaneLayout iPaneLayout;
+ TBool iIsShownWithPopupWindows;
+ // input pane
+ TAknLayoutRect iRectCoverMainPaneInput;
+ TAknLayoutRect iRectFirstShadowInput;
+ TAknLayoutRect iRectOutlineFrameInput;
+ TAknLayoutRect iRectInsideAreaInput;
+ TAknLayoutRect iHorizLine; //line between input pane and candidate pane
+ TAknLayoutRect iEEPFirstHorizLine; //line between input pane and EEP pane
+ TAknLayoutRect iEEPSecondHorizLine;////line between input pane and candidate pane when EEP exist
+ TPoint iContainerPosition;
+ TBool isPCLPosed;
+ TBool iPhraseCreationLaf;
+
+ TInt iPhraseCreation;
+ MAknFepManagerUIInterface* iFepMan;
+};
+#endif // __AKN_FEP_UI_AVKON_CONTAINER_CHINESE_H__
+
+// End of file
+