chromium中替换图标
问题来源
在定制chromium的过程中、需要修改主界面上的某些图标
替换步骤
下面是替换chromium主界面back按钮背景图标的步骤(vector_icon目录下有一个README.md文件、里面有详细的说明如何添加和使用一个icon文件):
1、首先是icon文件的获取
当前获取icon文件的方法(不知道还有没有更好的获取)
1.1 找到一张对应的svg
1.2 使用http://evanstade.github.io/skiafy/在线工具 、利用svg得到icon信息svg-icon
1.3 将得到的icon保存在后缀为.icon的文件中,例test.icon
2、开始替换
2.1 按照1的步骤得到test.icon文件
将test.icon文件放置在src\components\vector_icons目录下
在该目录下的BUILD.gn文件的sources项中加上“test.icon”
2.2 vector_icons.h和vector_icons.cc是src\components\vector_icons\aggregate_vector_icons.py文件生成的、完成2.1中的步骤后、重新gn gen,生成工程
3、替换成功、浏览中的图标被成功替换
替换结果
替换前:
替换后:
chromium翻译字符串
A:在已有的.grd文件中新增一个需要翻译的字符串
- src\chrome\app\generated_resources.grd中添加相应的信息
<message name="IDS_NEWITEM" desc="The text label of the NewItem...menu item">
NewItem
</message>
- 根据generated_resources.grd找到对应的.xtb文件、利用grit工具得到字符串对应的ID
....\src\tools\grit>python
Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from grit.extern.tclib import GenerateMessageId
>>> GenerateMessageId("NewItem")
'3836285310330645365'
- 编辑xtb文件
- 重新生成项目,重新生成后 generated_resources.h中会有#define IDS_NEWITEM 7064
- 至此、可以在代码中使用IDS_NEWITEM了
B:新增.grd文件并添加需要翻译的字符串【TODO】
fffffff
chromium menu中新增一项
1、BrowserCommandController::BrowserCommandController(Browser* browser)
BrowserCommandController::InitCommandState() 函数中确定了按钮的enable/disable状态,
该状态与commandId通过map的形式保存。[通过BrowserCommandController的名称可以推测、该类主要是用来处理command的]
2、[每一个MuneItem项]MenuItemView::MenuItemView的构造函数中会调用view::SetEnabled(bool enabled) :SetEnabled函数的实参是通过root_delegate->IsCommandEnabled(command)得到的
最终通过SimpleMenuModel::IsEnabledAt(int index)得到command对应的Enable/disable状态
3、第二步中设置好MenuItemView的状态后、
在控制menuItem显示的时候、会根据menuItem的enable/disable状态来确定menuItem的颜色
1、appmenu的长、宽、是怎么确定的?
2、