Skip to content

Commit

Permalink
V1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
dream7180 committed Jul 28, 2021
1 parent da246c3 commit d20dec6
Show file tree
Hide file tree
Showing 541 changed files with 34,183 additions and 25,405 deletions.
Binary file removed ExifPro.chm
Binary file not shown.
33 changes: 17 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
#ExifPro Mod

EXIFPro 是一个优秀的图像查看, 处理及管理工具, 使用 VC++ 开发, 小巧快速, 支持查看丰富的 EXIF 信息, 非常适用于查看您的 RAW 数字照片和其他常规图像.
EXIFPro V1.x 到 V2.1 是收费软件, 后来就没再出新版了. 再后来作者开源了 ExifPro, 源码发布在 GitHub 上:
https://github.com/mikekov/ExifPro.
但是在2018年2月就停止了代码更新, 留下了没有完善的 2.3 版就似乎停止了该项目.
EXIFPro 主要吸引我的是它的图像查看功能, 习惯了它的操作后几乎没办法适应其他看图软件, 例如双击切换 100% 和适应屏幕视图, 至于中键呼出放大镜方框的功能 (极其方便查看原图), 更是找不到其他代替品.
原有的 EXIFPro 2 已经老旧, 界面落后时代, 解码库老旧. 所以我在 GitHub 的代码上进行了二次开发, 并相同以开源方式共享此 Mod 3.x 版本.
主要改进方面:
界面上扁平化和美化, 更符合现代 UI 的风格.
升级了所有图像解码库.
设置优化, 功能优化, 比如删除拖慢速度的 Photolist, 变成返回浏览主界面按钮, 优化放大镜窗口, 更大更舒适. 许多细节的优化不一一列举.
尽可能全面中文化, 包括 EXIF 信息 (许多中文版的看图工具都做不到).
通过这个修改的 3.x 版本希望能延续这个软件的生命, 如果有可能, 我会继续改进它.

![alt text](info/screenshot.jpg "ExifPro: work in progress")
#Shutter

Shutter 基于停止开发的 ExifPro ( https://github.com/mikekov/ExifPro ), 是一个优秀的图像浏览,查看及管理工具, 使用 VC++ 开发, 小巧快速, 支持查看丰富的 EXIF 信息, 非常适用于查看您的 RAW 数字照片和其他常规图像.

习惯了Shutter的图像查看操作后几乎没办法适应其他看图软件, 例如双击切换 100% 和适应屏幕视图, 至于中键呼出放大镜方框的功能 (极其方便查看原图), 更是找不到其他代替品.

Shutter的RAW数字照片查看方式并非进行解码,而是查看其内嵌JPG,优点是速度快,未来会尽量改进对RAW的支持.

Shutter延续了ExifPro的优点,并进行全面更改.

界面上扁平化和美化, 更符合现代 UI 的风格,美观实用.

设置优化, 功能优化,并升级了所有图像解码库.

中文软件, 包括照片的 EXIF 信息也尽可能使用中文.

![alt text](info/screenshot.jpg "Shutter: work in progress")
62 changes: 30 additions & 32 deletions ExifPro.sln → Shutter.sln
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Scintilla", "libs\scintilla
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XMPCore", "libs\XMP-Toolkit\build\vc\XMPCore.vcxproj", "{C5BB1536-3776-4474-861D-B5923C610FE4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg-static", "libs\libjpeg-turbo\bin\jpeg-static.vcxproj", "{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg-static", "libs\libjpeg-turbo\bin\jpeg-static.vcxproj", "{F9871778-FE18-3E3B-B33D-BD82280733AE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simd", "libs\libjpeg-turbo\bin\simd\simd.vcxproj", "{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simd", "libs\libjpeg-turbo\bin\simd\simd.vcxproj", "{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libjpeg-turbo", "libjpeg-turbo", "{512DA9B0-CC6A-49E5-9A67-C324CA730968}"
EndProject
Expand Down Expand Up @@ -155,16 +155,14 @@ Global
{451D2401-5EF7-464B-9B54-E00840BC1A71}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{451D2401-5EF7-464B-9B54-E00840BC1A71}.RelWithDebInfo|x64.ActiveCfg = Release|x64
{451D2401-5EF7-464B-9B54-E00840BC1A71}.RelWithDebInfo|x64.Build.0 = Release|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Debug|Win32.ActiveCfg = Debug|Win32
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Debug|Win32.Build.0 = Debug|Win32
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Debug|Win32.ActiveCfg = Debug|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Debug|x64.ActiveCfg = Debug|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Debug|x64.Build.0 = Debug|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.MinSizeRel|Win32.ActiveCfg = Release|Win32
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.MinSizeRel|Win32.Build.0 = Release|Win32
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.MinSizeRel|x64.ActiveCfg = Release|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.MinSizeRel|x64.Build.0 = Release|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Release|Win32.ActiveCfg = Release|Win32
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Release|Win32.Build.0 = Release|Win32
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Release|Win32.ActiveCfg = Release|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Release|x64.ActiveCfg = Release|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.Release|x64.Build.0 = Release|x64
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
Expand Down Expand Up @@ -219,30 +217,30 @@ Global
{C5BB1536-3776-4474-861D-B5923C610FE4}.RelWithDebInfo|Win32.Build.0 = Release|Win32
{C5BB1536-3776-4474-861D-B5923C610FE4}.RelWithDebInfo|x64.ActiveCfg = Release|x64
{C5BB1536-3776-4474-861D-B5923C610FE4}.RelWithDebInfo|x64.Build.0 = Release|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.Debug|Win32.ActiveCfg = Debug|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.Debug|x64.ActiveCfg = Debug|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.Debug|x64.Build.0 = Debug|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.Release|Win32.ActiveCfg = Release|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.Release|x64.ActiveCfg = Release|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.Release|x64.Build.0 = Release|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.Debug|Win32.ActiveCfg = Debug|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.Debug|x64.ActiveCfg = Debug|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.Debug|x64.Build.0 = Debug|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.Release|Win32.ActiveCfg = Release|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.Release|x64.ActiveCfg = Release|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.Release|x64.Build.0 = Release|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.Debug|Win32.ActiveCfg = Debug|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.Debug|x64.ActiveCfg = Debug|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.Debug|x64.Build.0 = Debug|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.Release|Win32.ActiveCfg = Release|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.Release|x64.ActiveCfg = Release|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.Release|x64.Build.0 = Release|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
{F9871778-FE18-3E3B-B33D-BD82280733AE}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.Debug|Win32.ActiveCfg = Debug|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.Debug|x64.ActiveCfg = Debug|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.Debug|x64.Build.0 = Debug|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.Release|Win32.ActiveCfg = Release|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.Release|x64.ActiveCfg = Release|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.Release|x64.Build.0 = Release|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -256,8 +254,8 @@ Global
{E0E851A7-3D38-419F-9597-3EC0FF1C5CA4} = {F19F8CE6-A679-4F07-9001-B633405D41A9}
{B67EC390-1B8F-44BF-9BD0-80DAF97113B3} = {F19F8CE6-A679-4F07-9001-B633405D41A9}
{C5BB1536-3776-4474-861D-B5923C610FE4} = {F19F8CE6-A679-4F07-9001-B633405D41A9}
{47AA564E-D44F-32AB-AD66-CE685DC9BE6E} = {512DA9B0-CC6A-49E5-9A67-C324CA730968}
{1CA2BB1F-AE65-3B19-BFAF-2A81BE8FC798} = {512DA9B0-CC6A-49E5-9A67-C324CA730968}
{F9871778-FE18-3E3B-B33D-BD82280733AE} = {512DA9B0-CC6A-49E5-9A67-C324CA730968}
{67C42D1F-B921-35D6-9F3C-92E9AAFCA1AB} = {512DA9B0-CC6A-49E5-9A67-C324CA730968}
{512DA9B0-CC6A-49E5-9A67-C324CA730968} = {F19F8CE6-A679-4F07-9001-B633405D41A9}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
Expand Down
Binary file renamed ExifPro编译步骤.doc → Shutter编译步骤.doc
Binary file not shown.
Binary file modified info/screenshot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 7 additions & 6 deletions libs/coolsb/coolscroll.c
Original file line number Diff line number Diff line change
Expand Up @@ -395,14 +395,14 @@ static void DrawThumb(HDC hdc, RECT *rect, COLORREF backgnd, COLORREF foreground
if (horz)
{
auto h = rect->bottom - rect->top;
auto margin = h / 4;
auto margin = 0;//h / 4;
r.top += margin;
r.bottom -= margin;
}
else
{
auto w = rect->right - rect->left;
auto margin = w / 4;
auto margin = 0;//w / 4;
r.left += margin;
r.right -= margin;
}
Expand Down Expand Up @@ -1640,10 +1640,11 @@ static LRESULT NCPaint(SCROLLWND *sw, HWND hwnd, WPARAM wParam, LPARAM lParam)
CopyRect(&rect2, &rect);
OffsetRect(&rect2, winrect.left, winrect.top);

if(!sw->fLeftScrollbar && parent.right == rect2.right+sw->cxRightEdge && parent.bottom == rect2.bottom+sw->cyBottomEdge
|| sw->fLeftScrollbar && parent.left == rect2.left -sw->cxLeftEdge && parent.bottom == rect2.bottom+sw->cyBottomEdge)
DrawFrameControl(hdc, &rect, DFC_SCROLL, sw->fLeftScrollbar ? DFCS_SCROLLSIZEGRIPRIGHT : DFCS_SCROLLSIZEGRIP );
else
//if(!sw->fLeftScrollbar && parent.right == rect2.right+sw->cxRightEdge && parent.bottom == rect2.bottom+sw->cyBottomEdge
//|| sw->fLeftScrollbar && parent.left == rect2.left -sw->cxLeftEdge && parent.bottom == rect2.bottom+sw->cyBottomEdge)
//DrawFrameControl(hdc, &rect, DFC_SCROLL, sw->fLeftScrollbar ? DFCS_SCROLLSIZEGRIPRIGHT : DFCS_SCROLLSIZEGRIP | DFCS_INACTIVE);
//DrawFrameControl(hdc, &rect, DFC_SCROLL, DFCS_SCROLLDOWN | DFCS_FLAT | DFCS_INACTIVE);
//else
PaintRect(hdc, &rect, sw->background);// GetSysColor(COLOR_3DFACE));
}
}
Expand Down
Loading

0 comments on commit d20dec6

Please sign in to comment.