1 ///////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/iconloc.h
3 // Purpose:     declaration of wxIconLocation class
4 // Author:      Vadim Zeitlin
5 // Modified by:
6 // Created:     21.06.2003
7 // RCS-ID:      $Id: iconloc.h 27408 2004-05-23 20:53:33Z JS $
8 // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
9 // Licence:     wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef _WX_ICONLOC_H_
13 #define _WX_ICONLOC_H_
14 
15 #include "wx/string.h"
16 
17 // ----------------------------------------------------------------------------
18 // wxIconLocation: describes the location of an icon
19 // ----------------------------------------------------------------------------
20 
21 class WXDLLIMPEXP_BASE wxIconLocationBase
22 {
23 public:
24     // ctor takes the name of the file where the icon is
25     wxEXPLICIT wxIconLocationBase(const wxString& filename = wxEmptyString)
m_filename(filename)26         : m_filename(filename) { }
27 
28     // default copy ctor, assignment operator and dtor are ok
29 
30 
31     // returns true if this object is valid/initialized
IsOk()32     bool IsOk() const { return !m_filename.empty(); }
33 
34     // set/get the icon file name
SetFileName(const wxString & filename)35     void SetFileName(const wxString& filename) { m_filename = filename; }
GetFileName()36     const wxString& GetFileName() const { return m_filename; }
37 
38 private:
39     wxString m_filename;
40 };
41 
42 // under MSW the same file may contain several icons so we also store the
43 // index of the icon
44 #if defined(__WXMSW__)
45 
46 class WXDLLIMPEXP_BASE wxIconLocation : public wxIconLocationBase
47 {
48 public:
49     // ctor takes the name of the file where the icon is and the icons index in
50     // the file
51     wxEXPLICIT wxIconLocation(const wxString& file = wxEmptyString, int num = 0);
52 
53     // set/get the icon index
SetIndex(int num)54     void SetIndex(int num) { m_index = num; }
GetIndex()55     int GetIndex() const { return m_index; }
56 
57 private:
58     int m_index;
59 };
60 
61 inline
wxIconLocation(const wxString & file,int num)62 wxIconLocation::wxIconLocation(const wxString& file, int num)
63               : wxIconLocationBase(file)
64 {
65     SetIndex(num);
66 }
67 
68 #else // !MSW
69 
70 // must be a class because we forward declare it as class
71 class WXDLLIMPEXP_BASE wxIconLocation : public wxIconLocationBase
72 {
73 public:
74     wxEXPLICIT wxIconLocation(const wxString& filename = wxEmptyString)
wxIconLocationBase(filename)75         : wxIconLocationBase(filename) { }
76 };
77 
78 #endif // platform
79 
80 #endif // _WX_ICONLOC_H_
81 
82