Mini-opetusohjelma: Applien luominen kanelille

Aiomme luoda yksinkertaisen sovelman Kaneli. Aluksi meidän on tiedettävä se Kaneli tarjoaa erityyppisiä sovelmia:

  • Tekstisovelma (näytetään etiketti paneelissa)
  • KuvakeApplet (kuvake näkyy paneelissa)
  • TextIconApplet (osoittaa sekä kuvakkeen että tarran paneelissa)
  • applet (hardcore-kehittäjille, jotka näyttävät tyhjän laatikon, jonka voit täyttää itse)

Tässä opetusohjelmassa haluamme yksinkertaisesti näyttää kuvakkeen paneelissa, joten käytämme "IconApplet". Ohjelmoidaksemme sovelman Kaneli tai Gnome meidän on tiedettävä ja tiedettävä jotain Javascript-ohjelmoinnista

Koodimme sijainti.

Tarkastellaan ensin tiedostomme sijaintia. Sovelmamme sijainti ilmoitetaan seuraavissa osoitteissa:

/.local/share/cinnamon/applets vuonna /usr/share/cinnamon/applets

Cinnamon_Applet

Tiedostot, jotka muodostavat sovelmamme.

Cinnamon Applet2

Määritämme applet.js

koodi

applet.js

Katsotaan nyt nähdäksesi koodin applet.js ja selitä kaikki sen lauseet:

applet.js-koodin alku

sovelmakoodi

javascript-koodi

Katsotaanpa edellisen koodin jokainen lause

const Lang = tuonti.lang; / * Käynnistämme Gtk- ja Lang-kirjastot, ne ovat perusosa kaikista GNOME-sovelluksista, niiden avulla voimme luoda ikkunoita, widgetejä ja linkittää ne. * / Const Applet = imports.ui.applet; / * Käynnistämme Applet-kirjaston, jonka avulla voimme luoda appletin Cinnamonille ja Gnomelle ja antaa samalla sen ominaisuudet ja toiminnot. * / Const GLib = imports.gi.GLib; / * GLib on ohjekirjasto, jonka avulla voimme tehdä asioita GNOME: ssa, esimerkiksi sanoa missä hellognome.html tiedosto on, se on signaaleista vastaava kirjasto. * / Const Gettext = import.gettext.domain ('kaneli -sovellukset '); const _ = Gettext.gettext; // Gettext-kirjasto, jonka avulla voimme tuoda omat ominaisuutemme Cinnamon-työpöydälle. const PopupMenu = tuonti.ui.popupMenu; / * PopupMenu on kirjasto, joka käyttää valikonhallintaa, sen avulla voimme kutsua ponnahdusikkunoiden widgetin, jota yleensä käytetään sovelmissa. * / Toiminto MyApplet (suunta) {this._init (suunta); }

Sovelluksemme rakentaja on määritelty alla, katsotaanpa luokkaa tai luokkaa:

gjs-luokka

Jatkamme jokaisen lauseen määrittelyä

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Määritämme luokan tai Class _init: -toiminnon (suunta) {Applet.IconApplet.prototype._init.call (tämä, suunta); / * Asetamme suunnan kanelin läpi. Määritämme, onko sovelmapaneeli ylä- tai alaosassa (tällä on vaikutusta sovelmavalikoiden suuntaan). * / Kokeile {// Tee jotain} Catch (e) {// Mitä tapahtuu, jos tapahtuu virhe } / * Käytämme try / catch-toimintoa saadaksemme kaikki applettissamme mahdollisesti esiintyvät virheet ja varmistaaksemme, että ne on kirjoitettu yleiseen virhelokiin. Tällä tavalla, jos jokin menee pieleen, näet virhe Glassissa: Paina Alt F2, kirjoita "lg" ja napsauta "virheet" -välilehteä. * / This.menuManager = new PopupMenu.PopupMenuManager (this); // Luo ponnahdusvalikko ja aseta valikonhallinta this.menu = new Applet.AppletPopupMenu (tämä, suunta); // luomme valikon. this.menuManager.addMenu (tämä.valikko); // Lisätään valikko ponnahdusvalikkoon. this.makeMenu (); // menuitem makeMenu, luomme valikon nimeltä makeMenu. this.buildContextMenu (); // buildContextMenu, luomme valikon nimeltä buildContextMenu. this.set_applet_icon_name ("kansio"); / * Luomme sovelman, tämä tapaus on ainutlaatuinen, valittu kuvake on kansio tai kansio, voimme myös perustaa tekstisovelluksen, jos haluamme.

Vaihda esimerkiksi "kansion" nimeksi "pääte", "telakoitava" uusien nimien luomiseksi, katso Gnome- tai Cinnamon-kuvakkeiden tai minkä tahansa muun kuvaketeeman nimi, siirry osoitteeseen.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Napsauta tätä tappaa ikkuna")); // Ota kiinni saadaksesi mahdolliset virheet, joita sovelluksessa voi esiintyä. saalis (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (uusi PopupMenu.PopupMenuItem ("Testiviesti", {reaktiivinen: tosi})); }, / * Määritämme makeMenu-valikkonimen nimen ja sen ominaisuudet. Tällöin tunniste on Test Message ". Määritämme {reaktiivinen: tosi} Varmistamme, että valikon tausta muuttuu, kun osoitin kulkee menuitemin yli true, jos se on väärä, päinvastoin tapahtuu. () {this.menu .addMenuItem (uusi PopupMenu.PopupMenuItem ("näytä", {reaktiivinen: tosi})));}, // Määritämme makeMenu-valikkonimen nimen ja sen ominaisuudet. Tällöin tunniste on "show" ". on_applet_clicked: funktio (tapahtuma) {this.menu.toggle ();} // Appletin lähettämä signaali, jotta ponnahdusvalikkotoiminto voidaan kutsua pääkäyttäjäksi (metatiedot, suunta) {let myApplet = new MyApplet (suunta); return myApplet;} / * Lopuksi meidän on vain lisättävä "main" -toiminto, joka on todennäköisesti sama kussakin sovelmassa, luodaan sovelmamme ilmentymä ja palautetaan kaneliin. * / // Suljemme silmukan palautuksen myApplet;

Määritämme metadata.json

LP0ol8b

Näyttökuva - 140314 - 21:11:34

"viimeksi muokattu": "1331990905", // Viimeinen painos. "description": "Napsauta sovelma näyttääksesi henkilökohtaisen henkilökohtaisen gtk-valikon", // Appletin kuvaus "icon": "docky", // Apletin kuvauksessa käytetyt kuvakkeet. Vaihda esimerkiksi "telakoitavan" nimen muotoon "pääte", "kansion". "uuid": "black" // Kansio, johon metadata.json-tiedostomme sisältyy "name": "Custom gtk menu" // Applet name.

Huom: Jos haluat asettaa uudet nimet, näet Gnome- tai Cinnamon-kuvakkeiden tai minkä tahansa muun kuvaketeeman nimen siirtymällä tiedostojärjestelmän osoitteeseen.

/usr/share/icons

Kuva luotusta sovelmasta

  lKxpdkS

Qt, Gtk, Vala ja muut kielet, joita käytettiin luomaan appletti kanelille tai gnomelle

Katsotaanpa kanelin appletin sijainti

Sovelmamme sijainti ilmoitetaan seuraavissa osoitteissa:

/.local/share/cinnamon/applets

vuonna

/usr/share/cinnamon/applets

moukka

Sovelluksen koostumus

beeta

Määritämme applet.js 

koodi

applet.js

Käynnistetään applet.js-koodi

Näyttökuva - 140314 - 21:30:48

Applet.js: n loppu

Katsotaanpa nyt applet.js-koodi ja selitetään sen lausunnot.

Kirjoitettu koodi on käytännössä sama kuin edellinen Javascriptilla kirjoitettu esimerkki.
Vain signaalia on muutettu, mikä kutsuu automaattisesti suoritettavaa tiedostoa.

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

Automaattisesti suoritettava tiedostomme voidaan kirjoittaa esimerkiksi Qt, Gtk, Gtkmm, wxWidget, Vala jne. kielet, joilla voidaan luoda itse suoritettavia tiedostoja. Automaattisesti suoritettava tiedostomme on nimeltään Menu ja se on Qtmenu-kansiossa.

beeta

Voimme käyttää myös muita ohjelmointikieliä, joilla on siteitä Gtk: lle, kuten PyGTK, Ruby Gtk, Perl Gtk jne. jota voidaan käyttää komentosarjan avulla kyseisillä kielillä kirjoitetun koodin suorittamiseen. Periaate on aina sama kutsua ohjelmia, luoda ponnahdusvalikko ja ponnahdusikkuna tarpeidemme mukaan.

Katsotaanpa Qt: llä kirjoitetun automaattisen suoritustiedostomme koodi

qt

Määritämme metadata.json

LP0ol8b

mongo

Koodi kirjoitetaan samalla tavalla kuin edellinen esimerkki

Qt: llä luotu sovelmakuva

mitä

Kuva appletista, joka on luotu Gtk 3.10: llä

Jätän sinulle pienen esimerkin sovelmasta, joka käyttää Gtk: ssä kirjoitettua suoritettavaa tiedostoa, tässä tapauksessa otamme OpenGoxissa käytetyn myGtkMenu-valikon.

Se on itse suoritettava valikko.

kokeilla

Lataa opetusohjelma ja esimerkkejä


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   aiolia dijo

    Mielenkiintoinen artikkeli ...

    1.    marianogaudix dijo

      Kiitos . Minun on, että opimme vähän joka päivä.

  2.   lahja dijo

    Erittäin hyvä, rakastan sitä, halusin aina tietää, miten tällaiset appletit tehtiin

  3.   Enkeli Araya dijo

    Pieni korjaus. Gettext ei ole mitään erityistä kanelille, kuten artikkelissa sanotaan, se on kirjasto, joka mahdollistaa automaattiset käännökset ja malleista.

  4.   MSX dijo

    Erittäin hyvä opetusohjelma ja kaikki tämä, mutta tärkeä asia, jota et laittanut: linkki taustakuvaan?

    1.    marianogaudix dijo

      Lataa Linux Mint 16 Petra -taustakuvat.
      Paketti on nimeltään mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla dijo

    Erittäin mielenkiintoinen artikkeli. Totuus on, että olin aina miettinyt, miten nämä sovelmat luotiin. Ehkä minua kannustetaan luomaan minisoitin-sovelma MPD: lle tai jotain vastaavaa.

    Kiitos jakamisesta!

  6.   Matias dijo

    Erinomainen, olen vain miettimässä, kuinka muokata kanelin nm-applettia (verkonhallinta), jotta se vaihtaa väriä, kun minulla ei ole internetyhteyttä (minulla on wifi-kortti), ja tämä auttaa minua orientoitumaan vähän.

  7.   matiasbatero17 dijo

    No, Marian, en tiennyt, että lähetit tänne. Terveiset.

    1.    marianogaudix dijo

      Kun kävelet, Matute ... .. kävelen aina näiden osien ympäri. Kippis

  8.   lolbimbo dijo

    Hyvä artikkeli.

  9.   Honovan dijo

    tiedostoa ei löydy poistettiin käytöstä tekijänoikeusrikkomusten vuoksi.

    Tarkoitan, että jos sinulla on se siellä, voitko ladata sen uudelleen ???. Ole hyvä.

    Kiitos.