/*
* -----
* Screenshot Sender - menu.js
* -----
* Menu handler for Screenshot Sender
* -----
*/
/*
Name: OnGetScriptMenu
Purpose: The OnGetScriptMenu event is fired when some of the Messenger Plus! menus are
displayed. It allows scripts to return their own menu to be added to Messenger Plus!'s one.
Parameters: nLocation - A number specifying the location of the menu that triggered the event. You can
use this parameter to display a different menu depending on what the current
user is currently doing. It can be one of the following values:
1 - Contact List
2 - Chat Window
Return: An XML data string defining the script's menu.
*/
function OnGetScriptMenu(nLocation) {
_debug.getfuncname(arguments);
if (CheckVersion(4.60) == false)
return false;
var bEnabled = (Messenger.MyStatus > STATUS_INVISIBLE);
var bSignedIn = (Messenger.MyStatus >= STATUS_INVISIBLE);
var oMenu = new ScriptMenu();
with (oMenu) {
if (nLocation === 2) {
AddSubMenu(_lang.text['MenuActiveWindow']);
AddItem('/ssactive', _lang.text['SubMenuSendActiveWindow'], bEnabled);
AddItem('/sssactive', _lang.text['SubMenuSaveActiveWindow'], bSignedIn);
AddSeperator();
AddItem('/ssactive ' + objPreferences['tTimeDelay'], _lang.text['SubMenuSendActiveWindowDelay'], bEnabled);
AddItem('/sssactive ' + objPreferences['tTimeDelay'], _lang.text['SubMenuSaveActiveWindowDelay'], bSignedIn);
CloseSubMenu();
AddSubMenu(_lang.text['MenuFullscreen']);
AddItem('/ssfullscreen', _lang.text['SubMenuSendFullscreen'], bEnabled);
AddItem('/sssfullscreen', _lang.text['SubMenuSaveFullscreen'], bSignedIn);
AddSeperator();
AddItem('/ssfullscreen ' + objPreferences['tTimeDelay'], _lang.text['SubMenuSendFullscreenDelay'], bEnabled);
AddItem('/sssfullscreen ' + objPreferences['tTimeDelay'], _lang.text['SubMenuSaveFullscreenDelay'], bSignedIn);
CloseSubMenu();
AddSubMenu(_lang.text['MenuSelectArea']);
AddItem('/ssselect', _lang.text['SubMenuSendSelectArea'], bEnabled);
AddItem('/sssselect', _lang.text['SubMenuSaveSelectArea'], bSignedIn);
AddSeperator();
AddItem('/ssselect ' + objPreferences['tTimeDelay'], _lang.text['SubMenuSendSelectAreaDelay'], bEnabled);
AddItem('/sssselect ' + objPreferences['tTimeDelay'], _lang.text['SubMenuSaveSelectAreaDelay'], bSignedIn);
CloseSubMenu();
AddSubMenu(_lang.text['MenuClipboard']);
AddItem('/ssclipboard', _lang.text['SubMenuSendClipboard'], bEnabled);
AddItem('/sssclipboard', _lang.text['SubMenuSaveClipboard'], bSignedIn);
CloseSubMenu();
AddSubMenu(_lang.text['MenuPointClickCapture']);
AddItem('/sspcc', _lang.text['SubMenuSendPointClickCapture'], bEnabled);
AddItem('/ssspcc', _lang.text['SubMenuSavePointClickCapture'], bSignedIn);
CloseSubMenu();
if (SelectedMonitor(0, 0, 0, 0, true) > 1) {
AddSubMenu(_lang.text['MenuSelectedMonitor']);
AddItem('/ssmonitor', _lang.text['SubMenuSendSelectedMonitor'], bEnabled);
AddItem('/sssmonitor', _lang.text['SubMenuSaveSelectedMonitor'], bSignedIn);
CloseSubMenu();
}
AddSubMenu(_lang.text['MenuByWindowTitle']);
AddItem('/sswindow', _lang.text['SubMenuSendWindowByTitle'], bEnabled);
AddItem('/ssswindow', _lang.text['SubMenuSaveWindowByTitle'], bSignedIn);
CloseSubMenu();
AddSeperator();
}
if (IsTimerActive == true) {
AddItem('CancelTimer', _lang.text['MenuCancelTimer'], bEnabled);
AddSeperator();
}
AddItem('OpenDirectory', _lang.text['MenuOpenDirectory'], bSignedIn);
AddItem('ScreenshotViewer', _lang.text['MenuScreenshotViewer'], bSignedIn);
if (nLocation === 2 && SessionImages.Images.length > 0) {
AddItem('RecentImages', _lang.text['MenuRecentImages'], bEnabled);
AddSeperator();
}
AddItem('Preferences', _lang.text['MenuPreferences'], bSignedIn)
AddSeperator();
AddItem('About', _lang.text['MenuAbout'], bSignedIn)
}
return oMenu.ExportMenu();
}
/*
Name: OnEvent_MenuClicked
Purpose: The OnEvent_MenuClicked event is fired when an item of a script menu is selected by the current user.
Parameters: sMenuId - Identifier of the menu item that was selected by the current user.
nLocation - A number specifying the location of the menu that triggered the event. You can use this parameter
to display a different menu depending on what the current user is currently doing. It can be one of
the following values:
1 - Contact List
2 - Chat Window
oChatWnd - If Location is 2, this parameter is the ChatWnd object attached to the chat window where the menu was
displayed. Else, this parameter is undefined.
Return: None
*/
function OnEvent_MenuClicked(sMenuId, nLocation, oChatWnd) {
_debug.getfuncname(arguments);
switch (sMenuId) {
case 'About' : OpenAbout(); break;
case 'Preferences' : OpenPreferences(); break;
case 'ScreenshotViewer' : LaunchScreenshotViewer(); break;
case 'OpenDirectory' : _win32.ShellExecuteW(0, 'open', objPreferences['tSaveDirectory'], '', '', 1); break;
case 'RecentImages' : RecentImages(oChatWnd); break;
case 'CancelTimer' :
delete objCWindows[objWindows['Countdown'].Handle];
CloseWindow('Countdown');
IsTimerActive = false;
MsgPlus.CancelTimer('Countdown');
break;
default:
OnEvent_ChatWndSendMessage(oChatWnd, sMenuId);
break;
}
}