aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/advanceddockingsystem/iconprovider.h
blob: 8e02348b89582f89cc20a934fc0041ec6e5a8725 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright (C) 2020 Uwe Kindler
// SPDX-License-Identifier: LicenseRef-Qt-Commercial

#pragma once

#include "ads_globals.h"

#include <QIcon>

namespace ADS {

struct IconProviderPrivate;

/**
 * This object provides all icons that are required by the advanced docking
 * system.
 * The IconProvider enables the user to register custom icons in case using
 * stylesheets is not an option.
 */
class ADS_EXPORT IconProvider
{
private:
    IconProviderPrivate *d; ///< private data (pimpl)
    friend struct IconProviderPrivate;

public:
    /**
     * Default Constructor
     */
    IconProvider();

    /**
     * Virtual Destructor
     */
    virtual ~IconProvider();

    /**
     * The function returns a custom icon if one is registered and a null Icon
     * if no custom icon is registered
     */
    QIcon customIcon(eIcon iconId) const;

    /**
     * Registers a custom icon for the given IconId
     */
    void registerCustomIcon(eIcon iconId, const QIcon &icon);
}; // class IconProvider

} // namespace ADS