Jest to polecenie FvwmScript, które można uruchomić w darmowym dostawcy usług hostingowych OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
FvwmScript - moduł do budowy graficznego interfejsu użytkownika
STRESZCZENIE
FvwmScript musi zostać spawnowany przez Fvwm. Nie będzie działać z wiersza poleceń.
OPIS
FvwmScript to moduł pozwalający na budowanie wielu aplikacji graficznych takich jak
akcesoria pulpitu, panel przycisków z wyskakującymi menu, modalne okna dialogowe... Na starcie,
FvwmScript odczytuje plik określony w wierszu poleceń. Ten plik zawiera
scenariusz. Ten skrypt nie jest zawarty w pliku konfiguracyjnym Fvwm.
Skryptem FvwmScript można w pełni sterować za pomocą klawiatury. (Shift)-Tab krąży
wokół widżetów, Return symuluje kliknięcie myszką, strzałki przesuwają kursor lub zmieniają
wartości widżetu i Escape „anulują” dla Menu i PopupMenu.
WEZWANIE
FvwmScript można wywołać, wstawiając linię `Module FvwmScript name_of_script' w
plik .fvwm2rc. Plik „nazwa_skryptu” może zaczynać się od ukośnika, w takim przypadku jest to a
w pełni kwalifikowaną ścieżkę i plik jest odczytywany. Jeśli „nazwa_skryptu” nie zaczyna się od a
slash, FvwmScript będzie wyglądał w kilku różnych miejscach. Jeśli plik .fvwm2rc zawierał plik
wiersz poleceń `*FvwmScript: Path path_of_the_script_directory', FvwmScript spróbuje tego
informator. Jeśli to nie zadziała, FvwmScript spróbuje wejść do katalogu konfiguracji systemu i
katalog konfiguracji użytkownika, jak opisano w poleceniu „Odczyt” w podręczniku fvwm man
strona.
Polecenie uruchomienia FvwmScript można umieścić w osobnej linii, jeśli ma to być FvwmScript
zrodził się podczas inicjalizacji fvwm lub może być powiązany z menu lub przyciskiem myszy lub
naciśnięcie klawisza, aby wywołać go później.
KONFIGURACJA OPCJE
W pliku konfiguracyjnym można użyć następujących poleceń (zob fvwm(1), sekcja MODUŁ
POLECENIA dla szczegółów). Są używane tylko wtedy, gdy odpowiednie polecenia skryptu nie są
użyte w skrypcie.
*FvwmScript: domyślna czcionka chrzcielnica
Określa domyślną czcionkę, która ma być używana. Jeśli nie określono tego polecenia lub w pliku
skrypt z poleceniem Czcionka, przyjmowana jest stała czcionka.
*FvwmScript: DefaultFore kolor
Określa domyślny kolor pierwszego planu, który ma być używany. Jeśli nie określono tego
polecenia lub w skrypcie z poleceniem ForeColor używany jest kolor czarny.
*FvwmScript: DefaultBack kolor
Określa domyślny kolor tła, który ma być używany. Jeśli nie określono tego
lub w skrypcie z poleceniem BackColor używany jest kolor grey85.
* FvwmScript: DefaultHilight kolor
Określa domyślny kolor podświetlenia, który ma być używany. Jeśli nie określono tego polecenia
lub w skrypcie z poleceniem HilightColor używany jest grey100.
*FvwmScript: DefaultShadow kolor
Określa domyślny kolor cienia, który ma być używany. Jeśli nie określono tego polecenia
lub w skrypcie z poleceniem ShadowColor używany jest grey55.
*FvwmScript: domyślny zestaw kolorów zestaw kolorów
Nakazuje modułowi użycie zestawu kolorów zestaw kolorów jako domyślny zestaw kolorów. Patrz
Strona podręcznika FvwmTheme zawierająca szczegółowe informacje na temat zestawów kolorów.
ANATOMIA OF A SCRIPT
FvwmScript używa określonego języka programowania. Scenariusz składa się z pięciu części.
Nagłówek zawiera ogólną charakterystykę okna i domyślne właściwości dla wszystkich
widżety. Druga część zawiera instrukcje, które są wykonywane przy starcie programu
scenariusz. Trzecia część zawiera zadania okresowe, które są wykonywane co sekundę. The
czwarta część zawiera instrukcje, które są wykonywane przy wyjściu. A ostatnia część zawiera
opis widżetów. Widżet składa się z jedenastu rodzajów elementów: etykiet tekstowych,
jednowierszowe wprowadzanie tekstu, przyciski opcji, pole wyboru, przyciski, poziome i pionowe
paski przewijania, prostokąty, wyskakujące menu, jaskółki i mini paski przewijania.
NAGŁÓWEK OF A SCRIPT
Składnia jest następująca:
Tytuł okna ciąg
Ta opcja ustawia tytuł okna.
Rozmiar okna szerokość wysokość
Ta opcja ustawia rozmiar okna. szerokość i wysokość są wartościami liczbowymi.
Pozycja okna x y
Ta opcja ustawia położenie okna. x i y są wartościami liczbowymi.
kolor tła {kolor}
Ta opcja ustawia domyślny kolor pierwszego planu dla wszystkich widżetów.
Kolor tyłu {kolor}
Ta opcja ustawia domyślny kolor tła dla wszystkich widżetów.
kolor podświetlenia {kolor}
Ta opcja ustawia domyślny kolor podświetlenia dla wszystkich widżetów.
kolor cienia {kolor}
Ta opcja ustawia domyślny kolor cienia dla wszystkich widżetów.
zestaw kolorów {n}
Ta opcja ustawia domyślny zestaw kolorów dla wszystkich widżetów.
Czcionka {chrzcielnica}
Ta opcja ustawia domyślną czcionkę dla wszystkich widżetów.
UżyjGettext [ścieżka_lokalizacji]
Włącz użycie mechanizmu gettext, który jest używany przez WindowLocaleTitle,
Instrukcje LocaleTitle, ChangeLocaleTitle i funkcja Gettext. Jeśli nie
zostanie podany argument, zostanie użyty domyślny katalog ustawień narodowych FvwmScript. Ten katalog jest
w katalogu instalacyjnym fvwm ustawień regionalnych, a domeną tekstową jest FvwmScript
(install_prefix/share/locale/*/LC_MESSAGES/FvwmScript.mo). Możesz to zresetować
katalog lub dodać niektóre katalogi dokładnie w taki sam sposób, jak za pomocą Ścieżka ustawień regionalnych fvwm
polecenie (zobacz stronę podręcznika fvwm). Niniejszą instrukcję należy umieścić przed
Instrukcja WindowLocaleTitle.
Tytuł oknaLocale ciąg
Ta opcja ustawia tytuł okna, ale używa katalogów ustawień regionalnych zdefiniowanych za pomocą
UżyjGettext.
INICJALIZACJA
Ta część zawiera instrukcje, które zostaną wykonane podczas uruchamiania. Na przykład:
W tym
Rozpocząć
Wykonaj polecenie „Exec cat tada.voc > /dev/dsp”
WarpPointer 1
Ustaw $Do zrobienia=Uruchom ponownie
Koniec
Instrukcje te służą do odtwarzania dźwięku, przesuwania wskaźnika do widżetu 1 i do
zainicjuj $ ToDo na „Uruchom ponownie” przy każdym uruchomieniu.
OKRESOWY ZADANIA
Ta część skryptu zawiera instrukcje wykonywane co sekundę. Dla
przykład:
Okresowe zadania
Rozpocząć
Jeśli (RemainderOfDiv (GetTime) 10)==0 Wtedy
Wykonaj {Exec xcalc}
Koniec
Ten przykład pokazuje, jak uruchamiać xcalc co 10 sekund.
THE QUIT FUNKCJA
Ta część skryptu zawiera instrukcje, które są wykonywane po zamknięciu skryptu
(po instrukcji Quit lub jeśli zamkniesz okno poleceniem Zamknij, Usuń lub Zniszcz
polecenie fvwm). Na przykład
Funkcja wyjscia
Rozpocząć
Zrób {echo pa, pa}
Koniec
Pamiętaj, że jeśli użyłeś polecenia KillModule fvwm do zamknięcia skryptu, niektóre
instrukcje lub funkcje, które opierają się na istnieniu łącza komunikacyjnego między
script i fvwm nie zostaną wykonane (na przykład polecenie Do). Aby płynnie zabić a
skrypt z poleceniem fvwm zobacz POLECENIA
GŁÓWNY OF A SCRIPT
Druga część skryptu zawiera opis każdego widżetu w skrypcie.
Każdy opis widżetu składa się z dwóch części. W pierwszej części opisano właściwości początkowe, tj
druga część zawiera instrukcje, które są wykonywane, gdy widżet odbiera wiadomości.
Wszystkie widżety mogą wysyłać i odbierać wiadomości. Wszystkie wiadomości są identyfikowane za pomocą numeru. The
komunikat „UserAction” jest wysyłany do widżetu, gdy użytkownik obsługuje widżet. Składnia
dla pierwszej części to:
Identyfikator widżetu # Liczba od 1 do 999 włącznie
Nieruchomość
Wpisz ciąg
Rozmiar szerokość wysokość
Pozycja xy
Tytuł { string }
Wartość wewn
Maksymalna wartość całkowita
Min.Wartość wew
Ciąg czcionki
ForeColor {kolor}
BackColor { kolor }
kolor podświetlenia {kolor}
kolor cienia {kolor}
Zestaw kolorów wewn
Flagi flagiOpt
Opcja flagsOpt opcji Flags jest oddzieloną spacjami listą zawierającą jeden lub więcej elementów
słowa kluczowe Ukryty, BrakCiągRelief, Brak ostrości, Lewa / Centrum / Prawa. Ukryty stosuje się
określ, czy widżet ma być ukryty podczas uruchamiania. BrakCiągRelief określa, czy ciągi są rysowane
z ulgą czy nie. Brak ostrości określa, czy widżet może uzyskać fokus klawiatury, czy nie.
Domyślnie wszystkie widżety mają fokus, z wyjątkiem Rectangle, HDipstick i VDipstick, które nie mogą.
Co więcej, widżety NoFocus są pomijane, gdy krążysz wokół widżetów z rozszerzeniem
(Shift-)Tab skrót. Lewa / Centrum / Prawa określa położenie tekstu. Te obowiązują
tylko do ItemDraw, List, Menu, PopupMenu i PushButton. Wartość domyślna to Centrum dla ItemDraw
i Przycisk i Lewa dla innych widżetów.
Nazwa LocaleTitle może być używana zamiast tytułu, aby korzystać z katalogów ustawień regionalnych zdefiniowanych za pomocą
UżyjGettext.
Pozycja każdego widżetu musi być określona.
Składnia drugiej części to:
Główny
Wiadomość o sprawie
Pojedyncze kliknięcie:
Rozpocząć
# lista instrukcji, które będą
# wykonywane po odebraniu widżetu
# wiadomość „SingleClic”. Ta wiadomość jest
# wygenerowane przez użytkownika.
Koniec
1:
Rozpocząć
# lista instrukcji, które będą
# wykonywane po odebraniu widżetu
# wiadomość 1
Koniec
Koniec
WYKAZ OF WIDŻETY
Istnieje piętnaście rodzajów widżetów.
CheckBox: Wyświetl pole wyboru z ciągiem znaków.
Tytuł: tytuł pola wyboru.
wartość: jeśli Wartość jest równa 1, pole jest zaznaczone, w przeciwnym razie nie.
Opona Rozmiar właściwość jest ignorowana.
Sztyft: wyświetla poziomy prętowy wskaźnik poziomu.
Ten widżet może służyć do wyświetlania użycia dysku.
wartość: określ aktualną wartość bagnetu.
MinWartość: określ minimalną wartość bagnetu.
Maksymalna wartość: określ maksymalną wartość bagnetu.
Narzucony jest minimalny rozmiar 30x11.
HSrollBar: wyświetla poziomy pasek przewijania.
wartość: położenie kciuka.
Maksymalna wartość: górna granica wartości.
MinWartość: dolna granica wartości.
Właściwość height jest ignorowana i narzucana jest minimalna szerokość. Szerokość powinna być
przynajmniej zakres plus 37 jeśli wszystkie wartości mają być wybieralne np. min 0 i
max 10 ma zakres 11 i dlatego powinien mieć minimalną szerokość 48.
PozycjaRysuj: Wyświetl ikonę i/lub ciąg znaków.
Tytuł: ciąg znaków do wyświetlenia.
Ikona: ikona do wyświetlenia.
Maksymalna wartość: x współrzędna kursora.
MinWartość: współrzędna y kursora.
Rozmiar jest wystarczająco duży, aby pomieścić tytuł i/lub ikonę.
Lista: Wyświetl listę.
Lista pozwala użytkownikowi wybierać pomiędzy różnymi opcjami.
wartość: określ, która opcja jest wybrana.
MinWartość: Pierwsza widoczna opcja.
Tytuł: tytuł zawiera opcje wyświetlane na liście. Składnia jest następująca:
{Opcja 1|Opcja 2|...|Opcja N}. Wszystkie menu są wyświetlane w górnej części okna.
Narzucona jest minimalna wysokość trzech elementów, a szerokość co najmniej
108.
Menu: Wyświetl menu, które pozwala użytkownikowi wybrać opcję.
Elementy typu Menu są ułożone od lewej do prawej wzdłuż górnej krawędzi okna.
Właściwości size i position są ignorowane.
wartość: określ, która opcja jest wybrana.
Tytuł: tytuł zawiera opcje wyświetlane w menu. Składnia jest następująca:
{Opcja 1|Opcja 2|...|Opcja N}.
Miniprzewijanie: wyświetla bardzo mały pionowy pasek przewijania.
wartość: położenie kciuka.
Maksymalna wartość: górna granica wartości.
MinWartość: dolna granica wartości.
Rozmiar jest ustawiony na 19x34.
Menu podręczne: Wyświetl menu podręczne.
wartość: określ, która opcja jest wybrana.
Tytuł: tytuł ma następującą składnię: {Opcja 1|Opcja 2|...|Opcja N}."Opcja
1|Opcja 2|...|Opcja N" to menu podręczne, które jest wyświetlane po naciśnięciu myszy
przycisk.
Właściwość size jest ignorowana.
Naciśnij przycisk: Wyświetl przycisk z ikoną i/lub napisem.
Tytuł: ten łańcuch ma następującą składnię {Tytuł przycisku|Opcja 1|Opcja
2|Opcja3|...|Opcja N}. „Opcja 1|Opcja 2|...|Opcja N” to wyskakujące menu, które
jest wyświetlany po naciśnięciu prawego przycisku.
Ikona: ikona do wyświetlenia.
Przycisk jest wystarczająco duży, aby zmieścił się na ikonie i/lub etykiecie.
Przycisk radiowy: Wyświetl przycisk radiowy z ciągiem znaków.
Tytuł: tytuł przycisku radiowego.
wartość: jeśli Wartość jest równa 1, pole jest zaznaczone, w przeciwnym razie nie.
Właściwość size jest ignorowana
Prostokąt: Wyświetl prostokąt.
Tego typu widżet można wykorzystać do dekoracji okna.
JaskółkaExec
Ten typ widżetu powoduje, że FvwmScript uruchamia proces i przechwytuje pierwszy
okno, którego nazwa lub zasób jest równy Tytułowi, i wyświetlić je w skrypcie
okno.
Tytuł: określ nazwę okna, które ma zostać przechwycone i wyświetlone w skrypcie
okno.
JaskółkaExec: określ wiersz poleceń do wykonania w celu odrodzenia procesu. Moduły mogą
również zostać połkniętym.
wartość: określ wygląd obramowania. Możliwa wartość: -1, 0, 1.
Rozmiar jest co najmniej 30x30
Pole tekstowe: Wyświetl pole wprowadzania tekstu.
Pole wprowadzania tekstu może służyć do edytowania ciągu jednowierszowego.
Tytuł: zawartość pola tekstowego.
wartość: położenie punktu wstawienia.
MinWartość: pozycja końca zaznaczenia.
Maksymalna wartość: pierwszy widoczny znak tytułu
Właściwość height jest ignorowana, szerokość jest szersza o co najmniej 40 pikseli
niż początkowa zawartość.
VMiarka: Wyświetla pionowy wskaźnik poziomu.
wartość: określ aktualną wartość bagnetu.
MinWartość: określ minimalną wartość bagnetu.
Maksymalna wartość: określ maksymalną wartość bagnetu.
Rozmiar jest co najmniej 11x30.
VScrollBar: Wyświetla pionowy pasek przewijania.
wartość: położenie kciuka.
Maksymalna wartość: górna granica wartości.
MinWartość: dolna granica wartości.
Właściwość width jest ignorowana i narzucana jest minimalna wysokość. Wysokość powinna
być co najmniej zakresem plus 37, jeśli wszystkie wartości mają być wybieralne, np. min 0
a max 10 ma zakres 11 i dlatego powinien mieć minimalną wysokość 48.
INSTRUKCJA
Oto opis wszystkich instrukcji.
Ukryj widżet id : ukryj numerowany widżet id.
Pokaż widżet id: pokazuje numerowany widżet id.
Zmiana waluty id1 id2
Ustaw wartość widżetu numerowanego id1 do id2.
Zmień wartość maksymalną id1 id2
Ustaw maksymalną wartość numerowanego widżetu id1 do id2.
Zmień minimalną wartość id1 id2
Ustaw minimalną wartość widżetu numerowanego id1 do id2.
Zmień tytuł id1 id2
Ustaw numerowany tytuł widżetu id1 do id2.
ZmieńTytułOkna ciąg
Ustaw tytuł okna na ciąg.
ZmieńWindowTitleFromArg liczba
Ustaw tytuł okna na wartość liczba-ty argument skryptu.
Zmień tytuł ustawień regionalnych id1 id2
Jako ChangeTitle, ale użyj katalogów ustawień regionalnych zdefiniowanych za pomocą UseGettext.
Zmień ikonę id1 id2
Ustaw ikonę widżetu numerowaną id1 do id2.
ZmieńForeColor id1 {kolor}
Ustaw kolor pierwszego planu numerowanego widżetu id1 do {kolor}.
Zmień kolor wstecz id1 {kolor}
Ustaw kolor tła numerowanego widżetu id1 do {kolor}.
Zmień zestaw kolorów id1 id2
Ustaw zestaw kolorów widżetu numerowanego id1 do id2. Określenie widżetu 0 ustawia
zestaw kolorów głównego okna.
Zmień pozycję id1 x y
Przenieś widżet o numerze id1 na pozycję (x,y).
Zmień rozmiar id1 szerokość wysokość
Ustaw rozmiar widżetu numerowanego id1 do (szerokość,wysokość).
Zmień czcionkę id1 nowa czcionka
Ustaw czcionkę numerowanego widżetu id1 do nowa czcionka.
Wskaźnik Warp id
Przenieś wskaźnik myszy do widżetu o numerze id.
Zapisz do pliku filename {str1} {str2} itd
Napisz do pliku filename ciąg będący konkatenacją wszystkich argumentów
str1, str2, itp.
Do {komenda args}
Wykonaj polecenie fvwm w bloku Do. Dowolne polecenie fvwm opisane w sekcji
Można użyć strony man fvwm2. Polecenia są wysyłane z tego modułu do głównego fvwm
program do obróbki. Długość polecenia i argumentów nie może przekraczać 988
postacie.
Ustaw $było={str1} {str2} itd
Połącz wszystkie argumenty w łańcuch i ustaw zmienną $było do tego ciągu.
Quit: wyjście z programu.
Wyślij sygnał id1 id2
Wyślij wiadomość numerowaną id2 do widżetu id1.
WyślijToScript id_skrypt {str11} {str2} itd
Wyślij wiadomość do skryptu identyfikowanego przez id_script. Wiadomość jest
konkatenacja str1, str2...
Klawisz Nazwa klucza zmiana id porządek str1 str2 itp
Wiąże klawisz klawiatury z instrukcją
Wyślij sygnał id porządek
i ustawia „ostatni ciąg” na konkatenację str1, str2... (patrz
funkcja LastString). The Nazwa klucza i modyfikatory pola są zdefiniowane jak w fvwm
Kluczowe polecenie.
ARGUMENTY
Większość poleceń używa argumentów. Istnieją dwa rodzaje argumentów: liczby i ciągi znaków. A
argument liczbowy to wartość z przedziału od -32000 do +32000. Ciąg jest zawsze
otoczony szelkami. Zmienne zawsze zaczynają się od znaku „$” i mogą zawierać oba te znaki
cyfry i ciągi znaków.
FUNKCJE
Wszystkie funkcje używają argumentów. Funkcje mogą zwracać zarówno łańcuch, jak i liczbę. Składnia
jest:
(funkcja argument1 argument2 itd.)
Oto pełna lista argumentów:
(Pobierz tytuł id)
Zwróć tytuł widżetu o numerze id.
(Pobierz wartość id)
Zwróć aktualną wartość widżetu numerowanego id.
(PobierzMinValue id)
Zwróć aktualną wartość Min widżetu numerowanego id.
(UzyskajMaxWartość id)
Zwróć aktualną wartość Max widżetu numerowanego id.
(PobierzFore id)
Zwraca bieżącą wartość pierwszego planu RGB widżetu numerowanego id w formacie szesnastkowym
RRGGBB.
(Cofnąć się id)
Zwraca bieżącą wartość tła RGB widżetu numerowanego id w formacie szesnastkowym
RRGGBB.
(Pobierz Hilight id)
Zwraca bieżącą wartość podświetlenia RGB widżetu numerowanego id w formacie szesnastkowym
RRGGBB.
(Pobierz cień id)
Zwraca bieżącą wartość cienia RGB widżetu numerowanego id w formacie szesnastkowym
RRGGBB.
(GetOutput {str} intxnumx intxnumx)
Wykonuje polecenie str, pobiera standardowe wyjście i zwraca słowo, które jest w
linia intxnumx i na stanowisku intxnumx. Jeśli intxnumx jest równe -1, zwraca GetOutput
kompletna linia.
(Liczba do szesnastkowej int)
Zwróć wartość szesnastkową z int.
(HexToNum {str})
Zwróć wartość dziesiętną z str, str musi być wartością szesnastkową.
(Dodać intxnumx intxnumx)
Zwróć wynik (intxnumx+intxnumx).
(Mult intxnumx intxnumx)
Zwróć wynik (intxnumx*intxnumx).
(Dz intxnumx intxnumx)
Zwróć wynik (intxnumx/intxnumx).
(StrCopy {str} intxnumx intxnumx)
Zwróć ciąg, który znajduje się między pozycjami int1 i int2. Na przykład (StrCopy
{Cześć} 1 2) zwraca {On}
(Skrypt uruchamiania {str})
Ta funkcja uruchamia skrypt o nazwie str i zwraca numer identyfikacyjny.
Numer ten jest niezbędny do korzystania z funkcji SendToScript i ReceiveFromScript.
Ciąg str zawiera nazwę skryptu i kilka argumentów.
(GetScriptArgument {int})
Ta funkcja zwraca skrypt argumentu używany w funkcji LaunchScript. Jeśli
int jest równe zero, GetScriptArgument zwraca nazwę skryptu.
(GetScriptOjciec)
Ta funkcja zwraca numer identyfikacyjny ojca skryptu.
(Odbierz ze skryptu {int})
Ta funkcja zwraca komunikat wysłany przez skrypt o numerze int.
(pozostała częśćDiv {intxnumx intxnumx}): T
Ta funkcja zwraca resztę z dzielenia (intxnumx/intxnumx).
(Uzyskać czas)
Ta funkcja zwraca czas w sekundach.
(PobierzPid)
Ta funkcja zwraca identyfikator procesu skryptu.
(Pobierz tekst {str})
Ta funkcja zwraca tłumaczenie str przy użyciu zdefiniowanych katalogów ustawień regionalnych
za pomocą UseGettext.
(WyślijMsgAndPobierz {comId} {cmd} bool)
Wysyła polecenie cmd z identyfikatorem comId do zewnętrznego programu gotowego do
komunikować się ze skryptem za pomocą protokołu specyficznego dla FvwmScript. Jeśli bool jest 0
FvwmScript nie czeka na odpowiedź z zewnętrznego programu. W tym przypadku
zwracana wartość to 1, jeśli wiadomość może zostać wysłana do programu zewnętrznego i 0, jeśli
nie o to chodzi. Jeśli bool wynosi 1, to FvwmScript czeka na odpowiedź z
program zewnętrzny, a wartością zwracaną jest ta odpowiedź (wiersz nie większy niż 32000
postacie). Jeśli komunikacja nie powiedzie się, zwrócona wartość to 0. Zobacz sekcję
A TELEKOMUNIKACJA PROTOKÓŁ aby uzyskać opis używanego protokołu komunikacyjnego.
(Analizuj {str} int)
gdzie str musi być ciągiem postaci:
X1S1X2S2X3S3...SnXn
gdzie Xn to liczby zawierające cztery cyfry dziesiętne, a Sn to ciągi
długość dokładnie Xn. Zwracana wartość to ciąg Sint. Jeśli int jest poza zasięgiem
(np. >n) zwracana wartość jest pustym łańcuchem. Jeśli str nie należy do podanych
formularz, zwracana wartość jest nieprzewidywalna (ale w średniej jest pusta). Ta funkcja
jest przydatna do obsługi ciągów zwracanych przez funkcję SendMsgAndGet.
(Ostatni ciąg)
Ta funkcja zwraca „bieżący ciąg roboczy” dla instrukcji Key i
Polecenie SendString (patrz POLECENIA Sekcja). Podczas uruchamiania ten ciąg jest pusty, ale
gdy wykryte zostanie powiązanie klawisza (odpowiednio odebrane polecenie SendString),
następnie ten ciąg jest ustawiany na ciąg powiązany z instrukcją (odpowiednio,
do komendy).
WARUNKOWY PĘTLE
Istnieją trzy rodzaje pętli warunkowych. Instrukcja „Jeżeli-to-inaczej” ma
następująca składnia:
Jeśli $Do zrobienia=={Otwórz xcalc} To
Wykonaj {Exec xcalc &} # Lista instrukcji
Więcej
Rozpocząć
Wykonaj {Exec killall xcalc &} # Lista instrukcji
Czy {Exec echo xcalc zabity > /dev/console}
Koniec
Druga część „Else-Begin-End” jest opcjonalna. Jeśli pętla zawiera tylko jedną instrukcję,
Początek i koniec można pominąć. Instrukcja „While-Do” ma następującą składnię:
Podczas gdy $i<5 Zrób
Rozpocząć
Ustaw $i=(Dodaj i 1) # Lista instrukcji
Koniec
Dwa łańcuchy można porównać za pomocą „==”, a dwie liczby za pomocą „<”, „<=”,
"==", ">=", ">". Pętla „For-Do-Begin-End” ma następującą składnię:
Dla $i=1 do 20 Zrób
Rozpocząć
Wykonaj {Exec xcalc &} # Lista instrukcji
Koniec
POLECENIA
Następujące polecenie fvwm może zostać wykonane w dowolnym momencie
Wyślij do modułu Nazwa Skryptu Wyślij ciąg id porządek str
wysyła do dowolnego modułu z pasującym aliasem lub nazwą Nazwa Skryptu ciąg
Wyślij ciąg id porządek str
Gdy FvwmScript otrzyma taką wiadomość, wysyła ją do widżetu id sygnał numerowany
porządek i sznurek str można uzyskać za pomocą funkcji LastString. Dajmy an
przykład. Powiedzmy, że masz skrypt MyScript z widżetem:
Widżet 50
Nieruchomość
Wpisz przycisk
Tytuł {Wyjdź}
...
Główny
Wiadomość o sprawie
Pojedyncze kliknięcie:
Rozpocząć
porzucić
Koniec
1:
Rozpocząć
Ustaw $str = (Ostatni ciąg)
Jeśli $str == {Zakończ} Wtedy
porzucić
Więcej
Zmień tytuł 33 $str
Koniec
Koniec
Następnie polecenie
SendToModule MyScript SendString 50 1 str
zmusza MyScript do wyjścia, jeśli str jest równe „Quit”, a jeśli nie, zmienia tytuł
Widżet 33 na ul.
To polecenie może być użyte do zmiany tytułu okna
Wyślij do modułu Nazwa Skryptu ZmieńTytułOkna nowyTytuł [stary tytuł]
powoduje to, że dowolny moduł z pasującym aliasem lub nazwą Nazwa Skryptu zmienia swoje
powiązany tytuł okna do nowyTytuł. Argument opcjonalny staryTytuł ma sens, kiedy tam jest
to kilka instancji tego samego skryptu. Pozwala uniknąć zmiany nazwy
wszystkie te instancje, określając nazwę okna powiązanego ze skryptem docelowym
(patrz przykład poniżej).
+ Moduł I FvwmScript FvwmStorageSend "/dev/hda6"
+ Czekam FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ Moduł I FvwmScript FvwmStorageSend "/dev/hda1"
+ Czekam FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA1 FvwmStorageSend
Bez argumentu FvwmStorageSend w ostatnim przypadku polecenie SendToModule miałoby
zmieniono na HDA1 nazwę obu wystąpień FvwmStorageSend.
PRZYKŁADY
Przykłady skryptów znajdziesz w katalogu konfiguracyjnym fvwm.
FvwmScript-BellSetup, FvwmScript-KeyboardSetup, FvwmScript-PointerSetup i FvwmScript-
ScreenSetup to zestaw skryptów modyfikujących ustawienia X. Skrypty te zapisują preferencje
do pliku o nazwie ~/.xinit-fvwmrc (Jeśli chcesz użyć innej nazwy pliku, podaj ją jako
pierwszy argument skryptu). Jeśli chcesz ładować te preferencje przy każdym uruchomieniu,
musisz dołączyć linię ".xinit-fvwmrc" do swojego pliku .xinitrc (lub .xsession) przed
uruchamianie fvwm.
FvwmScript-BaseConfig modyfikuje politykę myszy fvwm i stronicowania, rozmieszczenie okien,
krycie i inne funkcje poleceń przenoszenia i zmiany rozmiaru, przyciąganie przyciągania i cieniowanie
animacja. Ten skrypt zapisuje preferencje w pliku o nazwie .FvwmBaseConfig w pliku użytkownika
katalog danych (tj. $HOME/.fvwm lub $FVWM_USERDIR, jeśli jest ustawiony). Jeśli chcesz je załadować
preferencje przy każdym uruchomieniu musisz dodać wiersz „Read .FvwmBaseConfig” w swoim fvwm
plik konfiguracyjny. Jeśli chcesz użyć innej nazwy pliku, podaj ją jako pierwszy argument
skryptu. Po kliknięciu OK lub Zastosuj funkcję fvwm, którą możesz zdefiniować o nazwie
BaseConfigOkFunc lub BaseConfigApplyFunc jest wywoływana. Pozwala to na przeładowanie konkretnych
style aplikacji zniszczone przez skrypt (np. AddToFunc BaseConfigOkFunc I Read
Mój styl aplikacji).
FvwmScript-Buttons to panel przycisków, który może zastąpić FvwmButtons (ten skrypt obsługuje
wyskakujących menu i wymaga xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset pozwala
edytować swój zestaw kolorów (zobacz FvwmTheme). FvwmScript-Date pozwala ustawić datę i
czas. FvwmScript-FileBrowser to przeglądarka plików używana przez inne skrypty. FvwmScript-
Find to elementarny interfejs do znajdowania. FvwmScript-Quit pozwala wyjść z fvwm, zrestartować
fvwm lub inny menedżer okien albo zamknij i uruchom ponownie komputer. FvwmScript-
ScreenDump to zrzut ekranu. FvwmScript-WidgetDemo to czysty przykładowy skrypt. Zobacz
następna sekcja dla FvwmScript-ComExample.
A TELEKOMUNIKACJA PROTOKÓŁ
FvwmScript to słaby (ale prosty) język programowania. Jeśli masz do czynienia z wieloma
danych i/lub musisz użyć złożonych algorytmów, powinieneś użyć zewnętrznego programu (w języku perl
na przykład) i „wyślij” żądane informacje do skryptu FvwmScript. Pierwszy
podejście polega na użyciu funkcji GetOutput. To proste, ale powinieneś ponownie uruchomić plik
zewnętrznego programu za każdym razem, gdy potrzebujesz z niego informacji (a to może powodować problemy z wydajnością
problemy). Drugim podejściem jest użycie funkcji SendMsgAndGet, która rozszerza
FvwmScript przy użyciu dowolnego języka programowania obsługującego nazwane potoki (fifos). My
opisz to rozwiązanie w tej sekcji. (Trzecim podejściem jest użycie fvwm-themes-com from
pakiet fvwm-themes, ale w rzeczywistości metoda SendMsgAndGet jest implementacją
fvwm-themes-com wewnątrz FvwmScript, co daje lepszą wydajność).
Zasadniczo uruchamiasz program „zewnętrzny” (w skrócie program) ze swojego FvwmScript
skrypt (w skrócie skrypt). Ten program działa w tle i używasz
SendMsgAndGet w swoim skrypcie, aby zadawać pytania lub wydawać instrukcje
program. Program musi ściśle przestrzegać określonego protokołu komunikacyjnego. Po pierwsze
wszystko jest identyfikatorem comId do komunikacji powinien zawierać id procesu
skryptu dla dobrej implementacji protokołu (użyj funkcji GetPid i pass
dotychczasowy comId poprzez opcję programu). Protokół wykorzystuje dwa Fifos, w użytkowniku fvwm
katalog o nazwie: .tmp-com-in-comId i .tmp-com-out-comId. Program powinien tworzyć i
słuchaj na .tmp-com-in-comId fifo. Następnie, gdy FvwmScript wykonuje funkcję pliku
Formularz:
Ustaw $answer = (SendMsgAndGet {comId} {cmd} bool)
FvwmScript pisze cmd na tym fifie. W ten sposób program może odczytać plik cmd i może
wykonaj odpowiednią akcję (powinno usunąć in fifo do obsługi multi-
komunikacja). Jeśli bool wynosi 0, FvwmScript nie czeka na odpowiedź z programu i
zwróć 1, jeśli poprzednie akcje zakończyły się powodzeniem i 0, jeśli się nie powiodły (wtedy program powinien „go
back" do in fifo). Jeśli bool wynosi 1, to FvwmScript czeka (20 sekund) na odpowiedź od
program i z kolei zwraca odpowiedź do skryptu (zauważ, że bool nie jest przekazywana do
program, ponieważ musi wiedzieć, które polecenia wymagają odpowiedzi). Aby odpowiedzieć, program tworzy
.tmp-com-out-comId fifo i zapisuje na nim odpowiedź. Program powinien czekać do godz
FvwmScript czyta odpowiedź, a następnie powinien usunąć out fifo i wrócić do in
fifo. Odpowiedź powinna składać się z jednego wiersza nie dłuższego niż 32000 znaków (spójrz
w funkcji Parse do obsługi wielu linii jako jednej linii).
Prostym sposobem na zrozumienie tego protokołu oraz napisanie skryptów i programów, które go używają, jest
rzucić okiem na (nieprzydatny) przykład FvwmScript-ComExample i fvwm-script-
ComExample.pl (który można znaleźć w katalogu danych fvwm). Co więcej, ta realizacja
protokołu rozwiązuje pytania takie jak: Co zrobić, jeśli skrypt zakończy działanie ze złego powodu?
Co zrobić, jeśli program zakończy działanie z niewłaściwego powodu? ...itp.
Korzystaj z FvwmScript online, korzystając z usług onworks.net