有些浏览器会有一些底部工具条,如360的浏览器,它的底部工具条样例如下:
模仿360,本文介绍如何修改chromium代码,在chromium的底部也加上一个工具条。
首先浏览器的整个窗口的实现类是BrowserView,先在browser_view中加入相应的代码
src\chrome\browser\ui\views\frame\browser_view.h
scoped_ptr<BottomBarView> bottombar_;
src\chrome\browser\ui\views\frame\browser_view.cc
void BrowserView::InitViews() {
……
bottombar_.reset(new BottomBarView(browser_.get()));
AddChildView(bottombar_.get());
bottombar_->Init();
……
}
在往BrowserView中增加bottombar_后,需要为bottombar_设置它的布局,也就是bottombar_的显示位置。BrowserView的布局由BrowserViewLayout负责,需要修改这个类。
src\chrome\browser\ui\views\frame\browser_view_layout.h
class BrowserViewLayout : public views::LayoutManager {
……
BottomBarView *bottombar_;
……
}
src\chrome\browser\ui\views\frame\ browser_view_layout.cc
void BrowserViewLayout::Layout(views::View* browser_view) {
……
int bottom = LayoutBottombar(browser_view->height());
bottom = LayoutDownloadShelf(bottom);
//int bottom = LayoutDownloadShelf(browser_view->height());
……
}
bottombar_会在视图的最底端显示,而这个位置原来是下载栏的位置,修改一下这段代码,把下载栏放在底部工具栏之上。实现LayoutBottombar函数: