ecere/gui/Window: Prevent uninitialized values if base Window methods not overridden...
[sdk] / extras / gui / IconBag.ec
1 #ifdef BUILDING_ECERE_COM
2 namespace gui::controls;
3 import "Window"
4 import "Array"
5 #else
6 #ifdef ECERE_STATIC
7 public import static "ecere"
8 #else
9 public import "ecere"
10 #endif
11 #endif
12
13 public class IconBag<class TT>
14 {
15 public:
16    Window window;
17    bool alphaBlend;
18
19    Array<char *> iconNames { };
20    property Container<char *> iconNames
21    {
22       set
23       {
24          iconNames.Copy((void *)value);  // TOFIX: Warning without the void * cast
25       }
26    }
27
28    Array<BitmapResource> icons { };
29
30    void Load()
31    {
32       int i;
33       icons.RemoveAll();
34       for(i = 0; i < iconNames.count; i++)
35       {
36          char * s = iconNames[i];
37          BitmapResource br = BitmapResource { iconNames[i], alphaBlend = alphaBlend };
38          //Bitmap b = br.bitmap;
39          window.AddResource(br);
40          //b = br.bitmap;
41          icons.Add(br);
42       }
43    }
44
45    void Unload()
46    {
47       icons.RemoveAll();
48    }
49
50    char * GetIconName(TT icon)
51    {
52       int i = (int)icon;
53       return i <= iconNames.count ? iconNames[(int)icon] : null;
54    }
55
56    /*
57    BitmapResource GetIcon(TT icon)
58    {
59       int i = (int)icon;
60       return icons[i];
61    }
62    */
63
64    /*
65    ~IconBag()
66    {
67       //window = null;
68       //icons.RemoveAll();
69       //iconNames.RemoveAll();
70    }
71    */
72 }