替换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、替换成功、浏览中的图标被成功替换

替换结果

替换前:
替换前的back按钮图标

替换后:
替换后的back按钮图标

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、

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值