Lilikha kami ng isang simpleng applet para sa kanela. Upang magsimula, dapat nating malaman iyon kanela nag-aalok ng iba't ibang mga uri ng applet:
- TextApplet (ipinapakita ang isang label sa panel)
- IconApplet (ipinapakita ang isang icon sa panel)
- TextIconApplet (na nagpapahiwatig ng parehong isang icon at isang label sa panel)
- applet (para sa mga hardcore developer, na nagpapakita ng walang laman na kahon na maaari mong punan ang iyong sarili)
Sa tutorial na ito, nais lamang naming magpakita ng isang icon sa panel, kaya gagamit kami ng isang "IconApplet". Upang mai-program ang aming applet sa Kanela o Gnome kailangan nating malaman at malaman ang tungkol sa programang Javascript
Lokasyon ng aming code.
Una, tingnan natin ang lokasyon ng aming file. Ang lokasyon ng aming applet ay ibinibigay sa mga sumusunod na address:
/.local/share/cinnamon/applets
o en /usr/share/cinnamon/applets
Mga file na bumubuo sa aming Applet.
Nagpapatuloy kami upang tukuyin ang applet.js
Ngayon ay magpatuloy tayo upang makita ang code ng applet.js at ipaliwanag ang bawat isa sa mga pangungusap na ito:
pagsisimula ng applet.js code
Tingnan natin ang bawat isa sa mga pangungusap ng aming nakaraang code
const Lang = imports.lang; / * Inanyayahan namin ang mga aklatan ng Gtk at Lang, ang mga ito ay pangunahing bahagi ng anumang aplikasyon ng GNOME, pinapayagan kaming lumikha ng mga bintana, widget at maiugnay ang mga ito. * / Const Applet = imports.ui.applet; / * Inanyayahan namin ang library ng Applet na nagpapahintulot sa amin na lumikha ng isang applet para sa Cinnamon at Gnome at sa parehong oras ay binibigyan kami ng mga katangian at pag-andar nito. * / Const GLib = imports.gi.GLib; / * Ang GLib ay isang library ng helper, pinapayagan kaming gumawa ng mga bagay sa GNOME, halimbawa sabihin kung saan ang hellognome.html file ay, ito ang library na namamahala sa mga signal. * / Const Gettext = imports.gettext.domain ('kanela -applets '); const _ = Gettext.gettext; // Gettext library na nagbibigay-daan sa amin upang mai-import ang mga katangian ng desktop ng Cinnamon. const PopupMenu = imports.ui.popupMenu; / * Ang PopupMenu ay isang silid-aklatan upang magamit ang menu manager, pinapayagan kaming tawagan ang popup-menu widget na karaniwang ginagamit sa mga applet. * / Function MyApplet (orientation) {this._init (orientation); }
Ang tagapagbuo ng aming applet ay tinukoy sa ibaba, tingnan natin ang aming Klase o Klase:
Nagpapatuloy kami sa kahulugan ng bawat isa sa mga pangungusap
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Tinutukoy namin ang aming Class o Class _init: function (orientation) {Applet.IconApplet.prototype._init.call (ito, orientation); / * Itinakda namin ang oryentasyon sa pamamagitan ng Cinnamon. Itinakda namin kung ang panel ng applet ay nasa itaas o sa ibaba (may epekto ito sa orientation ng mga menu ng applet). * / Subukang {// Gumawa ng isang bagay} Makibalita (e) {// Ano ang mangyayari kung may mangyari na isang error } / * Gumagamit kami ng isang pagsubok / catch upang mahuli ang anumang mga error na maaaring mangyari sa aming applet at upang matiyak na nakasulat ang mga ito sa pandaigdigang log ng error. Sa ganitong paraan, kung may mali, maaari mong makita ang error sa Naghahanap ng Salamin: Pindutin ang Alt F2, i-type ang "lg" at mag-click sa tab na "mga error". * / This.menuManager = bagong PopupMenu.PopupMenuManager (ito); // Lumikha ng popup-menu at itakda ang menu manager this.menu = bagong Applet.AppletPopupMenu (ito, orientation); // lumilikha kami ng isang menu. this.menuManager.addMenu (this.menu); // Idinagdag namin ang menu sa popup-menu. this.makeMenu (); // menuitem makeMenu, lumilikha kami ng isang menuitem na tinatawag na makeMenu. ito. buildContextMenu (); // buildContextMenu, gumawa kami ng isang menuitem na tinatawag na buildContextMenu. this.set_applet_icon_name ("folder"); / * Lumilikha kami ng applet, ang kasong ito ay natatangi, ang napiling icon ay ang folder o folder, maaari rin kaming magtaguyod ng isang text applet kung nais namin. * /
Bilang isang halimbawa baguhin ang pangalan ng "folder" sa "terminal", "docky" upang magtaguyod ng mga bagong pangalan tingnan ang pangalan ng mga icon ng Gnome o Cinnamon o anumang iba pang tema ng icon, pumunta sa address.
/usr/share/icons
this.set_applet_tooltip (_ ("Mag-click dito upang pumatay ng isang window")); // Catch upang mahuli ang anumang mga error na maaaring mangyari sa aming applet. mahuli (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (bagong PopupMenu.PopupMenuItem ("Mensahe sa Pagsubok", {reaktibo: totoo})); }, / * Tinutukoy namin ang pangalan ng makeMenu menuitem at mga katangian nito. Sa kasong ito, ang tatak ay Mensahe ng Pagsubok ". Tutukuyin namin ang {reaktibo: totoo} Itinatag namin na ang background ng menuitem ay magbabago kapag ang pointer ay dumaan sa menuitem sa pamamagitan ng totoo kung ito ay hindi totoo ang kabaligtaran ang nangyari. () {this.menu .addMenuItem (bagong PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Tinukoy namin ang pangalan ng makeMenu menuitem at mga katangian nito. Sa kasong ito ang label ay "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Signal emitted by the applet, to call the popup-menu function main (metadata, orientation) {let myApplet = new MyApplet (orientation); return myApplet;} / * Panghuli, kailangan lang naming magdagdag ng isang "pangunahing" function, na malamang na pareho sa bawat applet, lumilikha ito ng isang halimbawa ng aming applet at ibabalik ito sa Cinnamon. * / // Isara ang pagbalik ng loop myApplet;
Nagpapatuloy kami upang tukuyin ang metadata.json
"huling na-edit": "1331990905", // Huling edisyon. "description": "Mag-click sa applet upang maipakita ang isang pasadyang tinukoy na menu ng gtk", // Paglalarawan ng applet. "icon": "docky", // Mga icon na ginamit para sa paglalarawan ng applet. Bilang isang halimbawa palitan ang pangalan ng "docky" sa "terminal", "folder". "uuid": "black" // Folder kung saan kasama ang aming metadata.json file na "pangalan": "Pasadyang gtk menu" // Pangalan ng applet.
Tandaan: Upang magtakda ng mga bagong pangalan tingnan ang pangalan ng mga icon ng Gnome o Cinnamon o anumang iba pang tema ng icon, pumunta sa address ng mga file system.
/usr/share/icons
Larawan ng nilikha na Applet
Ang Qt, Gtk, Vala at iba pang mga wikang ginamit upang lumikha ng isang applet para sa Cinnamon o Gnome
Tingnan natin ang lokasyon ng aming applet para sa Cinnamon
Ang lokasyon ng aming applet ay ibinibigay sa mga sumusunod na address:
/.local/share/cinnamon/applets
o en
/usr/share/cinnamon/applets
Komposisyon ng aming applet
Nagpapatuloy kami upang tukuyin ang applet.js
Simula ng applet.js code
Pagtatapos ng applet.js
Ngayon ay magpatuloy tayong makita ang applet.js code at ipaliwanag ang mga pahayag nito.
Ang code na nakasulat ay halos kapareho ng nakaraang halimbawa na nakasulat sa Javascript.
Ang signal lamang ang nabago, na tatawag sa aming auto-executable.
on_applet_clicked: function (event) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
Ang aming awtomatikong naisasagawa ay maaaring nakasulat sa Qt, Gtk, Gtkmm, wxWidget, Vala, atbp. mga wikang maaaring malikha ng self-executable. Ang aming auto-executable ay tinatawag na Menu at nasa folder ito ng Qtmenu.
Maaari din naming gamitin ang iba pang mga wika sa pagprograma na may mga bindings para sa Gtk tulad ng kaso ng PyGTK, Ruby Gtk, Perl Gtk, atbp. na maaaring magamit gamit ang isang script upang maipatupad ang code na nakasulat sa mga wikang iyon. Ang prinsipyo ay palaging pareho upang tumawag sa mga programa, lumikha ng popup-menu at popup-window ayon sa aming mga pangangailangan.
Tingnan natin ang code ng aming auto-executable na nakasulat sa Qt
Nagpapatuloy kami upang tukuyin ang metadata.json
Ang code ay nakasulat sa parehong paraan tulad ng nakaraang halimbawa
Ang imahe ng applet ay nilikha kasama ang Qt
Ang imahe ng Applet nilikha gamit ang Gtk 3.10
Iniwan ko sa iyo ang isang maliit na halimbawa ng isang applet na gumagamit ng isang maipapatupad na nakasulat sa Gtk, sa kasong ito kinukuha namin ang myGtkMenu menu na ginamit sa OpenBox.
Ito ay isang menu na nagpapatupad ng sarili.
I-download ang tutorial at mga halimbawa
Kagiliw-giliw na Artikulo ...
Salamat . Aking ay na natutunan namin ng kaunti araw-araw.
Napakahusay, gusto ko ito, palagi kong nais na malaman kung paano ginawa ang mga ganitong uri ng applet
Isang maliit na pagwawasto. Ang Gettext ay walang tukoy sa Cinnamon tulad ng sinasabi nito sa artikulo, ito ay isang silid-aklatan na ginagawang posible ang mga awtomatikong pagsasalin at mula sa mga template.
Napakahusay ng tutorial at lahat ng iyon ngunit ang mahalagang bagay na hindi mo inilagay: link sa wallpaper?
I-download ang mga wallpaper ng Linux Mint 16 Petra.
Ang pakete ay tinatawag na mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
Napakainteresyong artikulo. Ang totoo ay palagi kong naisip kung paano nilikha ang mga applet na ito. Marahil ay hinihimok ako na lumikha ng isang mini-player applet para sa MPD o katulad na bagay.
Salamat sa pagbabahagi!
Mahusay, inaalam ko lang kung paano baguhin ang cinnamon nm-applet (network manager), upang magbago ang kulay kapag wala akong access sa internet, (mayroon akong wifi card), at makakatulong ito sa akin na mai-orient ang aking sarili konti.
Well doon Marian, hindi ko alam na nag-post ka dito. Pagbati.
Habang naglalakad ka, Matute… .. Palagi akong naglalakad sa mga bahaging ito. Cheers
Magandang artikulo
ang file na hindi nahanap ay na-deactivate dahil sa paglabag sa copyright.
Ang ibig kong sabihin ay kung mayroon ka doon, maaari mo ba itong i-upload muli ???. Mangyaring.
Salamat.