Laxkit  0.0.7.1
iconmanager.h
1 //
2 //
3 // The Laxkit, a windowing toolkit
4 // Please consult http://laxkit.sourceforge.net about where to send any
5 // correspondence about this software.
6 //
7 // This library is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU Library 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 // Library General Public License for more details.
16 //
17 // You should have received a copy of the GNU Library General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 //
21 // Copyright (C) 2004-2007,2010 by Tom Lechner
22 //
23 
24 #ifndef _LAX_ICONMANAGER_H
25 #define _LAX_ICONMANAGER_H
26 
27 #include <lax/lists.h>
28 #include <lax/laximages.h>
29 
30 namespace Laxkit {
31 
32 //----------------------------- IconNode ---------------------------
33 
34 class IconNode
35 {
36  public:
37  char *name;
38  int id;
39  Laxkit::LaxImage *image;
40  IconNode(const char *nname, int nid, Laxkit::LaxImage *img);
41  ~IconNode();
42 };
43 
44 //----------------------------- IconManager ---------------------------
45 
46 class IconManager : public Laxkit::PtrStack<IconNode>
47 {
48  protected:
49  Laxkit::PtrStack<char> icon_path;
50  Laxkit::LaxImage *findicon(const char *name);
51  public:
52  IconManager();
53  int InstallIcon(const char *nname, int nid, const char *file);
54  int InstallIcon(const char *nname, int nid, Laxkit::LaxImage *img);
55  Laxkit::LaxImage *GetIconByIndex(int index);
56  Laxkit::LaxImage *GetIcon(int id);
57  Laxkit::LaxImage *GetIcon(const char *name);
58  int HowMany();
59  void addpath(const char *newpath);
60 };
61 
62 } //namespace Laxkit
63 
64 
65 #endif
66 
67 

Mon Feb 17 2014 11:52:56, Laxkit