Mac Chromium Infobar相关设计

1类

1.1模型

InfoBarDelegate

"chrome/browser/infobars/infobar_delegate.h" 

infobar的抽象,保存infobar创建时的各种信息,如:图标等。一般用来继承。

ConfirmInfoBarDelegate

"chrome/browser/infobars/confirm_infobar_delegate.h"

confirm infobar的抽象,继承自InfoBarDelegate,用来保存confirm infobar创建时的各种信息,如:信息提示内容等。

InfoBarService

"chrome/browser/infobars/infobar_service.h"

通过管理InfoBarDelegate(以vector)来控制info bar的添加、删除、替换。

1.2控制器

InfoBarController : NSViewController<NSTextViewDelegate>

"chrome/browser/ui/cocoa/infobars/infobar_controller.h"

Infobar view的控制器,cocoa专有,用来画图标、提示信息、关闭按钮等。

ConfirmInfoBarController

"chrome/browser/ui/cocoa/infobars/confirm_infobar_controller.h"

继承自InfoBarController,主要用来控制给infobar view 增加额外的控制。比如:点击link标签回调等。

InfoBar

"chrome/browser/ui/cocoa/infobars/infobar.h"

包装InfoBarController的C++封皮类。仅仅用来做InfoBarDelegate::CreateInfoBar()的返回值类。 注意,区分通用的Infobar类。

InfoBarContainerController

"chrome/browser/ui/cocoa/infobars/infobar_container_controller.h"

infobar container view的控制器,cocoa专有,同时用来管理InfoBarController( NSMutableArray)。

1.3视图

InfoBarGradientView

"chrome/browser/ui/cocoa/infobars/infobar_gradient_view.h"

控制info bar背景的绘制。

2.1类图

2.2添加Infobar流程

3修改

添加新的infobar类型

创建新的infobar delegate。如:NewInfobarDelegate;

重写NewInfobarDelegate类的CreateInfoBar函数。(由于NewInfobarDelegate类是跨平台的,所以此函数一般在对应控制器的cc文件中写)

创建新的infobar controller。如:NewInfobarController;

若要修改界面元素,重写NewInfobarController的函数addAditionalControls函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值