diff -r acc370d7f2f6 -r 2275db202402 DirectPrint/DirectPrintApp/inc/directprintmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DirectPrint/DirectPrintApp/inc/directprintmodel.h Tue May 11 14:10:02 2010 +0800 @@ -0,0 +1,319 @@ +/* +* Copyright (c) 2010 Kanrikogaku Kenkyusho, Ltd. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Kanrikogaku Kenkyusho, Ltd. - Initial contribution +* +* Contributors: +* +* Description: +* This model class for DirectPrint data managemrnt +* +*/ + +// Protection against nested includes +#ifndef __DIRECTPRINTMODEL_H__ +#define __DIRECTPRINTMODEL_H__ + +// System includes +#include +#include +#include + +// User includes +#include "directprintprinterdata.h" +#include "directprintbearerdata.h" +#include "directprintpropertydata.h" +#include "directprintproperty.h" + +// Forward declarations +class CDirectPrintPrinterInfoReader; + +// Class declaration +/** + * Model class + * more_complete_description + */ +class CDirectPrintModel : public CBase + { +public: + /** Constructors */ + static CDirectPrintModel* NewL(); + static CDirectPrintModel* NewLC(); + /** Destructor */ + ~CDirectPrintModel(); + + /** + * Initialize data. + */ + void InitializeDataL(); + /** + * Internalize data. + */ + void InternalizeDataL(); + /** + * Externalize data. + */ + void ExternalizeDataL(); + + /** + * Get printer data. + * + * @param aIndex The index of data array. + * @param aData printer data + */ + void GetPrinterDataL(TInt aIndex, TDirectPrintPrinterData& aData); + /** + * Get bearer data. + * + * @param aIndex The index of data array. + * @param aData bearer data + */ + void GetBearerDataL(TInt aIndex, TDirectPrintBearerData& aData); + /** + * Get current bearer data. + * + * @param aData bearer data + */ + void GetCurrentBearerDataL(TDirectPrintBearerData& aData); + /** + * Get selected bearer data. + * + * @param aData bearer data + */ + void GetSelectedBearerDataL(TDirectPrintBearerData& aData); + /** + * Get property data. + * + * @param aIndex The index of data array. + * @return property data + */ + CPrinterProperty* GetPrinterPropertyL(TInt aIndex); + /** + * Get current property data. + * + * @param aAppUid Application UID. + * @return property data + */ + CPrinterProperty* GetCurrentPrinterPropertyL(TUid aAppUid); + /** + * Get the id of current printer data. + * + * @return The id of printer data + */ + TInt GetCurrentPrinterIdL(); + /** + * Get the index of current printer data. + * + * @return The index of data array. + */ + TInt CurrentPrinter(); + /** + * Get the index of current bearer data. + * + * @return The index of data array. + */ + TInt CurrentBearer(); + /** + * Get the index of current property data. + * + * @return The index of data array. + */ + TInt CurrentProperty(); + /** + * Get the index of selected printer data. + * + * @return The index of data array. + */ + TInt SelectPrinter(); + /** + * Get the count of printer data. + * + * @return The count of data. + */ + TInt PrinterCount(); + /** + * Get the count of bearer data. + * + * @return The count of data. + */ + TInt BearerCount(); + /** + * Get the count of property data. + * + * @return The count of data. + */ + TInt PropertyCount(); + + /** + * Set printer data. + * + * @param aIndex The index of data array. + * @param aData printer data + */ + void SetPrinterDataL(TInt aIndex, const TDirectPrintPrinterData& aData); + /** + * Set printer data. + * + * @param aData printer data + */ + void SetPrinterDataL(const TDirectPrintPrinterData& aData); + /** + * Set bearer data. + * + * @param aIndex The index of data array. + * @param aData bearer data + */ + void SetBearerDataL(TInt aIndex, const TDirectPrintBearerData& aData); + /** + * Set bearer data. + * + * @param aData bearer data + */ + void SetBearerDataL(const TDirectPrintBearerData& aData); + /** + * Set property data. + * + * @param aIndex The index of data array. + * @param aProperty property data + */ + void SetPrinterPropertyL(TInt aIndex, CPrinterProperty* aProperty); + /** + * Set property data. + * + * @param aProperty property data + */ + void SetPrinterPropertyL(CPrinterProperty* aProperty); + /** + * Set the index of current printer data. + * + * @param aIndex The index of data array. + */ + void SetCurrentPrinter(TInt aIndex); + /** + * Set the index of current bearer data. + * + * @param aIndex The index of data array. + */ + void SetCurrentBearer(TInt aIndex); + /** + * Set the index of current property data. + * + * @param aIndex The index of data array. + */ + void SetCurrentProperty(TInt aIndex); + /** + * Set the index of selected printer data. + * + * @param aIndex The index of data array. + */ + void SetSelectPrinter(TInt aIndex); + + /** + * Add printer data. + * + * @param aData printer data + */ + void AddPrinterDataL(const TDirectPrintPrinterData& aData); + /** + * Add bearer data. + * + * @param aData bearer data + */ + void AddBearerDataL(const TDirectPrintBearerData& aData); + /** + * Add property data. + * + * @param aProperty property data + */ + void AddPrinterPropertyL(CPrinterProperty* aProperty); + + /** + * Remove printer data from data array. + * + * @param aIndex The index of data array. + */ + void RemovePrinterDataL(TInt aIndex); + /** + * Remove bearer data from data array. + * + * @param aIndex The index of data array. + */ + void RemoveBearerDataL(TInt aIndex); + /** + * Remove property data from data array. + * + * @param aIndex The index of data array. + */ + void RemovePrinterPropertyL(TInt aIndex); + + /** + * Move printer data to top of data array. + * + * @param aIndex The index of data array. + */ + void MoveTopPrinterDataL(TInt aIndex); + + /** + * Get new data flag. + * + * @return new data flag. + */ + inline TBool IsNewData() {return iIsNewData;}; + /** + * Set new data flag. + * + * @param aFlag new data flag. + */ + inline void SetIsNewData(TBool aFlag) {iIsNewData = aFlag;}; + /** + * Generate new printer id. + * + * @return new data flag. + */ + inline TInt NewPrinterId() {return ++iMaxPrinterId;}; + + /** + * Get uid of plugin. + * + * @return uid of plugin. + */ + TUid SettingUIPluginUidL(); + +protected: + CDirectPrintModel(); + void ConstructL(); + +private: + /** File server session. */ + RFs iFs; + + /** Printer data Array. */ + RDPPrinterDataArray iPrinters; + /** Bearer data Array. */ + RDPBearerDataArray iBearers; + /** Property data Array. */ + RPrinterPropertyArray iProperties; + /** The index of current printer data. */ + TInt iCurrentPrinter; + /** The index of current bearer datay. */ + TInt iCurrentBearer; + /** The index of current property data. */ + TInt iCurrentProperty; + /** The index of selected printer data. */ + TInt iSelectPrinter; + + /** New data flag. */ + TBool iIsNewData; + /** Printer id. */ + TInt iMaxPrinterId; + + CDirectPrintPrinterInfoReader* iPrinterInfoReader; + }; + +#endif // __DIRECTPRINTMODEL_H__