javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcontrolhelper.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 09 Jun 2010 09:34:07 +0300
branchRCL_3
changeset 19 71c436fe3ce0
parent 14 04becd199f91
permissions -rw-r--r--
Revision: v2.1.28 Kit: 2010123

/*******************************************************************************
 * Copyright (c) 2005, 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Nokia Corporation - S60 implementation
 *******************************************************************************/


#ifndef SWTCONTROLHELPER_H
#define SWTCONTROLHELPER_H


#include <coedef.h>
#include <eiksbobs.h>
#include <w32std.h>
#include "eswtwidgetscore.h"


class CCoeControl;
class CEikScrollBarFrame;
class CSwtScrollBar;
class CWindowGc;


/**
 * SwtControlHelper
 * @lib eswt
 */
NONSHARABLE_CLASS(SwtControlHelper)
{
// Methods
public:
    /**
     * Copies a bitmap.
     * @param aBitmap The source bitmap for copy operation.
     * @param aTargetSize Optional target size if scaling is desired.
     * @return Pointer to the copy. Copy is owned by the caller.
     */
    static CFbsBitmap* GetCopyOfBitmapLC(const CFbsBitmap* aBitmap,
                                         const TSize& aTargetSize = TSize(-1, -1));

    /**
     * Copies a bitmap.
     * @param aBitmap The source bitmap for copy operation.
     * @param aTargetSize Optional target size if scaling is desired.
     * @return Pointer to the copy. Copy is owned by the caller.
     */
    static CFbsBitmap* GetCopyOfBitmapL(const CFbsBitmap* aBitmap,
                                        const TSize& aTargetSize = TSize(-1, -1));

    /**
     * Copies a bitmap inverting it in the case it's monochrome.
     * @param aBitmap The source bitmap for copy operation.
     * @param aTargetSize Optional target size if scaling is desired.
     * @return Pointer to the copy. Copy is owned by the caller.
     */
    static CFbsBitmap* GetInvertedCopyOfMonoBitmapLC(const CFbsBitmap* aBitmap,
            const TSize& aTargetSize = TSize(-1, -1));

    /**
     * Copies a bitmap inverting it in the case it's monochrome.
     * @param aBitmap The source bitmap for copy operation.
     * @param aTargetSize Optional target size if scaling is desired.
     * @return Pointer to the copy. Copy is owned by the caller.
     */
    static CFbsBitmap* GetInvertedCopyOfMonoBitmapL(const CFbsBitmap* aBitmap,
            const TSize& aTargetSize = TSize(-1, -1));

    /**
     * Retrieves the clipboard's text content.
     * It is up to the caller to free the descriptor by calling
     * CleanupStack::PopAndDestroy() if the descriptor's
     * pointer is not NULL.
     * @return A descriptor containing the clipboard's content.
     */
    static TPtr GetClipboardTextContentLC();

    /**
     * Returns size for a bitmap that is aspect ratio scaled to fit inside
     * aMaxDestSize if aSourceSize > aMaxDestSize
     * @param aSourceSize The source bitmap size.
     * @param aMaxDestSize Maximum size for the bitmap.
     * @return Resulting size. If any scaling was needed, it is done so
     *         that the aspect ratio does not change.
     */
    static TSize GetAspectRatioScaledBitmapSize(const TSize& aSourceSize,
            const TSize& aMaxDestSize);
};


#endif // SWTCONTROLHELPER_H