搜尋此網誌

2009年8月11日 星期二

Firefox修改:Firefox 介面修改(一)

前一篇文章已經知道Firefox介面內容及程式碼所在的檔案,本篇接著簡單的對Firefox的各工具做位置上的改變,以簡單的了解程式內容。

首先進行以下動作:
1、到Firefox資料夾下,進入 chrome資料夾,先找到「browser.jar」檔案
2、以任何可行的方式,將「browser.jar」壓縮檔開啟,但不必解壓縮,或是右鍵以7-Zip解壓軟體開啟


3、開啟壓縮檔後,進入 browser.jar\content\browser\ 之後,找到「browser.xul」檔案
4、將browser.xul從壓縮檔裡拉出來,建議先建立一個資料夾,再將browser.xul放到該資料夾,這個動作是準備對browser.xul做修改,我們無法從 browser.jar中修改此檔案,因而做這個動作。
5、開啟browser.xul(建議使用free ware : Notepad++ )。
開啟browser.xul檔案後,直接到行數第 733行,會看到 「<!--Menu-->」的字樣,可以確定以下開始的程式片段,會是Firefox的工具列至狀態列元件的所在位置。


a.接著在742及743行分別是 :

 <menu id="file-menu" label="&fileMenu.label;"
  accesskey="&fileMenu.accesskey;">

  其中 <menu>元件即為工具列中「File、Edit、View、…、Help」程式片段。

  

b.程式在744行為

  <menupopup id="menu_FilePopup" onpopupshowing="getContentAreaFrameCount』();">

  此為工具列下拉式選單中的「分隔線」元件

c.程式745到749行的內容

  <menuitem id="menu_newNavigator"
  label="&newNavigatorCmd.label;"
  accesskey="&newNavigatorCmd.accesskey;"
   key="key_newNavigator"
   command="cmd_newNavigator"/>

  其中『<menuitem>』即為工具列中,下拉式選單中的項目


  


6、到目前為止,對於工具列的元件已有初步的了解,接著回到742、743行看看…


  <menu id="file-menu" label="&fileMenu.label;"
  accesskey="&fileMenu.accesskey;">


  我們可以注意到「label="&fileMenu.label;"」這一段敘述中「&fileMenu.label」的地方,label屬性可以指定這個個按鈕項目顯示的文字,而「&fileMenu.label」可參照至其他檔案中的「fileMenu.label」所給定的數值。假如使用Notepade++編輯此xul檔案,可以將「fileMenu.label」做反白的動作,再按下ctrl + F,並指定搜尋所有解壓過的檔案,搜尋的檔案類型請設定為「*.js *.xml *.xul *.dtd」(以空白隔開搜尋值),設定好了之後按下「全找」:

  

在找到的資料中能夠發現在「en-US」資料夾中,browser目錄下browser.dtd檔案第137行有疑似指定fileMenu.label變數值的資料,雙擊載入此檔,程式會自動到達en-US中browser.dtd檔案的137行:

  

進入browser.dtd後,看到的137~139行的程式片段:

<!ENTITY fileMenu.label "File">
<!ENTITY fileMenu.accesskey "F">
<!ENTITY newNavigatorCmd.label "New Window">

我們可以試著將137行的 "File" 改成 "修改後"字樣,並且將下一行的 "F"改為 "修"。修改之後要注意的是「若要檢視修改的結果,一定要將修改過的檔案重新置入 *.jar中,重新開啟Firefox程式」,而將修改過的檔案置入 *.jar中的過程,Firefox是不能夠在開啟的狀態的,否則會無法取代檔案而失敗。以下是「修改後」工具列的結果:







對於其他按鈕顯示的文字,可以利用相同的方法去改變。


接著回到browser.xul檔案,注意以下行數:

  第722行到1415行:工具列程式碼
  第1417到1438行:瀏覽器頁面程式碼
  第1440到1436行:狀態列程式碼

這裡試著將各物件的位置做搬移的動作,首先請將第1417到1438行的程式碼做「剪下」的動作,剪下後,到722行的前一行做「貼上」的動作。

  


以上簡單介紹小幅修改Firefox介面的動作,下一篇對程式內容做其他方面的介紹。

沒有留言:

張貼留言