--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDDateFieldItem.h Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2003 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: ?Description
+*
+*/
+
+
+#ifndef CMIDDATEFIELDITEM_H
+#define CMIDDATEFIELDITEM_H
+
+// using CEikTTimeEditor as memeber iEditor
+#include <eikmfne.h>
+#include <lcdui.h>
+
+// MTickerObserver interface in class declaration
+#include "CMIDTicker.h"
+// CMIDControlItem inheritance in class declaration
+#include "CMIDControlItem.h"
+#include "CMIDCommand.h"
+
+NONSHARABLE_CLASS(CMIDDateFieldItem) : public CMIDControlItem,
+ public MMIDDateField, public MMIDTickerObserver
+{
+public:
+ /**
+ * Double ctor
+ * @param aLabel Label
+ * @param aInputMode Input mode
+ * @param aUIManager UI manager
+ * @return CMIDDateFieldItem instance
+ *
+ * @since s60
+ */
+ static CMIDDateFieldItem* NewL(
+ const TDesC& aLabel, MMIDDateField::TInputMode aInputMode, CMIDUIManager* aUIManager);
+
+ virtual ~CMIDDateFieldItem();
+ //
+ // From MMIDDateField
+ //
+ TTime Date() const;
+ void SetDate(const TTime& aTime);
+ void SetUninitialized();
+ void SetInputModeL(MMIDDateField::TInputMode aInputMode);
+ //
+ // From MMIDItem
+ //
+ void SetLabelL(const TDesC& aLabel);
+ void SetLayoutL(TLayout aLayout);
+ void SetPreferredSizeL(const TSize& aSize);
+ TSize PreferredSize() const;
+ TSize MinimumSize() const;
+ void AddCommandL(MMIDCommand* aCommand);
+ void RemoveCommand(MMIDCommand* aCommand);
+ void SetDefaultCommand(MMIDCommand* aCommand);
+ TBool IsSelectable() const;
+ TBool ProcessCommandL(CMIDCommand* aCommand);
+ TSize ResetPreferredSize() const;
+ //
+ // From MMIDComponent
+ //
+ void Dispose();
+ //
+ // From CCoeControl
+ //
+ TSize MinimumSize();
+ TInt CountComponentControls() const;
+ CCoeControl* ComponentControl(TInt aIndex) const;
+ void Draw(const TRect& aRect) const;
+ void SizeChanged();
+ TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+ void SetContainerWindowL(const CCoeControl& aContainer);
+ virtual void FocusChanged(TDrawNow /*aDrawNow*/);
+ TCoeInputCapabilities InputCapabilities() const;
+#ifdef RD_SCALABLE_UI_V2
+ void HandlePointerEventL(const TPointerEvent &aPointerEvent);
+#endif // RD_SCALABLE_UI_V2
+ //
+ // From CMIDItem
+ //
+ TInt ItemPreferredHeightWithoutLabel();
+ //
+ // From CMIDControlItem
+ //
+ void ResolutionChange(TInt aType); // this is called when resolution is changed
+ void AdjustToSizeL(const TSize& aSize);
+ void CursorUpdate();
+private: // methods
+ /**
+ * Ctor
+ * @param aUIManager UI manager
+ *
+ * @since s60
+ */
+ CMIDDateFieldItem(CMIDUIManager* aUIManager);
+ void ConstructL(const TDesC& aLabel,MMIDDateField::TInputMode aInputMode);
+ void SetInitialized(TInt aSetCurrentTime = ETrue);
+ void DoSafeDraw();
+ TBool IsDateTimeNonEmpty() const;
+
+ /**
+ * Resets the commands of this form item to expose the functions that
+ * are currently available. Should be called whenever the focus inside
+ * the editor changes.
+ **/
+ void UpdateCommands();
+
+ /**
+ * Returns ETrue if the current field in the time editor is am/pm field.
+ **/
+ TBool IsCurrentFieldAmPmField();
+
+ /**
+ * Returns ETrue if the field indicated by the fieldIndex in the
+ * time editor is the am/pm field. (Assumes that there is only one)
+ **/
+ TBool IsFieldAmPmField(TInt fieldIndex);
+
+ /**
+ * Toggles the value of the am/pm field in this editor from the current
+ * value to the other value (am -> pm, pm -> am). If am/pm field is not
+ * found, nothing is done.
+ **/
+ void ToggleAmPmFieldValue();
+
+ /**
+ * Updates the LAF related member variables
+ **/
+ void UpdateMemberVariables();
+
+private: // data
+
+ CEikTTimeEditor* iEditor;
+ TBool iInitialised;
+ TBool prevInitialised;
+
+ MMIDDateField::TInputMode iInputMode;
+ CMIDCommand* iAmPmToggleCommand; // command to be shown in MSK to toggle am/pm value
+
+ TMargins iMargins;
+ TInt iEditorHeight;
+ const TKeyEvent* usedKeyEvent;
+
+#if defined( RD_SCALABLE_UI_V2)
+ // The pointer grabbing component control that received the pointer down event. May be NULL.
+ // Need to keep track of the grabbing control inside datefield because in long tap or canceled long tap
+ // cases datefield does not forward the up event to the component controls. Therefore the grabbing state
+ // of the component controls may be wrong inside CCoeControl implementation.
+ CCoeControl* iGrabbingControl;
+#endif //if defined( RD_SCALABLE_UI_V2)
+};
+
+
+#endif // CMIDDATEFIELDITEM_H