KanoopGuiQt 1.3.0
Qt GUI utility library
Loading...
Searching...
No Matches
resources.h
1/******************************************************************************************
2**
3** resources.h
4**
5** Author: Stephen Punak
6** Created: Fri Oct 27 18:08:12 2023
7**
8******************************************************************************************/
9#ifndef RESOURCES_H
10#define RESOURCES_H
11#include <QIcon>
12#include <Kanoop/gui/libkanoopgui.h>
13#include <Kanoop/kanoopcommon.h>
14
15/**
16 * @brief Central registry mapping integer IDs to Qt resource images.
17 *
18 * Resources maintains a map of integer IDs to Qt resource paths and provides
19 * factory methods for retrieving QIcon and QPixmap instances by ID.
20 *
21 * Standard images (play, pause, spinner, etc.) are pre-registered under the
22 * StandardImage enum values. Application-specific images should use IDs
23 * starting at FirstUserResource to avoid collisions.
24 */
25class LIBKANOOPGUI_EXPORT Resources
26{
27public:
28 /**
29 * @brief Register a Qt resource path under an integer ID.
30 * @param id Integer ID to associate with the image
31 * @param resourcePath Qt resource path (e.g. ":/icons/play.png")
32 */
33 static void registerImage(int id, const QString& resourcePath);
34
35 /**
36 * @brief Return a QIcon for the given image ID.
37 * @param id Registered image ID
38 * @return QIcon loaded from the registered resource path
39 */
40 static QIcon getIcon(int id);
41
42 /**
43 * @brief Return a QPixmap for the given image ID.
44 * @param id Registered image ID
45 * @return QPixmap loaded from the registered resource path
46 */
47 static QPixmap getPixmap(int id);
48
49 /**
50 * @brief Built-in standard image identifiers.
51 */
53 {
54 UnknownImage = 0, ///< Sentinel value for an unknown image
55
56 BackDelete, ///< Back-delete / clear icon
57 CheckBox, ///< Checkbox icon
58 DropDownDown, ///< Drop-down arrow pointing down
59 DropDownUp, ///< Drop-down arrow pointing up
60 CloseButton, ///< Close / X button icon
61 GreenPlus, ///< Green plus / add icon
62 Label, ///< Label icon
63 NextTrack, ///< Next track / skip-forward icon
64 Pause, ///< Pause icon
65 Play, ///< Play icon
66 PreviousTrack, ///< Previous track / skip-back icon
67 RedMinus, ///< Red minus / remove icon
68 Refresh, ///< Refresh / reload icon
69 Search, ///< Search / magnifier icon
70 Spinner, ///< Spinner / busy indicator icon
71 Stop, ///< Stop icon
72 };
73
74 /** @brief First ID safe for application-defined resources (avoid collisions with StandardImage). */
75 static const int FirstUserResource = 100000;
76
77private:
78 /** @brief Register all StandardImage entries; called lazily on first use. */
79 static bool registerStandardImages();
80
81 class StandardImageToStringMap : public KANOOP::EnumToStringMap<StandardImage>
82 {
83 public:
84 StandardImageToStringMap()
85 {
86 insert(BackDelete, "back-delete.png");
87 insert(CheckBox, "checkbox.png");
88 insert(CloseButton, "close-button.png");
89 insert(DropDownDown, "dropdown-down.png");
90 insert(DropDownUp, "dropdown-up.png");
91 insert(GreenPlus, "green-plus.png");
92 insert(Label, "label.png");
93 insert(NextTrack, "next-track.png");
94 insert(Pause, "pause.png");
95 insert(Play, "play.png");
96 insert(PreviousTrack, "prev-track.png");
97 insert(RedMinus, "red-minus.png");
98 insert(Refresh, "refresh.png");
99 insert(Search, "search.png");
100 insert(Spinner, "spinner.png");
101 insert(Stop, "stop.png");
102 }
103 };
104
105 static QMap<int, QString> _registeredImages;
106 static bool _standardImagesRegistered;
107 static const StandardImageToStringMap _StandardImageToStringMap;
108};
109
110#endif // RESOURCES_H
QCheckBox subclass with an optional read-only mode.
Definition checkbox.h:14
QLabel subclass with font size and color Q_PROPERTYs.
Definition label.h:16
Central registry mapping integer IDs to Qt resource images.
Definition resources.h:26
static QIcon getIcon(int id)
Return a QIcon for the given image ID.
StandardImage
Built-in standard image identifiers.
Definition resources.h:53
@ CloseButton
Close / X button icon.
Definition resources.h:60
@ Spinner
Spinner / busy indicator icon.
Definition resources.h:70
@ Refresh
Refresh / reload icon.
Definition resources.h:68
@ Search
Search / magnifier icon.
Definition resources.h:69
@ Play
Play icon.
Definition resources.h:65
@ Pause
Pause icon.
Definition resources.h:64
@ Label
Label icon.
Definition resources.h:62
@ RedMinus
Red minus / remove icon.
Definition resources.h:67
@ DropDownDown
Drop-down arrow pointing down.
Definition resources.h:58
@ NextTrack
Next track / skip-forward icon.
Definition resources.h:63
@ GreenPlus
Green plus / add icon.
Definition resources.h:61
@ PreviousTrack
Previous track / skip-back icon.
Definition resources.h:66
@ DropDownUp
Drop-down arrow pointing up.
Definition resources.h:59
@ Stop
Stop icon.
Definition resources.h:71
@ BackDelete
Back-delete / clear icon.
Definition resources.h:56
@ CheckBox
Checkbox icon.
Definition resources.h:57
static QPixmap getPixmap(int id)
Return a QPixmap for the given image ID.
static void registerImage(int id, const QString &resourcePath)
Register a Qt resource path under an integer ID.