Mini vadnica: Ustvarjanje apletov za cimet

Ustvarili bomo preprost programček za Cimet. Za začetek moramo to vedeti Cimet ponuja različne vrste apletov:

  • Besedilni programček (prikaz etikete na plošči)
  • IconApplet (prikaz ikone na plošči)
  • TextIconApplet (označuje ikono in nalepko na plošči)
  • Programček (za trde razvijalce, ki prikazujejo prazno polje, ki ga lahko izpolnite sami)

V tej vadnici želimo preprosto prikazati ikono na plošči, zato bomo uporabili "IconApplet". Da bi naš programček programirali na Cimet ali Gnome moramo vedeti in vedeti nekaj o programiranju Javascript

Lokacija naše kode.

Najprej si oglejmo lokacijo naše datoteke. Lokacija našega programčka je podana na naslednjih naslovih:

/.local/share/cinnamon/applets o en /usr/share/cinnamon/applets

Cimet_Applet

Datoteke, ki sestavljajo naš programček.

Cimet_Applet2

Nadaljujemo z definiranjem applet.js

kodo

applet.js

Zdaj pa nadaljujmo in si oglejte kodo applet.js in razloži vsak njen stavek:

začetek kode applet.js

koda programčka

koda javascripta

Oglejmo si vsak stavek prejšnje kode

const Lang = import.lang; / * Prikličemo knjižnici Gtk in Lang, ki sta osnovni del katere koli aplikacije GNOME, omogočajo nam ustvarjanje oken, gradnikov in njihovo povezovanje. * / Const Applet = import.ui.applet; / * Prikličemo knjižnico Applet, ki nam omogoča, da ustvarimo programček za Cinnamon in Gnome ter nam hkrati damo njegove lastnosti in funkcije. * / Const GLib = import.gi.GLib; / * GLib je knjižnica pomoči, ki nam omogoča, da počnemo stvari v GNOME, na primer recimo, kje je datoteka hellognome.html, je knjižnica, zadolžena za signale. * / Const Gettext = import.gettext.domain ('cimet -applets '); const _ = Gettext.gettext; // Knjižnica Gettext, ki nam omogoča uvoz lastnih lastnosti za namizje Cinnamon. const PopupMenu = import.ui.popupMenu; / * PopupMenu je knjižnica, ki uporablja upravitelja menijev in nam omogoča, da prikličemo pripomoček s pojavnim menijem, ki se običajno uporablja v apletih. * / Funkcija MyApplet (usmeritev) {this._init (usmeritev); }

Konstruktor našega programčka je opredeljen spodaj, poglejmo si naš razred ali razred:

razred gjs

Nadaljujemo z opredelitvijo vsakega od stavkov

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Določimo svoj razred ali razred _init: funkcija (usmeritev) {Applet.IconApplet.prototype._init.call (to, usmeritev); / * Usmeritev smo nastavili skozi cimet. Nastavimo, ali je podokno z apleti zgoraj ali spodaj (to vpliva na usmerjenost menijev apletov). * / Poskusite {// Naredi nekaj} Ujem (e) {// Kaj se zgodi, če pride do napake } / * S poskusom / ulovom ujamemo morebitne napake, ki se lahko pojavijo v našem programčku, in se prepričamo, da so zapisane v globalni dnevnik napak. Tako lahko, če gre kaj narobe, vidite napako v pogledu Glass Glass: pritisnite Alt F2, vnesite "lg" in kliknite zavihek "napake". * / This.menuManager = novo PopupMenu.PopupMenuManager (to); // Ustvari pojavni meni in nastavi upravitelja menijev this.menu = new Applet.AppletPopupMenu (to, usmeritev); // ustvarimo meni. this.menuManager.addMenu (this.menu); // V pojavni meni dodamo meni. this.makeMenu (); // menuitem makeMenu, ustvarimo element menija, imenovan makeMenu. this.buildContextMenu (); // buildContextMenu, ustvarimo element menija, imenovan buildContextMenu. this.set_applet_icon_name ("mapa"); / * Ustvarimo programček, ta primer je edinstven, izbrana ikona je mapa ali mapa, po želji lahko vzpostavimo tudi besedilni programček. * /

Kot primer spremenite ime "mape" v "terminal", "docky" za vzpostavitev novih imen, glejte ime ikon Gnome ali Cinnamon ali katero koli drugo temo ikon, pojdite na naslov.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Kliknite tukaj, da ubijete okno")); // Ujemite, da ujamete morebitne napake, ki se lahko pojavijo v našem programčku. catch (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Test Message", {reactive: true})); }, / * Določimo ime elementa menija makeMenu in njegove značilnosti. V tem primeru je oznaka Test Message ". Določili bomo {reaktivno: true} Ugotavljamo, da se bo ozadje menuitema spremenilo, ko kazalec preide čez menuitem skozi true, če je false, se zgodi nasprotno. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Določimo ime elementa menija makeMenu in njegove značilnosti. V tem primeru je oznaka "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Signal, ki ga odda programček, da pokliče funkcijo pojavnega menija main (metapodatki, usmeritev) {let myApplet = new MyApplet (usmerjenost); return myApplet;} / * Končno moramo dodati še funkcijo "main", ki bo verjetno enaka v vsakem programčku, primerek našega programčka se ustvari in vrne v Cinnamon. * / // Zapremo vrnitev zanke myApplet;

Nadaljujemo z definiranjem metadata.json

LP0ol8b

Posnetek zaslona - 140314 - 21:11:34

"last-edit": "1331990905", // Zadnja izdaja. "description": "Kliknite programček, da se prikaže osebno določen meni gtk", // Opis programčka. "icon": "docky", // Ikone, uporabljene za opis programčka. Kot primer spremenite ime "docky" v "terminal", "folder". "uuid": "black" // Mapa, v katero je vključena naša datoteka metadata.json "name": "Meni gtk po meri" // Ime programčka.

Opomba: Če želite nastaviti nova imena, glejte ime ikon Gnome ali Cinnamon ali katero koli drugo temo ikon, pojdite na naslov datotečnega sistema.

/usr/share/icons

Slika ustvarjenega apleta

  lKxpdkS

Qt, Gtk, Vala in drugi jeziki, ki se uporabljajo za ustvarjanje programčka za cimet ali gnome

Poglejmo, kje je naš aplet za cimet

Lokacija našega programčka je podana na naslednjih naslovih:

/.local/share/cinnamon/applets

o en

/usr/share/cinnamon/applets

nerd

Sestava našega apleta

beta

Nadaljujemo z definiranjem applet.js 

kodo

applet.js

Zagon kode applet.js

Posnetek zaslona - 140314 - 21:30:48

Konec applet.js

Zdaj pa nadaljujmo s prikazom kode applet.js in razložimo njene izjave.

Napisana koda je praktično enaka prejšnjemu primeru, napisanem z Javascriptom.
Spremenjen je bil samo signal, ki bo poklical našo samodejno izvedljivo.

on_applet_clicked: funkcija (dogodek) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }

Našo samodejno izvedljivo datoteko lahko zapišemo s Qt, Gtk, Gtkmm, wxWidget, Vala itd. jeziki, s katerimi je mogoče ustvariti samoizvršljive datoteke. Naša samodejno izvedljiva datoteka se imenuje Menu in je v mapi Qtmenu.

beta

Uporabljamo lahko tudi druge programske jezike, ki imajo vez za Gtk, na primer PyGTK, Ruby Gtk, Perl Gtk itd. ki se lahko uporablja s pomočjo skripta za izvajanje kode, napisane v teh jezikih. Načelo je vedno enako pri klicanju programov, ustvarjanju pojavnega menija in pojavnega okna glede na naše potrebe.

Poglejmo kodo naše samodejno izvedljive datoteke, napisane s Qt

qt

Nadaljujemo z definiranjem metadata.json

LP0ol8b

mongo

Koda je napisana na enak način kot prejšnji primer

Slika apleta, ustvarjena s Qt

kaj

Slika apleta, ustvarjena z Gtk 3.10

Pustim vam majhen primer programčka, ki uporablja izvršljivo datoteko, napisano v Gtk, v tem primeru uporabimo meni myGtkMenu, ki se uporablja v OpenBoxu.

To je samoizvajalni meni.

megtk

Prenesite vadnico in primere


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   aiolija je dejal

    Zanimiv članek ...

    1.    marianogaudix je dejal

      Hvala vam . Moja je ta, da se vsak dan malo naučimo.

  2.   darilo je dejal

    Zelo dobro, všeč mi je, vedno sem želel vedeti, kako so nastali tovrstni apleti

  3.   Angel Araya je dejal

    Majhen popravek. Gettext ni nič posebnega za Cinnamon, kot piše v članku, je knjižnica, ki omogoča samodejne prevode in iz predlog.

  4.   MSX je dejal

    Zelo dobra vadnica in vse to, a pomembna stvar, ki je niste postavili: povezava do ozadja?

    1.    marianogaudix je dejal

      Prenesite ozadja Linux Mint 16 Petra.
      Paket se imenuje mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla je dejal

    Zelo zanimiv članek. Resnica je, da sem se vedno vprašal, kako so nastali ti apleti. Mogoče me spodbuja, da ustvarim programček za mini predvajalnik za MPD ali kaj podobnega.

    Hvala za delitev!

  6.   Matias je dejal

    Odlično, samo ugotavljam, kako spremeniti cimet nm-aplet (upravitelj omrežja), tako da spremeni barvo, ko nimam dostopa do interneta (imam kartico wifi), in to mi pomaga, da se orientiram malo.

  7.   matiasbatero17 je dejal

    No, tam Marian, nisem vedel, da objavljaš tukaj. S spoštovanjem.

    1.    marianogaudix je dejal

      Ko hodiš, Matute ... .. vedno hodim po teh delih. Na zdravje

  8.   lolbimbo je dejal

    Dober članek.

  9.   honovan je dejal

    datoteka ni bila najdena, je bila deaktivirana zaradi kršitve avtorskih pravic.

    Mislim, če ga imate tam, ga lahko znova naložite ???. Prosim.

    Hvala vam.