Code Viewer

./WindowHandlers/ScreenshotViewer_handler.js File Size: 18.30 KB

  1. /*
  2. *
  3. *      ScreenshotViewer.xml
  4. *     
  5. */
  6. var gViewerSelectedItemIdx;
  7.  
  8. function OnScreenshotViewerEvent_LstViewClicked(pPlusWnd, sControlId, nItemIdx) {
  9.         gViwerSelectedItemIdx = nItemIdx;
  10.         if (nItemIdx === -1) {
  11.                 OnScreenshotViewerEvent_LstViewSelStateChanged(pPlusWnd, sControlId, nItemIdx);
  12.         }
  13. }
  14.  
  15. function OnScreenshotViewerEvent_LstViewDblClicked(pPlusWnd, sControlId, nItemIdx) {
  16.         if (nItemIdx !== -1) {
  17.                 OnScreenshotViewerEvent_CtrlClicked(pPlusWnd, 'lnkViewImage');
  18.         }
  19. }
  20.  
  21. function OnScreenshotViewerEvent_CtrlClicked(pPlusWnd, sControlId) {
  22.         _debug.getfuncname(arguments);
  23.         if (sControlId === 'BaseBtnCancel') {
  24.                 CloseWindow('ScreenshotViewer');
  25.                 return false;
  26.         }
  27.         var sImageName = pPlusWnd.GetControlText('lblImageName');
  28.         var sImage = objPreferences['tSaveDirectory'] + sImageName;
  29.         switch (sControlId) {
  30.                 case 'lnkSendImage':
  31.                         Preview(0, sImage, false, true);
  32.                         break;
  33.                 case 'lnkUploadImage':
  34.                         Ftp_UploadFile(sImage, true);
  35.                         break;
  36.                 case 'lnkConvertImage':
  37.                         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
  38.                         OpenWindow('ConvertImage', 0, true);
  39.                         objWindows['ConvertImage'].SetControlText('lblImageName', sImageName);
  40.                         var tWnd = objWindows['ConvertImage'];
  41.                                 tWnd.Combo_AddItem('cFileType', 'BMP', 0);
  42.                                 tWnd.Combo_AddItem('cFileType', 'JPG', 1);
  43.                                 tWnd.Combo_AddItem('cFileType', 'GIF', 2);
  44.                                 tWnd.Combo_AddItem('cFileType', 'PNG', 3);
  45.                         break;
  46.                 case 'lnkRefreshImage':
  47.                         ScreenshotViewer_SetControlState(pPlusWnd, _win32._const._SW_SHOW, false);
  48.                         _win32.ShowWindow(pPlusWnd.GetControlHandle('lnkEditImage'), _win32._const._SW_SHOW);
  49.                         _win32.ShowWindow(pPlusWnd.GetControlHandle('lnkRefreshImage'), _win32._const._SW_HIDE);
  50.                         ScreenshotViewer_SetSidebarControlState(pPlusWnd, gViewerSelectedItemIdx, LstView_GetSelectedCount(pPlusWnd, 'LvFiles'));
  51.                        
  52.                         ScreenshotViewer_SetControlState(pPlusWnd, _win32._const._SW_SHOW, true);
  53.                        
  54.                         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', '\\'+sImage);
  55.                                
  56.                         var oGdip = new Gdip();
  57.                         oGdip.Initialize();
  58.                                
  59.                         pPlusWnd.SetControlText('lblImageSize',
  60.                                 _lang.text['ScreenshotViewer_Size'] + ' ' + oGdip.FormatFileSize(oGdip.GetImageSizeInBytes(sImage)));
  61.                         pPlusWnd.SetControlText('lblImageDimensions',
  62.                                 _lang.text['ScreenshotViewer_Dimensions'] + ' ' + oGdip.GetImageDimensions(sImage));
  63.                         pPlusWnd.SetControlText('lblImageCreated',
  64.                                 _lang.text['ScreenshotViewer_DateCreated'] + ' ' + oGdip.GetDateCreated(sImage));
  65.                         oGdip.Uninitialize();   
  66.                         break;
  67.                 case 'lnkEditImage':
  68.                         new ActiveXObject('WScript.Shell').run(sReplace(objPreferences['tEditProgram'], [sImage]));
  69.                         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
  70.  
  71.                         ScreenshotViewer_SetControlState(pPlusWnd, _win32._const._SW_HIDE, false);
  72.                         _win32.ShowWindow(pPlusWnd.GetControlHandle('lnkRefreshImage'), _win32._const._SW_SHOW);
  73.                         _win32.ShowWindow(pPlusWnd.GetControlHandle('lnkEditImage'), _win32._const._SW_HIDE);
  74.                         ScreenshotViewer_SetSidebarControlState(pPlusWnd, -1, LstView_GetSelectedCount(pPlusWnd, 'LvFiles'));
  75.                         break;
  76.                 case 'lnkRefreshImages':
  77.                         RefreshScreenshotViewerList();
  78.                         break;
  79.                 case 'lnkDeleteImage':
  80.                         if (LstView_GetSelectedCount(pPlusWnd, 'LvFiles') > 1) {
  81.                                 var res = _win32.MessageBoxW(pPlusWnd.Handle, _lang.text['MsgBoxDeleteMultiFile'],
  82.                                         _lang.text['MsgBoxDeleteMultiFile_Title'], 36);
  83.                                 if (res === 6) {
  84.                                         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'no_image.png');
  85.  
  86.                                         ScreenshotViewer_SetControlState(pPlusWnd, _win32._const._SW_HIDE, false);
  87.                                         _win32.ShowWindow(pPlusWnd.GetControlHandle('lnkRefreshImage'), _win32._const._SW_SHOW);
  88.                                        
  89.                                         var sFileName, sFilePath;
  90.                                         for (var i=0, len=LstView_GetCount('LvFiles'); i<len; ++i) {
  91.                                                 if (LstView_GetSelectedState('LvFiles', i)) {
  92.                                                         sFileName = LstView_GetItemText('LvFiles', i, 0);
  93.                                                         if (_win32.DeleteFileW(objPreferences['tSaveDirectory'] + sFileName) === 0) {
  94.                                                                 _win32.MessageBoxW(Handle, sReplace(_lang.text['MsgBoxDeleteFileError'], [sFileName]),
  95.                                                                         _lang.text['MsgBoxError_Title'], 32);
  96.                                                         }
  97.                                                 }
  98.                                         }
  99.                                         RefreshScreenshotViewerList();
  100.                                         OnScreenshotViewerEvent_LstViewClicked(pPlusWnd, sControlId, -1);
  101.                                 }
  102.                         } else {
  103.                                 res = _win32.MessageBoxW(pPlusWnd.Handle, sReplace(
  104.                                                 _lang.text['MsgBoxDeleteFile'],
  105.                                                 [sImageName]
  106.                                         ), _lang.text['MsgBoxDeleteFile_Title'], 36);
  107.                                 if (res === 6) {
  108.                                         OnScreenshotViewerEvent_LstViewClicked(pPlusWnd, sControlId, -1);
  109.                                         if (_win32.DeleteFileW(sImage) === 0) {
  110.                                                 _win32.MessageBoxW(Handle, sReplace(_lang.text['MsgBoxDeleteFileError'], [sImageName]),
  111.                                                         _lang.text['MsgBoxError_Title'], 32);
  112.                                         }
  113.                                         RefreshScreenshotViewerList();
  114.                                 }
  115.                         }
  116.                         break;
  117.                 case 'lnkViewImage':
  118.                         var tWnd = OpenWindow('ViewImage', 0x1);
  119.                         tWnd.ImageElmt_SetImageFile('ImgPreview', '\\' + sImage);
  120.                         _win32.ShowWindow(tWnd.Handle, _win32._const._SW_SHOW);
  121.                         break;
  122.                 case 'lnkCopyClipboard' :
  123.                         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'pixel.png');
  124.                         var oGdip = new Gdip();
  125.                         oGdip.Initialize();
  126.                         var hImage = oGdip.GdiCreateHBITMAPFromFile(sImage);
  127.                         oGdip.Clipboard_SetData(hImage, pPlusWnd.Handle);
  128.                         objBitmaps.push(hImage);
  129.                         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', '\\' + sImage);
  130.                         oGdip.Uninitialize();
  131.                         break;
  132.                 case 'lnkDeleteAll' :
  133.                         if (_win32.MessageBoxW(pPlusWnd.Handle, _lang.text['MsgBoxDeleteAllFiles'], _lang.text['MsgBoxDeleteAllFiles_Title'], 36) !== 6) return false;
  134.                         OnScreenshotViewerEvent_LstViewClicked(pPlusWnd, sControlId, -1);
  135.                         var aFiles = GetDirectoryStructure(objPreferences['tSaveDirectory'], '*.*', true),
  136.                                 sFile = '', sFilePath = '';
  137.                         for (var i=0, len=aFiles.length; i<len; ++i) {
  138.                                 sFile = aFiles[i];
  139.                                 if (Image_Regex.test(sFile))
  140.                                         _win32.DeleteFileW(sFile);
  141.                         }                            
  142.                         RefreshScreenshotViewerList();
  143.                         _win32.EnableWindow(pPlusWnd.GetControlHandle('lnkDeleteAll'), true);
  144.                         break;
  145.         }
  146. }
  147.  
  148. function OnScreenshotViewerEvent_LstViewSelStateChanged(pPlusWnd, sControlId, nItemIdx, bSelectedState) {
  149.         if (nItemIdx !== -1 && !bSelectedState) return;
  150.         _debug.getfuncname(arguments);
  151.         if (LstView_GetSelectedCount(pPlusWnd, 'LvFiles') > 1 || nItemIdx === -1 ) {
  152.                 pPlusWnd.ImageElmt_SetImageFile('ImgPreview', 'no_image.png');
  153.                 ScreenshotViewer_SetControlState(pPlusWnd, 0, false);
  154.                 ScreenshotViewer_SetSidebarControlState(pPlusWnd,
  155.                                                                                            nItemIdx,
  156.                                                                                            LstView_GetSelectedCount(pPlusWnd, 'LvFiles'));
  157.                 return false;
  158.         }
  159.        
  160.         ScreenshotViewer_SetControlState(pPlusWnd,
  161.                                                                         (nItemIdx !== -1 ? _win32._const._SW_SHOW : _win32._const._SW_HIDE),
  162.                                                                         (nItemIdx !== -1 ? true /* SW_SHOW */ : false /* SW_HIDE */));
  163.        
  164.         ScreenshotViewer_SetSidebarControlState(pPlusWnd,
  165.                                                                                    nItemIdx,
  166.                                                                                    LstView_GetSelectedCount(pPlusWnd, 'LvFiles'));
  167.        
  168.         var oGdip = new Gdip();
  169.         oGdip.Initialize();
  170.         sImageName = pPlusWnd.LstView_GetItemText('LvFiles', nItemIdx, 0);
  171.         pPlusWnd.SetControlText('lblImageName', sImageName);
  172.         pPlusWnd.SetControlText('lblImageSize', _lang.text['ScreenshotViewer_Size'] + ' '
  173.                 + oGdip.FormatFileSize(oGdip.GetImageSizeInBytes(objPreferences['tSaveDirectory']+ '\\' + sImageName)));
  174.         pPlusWnd.SetControlText('lblImageDimensions', _lang.text['ScreenshotViewer_Dimensions'] + ' '
  175.                 + oGdip.GetImageDimensions(objPreferences['tSaveDirectory']+ '\\' + sImageName));
  176.         pPlusWnd.SetControlText('lblImageCreated', _lang.text['ScreenshotViewer_DateCreated'] + ' '
  177.                 + oGdip.GetDateCreated(objPreferences['tSaveDirectory']+ '\\' + sImageName));
  178.         pPlusWnd.ImageElmt_SetImageFile('ImgPreview', '\\' + objPreferences['tSaveDirectory'] + sImageName);
  179.         oGdip.Uninitialize();
  180. }
  181.  
  182. function OnScreenshotViewerEvent_MessageNotification(pPlusWnd, nMessage, wParam, lParam) {
  183.         switch (nMessage) {
  184.                 case _win32._const._WM_SIZE:
  185.                         if (wParam === _win32._const._SIZE_MAXIMIZED) {
  186.                                 _win32.ShowWindow(pPlusWnd.GetControlHandle('BaseBtnMinimise'), _win32._const._SW_SHOW);
  187.                                 _win32.ShowWindow(pPlusWnd.GetControlHandle('BaseBtnMaximise'), _win32._const._SW_SHOW);
  188.                                 _win32.ShowWindow(pPlusWnd.GetControlHandle('BaseBtnCancel'), _win32._const._SW_SHOW);
  189.                         }
  190.                         break;
  191.         }
  192. }
  193.  
  194. function OnScreenshotViewerEvent_Destroyed(pPlusWnd, nExitCode) {
  195.         if (nExitCode !== 6) {
  196.                 CloseWindow(pPlusWnd.WindowId);
  197.                 return false;
  198.         }
  199. }
  200.  
  201. function ScreenshotViewer_SetControlState(pPlusWnd, nShowCode, bEnable) {
  202.         var aControls = ['lblImageName','lblImageSize','lblImageDimensions','lblImageCreated','lnkViewImage'],
  203.                 bDoShow = (typeof nShowCode !== TYPE_UNDEFINED),
  204.                 bDoEnable = (typeof bEnable !== TYPE_UNDEFINED),
  205.                 i = aControls.length, hWnd;
  206.         if (bDoShow || bDoEnable) {
  207.                 //Super fast reverse while loop!
  208.                 while (i--) {
  209.                         hWnd = pPlusWnd.GetControlHandle(aControls[i]);
  210.                         if(bDoShow)          _win32.ShowWindow(hWnd, nShowCode);
  211.                         if(bDoEnable)   _win32.EnableWindow(hWnd, bEnable);
  212.                 }
  213.         }
  214. }
  215.  
  216. function ScreenshotViewer_SetSidebarControlState(pPlusWnd, nItemIdx, nItemCount) {
  217.         var aControls = ['lnkSendImage','lnkCopyClipboard','lnkConvertImage','lnkEditImage','lnkDeleteImage'],
  218.                 i = aControls.length, hWnd, bEnable = (nItemIdx !== -1);
  219.                
  220.         while (i--) {
  221.                 hWnd = pPlusWnd.GetControlHandle(aControls[i]);
  222.                 _win32.EnableWindow(hWnd, bEnable);
  223.         }
  224. }
  225.  

Version

  • 5.0.0070_20100325_publicbeta1

Developers

Project Details

  • Folders8
  • Files122
  • Total Lines11,867
  • Repository Version70

User Count

  • 162