Mini vodič: Stvaranje apleta za cimet

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

Cinnamon_Applet

Datoteke koje čine naš Aplet.

Cinnamon_Applet2

Nastavljamo s definiranjem applet.js

kod

applet.js

Sada nastavimo da vidimo kod applet.js i objasnite svaku njegovu rečenicu:

početak applet.js koda

kod apleta

javascript kôd

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:

gjs class

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

Z7qwRdp

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

LP0ol8b

Snimka zaslona - 140314 - 21:11:34

"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

 lKxpdkS

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

glupan

Sastav našeg apleta

beta

Nastavljamo s definiranjem applet.js 

kod

applet.js

Pokretanje koda applet.js

Snimka zaslona - 140314 - 21:30:48

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.

beta

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

qt

Nastavljamo s definiranjem metadata.json

LP0ol8b

mongo

Kôd je napisan na isti način kao i prethodni primjer

Slika apleta kreirana pomoću Qt

šta

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.

megtk

Preuzmite vodič i primjere


12 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   aiolia rekao je

    Zanimljiv članak ...

    1.    marianogaudix rekao je

      Hvala ti . Moja je stvar da svakodnevno pomalo učimo.

  2.   Danie rekao je

    Vrlo dobro, sviđa mi se, uvijek sam željela znati kako su napravljene ove vrste apleta

  3.   Angel Araya rekao je

    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.

  4.   MSX rekao je

    Vrlo dobar vodič i sve to, ali najvažnija stvar koju niste stavili: veza do pozadine?

    1.    marianogaudix rekao je

      Preuzmite Linux Mint 16 Petra pozadine.
      Paket se naziva mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla rekao je

    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!

  6.   Matija rekao je

    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.

  7.   matiasbatero17 rekao je

    Pa, Marijane, nisam znao da ovdje postavljaš poruke. Pozdrav.

    1.    marianogaudix rekao je

      Dok hodaš, Matute ... .. Uvijek hodam po ovim dijelovima. Živjeli

  8.   lolbimbo rekao je

    Dobar članak.

  9.   honovan rekao je

    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.