summaryrefslogtreecommitdiffstats
path: root/kweather/weather_icon.h
blob: 011fb06e98346f7589a5ead9868998472de697d8 (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
50
51
#include <kiconloader.h>

struct WeatherSingleIconData {
	TQString name;
	TQString path;
	bool inTheme;
	uint size;
};

class WeatherIconPrivate {
	friend class WeatherIcon;

	public:
		WeatherIconPrivate();
		~WeatherIconPrivate();

		static WeatherIconPrivate* instance();

		void useIconTheme(bool use);
		bool usingIconTheme();

		TQString iconPath(TQString icon, uint size, bool inTheme);
		TQString iconPath(TQString icon, uint size);

	private:
		static WeatherIconPrivate* s_instance;
		TDEIconLoader* iconLoader;
		bool m_useIconTheme;

		struct WeatherSingleIconData findIcon(TQStringList fallback, uint size);
};

class WeatherIcon {
	public:
		enum SimpleCondition { Sunny, Fog, Mist, Overcast, Hail, LightRain, Sleet };
		enum RangedCondition { Cloudy, Showers, Snow, Thunderstorm };

		WeatherIcon( int condition /* SimpleCondition */, bool night );
		WeatherIcon( int condition /* RangedCondition */, bool night, unsigned int strength );
		WeatherIcon(); /* Unknown conditions */
		~WeatherIcon();

		static struct WeatherSingleIconData unknown(uint size); // for convenience

		struct WeatherSingleIconData iconData(uint size);
		TQString name(uint size);
		TQString path(uint size);

	private:
		TQStringList fallback;
};