The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

FvwmScript (1)
  • >> FvwmScript (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  •  

    НАЗВАНИЕ

    FvwmScript - модуль для построения графического интерфейса пользователя

     

    СИНТАКСИС

    FvwmScript должен вызываться оконным менеджером Fvwm. Он не будет работать при вызове из командной строки.

     

    ОПИСАНИЕ

    FvwmScript - это модуль, которые позволяет строить графические приложения такие как параметры desktop'а, панель кнопок с всплывающим меню, модальные диалоги и т.д. При старте FvwmScript читает содержащий сценарий файл, который задается ему в командной строке. Этот сценарий не включается в конфигурационный файл Fvwm.

     

    ВЫЗОВ

    FvwmScript может быть вызван из файла .fvwmrc командой`Module FvwmScript имя_сценария'. Все сценарии, использемые FvwmScript, должны находится в каталоге, который задается в файле .fvwmrc строкой вида: `*FvwmScriptPath путь_каталога_с_сценариями'. Кроме того при вызове модуля FvwmScript при инициализации Fvwm или из меню или по горячей клавише, Fvwm будет искать модуль FvwmScript в каталоге, указанном в параметре ModulePath конфигурационного файла .fvwmrc.

    Убедитесь, что вы правильно определили ModulePath.

     

    АНАТОМИЯ СЦЕНАРИЯ

    FvwmScript использует свой собственный язык программирования. Его сценарий состоит из четырех частей. Заголовок содержит общие характеристики окна и свойства по умолчанию для всех элементов управления (widgets). Вторая часть содержит инструкции, которые выполняются при старте сценария. Третья часть содержит описания периодических задач, которые выполняются раз в секунду. Последняя, четвертая, часть содержит описания элементов управления. Можно задавать элементы управления одиннадцати различных типов: текстовые метки, однострочные поля ввода, checkbox'ы, radio button'ы (т.е. кнопки с зависимой и независимой фиксацией), горизонтальные и вертикальные полосы прокрутки, четырехугольники, всплывающие меню, уменьшенные окна и миниатюрные полосы прокрутки.

     

    ЗАГОЛОВОК СЦЕНАРИЯ

    Заголовок имеет следующий синтаксис:

    WindowTitle строка

    Эта опция устанавливает заголовок окна.

    WindowSize ширина выстота

    Эта опция устанавливает размер окна. ширина и высота - числовые значения.

    WindowPosition x y

    Эта опция задает положение окна. x и y - числовые значения.

    ForeColor {цвет}</p>
    Эта опция устанавливает цвет переднего плана по умолчанию для всех элементов управления. <tag>BackColor {цвет}

    Эта опция устанавливает цвет фона по умолчанию для всех элементов управления.

    HilightColor {цвет}

    Эта опция устанавливает цвет выделения по умолчанию для всех элементов управления.

    ShadowColor {цвет}

    Эта опция устанавливает цвет тени для всех элементов управления.

    Font {шрифт}

    Эта опция устанавливает шрифт текста по умолчанию для всех элементов управления.

     

    ИНИЗИАЛИЗАЦИЯ

    Эта часть содержит инструкции, которые будут выполнены при старте. Например:

    
    Init
    
    Begin
    
      Do "Exec cat tada.voc > /dev/dsp"
      WarpPointer 1
    
    Set $ToDo="Restart"
    
    End
    
    

    Эти инструкции используются для проигрывания звука, перемещении указателя на элемент управления с номером 1 и для инициализации переменной $ToDo значением "Restart" при каждом старте сценария.

     

    ПЕРИОДИЧЕСКИЕ ЗАДАЧИ

    Эта часть сценария содержит несколько инструкций, которые выполняются один раз в секунду. Например:

    
    Periodic Task
    
    Begin
    
    If (RemainderOfDiv (GetTime) 10)==0 Then
      Do {Exec xcalc}
    
    End
    
    

    Этот пример показывает, как вызывать xcalc каждые 10 секунд.

     

    ГЛАВНАЯ ЧАСТЬ СЦЕНАРИЯ

    Вторая часть сценария содержит описание для каждого элемента управления, которое будет затем использоваться в программе. Описание элемента состоит из двух частей. Первая часть описывает начальные свойства, а вторая часть содержит инструкции, которые будут выполнены при получении сообщения. Все элементы могут посылать и принимать сообщения, которые идентифицируются по номеру. При выборе элемента управления ему посылается сообщение "UserAction". Ниже приведен синтаксис описаний:

    Widget id # Set the id widget

    Property

    Type string

    Size width height

    Position x y

    Title { string }

    Value int

    MaxValue int

    MinValue int

    Font string

    ForeColor { color }

    BackColor { color }

    HilightColor { color }

    ShadowColor { Color }

    Flags Hidden and/or NoReliefString

    Опция `Flags' задается в том случае, если элемент должен быть невидимым или текст на нем должен быть выведен в плоском (не трехмерном) исполнении.

    
    Main
    
    Case Message of
    
    SingleClic:
    
    Begin
    
    &035; список инструкций, которые будут
    &035; выполнены, когда виджет принимает
    &035; сообщение "SingleClic". Это сообщение
    &035; генерируется пользователем.
    
    End
    
    1:
    
    Begin
    
    &035; список инструкций, которые будут выполнены
    &035; когда виджет принимает сообщение 1
    End
    
    End
    
    

     

    СПИСОК ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

    Имеется пятнадцать типов элементов управления.

    ItemDraw:

    Отображает иконку и/или строку.

    Title:

    Строка для отображения.

    Icon:

    Иконка для отображения.

    PushButton:

    Отображает кнопку с иконкой и/или строкой.

    Title:

    Это строка которая имеет следующий синтаксис:

    
    {Заголовок кнопки|Опция 1|Опция 2|Опция 3|...|Опция N}.
    
    
    "Опция 1|Опция 2|...|Опция N" - это всплывающее меню, которое отображается при нажатии правой кнопки мыши.

    Icon:

    Иконка для отображения.

    RadioButton:

    Отображает radio button вместе со строкой. </p>

    Title: заголовок radio button.

    Value: если Value равно 1, то бокс проверяется, в других случаях нет.

    CheckBox: Отображает check box вместе со строкой.

    Title: заголовок для check box.

    Value: если Value равно 1, то бокс проверяется, в других случаях нет.

    TextField: Отображает поле ввода текста. Эта полоса может быть использована для редактирования одной строки. <p> Title: текстовое содержимое поля.

    Value: позиция указателя вставки.

    HScrollBar: Отображает горизонтальную полосу прокрутки.

    Value: позиция бегунка.

    MaxValue: верхнее предельное значение.

    MinValue: нижнее предельное значение.

    VScrollBar: Отображает вертикальную полосу прокрутки.

    Value: позиция бегунка.

    MaxValue: верхнее предельное значение.

    MinValue: нижнее предельное значение.

    MiniScrollBar: Отображает очень маленькую вертикальную полосу прокрутки.

    Value: позиция бегунка.

    MaxValue: верхнее предельное значение.

    MinValue: нижнее предельное значение.

    Rectangle: Отображает четырехугольник. Этот тип элемента управления может использоваться для оформления окна. <p> SwallowExec: Этот тип элемента управления заставляет FvwmScript вызвать процесс и захватить первое окно, чье имя или ресурс равны Title, и отобразить его в окне сценария. <p> Title: задает имя окна, которое будет захвачено и отображено в окне сценария.

    SwallowExec: задает командную строку для запуска вызываемого процесса. Модули также могут быть обработаны таким же образом.

    Value: задает видимый борждюр. Возможны значения: -1, 0, 1.

    PopupMenu: Отображает всплывающее меню.

    Value: задает какая опция выбирается.

    Title: заголовок имеет следующий синтакс: {Опция 1|Опция 2|...|Опция N}. "Опция 1|Опция 2|...|Опция N" это всплывающее меню, которое отображается, при нажатии кнопки мыши.

    HDipstick: Отображает специальную полоску (dipstick). Этот виджет может использоваться для отображения используемого пространства на диске. <p> Value: задает текущую величину dipstick.

    MinValue: задает минимальное значение dipstick.

    MaxValue: задает максимальное значение dipstick.

    VDipstick: Отображает вертикальную dipstick.

    Value: задает текущую величину dipstick.

    MinValue: задает минимальное значение dipstick.

    MaxValue: задает максимальное значение dipstick.

    List: Отображает список. Список дает пользователю возможность выбора между несколькими опциями. <p> Value: определяет какая опция выбирается.

    Title: заголовок содержит опции списка. Синтакс заголовка следующий: {Опция 1|Опция 2|...|Опция N}. Все меню отображаются вверху окна.

    Menu: Отображает меню которое позволяет пользователю выбрать опцию. <p> Value: определяет какая опция выбирается.

    Title: заголовок содержит опции меню. Синтакс заголовка следующий: {Опция 1|Опция 2|...|Опция N}.

     

    ИНСТРУКЦИИ

    Здесь описываются все инструкции.

    HideWidget id : спрятать виджет с номером id.

    ShowWidget id: показать виджет с номером id.

    ChangeValue id1 id2: установить значение виджета с номерами от id1 до id2. <p> ChangeMaxValue id1 id2: установить максимальное значение виджета с номерами от id1 до id2.

    ChangeMinValue id1 id2: установить минимальное значение виджета с номерами от id1 до id2.

    ChangeTitle id1 id2: установить заголовок виджета с номерами от id1 до id2.

    ChangeIcon id1 id2: установить иконку виджета с номерами от id1 до id2.

    ChangeForeColor id1 {color}: установить цвет переднего плана для виджета с номерами от id1 до {color}.

    ChangeBackColor id1 {color}: установить цвет фона для виджета с номерами от id1 до {color}.

    ChangePosition id1 x y: переместить виджет с номером id1 в позицию (x,y).

    ChangeSize id1 width height: установить размер виджета с номером id1 в (width,height).

    ChangeFont id1 newfont: установить фонт для виджета с номером id1 в newfont.

    WarpPointer id: поместить указатель мыши в виджет с номером id.

    WriteToFile filename {str1} {str2} ...: записать в файл filename строку, которая является результатом слияния аргументов str1, str2, ...

    Do {str1} {str2} ...: выполнить команду которая является результатом слияния аргументов str1, str2, ...

    Set $var={str1} {str2} ...: слить все

    аргумент в строку и установить присвоить переменной $var значение строки.

    Quit: выйти из программы.

    SendSignal id1 id2: послать сообщение с номером id2 в виджет id1.

    SendToScript id_script {str11} {str2} ...: послать сообщение в сценарий id_script. Это сообщение является результатом слияния str1, str2...

     

    АРГУМЕНТЫ

    Большинство команд используют аргументы. Имеется два вида аргументов: числа и строки. Численный аргумент может принимать значение от -32000 до +32000. Строка всегда заключена в скобки. Переменные всегда начинаются с символа "$" и могут содержать и числа и строки.

     

    Функции

    Все функции используются как аргументы. Функции могут возвращать как строки так и числа. Синтаксис:

    
    (function argument1 argument2 ...)
    
    

    Ниже приводится полный список аргументов:

    (GetTitle id): возвращает заголовок виджета с номером id.

    (GetValue id): возвращает текущее значение виджета с номером id.

    (GetOutput {str} int1 int2): выполняет команду str, захватывает стандартный вывод и возвращает слово, которое есть в строке int1 и которое встречается в int2. Если int2 равно -1, то GetOutput возвращает полную строку."

    (NumToHex int): возвращает шестнадцатиричное значение int.

    (HexToNum {str}): возвращает десятичное значение str, str должно быть шестнадцатиричным значением."

    (Add int1 int2): возвращает результат (int1+int2).

    (Mult int1 int2): возвращает результат (int1*int2).

    (Div int1 int2): возвращает результат (int1/int2).

    (StrCopy {str} int1 int2): возвращает подстроку, которая находится в строке str между позициями int1 и int2. Например, (StrCopy {Hello} 1 2) возвращает {He}"

    (LaunchScript {str}): эта функция запускает сценарий с именем str и возвращает идентификационный номер. Этот номер необходим при использовании таких функций как SendToScript и ReceivFromScript. Строка str содержит имя сценария и несколько аргументов."

    (GetScriptArgument {int}): эта функция возвращает аргумент-сценарий,

    использующийся в функции LaunchScript. Если int равен нулю, GetScriptArgument возвращает имя данного сценария."

    (GetScriptFather): эта функция возвращает идентификационный номер

    сценария-родителя."

    (ReceivFromScript {int}): эта функция возвращает сообщение посланное сценарию с номером int."

    (RemainderOfDiv {int1 int2}): эта функция возвращает остаток

    от деления (int1/int2)."

    (GetTime): эта функция возвращает время в секундах.

    <descrip>

     

    Условные циклы

    Имееется три вида циклов по условию. Инструкция "If-Then-Else" имеет следующий синтакс:

    
    If $ToDo="={Open" xcalc} Then
            Do {Exec xcalc &} # список инструкций
    Else
            Begin
                    Do {Exec killall xcalc &} # список инструкций
                    Do {Exec echo xcalc killed > /dev/console}
            End
    
    

    Вторая часть "Else-Begin-End" необязательна. Если цикл содержит только одну инструкцию, то Begin и End могут быть опушены. Инструкция "While-Do" имеет следующий синтакс:

    
    While $i<5 Do
    Begin
            Set $i="(Add" i 1) # список инструкций
    End
    
    

    Две строки могут сравниваться оператором "==", а два числа могут сравниваться операторами "<", "<=", "==", ">=", ">". Цикл "For-Do-Begin-End" имеет следующий синтакс:

    
    For $i="1" To 20 Do
    Begin
            Do {Exec xcalc &} # список инструкций
    End
    
    

     

    АВТОР(Ы)

    Frederic Cordier (cordie97@cui.unige.ch или f-cord96@univlyon1.fr).

     

    Распространитель

    Eddy J. Gurney (eddy@gizmo.aa.ans.net).

     

    Перевод

    Перевел с английского Висктор Вислобоков (E-mail: victor_v@permonline.ru, FIDO: 2:5054/69.34@Fidonet.org)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВЫЗОВ
    АНАТОМИЯ СЦЕНАРИЯ
    ЗАГОЛОВОК СЦЕНАРИЯ
    ИНИЗИАЛИЗАЦИЯ
    ПЕРИОДИЧЕСКИЕ ЗАДАЧИ
    ГЛАВНАЯ ЧАСТЬ СЦЕНАРИЯ
    СПИСОК ЭЛЕМЕНТОВ УПРАВЛЕНИЯ
    ИНСТРУКЦИИ
    АРГУМЕНТЫ
    Функции
    Условные циклы
    АВТОР(Ы)
    Распространитель
    Перевод


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру