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
Tiedostot, jotka muodostavat sovelmamme.
Määritämme applet.js
Katsotaan nyt nähdäksesi koodin applet.js ja selitä kaikki sen lauseet:
applet.js-koodin alku
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:
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
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
"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
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
Sovelluksen koostumus
Määritämme applet.js
Käynnistetään applet.js-koodi
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.
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
Määritämme metadata.json
Koodi kirjoitetaan samalla tavalla kuin edellinen esimerkki
Qt: llä luotu sovelmakuva
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.
Lataa opetusohjelma ja esimerkkejä
Mielenkiintoinen artikkeli ...
Kiitos . Minun on, että opimme vähän joka päivä.
Erittäin hyvä, rakastan sitä, halusin aina tietää, miten tällaiset appletit tehtiin
Pieni korjaus. Gettext ei ole mitään erityistä kanelille, kuten artikkelissa sanotaan, se on kirjasto, joka mahdollistaa automaattiset käännökset ja malleista.
Erittäin hyvä opetusohjelma ja kaikki tämä, mutta tärkeä asia, jota et laittanut: linkki taustakuvaan?
Lataa Linux Mint 16 Petra -taustakuvat.
Paketti on nimeltään mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
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!
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.
No, Marian, en tiennyt, että lähetit tänne. Terveiset.
Kun kävelet, Matute ... .. kävelen aina näiden osien ympäri. Kippis
Hyvä artikkeli.
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.