/*
*
* Preview.xml
*
*/
function OnPreviewEvent_CtrlClicked(pPlusWnd, sControlId) {
if (sControlId.match(/^BaseBtn/) ) {
return false; // Check to see if these are the control box controls
}
switch (sControlId) {
case 'lnkSaveImageAs' :
var sImage = SaveFileAs();
if (sImage == false) return false;
_win32.ShowWindow(pPlusWnd.Handle, _win32._const._SW_HIDE);
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
SessionImages.MoveTempImage(objChatWnds[pPlusWnd.Handle].Image, sImage);
CloseWindow('Preview');
break;
case 'lnkSaveImage' :
var sImage = SessionImages.CreateImagePath();
_win32.ShowWindow(pPlusWnd.Handle, _win32._const._SW_HIDE);
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
SessionImages.MoveTempImage(objChatWnds[pPlusWnd.Handle].Image, sImage);
CloseWindow('Preview');
break;
case 'lnkSendImage' :
_win32.ShowWindow(pPlusWnd.Handle, _win32._const._SW_HIDE);
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
var sImage = (IsRecentImages ? objChatWnds[pPlusWnd.Handle].Image :
SessionImages.MoveTempImage(objChatWnds[pPlusWnd.Handle].Image, SessionImages.CreateImagePath()));
try {
if (objChatWnds[pPlusWnd.Handle].ChatWnd.Contacts.Count === 1) {
oChatWnd_SendFile(objChatWnds[pPlusWnd.Handle].ChatWnd, sImage);
} else {
var WndContactSelector = ContactSelector(objChatWnds[pPlusWnd.Handle].ChatWnd.Contacts);
objChatWnds[WndContactSelector.Handle] = {};
objChatWnds[WndContactSelector.Handle].Image = sImage;
}
} catch (err) {
var WndContactSelector = ContactSelector(Messenger.MyContacts);
objChatWnds[WndContactSelector.Handle] = {};
if (objChatWnds[pPlusWnd.Handle].IsViewer == true) objChatWnds[WndContactSelector.Handle].Image = sImage;
else objChatWnds[WndContactSelector.Handle].Image = sImage;
}
CloseWindow('Preview');
break;
case 'lnkUploadImage' :
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkUploadImage'), false);
Ftp_UploadFile(objChatWnds[pPlusWnd.Handle].Image, true, objChatWnds[pPlusWnd.Handle].ChatWnd);
break;
case 'lnkEditImage' :
new ActiveXObject('WScript.Shell').run(sReplace(objPreferences['tEditProgram'], [objChatWnds[pPlusWnd.Handle].Image] ) );
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
_win32.ShowWindow(pPlusWnd.GetControlHandle('lnkEditImage'), _win32._const._SW_HIDE);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lnkRefreshImage'), _win32._const._SW_SHOW);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkSendImage'), false);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkSaveImageAs'), false);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkUploadImage'), false);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkCopyImage'), false);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lblJpgQuality'), false);
_win32.EnableWindow(pPlusWnd.GetControlHandle('sldrQuality'), false);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageName'), _win32._const._SW_HIDE);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageSize'), _win32._const._SW_HIDE);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageDimensions'), _win32._const._SW_HIDE);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageCreated'), _win32._const._SW_HIDE);
pPlusWnd.ImageElmt_SetImageFile('ImgJpg', 'jpg_disabled.png');
break;
case 'lnkRefreshImage' :
var oGdip = new Gdip();
oGdip.Initialize();
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', '\\'+objChatWnds[pPlusWnd.Handle].Image);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lnkRefreshImage'), _win32._const._SW_HIDE);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lnkEditImage'), _win32._const._SW_SHOW);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkSendImage'), true);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkSaveImageAs'), true);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkUploadImage'), true);
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkCopyImage'), true);
pPlusWnd.SetControlText('lblImageSize', _lang.text['ScreenshotViewer_Size'] +' '+oGdip.FormatFileSize(oGdip.GetImageSizeInBytes(objChatWnds[pPlusWnd.Handle].Image) ) );
pPlusWnd.SetControlText('lblImageDimensions', _lang.text['ScreenshotViewer_Dimensions'] +' '+oGdip.GetImageDimensions(objChatWnds[pPlusWnd.Handle].Image) );
pPlusWnd.SetControlText('lblImageCreated', _lang.text['ScreenshotViewer_DateCreated'] +' '+oGdip.GetDateCreated(objChatWnds[pPlusWnd.Handle].Image) );
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageName'), _win32._const._SW_SHOW);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageSize'), _win32._const._SW_SHOW);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageDimensions'), _win32._const._SW_SHOW);
_win32.ShowWindow(pPlusWnd.GetControlHandle('lblImageCreated'), _win32._const._SW_SHOW);
oGdip.Uninitialize();
break;
case 'lnkCopyImage' :
var oGdip = new Gdip();
oGdip.Clipboard_SetData(objPictures[pPlusWnd.GetControlText('lblImageName') ].Picture);
oGdip = null;
_win32.EnableWindow(pPlusWnd.GetControlHandle('lnkCopyImage'), false);
break;
}
}
function OnPreviewEvent_Destroyed(pPlusWnd, nExitCode) {
try {
_win32.DeleteObject(objPictures[pPlusWnd.GetControlText('lblImageName') ].Picture);
delete objPictures[pPlusWnd.GetControlText('lblImageName') ];
} catch (err) { }
if(IsRecentImages === false) {
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
_win32.DeleteFileW(objChatWnds[pPlusWnd.Handle].Image);
}
IsRecentImages = false;
if (nExitCode !== 6) {
CloseWindow(pPlusWnd.WindowId);
return false;
}
}
function OnPreviewEvent_MessageNotification(pPlusWnd, nMessage, wParam, lParam) {
switch (nMessage) {
case _win32._const._WM_NOTIFY:
try {
var NMHDR = Interop.Allocate(12);
_win32.RtlMoveMemory(NMHDR.DataPtr, lParam, 12);
if (NMHDR.ReadDWORD(0) === pPlusWnd.GetControlHandle('sldrQuality') ) {
if (NMHDR.ReadDWORD(8) === _win32._const._NM_RELEASEDCAPTURE) {
var oGdip = new Gdip();
var sImage = objChatWnds[pPlusWnd.Handle].Image;
oGdip.Initialize();
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
if (oGdip.UpdateQuality(objPictures[pPlusWnd.GetControlText('lblImageName') ].Picture, sImage, pPlusWnd.SendControlMessage('sldrQuality', 0x400 /* TBM_GETPOS */, 0, 0) ) === false) {
//Error
}
pPlusWnd.ImageElmt_SetImageFile('ImgPreview', '\\'+sImage);
pPlusWnd.SetControlText('lblImageSize', _lang.text['ScreenshotViewer_Size'] +' '+oGdip.FormatFileSize(oGdip.GetImageSizeInBytes(sImage) ) );
oGdip.Uninitialize();
}
}
} catch (err) {
}
break;
case _win32._const._WM_SIZE:
if (wParam === _win32._const._SIZE_MAXIMIZED) {
_win32.ShowWindow(pPlusWnd.GetControlHandle('BaseBtnMinimise'), _win32._const._SW_SHOW);
_win32.ShowWindow(pPlusWnd.GetControlHandle('BaseBtnMaximise'), _win32._const._SW_SHOW);
_win32.ShowWindow(pPlusWnd.GetControlHandle('BaseBtnCancel'), _win32._const._SW_SHOW);
}
}
}