Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: third_party/npapi/npspy/windows/dirpick.cpp

Issue 665543002: Remove third_party/npapi/npspy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/npapi/npspy/readme ('k') | third_party/npapi/npspy/windows/gui_advanced.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/npapi/npspy/windows/dirpick.cpp
diff --git a/third_party/npapi/npspy/windows/dirpick.cpp b/third_party/npapi/npspy/windows/dirpick.cpp
deleted file mode 100644
index a3bdaa4ba8ab69eb77dcc453ccad1743fae4a716..0000000000000000000000000000000000000000
--- a/third_party/npapi/npspy/windows/dirpick.cpp
+++ /dev/null
@@ -1,605 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-#define _CRT_SECURE_NO_DEPRECATE
-
-#include <windows.h>
-#include <windowsx.h>
-#include <direct.h>
-#include <stdio.h>
-
-#include "resource.h"
-
-extern HINSTANCE hInst;
-
-#define ITEM_BITMAPWIDTH 16
-#define ITEM_BITMAPHEIGHT 16
-#define ITEM_LEFTMARGIN 4
-#define ITEM_GAP 4
-
-static HWND hWndDirPicker;
-static HICON hIconDrives[5];
-static HICON hIconFolders[3];
-static LPSTR lpszStringToReturn;
-static char szUNCRoot[256] = "";
-
-UINT DriveType(UINT iType);
-
-static void fillComboBox(HWND hWnd)
-{
- HWND hWndCB = GetDlgItem(hWnd, ID_COMBO_DIR);
- HWND hWndTempLB = GetDlgItem(hWnd, ID_LISTTEMP_DIR);
- if(hWndCB == NULL)
- return;
- ComboBox_ResetContent(hWndCB);
- ListBox_ResetContent(hWndTempLB);
- ListBox_Dir(hWndTempLB, DDL_DRIVES|DDL_EXCLUSIVE, (LPSTR)"*");
-
- int iDriveCount = ListBox_GetCount(hWndTempLB);
- int iCurDrive=_getdrive() - 1;
-
- char szDrive[16];
- char szItem[80];
-
- for (int i = 0; i < iDriveCount; i++)
- {
- ListBox_GetText(hWndTempLB, i, szDrive);
- CharLower(szDrive);
- int iDrive = szDrive[2] - 'a';
- char szRoot[16];
- sprintf(szRoot, "%c:\\", szDrive[2]);
-
- int iType = DriveType(iDrive);
-
- if(iType < 2)
- continue;
-
- //Start the item string with the drive letter, colon, and two spaces
- sprintf(szItem, "%c%s", szDrive[2], ": ");
-
- if((iType == DRIVE_FIXED) || (iType == DRIVE_RAMDISK))
- { // get volume ID
- char szVolumeID[80];
- DWORD dwMaxLength;
- DWORD dwSysFlags;
- GetVolumeInformation(szRoot, // address of root directory of the file system
- szVolumeID, // address of name of the volume
- sizeof(szVolumeID), // length of lpVolumeNameBuffer
- NULL, // address of volume serial number
- &dwMaxLength, // address of system's maximum filename length
- &dwSysFlags, // address of file system flags
- NULL, // address of name of file system
- NULL); // length of lpFileSystemNameBuffer
-
- CharLower(szVolumeID);
- lstrcat(szItem, szVolumeID);
- }
-
- //For network drives, go grab the \\server\share for it.
- if(DRIVE_REMOTE == iType)
- {
- char szNet[64];
- szNet[0] = '\0';
- DWORD dwSizeOfszNet = sizeof(szNet);
-
- sprintf(szDrive, "%c:", szDrive[2]);
- CharUpper(szDrive);
- WNetGetConnection(szDrive, szNet, &dwSizeOfszNet);
- CharLower(szNet);
- lstrcat(szItem, szNet);
- }
-
- int index = ComboBox_AddString(hWndCB, szItem);
- ComboBox_SetItemData(hWndCB, index, MAKELONG(iDrive, iType));
- if(iDrive == iCurDrive)
- ComboBox_SetCurSel(hWndCB, index);
- if(szUNCRoot[0] != '\0')
- ComboBox_SetCurSel(hWndCB, -1);
- }
-}
-
-static void fillTempLBWithDirs(HWND hWndTempLB, LPSTR lpszDir)
-{
- BOOL bDone = FALSE;
- WIN32_FIND_DATA ffdataStruct;
-
- char szPath[_MAX_PATH];
- char szFileName[_MAX_PATH];
- lstrcpy(szPath, lpszDir);
- if(szPath[lstrlen(szPath) - 1] == '\\')
- szPath[lstrlen(szPath) - 1] = '\0';
- lstrcpy(szFileName, szPath);
- lstrcat(szFileName, "\\*");
- HANDLE handle = FindFirstFile(szFileName, &ffdataStruct);
- if(handle == INVALID_HANDLE_VALUE)
- {
- FindClose(handle);
- return;
- }
- while(!bDone)
- {
- lstrcpy(szFileName, szPath);
- lstrcat(szFileName, "\\");
- lstrcat(szFileName, ffdataStruct.cFileName);
- if(ffdataStruct. dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- {
- char szStringToAdd[_MAX_PATH + 2];
- lstrcpy(szStringToAdd, "[");
- lstrcat(szStringToAdd, ffdataStruct.cFileName);
- lstrcat(szStringToAdd, "]");
- CharLower(szStringToAdd);
- ListBox_AddString(hWndTempLB, szStringToAdd);
- }
- bDone = !FindNextFile(handle, &ffdataStruct);
- }
- FindClose(handle);
-}
-
-static void fillListBox(HWND hWnd, LPSTR lpszDir)
-{
- HWND hWndLB = GetDlgItem(hWnd, ID_LIST_DIR);
- HWND hWndTempLB = GetDlgItem(hWnd, ID_LISTTEMP_DIR);
- HWND hWndEdit = GetDlgItem(hWnd, ID_EDIT_DIR);
- if((hWndLB == NULL) || (lpszDir == NULL))
- return;
-
- int iLastChar = lstrlen(lpszDir);
- if(lpszDir[iLastChar - 1] == '\\')
- lpszDir[iLastChar - 1] = '\0';
-
- SetWindowRedraw(hWndLB, FALSE);
- ListBox_ResetContent(hWndLB);
- ListBox_ResetContent(hWndTempLB);
-
- LPSTR lpszLast;
- lpszLast = CharLower(lpszDir);
-
- SetWindowText(hWndLB, lpszDir);
-
- char szDir[_MAX_DIR];
- char szFullDir[_MAX_DIR];
- sprintf(szFullDir, "%s", lpszDir);
- sprintf(szDir, "%s\\*.*", lpszDir);
-
- BOOL bFirst = TRUE;
- char ch;
- int index;
- while (TRUE)
- {
- LPSTR lpsz;
- if((lpszDir[0] == '\\') && (lpszDir[1] == '\\') && bFirst)
- lpsz = strchr(lpszLast + lstrlen(szUNCRoot), '\\');
- else
- lpsz = strchr(lpszLast, '\\');
- if(lpsz != NULL) {
- if (bFirst)
- ch = *(++lpsz);
- else
- ch = *lpsz;
- *lpsz = 0;
- }
- else
- {
- //If we're looking at a drive only, then append a backslash
- if (lpszLast == lpszDir && bFirst)
- lstrcat(lpszLast, "\\");
- }
- //Add the drive string--includes the last one where lpsz == NULL
- index = ListBox_AddString(hWndLB, lpszLast);
-
- UINT i = (NULL != lpsz) ? ID_ICON_FOLDEROPEN : ID_ICON_OPENSELECT;
- ListBox_SetItemData(hWndLB, index, MAKELONG(index, i));
-
- if(NULL == lpsz)
- break;
-
- //Restore last character.
- *lpsz = ch;
- lpsz += (bFirst) ? 0 : 1;
-
- bFirst=FALSE;
- lpszLast = lpsz;
- }
- int indent = index + 1;
-
- //Get available directories
- fillTempLBWithDirs(hWndTempLB, lpszDir);
-
- int itemCount = ListBox_GetCount(hWndTempLB);
-
- int i=0;
- for (i = 0; i < itemCount; i++) {
- index = ListBox_GetText(hWndTempLB, i, lpszDir);
- //Skip directories beginning with . (skipping . and ..)
- if(lpszDir[1] == '.')
- continue;
- //Remove the ending ']'
- iLastChar = lstrlen(lpszDir);
- lpszDir[iLastChar - 1] = '\0';
- //Add the string to the real directory list.
- index = ListBox_AddString(hWndLB, lpszDir + 1);
- ListBox_SetItemData(hWndLB, index, MAKELONG(indent, ID_ICON_FOLDERCLOSED));
- }
- //Force a listbox repaint.
- SetWindowRedraw(hWndLB, TRUE);
- InvalidateRect(hWndLB, NULL, TRUE);
-
- if(szFullDir[lstrlen(szFullDir) - 1] == ':')
- lstrcat(szFullDir, "\\");
- Edit_SetText(hWndEdit, szFullDir);
-
- GetScrollRange(hWndLB, SB_VERT, (LPINT)&i, (LPINT)&index);
-
- if(!(i == 0 && index == 0))
- ListBox_SetTopIndex(hWndLB, max((int)(index - 2), 0));
-
- ListBox_SetCurSel(hWndLB, indent - 1);
-}
-
-static void onDrawItem(LPDRAWITEMSTRUCT lpdis, BOOL bDrive)
-{
- if((int)lpdis->itemID < 0)
- return;
-
- char szItem[_MAX_DIR];
- DWORD dwItemData;
-
- if(bDrive)
- {
- dwItemData = ComboBox_GetItemData(lpdis->hwndItem, lpdis->itemID);
- ComboBox_GetLBText(lpdis->hwndItem, lpdis->itemID, szItem);
- }
- else
- {
- dwItemData = ListBox_GetItemData(lpdis->hwndItem, lpdis->itemID);
- ListBox_GetText(lpdis->hwndItem, lpdis->itemID, szItem);
- }
-
- if(lpdis->itemAction & (ODA_DRAWENTIRE | ODA_SELECT))
- {
- COLORREF colorText;
- COLORREF colorBack;
- if(lpdis->itemState & ODS_SELECTED)
- {
- colorText = SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
- colorBack = SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
- }
- HICON hIcon;
- int indent = 0;
- if(bDrive)
- {
- int iType=(int)HIWORD(dwItemData);
- switch (iType)
- {
- case DRIVE_REMOVABLE:
- hIcon = hIconDrives[0];
- break;
- case DRIVE_FIXED:
- hIcon = hIconDrives[1];
- break;
- case DRIVE_REMOTE:
- hIcon = hIconDrives[2];
- break;
- case DRIVE_CDROM:
- hIcon = hIconDrives[3];
- break;
- case DRIVE_RAMDISK:
- hIcon = hIconDrives[4];
- break;
- }
-
- }
- else
- {
- int iconID = (int)HIWORD(lpdis->itemData);
- switch (iconID)
- {
- case ID_ICON_FOLDERCLOSED:
- hIcon = hIconFolders[0];
- break;
- case ID_ICON_FOLDEROPEN:
- hIcon = hIconFolders[1];
- break;
- case ID_ICON_OPENSELECT:
- hIcon = hIconFolders[2];
- break;
- }
- indent = 4 * (1 + LOWORD(lpdis->itemData));
- }
-
- ExtTextOut(lpdis->hDC,
- lpdis->rcItem.left + ITEM_LEFTMARGIN + ITEM_BITMAPWIDTH + ITEM_GAP + indent,
- lpdis->rcItem.top,
- ETO_OPAQUE | ETO_CLIPPED,
- &lpdis->rcItem,
- szItem,
- lstrlen(szItem),
- NULL);
-
- BOOL res = DrawIcon(lpdis->hDC,
- lpdis->rcItem.left + ITEM_LEFTMARGIN + indent,
- lpdis->rcItem.top,
- hIcon);
-
- if(lpdis->itemState & ODS_SELECTED)
- {
- SetTextColor(lpdis->hDC, colorText);
- SetBkColor(lpdis->hDC, colorBack);
- }
- }
- if((lpdis->itemAction & ODA_FOCUS) || (lpdis->itemState & ODS_FOCUS))
- DrawFocusRect(lpdis->hDC, &lpdis->rcItem);
-}
-
-static void fillUNCRootArray(LPSTR lpsz)
-{
- char szCurDir[_MAX_PATH];
- _getcwd(szCurDir, sizeof(szCurDir));
- lstrcpy(szUNCRoot, lpsz);
- if(szUNCRoot[lstrlen(szUNCRoot) - 1] == '\\')
- szUNCRoot[lstrlen(szUNCRoot) - 1] = '\0';
- for(;;)
- {
- LPSTR lptemp = strrchr(szUNCRoot, '\\');
- if(lptemp == NULL)
- break;
- *lptemp = '\0';
- if(_chdir(szUNCRoot) == -1)
- {
- *lptemp = '\\';
- break;
- }
- }
- _chdir(szCurDir);
-}
-
-static void onInitDialog(HWND hWnd, LPSTR lpsz)
-{
- hWndDirPicker = hWnd;
- lpszStringToReturn = lpsz;
-
- hIconDrives[0] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVEFLOPPY));
- hIconDrives[1] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVEHARD));
- hIconDrives[2] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVENETWORK));
- hIconDrives[3] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVECDROM));
- hIconDrives[4] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVERAM));
-
- hIconFolders[0] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_FOLDERCLOSED));
- hIconFolders[1] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_FOLDEROPEN));
- hIconFolders[2] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_OPENSELECT));
-
- if(lpsz[0] == '\0')
- _getcwd(lpsz, _MAX_PATH);
- else if(lpsz[lstrlen(lpsz) - 1] == ':')
- lstrcat(lpsz, "\\");
-
- int ret = _chdir(lpsz);
- if(ret == -1)
- {
- char szText[_MAX_PATH + 80];
- sprintf(szText, "The specified directory %s\ncannot be found", lpsz);
- MessageBox(GetParent(hWnd), szText, "Choose Directory", MB_ICONEXCLAMATION|MB_OK);
- _getcwd(lpsz, _MAX_PATH);
- }
- if((lpsz[0] == '\\') && (lpsz[1] == '\\'))
- fillUNCRootArray(lpsz);
- fillListBox(hWnd, lpsz);
- fillComboBox(hWnd);
-}
-
-static void shutDialog(HWND hWnd)
-{
- szUNCRoot[0] = '\0';
-}
-
-static void onCommand(HWND hWnd, int id, HWND hWndCtl, UINT codeNotify)
-{
- char szCurDir[_MAX_PATH];
- switch(id)
- {
- case ID_LIST_DIR:
- if(codeNotify == LBN_DBLCLK)
- {
- int index = ListBox_GetCurSel(hWndCtl);
- DWORD dwItemData = ListBox_GetItemData(hWndCtl, index);
-
- if(HIWORD(dwItemData) == ID_ICON_OPENSELECT)
- {
- shutDialog(hWnd);
- char szString[_MAX_PATH];
- Edit_GetText(GetDlgItem(hWndDirPicker, ID_EDIT_DIR), szString, sizeof(szString));
- lstrcpy(lpszStringToReturn, szString);
- EndDialog(hWnd, IDOK);
- break;
- }
-
- ListBox_GetText(hWndCtl, index, szCurDir);
-
- char szDir[_MAX_DIR];
- LPSTR lpsz;
- if((HIWORD(dwItemData) == ID_ICON_FOLDEROPEN) && (index != 0))
- {
- GetWindowText(hWndCtl, szDir, sizeof(szDir));
- lpsz=_fstrstr(szDir, szCurDir);
- *(lpsz + lstrlen(szCurDir)) = '\0';
- lstrcpy(szCurDir, szDir);
- }
- if (_chdir(szCurDir) == 0)
- {
- _getcwd(szCurDir, _MAX_PATH);
- fillListBox(hWndDirPicker, szCurDir);
- }
- }
- break;
- case ID_COMBO_DIR:
- if(codeNotify == CBN_SELCHANGE)
- {
- char szDrive[80];
- int index = ComboBox_GetCurSel(hWndCtl);
- if(index == CB_ERR)
- break;
- ComboBox_GetLBText(hWndCtl, index, szDrive);
-
- int iCurDrive = _getdrive();
-Retry:
- HCURSOR hCursorOld = SetCursor(LoadCursor(NULL, IDC_WAIT));
- SetCapture(hWndDirPicker);
- if((0 == _chdrive((int)(szDrive[0] - 'a' + 1))) && (NULL != _getcwd(szCurDir, _MAX_PATH)))
- {
- fillListBox(hWndDirPicker, szCurDir);
- ListBox_SetTopIndex(GetDlgItem(hWndDirPicker, ID_LIST_DIR), 0);
- SetCursor(hCursorOld);
- ReleaseCapture();
- break;
- }
- SetCursor(hCursorOld);
- ReleaseCapture();
-
- char szText[80];
- sprintf(szText, "Cannot read drive %c:", szDrive[0]);
- if(IDRETRY == MessageBox(hWndDirPicker, szText, "Choose Directory", MB_ICONEXCLAMATION|MB_RETRYCANCEL))
- goto Retry;
-
- //Changing drives failed so restore drive and selection
- _chdrive(iCurDrive);
-
- sprintf(szDrive, "%c:", (char)(iCurDrive + 'a' - 1));
- index = ComboBox_SelectString(hWndCtl, -1, szDrive);
- }
- break;
- case IDOK:
- shutDialog(hWnd);
- char szString[_MAX_PATH];
- Edit_GetText(GetDlgItem(hWndDirPicker, ID_EDIT_DIR), szString, sizeof(szString));
- lstrcpy(lpszStringToReturn, szString);
- EndDialog(hWnd, IDOK);
- break;
- case IDCANCEL:
- shutDialog(hWnd);
- lpszStringToReturn[0] = '\0';
- EndDialog(hWnd, IDCANCEL);
- break;
- default:
- break;
- }
-}
-
-static BOOL CALLBACK DirPickDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch(msg) {
- case WM_INITDIALOG:
- onInitDialog(hWnd, (LPSTR)lParam);
- break;
- case WM_COMMAND:
- HANDLE_WM_COMMAND(hWnd, wParam, lParam, onCommand);
- break;
- case WM_MEASUREITEM:
- {
- static int cyItem = -1; //Height of a listbox item
- LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam;
- if(cyItem == -1)
- {
- HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0L);
- if(hFont == NULL)
- hFont = GetStockFont(SYSTEM_FONT);
- HDC hDC = GetDC(hWnd);
- HFONT hFontOld = SelectFont(hDC, hFont);
- TEXTMETRIC tm;
- GetTextMetrics(hDC, &tm);
- cyItem = max(ITEM_BITMAPHEIGHT, tm.tmHeight);
- SelectFont(hDC, hFontOld);
- ReleaseDC(hWnd, hDC);
- }
-
- lpmis->itemHeight = cyItem;
- }
- break;
- case WM_DRAWITEM:
- onDrawItem((LPDRAWITEMSTRUCT)lParam, ((UINT)wParam == ID_COMBO_DIR));
- return TRUE; // to prevent default action in listbox (drawing focus)
- default:
- return FALSE;
- }
- return TRUE;
-}
-
-/*
- * DriveType
- *
- * Purpose:
- * Augments the Windows API GetDriveType with a call to the CD-ROM
- * extensions to determine if a drive is a floppy, hard disk, CD-ROM,
- * RAM-drive, or networked drive.
- *
- * Parameters:
- * iDrive UINT containing the zero-based drive index
- *
- * Return Value:
- * UINT One of the following values describing the drive:
- * DRIVE_FLOPPY, DRIVE_HARD, DRIVE_CDROM, DRIVE_RAMDISK,
- * DRIVE_NETWORK.
- *
- * Copyright (c)1992 Kraig Brockschmidt, All Right Reserved
- * Compuserve: 70750,2344
- * Internet : kraigb@microsoft.com
- *
- */
-UINT DriveType(UINT iDrive)
-{
- //Validate possible drive indices
- if((0 > iDrive) || (25 < iDrive))
- return (UINT)-1;
-
- static char path[] = "d:\\";
- path[0] = 'a' + iDrive;
- int iType = GetDriveType(path);
-
- /*
- * Under Windows NT, GetDriveType returns complete information
- * not provided under Windows 3.x which we now get through other
- * means.
- */
-
- return iType;
-}
-
-BOOL PickupDirectory(HWND hWndOwner, LPSTR lpszString)
-{
- if(hWndOwner == NULL)
- hWndOwner = GetDesktopWindow();
- int ret = DialogBoxParam(hInst, MAKEINTRESOURCE(ID_DIALOG_CHOOSEDIR), hWndOwner, DirPickDlgProc, (LPARAM)lpszString);
- return (ret == IDOK);
-}
« no previous file with comments | « third_party/npapi/npspy/readme ('k') | third_party/npapi/npspy/windows/gui_advanced.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698