Мини урок: Създаване на аплети за канела

Ще създадем прост аплет за Канела. За начало трябва да знаем това Канела предлага различни видове аплети:

  • Текстов аплет (показва етикет на панела)
  • Икономика (показва икона на панела)
  • TextIconApplet (посочва и икона, и етикет на панела)
  • Аплет (за хардкор разработчици, които показват празно поле, можете да попълните сами)

В този урок ние просто искаме да покажем икона на панела, така че ще използваме "IconApplet". За да програмираме нашия аплет на Канела или Гном трябва да знаем и знаем нещо за програмирането на Javascript

Местоположение на нашия код.

Първо, нека видим местоположението на нашия файл. Местоположението на нашия аплет е дадено на следните адреси:

/.local/share/cinnamon/applets о EN /usr/share/cinnamon/applets

Канела_Аплет

Файлове, които съставляват нашия аплет.

Канела_Applet2

Продължаваме да дефинираме applet.js

Código

applet.js

Сега да продължим да виждаме кода на applet.js и обяснете всяко негово изречение:

applet.js код старт

код на аплета

код на javascript

Нека да видим всяко от изреченията на предишния ни код

const Lang = import.lang; / * Извикваме библиотеките Gtk и Lang, те са основна част от всяко приложение на GNOME, позволяват ни да създаваме прозорци, приспособления и да ги свързваме. * / Const Applet = import.ui.applet; / * Извикваме библиотеката на аплетите, която ни позволява да създадем аплет за канела и Gnome и в същото време ни дава неговите свойства и функции. * / Const GLib = import.gi.GLib; / * GLib е помощна библиотека, позволява ни да правим неща в GNOME, например да кажем къде е файлът hellognome.html, това е библиотеката, която отговаря за сигналите. * / Const Gettext = import.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Библиотека Gettext, която ни позволява да импортираме характеристиките на работния плот на Cinnamon. const PopupMenu = import.ui.popupMenu; / * PopupMenu е библиотека за използване на мениджъра на менюто, позволява ни да извикаме приспособлението за изскачащо меню, обикновено използвано в аплети. * / Функция MyApplet (ориентация) {this._init (ориентация); }

След това дефинираме конструктора на нашия аплет, нека разгледаме нашия клас или клас:

gjs клас

Продължаваме с дефиницията на всяко от изреченията

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Определяме нашия клас или клас _init: функция (ориентация) {Applet.IconApplet.prototype._init.call (това, ориентация); / * Определяме ориентацията чрез Канела. Задаваме дали панелът на аплета е отгоре или отдолу (това оказва влияние върху ориентацията на менютата на аплета). * / Опитайте {// Направете нещо} Уловете (д) {// Какво се случва ако възникне грешка} / * Използваме try / catch, за да уловим всички грешки, които могат да възникнат в нашия аплет и да се уверим, че са записани в глобалния дневник за грешки. По този начин, ако нещо се обърка, можете да видите грешката в огледалото: Натиснете Alt F2, напишете "lg" и кликнете върху раздела "грешки". * / This.menuManager = нов PopupMenu.PopupMenuManager (това) ; // Създайте изскачащото меню и задайте мениджъра на менюто this.menu = new Applet.AppletPopupMenu (това, ориентация); // създаваме меню. this.menuManager.addMenu (this.menu); // Добавяме менюто към изскачащото меню. this.makeMenu (); // menuitem makeMenu, ние създаваме menuitem, наречен makeMenu. this.buildContextMenu (); // buildContextMenu, ние създаваме елемент от меню, наречен buildContextMenu. this.set_applet_icon_name ("папка"); / * Създаваме аплета, този случай е уникален, избраната икона е папката или папката, можем да създадем и текстов аплет, ако искаме. * /

Като пример променете името на "папка" на "терминал", "доки", за да установите нови имена, вижте името на иконите Gnome или Cinnamon или друга тема на иконата, отидете на адреса.

/usr/share/icons

Z7qwrdp

this.set_applet_tooltip (_ ("Щракнете тук, за да убиете прозорец")); // Улов, за да уловим грешките, които могат да възникнат в нашия аплет. catch (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Тестово съобщение", {reactive: true})); }, / * Определяме името на елемента на менюто makeMenu и неговите характеристики. В този случай етикетът е Тестово съобщение ". Ще дефинираме {reactive: true} Установяваме, че фонът на менюто ще се промени, когато указателят премине през менюто чрез true, ако е невярно, се случва обратното. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Определяме името на менюто makeMenu и неговите характеристики. В този случай етикетът е "show". on_applet_clicked: function (event) {this.menu.toggle ();} // Сигнал, излъчен от аплета, за извикване на основната функция на изскачащото меню (метаданни, ориентация) {let myApplet = new MyApplet (ориентация); return myApplet;} / * Накрая , просто трябва да добавим функция "main", която е вероятно да бъде еднаква във всеки аплет, тя създава екземпляр на нашия аплет и го връща в Cinnamon. * / // Затворете цикъла return myApplet;

Продължаваме да дефинираме metadata.json

LP0OL8B

Снимка на екрана - 140314 - 21:11:34

"последна редакция": "1331990905", // Последно издание. "description": "Щракнете върху аплета, за да покажете персонално дефинирано gtk меню", // Описание на аплета. "icon": "docky", // Икони, използвани за описанието на аплета. Като пример променете името на "docky" на "терминал", "папка". "uuid": "black" // Папка, в която е включен нашият файл metadata.json "name": "Custom gtk menu" // Име на аплета.

Забележка: За да зададете нови имена, вижте името на иконите Gnome или Cinnamon или друга тема на иконата, отидете на адреса на файловите системи.

/usr/share/icons

Изображение на създадения аплет

  lkxpdks

Qt, Gtk, Vala и други езици, използвани за създаване на аплет за канела или Gnome

Нека видим местоположението на нашия аплет за канела

Местоположението на нашия аплет е дадено на следните адреси:

/.local/share/cinnamon/applets

о EN

/usr/share/cinnamon/applets

NERD

Състав на нашия аплет

бета

Продължаваме да дефинираме applet.js 

Código

applet.js

Стартиране на кода на applet.js

Снимка на екрана - 140314 - 21:30:48

Край на applet.js

Сега нека продължим да виждаме кода на applet.js и да обясняваме неговите твърдения.

Написаният код е практически същият като предишния пример, написан с Javascript.
Променен е само сигналът, който ще извика нашата автоматично изпълнима.

on_applet_clicked: функция (събитие) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }

Нашият автоматично изпълним може да бъде написан с Qt, Gtk, Gtkmm, wxWidget, Vala и др. езици, с които могат да се създават самоизпълними. Нашият автоматично изпълним се нарича Меню и е в папката Qtmenu.

бета

Можем да използваме и други езици за програмиране, които имат обвързвания за Gtk, такъв е случаят с PyGTK, Ruby Gtk, Perl Gtk и т.н. което може да се използва с помощта на скрипт за изпълнение на кода, написан на тези езици. Принципът винаги е един и същ за извикване на програми, създаване на изскачащо меню и изскачащ прозорец според нашите нужди.

Нека видим кода на нашия автоматично изпълним файл, написан с Qt

qt

Продължаваме да дефинираме metadata.json

LP0OL8B

Монго

Кодът е написан по същия начин като предишния пример

Изображение на аплет, създадено с Qt

Какво

Изображение на аплета, създадено с Gtk 3.10

Оставям ви малък пример за аплет, който използва изпълним файл, написан в Gtk, в този случай вземаме менюто myGtkMenu, използвано в OpenBox.

Това е самоизпълняващо се меню.

Megtk

Изтеглете урока и примери


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   айория каза той

    Интересен член ...

    1.    марианогаудикс каза той

      Благодаря ти . Моето е, че всеки ден се учим по малко.

  2.   подарък каза той

    Много добре, обичам го, винаги съм искал да знам как се правят тези видове аплети

  3.   Ангел Арая каза той

    Малка корекция. Gettext не е нищо специфично за Cinnamon, както се казва в статията, това е библиотека, която прави възможни автоматични преводи и от шаблони.

  4.   MSX каза той

    Много добър урок и всичко това, но важното, което не сте го поставили: връзка към тапет?

    1.    марианогаудикс каза той

      Изтеглете тапетите на Linux Mint 16 Petra.
      Пакетът се нарича mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla каза той

    Много интересна статия. Истината е, че винаги съм се чудил как са създадени тези аплети. Може би съм насърчен да създам аплет за миниплейър за MPD или нещо подобно.

    Благодаря за споделянето!

  6.   Matias каза той

    Отлично, просто измислям как да модифицирам nm-аплета на канела (мрежов мениджър), така че да променя цвета си, когато нямам достъп до интернет (имам wifi карта), и това ми помага да се ориентирам малко

  7.   matiasbatero17 каза той

    Ами там Мариан, не знаех, че публикувате тук. За разбирането.

    1.    марианогаудикс каза той

      Докато вървиш, Матуте ... .. Винаги обикалям тези части. Наздраве

  8.   лолбимбо каза той

    Добра статия.

  9.   хованван каза той

    файлът не е намерен е деактивиран поради нарушаване на авторски права

    Имам предвид, че ако го имате там, можете ли да го качите отново ???. Моля.

    Благодаря ти.