Google瀏覽器的源碼分析(3)

來源:互聯網
上載者:User

前面修改了chrome關於對話方塊,並且編譯顯示出來了,那麼它是在那裡調用顯示的呢?現在就帶你去瞭解它。由於它是介面顯示,那麼不用想,直接到介面的工程裡尋找它,也就是到目錄src/chrome/browser/views裡查看到檔案about_chrome_view.cc。

 

這個檔案裡聲明了一個類AboutChromeView,它就是主要負責初始化對話方塊、布局、顯示字串等等,比如顯示“關於可樂米”的字串,就是這樣實現的,先調用函數:

#001  std::wstring AboutChromeView::GetWindowTitle() const {

  return l10n_util::GetString(IDS_ABOUT_CHROME_TITLE);

}

 

擷取資源裡的對話方塊標題,接著:


 

在上面的斷點裡就是響應菜單,然後建立關於對話方塊,主要調用函數CreateChromeWindow來建立視窗,把AboutChromeView視窗綁定到這個視窗類別型裡。由於可多米都是統一的視窗樣式,那麼它是通過建立一樣的視窗類別CustomFrameWindow來實現的。

 

為了顯示視窗的標題,是通過下面的函數關係調用:

1.  Browser::ExecuteCommand  瀏覽器執行功能表命令。

2.  ChromeViews::Window::CreateChromeWindow  建立視窗。

3.  ChromeViews::CustomFrameWindow::Init 初始化視窗。

4.  ChromeViews::Window::Init  初始化視窗標題。

5.  AboutChromeView::GetWindowTitle  從關於對話方塊擷取標題。

 

理解上面的函數關係調用就知道怎麼樣顯示標題了,因此也知道關於對話方塊所有內容是由類AboutChromeView來管理的,但視窗的樣式是由CustomFrameWindow類來管理的。

 

通過上面的分析,瞭解了關於對話方塊的標題顯示過程,你想修改成什麼樣的內容,就要看你的需要了。下一次再仔細地分析有關於對話方塊怎麼樣組織其它資訊,比如重要的升級功能。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.