Stvorit ćemo jednostavan aplet za Cimet. Za početak moramo to znati Cimet nudi različite vrste apleta:
- Tekstualni aplet (pokazivanje naljepnice na ploči)
- IkonaAplet (prikazuje ikonu na ploči)
- TextIconApplet (naznačujući i ikonu i naljepnicu na ploči)
- Aplet (za hardcore programere koji pokazuju prazan okvir koji možete sami popuniti)
U ovom uputstvu jednostavno želimo prikazati ikonu na ploči, pa ćemo koristiti "IconApplet". Kako bismo programirali naš aplet na Cimet ili Gnome moramo znati i znati nešto o programiranju Javascripta
Mjesto našeg koda.
Prvo, pogledajmo mjesto 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 vidjeti kôd applet.js i objasnite svaku njegovu rečenicu:
applet.js kôd start
Pogledajmo svaku od rečenica prethodnog koda
const Lang = import.lang; / * Pozivamo se na knjižnice Gtk i Lang, one su osnovni dio bilo koje GNOME aplikacije, omogućuju nam izradu prozora, widgeta i njihovo povezivanje. * / Const Applet = import.ui.applet; / * Pozivamo knjižnicu Applet koja nam omogućuje stvaranje apleta za Cinnamon i Gnome te nam istovremeno daje njegova svojstva i funkcije. * / Const GLib = import.gi.GLib; / * GLib je knjižnica pomoći, omogućuje nam rad u GNOME-u, na primjer recimo gdje je datoteka hellognome.html, to je knjižnica zadužena za signale. * / Const Gettext = import.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Gettext biblioteka koja nam omogućuje uvoz karakteristika radne površine Cinnamon. const PopupMenu = import.ui.popupMenu; / * PopupMenu je knjižnica koja koristi upravitelj izbornika, omogućava nam pozivanje widgeta skočnog izbornika koji se obično koristi u apletima. * / Funkcija MyApplet (orijentacija) {this._init (orijentacija); }
Dalje definiramo konstruktor našeg apleta, pogledajmo našu klasu ili klasu:
Nastavljamo s definicijom svake od rečenica
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Definiramo našu Klasu ili Klasu _init: funkcija (orijentacija) {Applet.IconApplet.prototype._init.call (ovo, orijentacija); / * Orijentaciju smo postavili kroz Cimet. Postavljamo je li ploča apleta na vrhu ili na dnu (to utječe na orijentaciju izbornika apleta). * / Pokušajte {// Učinite nešto} Uhvatite (e) {// Što se događa ako se dogodi pogreška} / * Koristimo try / catch kako bismo uhvatili sve pogreške koje se mogu pojaviti u našem apletu i kako bismo bili sigurni da je zapisana u globalni dnevnik pogrešaka. Na ovaj način, ako nešto pođe po zlu, možete vidjeti pogrešku u Looking Glass: Pritisnite Alt F2, upišite "lg" i kliknite karticu "pogreške". * / This.menuManager = novi PopupMenu.PopupMenuManager (ovaj) ; // Stvorite skočni izbornik i postavite upravitelja izbornika this.menu = new Applet.AppletPopupMenu (ovo, orijentacija); // kreiramo izbornik. this.menuManager.addMenu (this.menu); // Dodajemo izbornik u skočni izbornik. this.makeMenu (); // menuitem makeMenu, kreiramo stavku izbornika nazvanu makeMenu. this.buildContextMenu (); // buildContextMenu, kreiramo stavku izbornika nazvanu buildContextMenu. this.set_applet_icon_name ("mapa"); / * Stvaramo aplet, ovaj je slučaj jedinstven, odabrana ikona je mapa ili mapa, ako želimo, možemo uspostaviti i aplet za tekst.
Kao primjer promijenite ime "mape" u "terminal", "docky" da biste uspostavili nova imena, pogledajte naziv 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 pogreš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 {reaktivan: true} Utvrđujemo da će se pozadina stavke izbornika promijeniti kada pokazivač prijeđe preko stavke izbornika kroz vrijednost true ako se dogodi suprotno. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Definiramo naziv stavke izbornika 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 funkcije skočnog izbornika glavnom (metapodaci, orijentacija) {let myApplet = new MyApplet (orijentacija); return myApplet;} / * Napokon , moramo dodati "glavnu" funkciju, koja će vjerojatno biti ista u svakom apletu, instanca našeg apleta kreira se 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 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 izbornik" // Naziv apleta.
Napomena: Da biste postavili nova imena, pogledajte naziv ikona Gnome ili Cinnamon ili bilo koje druge teme ikona, idite na adresu datotečnog sustava.
/usr/share/icons
Slika stvorenog 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
Ajmo sada vidjeti applet.js kôd i objasniti njegove izjave.
Napisani kod praktički je isti kao i prethodni primjer napisan s Javascriptom.
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 napisati s Qt, Gtk, Gtkmm, wxWidget, Vala itd. jezici pomoću kojih se mogu izvršiti samoizvršni programi. Naša se automatski izvršna datoteka zove Menu i nalazi se u mapi Qtmenu.
Možemo koristiti i druge programske jezike koji imaju veznice 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, stvarati skočni izbornik i skočni prozor prema našim potrebama.
Pogledajmo kôd naše automatski izvršne datoteke napisan s Qt
Nastavljamo s definiranjem metadata.json
Kod je napisan na isti način kao i prethodni primjer
Slika apleta kreirana pomoću Qt
Slika Apleta stvorena s Gtk 3.10
Ostavljam vam mali primjer apleta koji koristi izvršnu datoteku napisanu u Gtk, u ovom slučaju uzimamo izbornik myGtkMenu koji se koristi u OpenBoxu.
To je samoizvršni izbornik.
Zanimljiv članak ...
Hvala vam . Moje je da svakodnevno pomalo učimo.
Vrlo dobro, sviđa mi se, uvijek sam željela znati kako su napravljene ove vrste jabuka
Mala korekcija. Gettext nije ništa specifično za Cinnamon, kao što kaže u članku, to je knjižnica koja omogućuje automatske prijevode i s 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 potiče da stvorim program za mini-player za MPD ili nešto slično.
Hvala za dijeljenje!
Izvrsno, samo smišljam kako izmijeniti nm-aplet za cimet (upravitelj mreže), tako da mijenja boju kada nemam pristup internetu, (imam wifi karticu), a to mi pomaže da se malo orijentiram.
Pa, Marijane, nisam znao da ovdje postavljate poruke. Pozdrav.
Kako si, 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 vam.