blob: a80d0f40614b43f06a2740e93bf2e1df7bee0bf2 (
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
// ---------------------------------------------------------------------------80
// Icons Library Manager plugin for Miranda Instant Messenger
// __________________________________________________________
//
// Copyright © 2005 Denis Stanishevskiy // StDenis
// Copyright © 2006 Joe Kucera, Bio
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
#define SKINICONDESC_SIZE sizeof(SKINICONDESC) // v0.0.1.0+
#define SKINICONDESC_SIZE_V1 0x18
#define SKINICONDESC_SIZE_V2 0x1C // v0.0.0.2+
#define SKINICONDESC_SIZE_V3 0x24 // v0.0.0.3+
typedef struct {
int cbSize;
union {
char *pszSection; // section name used to group icons
TCHAR *ptszSection;
wchar_t *pwszSection;
};
union {
char *pszDescription; // description for options dialog
TCHAR *ptszDescription;
wchar_t *pwszDescription;
};
char *pszName; // name to refer to icon when playing and in db
char *pszDefaultFile; // default icon file to use
int iDefaultIndex; // index of icon in default file
HICON hDefaultIcon; // handle to default icon
int cx,cy; // dimensions of icon
int flags; // combination of SIDF_*
} SKINICONDESC;
#define SIDF_SORTED 0x1 // Icons in section are sorted by name
#define SIDF_UNICODE 0x100 // Section and Description are in UCS-2
#if defined(_UNICODE)
#define SIDF_TCHAR SIDF_UNICODE
#else
#define SIDF_TCHAR 0
#endif
//
// Add a icon into options UI
//
// wParam = (WPARAM)0
// lParam = (LPARAM)(SKINICONDESC*)sid;
//
#define MS_SKIN2_ADDICON "Skin2/Icons/AddIcon"
//
// Remove a icon from options UI
//
// wParam = (WPARAM)0
// lParam = (LPARAM)(char*)pszName
// WARNING: This will invalidate all HICONs retrieved for specified pszName
//
#define MS_SKIN2_REMOVEICON "Skin2/Icons/RemoveIcon"
//
// Retrieve HICON with name specified in lParam
// Returned HICON SHOULDN'T be destroyed, it is managed by IcoLib
//
#define MS_SKIN2_GETICON "Skin2/Icons/GetIcon"
//
// Retrieved HICON is not needed anymore (this helps optimize GDI usage)
//
// wParam = (WPARAM)HICON (optional)
// lParam = (LPARAM)(char*)pszName (optional) // at least one needs to be specified
//
#define MS_SKIN2_RELEASEICON "Skin2/Icons/ReleaseIcon"
//
// Icons change notification
//
#define ME_SKIN2_ICONSCHANGED "Skin2/IconsChanged"
|