edelib  2.1.0
IconTheme.h
1 /*
2  * $Id: IconTheme.h 3441 2012-11-01 20:40:30Z karijes $
3  *
4  * Icon theme
5  * Copyright (c) 2005-2009 edelib authors
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef __EDELIB_ICONTHEME_H__
22 #define __EDELIB_ICONTHEME_H__
23 
24 #include "String.h"
25 #include "List.h"
26 
27 EDELIB_NS_BEGIN
28 
33 enum IconSizes {
40 };
41 
56 };
57 
58 struct IconThemePrivate;
59 
80 class EDELIB_API IconTheme {
81 private:
82  IconThemePrivate* priv;
83 
84  void load_theme(const char* name);
85  void read_inherits(const char* buf);
86 
88 public:
92  IconTheme() : priv(NULL) { }
93 
97  ~IconTheme() { clear(); }
98 
103  void load(const char* name);
104 
108  void clear(void);
109 
113  String find_icon(const char* icon, IconSizes size, IconContext context = ICON_CONTEXT_ANY);
114 
118  const char* theme_name(void) const;
119 
127  const char* stylized_theme_name(void) const;
128 
132  const char* description(void) const;
133 
138  const char* example_icon(void) const;
139 
143  void query_icons(list<String>& lst, IconSizes size, IconContext context = ICON_CONTEXT_ANY) const;
144 
148  static const char* default_theme_name(void) { return "edeneu"; }
149 };
150 
151 EDELIB_NS_END
152 #endif
Icons representing emblem objects (gnome themes usually)
Definition: IconTheme.h:54
32x32
Definition: IconTheme.h:36
Linked list class.
Definition: List.h:160
~IconTheme()
Definition: IconTheme.h:97
IconTheme()
Definition: IconTheme.h:92
Misc icons (gnome themes usually)
Definition: IconTheme.h:55
IconSizes
Icon sizes to look for.
Definition: IconTheme.h:33
128x128
Definition: IconTheme.h:39
22x22 icons
Definition: IconTheme.h:35
64x64
Definition: IconTheme.h:38
Can be any icon context.
Definition: IconTheme.h:47
Icons representing applications.
Definition: IconTheme.h:49
Icons representing MIME types.
Definition: IconTheme.h:52
#define E_DISABLE_CLASS_COPY(klass)
Definition: edelib-global.h:161
A (relatively simple) string implementation.
Definition: String.h:82
IconContext
Icon types to look for.
Definition: IconTheme.h:46
Icons representing objects that are part of system.
Definition: IconTheme.h:51
48x48
Definition: IconTheme.h:37
Icons representing devices.
Definition: IconTheme.h:50
Icons representing stock objects (gnome themes usually)
Definition: IconTheme.h:53
Icons representing actions.
Definition: IconTheme.h:48
16x16 icons
Definition: IconTheme.h:34
Finds named icon according to the given theme.
Definition: IconTheme.h:80
static const char * default_theme_name(void)
Definition: IconTheme.h:148