Функции.

Все действия в FVWM, будь то разворот окна на весь экран, сворачивание окна, или запуск какой-либо программы (а то и все это одновременно) суть функции. И их также нужно объявлять (если, конечно, функция состоит более, чем из одного действия):

DestroyFunc deiconify-and-focus
AddToFunc   deiconify-and-focus
+ "I" Iconify -1     # Разворачиваем окно из иконки
+ "I" Focus          # Переносим на него фокус

Вызываются функции следующим образом:

DestroyMenu Window-Ops
AddToMenu Window-Ops
+ "&Переместить"         Move
+ "&Изменить размер"     Resize
+ "Свернуть/развернуть"  Maximize 100 100
+ ""                     Nop
+ "Переместить на..."    Popup Move-Window
+ ""                     Nop
+ "Сделать нечто"        My-func-name
+ ""                     Nop
+ "Destroy"              Destroy
+ "&Close"               Close
Если это меню связано с каким-либо окном (см. следующий подраздел), то функции вызываются применительно к нему, иначе FVWM попросит вас уточнить какое из окон вы имеете в виду.

Полный список поддерживаемых функций, конечно же содержится в man-странице FVWM, но все же перечислю наиболее (на мой взгляд) интересные:

Move, Resize
 -- Соответственно перемешает, и изменяет в размере окно. Без параметров может использоваться как мышь, так и клавиатура. В качестве параметров можете указать x и y координаты для немедленного перемещения/изменения. Пример:
# Интерактивное перемещение
Move
# Переместить вверх-лево на 10% и 10%
Move 10 10
# Аналогично, но пикселей.
Move 10p 10p
# Переместить окно в правый-нижний угол экрана
Move -0 -0
# Перемещаем на 5% в право и на середину по вертикали
Move w+5 50
# Перемещаем окно к точке положения курсора
Move m+0 m+0
# 80 на 24 символа
Resize 80c 24c
# Максимизирует
Resize 100 100
Также можете воспользоваться командой AnimatedMove для анимированного перемещения.

Maximize
 -- Изменяет размер окна к указанному параметром. Например:
# Максимизация по вертикали
Maximize 0 100
# Максимизация до размера половины экрана
Maximize 50 50
# Разворачивает окно, оставляя на экране еще 60 пикселей
Maximize 100 -60p

Iconify
 -- Сворачивает окно в иконку, либо разворачивает его из иконки. Параметром может быть желаемое состояние (True|False).

GotoDesk, GotoPage
 -- Соответственно переход к соответствующему деку, или странице. Дек может содержать несколько страниц. Геометрия двумерная, число деков определяется параметрами модуля Pager, размер дека параметром DeskTopSize. Пример:
# Размер дека 2x2
# Вообще же число страниц может быть до 4 миллиардов :o)
DeskTopSize 2x2
# Переходим на страницу
GotoPage 1 1
# Или дек
GotoDesk 0 0
# Перемещаем текущее окно (сами не переходим)
MoveToPage 1 1
# Или на дек (и текущую по номеру страницу)
MoveToDesk 0 0

Layer
 -- Уровень окна. Более высокие по уровню окна заведомо перекрывают более низкие (не зависимо от фокуса). Пример:
# Повышаем уровень текущего окна.
Layer 1  0
# Устанавливаем его уровень в 1
Layer 0  1

Delete, Destroy, Close
 -- Соответственно пытаемся вежливо закрыть текущее окно, принудительно, или сначала первым способом, а в случае неудачи -- вторым.

Exec
 -- Запустить указанное приложение. Например:
# Редактируем настроечный файл
Exec exec gvim /home/nik/.fvwm/.fvwm2rc

Popup
 -- Выводим меню. Учтите, что окна по умолчанию вызываются по положению курсора, но могут быть и привязаны к любому элементу интерфейса (как к соответствующей точке отсчета). Пример:
# Выводим главное меню
Popup /Debian
# Выводим меню Window-Ops, в верхнем-левом 
# углу заголовка
Popup Window-Ops Title o0 o0

Copyleft © 2002-2003 г.   Nikolay A. Panov, "Intro To Linux" (orig),  niksite@mail.ru,  ICQ: 122-40-8888



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости