Mini Tutorial: Krijimi i Mollave për Kanellën

Ne do të krijojmë një applet të thjeshtë për të Kanellë. Për të filluar, ne duhet ta dimë atë Kanellë ofron lloje të ndryshme të apleteve:

  • TextApplet (duke shfaqur një etiketë në panel)
  • IconApplet (duke treguar një ikonë në panel)
  • TextIconApplet (duke treguar një ikonë dhe një etiketë në panel)
  • applet (për zhvilluesit hardcore, të cilët tregojnë një kuti bosh që mund ta plotësoni vetë)

Në këtë manual, ne thjesht duam të shfaqim një ikonë në panel, kështu që do të përdorim një "IconApplet". Në mënyrë që të programojmë applet-in tonë në Kanellë ose Gnome ne duhet të dimë dhe dimë disa programe në Javascript

Vendndodhja e kodit tonë.

Së pari, le të shohim vendndodhjen e skedarit tonë. Vendndodhja e appletit tonë jepet në adresat e mëposhtme:

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

Kanellë_Applet

Skedarët që përbëjnë Applet-in tonë.

Kanella_Applet2

Ne vazhdojmë të përcaktojmë applet.js

kod

applet.js

Tani le të vazhdojmë të shohim kodin e applet.js dhe të shpjegojë secilën fjali të saj:

fillimi i kodit applet.js

kodi i appletit

kodi javascript

Le të shohim secilën nga fjalitë e kodit tonë të mëparshëm

konstancë Lang = importe.ngjarje; / * Ne thirremi në bibliotekat Gtk dhe Lang, ato janë një pjesë themelore e çdo aplikacioni GNOME, ato na lejojnë të krijojmë dritare, widget dhe t'i lidhim ato. * / Const Applet = imports.ui.applet; / * Ne thirret në bibliotekën Applet që na lejon të krijojmë një applet për Kanellën dhe Gnome dhe në të njëjtën kohë na jep vetitë dhe funksionet e tij. * / Const GLib = imports.gi.GLib; / * GLib është një bibliotekë ndihmëse, na lejon të bëjmë gjëra në GNOME, për shembull të themi se ku është skedari hellognome.html, është biblioteka e ngarkuar me sinjale. * / Const Gettext = imports.gettext.domain ('kanellë -applet '); konst _ = Gettext.gettext; // Biblioteka Gettext që na lejon të importojmë karakteristikat tona për desktopin e Kanellës. const PopupMenu = imports.ui.popupMenu; / * PopupMenu është një bibliotekë për të përdorur menaxherin e menusë, na lejon të kërkojmë miniaplikacionin e menusë së dritares që përdoret zakonisht në applete. * / Funksioni MyApplet (orientimi) {this._init (orientimi); }

Konstruktori i applet-it tonë është përcaktuar më poshtë, le të shohim Klasën ose Klasën tonë:

klasa gjs

Vazhdojmë me përcaktimin e secilës prej fjalive

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Ne përcaktojmë klasën ose klasën tonë _init: funksioni (orientimi) {Applet.IconApplet.prototype._init.call (ky, orientimi); / * Vendosim orientimin përmes Kanellës. Vendosim nëse paneli i appletit është në krye ose në fund (kjo ka ndikim në orientimin e menusë së appletit). * / Provo {// Bëni diçka} Kap (e) {// Çfarë ndodh nëse ndodh një gabim } / * Ne përdorim një try / catch për të kapur ndonjë gabim që mund të ndodhë në applet-in tonë dhe për t'u siguruar që ato janë shkruar në regjistrin global të gabimeve. Në këtë mënyrë, nëse diçka shkon keq, mund të shihni gabimin në Shikimin e Qelqit: Shtypni Alt F2, shtypni "lg" dhe klikoni në skedën "gabime". * / This.menuManager = new PopupMenu.PopupMenuManager (kjo); // Krijoni menunë e dritareve dhe vendosni menaxherin e menusë this.menu = new Applet.AppletPopupMenu (ky, orientimi); // krijojmë një menu. this.menuManager.addMenu (this.menu); // Ne shtojmë menunë në menunë që shfaqet. this.makeMenu (); // menuitem makeMenu, ne krijojmë një menuitem të quajtur makeMenu. this.buildContextMenu (); // buildContextMenu, ne krijojmë një menuitem të quajtur buildContextMenu. this.set_applet_icon_name ("dosje"); / * Ne krijojmë applet, ky rast është unik, ikona e zgjedhur është dosja ose dosja, ne gjithashtu mund të krijojmë një applet me tekst nëse duam. * /

Si shembull ndryshoni emrin e "dosjes" në "terminal", "dok" për të vendosur emra të rinj shihni emrin e ikonave Gnome ose Kanellë ose ndonjë temë tjetër të ikonës, shkoni në adresë.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Kliko këtu për të vrarë një dritare")); // Kap për të kapur ndonjë gabim që mund të ndodhë në appletin tonë. kap (e) {global.logError (e); } makeMenu: funksioni () {this.menu.addMenuItem (i ri PopupMenu.PopupMenuItem ("Test Mesazhi", {reaktiv: i vërtetë})); }, / * Ne përcaktojmë emrin e makeMenu menuitem dhe karakteristikat e tij. Në këtë rast etiketa është Mesazh Test ". Ne do të përcaktojmë {reaktiv: e vërtetë} Ne vendosim që sfondi i menuit do të ndryshojë kur treguesi kalon mbi menuitem përmes true nëse është e gabuar ndodh e kundërta. * / BuildContextMenu: funksioni () {this.menu .addMenuItem (i ri PopupMenu.PopupMenuItem ("shfaqje", {reaktiv: e vërtetë}));}, // Përcaktojmë emrin e makeMenu menuitem dhe karakteristikat e tij. Në këtë rast etiketa është "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Sinjali i emetuar nga applet, për të thirrur funksionin e menusë popup kryesore (metadata, orientimi) {let myApplet = MyApplet i ri (orientimi); kthimi myApplet;} / * Së fundmi, ne thjesht duhet të shtojmë një funksion "kryesor", i cili ka të ngjarë të jetë i njëjtë në secilin applet, një shembull i appletit tonë krijohet dhe kthehet në Kanellë. * / // Ne mbyllim kthimin e lakut myApplet;

Ne vazhdojmë të përcaktojmë metadata.json

LP0ol8b

Pamja e ekranit - 140314 - 21:11:34

"i redaktuar së fundmi": "1331990905", // Botimi i fundit. "description": "Kliko në applet për të treguar një menu të përcaktuar personalisht të gtk", // Përshkrimi i applet. "icon": "docky", // Ikona të përdorura për përshkrimin e applet-it. Si shembull ndryshoni emrin e "docky" në "terminal", "folder". "uuid": "e zezë" // Dosje ku përfshihet skedari ynë i metadata.json "emri": "menu e personalizuar gtk" // Emri i applet.

Shenim: Për të vendosur emra të rinj shihni emrin e ikonave Gnome ose Kanellë ose ndonjë temë tjetër të ikonës, shkoni në adresën e sistemeve të skedarëve.

/usr/share/icons

Imazhi i Applet i krijuar

  lKxpdkS

Qt, Gtk, Vala dhe gjuhë të tjera që përdoren për të krijuar një applet për Kanellën ose Gnome

Le të shohim vendndodhjen e applet tonë për kanellë

Vendndodhja e appletit tonë jepet në adresat e mëposhtme:

/.local/share/cinnamon/applets

/usr/share/cinnamon/applets

budalla

Përbërja e appletit tonë

beta

Ne vazhdojmë të përcaktojmë applet.js 

kod

applet.js

Fillimi i kodit të applet.js

Pamja e ekranit - 140314 - 21:30:48

Fundi i applet.js

Tani le të vazhdojmë të shohim kodin e applet.js dhe të shpjegojmë deklaratat e tij.

Kodi i shkruar është praktikisht i njëjtë me shembullin e mëparshëm të shkruar me Javascript.
Vetëm sinjali është ndryshuar, i cili do ta quajë ekzekutimin tonë automatik.

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

Ekzekutimi ynë automatik mund të shkruhet me Qt, Gtk, Gtkmm, wxWidget, Vala, etj. gjuhët me të cilat mund të krijohen vetë-ekzekutues. Ekzekutimi ynë automatik quhet Menu dhe është në dosjen Qtmenu.

beta

Ne gjithashtu mund të përdorim gjuhë të tjera programimi që kanë lidhje për Gtk siç është rasti i PyGTK, Ruby Gtk, Perl Gtk, etj. i cili mund të përdoret duke përdorur një skenar për të ekzekutuar kodin e shkruar në ato gjuhë. Parimi është gjithmonë i njëjtë për të thirrur programe, për të krijuar menunë e dritares dhe dritaren e dritares në përputhje me nevojat tona.

Le të shohim kodin e ekzekutimit tonë automatik të shkruar me Qt

qt

Ne vazhdojmë të përcaktojmë metadata.json

LP0ol8b

Mongo

Kodi është shkruar në të njëjtën mënyrë si shembulli i mëparshëm

Imazhi i Applet i krijuar me Qt

çfarë

Imazhi i Applet i krijuar me Gtk 3.10

Unë ju lë një shembull të vogël të një appleti që përdor një ekzekutues të shkruar në Gtk, në këtë rast marrim menunë myGtkMenu të përdorur në OpenBox.

Shtë një menu vetë-ekzekutuese.

megtk

Shkarkoni udhëzuesin dhe shembuj


12 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   aiolia dijo

    Artikull interesant ...

    1.    marianogaudix dijo

      Faleminderit . E imja është që ne mësojmë pak çdo ditë.

  2.   Danie dijo

    Shumë mirë, e dua, gjithmonë doja të dija se si bëheshin këto lloj appletesh

  3.   Engjëll Araya dijo

    Një korrigjim i vogël. Gettext nuk është asgjë specifike për Kanellën siç thotë në artikull, është një bibliotekë që bën të mundur përkthimet automatike dhe nga modelet.

  4.   MSX dijo

    Tutorial shumë i mirë dhe e gjithë kjo, por gjëja e rëndësishme që nuk e vendosët: lidhje me letër-muri?

    1.    marianogaudix dijo

      Shkarkoni sfondet e Linux Mint 16 Petra.
      Paketa quhet mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla dijo

    Artikull shumë interesant. E vërteta është se gjithnjë kam menduar se si janë krijuar këto aplete. Ndoshta unë jam i inkurajuar të krijoj një mini-player applet për MPD ose diçka të ngjashme.

    Faleminderit për ndarjen!

  6.   matias dijo

    Shkëlqyeshëm, thjesht po kuptoj se si të modifikoj nm-applet të kanellës (menaxheri i rrjetit), në mënyrë që të ndryshojë ngjyrën kur nuk kam qasje në internet, (kam një kartë Wi-Fi) dhe kjo më ndihmon të orientohem pak.

  7.   matiasbatero17 dijo

    Epo atje Marian, nuk e dija që po postonit këtu. Të fala.

    1.    marianogaudix dijo

      Ndërsa ecni, Matute… .. Unë gjithmonë eci nëpër këto pjesë. Brohoritje

  8.   lolbimbo dijo

    Artikull i mirë

  9.   i nderuar dijo

    skedari nuk mund të gjendet është çaktivizuar për shkelje të së drejtës së autorit.

    Ajo që dua të them është se nëse e keni atje, a mund ta ngarkoni përsëri ??? Ju lutem.

    faleminderit.