Mini-tutoriaal: die skep van applets vir kaneel

Ons gaan 'n eenvoudige applet vir Kaneel. Om mee te begin, moet ons dit weet Kaneel bied verskillende soorte applets aan:

  • TextApplet (wys 'n etiket op die paneel)
  • IconApplet (wys 'n ikoon op die paneel)
  • TextIconApplet (wat beide 'n ikoon en 'n etiket op die paneel aandui)
  • applet (vir hardcore-ontwikkelaars wat 'n leë blokkie vertoon wat u self kan invul)

In hierdie handleiding wil ons eenvoudig 'n ikoon op die paneel vertoon, dus sal ons 'n "IconApplet" gebruik. Om ons applet te kan programmeer na Kaneel of Kabouter ons moet 'n mate van programmering in Javascript ken en ken

Ligging van ons kode.

Laat ons eers die ligging van ons lêer sien. Die ligging van ons applet word op die volgende adresse gegee:

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

Kaneel_Applet

Lêers waaruit ons Applet bestaan.

Kaneel_Applet2

Ons gaan voort om applet.js te definieer

kode

applet.js

 

Kom ons gaan voort om die kode van te sien applet.js en verduidelik elkeen van die sinne:

applet.js-kode begin

appletkode

javaskripkode

Kom ons kyk na die sinne in ons vorige kode

const Lang = invoere.lang; / * Ons roep die Gtk- en Lang-biblioteke op, dit is 'n basiese onderdeel van elke GNOME-toepassing, hulle laat ons toe om vensters, widgets te skep en dit te koppel. * / Const Applet = import.ui.applet; / * Ons beroep ons op die Applet-biblioteek wat ons toelaat om 'n applet vir Cinnamon en Gnome te skep en terselfdertyd sy eienskappe en funksies gee. * / Const GLib = import.gi.GLib; / * GLib is 'n hulpbiblioteek, dit stel ons in staat om dinge in GNOME te doen, byvoorbeeld sê waar die hellognome.html-lêer is, dit is die biblioteek wat die seine beheer. * / Const Gettext = import.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Gettext-biblioteek waarmee ons ons eie eienskappe vir die Cinnamon-lessenaar kan invoer. const PopupMenu = import.ui.popupMenu; / * PopupMenu is 'n biblioteek om die menu-bestuurder te gebruik. Dit laat ons toe om die pop-up-menu-widget op te roep wat gewoonlik in applets gebruik word. * / Funksie MyApplet (oriëntasie) {this._init (oriëntasie); }

Die konstrukteur van ons applet word hieronder gedefinieër. Kom ons kyk na ons klas of klas:

gjs klas

Ons gaan voort met die definisie van elk van die sinne

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Ons definieer ons Klas of Klas _init: funksie (oriëntasie) {Applet.IconApplet.prototype._init.call (hierdie, oriëntasie); / * Ons stel die oriëntasie deur Kaneel. Ons stel in of die appletpaneel bo of onder is (dit het 'n invloed op die oriëntasie van die applet-menu's). * / Probeer {// Doen iets} Vang (e) {// Wat gebeur as 'n fout voorkom} / * Ons gebruik 'n probeer / vangs om enige foute wat in ons applet mag voorkom, op te vang en om seker te maak dat dit in die globale foutlogboek geskryf word. Op hierdie manier, as iets verkeerd gaan, kan u die fout in Look Glass sien: Druk Alt F2, tik "lg" en klik op die "foute" -oortjie. * / This.menuManager = new PopupMenu.PopupMenuManager (this) ; // Maak die pop-upmenu en stel die menu-bestuurder this.menu = new Applet.AppletPopupMenu (dit, oriëntasie); // ons skep 'n spyskaart. this.menuManager.addMenu (this.menu); // Ons voeg die menu by die pop-upmenu. this.makeMenu (); // menuitem makeMenu, ons skep 'n menuitem genaamd makeMenu. this.buildContextMenu (); // buildContextMenu, ons skep 'n menupunt genaamd buildContextMenu. this.set_applet_icon_name ("map"); / * Ons skep die applet, hierdie saak is uniek, die gekose ikoon is die map of map, ons kan ook 'n teks-applet opstel as ons wil. * /

Verander byvoorbeeld die naam van "map" in "terminal", "docky" om nuwe name te vestig, sien die naam van die Gnome- of Cinnamon-ikone of enige ander ikoon-tema, gaan in die adres.

/usr/share/icons

Z7qwRdp

 

this.set_applet_tooltip (_ ("Klik hier om 'n venster dood te maak")); // Vang om foute wat in ons applet mag voorkom, op te vang. vang (e) {global.logError (e); } makeMenu: funksie () {this.menu.addMenuItem (nuwe PopupMenu.PopupMenuItem ("Toetsboodskap", {reaktief: waar})); }, / * Ons definieer die naam van die menu menu makeMenu en die kenmerke daarvan. In hierdie geval is die etiket 'Test Message'. Ons definieer {reaktief: waar} Ons stel vas dat die agtergrond van die menuitem sal verander wanneer die wyser deur die menuitem gaan deur waar as dit vals is, die teenoorgestelde gebeur. .addMenuItem (nuwe PopupMenu.PopupMenuItem ("show", {reaktief: waar}));}, // Ons definieer die naam van die menu menu makeMenu en die eienskappe daarvan. In hierdie geval is die etiket "show". on_applet_clicked: function (event) {this.menu.toggle ();} // Signaal wat deur die applet uitgestuur word, om die pop-up-funksie hoof (metadata, oriëntasie) te noem {laat myApplet = nuwe MyApplet (oriëntasie); stuur myApplet terug;} / * Ten slotte , moet ons net 'n "hoof" -funksie byvoeg, wat waarskynlik in elke applet dieselfde sal wees, dit skep 'n instansie van ons applet en stuur dit terug na Kaneel. * / // Sluit die lus terug myApplet;

Ons gaan voort om metadata.json te definieer

LP0ol8b

 

Kiekie - 140314 - 21:11:34

"laas bewerk": "1331990905", // Laaste uitgawe. "beskrywing": "Klik op die applet om 'n persoonlike persoonlik gedefinieerde gtk-menu te wys", // Appletbeskrywing. "icon": "docky", // Ikone wat gebruik word vir die beskrywing van die applet. Verander as voorbeeld die naam van "docky" na "terminal", "folder". "uuid": "swart" // Map waarin ons metadata.json-lêer ingesluit is "name": "Custom gtk menu" // Applet name.

Let wel: Om nuwe name in te stel, sien die naam van die Gnome- of Cinnamon-ikone of enige ander ikoon-tema, gaan na die lêerstelselsadres.

/usr/share/icons

Beeld van die applet geskep

  lKxpdkS

Qt, Gtk, Vala en ander tale word gebruik om 'n applet vir kaneel of kabouter te skep

Laat ons die ligging van ons applet vir kaneel sien

Die ligging van ons applet word op die volgende adresse gegee:

/.local/share/cinnamon/applets

o en

/usr/share/cinnamon/applets

nerd

Samestelling van ons applet

beta

 

Ons gaan voort om applet.js te definieer 

kode

applet.js

Begin die applet.js-kode

Kiekie - 140314 - 21:30:48

Einde van applet.js

Laat ons nou die applet.js-kode sien en die verklarings daarvan verduidelik.

Die geskrewe kode is feitlik dieselfde as die vorige voorbeeld wat met Javascript geskryf is.
Slegs die sein is verander, wat ons outo-uitvoerbare program sal noem.

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

Ons outomatiese uitvoerbare program kan geskryf word met Qt, Gtk, Gtkmm, wxWidget, Vala, ens. tale waarmee selfuitvoerbare programme geskep kan word. Ons outomatiese uitvoerbare naam word Menu genoem en dit is in die Qtmenu-lêergids.

beta

Ons kan ook ander programmeertale gebruik wat bindings vir Gtk het, soos PyGTK, Ruby Gtk, Perl Gtk, ens. wat gebruik kan word met behulp van 'n skrif om die kode wat in daardie tale geskryf is, uit te voer. Die beginsel is altyd dieselfde om programme op te roep, pop-up menu en pop-upvenster te skep volgens ons behoeftes.

Laat ons die kode van ons outomatiese uitvoerbare program met Qt sien

qt

Ons gaan voort om metadata.json te definieer

LP0ol8b

Mongo

Die kode word op dieselfde manier as die vorige voorbeeld geskryf

Beeld van die applet geskep met Qt

wat

 

Beeld van die applet geskep met Gtk 3.10

Hier is 'n klein voorbeeld van 'n applet wat gebruik maak van 'n uitvoerbare program wat in Gtk geskryf is. In hierdie geval neem ons die menu myGtkMenu wat in OpenBox gebruik word.

Dit is 'n selfuitvoerende spyskaart.

megk

Laai die handleiding en voorbeelde af


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

12 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   aiolia dijo

    Interessante artikel ...

    1.    marianogaudix dijo

      Dankie . My is dat ons elke dag 'n bietjie leer.

  2.   Danie dijo

    Baie goed, ek is mal daaroor, ek wou nog altyd weet hoe hierdie soort appletjies gemaak word

  3.   Angel Araya dijo

    'N Klein regstelling. Gettext is niks spesifieks vir kaneel soos dit in die artikel staan ​​nie, dit is 'n biblioteek wat outomatiese vertalings moontlik maak en vanuit templates.

  4.   msx dijo

    Baie goed die tutoriaal en dit alles, maar die belangrikste is dat u dit nie gestel het nie: skakel na die muurpapier?

    1.    marianogaudix dijo

      Laai die Linux Mint 16 Petra-agtergronde af.
      Die pakket heet mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla dijo

    Baie interessante artikel. Die waarheid is dat ek nog altyd gewonder het hoe hierdie applets gemaak is. Miskien word ek aangemoedig om 'n minispeler-applet vir MPD of iets soortgelyks te skep.

    Dankie vir die deel!

  6.   Matias dijo

    Uitstekend, ek is net besig om uit te vind hoe ek die kaneel se nm-applet (netwerkbestuurder) kan verander, sodat dit van kleur verander as ek nie toegang tot internet het nie (ek het 'n Wi-Fi-kaart), en dit help my om my 'n bietjie te oriënteer.

  7.   matiasbatero17 dijo

    Wel daar Marian, ek het nie geweet jy plaas hier nie. Groete.

    1.    marianogaudix dijo

      Hoe gaan dit, Matute ... ek loop altyd deur hierdie dele. Cheers

  8.   lolbimbo dijo

    Goeie artikel.

  9.   honovan dijo

    die lêer kon nie gevind word nie, is gedeaktiveer weens kopieregskending.

    Wat ek bedoel, is dat as u dit daar het, u dit weer kan oplaai ???.

    Dankie.