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
|
/*
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
#include <windows.h>
#include <wininet.h>
#include <shlobj.h>
#include <m_options.h>
#include <m_clui.h>
#include <m_toptoolbar.h>
#include "version.h"
#define MODULENAME "StartupStatus"
struct TSSSetting : public PROTOCOLSETTINGEX
{
TSSSetting( PROTOACCOUNT* pa );
TSSSetting( int profile, PROTOACCOUNT* pa );
~TSSSetting();
__inline void* operator new( size_t size ) { return calloc( 1, size ); }
__inline void operator delete( void* p ) { free( p ); }
};
typedef OBJLIST<TSSSetting> TSettingsList;
struct PROFILECE
{
int profile;
char *szProto;
char *msg;
};
struct PROFILEOPTIONS
{
__inline void* operator new( size_t size ) { return mir_calloc(size); }
__inline void operator delete( void* p ) { mir_free(p); }
__inline ~PROFILEOPTIONS()
{
delete ps;
if (szName != NULL)
mir_free(szName);
}
char *szName;
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_SETPROFILE WM_USER + 2
#define UM_SETPROTOCOL WM_USER + 3
#define UM_SETSTATUSMSG WM_USER + 4
#define UM_ADDPROFILE WM_USER + 5
#define UM_DELPROFILE WM_USER + 6
#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 "Miranda IM"
#define SHORTCUT_FILENAME "\\Miranda IM.lnk"
#define DOCKED_NONE 0
#define DOCKED_LEFT 1
#define DOCKED_RIGHT 2
#define MS_SS_MENUSETPROFILEPREFIX "StartupStatus/SetProfile_"
// options
int OptionsInit(WPARAM wparam,LPARAM lparam);
char* OptName(int i, const char* setting);
// startupstatus
int LoadMainOptions();
int CompareSettings( const TSSSetting* p1, const TSSSetting* p2 );
TSettingsList* GetCurrentProtoSettings();
// profile
int GetProfile(int profileID, TSettingsList& arSettings );
char *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);
void RegisterButtons();
int LoadProfileModule();
int InitProfileModule();
int DeinitProfilesModule();
#endif //__STARTUPSTATUSHEADER
|