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
|
/*
StartupStatus Plugin for Miranda-IM (www.miranda-im.org)
Copyright 2003-2006 P. Boon
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 __STARTUPSTATUSHEADER
#define __STARTUPSTATUSHEADER
#define SSMODULENAME "StartupStatus"
struct TSSSetting : public PROTOCOLSETTINGEX, public MZeroedObject
{
TSSSetting(PROTOACCOUNT *pa);
TSSSetting(int profile, PROTOACCOUNT *pa);
~TSSSetting();
};
int SSCompareSettings(const TSSSetting *p1, const TSSSetting *p2);
typedef OBJLIST<TSSSetting> TSettingsList;
struct PROFILECE
{
int profile;
char *szProto;
wchar_t *msg;
};
struct PROFILEOPTIONS : public MZeroedObject
{
__inline ~PROFILEOPTIONS()
{
delete ps;
mir_free(tszName);
}
wchar_t *tszName;
TSettingsList* ps;
BOOL showDialog;
BOOL createTtb;
BOOL createMmi;
BOOL inSubMenu;
BOOL regHotkey;
WORD hotKey;
};
typedef struct {
ATOM id;
int profile;
} HKINFO;
#define UM_REINITPROFILES WM_USER + 1
#define UM_ADDPROFILE WM_USER + 5
#define UM_REINITDOCKED WM_USER + 7
#define UM_REINITWINSTATE WM_USER + 8
#define UM_REINITWINSIZE WM_USER + 9
#define CLUIINTM_REDRAW (WM_USER+100)
#define MODULE_CLIST "CList"
#define MODULE_CLUI "CLUI"
#define SETTING_STATUS "Status"
#define SETTING_SETWINSTATE "SetState"
#define SETTING_WINSTATE "State"
#define SETTING_SETDOCKED "SetDocked"
#define SETTING_DOCKED "Docked"
#define SETTING_SHOWDIALOG "ShowDialog"
#define SETTING_OFFLINECLOSE "OfflineOnClose"
#define SETTING_SETPROFILE "SetStatusOnStartup"
#define SETTING_AUTODIAL "AutoDial"
#define SETTING_AUTOHANGUP "AutoHangup"
#define SETTING_TOOLWINDOW "ToolWindow"
#define SETTING_OVERRIDE "AllowOverride"
#define SETTING_SETWINLOCATION "SetWinLoc"
#define SETTING_XPOS "x"
#define SETTING_YPOS "y"
#define SETTING_SETWINSIZE "SetWinSize"
#define SETTING_WIDTH "Width"
#define SETTING_HEIGHT "Height"
#define SETTING_AUTOSIZE "AutoSize"
#define SETTING_PROFILECOUNT "ProfileCount"
#define SETTING_DEFAULTPROFILE "DefaultProfile"
#define SETTING_PROFILENAME "ProfileName"
#define SETTING_CREATETTBBUTTON "CreateTTBButton"
#define SETTING_PROFILE_STSMSG "StatusMsg"
#define SETTING_SHOWCONFIRMDIALOG "profile_ShowDialog"
#define SETTING_CREATEMMITEM "CreateMMItem"
#define SETTING_INSUBMENU "InSubMenu"
#define SETTING_REGHOTKEY "RegHotKey"
#define SETTING_HOTKEY "HotKey"
#define SETTING_PROFILENO "ProfileNo"
#define SETTING_SETPROFILEDELAY "SetStatusDelay"
#define SETTING_DLGTIMEOUT "DialogTimeout"
#define SHORTCUT_DESC L"Miranda NG"
#define SHORTCUT_FILENAME L"\\Miranda NG.lnk"
#define DOCKED_NONE 0
#define DOCKED_LEFT 1
#define DOCKED_RIGHT 2
#define MS_SS_MENUSETPROFILEPREFIX "StartupStatus/SetProfile_"
// options
int StartupStatusOptionsInit(WPARAM wparam,LPARAM lparam);
char* OptName(int i, const char* setting);
// startupstatus
void StartupStatusLoad();
void StartupStatusUnload();
int SSLoadMainOptions();
TSettingsList* GetCurrentProtoSettings();
// profile
int GetProfile(int profileID, TSettingsList& arSettings );
wchar_t *GetStatusMessage(int profile, char *szProto);
INT_PTR LoadAndSetProfile(WPARAM wParam, LPARAM lParam);
INT_PTR GetProfileCount(WPARAM wParam, LPARAM lParam);
INT_PTR GetProfileName(WPARAM wParam, LPARAM lParam);
extern HANDLE hTTBModuleLoadedHook;
void RemoveTopToolbarButtons();
int CreateTopToolbarButtons(WPARAM wParam, LPARAM lParam);
int LoadProfileModule();
int InitProfileModule();
int DeinitProfilesModule();
#endif //__STARTUPSTATUSHEADER
|