summaryrefslogtreecommitdiff
path: root/include/delphi/m_skin.inc
blob: 3aa3503ea3c628c924562f7d587b78cc5330255d (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
{
Miranda IM: the free IM client for Microsoft* Windows*

Copyright 2000-2003 Miranda ICQ/IM project,
all portions of this codebase are copyrighted to the people
listed in contributors.txt.

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.
}

{$IFNDEF M_SKIN}
{$DEFINE M_SKIN}

const
  // event icons
  SKINICON_EVENT_MESSAGE = 100;
  SKINICON_EVENT_URL     = 101;
  SKINICON_EVENT_FILE    = 102;

  // other icons
  SKINICON_OTHER_MIRANDA       = 200;
  SKINICON_OTHER_EXIT          = 201;
  SKINICON_OTHER_SHOWHIDE      = 202;
  SKINICON_OTHER_GROUPOPEN     = 203; // v0.1.1.0+
  SKINICON_OTHER_USERONLINE    = 204; // v0.1.0.1+
  SKINICON_OTHER_GROUPSHUT     = 205; // v0.1.1.0+
  SKINICON_OTHER_CONNECTING    = 206; // v0.1.0.1+
  SKINICON_OTHER_ADDCONTACT    = 207; // v0.7.0.2+
  SKINICON_OTHER_USERDETAILS   = 208; // v0.7.0.2+
  SKINICON_OTHER_HISTORY       = 209; // v0.7.0.2+
  SKINICON_OTHER_DOWNARROW     = 210; // v0.7.0.2+
  SKINICON_OTHER_FINDUSER      = 211; // v0.7.0.2+
  SKINICON_OTHER_OPTIONS       = 212; // v0.7.0.2+
  SKINICON_OTHER_SENDEMAIL     = 213; // v0.7.0.2+
  SKINICON_OTHER_DELETE        = 214; // v0.7.0.2+
  SKINICON_OTHER_RENAME        = 215; // v0.7.0.2+
  SKINICON_OTHER_SMS           = 216; // v0.7.0.2+
  SKINICON_OTHER_SEARCHALL     = 217; // v0.7.0.2+
  SKINICON_OTHER_TICK          = 218; // v0.7.0.2+
  SKINICON_OTHER_NOTICK        = 219; // v0.7.0.2+
  SKINICON_OTHER_HELP          = 220; // v0.7.0.2+
  SKINICON_OTHER_MIRANDAWEB    = 221; // v0.7.0.2+
  SKINICON_OTHER_TYPING        = 222; // v0.7.0.2+
  SKINICON_OTHER_SMALLDOT      = 223; // v0.7.0.2+
  SKINICON_OTHER_FILLEDBLOB    = 224; // v0.7.0.2+
  SKINICON_OTHER_EMPTYBLOB     = 225; // v0.7.0.2+
  SKINICON_OTHER_UNICODE       = 226; // v0.7.0.19+
  SKINICON_OTHER_ANSI          = 227; // v0.7.0.19+
  SKINICON_OTHER_LOADED        = 228; // v0.7.0.19+
  SKINICON_OTHER_NOTLOADED     = 229; // v0.7.0.19+
  SKINICON_OTHER_UNDO          = 230; // v0.8.0.4+
  SKINICON_OTHER_WINDOW        = 231; // v0.8.0.4+
  SKINICON_OTHER_WINDOWS       = 232; // v0.8.0.4+
  SKINICON_OTHER_ACCMGR        = 233; // v0.8.0.4+
  SKINICON_OTHER_MAINMENU      = 234; // v0.8.0.12+
  SKINICON_OTHER_STATUS        = 235; // v0.8.0.12+
  SKINICON_CHAT_JOIN           = 236; // v0.8.0.27+
  SKINICON_CHAT_LEAVE          = 237; // v0.8.0.27+
  SKINICON_OTHER_STATUS_LOCKED = 238; // v0.8.0.28+
  SKINICON_OTHER_GROUP         = 239; // v0.8.0.29+
  SKINICON_OTHER_ON            = 240; // v0.9.0.9+
  SKINICON_OTHER_OFF           = 241; // v0.9.0.9+
  SKINICON_OTHER_LOADEDGRAY    = 242; // v0.10.3.1+
  SKINICON_OTHER_NOTLOADEDGRAY = 243; // v0.10.3.1+
{
  SKINICON_EVENT_MESSAGE_BIG     = 300;
  SKINICON_EVENT_URL_BIG         = 301;
  SKINICON_EVENT_FILE_BIG        = 302;
  SKINICON_OTHER_MIRANDA_BIG     = 303;
  SKINICON_OTHER_ADDCONTACT_BIG  = 304;
  SKINICON_OTHER_USERDETAILS_BIG = 305;
  SKINICON_OTHER_HISTORY_BIG     = 306;
  SKINICON_OTHER_FINDUSER_BIG    = 307;
  SKINICON_OTHER_OPTIONS_BIG     = 308;
  SKINICON_OTHER_ACCMGR_BIG      = 309;
}
  // menu icons are owned by the module that uses them so are not and should
  // not be skinnable. Except exit and show/hide

  // status mode icons. NOTE: These are deprecated in favour of LoadSkinnedProtoIcon()
  SKINICON_STATUS_OFFLINE    = 0;
  SKINICON_STATUS_ONLINE     = 1;
  SKINICON_STATUS_AWAY       = 2;
  SKINICON_STATUS_NA         = 3;
  SKINICON_STATUS_OCCUPIED   = 4;
  SKINICON_STATUS_DND        = 5;
  SKINICON_STATUS_FREE4CHAT  = 6;
  SKINICON_STATUS_INVISIBLE  = 7;
  SKINICON_STATUS_ONTHEPHONE = 8;
  SKINICON_STATUS_OUTTOLUNCH = 9;

const
  SSDF_UNICODE  = $0001;
type
  PSKINSOUNDDESCEX = ^TSKINSOUNDDESCEX;
  TSKINSOUNDDESCEX = record
    cbSize        : int;
    pszName       : PAnsiChar; // name to refer to sound when playing and in DB
    pszDescription: TChar; // [TRANSLATED-BY-CORE] description to use for it in options dialog
    pszDefaultFile: TChar; // the default sound file to use, WITHOUT path
    pszSection    : TChar; // [TRANSLATED-BY-CORE] section name used to group sounds (NULL is acceptable)
    dwFlags       : dword; // if Miranda ver >=9.0
  end;

const
  {
    wParam : ICON_ID or handle
    lParam : 0 if ICON_ID, else 1
    Affect : Load an icon from the user's custom skin lib, or from the exe
             if there isn't one loaded, see notes
    Return : HICON for the new icon, do *not* DestroyIcon() the return value
             returns NULL(0) if ICON_ID is invalid, but always success for a
             valid ID.
  }
  MS_SKIN_LOADICON:PAnsiChar = 'Skin/Icons/Load';

  {
    wParam : null terminated string containing the protocol name
    lParam : status_wanted
    Affect : Load an icon representing the status_wanted for a particular protocol, see notes
    Returns: an HICON for the new icon, do NOT DestroyIcon() the return value
             returns NULL(0) on failure.
    Notes  : If wParam is NULL(0) the service will load the user's selected
             'all protocols' status icon
  }
  MS_SKIN_LOADPROTOICON   :PAnsiChar = 'Skin/Icons/LoadProto';
  MS_SKIN_LOADPROTOICONBIG:PAnsiChar = 'Skin/Icons/LoadProtoBig';

  {
    wParam : hLangpack
    lParam : Pointer to a initialised SKINSOUNDDESC
    Affect : Add a new sound so it has a default and can be changed in the
             options dialog
    Returns: 0 on success, [non zero] on failure
  }
  MS_SKIN_ADDNEWSOUND:PAnsiChar = 'Skin/Sounds/AddNew';

  {
    wParam : 0
    lParam : Pointer to a null terminated string containing the name of the
             sound to play
    Affect : play a named sound event, play name should of been added
             with MS_SKIN_ADDNEWSOUND,  see notes
    Notes  : function will not fail, it will play the Windows
  }
  MS_SKIN_PLAYSOUND:PAnsiChar = 'Skin/Sounds/Play';

  {
    wParam : 0
    lParam : 0
    Affect : Sent when the icons DLL has been changed in the options dialog
             and everyone should remake their image lists.
  }
  ME_SKIN_ICONSCHANGED:PAnsiChar = 'Skin/IconsChanged';

  {
    wParam: 0 when playing sound (1 when sound is being previewed)
    lParam: (AnsiChar*) pszSoundFile
    Affect: This hook is fired when the sound module needs to play a sound
    Note  : This event has default processing, if no one HookEvent()'s this
        event then it will use the default hook code, which uses PlaySound()
    Version: 0.3.4a (2004/09/15)
  }
  ME_SKIN_PLAYINGSOUND:PAnsiChar = 'Skin/Sounds/Playing';

{$ENDIF}