GrandMA2 Plugin ile Kullanıcı Arayüzü (GUI) Oluşturma
GrandMA2 Lua plugin altyapısını kullanarak özel diyalog pencereleri ve etkileşimli arayüz elemanları nasıl oluşturulur öğrenin.
GrandMA2 Plugin GUI Nedir?
GrandMA2, Lua tabanlı plugin sistemi sayesinde yalnızca otomasyon komutları çalıştırmakla kalmaz; aynı zamanda operatörle etkileşime giren kullanıcı arayüzleri (GUI) oluşturmanıza da olanak tanır. Bu özellik, sık kullanılan parametreleri hızlıca değiştirmek, onay diyalogları göstermek veya özel kontrol panelleri tasarlamak için son derece işlevseldir.
Temel GUI Fonksiyonları
GrandMA2 Lua ortamı, GUI oluşturmak için birkaç yerleşik fonksiyon sunar. En yaygın kullanılanları şunlardır:
- gma.gui.confirm() – Evet/Hayır onay diyalogu açar
- gma.gui.input() – Kullanıcıdan metin veya sayısal giriş alır
- gma.gui.msgbox() – Bilgi mesajı kutusu gösterir
- gma.gui.progress() – İlerleme çubuğu oluşturur
Onay Diyalogu Oluşturma
Bir işlemi çalıştırmadan önce operörden onay almak, özellikle büyük show dosyalarında hata riskini azaltır. Aşağıda basit bir onay diyalogu örneği verilmiştir:
local result = gma.gui.confirm("Emin misiniz?", "Tüm cue listesi sıfırlanacak.")Bu fonksiyon true veya false döndürür. Dönen değere göre işlemi koşullu olarak çalıştırabilirsiniz:
if result then gma.cmd("ClearAll") endKullanıcıdan Veri Alma
Plugin içinde dinamik değerler kullanmak istiyorsanız gma.gui.input() fonksiyonu ile operörden anlık veri alabilirsiniz. Örneğin bir cue numarası veya fixture ID'si sormak için:
local cueNo = gma.gui.input("Cue Numarası", "Hangi cue'ya atlamak istiyorsunuz?", "1")Üçüncü parametre varsayılan değerdir; operatör boş bırakırsa bu değer kullanılır. Fonksiyon, kullanıcı iptal ederse nil döndürür; bu nedenle nil kontrolü yapmayı unutmayın.
İpucu: gma.gui.input() her zaman string döndürür. Sayısal işlem yapacaksanız tonumber() ile dönüştürmeyi unutmayın.İlerleme Çubuğu ile Uzun İşlemleri Yönetme
Birden fazla fixture üzerinde döngüsel işlem yapan pluginlerde operatörü bilgilendirmek için ilerleme çubuğu kullanabilirsiniz:
- İlerleme çubuğunu başlatın:
gma.gui.progress("open", "İşlem başlıyor...", 100) - Döngü içinde günceleyin:
gma.gui.progress("update", i) - İşlem bitince kapatın:
gma.gui.progress("close")
GUI Kullanımında Dikkat Edilmesi Gerekenler
GrandMA2 GUI fonksiyonları senkron çalışır; yani bir diyalog açıldığında plugin, kullanıcı yanıt verene kadar bekler. Bu durum bazen konsol performansını etkileyebilir.
- Canlı show sırasında gereksiz diyalog kullanmaktan kaçının
- Her GUI çağrısından sonra nil kontrolü yapın
- Uzun döngülerde gma.sleep() ile konsola nefes aldırın
- Plugin adını ve amacını diyalog başlıklarına ekleyin; karmaşık show ortamlarında hangi pluginin konuştuğunu anlamak kolaylaşır
Pratik Kullanım Senaryosu
Örneğin bir "hızlı grup seçici" plugin yazıyorsanız; kullanıcıdan grup numarası alıp ilgili fixture'ları seçen ve ardından bir onay diyaloguyla işlemi teyit eden küçük bir arayüz, show başında tekrarlayan manuel adımları dakikalar içinde otomatikleştirebilir. Bu tür küçük GUI pluginleri, büyük prodüksiyonlarda iş akışını ciddi ölçüde hızlandırır.