diff -r 000000000000 -r 2f259fa3e83a classicui_pub/hotkeys_api/inc/eikhkeyt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/hotkeys_api/inc/eikhkeyt.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2002-2006 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: Class declaration for EIKON hotkey table. +* +*/ + + +#ifndef __EIKHKEYT_H__ +#define __EIKHKEYT_H__ + +#include +#include + +/** + * Hotkey parameters. This can be added to a hotkey table using + * the functions provided by the @c CEikHotKeyTable class. + */ +struct SEikHotKey + { + TInt iCommandId; ///< The command ID associated with the hotkey. + TInt iKeycode; ///< The key code associated with the hotkey. + }; + +/** + * An array for hotkey commands and their associated key codes and modifiers. + * + * @lib eikcoctl.lib + * @since S60 0.9 + */ +class CEikHotKeyTable : public CArrayFixFlat + { +public: + + /** + * Default C++ constructor. + */ + IMPORT_C CEikHotKeyTable(); + + /** + * Destructor + */ + IMPORT_C ~CEikHotKeyTable(); + + /** + * Gets the hotkey code and modifier for the specified command ID. + * + * @param aCommandId The ID of the hotkey for which the key code and + * modifiers are obtained. + * @param[out] aKeycode On return, the key code for the + * specified command ID. + * @param[out] aModifiers On return, the modifier for the + * specified command ID. + * + * @return @c ETrue if the hotkey exists, @c EFalse otherwise + */ + IMPORT_C TBool HotKeyFromCommandId( TInt aCommandId, + TInt& aKeycode, + TInt& aModifiers) const; + + /** + * Gets the command ID associated with the specified key code and modifier. + * + * @param aKeycode The key code for which the command ID is obtained. + * @param aModifiers The key modifier for which the command ID is obtained. + * + * @return The command ID for the specified key code and modifier. + */ + IMPORT_C TInt CommandIdFromHotKey(TInt aKeycode,TInt aModifiers) const; + + /** + * Adds the specified hotkey to the hotkey array. + * + * @param aCommandId The command associated with the hotkey. + * @param aKeycode The key code used to invoke the command. + * @param aModifiers Any modifiers used to invoke the command, + * shift or control for example. + * + * @leave KErrNotSupported If the specified modifier is not supported + */ + IMPORT_C void AddItemL(TInt aCommandId,TInt aKeycode,TInt aModifiers); + + /** + * Removes the item specified by command ID from the array. + * + * @param aCommandId The ID of the item to remove. + * @panic EIKCOCTL-7 If the array contains no hotkeys. + */ + IMPORT_C void RemoveItem(TInt aCommandId); + + /** + * Constructs an empty array from resource. + * + * @param aResourceId The ID if the resource reader to use to + * construct the array. + */ + IMPORT_C void ConstructFromResourceL(TInt aResourceId); + + /** + * Resets the hotkey array. + */ + IMPORT_C void Reset(); + +private: + TInt iNumberPlain; + TInt iNumberCtrl; + TInt iNumberShiftCtrl; + TInt iSpare; + }; + +#endif // __EIKHKEYT_H__