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