2010-12-09 51 views
1

Je veux poser quelques questions: Quelles mesures dois-je faire pour rendre l'interface sur mozilla firefox et gérer toutes ces interfaces. interfaces que je veux faire sont:comment gérer la préférence et l'interface des addons mozilla firefox?

  1. barre d'état qui se compose d'étiquettes et des images et si la barre d'état sur le menu clic droit affiche les addons actifs (menu addons caché inactif) et les préférences.

  2. la page Web actuelle sur le clic droit, sur le navigateur affichera un menu contextuel "terjemahkan" et il y a des images sur le coin à gauche.

  3. lorsque je sélectionne le bouton Options dans le menu Outils >> addons, les utilisateurs peuvent ajuster ces paramètres addons avec les boutons radio

  4. lorsque le menu contextuel est sélectionné, la fenêtre du navigateur affiche les résultats souhaités

les étapes que je l'ai fait est:

m'a fait la barre d'état, mais pourquoi l'image que je veux pas apparaître quand je l'ai fait comme dirigé. ainsi que dans le menu contextuel, l'image ne peut pas apparaître dans le coin supérieur gauche du menu comme en général.

<?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> 

options d'interface utilisateur préférences

<?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> 

La chose la plus déroutant pour moi est de savoir comment je fais tout l'interface gestionnaire.

par exemple:

  1. changer le statut de addons d'actif à inactif

  2. prendre la valeur du bouton radio sélectionné

+0

Si vous montrez la partie pertinente de votre code XUL, il est plus facile d'aider. –

Répondre

1

Je ne peux pas vous donner une répondre à toutes vos questions, en partie parce que je ne sais pas exactement ce que vous voulez, mais voici un début:

  • Pour afficher une image à côté de l'élément de menu, vous devez donner à l'élément de la classe menuitem-iconic comme 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()" /> 
    
  • Je ne suis pas sûr de la barre d'état, par je suivrais the description in the documentation :

    Les classes suivantes peuvent être utilisées pour le style de l'élément. Ces classes doivent être utilisées au lieu de modifier directement le style de l'élément, car elles s'intégreront plus naturellement au thème sélectionné par l'utilisateur.

    statusbarpanel-iconic
    Utilisez cette classe pour faire apparaître une image dans le panneau de la barre d'état. Spécifiez l'image à l'aide de l'attribut src. L'image apparaîtra à la place de l'étiquette.

  • Vous pouvez obtenir la valeur du bouton radio sélectionné en obtenant une référence au radiogroup, accéder à sa propriété selectedItem qui vous donne un élément radio et lire la propriété value:

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

J'ai essayé d'implémenter le code comme vous le faites, mais pourquoi l'image devrait apparaître invisible ainsi que l'étiquette de la barre d'état. Que dois-je définir la barre d'état avec le fichier javascript? – user495688

+0

@ user495688: Je ne comprends pas ce que vous voulez dire. Pourriez-vous clarifier s'il vous plaît? –

+0

hmm ... J'ai essayé d'appliquer le code comme une solution que vous avez fournie, mais l'image que je veux n'apparaît pas, je ne sais pas pourquoi cela pourrait être le cas, même si j'ai essayé plusieurs fois, ce qui est mal avec mon code? – user495688