Stvorit ćemo jednostavan aplet za cimet. Za početak moramo to znati cimet nudi različite vrste apleta:
- TextApplet (pokazivanje naljepnice na ploči)
- IconApplet (prikazuje ikonu na panelu)
- TextIconApplet (naznačujući i ikonu i naljepnicu na ploči)
- Aplet (za hardcore programere koji pokazuju prazno polje možete sami popuniti)
U ovom uputstvu jednostavno želimo prikazati ikonu na panelu, pa ćemo koristiti "IconApplet". Da bismo programirali naš aplet na Cimet ili Gnome moramo znati i znati nešto o programiranju Javascripta
Lokacija našeg koda.
Prvo, da vidimo lokaciju naše datoteke. Lokacija našeg apleta navedena je na sljedećim adresama:
/.local/share/cinnamon/applets
ili u /usr/share/cinnamon/applets
Datoteke koje čine naš Aplet.
Nastavljamo s definiranjem applet.js
Sada nastavimo da vidimo kod applet.js i objasnite svaku njegovu rečenicu:
početak applet.js koda
Pogledajmo svaku od rečenica našeg prethodnog koda
const Lang = import.lang; / * Pozivamo se na biblioteke Gtk i Lang, one su osnovni dio svake GNOME aplikacije, omogućuju nam stvaranje prozora, widgeta i njihovo povezivanje. * / Const Applet = import.ui.applet; / * Pozivamo knjižnicu Applet koja nam omogućuje stvaranje apleta za Cinnamon i Gnome i istovremeno nam daje njegova svojstva i funkcije. * / Const GLib = import.gi.GLib; / * GLib je pomoćna biblioteka, omogućava nam da radimo stvari u GNOME-u, na primjer recimo gdje je datoteka hellognome.html, to je biblioteka zadužena za signale. * / Const Gettext = import.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Gettext biblioteka koja nam omogućava uvoz karakteristika radne površine Cinnamon. const PopupMenu = import.ui.popupMenu; / * PopupMenu je biblioteka koja koristi upravitelj menija, omogućava nam pozivanje widgeta skočnog menija koji se obično koristi u apletima. * / Funkcija MyApplet (orijentacija) {this._init (orijentacija); }
Konstruktor našeg apleta definiran je u nastavku, pogledajmo našu klasu ili klasu:
Nastavljamo s definicijom svake rečenice
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Definiramo našu Klasu ili Klasu _init: function (orijentacija) {Applet.IconApplet.prototype._init.call (ovo, orijentacija); / * Orijentaciju smo postavili kroz cimet. Postavljamo da li je ploča apleta na vrhu ili na dnu (to utječe na orijentaciju izbornika apleta). * / Probajte {// Učinite nešto} Uhvatite (e) {// Što se događa ako se dogodi greška} / * Koristimo try / catch kako bismo uhvatili sve greške koje se mogu pojaviti u našem apletu i kako bismo bili sigurni da su zapisane u globalni dnevnik pogrešaka. Na ovaj način, ako nešto pođe po zlu, možete vidjeti grešku u Looking Glassu: Pritisnite Alt F2, upišite "lg" i kliknite karticu "greške". * / This.menuManager = novi PopupMenu.PopupMenuManager (ovaj) ; // Kreirajte skočni izbornik i postavite upravitelja izbornika this.menu = new Applet.AppletPopupMenu (ovo, orijentacija); // kreiramo meni. this.menuManager.addMenu (this.menu); // Dodajemo izbornik u skočni izbornik. this.makeMenu (); // menuitem makeMenu, kreiramo element menija pod nazivom makeMenu. this.buildContextMenu (); // buildContextMenu, kreiramo stavku menija nazvanu buildContextMenu. this.set_applet_icon_name ("folder"); / * Stvaramo aplet, ovaj je slučaj jedinstven, odabrana ikona je mapa ili mapa, a također možemo uspostaviti i aplet za tekst ako želimo. * /
Kao primjer promijenite ime "mape" u "terminal", "docky" da biste uspostavili nova imena, pogledajte ime ikona Gnome ili Cinnamon ili bilo koje druge teme ikona, idite na adresu.
/usr/share/icons
this.set_applet_tooltip (_ ("Kliknite ovdje da ubijete prozor")); // Uhvatite kako biste uhvatili sve greške koje se mogu pojaviti u našem apletu. catch (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (novi PopupMenu.PopupMenuItem ("Test poruka", {reaktivni: tačno})); }, / * Definiramo naziv stavke izbornika makeMenu i njegove karakteristike. U ovom slučaju oznaka je Test Message ". Definirat ćemo {reactive: true} Ustanovit ćemo da će se pozadina stavke menija promijeniti kada pokazivač pređe preko stavke menija kroz true ako je netačno događa se upravo suprotno. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Definiramo ime stavke menija makeMenu i njegove karakteristike. U ovom slučaju oznaka je "show". on_applet_clicked: function (event) {this.menu.toggle ();} // Signal koji emitira aplet za pozivanje glavne funkcije skočnog menija (metapodaci, orijentacija) {let myApplet = novi MyApplet (orijentacija); return myApplet;} / * Konačno , samo moramo dodati "glavnu" funkciju, koja će vjerovatno biti ista u svakom apletu, instanca našeg apleta se kreira i vraća u Cinnamon. * / // Zatvaramo petlju return myApplet;
Nastavljamo s definiranjem metadata.json
"last-edited": "1331990905", // Posljednje izdanje. "description": "Kliknite na aplet za prikaz prilagođenog osobno definiranog gtk izbornika", // Opis apleta. "icon": "docky", // Ikone korištene za opis apleta. Kao primjer promijenite ime "docky" u "terminal", "folder". "uuid": "black" // Mapa u koju je uključena naša metadata.json datoteka "name": "Prilagođeni gtk meni" // Naziv apleta.
Napomena: Da biste postavili nova imena, pogledajte naziv ikona Gnome ili Cinnamon ili bilo koje druge teme ikona, idite na adresu sistema datoteka.
/usr/share/icons
Slika kreiranog Apleta
Qt, Gtk, Vala i drugi jezici korišteni za stvaranje apleta za Cimet ili Gnome
Pogledajmo mjesto našeg apleta za cimet
Lokacija našeg apleta navedena je na sljedećim adresama:
/.local/share/cinnamon/applets
ili u
/usr/share/cinnamon/applets
Sastav našeg apleta
Nastavljamo s definiranjem applet.js
Pokretanje koda applet.js
Kraj applet.js
Sada nastavimo s prikazom koda applet.js i objasnimo njegove izjave.
Napisani kod praktično je isti kao i prethodni primjer napisan na Javascriptu.
Promijenjen je samo signal koji će nazvati našu automatski izvršnu.
on_applet_clicked: funkcija (događaj) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
Naša automatski izvršna datoteka može se pisati pomoću Qt, Gtk, Gtkmm, wxWidget, Vala itd. jezici pomoću kojih se mogu izvršiti samoizvršni programi. Naša automatski izvršna datoteka zove se Menu i nalazi se u folderu Qtmenu.
Možemo koristiti i druge programske jezike koji imaju vezove za Gtk, kao što je slučaj PyGTK, Ruby Gtk, Perl Gtk itd. koji se može koristiti pomoću skripte za izvršavanje koda napisanog na tim jezicima. Princip je uvijek isti pozivati programe, kreirati skočni meni i skočni prozor prema našim potrebama.
Pogledajmo kôd naše automatski izvršne datoteke napisan sa Qt
Nastavljamo s definiranjem metadata.json
Kôd je napisan na isti način kao i prethodni primjer
Slika apleta kreirana pomoću Qt
Slika Apleta kreirana sa Gtk 3.10
Evo malog primjera apleta koji koristi izvršnu datoteku napisanu u Gtk, u ovom slučaju uzimamo meni myGtkMenu koji se koristi u OpenBoxu.
To je samoizvršni meni.
Zanimljiv članak ...
Hvala ti . Moja je stvar da svakodnevno pomalo učimo.
Vrlo dobro, sviđa mi se, uvijek sam željela znati kako su napravljene ove vrste apleta
Mala korekcija. Gettext nije ništa specifično za Cinnamon, kao što kaže u članku, to je biblioteka koja omogućava automatske prijevode i sa predložaka.
Vrlo dobar vodič i sve to, ali najvažnija stvar koju niste stavili: veza do pozadine?
Preuzmite Linux Mint 16 Petra pozadine.
Paket se naziva mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
Vrlo zanimljiv članak. Istina je da sam se uvijek pitao kako su stvoreni ti apleti. Možda me ohrabruje da napravim program za mini-player za MPD ili nešto slično.
Hvala na podelu!
Izvrsno, samo smišljam kako da modifikujem cimet nm-aplet (mrežni upravitelj), tako da mijenja boju kada nemam pristup Internetu, (imam wifi karticu), a ovo mi pomaže da se malo orijentišem.
Pa, Marijane, nisam znao da ovdje postavljaš poruke. Pozdrav.
Dok hodaš, Matute ... .. Uvijek hodam po ovim dijelovima. Živjeli
Dobar članak.
datoteka nije pronađena deaktivirana je zbog kršenja autorskih prava.
Mislim na to da ako ga imate tamo, možete li ga ponovo poslati ???. Molim vas.
hvala ti.