ImagePrint/ImagePrintUI/imageprinteng/inc/mprintsettings.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:45:53 +0200
changeset 0 d11fb78c4374
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2004-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:  
*
*/


#ifndef MPRINTSETTINGS_H
#define MPRINTSETTINGS_H

#include <e32def.h>
#include <e32std.h>

class CTemplateSettings;
class CPrintSettings;
class CBaseCapability;

/**
 *
 * Interface to use the device discovery functionality of Image Print Engine
 *
 */
class MPrintSettings
    {
    public:     // Abstract methods

        /**
         *  Fetches the available template icons and UIDs associated to
         *  the selected. Leaves on error.
         *  Synchonours
         *
         *  @return The current settings, ownership is transferred
         */
        virtual CTemplateSettings* TemplateSettingsL() = 0;

        /**
         *  Sets the active UID. If this succeeds, the preview bitmap
         *  needs to be updated on UI. Also the amount of pages need
         *  to be queried again.
         *  Synchronous
         *
         *  @param aUid Uid of the activated template
         */
        virtual void SetActiveTemplateL( TUint aUid ) = 0;

        /**
         *  Returns the number of pages with the current template/image
         *  selection.
         *  Synchronous
         *
         *  @return Number of pages
         */
        virtual TUint NumOfPagesL() = 0;

        /**
         *  Returns the number of copies value
         *  Synchronous
         *
         *  @return Number of Copies
         */
        virtual TInt NumberOfCopies( RArray<TInt>& aArray ) = 0;

        /**
         *  Returns the number of copies value
         *  Synchronous
         *
         *  @return Number of Copies
         */
        virtual TInt NumberOfCopies( TInt& aNumberOfCopies, TInt aIndex ) = 0;

        /**
         *  Sets the number of copies value for each image
         *  Synchronous
         */
        virtual TInt SetNumberOfCopiesL( const RArray<TInt>& aArray ) = 0;

        virtual TInt UpdateNumberOfCopiesToServer() = 0;

        /**
         *  Checks if the user has selected MMC printing
         *  Synchronous
         *
         *  @return Boolean value to match
         */
        virtual TBool IsMMC() = 0;

        /**
         *  Sets the active preview page on display. If this succeeds, the
         *  preview bitmap needs to be updated on UI,
         *  Synchronous
         *
         *  @param aActivePage New active page
         */
        virtual void SetActivePageL( TUint aActivePage ) = 0;

        /**
         *  Returns current active page
         *  Synchronous
         *
         *  @return Current active page
         */
        virtual TUint CurActivePageL() = 0;

        /**
         *  Fetch printer capabilities and current settings
         *  Synchronous
         *
         *  @return Printer's capabilities, ownership changes
         */
        virtual CPrintSettings* PrinterSettingsL() = 0;

        /**
         *  Sets new settings for the print job
         *  Synchronous
         *
         *  @param  aSettings   New set of settings
         */
        virtual void SetPrinterSettingsL( CPrintSettings& aSettings ) = 0;

        /**
         *  Sets a single setting for the print job
         *  Synchronous
         *
         *  @param aCapab   Capability to be changed
         *  @return If return value == 0 then new settings should be
         *          fetched using PrinterSettingsL() and the UI must
         *          be updated
         */
        virtual TInt SetPrinterSettingL( CBaseCapability& aCapab ) = 0;

       /**
        * Returns the UID of the currently selected template
        *
        * @return Tint UID
        */
        virtual TInt TemplateUid() = 0;

        // Called when template OR current image is changed
        virtual TBool UpdatePageNumberL( TInt aCurrentImage ) = 0;
        virtual TInt PrinterUid() = 0;

        /**
         * Sets the current usb connection state
         *
         * @param aConnected   Connection state
         */
        virtual void SetUsbState( TBool aConnected ) = 0;

        /**
         * Gets the current usb connection state
         *
         * @return  Connection state
         */
        virtual TBool GetUsbState() = 0;

        /**
          *  Default printer protocol getter
          *  @return protocol number or KErrNotFound
          */
        virtual TInt GetDefaultPrinterProtocol() = 0;

         /**
          *  Default printer protocol setter
          *  @param aProtocol protocol number
          *  @return error code, KErrNone if OK
          */
        virtual TInt SetDefaultPrinterProtocol( TInt aProtocol ) = 0;

         /**
          *  Current printer protocol getter
          *  @return protocol number or KErrNotFound
          */
        virtual TInt GetCurrentPrinterProtocol() = 0;

         /**
          *  Current printer protocol setter
          *  @param aProtocol protocol number
          *  @return error code, KErrNone if OK
          */
        virtual void SetCurrentPrinterProtocol( TInt aProtocol ) = 0;

         /**
          *  Current printer brand getter
          *  @return current printer brand id
          */
        virtual TUint GetCurrentPrinterVendor() = 0;

         /**
          *  Current printer brand setter
          *  @param aVendor printer brand
          */
        virtual void SetCurrentPrinterVendor( TUint aVendor ) = 0;

         /**
          *  Default printer id getter
          *  @return printer id or KErrNotFound
          */
        virtual TInt GetDefaultPrintID() = 0;

        /**
          *  Default printer protocol setter
          *  @param aId printer id
          *  @return error code, KErrNone if OK
          */
        virtual TInt SetDefaultPrinterID( TInt aId ) = 0;

        /**
          *  Default printer name getter
          *  @return printer name
          */
        virtual HBufC* GetDefaultPrinterNameLC() = 0;

        /**
          *  Default printer name setter
          *  @param aPrinterName printer name
          *  @return error code, KErrNone if OK
          */
        virtual TInt SetDefaultPrinterNameL( const TDesC& aPrinterName ) = 0;

         /**
          *  Current printer name getter
          *  @return printer name
          */
        virtual HBufC* GetCurrentPrinterName() = 0;

        /**
          *  Current printer name setter
          *  @param aPrinterName printer name
          *  @return error code, KErrNone if OK
          */
        virtual TInt SetCurrentPrinterName( const TDesC& aPrinterName ) = 0;

        /**
          * Current paper size text getter
          * @Return paper size text
          */
        virtual HBufC* GetCurrentPaperSizeTextL() = 0;

    };

#endif //  MPRINTSETTINGS_H

//  End of File