Kami akan membuat applet ringkas untuk Kayu manis. Untuk memulakan, kita mesti tahu bahawa Kayu manis menawarkan pelbagai jenis applet:
- TeksApplet (menunjukkan label pada panel)
- IkonApplet (menunjukkan ikon di panel)
- TextIconApplet (menunjukkan ikon dan label pada panel)
- applet (untuk pemaju tegar, yang menunjukkan kotak kosong yang boleh anda isi sendiri)
Dalam tutorial ini, kami hanya ingin memaparkan ikon di panel, jadi kami akan menggunakan "IconApplet". Untuk memprogram applet kami ke Kayu manis atau Gnome kita perlu mengetahui dan mengetahui sesuatu mengenai pengaturcaraan Javascript
Lokasi kod kami.
Pertama, mari lihat lokasi fail kami. Lokasi applet kami diberikan di alamat berikut:
/.local/share/cinnamon/applets
dalam /usr/share/cinnamon/applets
Fail yang membentuk Applet kami.
Kami meneruskan untuk menentukan applet.js
Sekarang mari kita lihat kod applet.js dan terangkan setiap ayatnya:
permulaan kod applet.js
Mari lihat setiap ayat kod sebelumnya
const Lang = imports.lang; / * Kami memanggil perpustakaan Gtk dan Lang, mereka adalah bahagian asas dari mana-mana aplikasi GNOME, mereka membenarkan kami membuat tetingkap, widget dan menghubungkannya. * / Const Applet = imports.ui.applet; / * Kami meminta pustaka Applet yang membolehkan kami membuat applet untuk Cinnamon dan Gnome dan pada masa yang sama memberi kami sifat dan fungsinya. * / Const GLib = imports.gi.GLib; / * GLib adalah pustaka pembantu, ia membolehkan kita melakukan sesuatu di GNOME, misalnya katakan di mana fail hellognome.html, ia adalah perpustakaan yang bertanggungjawab atas isyarat. * / Const Gettext = imports.gettext.domain ('cinnamon -applet '); const _ = Gettext.gettext; // Perpustakaan Gettext yang membolehkan kami mengimport ciri-ciri desktop Cinnamon. const PopupMenu = imports.ui.popupMenu; / * PopupMenu adalah perpustakaan untuk menggunakan pengurus menu, ini membolehkan kita menggunakan widget menu pop timbul yang biasanya digunakan dalam applet. * / Fungsi MyApplet (orientasi) {this._init (orientasi); }
Pembina applet kami ditakrifkan di bawah, mari lihat Kelas atau Kelas kami:
Kami meneruskan definisi setiap ayat
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Kami menentukan kelas atau Class _init: function (orientation) kami {Applet.IconApplet.prototype._init.call (ini, orientasi); / * Kami menetapkan orientasi melalui Cinnamon. Kami menetapkan sama ada panel applet berada di bahagian atas atau di bahagian bawah (ini memberi kesan pada orientasi menu applet). * / Cuba {// Lakukan sesuatu} Tangkap (e) {// Apa yang berlaku sekiranya berlaku ralat } / * Kami menggunakan try / catch untuk menangkap sebarang kesalahan yang mungkin berlaku di applet kami dan memastikannya ditulis ke log ralat global. Dengan cara ini, jika ada yang tidak betul, anda dapat melihat ralat dalam Mencari Kaca: Tekan Alt F2, ketik "lg" dan klik pada tab "ralat". * / This.menuManager = PopupMenu.PopupMenuManager baru (ini); // Buat menu pop timbul dan tetapkan pengurus menu ini.menu = Applet.AppletPopupMenu baru (ini, orientasi); // kami membuat menu. ini.menuManager.addMenu (this.menu); // Kami menambahkan menu ke menu pop timbul. ini.makeMenu (); // menuitem makeMenu, kami membuat menuitem yang dipanggil makeMenu. ini.buildContextMenu (); // buildContextMenu, kami membuat menu yang dipanggil buildContextMenu. this.set_applet_icon_name ("folder"); / * Kami membuat applet, case ini unik, ikon yang dipilih adalah folder atau folder, kita juga dapat membuat applet teks jika kita mau. * /
Sebagai contoh menukar nama "folder" menjadi "terminal", "docky" untuk menubuhkan nama baru lihat nama ikon Gnome atau Cinnamon atau tema ikon lain, masuk ke alamat.
/usr/share/icons
this.set_applet_tooltip (_ ("Klik di sini untuk membunuh tetingkap")); // Tangkap untuk menangkap sebarang kesalahan yang mungkin berlaku di applet kami. tangkapan (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (PopupMenu.PopupMenuItem baru ("Uji Mesej", {reaktif: benar})); }, / * Kami menentukan nama menuitem makeMenu dan ciri-cirinya. Dalam kes ini, label adalah Uji Mesej ". Kami akan menentukan {reactive: true} Kami menetapkan bahawa latar belakang menuitem akan berubah apabila penunjuk melewati menuitem melalui true jika salah berlaku sebaliknya. * / BuildContextMenu: function () {this.menu .addMenuItem (PopupMenu.PopupMenuItem baru ("tunjuk", {reaktif: benar}));}, // Kami menentukan nama menuitem makeMenu dan ciri-cirinya. Dalam kes ini labelnya adalah "tunjukkan ". on_applet_clicked: function (event) {this.menu.toggle ();} // Isyarat yang dikeluarkan oleh applet, untuk memanggil fungsi menu pop-up utama (metadata, orientasi) {let myApplet = baru MyApplet (orientasi); kembali myApplet;} / * Akhirnya, kita hanya perlu menambahkan fungsi "utama", yang mungkin sama di setiap applet, contoh applet kita dibuat dan dikembalikan ke Cinnamon. * / // Kami menutup pengulangan loop myApplet;
Kami meneruskan untuk menentukan metadata.json
"terakhir-diedit": "1331990905", // Edisi terakhir. "description": "Klik pada applet untuk menunjukkan menu gtk yang ditentukan secara peribadi", // Penerangan applet. "icon": "docky", // Ikon yang digunakan untuk penerangan applet. Sebagai contoh menukar nama "docky" menjadi "terminal", "folder". "uuid": "black" // Folder tempat fail metadata.json kami disertakan "name": "Custom menu gtk" // Nama applet.
Nota: Untuk menetapkan nama baru, lihat nama ikon Gnome atau Cinnamon atau tema ikon lain, pergi ke alamat sistem fail.
/usr/share/icons
Imej Applet yang dibuat
Qt, Gtk, Vala dan bahasa lain yang digunakan untuk membuat applet untuk Cinnamon atau Gnome
Mari lihat lokasi applet kami untuk Cinnamon
Lokasi applet kami diberikan di alamat berikut:
/.local/share/cinnamon/applets
dalam
/usr/share/cinnamon/applets
Komposisi applet kami
Kami meneruskan untuk menentukan applet.js
Memulakan kod applet.js
Akhir applet.js
Sekarang mari kita lihat kod applet.js dan menerangkan pernyataannya.
Kod yang ditulis hampir sama dengan contoh sebelumnya yang ditulis dengan Javascript.
Hanya isyarat yang telah diubah, yang akan memanggil pelaksanaan automatik kami.
on_applet_clicked: function (event) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
Pelaksanaan automatik kami boleh ditulis dengan Qt, Gtk, Gtkmm, wxWidget, Vala, dll. bahasa yang boleh dibuat sendiri yang boleh dilaksanakan. Pelaksanaan automatik kami dipanggil Menu dan terdapat dalam folder Qtmenu.
Kita juga boleh menggunakan bahasa pengaturcaraan lain yang mempunyai ikatan untuk Gtk seperti PyGTK, Ruby Gtk, Perl Gtk, dll. yang boleh digunakan menggunakan skrip untuk melaksanakan kod yang ditulis dalam bahasa-bahasa tersebut. Prinsipnya selalu sama untuk memanggil program, membuat menu pop timbul dan tetingkap pop timbul mengikut keperluan kita.
Mari lihat kod pelaksanaan automatik kami yang ditulis dengan Qt
Kami meneruskan untuk menentukan metadata.json
Kod ditulis dengan cara yang sama seperti contoh sebelumnya
Imej applet dibuat dengan Qt
Imej Applet yang dibuat dengan Gtk 3.10
Berikut adalah contoh kecil applet yang menggunakan executable yang ditulis dalam Gtk, dalam hal ini kita mengambil menu myGtkMenu yang digunakan di OpenBox.
Ini adalah menu yang boleh dilaksanakan sendiri.
Muat turun tutorial dan contohnya
Artikel Menarik ...
Terima kasih . Saya adalah bahawa kita belajar sedikit setiap hari.
Sangat bagus, saya menyukainya, saya selalu ingin mengetahui bagaimana applet jenis ini dibuat
Pembetulan kecil. Gettext tidak spesifik untuk Cinnamon seperti yang dinyatakan dalam artikel, itu adalah perpustakaan yang memungkinkan terjemahan automatik mungkin dan dari templat.
Sangat bagus tutorial dan semua itu tetapi yang penting anda tidak meletakkannya: pautan ke kertas dinding?
Muat turun wallpaper Linux Mint 16 Petra.
Pakej ini dipanggil mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
Artikel yang sangat menarik. Yang benar adalah bahawa saya selalu bertanya-tanya bagaimana applet ini dibuat. Mungkin saya terdorong untuk membuat applet pemain mini untuk MPD atau yang serupa.
Terima kasih kerana berkongsi!
Hebatnya, saya baru memikirkan cara mengubah suai kayu manis nm-applet (pengurus rangkaian), sehingga berubah warna apabila saya tidak mempunyai akses internet, (saya mempunyai kad wifi), dan ini membantu saya untuk mengorientasikan diri sedikit.
Baiklah di sana Marian, saya tidak tahu anda menghantar di sini. Salam.
Semasa anda berjalan, Matute… .. Saya selalu berjalan di bahagian-bahagian ini. salam
Artikel yang bagus.
fail tidak dijumpai dinyahaktifkan kerana pelanggaran hak cipta.
Apa yang saya maksudkan ialah jika anda memilikinya di sana, bolehkah anda memuat naiknya lagi ???.
terima kasih.