From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- .../include/reserve/helpers/m_statusplugins.inc | 181 +++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 delphi/Awkward/include/reserve/helpers/m_statusplugins.inc (limited to 'delphi/Awkward/include/reserve/helpers/m_statusplugins.inc') diff --git a/delphi/Awkward/include/reserve/helpers/m_statusplugins.inc b/delphi/Awkward/include/reserve/helpers/m_statusplugins.inc new file mode 100644 index 0000000..a638dd1 --- /dev/null +++ b/delphi/Awkward/include/reserve/helpers/m_statusplugins.inc @@ -0,0 +1,181 @@ +{ + AdvancedAutoAway Plugin for Miranda-IM (www.miranda-im.org) + KeepStatus Plugin for Miranda-IM (www.miranda-im.org) + 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 M_STATUSPLUGINS} +{$DEFINE M_STATUSPLUGINS} + +// -- common status -- (all three plugins) +type + PROTOCOLSETTINGEX = record + cbSize :integer; + szName :PAnsiChar; // pointer to protocol modulename + szMsg :PAnsiChar; // pointer to the status message (may be NULL) + status :word; // the status + lastStatus:word; // last status + tszAccName:TChar; + end; + +const +// wParam = PROTOCOLSETTINGEX*** (keep it like this for compatibility) +// lParam = 0 +// returns 0 on success + MS_CS_SETSTATUSEX:PAnsiChar = 'CommonStatus/SetStatusEx'; + +// wParam = PROTOCOLSETTINGEX*** (keep it like this for compatibility) +// lParam = timeout +// returns hwnd + MS_CS_SHOWCONFIRMDLGEX:PAnsiChar = 'CommonStatus/ShowConfirmDialogEx'; + +// wParam = 0 +// lParam = 0 +// returns the number of protocols registerd + MS_CS_GETPROTOCOUNT:PAnsiChar = 'CommonStatus/GetProtocolCount'; // added dec '04 + +// wParam = PROTOCOLSETTINGEX*** (keep it like this for compatibility) +// lParam = 0 + ME_CS_STATUSCHANGEEX:PAnsiChar = 'CommonStatus/StatusChangeEx'; +{ +// wParam = protoCount +// lParam = 0 + ME_CS_CSMODULELOADED:PAnsiChar = 'CommonStatus/CommonStatusLoaded'; +} +// -- startup status -- +// wParam = profile number (set to -1 to get default profile) +// lParam = PROTOCOLSETTINGEX*** (keep for... )(memory must be allocated protoCount*PROTOCOLSETTINGEX* and protoCount*PROTOCOLSETTINGEX) +// szMsg member does not have to be freed +// returns 0 on success + MS_SS_GETPROFILE:PAnsiChar = 'StartupStatus/GetProfile'; // don't use this > jan '05, internal use only + +// wParam = profile number +// lParam = 0 +// return 0 on success + MS_SS_LOADANDSETPROFILE:PAnsiChar = 'StartupStatus/LoadAndSetProfile'; // you can use this + +// wParam = int*, maybe NULL sets this int to the default profile number +// lParam = 0 +// returns profile count + MS_SS_GETPROFILECOUNT:PAnsiChar = 'StartupStatus/GetProfileCount'; + +// wParam = profile number +// lParam = AnsiChar* (must be allocated, size = 128) +// returns 0 on success + MS_SS_GETPROFILENAME:PAnsiChar = 'StartupStatus/GetProfileName'; + +// -- AdvancedAutoAway -- +type + STATES = [ + ACTIVE, // user is active + STATUS1_SET, // first status change happened + STATUS2_SET, // second status change happened + SET_ORGSTATUS, // user was active again, original status will be restored + + HIDDEN_ACTIVE, // user is active, but this is not shown to the outside world + +// STATUS1_SET2, // first status change happened, but user may be active ('on inactive only was disabled') +// STATUS2_SET2 // second status change happened, but user may be active ('on inactive only was disabled') + ]; + +type + AUTOAWAYSETTING = record + protocolSetting :^PROTOCOLSETTINGEX; + originalStatusMode:int; // this is set only when going from ACTIVE to + // STATUS1_SET (or to STATUS2_SET) + // (note: this is therefore not always valid) + oldState :STATES; // state before the call + curState :STATES; // current state + bstatusChanged :bool; // the status of the protocol will actually be changed + // (note: unlike the name suggests, the status is + // changed AFTER this hook is called) + bManual :bool; // state changed becuase status was changed manually + end; + +// wParam = 0; +// lParam = AUTOAWAYSETTING* +// Called when a protocol's state in AAA is changed this does NOT necessary means the status was changed +// note: this hook is called for each protocol seperately +const + ME_AAA_STATECHANGED:PAnsiChar = 'AdvancedAutoAway/StateChanged'; +{ +type + AAAOPTPAGE = record + cbSize :int; + pszText :PAnsiChar; + hInst :HINSTANCE; + pfnDlgProc :DLGPROC; + pszTemplate:PAnsiChar; + end; + +const +// lParam=(LPARAM)(AAAOPTPAGE)&aop + MS_AAA_REGISTEROPTIONPAGE:PAnsiChar = 'AdvancedAutoAway/RegisterOptionPage'; +} +// -- KeepStatus -- + KS_CONN_STATE_LOST = 1; // lParam = protocol + KS_CONN_STATE_OTHERLOCATION = 2; // lParam = protocol + KS_CONN_STATE_RETRY = 3; // lParam = nth retry + KS_CONN_STATE_STOPPEDCHECKING = 4; // lParam = TRUE if success, FALSE if failed + KS_CONN_STATE_LOGINERROR = 5; // lParam = protocol, only if selected in options + KS_CONN_STATE_RETRYNOCONN = 6; // lParam = nth try, a connection attempt will not be made +// wParam = one of above +// lParam depends on wParam + ME_KS_CONNECTIONEVENT:PAnsiChar = 'KeepStatus/ConnectionEvent'; + +// wParam = 0 +// lParam = 0 +// returns 0 on succes, nonzero on failure, probably keepstatus wasn't reconnecting + MS_KS_STOPRECONNECTING:PAnsiChar = 'KeepStatus/StopReconnecting'; + +// wParam = TRUE to enable checking a protocol, FALSE to disable checking a protocol +// lParam = protocol +// return 0 on success, nonzero on failure, probably the protocol is 'hard' disabled or not found +// note: you cannot enable a protocol that is disabled in the options screen, you can disable a protocol +// if it's enabled in the option screen. + MS_KS_ENABLEPROTOCOL:PAnsiChar = 'KeepStatus/EnableProtocol'; + +// wParam = 0 +// lParam = protocol +// returns TRUE if protocol is enabled for checked, FALSE otherwise + MS_KS_ISPROTOCOLENABLED:PAnsiChar = 'KeepStatus/IsProtocolEnabled'; + +// Indicate the status will be changed which will not be regarded as a connection failure. +// wParam = 0 +// lParam = PROTOCOLSETTINGEX* of the new situation +// returns 0 + MS_KS_ANNOUNCESTATUSCHANGE:PAnsiChar = 'KeepStatus/AnnounceStatusChange'; + +function announce_status_change(szProto:PAnsiChar;newstatus:integer;szMsg:PAnsiChar):integer;// cdecl; +var + ps:PROTOCOLSETTINGEX; +begin + FillChar(ps,SizeOf(PROTOCOLSETTINGEX),0); + ps.cbSize:=SizeOf(PROTOCOLSETTINGEX); + if szProto<>NIL then + ps.lastStatus:=CallProtoService(szProto, PS_GETSTATUS, 0, 0); + else + ps.lastStatus:=CallService(MS_CLIST_GETSTATUSMODE, 0, 0); + + ps.status:=newstatus; + ps.szMsg :=szMsg; + ps.szName:=szProto; + + result:=CallService(MS_KS_ANNOUNCESTATUSCHANGE, 0,dword(@ps)); +end; + +{$ENDIF} -- cgit v1.2.3