Winup - плагин для Tkabber.

[Введение]
   Winup позволяет своевременно просматривать текст сообщений. 
   Это реализовано в виде всплывающего окна, которое содержит 
   описание сообщения (было послано из комнаты или от контакта),
   статус собеседника и текст его сообщения. При нажатии 
   левой кнопки мыши на окне уведомления автоматически открывается 
   вкладка Tkabber'а с контактом, который был указан в окне 
   уведомления. На системной панеле есть кнопка для быстрого изминения 
   состояния плагина. Если на неё нажать - состояние плагина 
   станет неактивным, и всплывающее окно не будет отображаться. 
   Повторное нажатие производит обратное действие. Плагин можно 
   гибко настроить под свой вкус. Например вы можете настроить 
   так, чтобы окно уведомление плавно и медленно вылетало из 
   левого верхнего угла окна, по прошествии 5 секнд быстро исчезало.

[Установка]
   Установка плагина производится в соответствии с документацией.
   Структура содержимого winup должна оставаться преждней.   
   
[Настройки]
   Плагин обладает довольно большим количиством настроек.
   Они находятся в 'Tkabber' -> 'Customize' -> 
   'Plugins' -> 'Winup'.
   
   <___Таблица___>
   
   Имя опции конфигурации			Стандартное значение
   config(add_toolbar_button)		Да
   config(-anchor)					Справа-снизу
   config(-animate)					Сверху
   config(-offsetx)					0
   config(-offsety)					0
   config(-keyframes)				1000 5000 500
   config(max_string_length)		250
   config(show_avatars)				Да
   config(save_avatars)				Да
   config(photo_width)				50
   config(photo_height)				50
   config(alpha)					90
   config(ignore_status)			DND
   config(unique_jids)			   	""
   config(ignore_jids)				""
   config(bgcolor)					#555555
   config(fgcolor)					#cccccc
   config(nick_font)				Tahoma 8
   config(status_font)				Tahoma 7
   config(message_font)				Tahoma 8
   config(window_minimal_size)		285 120
   config(auto_hide)				Да
   config(auto_update_tabs)			Да
   
   <___Описание___>
   
   
---config(add_toolbar_button)--------------:
											Добавляет иконку на
   системную панель, для быстрого доступу к активации\деактивации 
   состояния плагина. От неё зависит, будет ли всплывать окно
   нотификации при входящем сообщении.
   
   
---config(-anchor)-------------------------:
											Позиция окна уведомления 
   относительно экрана. Может принимать любое значение из {Сверху 
   Сверху-Справа Справа Справа-Снизу Снизу Снизу-Слева Слева 
   Слева-Сверху Центр}
   
   
---config(-animate)------------------------:
											Конечная/начальная точка 
   анимации окна. Например, если установить значение Справа, а 
   config(-anchor) - Справа-Снизу, то окно "вылетит" из правой-нижней 
   части экрана влево
   
   
---config(-offsetx)------------------------:
											Сдвиг окна по оси X. 
   Необходим для того, чтобы вы могу вывести окно уведомления, 
   например, над панелью задач. Так же можно установить значение, 
   равное ширине экрана, тогда окно "пролетит" весь экран, и 
   остановится у дальнего края.
   
   
---config(-offsety)------------------------:
											Аналогично предыдущему, 
   но по оси Y.
   
---config(-keyframes)----------------------:
											Ключи окна. С помощью 
   них можно установить задержку окна после появления, скорость 
   появления, скорость скрытия. 
   -- Первое значение - скорость первого "полёта" окна. Чем выше 
   значение - тем медленнее.
   -- Второе значение - время задержки перед скрытием. Чем ниже 
   значение, тем быстрее окно скроется.
   -- Третье значение - скорость последнего "полёта" окна. Чем 
   выше значение - тем медленнее.
   
   
---config(max_string_length)---------------:
											Максимальная длинна 
   сообщения, которое будет видно в окне уведомления. Значение 
   указывается в количествах символов текста.
   
   
---config(show_avatars)--------------------:
											Показывать фото собеседника. 
   Изображение будет показано лишь в том случае, если ранее была 
   просмотрена личная информация собеседника.
   
   
---config(save_avatars)--------------------:
											Определяет, сохранять 
   ли уменьшенные фото собеседников локально, и при последующем 
   запуске Tkabber - загружать.
   
   
---config(photo_width)---------------------:
											Ширина фото собеседника 
   после уменьшения.
   
   
---config(photo_height)--------------------:
											Высота фото собеседника 
   после уменьшения. 
   
   
---config(alpha)---------------------------:
											Прозрачность окна 
   уведомления (если ваша реализация Tk не поддерживает, то 
   опция игнорируется).
   
   
---config(ignore_status)-------------------:
											Деактивировать плагин 
   если ваш статус соответствует указанному.
   
   
---config(unique_jids)---------------------:
											Список уникальных JID'ов, 
   которые нельзя игнорировать, если деактивирован плагин, или ваш статус,
   включивший нективность плагина, соответствует config(ignore_status).
   Адрес должен содержать и ресурс собеседника, для простоты его можно 
   заменить на '/*'. Можно использовать glob-выражения (regexp). Пример:
   rejjin@jabber.* *@jabber.myserver.net/* vasya@jabber.ru/QIP
   
   
---config(ignore_jids)---------------------:
											Список JID'ов, которые будут
   игнорироваться в любом случае. Адрес должен содержать и ресурс собеседника,
   для простоты его можно заменить на '/*'. Можно использовать glob-выражения 
   (regexp). Пример:
   rejjin@jabber.* *@jabber.myserver.net/* vasya@jabber.ru/QIP
   
   
---config(bgcolor)-------------------------:
---config(fgcolor)-------------------------:
											Цвета для окна уведомления.
					
					
---config(bgcolor)-------------------------:
											Цвет фона. 
											
											
---config(fgcolor)-------------------------:
											Цвет текста.
   
   
---config(nick_font)-----------------------: 
---config(status_font)---------------------:
---config(message_font)--------------------:
											Шрифты для соответствующих зон.
   
   
---config(window_minimal_size)-------------:
											Минимальный размер окна уведомления.

											
---config(auto_hide)-----------------------:
											Автоматически скрывать окно 
   нотификации. Если опция будет равна логическому значению 'ДА', 
   то окно будет ожидать команды закрытия (правая клавиша мыши).
   
   
---config(auto_update_tabs)-----------------------:
											Автоматически помечать все
   отображаемые сообщения "как прочитанные".
   
   
[Использование]
   После загрузки плагина на системной панеле появляется иконка
   статуса плагина. Если изображение полноцветное, то это состояние
   плагина 'активно', если чёрно-белое - то неактивно. Состояние плагина
   означает, будет ли появляться окно уведомления при поступлении нового 
   сообщения. Если плагин активен, и вам пришло сообщение, то, при стандарных 
   настройках, из нижней части вверх "вылетит" окно, в котором будут перечислены:
   имя отправителя, статус, текст сообщения|тема конференции. При нажатии на окно 
   запускается обработчик, которые определяет какая клавиша мыши была нажата.
   Если вы нажали на левую кнопку, то открывается разговор с указанным
   контактом в Tkabber. Если вы нажали на правую кнопку, то окно
   нотификации исчезает. При этом общее состояние плагина остаётся
   преждним.
   
[Примеры]
   1) Окно вылетает из левой-верхней части экрана вниз. Ждёт 3 секунды и быстро 
   исчезает: 
   config(-anchor) 'Слева-Сверху'
   config(-animate) 'Вниз'
   config(-keyframes) 1000 3000 200
   
   2) Окно не использует механизм движения:
   config(-keyframes) 0 3000 200
   
   3) "Скоростное окно"
   config(-keyframes) 200 1000 200
   
   4) Окно по-центру. Ожидает 10 секунд.
   config(-anchor) 'Центр'
   config(-keyframes) 0 10000 200

[BUGS]
   Из-за платформо-зависимого фактора реализации Tk на некоторых ОС замечены 
   ошибки, связанные с механизмом движения окна. Если окно во время "полёта"
   остаётся чёрным, и не содержит ни каких эоементов, то поэксперементируйте 
   с настройками. В крайнем случае, в соответствии с секцией [Примеры], можно 
   убрать механизм движения, тогда окно будет статично появлятся в указанной
   точке экрана.
   
[TODO]
   1) Исправить глюки механизма движения.
   2) Добавить меню быстрого ответа в окно.
   3) Пометить сообщения как "прочитанные". (Реализовано)
   4) Переписать механизм уменьшения фото на C (с целью увеличения скорости).
   (частично реализовано)
   
[Автор]
   Rejjin 
   xmpp: 	<rejjin@jabber.ru>
   e-mail:	<webrenji@gmail.com>