Ons gaan 'n eenvoudige applet vir Kaneel. Om mee te begin, moet ons dit weet Kaneel bied verskillende soorte applets aan:
- TextApplet (wys 'n etiket op die paneel)
- IconApplet (wys 'n ikoon op die paneel)
- TextIconApplet (wat beide 'n ikoon en 'n etiket op die paneel aandui)
- applet (vir hardcore-ontwikkelaars wat 'n leë blokkie vertoon wat u self kan invul)
In hierdie handleiding wil ons eenvoudig 'n ikoon op die paneel vertoon, dus sal ons 'n "IconApplet" gebruik. Om ons applet te kan programmeer na Kaneel of Kabouter ons moet 'n mate van programmering in Javascript ken en ken
Ligging van ons kode.
Laat ons eers die ligging van ons lêer sien. Die ligging van ons applet word op die volgende adresse gegee:
/.local/share/cinnamon/applets
o en /usr/share/cinnamon/applets
Lêers waaruit ons Applet bestaan.
Ons gaan voort om applet.js te definieer
Kom ons gaan voort om die kode van te sien applet.js en verduidelik elkeen van die sinne:
applet.js-kode begin
Kom ons kyk na die sinne in ons vorige kode
const Lang = invoere.lang; / * Ons roep die Gtk- en Lang-biblioteke op, dit is 'n basiese onderdeel van elke GNOME-toepassing, hulle laat ons toe om vensters, widgets te skep en dit te koppel. * / Const Applet = import.ui.applet; / * Ons beroep ons op die Applet-biblioteek wat ons toelaat om 'n applet vir Cinnamon en Gnome te skep en terselfdertyd sy eienskappe en funksies gee. * / Const GLib = import.gi.GLib; / * GLib is 'n hulpbiblioteek, dit stel ons in staat om dinge in GNOME te doen, byvoorbeeld sê waar die hellognome.html-lêer is, dit is die biblioteek wat die seine beheer. * / Const Gettext = import.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Gettext-biblioteek waarmee ons ons eie eienskappe vir die Cinnamon-lessenaar kan invoer. const PopupMenu = import.ui.popupMenu; / * PopupMenu is 'n biblioteek om die menu-bestuurder te gebruik. Dit laat ons toe om die pop-up-menu-widget op te roep wat gewoonlik in applets gebruik word. * / Funksie MyApplet (oriëntasie) {this._init (oriëntasie); }
Die konstrukteur van ons applet word hieronder gedefinieër. Kom ons kyk na ons klas of klas:
Ons gaan voort met die definisie van elk van die sinne
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Ons definieer ons Klas of Klas _init: funksie (oriëntasie) {Applet.IconApplet.prototype._init.call (hierdie, oriëntasie); / * Ons stel die oriëntasie deur Kaneel. Ons stel in of die appletpaneel bo of onder is (dit het 'n invloed op die oriëntasie van die applet-menu's). * / Probeer {// Doen iets} Vang (e) {// Wat gebeur as 'n fout voorkom} / * Ons gebruik 'n probeer / vangs om enige foute wat in ons applet mag voorkom, op te vang en om seker te maak dat dit in die globale foutlogboek geskryf word. Op hierdie manier, as iets verkeerd gaan, kan u die fout in Look Glass sien: Druk Alt F2, tik "lg" en klik op die "foute" -oortjie. * / This.menuManager = new PopupMenu.PopupMenuManager (this) ; // Maak die pop-upmenu en stel die menu-bestuurder this.menu = new Applet.AppletPopupMenu (dit, oriëntasie); // ons skep 'n spyskaart. this.menuManager.addMenu (this.menu); // Ons voeg die menu by die pop-upmenu. this.makeMenu (); // menuitem makeMenu, ons skep 'n menuitem genaamd makeMenu. this.buildContextMenu (); // buildContextMenu, ons skep 'n menupunt genaamd buildContextMenu. this.set_applet_icon_name ("map"); / * Ons skep die applet, hierdie saak is uniek, die gekose ikoon is die map of map, ons kan ook 'n teks-applet opstel as ons wil. * /
Verander byvoorbeeld die naam van "map" in "terminal", "docky" om nuwe name te vestig, sien die naam van die Gnome- of Cinnamon-ikone of enige ander ikoon-tema, gaan in die adres.
/usr/share/icons
this.set_applet_tooltip (_ ("Klik hier om 'n venster dood te maak")); // Vang om foute wat in ons applet mag voorkom, op te vang. vang (e) {global.logError (e); } makeMenu: funksie () {this.menu.addMenuItem (nuwe PopupMenu.PopupMenuItem ("Toetsboodskap", {reaktief: waar})); }, / * Ons definieer die naam van die menu menu makeMenu en die kenmerke daarvan. In hierdie geval is die etiket 'Test Message'. Ons definieer {reaktief: waar} Ons stel vas dat die agtergrond van die menuitem sal verander wanneer die wyser deur die menuitem gaan deur waar as dit vals is, die teenoorgestelde gebeur. .addMenuItem (nuwe PopupMenu.PopupMenuItem ("show", {reaktief: waar}));}, // Ons definieer die naam van die menu menu makeMenu en die eienskappe daarvan. In hierdie geval is die etiket "show". on_applet_clicked: function (event) {this.menu.toggle ();} // Signaal wat deur die applet uitgestuur word, om die pop-up-funksie hoof (metadata, oriëntasie) te noem {laat myApplet = nuwe MyApplet (oriëntasie); stuur myApplet terug;} / * Ten slotte , moet ons net 'n "hoof" -funksie byvoeg, wat waarskynlik in elke applet dieselfde sal wees, dit skep 'n instansie van ons applet en stuur dit terug na Kaneel. * / // Sluit die lus terug myApplet;
Ons gaan voort om metadata.json te definieer
"laas bewerk": "1331990905", // Laaste uitgawe. "beskrywing": "Klik op die applet om 'n persoonlike persoonlik gedefinieerde gtk-menu te wys", // Appletbeskrywing. "icon": "docky", // Ikone wat gebruik word vir die beskrywing van die applet. Verander as voorbeeld die naam van "docky" na "terminal", "folder". "uuid": "swart" // Map waarin ons metadata.json-lêer ingesluit is "name": "Custom gtk menu" // Applet name.
Let wel: Om nuwe name in te stel, sien die naam van die Gnome- of Cinnamon-ikone of enige ander ikoon-tema, gaan na die lêerstelselsadres.
/usr/share/icons
Beeld van die applet geskep
Qt, Gtk, Vala en ander tale word gebruik om 'n applet vir kaneel of kabouter te skep
Laat ons die ligging van ons applet vir kaneel sien
Die ligging van ons applet word op die volgende adresse gegee:
/.local/share/cinnamon/applets
o en
/usr/share/cinnamon/applets
Samestelling van ons applet
Ons gaan voort om applet.js te definieer
Begin die applet.js-kode
Einde van applet.js
Laat ons nou die applet.js-kode sien en die verklarings daarvan verduidelik.
Die geskrewe kode is feitlik dieselfde as die vorige voorbeeld wat met Javascript geskryf is.
Slegs die sein is verander, wat ons outo-uitvoerbare program sal noem.
on_applet_clicked: funksie (gebeurtenis) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
Ons outomatiese uitvoerbare program kan geskryf word met Qt, Gtk, Gtkmm, wxWidget, Vala, ens. tale waarmee selfuitvoerbare programme geskep kan word. Ons outomatiese uitvoerbare naam word Menu genoem en dit is in die Qtmenu-lêergids.
Ons kan ook ander programmeertale gebruik wat bindings vir Gtk het, soos PyGTK, Ruby Gtk, Perl Gtk, ens. wat gebruik kan word met behulp van 'n skrif om die kode wat in daardie tale geskryf is, uit te voer. Die beginsel is altyd dieselfde om programme op te roep, pop-up menu en pop-upvenster te skep volgens ons behoeftes.
Laat ons die kode van ons outomatiese uitvoerbare program met Qt sien
Ons gaan voort om metadata.json te definieer
Die kode word op dieselfde manier as die vorige voorbeeld geskryf
Beeld van die applet geskep met Qt
Beeld van die applet geskep met Gtk 3.10
Hier is 'n klein voorbeeld van 'n applet wat gebruik maak van 'n uitvoerbare program wat in Gtk geskryf is. In hierdie geval neem ons die menu myGtkMenu wat in OpenBox gebruik word.
Dit is 'n selfuitvoerende spyskaart.
Laai die handleiding en voorbeelde af
12 kommentaar, los joune
Interessante artikel ...
Dankie . My is dat ons elke dag 'n bietjie leer.
Baie goed, ek is mal daaroor, ek wou nog altyd weet hoe hierdie soort appletjies gemaak word
'N Klein regstelling. Gettext is niks spesifieks vir kaneel soos dit in die artikel staan nie, dit is 'n biblioteek wat outomatiese vertalings moontlik maak en vanuit templates.
Baie goed die tutoriaal en dit alles, maar die belangrikste is dat u dit nie gestel het nie: skakel na die muurpapier?
Laai die Linux Mint 16 Petra-agtergronde af.
Die pakket heet mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
Baie interessante artikel. Die waarheid is dat ek nog altyd gewonder het hoe hierdie applets gemaak is. Miskien word ek aangemoedig om 'n minispeler-applet vir MPD of iets soortgelyks te skep.
Dankie vir die deel!
Uitstekend, ek is net besig om uit te vind hoe ek die kaneel se nm-applet (netwerkbestuurder) kan verander, sodat dit van kleur verander as ek nie toegang tot internet het nie (ek het 'n Wi-Fi-kaart), en dit help my om my 'n bietjie te oriënteer.
Wel daar Marian, ek het nie geweet jy plaas hier nie. Groete.
Hoe gaan dit, Matute ... ek loop altyd deur hierdie dele. Cheers
Goeie artikel.
die lêer kon nie gevind word nie, is gedeaktiveer weens kopieregskending.
Wat ek bedoel, is dat as u dit daar het, u dit weer kan oplaai ???.
Dankie.