2010-12-09 7 views
1

Ich möchte einige Fragen stellen: Welche Schritte sollte ich tun, um die Schnittstelle auf Mozilla Firefox zu machen und all diese Schnittstellen zu behandeln. Schnittstellen, die ich machen möchte, sind: (Addons Menü inaktiv versteckt) und VorliebenWie zu Handler-Präferenz und Schnittstelle von Mozilla Firefox Addons?

  1. Statusleiste, die auf dem Rechtsklick-Menü von Etiketten und Bilder, und wenn die Statusleiste, die die aktiven Addons wird angezeigt, besteht.

  2. aktuelle Webseite mit der rechten Maustaste, auf dem Browser wird ein Kontextmenü "terjemahkan" angezeigt und es gibt Bilder auf der linken Seite.

  3. , wenn ich auf die Schaltfläche Optionen im Menü Extras auf >> Addons auswählen, Benutzer können diese addons Einstellungen mit den Radiobuttons

  4. einzustellen, wenn das Kontextmenü dann wird der Browser ausgewählt Fenster die gewünschten Ergebnisse zeigen

die Schritte, die ich getan habe, ist:

i die Statusleiste gemacht wurde, aber warum das Bild, das ich nicht erscheinen soll, wenn ich so gemacht habe gerichtet. Ebenso wie im Kontextmenü kann das Bild nicht wie generell in der oberen linken Ecke des Menüs erscheinen.

<?xml version="1.0"?> 

<overlay id="inline_trans" 
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
xmlns:html="http://www.w3.org/1999/xhtml"> 

<!-- 
    <script type="application/x-javascript" src="chrome://translator/content/script.js" /> 
    <script type="application/x-javascript" src="chrome://translator/content/interface.js" /> 

--> 
    <!-- menu klik kanan pada halaman web --> 

    <popup id="contentAreaContextMenu"> 
     <menuseparator /> 
     <menuitem id="intransContextMenuPage" 
     image="chrome://inlinetrans/skin/imagesOn_kecil.png" 
     label="terjemahkan dengan intrans" 
     oncommand="inline.script.getText()" /> 
    </popup> 

    <!-- pilihan menu pada status bar --> 

<popupset> 
    <menupopup id="intransContextMenu"> 
    <menuitem label="intrans nonaktif" 
    image="chrome://inlinetrans/skin/imagesOff_kecil.png" 
    hidden="true"/> 
    <menuitem label="intrans aktif" 
    image="chrome://inlinetrans/skin/imagesOn_kecil.png" 
    hidden="false"/> 
    <menuseparator /> 
    <menuitem label="preferensi"/> 
    </menupopup> 
</popupset> 

<!-- ========================================= --> 

<!-- statusbar--> 

    <statusbar id="status-bar"> 
     <statusbarpanel id="status-bar-intrans" 
     image="chrome://inlinetrans/skin/imagesOn_kecil.png" 
     label="intrans" 
     context="intransContextMenu" 
     tooltiptext="intrans versi 1.0" 
     /> 
    </statusbar> 
</overlay> 

UI Optionen Vorlieben

<?xml version="1.0"?> 
    <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 

    <!DOCTYPE overlay SYSTEM "chrome://inlinetrans/locale/options.dtd"> 

    <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
     id="translate-preferences" 
     title="&options.title;" 
     buttons="accept, cancel" 
     style="padding:0px; margin:0px;" 
     ondialogaccept="options.save()" 
     onload="options.init();" 
     onunload="options.deconstruct();"> 

    <!-- 
     <stringbundleset id="stringbundleset"> 
     <stringbundle id="locale-properties" src="chrome://translator/locale/translator.properties"/> 
     <stringbundle id="properties" src="chrome://translator/content/translator.properties"/> 
     </stringbundleset> 
    --> 

    <!-- 
     <script src="chrome://inlinetrans/content/options.js" /> 

    --> 

     <description value="&options.desc;" 
     style=" 
     background: #fff url('chrome://inlinetrans/skin/options.png') no-repeat; 
     min-width:400px; 
     min-height:40px; 
     padding-left:55px; 
     padding-top:10px; 
     margin:0px; 
     border-bottom: 2px solid #757575; 
     font-size:1.5em;"/> 

     <vbox style="padding:10px;"> 
     <groupbox> 
      <caption label="&options.ui;"/> 
      <label value="&options.results.desc;"/> 
     <radiogroup id="display.results" style="padding-left:20px;"> 
      <radio id="results.cat" value="category" label="&options.results.cat;"/> 
       <radio id="results.noncat" value="noncategory" label="&options.results.noncat;"/> 
      </radiogroup> 
     </groupbox> 
    </vbox> 
    </dialog> 

Die verwirrende Sache für mich ist, wie ich alle Handler-Schnittstelle tun.

zum Beispiel:

  1. Änderung des Status von Add-Ons von aktivem,

  2. nehmen den Wert des ausgewählten Optionsfelds

+0

Wenn Sie Ihren relevanten Teil Ihres XUL-Codes zeigen, ist es einfacher zu helfen. –

Antwort

1

ich Ihnen eine geben kann, nicht auf inaktiv antworte auf alle deine Fragen, teilweise weil ich nicht genau weiß, was du willst, aber hier ist ein Anfang:

  • ein Bild zeigen, neben dem Menüpunkt, müssen Sie das Element geben die Klasse menuitem-iconic als described in the documentation:

    <menuitem id="intransContextMenuPage" 
    class="menuitem-iconic" 
    image="chrome://inlinetrans/skin/imagesOn_kecil.png" 
    label="terjemahkan dengan intrans" 
    oncommand="inline.script.getText()" /> 
    
  • Ich bin für die Statusbar nicht sicher, indem ich the description in the documentation folgen würde :

    Die folgenden Klassen können zum Formatieren des Elements verwendet werden. Diese Klassen sollten verwendet werden, anstatt den Stil des Elements direkt zu ändern, da sie natürlicher in das ausgewählte Thema des Benutzers passen.

    statusbarpanel-iconic
    Verwenden Sie diese Klasse, um ein Bild auf der Statusleiste anzuzeigen. Geben Sie das Bild mit dem Attribut src an. Das Bild wird anstelle des Labels angezeigt.

  • Sie können den Wert des ausgewählten Optionsfelds erhalten, indem Sie einen Verweis auf die radiogroup bekommen, den Zugang zu seiner Eigenschaft selectedItem die Ihnen ein radio Element gibt und lesen Sie die value Eigenschaft:

    var value = document.getElementById('display.results').selectedItem.value; 
    
+0

Ich habe versucht, den Code so zu implementieren, wie du es gibst, aber warum das Bild unsichtbar erscheinen sollte, genauso wie die Statusleiste. Was sollte ich die Statusleiste mit der Javascript-Datei einstellen? – user495688

+0

@ user495688: Ich verstehe nicht, was du meinst. Kannst du das bitte klären? –

+0

hmm ... Ich habe versucht, den Code als eine Lösung, die Sie bereitgestellt haben, anzuwenden, aber das Bild, das ich will, erscheint nicht, ich weiß nicht, warum es so sein könnte, auch wenn ich viele Male versucht habe, was ist falsch mit meinem Code? – user495688