adonais / skylark

Skylark Editor is written in C, a high performance text/hex editor. Embedded Database-client/Redis-client/Lua-engine. You can run Lua scripts and SQL files directly.
https://sourceforge.net/projects/libportable/files/Skylark/
GNU General Public License v3.0
461 stars 45 forks source link

UI方面改进需求 #23

Closed TaicEart closed 1 year ago

TaicEart commented 2 years ago

准确来说,就是Notepad3的替换窗口的“在选区中替换”,这个非常实用,但似乎没找到。


我看到 https://github.com/adonais/skylark/issues/14 的截屏才发现原来不是我个人的问题: image 工具栏的图标的下面几像素被截掉了。新增、保存、放大、缩小几个图标最明显。


我还看到这个议题 https://github.com/adonais/skylark/issues/15 的回复,感觉你可能对图标有误会:图标(.ico)相当于一个包含多重分辨率的图包,以我设计的图标 https://github.com/TaicEart/Undrgrnd 为例,一个软件的视窗用图标需要至少4种分辨率对应不同状态,且适应不同背景。 我可以帮你重新设计制作一个.ico,请问你对图标的形象(必须要出现云雀🕊和🖊吗)和配色(必须主色调为黑吗)等有无要求?

adonais commented 2 years ago

见resources\skylark.ico, 包含了六种分辨率的图标. 图标的设计需要简洁, 干净, 扁平化风格最好, 不要太复杂的图案, 但需要让人联想到是编辑器. 黑色可能与任务栏颜色冲突, 所以不能是黑色.

至于工具栏的图标确实截断了1个像素, 下个版本把它恢复回来好了.

TaicEart commented 2 years ago

补充一个问题: skylark 自带的默认关联文件图标("skylark.exe",2)纵向被压扁成正方形,乍一看以为我的文件图标显示纵横比坏了,想着反正要替换成我自己的就没在意。今天重启发现图标缺乏大图标和小图标,且文件都关联到一个HKEY_CLASSES_ROOT\skylark_file上不能区分。 我也可以无偿提供我制作的文件图标给你。 虽然可以手动逐个修改文件关联和图标,不过加个允许用户自定义关联的选项如何?即对各种文件类型分别关联图标。

TaicEart commented 2 years ago

检查 https://github.com/adonais/skylark/tree/main/resources 发现了一些问题:

我先修改了这4个图标,都是仅16px的,请看是否合适:skylark.resources.zip

adonais commented 2 years ago

如果有时间, 你可以先把制作好的skylark.ico应用程序图标发pull-request给我, 要包含下面几个分辨率: 16 × 16,24 × 24,32 × 32,48 × 48,64 × 64,256 × 256 关于工具栏图标, 现在不考虑, 我计划在某个时间把它们换成矢量图标, 这样更适合缩放, 并且能减小应用程序体积. 至于你说的文件关联图标, 我们来看看需要完成哪些工作: 1, 至少要制作80多个不同类别以及各类别2种分辨率以上的图标. 2, 写resource.h文件, 为80多个图标进行宏定义. 3, 写resource.rc文件, 把80多个图标文件路径导入. 4, 写Makefie, 编译成dll文件. 5, 写c代码, 80多个注册表项写入, 80多个注册表项卸载.

TaicEart commented 2 years ago

等等,你确定程序会调用到64×64吗?反正视窗实际是将大于48的图标都显示为256缩放的,64可能只是徒增体积。 矢量图标确有优点,Inkscape 用的正是矢量界面图标,调用的就是个 .svg 文件,自定义时可以用它编辑它自己的界面,但它有个栅格化渲染界面的过程,可能稍微影响启动。 某些软件用 .icl(图标库,实质是只含图标的 .dll,视窗可以识别)来批量关联图标的,我也可以编译 .icl,但我觉得可以模仿 bandisoft 等公司的软件直接公开 .ico 方便用户自行替换,这类软件对大批各异文件图标关联的策略可以参考。 文件图标至少需要 16(资源管理器列表、详细)、32(任务栏文件属性、资源管理器内容模式、桌面)、48(资源管理器中图标、平铺、桌面)、256(资源管理器中图标到超大图标)——不过我已经制作了一批现成的文件图标了,可以补充之后给你,而某些文件(一个夸张的例子:.md、.mkd、.mkdn、.mdown、.markdown)实质是同一类的,图标可以合并。也就是说我可以代劳1~4步工作,而且这也出于我自己的刚需,我确实需要一眼区分css、js、html……就像铬系浏览器自带的开发者工具那样。

adonais commented 2 years ago

我也不确认是否需要64×64, 但考虑到一些平台的兼容性, 有总比没有好. 但我一直没有看到你的工作成果. skylark 3.0将在本月15日左右发布, 带来了一些精彩的特性. 如果skylark 3.0不能用到新的logo图标, 那么3.x版本周期都不会考虑更换logo以及文本关联图标.

TaicEart commented 2 years ago

最近有些忙,这2天我会提供一些图标样例供选择。

我在用v2.0.14时发现一个问题: image 如图(我已经替换成我那些个图标测试实际使用效果)点开驱动器时,drive 的图标错误显示为 folder 图标,继续点击folder-closed展开文件夹目录,drive 图标又还原了。实际应当驱动器图标始终不变,只有文件夹开关变化,不知3.0是否解决。

我准备让 folder-closed 和 folder 图标差异更明显,不过实际使用发现如图这样也行,点击时能看到变化。

TaicEart commented 2 years ago

skylark预览

除了64×64,16、24、32、48,每个图标都是精确到像素对齐的,避免缩放导致模糊。只有64和视窗一样是256的直接缩小,图中未展示。所有都测试过明、灰、暗主题下均有可见性。 看了些 skylark 这种鸟的照片,设计了鸟蛋和鸟的多种造型。既然“sky”就取了天蓝色,也有蓝图的成分(可以换别的颜色)。将软件的多标签页特性体现在图标中。 用纸笔表现“编辑”比较省事,这块就不创新了,设计参考的是经典的中华101铅笔。 中华101铅笔 顺带制作了img_tab.bmp image 如图,附件包含一些没做完的 png 图标供挑选。 221112.zip

TaicEart commented 2 years ago

发现了新的小问题。 image 在屏幕100%放大比例下,软件主窗口的标题栏、工具窗口的标题栏左上角本应显示16尺寸图标的地方分别误用了skylark32.icoskylark.ico的32尺寸,缩小为16。即便给图标添加了16尺寸,视窗系统还是只读取32尺寸。 我将skylark32.ico有意改成只含16尺寸图标再试,发生更奇怪的事:系统将16尺寸图标放大再缩小,显示出模糊的样子。不清楚是哪一方的问题。

另外,img_tab.bmp似乎不支持透明背景,在暗黑主题下显示出锯齿白边,我又做了一个黑暗版,但也非长久之计,我在压缩包里附了透明png。

img_tab.zip

另外,txt.ico看上去实际是默认的任意文件图标,不限纯文本。

另外,关于页面上,在一般显示程序图标的地方显示为txt48.ico,不知是否 bug。

adonais commented 2 years ago

标签上图标锯齿问题已修复

dly023 commented 1 year ago

搭车请问下,可是做一下只有单标签时不显示标签栏,多标签情况下双击标签栏空白新建标签这样的功能嘛

adonais commented 1 year ago

搭车请问下,可是做一下只有单标签时不显示标签栏,多标签情况下双击标签栏空白新建标签这样的功能嘛

第一种与UI界面的整体性有冲突, 所以不考虑. 第二种添加新建标签的方式倒是可以有.

TaicEart commented 1 year ago

今天空闲出来才更新3.0,发现一些问题:

  1. 发觉我做的主程序图标,其32尺寸有些问题,之后修改。
  2. 黑暗模式下锯齿问题未真正解决,可见边缘发白,打开发现还是24位图片。当然只要程序支持32位透明背景 bmp,我可以自行替换。
  3. 文件管理器的路径加减按钮在黑暗模式下有白色的1像素四角,实际那四个角是透明的,找不到更改的地方。
  4. 我圆角矩形那个版没有为文件类型图标考虑,这我会做一个。

考虑到将来使用矢量工具栏图标,现在的工具栏问题我想矢量图标可以解决,就不提了。

说到文件类型图标,我觉得文件关联可以借鉴 Notepad2(或 Notepad3)那样给每一类文件创建一个类型名称(如果系统没有),而文件图标可以由使用者自己去找图标改(类似 bandisoft 的 Honeyview、Bandizip 那样外置图标);如果发现已存在注册表项,如 HKEY_CLASSES_ROOT\Honeyview.pcx\DefaultIcon 就不动它。顺带我已经做了一些文件图标可以提供,还在追加中(目前已经做了 .sh .conf 等图标,之后更新到gh)

adonais commented 1 year ago

文件关联的图标, 可以直接使用上面的skylark-2.ico修改, 比如说把那支笔去掉, 中间写上c++, python, perl, html就好了. 你说的标签上图标还是存在锯齿我没发现, 或许在比较高的分辨率上.

TaicEart commented 1 year ago

这段时间有事离网,还没试用最新版,在家打磨了 skylark-3.1.ico:修正16、32和48尺寸,现在应该视觉一致了。 skylark-3.1.zip

其实是在低分辨率屏幕上比较清楚,就是那种能看到每一粒像素的大颗粒屏幕,能看到黑暗模式下3.0.0标签图标改得如(抠图不干净残留白底边缘的)像素图一样,所以我又重画了: img_tab.2.zip

skylark-2 图标其实是为想象中的手机应用设计的,不太适合理解为文件。我在另设计一个 skylark 默认文本文件格式的图标,用于那些不好分类的纯文本文件格式。题外话,skylark 虽然能关联 .sql 文件,但似乎只能以二进制读取?

adonais commented 1 year ago

.sql文件应该是一系列sql查询语句的集合, 如果识别成二进制, 那就是.sql文件包含了非文本字符.

adonais commented 1 year ago

这段时间有事离网,还没试用最新版,在家打磨了 skylark-3.1.ico:修正16、32和48尺寸,现在应该视觉一致了。 skylark-3.1.zip

其实是在低分辨率屏幕上比较清楚,就是那种能看到每一粒像素的大颗粒屏幕,能看到黑暗模式下3.0.0标签图标改得如(抠图不干净残留白底边缘的)像素图一样,所以我又重画了: img_tab.2.zip

skylark-2 图标其实是为想象中的手机应用设计的,不太适合理解为文件。我在另设计一个 skylark 默认文本文件格式的图标,用于那些不好分类的纯文本文件格式。题外话,skylark 虽然能关联 .sql 文件,但似乎只能以二进制读取?

替换了img_tab.2.zip标签上的图标, 感觉不错~~

TaicEart commented 1 year ago

我比较常用替换功能,如果工具栏有个替换按钮就好了。工具栏按钮图标如果确定要改矢量图的话,我在春节后可以帮忙绘制。

adonais commented 1 year ago

使用CTRL+R也很方便吧

adonais commented 1 year ago

我比较常用替换功能,如果工具栏有个替换按钮就好了。工具栏按钮图标如果确定要改矢量图的话,我在春节后可以帮忙绘制。

新版本已经可以定制工具栏了, 打开conf\skylark_toolbar.conf, 找到IDM_SEARCH_FIND, 替换成IDM_SEARCH_REPLACE, 然后把它前面的IDS_TOOLBAR_11替换成40246 如果需要在工具栏添加"替换"按钮, 复制IDM_SEARCH_FIND所在行, 粘贴到下一行, 做上面所说的替换.然后替换双中括号之间svg图标, 注意svg图标不要超过4kb, 如果svg图标需要适配暗黑模式, 需要保持svg颜色为#455f91