2015-02-27 13 views
6

Vorrei creare uno stesso tipo di menu del vassoio come this application. Perché è sulla lista delle applicazioni che usano node-webkit/nw.js, penso che sia possibile. Ho esaminato tutta la documentazione e non ho trovato nulla su come ottenerlo. Anche la ricerca su Google non è stata molto fruttuosa.Creare il menu simile a una finestra su OS X

Forse qualcuno di voi l'ha già fatto e potrebbe mandarmi nella giusta direzione?

risposta

7

Prima di tutto bisogna evitare che app compare nella barra delle applicazioni

{ 
    "name": "My App", 
    "version": "1.0.0", 
    "main": "app.html", 
    "window": { 
     "show": false, 
     "show_in_taskbar": false 
    } 
} 

Quindi è necessario creare vassoio (barra superiore) Menu: (esempio dalla sua fonte)

tray = new app.node.gui.Tray({ 
    title: '', 
    icon: 'assets/css/images/menu_icon.png', 
    alticon: 'assets/css/images/menu_alticon.png', 
    iconsAreTemplates: false 
}); 

quindi necessario creare finestra nascosta e mostrarlo al clic nel cassetto:

// create window 
var params = {toolbar: app.devMode, frame: false, transparent: true, resizable: false, show: false}; 
window = app.node.gui.Window.open('templates/panel.html', params); 

function showPopup (x, y) { 
    window.on('document-end', function() 
    window.moveTo(x - (window.window.width/2) - 6, y); 
    window.show(); 
    window.focus(); 
    }); 
} 

// show panel when click in tray 
tray.on('click', function (evt) { 
    showPopup(evt.x, evt.y); 
}); 
+0

Attenzione, questo non funziona su una versione precedente di node-webkit/nw.js. Stiamo usando la versione 0.8.6 perché eseguiamo su molti moduli nativi che richiedono l'uso di nodeJS 0.10. Nelle versioni precedenti, l'evento 'click' per' Tray' in OS X non si attiva, tuttavia lo fa in Windows e Linux. Come è stato discusso in questo numero. https://github.com/nwjs/nw.js/issues/1874#issuecomment-67249147 – Feanaro