graphic/QskGraphicProvider.h

Namespaces

Name
Qsk

Classes

  Name
class QskGraphicProvider

Source code

/******************************************************************************
 * QSkinny - Copyright (C) 2016 Uwe Rathmann
 * This file may be used under the terms of the QSkinny License, Version 1.0
 *****************************************************************************/

#ifndef QSK_GRAPHIC_PROVIDER_H
#define QSK_GRAPHIC_PROVIDER_H

#include "QskGlobal.h"

#include <qobject.h>
#include <memory>

class QskGraphic;
class QUrl;

class QSK_EXPORT QskGraphicProvider : public QObject
{
  public:
    QskGraphicProvider( QObject* parent = nullptr );
    ~QskGraphicProvider() override;

    void setCacheSize( int );
    int cacheSize() const;

    void clearCache();

    const QskGraphic* requestGraphic( const QString& id ) const;

  protected:
    virtual const QskGraphic* loadGraphic( const QString& id ) const = 0;

    class PrivateData;
    std::unique_ptr< PrivateData > m_data;
};

namespace Qsk
{
    QSK_EXPORT void addGraphicProvider( const QString& providerId, QskGraphicProvider* );
    QSK_EXPORT QskGraphicProvider* graphicProvider( const QString& providerId );

    QSK_EXPORT QskGraphic loadGraphic( const QUrl& url );
    QSK_EXPORT QskGraphic loadGraphic( const char* source );
}

#endif

Updated on 28 July 2023 at 14:02:30 CEST