2015-02-27 10 views
6

Chciałbym stworzyć taki sam rodzaj menu tacy, jak this application. Ponieważ znajduje się na liście aplikacji korzystających z node-webkit/nw.js, myślę, że jest to możliwe. Przejrzałem całą dokumentację i nie mogłem znaleźć niczego, jak to osiągnąć. Również wyszukiwanie w Google nie było naprawdę owocne.Utwórz menu przypominające okno na OS X

Może któryś z was zrobił to wcześniej i mógł wysłać mnie we właściwym kierunku?

Odpowiedz

7

Najpierw trzeba zapobiec aplikacja pojawi się w pasku zadań

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

Następnie trzeba stworzyć podajnik (górny pasek) menu: (przykład z jego źródła)

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

Następnie należy utworzyć ukryte okno i pokaż go na tacce kliknięcia:

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

Należy pamiętać, że to nie działa w przypadku starszej wersji node-webkit/nw.js. Używamy wersji 0.8.6, ponieważ uruchamiamy wiele rodzimych modułów, które wymagają użycia nodeJS 0.10. We wcześniejszych wersjach zdarzenie 'click' dla' Tacy' w systemie OS X nie uruchamia się, ale działa w systemach Windows i Linux. Jak omówiono w tym wydaniu. https://github.com/nwjs/nw.js/issues/1874#issuecomment-67249147 – Feanaro