X-Git-Url: http://git.sourceforge.jp/view?p=ffftp%2Fffftp.git;a=blobdiff_plain;f=filelist.c;h=91e2c352a800efa3246a57b70e1cb1bd03962457;hp=cb1295b0b915b52c64bcdc8f71fcbd4d129f156f;hb=04da7433e6cb8b4e7f0a6e986a9255263114c2b9;hpb=c3c5ce768282208e5678f485c889484f9343cb48 diff --git a/filelist.c b/filelist.c index cb1295b..91e2c35 100644 --- a/filelist.c +++ b/filelist.c @@ -147,6 +147,8 @@ static WNDPROC LocalProcPtr; static WNDPROC RemoteProcPtr; static HIMAGELIST ListImg = NULL; +// ファイルアイコン表示対応 +static HIMAGELIST ListImgFileIcon = NULL; static char FindStr[40+1] = { "*" }; /* 検索文字列 */ static int IgnoreNew = NO; @@ -1340,22 +1342,22 @@ void RefreshIconImageList(FLISTANCHOR *Anchor) int i; char Cur[FMAX_PATH+1]; SHFILEINFO FileInfo; - SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL); - ShowWindow(hWndListLocal, SW_SHOW); - SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL); - ShowWindow(hWndListRemote, SW_SHOW); - ImageList_Destroy(ListImg); - ListImg = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR24, 0, 1); - hBitmap = LoadBitmap(GetFtpInst(), MAKEINTRESOURCE(dirattr_bmp)); - ImageList_AddMasked(ListImg, hBitmap, RGB(255,0,0)); - DeleteObject(hBitmap); - ImageId = 0; - Pos = Anchor->Top; - for(i = 0; i < Anchor->Files; i++) + if(AskDispFileIcon() == YES) { - Pos->ImageId = -1; - if(AskDispFileIcon() == YES) + SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL); + ShowWindow(hWndListLocal, SW_SHOW); + SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL); + ShowWindow(hWndListRemote, SW_SHOW); + ImageList_Destroy(ListImgFileIcon); + ListImgFileIcon = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 0, 1); + hBitmap = LoadBitmap(GetFtpInst(), MAKEINTRESOURCE(dirattr16_bmp)); + ImageList_AddMasked(ListImgFileIcon, hBitmap, RGB(255, 0, 0)); + DeleteObject(hBitmap); + ImageId = 0; + Pos = Anchor->Top; + for(i = 0; i < Anchor->Files; i++) { + Pos->ImageId = -1; if(Pos->Node == NODE_DRIVE) strcpy(Cur, Pos->File); else @@ -1366,20 +1368,27 @@ void RefreshIconImageList(FLISTANCHOR *Anchor) } if(SHGetFileInfoM(Cur, 0, &FileInfo, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON) != 0) { - if(ImageList_AddIcon(ListImg, FileInfo.hIcon) >= 0) + if(ImageList_AddIcon(ListImgFileIcon, FileInfo.hIcon) >= 0) { Pos->ImageId = ImageId; ImageId++; } DestroyIcon(FileInfo.hIcon); } + Pos = Pos->Next; } - Pos = Pos->Next; + SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImgFileIcon); + ShowWindow(hWndListLocal, SW_SHOW); + SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImgFileIcon); + ShowWindow(hWndListRemote, SW_SHOW); + } + else + { + SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg); + ShowWindow(hWndListLocal, SW_SHOW); + SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg); + ShowWindow(hWndListRemote, SW_SHOW); } - SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg); - ShowWindow(hWndListLocal, SW_SHOW); - SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg); - ShowWindow(hWndListRemote, SW_SHOW); } void GetLocalDirForWnd(void) @@ -1695,8 +1704,8 @@ static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, else LvItem.iImage = 4; // ファイルアイコン表示対応 - if(hWnd == GetLocalHwnd() && ImageId >= 0) - LvItem.iImage = 5 + ImageId; + if(AskDispFileIcon() == YES && hWnd == GetLocalHwnd()) + LvItem.iImage = ImageId + 5; LvItem.iItem = SendMessage(hWnd, LVM_INSERTITEM, 0, (LPARAM)&LvItem); /* 日付/時刻 */ @@ -4911,6 +4920,7 @@ static int ResolvFileInfo(char *Str, int ListType, char *Fname, LONGLONG *Size, sTime.wSecond = atoi_n(Value + 12, 2); sTime.wMilliseconds = 0; SystemTimeToFileTime(&sTime, Time); + // 時刻はGMT // SpecificLocalFileTime2FileTime(Time, AskHostTimeZone()); *InfoExist |= FINFO_DATE | FINFO_TIME; }