修订版 | 4 (tree) |
---|---|
时间 | 2009-11-10 03:01:07 |
作者 | ![]() |
GSFinder+ for W-ZERO3から反映させた修正内容は以下の通りです。日付は、GSFinder+ for W-ZERO3における修正日となっています。
2007/08/06
・画面の縦横切り替え後にステータスバー/アドレスバーのサイズがおかしくなる点を修正
・ユーザーパスの登録で末尾に'\'を付けるとメニューで正常に表示されなくなっていたのを修正
・WindowsMobile非対応部分を対応するように修正(※メニューの不完全部分を修正)
2007/08/18
・ファイル表示のアイコンの整列でソートの比較処理が一部うまく動いていなかったのを修正
2007/08/20
・内部での座標の取り扱いに誤り(符号の有無)があったので修正
2007/09/02
・フォルダ表示側で「コピー」「切り取り」を行った場合にコピー中の総ファイル数表示がおかしくなっていたのを修正
・フォルダ表示の「マイポケットPC」上で「コピー」「切り取り」が正常に動作していなかったので選択できないように修正
2007/09/04
・オプション設定の「ファイルの種類」およびファイルメニューの「プログラムの選択」で発生していた不正処理に対処
2007/09/09
・フォルダ表示で[クリア]または[BS]キーを押すと1回の操作で2階層上に移動してしまっていたのを修正
・検索ダイアログから抜けた後ファイル表示にフォーカスが移るよう修正
2007/09/16
・WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていたのを修正
2007/12/26
・「すべて選択」の後に「フォルダにコピー」を行った場合にハングアップする場合があったのを修正
2007/12/27
・機能していなかった[F2]/[F6]キー関連の無駄なコードを削除(※マクロPOCKETPCが定義済の場合のみ)
・フォルダコピーでのハングアップバグ修正に不完全な部分があったので再修正
2008/01/07
・ファイルの圧縮で不正な書庫が作成されていたのを修正
・オプション画面の「ファイルの種類」で処理に時間が掛かる場合にはウェイトカーソルを表示するよう修正
2008/01/14
・アドレスバーのプルダウンリストの余計な開閉を抑制するよう修正
・アドレスバーに入力したパス文字列の大小文字が実際のパスと違っていた場合にフォルダ表示が更新されなかったのを修正
・「お気に入りに追加」を行うと追加した項目に"~へのショートカット"が付く場合があったのを修正
・フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかったのを修正
2008/01/20
・縦横画面切り替え時にファイル表示で選択しているファイルが隠れてしまうことがあったのを修正
・オプション設定の「ファイルの種類」で「新しい拡張子の作成」ダイアログを開くとそれ以降画面をタップしないと操作が継続できなかったのを修正
2008/05/23
・フォルダ内のファイルの合計容量が2GBを超えた場合にステータスバーの表示がマイナス値になってしまっていたのを修正
・リストビューアイコンの遅延読み込みがうまく動作していなかったのを修正
2008/07/02
・ファイル日時表示の処理内に日時の文字列を格納するバッファのサイズを誤って指定していた部分があったのを修正
・ユーザーパス登録画面でタップ&ホールドのアニメーションが出せてしまっていたのを修正
2008/11/24
・アドレスバーに入力されたパスの末尾に'\'が付いていると上層フォルダへの移動がうまく行われなかったのを修正
@@ -87,7 +87,7 @@ | ||
87 | 87 | |
88 | 88 | SHINITDLGINFO shidi; |
89 | 89 | shidi.dwMask = SHIDIM_FLAGS; |
90 | - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN; | |
90 | + shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; | |
91 | 91 | shidi.hDlg = hDlg; |
92 | 92 | SHInitDialog(&shidi); |
93 | 93 |
@@ -101,6 +101,9 @@ | ||
101 | 101 | #define REG_KEY_RECENT _T("Software\\GreenSoftware\\GSFinder+\\Settings\\Recent") |
102 | 102 | //ADD END |
103 | 103 | |
104 | +#define GET_X_LPARAM(lp) ((int)(signed short)LOWORD(lp)) | |
105 | +#define GET_Y_LPARAM(lp) ((int)(signed short)HIWORD(lp)) | |
106 | + | |
104 | 107 | //ADD START TODA (PocketPCのキー判定対処) |
105 | 108 | #ifdef __POCKET_PC |
106 | 109 | #define GET_KEYSTATE GetKeyState |
@@ -143,7 +146,7 @@ | ||
143 | 146 | DWORD GetIMStatus(); |
144 | 147 | #endif |
145 | 148 | |
146 | - void SetFormatSize(DWORD dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB); | |
149 | + void SetFormatSize(LONGLONG dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB); | |
147 | 150 | LPCTSTR GetRootName(); //ADD TODA |
148 | 151 | int AddRootIcon(HIMAGELIST hImageList); //ADD TODA |
149 | 152 | HFONT MyCreateFont(int, BYTE, LPTSTR); //ADD TODA |
@@ -148,7 +148,7 @@ | ||
148 | 148 | LISTITEMINFO* m_lpliinfo; |
149 | 149 | TCHAR m_szFolderFrom[MAX_PATH]; |
150 | 150 | |
151 | - UINT m_nFileSize; | |
151 | + LONGLONG m_nFileSize; | |
152 | 152 | |
153 | 153 | //メニュー |
154 | 154 | HMENU m_hMenuPopup; |
@@ -193,15 +193,16 @@ | ||
193 | 193 | void OnSelEndOK(); |
194 | 194 | void OnColumnClick(NMLISTVIEW*); |
195 | 195 | |
196 | - void MainWindowReset(LPCTSTR, int); //ADD TODA | |
196 | + void MainWindowReset(LPCTSTR, LONGLONG); //ADD TODA | |
197 | 197 | void LoadFolderReset(LPCTSTR); //ADD TODA |
198 | 198 | void LoadFolderSearch(LPCTSTR); //ADD TODA |
199 | 199 | void LoadFolderFiles(LPCTSTR, BOOL); //ADD TODA |
200 | 200 | void LoadFolderItem(LPCTSTR lpszPath, BOOL bTVUpdate = TRUE); //MOD TODA |
201 | + void InitFolderItem(LPCTSTR lpszPath); | |
201 | 202 | void LoadFolderItemSub(LPCTSTR); //ADD TODA |
202 | 203 | void SelectFile(LPCTSTR); //ADD TODA |
203 | - void AddFolderItemSub(LPCTSTR, LPCTSTR, DWORD, FILETIME, DWORD, UINT*, BOOL); //ADD TODA | |
204 | - void AddFolderItem(WIN32_FIND_DATA*, LPCTSTR, UINT*, BOOL bSelect=FALSE); //MOD TODA | |
204 | + void AddFolderItemSub(LPCTSTR, LPCTSTR, DWORD, FILETIME, DWORD, LONGLONG*, BOOL); //ADD TODA | |
205 | + void AddFolderItem(WIN32_FIND_DATA*, LPCTSTR, LONGLONG*, BOOL bSelect=FALSE); //MOD TODA | |
205 | 206 | void ComFileOpen(LPCTSTR); //ADD TODA |
206 | 207 | |
207 | 208 | HMENU GetOpenAppSubMenu1(); //ADD TODA |
@@ -238,8 +239,8 @@ | ||
238 | 239 | void OnFileRename(); |
239 | 240 | void OnEditCopyFileName(); |
240 | 241 | void OnEditCopyFilePath(); |
241 | - void OnEditCut(); | |
242 | - void OnEditCopy(); | |
242 | + void OnEditCut(LPCWCH lpszFolderFrom = NULL); | |
243 | + void OnEditCopy(LPCWCH lpszFolderFrom = NULL); | |
243 | 244 | void OnEditPaste(BOOL bUpdate = TRUE); //MOD TODA |
244 | 245 | void OnEditSelectSwitch(); |
245 | 246 | void OnEditPasteShortcut(BOOL bUpdate = TRUE); //MOD TODA |
@@ -95,7 +95,6 @@ | ||
95 | 95 | /////////////////////////////////////////////////////////////// |
96 | 96 | void CFileImageList::Destroy() |
97 | 97 | { |
98 | - | |
99 | 98 | while (!m_IndexBuff.IsEmpty()) |
100 | 99 | { |
101 | 100 | IMAGELISTINDEX* pIndex = (IMAGELISTINDEX*)m_IndexBuff.RemoveAt(0); |
@@ -104,6 +103,7 @@ | ||
104 | 103 | } |
105 | 104 | ImageList_RemoveAll(m_hImageList); |
106 | 105 | ImageList_Destroy(m_hImageList); |
106 | + m_hImageList = NULL; | |
107 | 107 | } |
108 | 108 | |
109 | 109 | /////////////////////////////////////////////////////////////// |
@@ -208,7 +208,7 @@ | ||
208 | 208 | { |
209 | 209 | FileTimeToLocalFileTime(&ftCreate, &ftCreate); |
210 | 210 | FileTimeToSystemTime(&ftCreate, &st); |
211 | - SetFormatDateTime(&st, szTime, sizeof(szTime)); //MOD TODA | |
211 | + SetFormatDateTime(&st, szTime, 64); //MOD TODA | |
212 | 212 | wsprintf(szTemp, _T("%s"), szTime); |
213 | 213 | SetWindowText(GetDlgItem(hDlg, IDC_FILE_CREATE_TIME), szTemp); |
214 | 214 | } |
@@ -221,7 +221,7 @@ | ||
221 | 221 | { |
222 | 222 | FileTimeToLocalFileTime(&ftUpdate, &ftUpdate); |
223 | 223 | FileTimeToSystemTime(&ftUpdate, &st); |
224 | - SetFormatDateTime(&st, szTime, sizeof(szTime)); //MOD TODA | |
224 | + SetFormatDateTime(&st, szTime, 64); //MOD TODA | |
225 | 225 | wsprintf(szTemp, _T("%s"), szTime); |
226 | 226 | SetWindowText(GetDlgItem(hDlg, IDC_FILE_WRITE_TIME), szTemp); |
227 | 227 | } |
@@ -39,6 +39,12 @@ | ||
39 | 39 | } |
40 | 40 | break; |
41 | 41 | } |
42 | + case WM_CHAR: | |
43 | + //(プルダウンリストの余計な開閉を抑制) | |
44 | + if (wParam == VK_RETURN) | |
45 | + if (!SendMessage(g_MainWnd.m_CmdBands.m_hComboBox, CB_GETDROPPEDSTATE, 0, 0)) | |
46 | + return 0; | |
47 | + break; | |
42 | 48 | default: |
43 | 49 | break; |
44 | 50 | } |
@@ -298,6 +298,11 @@ | ||
298 | 298 | |
299 | 299 | } //End of for |
300 | 300 | |
301 | + //ファイルリスト末尾の空白を削除(UnZip/UnLhaで不正な書庫が作成されるのを防ぐ) | |
302 | + TCHAR *tc; | |
303 | + while (*(tc = _tcsrchr(lpszPath, _T('\0')) - 1) == _T(' ')) | |
304 | + *tc = _T('\0'); | |
305 | + | |
301 | 306 | //圧縮 |
302 | 307 | // BOOL bRtn = RunCompress((bAutoUnComp?szCurrentFolder:szEditPath), lpszPath, nCompDLL, bMoveDir); |
303 | 308 | BOOL bRtn = RunCompress(szCurrentFolder, lpszPath, nCompDLL, bMoveDir); |
@@ -1,6 +1,6 @@ | ||
1 | 1 | //{{NO_DEPENDENCIES}} |
2 | -// Microsoft eMbedded Visual C++ generated include file. | |
3 | -// Used by GSFinder_PPCe.rc | |
2 | +// Microsoft Visual C++ generated include file. | |
3 | +// Used by GSFinder_WM2003.rc | |
4 | 4 | // |
5 | 5 | #define IDR_MAINFRAME 100 |
6 | 6 | #define IDB_MENU 101 |
@@ -706,7 +706,7 @@ | ||
706 | 706 | if (hFocus == g_MainWnd.m_TreeView.m_hWnd) |
707 | 707 | { |
708 | 708 | DWORD dwPos = GetMessagePos(); |
709 | - g_MainWnd.m_TreeView.OnRClick(LOWORD(dwPos), HIWORD(dwPos), TRUE); | |
709 | + g_MainWnd.m_TreeView.OnRClick(GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos), TRUE); | |
710 | 710 | } |
711 | 711 | break; |
712 | 712 | //Enterキー押下 |
@@ -878,10 +878,10 @@ | ||
878 | 878 | SetCapture(hWnd); |
879 | 879 | g_bMoving = TRUE; |
880 | 880 | if(g_MainWnd.m_bViewSide) { |
881 | - g_nStartPos = LOWORD(lParam); | |
881 | + g_nStartPos = GET_X_LPARAM(lParam); | |
882 | 882 | g_nLastWidth = g_MainWnd.m_nTreeViewWidth; |
883 | 883 | } else { |
884 | - g_nStartPos = HIWORD(lParam); | |
884 | + g_nStartPos = GET_Y_LPARAM(lParam); | |
885 | 885 | g_nLastHeight = g_MainWnd.m_nTreeViewHeight; |
886 | 886 | } |
887 | 887 | break; |
@@ -890,7 +890,7 @@ | ||
890 | 890 | if (g_bMoving) |
891 | 891 | g_MainWnd.OnMouseMove(lParam, g_nStartPos, g_nLastWidth, g_nLastHeight); |
892 | 892 | if(g_bDraging) { |
893 | - POINT pt={LOWORD(lParam), HIWORD(lParam)}; | |
893 | + POINT pt = {GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)}; | |
894 | 894 | g_MainWnd.OnMouseMove(pt); |
895 | 895 | } |
896 | 896 | break; |
@@ -953,7 +953,7 @@ | ||
953 | 953 | #ifdef __POCKET_PC |
954 | 954 | SHINITDLGINFO shidi; |
955 | 955 | shidi.dwMask = SHIDIM_FLAGS; |
956 | - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN; | |
956 | + shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; | |
957 | 957 | shidi.hDlg = hDlg; |
958 | 958 | SHInitDialog(&shidi); |
959 | 959 |
@@ -1321,6 +1321,16 @@ | ||
1321 | 1321 | DWORD dwStyle = GetWindowLong(hwndChild, GWL_STYLE) | TCS_BOTTOM; |
1322 | 1322 | ::SetWindowLong(hwndChild, GWL_STYLE, dwStyle); |
1323 | 1323 | } |
1324 | + //空のメニューバーを追加(WindowsMobile非対応部分への対処) | |
1325 | + SHMENUBARINFO mbi; | |
1326 | + memset(&mbi, 0, sizeof(SHMENUBARINFO)); | |
1327 | + mbi.cbSize = sizeof(SHMENUBARINFO); | |
1328 | + mbi.hwndParent = hwndDlg; | |
1329 | + //mbi.nToolBarId = 0; | |
1330 | + mbi.hInstRes = g_hInst; | |
1331 | + //mbi.nBmpId = 0; | |
1332 | + //mbi.cBmpImages = 0; | |
1333 | + SHCreateMenuBar(&mbi); | |
1324 | 1334 | break; |
1325 | 1335 | } |
1326 | 1336 | case PSCB_GETVERSION: |
@@ -1411,7 +1421,7 @@ | ||
1411 | 1421 | } |
1412 | 1422 | |
1413 | 1423 | ////////////////////////////////////////////////////////////////////////////////////// |
1414 | -void SetFormatSize(DWORD dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB) | |
1424 | +void SetFormatSize(LONGLONG dwSize, TCHAR szBuff[64], LPTSTR lpszFmtKB, LPTSTR lpszFmtMB) | |
1415 | 1425 | { |
1416 | 1426 | double fSize; |
1417 | 1427 | TCHAR szSize[64]; |
@@ -220,6 +220,10 @@ | ||
220 | 220 | return 0; |
221 | 221 | } |
222 | 222 | |
223 | + //上層フォルダへの移動の項目を無視(全て選択→コピーでハングアップする問題への対処) | |
224 | + if (pct->m_lpliinfo[i].nItem == LIST_ITEM_UPPER) | |
225 | + continue; | |
226 | + | |
223 | 227 | //ADD START TODA |
224 | 228 | //表示の更新 |
225 | 229 | TCHAR szTemp[MAX_PATH+4]; |
@@ -592,7 +592,7 @@ | ||
592 | 592 | #ifdef __POCKET_PC |
593 | 593 | SHINITDLGINFO shidi; |
594 | 594 | shidi.dwMask = SHIDIM_FLAGS; |
595 | - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN; | |
595 | + shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; | |
596 | 596 | shidi.hDlg = m_hWnd; |
597 | 597 | SHInitDialog(&shidi); |
598 | 598 | #endif |
@@ -102,7 +102,7 @@ | ||
102 | 102 | #ifdef __POCKET_PC |
103 | 103 | SHINITDLGINFO shidi; |
104 | 104 | shidi.dwMask = SHIDIM_FLAGS; |
105 | - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN; | |
105 | + shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; | |
106 | 106 | shidi.hDlg = hDlg; |
107 | 107 | SHInitDialog(&shidi); |
108 | 108 | #else |
@@ -557,7 +557,7 @@ | ||
557 | 557 | |
558 | 558 | //ADD START TODA |
559 | 559 | /////////////////////////////////////////////////////////////// |
560 | -void CListView::MainWindowReset(LPCTSTR lpszPath, int nAllSize) | |
560 | +void CListView::MainWindowReset(LPCTSTR lpszPath, LONGLONG nAllSize) | |
561 | 561 | { |
562 | 562 | TCHAR szTemp[MAX_PATH]; |
563 | 563 |
@@ -578,7 +578,7 @@ | ||
578 | 578 | |
579 | 579 | SetFormatInteger(szTemp, 64); |
580 | 580 | wsprintf(szItemCount, IDS_FMT_OBJECTSCOUNT, szTemp); |
581 | - wsprintf(szTemp, _T("%d"), nAllSize); | |
581 | + wsprintf(szTemp, _T("%I64d"), nAllSize); | |
582 | 582 | SetFormatInteger(szTemp, 64); |
583 | 583 | wsprintf(szAllSize, IDS_FMT_TOTALBYTES, szTemp); |
584 | 584 | g_MainWnd.m_StatusWnd.SetTwoPaneText(szItemCount, szAllSize); |
@@ -620,7 +620,7 @@ | ||
620 | 620 | void CListView::LoadFolderReset(LPCTSTR lpszPath) |
621 | 621 | { |
622 | 622 | //アイテム数、サイズのカウント |
623 | - UINT nAllSize = 0; | |
623 | + LONGLONG nAllSize = 0; | |
624 | 624 | |
625 | 625 | //ファイルの読み込み |
626 | 626 | TCHAR szTemp[MAX_PATH]; |
@@ -657,7 +657,7 @@ | ||
657 | 657 | g_MainWnd.m_StatusWnd.SetSimpleText(szTemp); |
658 | 658 | |
659 | 659 | //アイテム数、サイズのカウント |
660 | - UINT nAllSize = 0; | |
660 | + LONGLONG nAllSize = 0; | |
661 | 661 | |
662 | 662 | //アイテムの削除 |
663 | 663 | DeleteAllItem(); |
@@ -738,7 +738,7 @@ | ||
738 | 738 | m_lpHistory = m_lpHistoryCurrent; |
739 | 739 | |
740 | 740 | //アイテム数、サイズのカウント |
741 | - UINT nAllSize = 0; | |
741 | + LONGLONG nAllSize = 0; | |
742 | 742 | |
743 | 743 | //アイテムの削除 |
744 | 744 | DeleteAllItem(); |
@@ -844,6 +844,22 @@ | ||
844 | 844 | } |
845 | 845 | |
846 | 846 | /////////////////////////////////////////////////////////////// |
847 | +//(WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていた問題への対処) | |
848 | +void CListView::InitFolderItem(LPCTSTR lpszPath) | |
849 | +{ | |
850 | + DisableUpdateNotify(); | |
851 | + | |
852 | + //検索処理の場合 | |
853 | + if(0 == wcscmp(lpszPath, SEARCH_FOLDER_NAME)) | |
854 | + LoadFolderSearch(lpszPath); | |
855 | + else | |
856 | + LoadFolderFiles(lpszPath, TRUE); | |
857 | + | |
858 | + SetUpdateNotify(lpszPath); | |
859 | + EnableUpdateNotify(); | |
860 | +} | |
861 | + | |
862 | +/////////////////////////////////////////////////////////////// | |
847 | 863 | void CListView::LoadFolderItemSub(LPCTSTR lpszPath) |
848 | 864 | { |
849 | 865 | //再描画停止 |
@@ -856,7 +872,7 @@ | ||
856 | 872 | m_dwUpperParam = NULL; |
857 | 873 | |
858 | 874 | //アイテム数、サイズのカウント用 |
859 | - UINT nAllSize = 0; | |
875 | + LONGLONG nAllSize = 0; | |
860 | 876 | |
861 | 877 | //ファイルの読み込み |
862 | 878 | WIN32_FIND_DATA finddata; |
@@ -928,7 +944,7 @@ | ||
928 | 944 | |
929 | 945 | //ADD START TODA (AddFolderItem()より処理移動) |
930 | 946 | /////////////////////////////////////////////////////////////// |
931 | -void CListView::AddFolderItemSub(LPCTSTR lpszPath, LPCTSTR lpszName, DWORD dwAttr, FILETIME ft, DWORD dwSize, UINT* lpAllSize, BOOL bSelect) | |
947 | +void CListView::AddFolderItemSub(LPCTSTR lpszPath, LPCTSTR lpszName, DWORD dwAttr, FILETIME ft, DWORD dwSize, LONGLONG* lpAllSize, BOOL bSelect) | |
932 | 948 | { |
933 | 949 | if (FILE_ATTRIBUTE_DIRECTORY == (dwAttr & FILE_ATTRIBUTE_DIRECTORY)) |
934 | 950 | { |
@@ -1025,7 +1041,7 @@ | ||
1025 | 1041 | //ADD END |
1026 | 1042 | |
1027 | 1043 | /////////////////////////////////////////////////////////////// |
1028 | -void CListView::AddFolderItem(WIN32_FIND_DATA *finddata, LPCTSTR lpszPath, UINT* lpAllSize, BOOL bSelect) | |
1044 | +void CListView::AddFolderItem(WIN32_FIND_DATA *finddata, LPCTSTR lpszPath, LONGLONG* lpAllSize, BOOL bSelect) | |
1029 | 1045 | { |
1030 | 1046 | //MDD START TODA (AddFolderItemSub()の呼び出しに変更) |
1031 | 1047 | if(finddata->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) |
@@ -1286,6 +1302,9 @@ | ||
1286 | 1302 | /////////////////////////////////////////////////////////////// |
1287 | 1303 | void CListView::OnViewUpFolder() |
1288 | 1304 | { |
1305 | + //パス末尾の区切り文字を削除(パスの末尾に'\'が付いていると上層フォルダへの移動がうまく行われなかった問題への対処) | |
1306 | + for (LPTSTR lpszTemp = _tcsrchr(m_szCurrentFolder, _T('\0')) - 1; *lpszTemp == _T('\\'); *lpszTemp-- = _T('\0')); | |
1307 | + | |
1289 | 1308 | // TCHAR szPath[MAX_PATH] = _T(""); //DEL TODA (from GSFinder ver.1.99) |
1290 | 1309 | if (wcscmp(m_szCurrentFolder, _T(""))!=0) |
1291 | 1310 | { |
@@ -1755,6 +1774,7 @@ | ||
1755 | 1774 | { |
1756 | 1775 | int i = 0; |
1757 | 1776 | int nIndex = GetSelectedItemIndex(0); |
1777 | + ZeroMemory(lpListItemComp, sizeof(LISTITEMINFO)*nCount);//(全て選択→コピーでハングアップする問題への対処) | |
1758 | 1778 | while (nIndex != -1) |
1759 | 1779 | { |
1760 | 1780 | LISTITEMCOMP* plic = GetListItemStruct(nIndex); |
@@ -1910,7 +1930,7 @@ | ||
1910 | 1930 | } |
1911 | 1931 | //ADD END |
1912 | 1932 | //////////////////////////////////////////////////////////////// |
1913 | -void CListView::OnEditCut() | |
1933 | +void CListView::OnEditCut(LPCWCH lpszFolderFrom) | |
1914 | 1934 | { |
1915 | 1935 | //切り取り |
1916 | 1936 | int nCount = GetValidAndSelectedCount(); |
@@ -1926,7 +1946,7 @@ | ||
1926 | 1946 | LISTITEMINFO* pliinfo = new LISTITEMINFO[nCount]; |
1927 | 1947 | MakeSelectedItemsStrings(pliinfo, nCount); |
1928 | 1948 | |
1929 | - wcscpy(m_szFolderFrom, m_szCurrentFolder); | |
1949 | + wcscpy(m_szFolderFrom, lpszFolderFrom? lpszFolderFrom: m_szCurrentFolder); | |
1930 | 1950 | |
1931 | 1951 | m_lpliinfo = pliinfo; |
1932 | 1952 | m_nCount = nCount; |
@@ -1955,7 +1975,7 @@ | ||
1955 | 1975 | } |
1956 | 1976 | } |
1957 | 1977 | //////////////////////////////////////////////////////////////// |
1958 | -void CListView::OnEditCopy() | |
1978 | +void CListView::OnEditCopy(LPCWCH lpszFolderFrom) | |
1959 | 1979 | { |
1960 | 1980 | //コピー |
1961 | 1981 | if (m_lpliinfo) |
@@ -1971,7 +1991,7 @@ | ||
1971 | 1991 | LISTITEMINFO* pliinfo = new LISTITEMINFO[nCount]; |
1972 | 1992 | MakeSelectedItemsStrings(pliinfo, nCount); |
1973 | 1993 | |
1974 | - wcscpy(m_szFolderFrom, m_szCurrentFolder); | |
1994 | + wcscpy(m_szFolderFrom, lpszFolderFrom? lpszFolderFrom: m_szCurrentFolder); | |
1975 | 1995 | |
1976 | 1996 | m_lpliinfo = pliinfo; |
1977 | 1997 | m_nCount = nCount; |
@@ -1979,11 +1999,7 @@ | ||
1979 | 1999 | |
1980 | 2000 | g_MainWnd.m_CmdBands.SetEnableEditPaste(TRUE); |
1981 | 2001 | |
1982 | - for (int i=0; i<ListView_GetItemCount(m_hWnd); i++) | |
1983 | - { | |
1984 | - if (ListView_GetItemState(m_hWnd, i, LVIS_SELECTED)==LVIS_SELECTED) | |
1985 | - ListView_SetItemState(m_hWnd, i, 0, LVIS_CUT); | |
1986 | - } | |
2002 | + ListView_SetItemState(m_hWnd, -1, 0, LVIS_CUT); | |
1987 | 2003 | } |
1988 | 2004 | } |
1989 | 2005 | //////////////////////////////////////////////////////////////// |
@@ -2595,6 +2611,9 @@ | ||
2595 | 2611 | //メニューのハンドル取得 |
2596 | 2612 | HMENU hSubMenu = GetFavoritesSubMenu(); |
2597 | 2613 | |
2614 | + //メニュー削除 | |
2615 | + DeleteFavoritesMenu(); | |
2616 | + | |
2598 | 2617 | //メニュー作成 |
2599 | 2618 | InitFavoritesSubMenu(hSubMenu, g_MainWnd.m_szFavoritesPath); |
2600 | 2619 | } |
@@ -2799,8 +2818,10 @@ | ||
2799 | 2818 | return ID_FAVORITES_ADD; |
2800 | 2819 | else if (lpnkd->wVKey == 'U' && (GET_KEYSTATE(VK_CONTROL)&0x8000)) |
2801 | 2820 | return ID_TOOL_USERPATH; |
2821 | +#ifndef __POCKET_PC | |
2802 | 2822 | else if (lpnkd->wVKey == VK_F2) |
2803 | 2823 | return ID_FILE_RENAME; |
2824 | +#endif | |
2804 | 2825 | else if (lpnkd->wVKey == VK_F3) |
2805 | 2826 | return ID_EDIT_FILESEARCH; |
2806 | 2827 | else if (lpnkd->wVKey == VK_F4) |
@@ -2807,11 +2828,13 @@ | ||
2807 | 2828 | return ID_TOOL_OPTION; |
2808 | 2829 | else if (lpnkd->wVKey == VK_F5) |
2809 | 2830 | return ID_VIEW_UPDATE; |
2831 | +#ifndef __POCKET_PC | |
2810 | 2832 | else if (lpnkd->wVKey == VK_F6) |
2811 | 2833 | { |
2812 | 2834 | if (g_MainWnd.m_CmdBands.m_Settings.bShowAddressBar) |
2813 | 2835 | SetFocus(g_MainWnd.m_CmdBands.m_hComboBox); |
2814 | 2836 | } |
2837 | +#endif | |
2815 | 2838 | else if ((lpnkd->wVKey == 'M' && (GET_KEYSTATE(VK_CONTROL)&0x8000)) || |
2816 | 2839 | (lpnkd->wVKey == VK_CONTROL && (GET_KEYSTATE(VK_MENU)&0x8000))) |
2817 | 2840 | { |
@@ -2985,10 +3008,7 @@ | ||
2985 | 3008 | if (lpnmdi->item.mask & LVIF_IMAGE) |
2986 | 3009 | { |
2987 | 3010 | if (lplic->nIcon == -1) |
2988 | - //MOD START TODA | |
2989 | -// lpnmdi->item.iImage = m_pFileImageList->GetImageListIndex(lplic->lpszName, m_szCurrentFolder, lplic->dwAttr); | |
2990 | - lpnmdi->item.iImage = m_pFileImageList->GetImageListIndex(lplic->lpszName, lplic->lpszPath, lplic->dwAttr); | |
2991 | - //MOD END | |
3011 | + lpnmdi->item.iImage = lplic->nIcon = m_pFileImageList->GetImageListIndex(lplic->lpszName, lplic->lpszPath, lplic->dwAttr); | |
2992 | 3012 | else |
2993 | 3013 | lpnmdi->item.iImage = lplic->nIcon; |
2994 | 3014 | } |
@@ -3120,8 +3140,8 @@ | ||
3120 | 3140 | LVHITTESTINFO lv_ht; |
3121 | 3141 | memset(&lv_ht, 0x00, sizeof(lv_ht)); |
3122 | 3142 | lv_ht.flags = LVHT_ONITEM; |
3123 | - lv_ht.pt.x = LOWORD(dwPos); | |
3124 | - lv_ht.pt.y = HIWORD(dwPos); | |
3143 | + lv_ht.pt.x = GET_X_LPARAM(dwPos); | |
3144 | + lv_ht.pt.y = GET_Y_LPARAM(dwPos); | |
3125 | 3145 | int nIndex = ListView_HitTest(m_hWnd, &lv_ht); |
3126 | 3146 | if(ListView_GetItemState(m_hWnd, nIndex, LVIS_SELECTED)!=LVIS_SELECTED) |
3127 | 3147 | m_nSelectItem = 0; |
@@ -3428,8 +3448,8 @@ | ||
3428 | 3448 | { |
3429 | 3449 | DWORD dwPos = GetMessagePos(); |
3430 | 3450 | POINT pt; |
3431 | - pt.x = LOWORD(dwPos); | |
3432 | - pt.y = HIWORD(dwPos); | |
3451 | + pt.x = GET_X_LPARAM(dwPos); | |
3452 | + pt.y = GET_Y_LPARAM(dwPos); | |
3433 | 3453 | // ScreenToClient(m_hWnd, &pt); |
3434 | 3454 | HMENU hMenu; |
3435 | 3455 | hMenu = GetSubMenu(m_hMenuPopup, 4); |
@@ -3552,8 +3572,11 @@ | ||
3552 | 3572 | //お気に入りのディレクトリへ移動 |
3553 | 3573 | wcscpy(m_szCurrentFolder, g_MainWnd.m_szFavoritesPath); |
3554 | 3574 | |
3555 | - //ショートカットの貼り付け | |
3575 | + //ショートカットの貼り付け(追加した項目に"〜へのショートカット"が付く場合があった問題への対処) | |
3576 | + BOOL bTemp = m_Settings.bNotShortcutName; | |
3577 | + m_Settings.bNotShortcutName = TRUE; | |
3556 | 3578 | OnEditPasteShortcut(FALSE); |
3579 | + m_Settings.bNotShortcutName = bTemp; | |
3557 | 3580 | |
3558 | 3581 | //選択の解除 |
3559 | 3582 | ListView_SetItemState(m_hWnd, -1, 0, LVIS_SELECTED); |
@@ -3571,7 +3594,7 @@ | ||
3571 | 3594 | OnViewUpdate(g_MainWnd.m_szFavoritesPath); |
3572 | 3595 | |
3573 | 3596 | //お気に入りメニューの再作成 |
3574 | - DeleteFavoritesMenu(); | |
3597 | + //DeleteFavoritesMenu(); //(InitFavoritesMenu()内に移動) | |
3575 | 3598 | InitFavoritesMenu(); |
3576 | 3599 | } |
3577 | 3600 |
@@ -3783,6 +3806,7 @@ | ||
3783 | 3806 | LoadFolderItem(SEARCH_FOLDER_NAME); |
3784 | 3807 | } |
3785 | 3808 | delete pDlg; |
3809 | + SetFocus(m_hWnd);//(検索ダイアログから抜けた後ファイル表示にフォーカスが移らなかった問題への対処) | |
3786 | 3810 | } |
3787 | 3811 | /////////////////////////////////////////////////////////////// |
3788 | 3812 | void CListView::OnGotoFolderDropDown() |
@@ -162,6 +162,7 @@ | ||
162 | 162 | { |
163 | 163 | BOOL bRtn = g_pOption->OnOKNewFiletype(hDlg); |
164 | 164 | EndDialog(hDlg, (INT)bRtn); |
165 | + SetFocus(g_pOption->m_hWnd);//(「新しい拡張子の作成」ダイアログを開くとそれ以降画面をタップしないと操作が継続できなかった問題への対処) | |
165 | 166 | return TRUE; |
166 | 167 | } |
167 | 168 | //キャンセルボタン押下 |
@@ -400,6 +401,7 @@ | ||
400 | 401 | |
401 | 402 | //取得データ格納 |
402 | 403 | APPLICATIONLIST *lpList = new APPLICATIONLIST; |
404 | + ZeroMemory(lpList, sizeof(APPLICATIONLIST)); | |
403 | 405 | //1.拡張子 |
404 | 406 | lpList->lpszExt = NULL; |
405 | 407 | //2.キー名 |
@@ -543,6 +545,7 @@ | ||
543 | 545 | continue; |
544 | 546 | |
545 | 547 | nIconID = 0; |
548 | + ZeroMemory(szIconPath, sizeof(szIconPath)); | |
546 | 549 | dwType = REG_SZ; |
547 | 550 | dwDataSize = MAX_PATH*sizeof(TCHAR); |
548 | 551 | if (ERROR_SUCCESS==RegQueryValueEx(hKeyWk, _T(""), 0, &dwType, lpData, &dwDataSize)) |
@@ -615,6 +618,7 @@ | ||
615 | 618 | |
616 | 619 | //取得データ格納 |
617 | 620 | APPLICATIONLIST *lpList = new APPLICATIONLIST; |
621 | + ZeroMemory(lpList, sizeof(APPLICATIONLIST)); | |
618 | 622 | //1.拡張子 |
619 | 623 | lpList->lpszExt = new TCHAR[wcslen(szExt)]; |
620 | 624 | wcscpy(lpList->lpszExt, (szExt+1)); |
@@ -1043,7 +1047,7 @@ | ||
1043 | 1047 | #ifdef __POCKET_PC |
1044 | 1048 | SHINITDLGINFO shidi; |
1045 | 1049 | shidi.dwMask = SHIDIM_FLAGS; |
1046 | - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN; | |
1050 | + shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; | |
1047 | 1051 | shidi.hDlg = m_hWnd; |
1048 | 1052 | SHInitDialog(&shidi); |
1049 | 1053 | #endif |
@@ -1190,6 +1194,9 @@ | ||
1190 | 1194 | /////////////////////////////////////////////////////////////// |
1191 | 1195 | void CAssociation::OnInitFiletype() |
1192 | 1196 | { |
1197 | + //カーソルを処理中にする | |
1198 | + HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT)); | |
1199 | + | |
1193 | 1200 | //ウィンドウ初期化 |
1194 | 1201 | //リストビューの行選択化 |
1195 | 1202 | ListView_SetExtendedListViewStyle(m_hListView2, |
@@ -1222,6 +1229,9 @@ | ||
1222 | 1229 | |
1223 | 1230 | //ボタン設定 |
1224 | 1231 | OnClickFiletype(); |
1232 | + | |
1233 | + //カーソルを元に戻す | |
1234 | + SetCursor(hCursor); | |
1225 | 1235 | } |
1226 | 1236 | |
1227 | 1237 | /////////////////////////////////////////////////////////////// |
@@ -29,6 +29,12 @@ | ||
29 | 29 | g_MainWnd.m_ListView.OnGoFront(); |
30 | 30 | return 0; |
31 | 31 | } |
32 | + //BSキー押下(1回の操作で2階層上に移動してしまう問題への対処) | |
33 | + if(wParam == VK_BACK) | |
34 | + { | |
35 | + g_MainWnd.m_TreeView.OnViewUpFolder(); | |
36 | + return 0; | |
37 | + } | |
32 | 38 | break; |
33 | 39 | //タップ開始時 |
34 | 40 | case WM_LBUTTONDOWN: |
@@ -243,7 +249,7 @@ | ||
243 | 249 | TreeView_GetItem(m_hWnd, &tvi); |
244 | 250 | |
245 | 251 | //対象のディレクトリの場合 |
246 | - if (wcscmp(szName, szChildName) == 0) | |
252 | + if (_wcsicmp(szName, szChildName) == 0)//(パス文字列の大小文字が実際のパスと違う場合にフォルダ表示が更新されなかった問題への対処) | |
247 | 253 | { |
248 | 254 | hSelectItem = hParent = hChild; |
249 | 255 | lpszStart = wcschr(lpszStart, _T('\\')); |
@@ -653,9 +659,13 @@ | ||
653 | 659 | return; |
654 | 660 | } |
655 | 661 | |
656 | - //右クリックメニュー作成 | |
657 | - HMENU hMenu; | |
658 | - hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, 1); | |
662 | + //右クリックメニュー作成(マイポケットPC上で「コピー」「切り取り」が正常に動作していなかった問題への対処) | |
663 | + HMENU hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, 1); | |
664 | + UINT uEnable = g_MainWnd.m_ListView.m_nCount? (MF_BYCOMMAND|MF_ENABLED): (MF_BYCOMMAND|MF_GRAYED); | |
665 | + EnableMenuItem(hMenu, ID_EDIT_PASTE, uEnable); | |
666 | + uEnable = (_tcscmp(szChildName, GetRootName()) == 0)? (MF_BYCOMMAND|MF_GRAYED): (MF_BYCOMMAND|MF_ENABLED); | |
667 | + EnableMenuItem(hMenu, ID_EDIT_CUT, uEnable); | |
668 | + EnableMenuItem(hMenu, ID_EDIT_COPY, uEnable); | |
659 | 669 | |
660 | 670 | //圧縮/検索の有効/無効判定 |
661 | 671 | g_MainWnd.m_CmdBands.SetEnableCompressSelected(hMenu, 0, 2, |
@@ -998,8 +1008,8 @@ | ||
998 | 1008 | TVHITTESTINFO tv_ht; |
999 | 1009 | memset(&tv_ht, 0x00, sizeof(tv_ht)); |
1000 | 1010 | tv_ht.flags = TVHT_ONITEM; |
1001 | - tv_ht.pt.x = LOWORD(dwPos); | |
1002 | - tv_ht.pt.y = HIWORD(dwPos); | |
1011 | + tv_ht.pt.x = GET_X_LPARAM(dwPos); | |
1012 | + tv_ht.pt.y = GET_Y_LPARAM(dwPos); | |
1003 | 1013 | ScreenToClient(m_hWnd, &(tv_ht.pt)); |
1004 | 1014 | |
1005 | 1015 | HTREEITEM hItem = TreeView_HitTest(m_hWnd, &tv_ht); |
@@ -1043,8 +1053,8 @@ | ||
1043 | 1053 | { |
1044 | 1054 | DWORD dwPos = GetMessagePos(); |
1045 | 1055 | POINT pt; |
1046 | - pt.x = LOWORD(dwPos); | |
1047 | - pt.y = HIWORD(dwPos); | |
1056 | + pt.x = GET_X_LPARAM(dwPos); | |
1057 | + pt.y = GET_Y_LPARAM(dwPos); | |
1048 | 1058 | // ScreenToClient(m_hWnd, &pt); |
1049 | 1059 | HMENU hMenu; |
1050 | 1060 | hMenu = GetSubMenu(g_MainWnd.m_ListView.m_hMenuPopup, 4); |
@@ -1171,7 +1181,11 @@ | ||
1171 | 1181 | g_MainWnd.m_ListView.SelectFile(szPath); |
1172 | 1182 | |
1173 | 1183 | //コピー処理を実行 |
1174 | - g_MainWnd.m_ListView.OnEditCopy(); | |
1184 | + WCHAR szFromPath[MAX_PATH], *ptr; | |
1185 | + _tcscpy(szFromPath, szPath); | |
1186 | + if (ptr = _tcsrchr(szFromPath, _T('\\'))) //コピー元フォルダはカレントフォルダの1階層上を指定() | |
1187 | + *ptr = _T('\0'); | |
1188 | + g_MainWnd.m_ListView.OnEditCopy(szFromPath); | |
1175 | 1189 | |
1176 | 1190 | //元のディレクトリへ戻る |
1177 | 1191 | g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE); |
@@ -1186,7 +1200,11 @@ | ||
1186 | 1200 | g_MainWnd.m_ListView.SelectFile(szPath); |
1187 | 1201 | |
1188 | 1202 | //切り取り処理を実行 |
1189 | - g_MainWnd.m_ListView.OnEditCut(); | |
1203 | + WCHAR szFromPath[MAX_PATH], *ptr; | |
1204 | + _tcscpy(szFromPath, szPath); | |
1205 | + if (ptr = _tcsrchr(szFromPath, _T('\\'))) //フォルダ表示での「コピー元フォルダ」は、カレントフォルダの1階層上を指定 | |
1206 | + *ptr = _T('\0'); | |
1207 | + g_MainWnd.m_ListView.OnEditCut(szFromPath); | |
1190 | 1208 | |
1191 | 1209 | //元のディレクトリへ戻る |
1192 | 1210 | g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE); |
@@ -1393,11 +1411,17 @@ | ||
1393 | 1411 | //お気に入りのディレクトリへ移動 |
1394 | 1412 | wcscpy(g_MainWnd.m_ListView.m_szCurrentFolder, g_MainWnd.m_szFavoritesPath); |
1395 | 1413 | |
1396 | - //ショートカットの貼り付け | |
1414 | + //ショートカットの貼り付け(追加した項目に"〜へのショートカット"が付く場合があった問題への対処) | |
1415 | + BOOL bTemp = g_MainWnd.m_ListView.m_Settings.bNotShortcutName; | |
1416 | + g_MainWnd.m_ListView.m_Settings.bNotShortcutName = TRUE; | |
1397 | 1417 | g_MainWnd.m_ListView.OnEditPasteShortcut(FALSE); |
1418 | + g_MainWnd.m_ListView.m_Settings.bNotShortcutName = bTemp; | |
1398 | 1419 | |
1399 | 1420 | //元のディレクトリへ戻る |
1400 | 1421 | g_MainWnd.m_ListView.LoadFolderItem(szPath, FALSE); |
1422 | + | |
1423 | + //お気に入りメニューの再作成(フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかった問題への対処) | |
1424 | + g_MainWnd.m_ListView.InitFavoritesMenu(); | |
1401 | 1425 | } |
1402 | 1426 | #ifdef __POCKET_PC |
1403 | 1427 | /////////////////////////////////////////////////////////////// |
@@ -1404,7 +1428,7 @@ | ||
1404 | 1428 | void CTreeView::OnTapAndHold() |
1405 | 1429 | { |
1406 | 1430 | DWORD dwPos = GetMessagePos(); |
1407 | - OnRClick(LOWORD(dwPos), HIWORD(dwPos), TRUE); | |
1431 | + OnRClick(GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos), TRUE); | |
1408 | 1432 | } |
1409 | 1433 | #endif |
1410 | 1434 | /////////////////////////////////////////////////////////////// |
@@ -74,7 +74,7 @@ | ||
74 | 74 | #ifdef __POCKET_PC |
75 | 75 | SHINITDLGINFO shidi; |
76 | 76 | shidi.dwMask = SHIDIM_FLAGS; |
77 | - shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN; | |
77 | + shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU; | |
78 | 78 | shidi.hDlg = m_hWnd; |
79 | 79 | SHInitDialog(&shidi); |
80 | 80 | #endif |
@@ -248,6 +248,8 @@ | ||
248 | 248 | } |
249 | 249 | |
250 | 250 | //正常の場合 |
251 | + while (szPath[_tcslen(szPath)-1] == _T('\\')) //末尾の\を削除(メニューで表示されなくなる問題への対処) | |
252 | + szPath[_tcslen(szPath)-1] = _T('\0'); | |
251 | 253 | ListView_SetItemText(m_hList, pDispInfo->item.iItem, 0, szPath); |
252 | 254 | ModPath(pDispInfo->item.iItem, szPath); |
253 | 255 | } |
@@ -334,6 +336,12 @@ | ||
334 | 336 | LPNMHDR pNMHDR = (LPNMHDR)lParam; |
335 | 337 | switch (pNMHDR->code) |
336 | 338 | { |
339 | + //(タップ&ホールドおよびプレス&ホールドのアニメーションが出ないようにする) | |
340 | + case NM_RECOGNIZEGESTURE: | |
341 | + { | |
342 | + SetWindowLong(hDlg, DWL_MSGRESULT, 1); | |
343 | + return TRUE; | |
344 | + } | |
337 | 345 | //名前の変更開始 |
338 | 346 | case LVN_BEGINLABELEDIT: |
339 | 347 | { |
@@ -9,6 +9,8 @@ | ||
9 | 9 | |
10 | 10 | if (pList1->nItem < pList2->nItem) |
11 | 11 | return -1; |
12 | + else if (pList1->nItem > pList2->nItem) | |
13 | + return 1; | |
12 | 14 | else if (pList1->nItem == pList2->nItem) |
13 | 15 | { |
14 | 16 | //MOD START TODA 文字列比較の高速化 (from Y.Nagamidori) |
@@ -23,8 +25,6 @@ | ||
23 | 25 | return bRaise ? wcsicmp(pList1->lpszName, pList2->lpszName) : wcscmp(pList2->lpszName, pList1->lpszName); |
24 | 26 | //MOD END |
25 | 27 | } |
26 | - else if (pList1->nItem > pList2->nItem) | |
27 | - return 1; | |
28 | 28 | |
29 | 29 | return 0; |
30 | 30 | } |
@@ -39,6 +39,8 @@ | ||
39 | 39 | //MOD START TODA 文字列比較の高速化 (from Y.Nagamidori) |
40 | 40 | if (pList1->nItem < pList2->nItem) |
41 | 41 | return -1; |
42 | + else if (pList1->nItem > pList2->nItem) | |
43 | + return 1; | |
42 | 44 | else if (pList1->nItem == pList2->nItem) |
43 | 45 | { |
44 | 46 | /*TCHAR szName1[MAX_PATH]; |
@@ -95,10 +97,8 @@ | ||
95 | 97 | return bRaise ? 1 : -1; |
96 | 98 | } |
97 | 99 | else |
98 | - return wcsicmp(pList1->lpszName, pList2->lpszName); | |
100 | + return bRaise? wcsicmp(pList1->lpszName, pList2->lpszName): wcsicmp(pList2->lpszName, pList1->lpszName); | |
99 | 101 | } |
100 | - else if (pList1->nItem > pList2->nItem) | |
101 | - return 1; | |
102 | 102 | //MOD END |
103 | 103 | |
104 | 104 | return 0; |
@@ -113,6 +113,8 @@ | ||
113 | 113 | //MOD START TODA 文字列比較の高速化 (from Y.Nagamidori) |
114 | 114 | if (pList1->nItem < pList2->nItem) |
115 | 115 | return -1; |
116 | + else if (pList1->nItem > pList2->nItem) | |
117 | + return 1; | |
116 | 118 | else if (pList1->nItem == pList2->nItem) |
117 | 119 | { |
118 | 120 | /*TCHAR szName1[MAX_PATH]; |
@@ -168,10 +170,8 @@ | ||
168 | 170 | } |
169 | 171 | } |
170 | 172 | else |
171 | - return wcsicmp(pList1->lpszName, pList2->lpszName); | |
173 | + return bRaise? wcsicmp(pList1->lpszName, pList2->lpszName): wcsicmp(pList2->lpszName, pList1->lpszName); | |
172 | 174 | } |
173 | - else if (pList1->nItem > pList2->nItem) | |
174 | - return 1; | |
175 | 175 | //MOD END |
176 | 176 | |
177 | 177 | return 0; |
@@ -267,7 +267,7 @@ | ||
267 | 267 | //ADD START TODA |
268 | 268 | SetFocus(m_ListView.m_hWnd); |
269 | 269 | //ADD END |
270 | - m_ListView.LoadFolderItem(m_ListView.m_szCurrentFolder); | |
270 | + m_ListView.InitFolderItem(m_ListView.m_szCurrentFolder);//(WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていた問題への対処) | |
271 | 271 | // SetCursor(hCursor); //DEL TODA |
272 | 272 | m_hwndPrev = m_ListView.m_hWnd; |
273 | 273 | } |
@@ -282,29 +282,34 @@ | ||
282 | 282 | void CMainWnd::OnSize(int nWidth, int nHeight) |
283 | 283 | { |
284 | 284 | #ifdef __POCKET_PC |
285 | - //MOD START TODA (from GSFinder ver.1.99) | |
286 | - //サイズを調整 | |
287 | - RECT rctSB, rctTB, rctAB; | |
285 | + //サイズを調整(画面の縦横切り替え後にステータスバー/アドレスバーのサイズがおかしくなる問題への対処) | |
286 | + RECT rctSB, rctTB, rctAB, rctCB; | |
288 | 287 | if (m_StatusWnd.m_hWnd) |
289 | 288 | GetWindowRect(m_StatusWnd.m_hWnd, &rctSB); |
290 | 289 | if (m_CmdBands.m_hToolbar) |
291 | 290 | GetWindowRect(m_CmdBands.m_hToolbar, &rctTB); |
292 | 291 | if (m_CmdBands.m_hAddressbar) |
292 | + { | |
293 | 293 | GetWindowRect(m_CmdBands.m_hAddressbar, &rctAB); |
294 | + GetWindowRect(m_CmdBands.m_hComboBox, &rctCB); | |
295 | + } | |
296 | + rctSB.left = rctTB.left = rctAB.left = 0; | |
297 | + rctSB.right = rctTB.right = rctAB.right = GetSystemMetrics(SM_CXSCREEN); | |
294 | 298 | if (m_CmdBands.m_Settings.bShowAddressBar) |
299 | + { | |
300 | + int ss = 2; | |
295 | 301 | MoveWindow(m_CmdBands.m_hAddressbar, 0, 0, RECT_WIDTH(&rctAB), RECT_HEIGHT(&rctAB), TRUE); |
302 | + MoveWindow(m_CmdBands.m_hComboBox, ss, ss, RECT_WIDTH(&rctAB) - ss * 2, RECT_HEIGHT(&rctCB), TRUE); | |
303 | + } | |
304 | + | |
296 | 305 | if (m_CmdBands.m_Settings.bShowToolBar) |
297 | - MoveWindow(m_CmdBands.m_hToolbar, 0, | |
298 | - nHeight - RECT_HEIGHT(&rctTB), RECT_WIDTH(&rctTB), RECT_HEIGHT(&rctTB), TRUE); | |
306 | + MoveWindow(m_CmdBands.m_hToolbar, rctTB.left, nHeight - RECT_HEIGHT(&rctTB), RECT_WIDTH(&rctTB), RECT_HEIGHT(&rctTB), TRUE); | |
299 | 307 | if (m_bShowStatusWnd) |
300 | 308 | { |
301 | 309 | if (m_CmdBands.m_Settings.bShowToolBar) |
302 | - MoveWindow(m_StatusWnd.m_hWnd, 0, | |
303 | - nHeight - RECT_HEIGHT(&rctSB) - RECT_HEIGHT(&rctTB), | |
304 | - RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE); | |
310 | + MoveWindow(m_StatusWnd.m_hWnd, rctSB.left, nHeight - RECT_HEIGHT(&rctSB) - RECT_HEIGHT(&rctTB), RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE); | |
305 | 311 | else |
306 | - MoveWindow(m_StatusWnd.m_hWnd, 0, | |
307 | - nHeight - RECT_HEIGHT(&rctSB), RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE); | |
312 | + MoveWindow(m_StatusWnd.m_hWnd, rctSB.left, nHeight - RECT_HEIGHT(&rctSB), RECT_WIDTH(&rctSB), RECT_HEIGHT(&rctSB), TRUE); | |
308 | 313 | } |
309 | 314 | int nLVTop, nLVBottom; |
310 | 315 | if (m_CmdBands.m_Settings.bShowAddressBar) |
@@ -344,83 +349,83 @@ | ||
344 | 349 | m_bShowStatusWnd && |
345 | 350 | !m_CmdBands.m_Settings.bShowAddressBar) |
346 | 351 | nLVBottom = nHeight - RECT_HEIGHT(&rctSB); |
347 | - //MOD END | |
348 | 352 | |
349 | -//MOD START TODA | |
350 | -// if (m_CmdBands.m_Settings.bShowAddressBar) | |
351 | -// SetWindowPos(m_ListView.m_hWnd, HWND_TOP, 0, nLVTop - 2 , nWidth, nLVBottom + 3, SWP_SHOWWINDOW); | |
352 | -// else | |
353 | -// MoveWindow(m_ListView.m_hWnd, 0, nLVTop , nWidth, nLVBottom, TRUE); | |
354 | 353 | if (m_CmdBands.m_Settings.bShowAddressBar) |
355 | 354 | { |
356 | 355 | if (m_bShowFolder) |
357 | 356 | { |
358 | - if(m_bViewSide) | |
357 | + if (m_bViewSide) | |
359 | 358 | { |
359 | + int ntvw = m_nTreeViewWidth; | |
360 | + int split = APP_SPLIT_SIZE; | |
360 | 361 | SetWindowPos(m_TreeView.m_hWnd, HWND_TOP, |
361 | 362 | 0, |
362 | - nLVTop - 2, | |
363 | - m_nTreeViewWidth, | |
364 | - nLVBottom + 2, SWP_SHOWWINDOW); | |
363 | + nLVTop, | |
364 | + ntvw, | |
365 | + nLVBottom, SWP_SHOWWINDOW); | |
365 | 366 | SetWindowPos(m_ListView.m_hWnd, HWND_TOP, |
366 | - 0 + (m_nTreeViewWidth + APP_SPLIT_SIZE), | |
367 | - nLVTop - 2, | |
368 | - nWidth - (m_nTreeViewWidth + APP_SPLIT_SIZE), | |
369 | - nLVBottom + 2, SWP_SHOWWINDOW); | |
367 | + 0 + (ntvw + split), | |
368 | + nLVTop, | |
369 | + nWidth - (ntvw + split), | |
370 | + nLVBottom, SWP_SHOWWINDOW); | |
370 | 371 | } |
371 | 372 | else |
372 | 373 | { |
374 | + int ntvh = m_nTreeViewHeight; | |
375 | + int split = APP_SPLIT_SIZE; | |
373 | 376 | SetWindowPos(m_TreeView.m_hWnd, HWND_TOP, |
374 | 377 | 0, |
375 | - nLVTop - 2, | |
378 | + nLVTop, | |
376 | 379 | nWidth, |
377 | - m_nTreeViewHeight, SWP_SHOWWINDOW); | |
380 | + ntvh, SWP_SHOWWINDOW); | |
378 | 381 | SetWindowPos(m_ListView.m_hWnd, HWND_TOP, |
379 | 382 | 0, |
380 | - (nLVTop - 2) + (m_nTreeViewHeight + APP_SPLIT_SIZE), | |
383 | + nLVTop + (ntvh + split), | |
381 | 384 | nWidth, |
382 | - (nLVBottom + 2) - (m_nTreeViewHeight + APP_SPLIT_SIZE), SWP_SHOWWINDOW); | |
385 | + nLVBottom - (ntvh + split), SWP_SHOWWINDOW); | |
383 | 386 | } |
384 | 387 | } |
385 | 388 | else |
386 | - SetWindowPos(m_ListView.m_hWnd, HWND_TOP, 0, nLVTop - 2 , nWidth, nLVBottom + 2, SWP_SHOWWINDOW); | |
387 | - | |
389 | + SetWindowPos(m_ListView.m_hWnd, HWND_TOP, 0, nLVTop , nWidth, nLVBottom, SWP_SHOWWINDOW); | |
388 | 390 | } |
389 | 391 | else |
390 | 392 | { |
391 | 393 | if (m_bShowFolder) |
392 | 394 | { |
393 | - if(m_bViewSide) | |
395 | + if (m_bViewSide) | |
394 | 396 | { |
397 | + int ntvw = m_nTreeViewWidth; | |
398 | + int split = APP_SPLIT_SIZE; | |
395 | 399 | MoveWindow(m_TreeView.m_hWnd, |
396 | 400 | 0, |
397 | 401 | nLVTop, |
398 | - m_nTreeViewWidth, | |
402 | + ntvw, | |
399 | 403 | nLVBottom, TRUE); |
400 | 404 | MoveWindow(m_ListView.m_hWnd, |
401 | - 0 + (m_nTreeViewWidth + APP_SPLIT_SIZE), | |
405 | + 0 + (ntvw + split), | |
402 | 406 | nLVTop, |
403 | - nWidth - (m_nTreeViewWidth + APP_SPLIT_SIZE), | |
407 | + nWidth - (ntvw + split), | |
404 | 408 | nLVBottom, TRUE); |
405 | 409 | } |
406 | 410 | else |
407 | 411 | { |
412 | + int ntvh = m_nTreeViewHeight; | |
413 | + int split = APP_SPLIT_SIZE; | |
408 | 414 | MoveWindow(m_TreeView.m_hWnd, |
409 | 415 | 0, |
410 | 416 | nLVTop, |
411 | 417 | nWidth, |
412 | - m_nTreeViewHeight, TRUE); | |
418 | + ntvh, TRUE); | |
413 | 419 | MoveWindow(m_ListView.m_hWnd, |
414 | 420 | 0, |
415 | - nLVTop + (m_nTreeViewHeight + APP_SPLIT_SIZE), | |
421 | + nLVTop + (ntvh + split), | |
416 | 422 | nWidth, |
417 | - nLVBottom - (m_nTreeViewHeight + APP_SPLIT_SIZE), TRUE); | |
423 | + nLVBottom - (ntvh + split), TRUE); | |
418 | 424 | } |
419 | 425 | } |
420 | 426 | else |
421 | 427 | MoveWindow(m_ListView.m_hWnd, 0, nLVTop , nWidth, nLVBottom, TRUE); |
422 | 428 | } |
423 | -//MOD END | |
424 | 429 | #else |
425 | 430 | //サイズを調整 |
426 | 431 | RECT rctCB, rctSB; |
@@ -1122,16 +1127,6 @@ | ||
1122 | 1127 | if (SipGetInfo(&si)) { |
1123 | 1128 | if (si.fdwFlags & SIPF_ON) { |
1124 | 1129 | OnSize(RECT_WIDTH(&si.rcVisibleDesktop), RECT_HEIGHT(&si.rcVisibleDesktop)); |
1125 | - | |
1126 | - //選択しているものを見えるようにする | |
1127 | - for (int i = 0; i < ListView_GetItemCount(m_ListView.m_hWnd); i++) | |
1128 | - { | |
1129 | - if (ListView_GetItemState(m_ListView.m_hWnd, i, LVIS_FOCUSED) == LVIS_FOCUSED) | |
1130 | - { | |
1131 | - ListView_EnsureVisible(m_ListView.m_hWnd, i, FALSE); | |
1132 | - break; | |
1133 | - } | |
1134 | - } | |
1135 | 1130 | } |
1136 | 1131 | else |
1137 | 1132 | { |
@@ -1142,6 +1137,11 @@ | ||
1142 | 1137 | } |
1143 | 1138 | } |
1144 | 1139 | m_dwLastSipInfo = si.fdwFlags; |
1140 | + | |
1141 | + //選択しているものを見えるようにする(縦横画面切り替え時にファイル表示で選択しているファイルが隠れてしまうことがあった問題への対処) | |
1142 | + int nItem = ListView_GetNextItem(m_ListView.m_hWnd, -1, LVNI_ALL|LVNI_FOCUSED); | |
1143 | + if (nItem >= 0) | |
1144 | + ListView_EnsureVisible(m_ListView.m_hWnd, nItem, FALSE); | |
1145 | 1145 | #else |
1146 | 1146 | RECT rc; |
1147 | 1147 | GetClientRect(m_hWnd, &rc); |
@@ -1160,7 +1160,7 @@ | ||
1160 | 1160 | //ステータスバーのサイズ調整 |
1161 | 1161 | if(m_bShowStatusWnd) { |
1162 | 1162 | SendMessage(m_StatusWnd.m_hWnd, WM_SIZE, wParam, lParam); |
1163 | - m_StatusWnd.OnSize(LOWORD(lParam), HIWORD(lParam)); | |
1163 | + m_StatusWnd.OnSize(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); | |
1164 | 1164 | } |
1165 | 1165 | } |
1166 | 1166 |
@@ -1170,7 +1170,7 @@ | ||
1170 | 1170 | //MOD START TODA (移動範囲設定 from Y.Nagamidori) |
1171 | 1171 | if(m_bViewSide) |
1172 | 1172 | { |
1173 | - int x = LOWORD(lParam); | |
1173 | + int x = GET_X_LPARAM(lParam); | |
1174 | 1174 | |
1175 | 1175 | //移動範囲設定(下限/上限) |
1176 | 1176 | int min = 20; |
@@ -0,0 +1,133 @@ | ||
1 | +======================================================================== | |
2 | +GSFinder+ for HTC Universal リコンパイル版 | |
3 | +2008年12月・ごりぽんソフトウェア | |
4 | +======================================================================== | |
5 | + | |
6 | +●概要 | |
7 | + 現時点(2008年12月現在)で、拙作GSFinder+ for W-ZERO3で行われた不具合の修 | |
8 | +正のうち、GSFinder+シリーズ全般に適用できる物を、かわ。氏の公開されている | |
9 | +GSFinder+ for HTC Universalに対して反映させたものです。 | |
10 | + | |
11 | +かわ。氏 | |
12 | +「GSFinder+ for HTC Universal」 | |
13 | +http://www.geocities.jp/gsfinder_wm5/ | |
14 | + | |
15 | + | |
16 | +●動作環境 | |
17 | + WindowsMobile5 PocketPCおよびWindowsMobile6以降のClassic/Professional。 | |
18 | + WindowsMobile5 PocketPCのSDKでビルドしているため、WindowsMobile5 | |
19 | +SmartphoneおよびWindowsMobile6以降のStandardでは動作しません。 | |
20 | + WindowsMobile2003のPocketPCでも動作するはずですが、前述の通りビルドに使っ | |
21 | +ているSDKがWindowsMobile5向けのものなので、何かしら問題が出る可能性はあり | |
22 | +ます。 | |
23 | + | |
24 | + | |
25 | +●インストール | |
26 | + デバイスにGSFinder-UniJ-recomp.CAB(日本語版)または | |
27 | +GSFinder-UniE-recomp.CAB(英語版)をコピーし、ファイルエクスプローラ等から | |
28 | +実行(タップするなど)してインストールしてください。 | |
29 | + | |
30 | + | |
31 | +●使用方法 | |
32 | + 基本的な操作方法やメニューなどは元のバージョンに準じます。 | |
33 | + 不具合修正のみなので、操作方法に違いはありません。 | |
34 | + | |
35 | + | |
36 | +●アンインストール | |
37 | + スタート→設定→システム→プログラムの削除から、 | |
38 | +"goripon GSFinder+ for Universal(recomp)"を選んでアンインストールしてくだ | |
39 | +さい。 | |
40 | + | |
41 | + | |
42 | +●注意事項 | |
43 | + 本ソフトウェアの使用による、いかなる損害に対しても、作者は責任を負いま | |
44 | +せん。利用は個人の責任でお願いします。 | |
45 | + また、本ソフトウェアについて、かわ。氏、および歴代のGSFinder作者諸氏に | |
46 | +は問い合わせをしないでください。 | |
47 | + 動作・バグ報告、情報提供、要望などは、このテキストに記載のある連絡先ま | |
48 | +でお寄せください。 | |
49 | + 商業誌や商業ベースのWEBページに掲載する場合は、(可能であれば掲載予定の | |
50 | +内容を添えて)事前に許可を取ってください。本ソフトウェアは基本的に取り扱わ | |
51 | +れること自体は拒否しませんが、原作者の居るものですので、私が原作者と勘違 | |
52 | +いされるような扱いはしないでください。 | |
53 | + | |
54 | + | |
55 | +●謝辞 | |
56 | + GSFinder+ WM5をソースごと公開してくれているかわ。氏および歴代のGSFinder | |
57 | +作者の方々に感謝します。 | |
58 | + 色々な報告や要望をくれた皆様やブログのコメントにも感謝です。 | |
59 | + | |
60 | + | |
61 | +●ソースコードの配布とライセンスについて | |
62 | + 元にしたGSFinder+シリーズがGNU General Public Licenseに従って配布されて | |
63 | +いますので、本ソフトウェアもそれに準じます。 | |
64 | + ソースコードは実行ファイルと同じ場所で公開されていますので、そこから入 | |
65 | +手してください。 | |
66 | + | |
67 | + | |
68 | +●連絡先 | |
69 | +ごりぽんソフトウェア・ごりぽん | |
70 | +メール:goriponsoft@gmail.com | |
71 | +ブログ:http://d.hatena.ne.jp/goriponsoft/ | |
72 | + | |
73 | + | |
74 | +●修正内容 | |
75 | + GSFinder+ for W-ZERO3から反映させた修正内容は以下の通りです。日付は、 | |
76 | +GSFinder+ for W-ZERO3における修正日となっています。 | |
77 | + | |
78 | +2007/08/06 | |
79 | +・画面の縦横切り替え後にステータスバー/アドレスバーのサイズがおかしくなる点を修正 | |
80 | +・ユーザーパスの登録で末尾に'\'を付けるとメニューで正常に表示されなくなっていたのを修正 | |
81 | +・WindowsMobile非対応部分を対応するように修正(※メニューの不完全部分を修正) | |
82 | + | |
83 | +2007/08/18 | |
84 | +・ファイル表示のアイコンの整列でソートの比較処理が一部うまく動いていなかったのを修正 | |
85 | + | |
86 | +2007/08/20 | |
87 | +・内部での座標の取り扱いに誤り(符号の有無)があったので修正 | |
88 | + | |
89 | +2007/09/02 | |
90 | +・フォルダ表示側で「コピー」「切り取り」を行った場合にコピー中の総ファイル数表示がおかしくなっていたのを修正 | |
91 | +・フォルダ表示の「マイポケットPC」上で「コピー」「切り取り」が正常に動作していなかったので選択できないように修正 | |
92 | + | |
93 | +2007/09/04 | |
94 | +・オプション設定の「ファイルの種類」およびファイルメニューの「プログラムの選択」で発生していた不正処理に対処 | |
95 | + | |
96 | +2007/09/09 | |
97 | +・フォルダ表示で[クリア]または[BS]キーを押すと1回の操作で2階層上に移動してしまっていたのを修正 | |
98 | +・検索ダイアログから抜けた後ファイル表示にフォーカスが移るよう修正 | |
99 | + | |
100 | +2007/09/16 | |
101 | +・WS007SHにおいて「詳細」表示でファイル名の幅を狭くしすぎると次回起動時に落ちていたのを修正 | |
102 | + | |
103 | +2007/12/26 | |
104 | +・「すべて選択」の後に「フォルダにコピー」を行った場合にハングアップする場合があったのを修正 | |
105 | + | |
106 | +2007/12/27 | |
107 | +・機能していなかった[F2]/[F6]キー関連の無駄なコードを削除(※マクロ__POCKETPCが定義済の場合のみ) | |
108 | +・フォルダコピーでのハングアップバグ修正に不完全な部分があったので再修正 | |
109 | + | |
110 | +2008/01/07 | |
111 | +・ファイルの圧縮で不正な書庫が作成されていたのを修正 | |
112 | +・オプション画面の「ファイルの種類」で処理に時間が掛かる場合にはウェイトカーソルを表示するよう修正 | |
113 | + | |
114 | +2008/01/14 | |
115 | +・アドレスバーのプルダウンリストの余計な開閉を抑制するよう修正 | |
116 | +・アドレスバーに入力したパス文字列の大小文字が実際のパスと違っていた場合にフォルダ表示が更新されなかったのを修正 | |
117 | +・「お気に入りに追加」を行うと追加した項目に"〜へのショートカット"が付く場合があったのを修正 | |
118 | +・フォルダ表示から「お気に入りに追加」を行った場合にメニューへの反映が行われていなかったのを修正 | |
119 | + | |
120 | +2008/01/20 | |
121 | +・縦横画面切り替え時にファイル表示で選択しているファイルが隠れてしまうことがあったのを修正 | |
122 | +・オプション設定の「ファイルの種類」で「新しい拡張子の作成」ダイアログを開くとそれ以降画面をタップしないと操作が継続できなかったのを修正 | |
123 | + | |
124 | +2008/05/23 | |
125 | +・フォルダ内のファイルの合計容量が2GBを超えた場合にステータスバーの表示がマイナス値になってしまっていたのを修正 | |
126 | +・リストビューアイコンの遅延読み込みがうまく動作していなかったのを修正 | |
127 | + | |
128 | +2008/07/02 | |
129 | +・ファイル日時表示の処理内に日時の文字列を格納するバッファのサイズを誤って指定していた部分があったのを修正 | |
130 | +・ユーザーパス登録画面でタップ&ホールドのアニメーションが出せてしまっていたのを修正 | |
131 | + | |
132 | +2008/11/24 | |
133 | +・アドレスバーに入力されたパスの末尾に'\'が付いていると上層フォルダへの移動がうまく行われなかったのを修正 |