[Tkabber-dev] r397 - in trunk/plugins: . tabimages tabimages/msgs

tkabber-svn at jabber.ru tkabber-svn at jabber.ru
Sat Sep 25 03:31:29 MSD 2010


Author: Rejjin
Date: 2010-09-25 03:31:29 +0400 (Sat, 25 Sep 2010)
New Revision: 397

Added:
   trunk/plugins/tabimages/
   trunk/plugins/tabimages/Readme-ru
   trunk/plugins/tabimages/msgs/
   trunk/plugins/tabimages/msgs/ru.msg
   trunk/plugins/tabimages/tabimages.tcl
Log:
?\208?\159?\208?\187?\208?\176?\208?\179?\208?\184?\208?\189 ?\208?\180?\208?\190?\208?\177?\208?\176?\208?\178?\208?\187?\209?\143?\208?\181?\209?\130 ?\208?\189?\208?\181?\208?\177?\208?\190?\208?\187?\209?\140?\209?\136?\208?\184?\208?\181 ?\208?\184?\208?\183?\208?\190?\208?\177?\209?\128?\208?\176?\208?\182?\208?\181?\208?\189?\208?\184?\209?\143
?\208?\189?\208?\176 ?\208?\178?\208?\186?\208?\187?\208?\176?\208?\180?\208?\186?\208?\184 ?\208?\186?\208?\190?\208?\189?\209?\132?\208?\181?\209?\128?\208?\181?\208?\189?\209?\134?\208?\184?\208?\185 ?\208?\184 ?\209?\135?\208?\176?\209?\130?\208?\190?\208?\178.
?\208?\159?\209?\128?\208?\184 ?\208?\184?\208?\183?\208?\188?\208?\184?\208?\189?\208?\181?\208?\189?\208?\184?\208?\184 ?\209?\129?\209?\130?\208?\176?\209?\130?\209?\131?\209?\129?\208?\176 ?\208?\191?\209?\128?\208?\184?\209?\129?\209?\131?\209?\130?\209?\129?\209?\130?\208?\178?\208?\184?\209?\143
?\208?\178?\208?\176?\209?\136?\208?\181?\208?\179?\208?\190 ?\209?\129?\208?\190?\208?\177?\208?\181?\209?\129?\208?\181?\208?\180?\208?\189?\208?\184?\208?\186?\208?\176, ?\208?\184?\208?\186?\208?\190?\208?\189?\208?\186?\208?\176 ?\208?\178?\208?\186?\208?\187?\208?\176?\208?\180?\208?\186?\208?\184
?\208?\184?\208?\183?\208?\188?\208?\181?\208?\189?\209?\143?\208?\181?\209?\130?\209?\129?\209?\143. ?\208?\146?\208?\178?\208?\181?\208?\180?\208?\181?\208?\189?\209?\139 ?\208?\189?\208?\176?\209?\129?\209?\130?\209?\128?\208?\190?\208?\185?\208?\186?\208?\184 ?\209?\136?\209?\128?\208?\184?\209?\132?\209?\130?\208?\190?\208?\178, ?\208?\186?\208?\190?\209?\130?\208?\190?\209?\128?\209?\139?\208?\181 
?\208?\178 ?\208?\189?\208?\181?\208?\186?\208?\190?\209?\130?\208?\190?\209?\128?\209?\139?\209?\133 ?\209?\129?\208?\187?\209?\131?\209?\135?\208?\176?\209?\143?\209?\133 ?\208?\191?\208?\190?\208?\183?\208?\178?\208?\190?\208?\187?\209?\143?\209?\142?\209?\130 ?\209?\128?\208?\181?\209?\136?\208?\184?\209?\130?\209?\140 ?\208?\191?\209?\128?\208?\190?\208?\177?\208?\187?\208?\181?\208?\188?\209?\139 ?\209?\129 
?\208?\189?\208?\181?\209?\133?\208?\178?\208?\176?\209?\130?\208?\186?\208?\190?\208?\185 ?\208?\188?\208?\181?\209?\129?\209?\130?\208?\176 ?\208?\189?\208?\176 ?\208?\178?\208?\186?\208?\187?\208?\176?\208?\180?\208?\186?\208?\181. ?\208?\159?\208?\187?\208?\176?\208?\179?\208?\184?\208?\189 ?\208?\188?\208?\190?\208?\182?\208?\181?\209?\130 ?\208?\177?\209?\139?\209?\130?\209?\140 ?\208?\176?\208?\186?\209?\130?\208?\184?\208?\178?\208?\181?\208?\189 
?\208?\186?\208?\176?\208?\186 ?\208?\180?\208?\187?\209?\143 ?\209?\130?\208?\190?\208?\187?\209?\140?\208?\186?\208?\190 ?\209?\135?\208?\176?\209?\130?\208?\190?\208?\178, ?\209?\130?\208?\176?\208?\186 ?\208?\184 ?\208?\180?\208?\187?\209?\143 ?\209?\130?\208?\190?\208?\187?\209?\140?\208?\186?\208?\190 ?\208?\186?\208?\190?\208?\189?\209?\132?\208?\181?\209?\128?\208?\181?\208?\189?\209?\134?\208?\184?\208?\185.

Added: trunk/plugins/tabimages/Readme-ru
===================================================================
--- trunk/plugins/tabimages/Readme-ru	                        (rev 0)
+++ trunk/plugins/tabimages/Readme-ru	2010-09-24 23:31:29 UTC (rev 397)
@@ -0,0 +1,53 @@
+Tabimages.
+
+Инсталляция:
+	1) Скопировать папку с этим плагином (tabimages)
+	в директорию плагинов Tkabber.
+	Внимание! Структура файлов должна быть 
+	строго соблюдена!
+	2) Перезапустить Tkabber.
+	3) Активировать плагин в настройках плагина:
+	'Настройки' --> 'Plugins' --> 'Tabimages'.
+	
+Использование:
+	Плагин добавляет небольшие изображения
+	на вкладки конференций и чатов.
+	При изминении статуса присутствия
+	вашего собеседника, иконка вкладки
+	изменяется.
+
+Настройка:
+	Плагин имеет 4 опции состояния:
+	1) Использовать для чатов.
+	2) Использовать для конференций.
+	3) Использовать для всех.
+	4) Не использовать.
+	Соответственно, если вы отметите, допустим, 
+	"Использование для чатов", то изображения 
+	будут отображаться только на вкладках
+	чатов (не конференций).
+	После изменения настройки и её сохранения 
+	все изображения вкладок перерисуются.
+	Введены настройки шрифтов, которые 
+	в некоторых случаях позволяют решить проблемы с 
+	нехваткой места на вкладке.
+	
+Проблемы:
+	Плагин не работает в Plugin Manager. 
+	Проблема связана со спецификацией
+	прорисовки интерфейса Tkabber и временем
+	запуска инициализирующей процедуры.
+	Функционал Plugin Manager реализован 
+	в 'Настройки' --> 'Plugins' --> 'Tabimages'.
+	
+В следующих версиях:
+	1) Добавить иконки на вкладки, не относящиеся
+	к разговорам (например, настройки).
+	2) "Подружить" с Plugin Manager
+	3) Увиличить диапазон настроек для 
+	табов.
+
+Автор:
+	Rejjin aka Renji
+	jabber id: rejjin at jabber.dk
+	e-mail: webrenji at gmail.com
\ No newline at end of file

Added: trunk/plugins/tabimages/msgs/ru.msg
===================================================================
--- trunk/plugins/tabimages/msgs/ru.msg	                        (rev 0)
+++ trunk/plugins/tabimages/msgs/ru.msg	2010-09-24 23:31:29 UTC (rev 397)
@@ -0,0 +1,6 @@
+::msgcat::mcset ru "Enable or disable this plugin. Values:\nChats - using for CHATS ONLY\nGroupchats - using for GROUPCHATS ONLY\nEnable - using for chats and groupchats\nDisable - disable this plugin" "Активирует и деактивирует этот плагин. Значения:\nЧаты - использовать ТОЛЬКО для ЧАТОВ\nКонференции - использовать ТОЛЬКО для КОНФЕРЕНЦИЙ\nАктивировать - использовать для чатов и конференций\nОтключить - деактивирует этот плагин"
+::msgcat::mcset ru "Disable" "Отключить"
+::msgcat::mcset ru "Chats" "Чаты"
+::msgcat::mcset ru "Enable" "Активировать"
+::msgcat::mcset ru "Groupchats" "Конференции"
+::msgcat::mcset ru "Font to use in tabs bar window" "Шрифт для вкладок"
\ No newline at end of file

Added: trunk/plugins/tabimages/tabimages.tcl
===================================================================
--- trunk/plugins/tabimages/tabimages.tcl	                        (rev 0)
+++ trunk/plugins/tabimages/tabimages.tcl	2010-09-24 23:31:29 UTC (rev 397)
@@ -0,0 +1,129 @@
+# Tabimages plugin for Tkabber
+# Written by Renji
+# jabber id: rejjin at jabber.dk
+# e-mail: webrenji at gmail.com
+
+namespace eval tabimages {
+
+	set space [namespace current]
+	
+	::msgcat::mcload [file join [file dirname [info script]] msgs]
+	
+	custom::defgroup Plugins [::msgcat::mc "Plugins options."] \
+	-group Tkabber	
+	
+    custom::defgroup Tabimages [::msgcat::mc "Tabimages"] \
+	-group Plugins	
+	
+	variable state
+	custom::defvar state 1 \
+	[::msgcat::mc "Enable or disable this plugin.\
+		Values:\nChats - using for CHATS ONLY\nGroupchats -\
+		using for GROUPCHATS ONLY\nEnable - using for\
+		chats and groupchats\nDisable - disable this plugin"] \
+	-type options -group Tabimages \
+	-command [list ${space}::tab_images_init -reload 1] \
+	-values [list \
+		1 [::msgcat::mc "Enable"] \
+		0 [::msgcat::mc "Disable"] \
+		2 [::msgcat::mc "Chats"] \
+		3 [::msgcat::mc "Groupchats"] \
+	]
+	
+	variable font
+	custom::defvar font $::default_Roster_font \
+	[::msgcat::mc "Font to use in tabs bar window"] \
+	-group Tabimages -type font \
+	-command ${space}::switch_font
+	
+	hook::add finload_hook [list ${space}::tab_images_init -reload 0] 100	
+	hook::add finload_hook ${space}::switch_font 100
+	hook::add open_chat_post_hook ${space}::update_tab 90
+	hook::add client_presence_hook ${space}::change_presence 60
+	
+	
+	proc update_tab { chatid type } {
+		variable state
+	
+		if !$::usetabbar return
+	
+		switch -- $state {
+			0 return
+			2 { if [chat::is_groupchat $chatid] return }
+			3 { if [chat::is_chat $chatid] return }
+		}
+		
+		set xlib [chat::get_xlib $chatid]
+		set jid [chat::get_jid $chatid]
+		set status [get_jid_status $xlib $jid]
+		
+		switch -- [chat::is_chat $chatid] {
+			1 {set icon roster/user/$status}
+			0 {set icon roster/conference/$status}
+		}
+		
+		set tab_path [get_tab_button $chatid]
+		configure_tab_button $tab_path $icon left
+	}	
+		
+	proc change_presence { xlib jid type x args } {
+		variable state
+	
+		if !$::usetabbar return
+		
+		set chatid [chat::chatid $xlib $jid]
+		
+		switch -- $state {
+			0 return
+			2 { if [chat::is_groupchat $chatid] return }
+			3 { if [chat::is_chat $chatid] return }
+		}
+		
+		if [chat::is_groupchat $chatid] return
+		if ![chat::is_opened $chatid] return
+		
+		set icon roster/user/[get_jid_status $xlib $jid]
+		configure_tab_button [get_tab_button $chatid] $icon left
+	}
+	
+	proc get_tab_button chatid {
+		return [ifacetk::nbpage [chat::winid $chatid]]
+	}
+	
+	proc chat_type chatid {
+		return $chat::chats(type,$chatid)
+	}
+	
+	proc configure_tab_button {tab_path icon { cmp none }} {
+		variable options
+		
+		if ![string equal $icon {}] { 
+		set cmp left 
+		}
+		
+		ButtonBar::itemconfigure .nb $tab_path  \
+			-image $icon \
+			-compound $cmp
+	}
+	
+	proc tab_images_init { reload? reload args } {
+		foreach chatid [chat::opened] {
+			if $reload { 
+				configure_tab_button \
+				[get_tab_button $chatid] {} 
+			}
+			update_tab $chatid [chat_type $chatid]
+		}
+	}
+	
+	proc switch_font args {
+		variable font
+		
+		if !$::usetabbar return
+		
+		option add *ButtonBar*Button*Font $font
+		foreach wbutton [ButtonBar::pages .nb] {
+			ButtonBar::itemconfigure .nb $wbutton -font $font
+		}
+	}
+}
\ No newline at end of file



More information about the Tkabber-dev mailing list