Tk Library Source Code

Artifact [55dd5996b4]
Login

Artifact 55dd5996b47d3484d5806d4a138b1f52a1555b69:

Attachment "khim.diff" to ticket [1733098fff] added by flatworm 2007-06-08 05:03:12. Also attachment "khim.diff" to ticket [1733094fff] added by flatworm 2007-06-08 04:57:00.
diff -Nur khim.cvshead\en.msg khim\en.msg
--- khim.cvshead\en.msg	Tue Sep 05 22:52:22 2006
+++ khim\en.msg	Wed Dec 13 23:09:46 2006
@@ -84,6 +84,8 @@
 	{Composed sequence must be two characters long}
 
     ::msgcat::mcset en {Delete} {Delete}
+
+    ::msgcat::mcset en {KHIM Help} {KHIM Help}
 
     ::msgcat::mcset en {Help...} {Help...}
 
diff -Nur khim.cvshead\khim.tcl khim\khim.tcl
--- khim.cvshead\khim.tcl	Thu Nov 02 23:19:47 2006
+++ khim\khim.tcl	Sun Dec 17 20:00:13 2006
@@ -434,6 +434,7 @@
 	set g $p
     }
     wm transient $w $g
+    wm title $w [mc {KHIM Help}]
     catch {wm attributes $w -toolwindow 1}
 
     # Create and manage GUI components
@@ -1049,14 +1050,14 @@
     if { ![string is integer -strict $CMapInputCodePage($w)]
 	 || $CMapInputCodePage($w) < 0
 	 || $CMapInputCodePage($w) >= 0x100 } {
-	$spin configure -background \#ff6666
+	#$spin configure -background \#ff6666
     } else {
 
 	# Valid code page - generate the values list. Make sure that
 	# the current value is in the list, even if it's formatted
 	# eccentrically (e.g., 0x000012).
 
-	$spin configure -background white
+	#$spin configure -background white
 	if { [string match *0x* $CMapInputCodePage($w)] } {
 	    set format 0x%02X
 	} else {
@@ -1110,6 +1111,7 @@
     variable CMapYL
     variable CMapSelectedCharacter
     variable CMapAfter
+    variable CMapForeground
 
     if {[info exists CMapAfter($w)]} {
 	after cancel $CMapAfter($w)
@@ -1147,8 +1149,8 @@
 			   [expr { $point / 0x100 }] [expr { $point % 0x100 }]]
 		set f $CMapBadCharFont
 	    }
-	    set tags [list row$row col$col]
-	    $c create text 0 0 -text $t -font $f \
+	    set tags [list text row$row col$col]
+	    $c create text 0 0 -text $t -font $f -fill $CMapForeground\
 		-anchor center -justify center -tags $tags
 	    set tock [clock clicks -milliseconds]
 	    if {$ok && $tock-$tick > 1500} {
@@ -1201,10 +1203,10 @@
     # the separator lines and configure the canvas size
 
     foreach x $CMapXL($w) {
-	$c create line $x $ymin $x $ymax -width 0 -fill gray85
+	$c create line $x $ymin $x $ymax -width 0 -fill $CMapForeground
     }
     foreach y $CMapYL($w) {
-	$c create line $xmin $y $xmax $y -width 0 -fill gray85
+	$c create line $xmin $y $xmax $y -width 0 -fill $CMapForeground
     }
     $c configure -width [expr { $xmax + $pad }] \
 	-height [expr { $ymax + $pad }] \
@@ -1285,6 +1287,9 @@
     variable CMapSelectedCharacter
     variable CMapXL
     variable CMapYL
+    variable CMapForeground
+    variable CMapSelectBackground
+    variable CMapSelectForeground
     if { $CMapSelectedCharacter($w) < $CMapCodePage($w) * 0x0100
 	 || $CMapSelectedCharacter($w) >= ($CMapCodePage($w) + 1) * 0x100 } {
 	set CMapSelectedCharacter($w) \
@@ -1295,15 +1300,22 @@
     set rem [expr { $CMapSelectedCharacter($w) % 0x0100 }]
     set row [expr { $rem / 16 }]
     set col [expr { $rem % 16 }]
+
+    $c itemconfigure text -fill $CMapForeground
+    $c itemconfigure text&&row$row&&col$col -fill $CMapSelectForeground
+
     set xmin [lindex $CMapXL($w) $col]
     incr col
     set xmax [lindex $CMapXL($w) $col]
+
     set ymin [lindex $CMapYL($w) $row]
     incr row
     set ymax [lindex $CMapYL($w) $row]
     catch { $c delete selectrect }
     $c create rectangle $xmin $ymin $xmax $ymax \
-	-width 2 -fill {} -outline blue -tags selectrect
+	-width 2 -fill $CMapSelectBackground \
+	-outline $CMapSelectBackground -tags selectrect
+    $c lower selectrect
     return
 }
 
@@ -1585,11 +1597,19 @@
     variable CMapInputCodePage
     variable CMapCodePage
     variable CMapFocus
+    variable CMapBackground
+    variable CMapForeground
+    variable CMapSelectBackground
+    variable CMapSelectForeground
     set t [winfo toplevel $w]
     if { $t eq "." } {
 	set t {}
     }
     set map $t.khimcmap
+    if {[winfo exists $map]} {
+	wm deiconify $map
+	return
+    }
     toplevel $map
     wm withdraw $map
     wm title $map [mc {Insert Character}]
@@ -1603,8 +1623,17 @@
     grid [spinbox $map.spin -textvariable khim::CMapInputCodePage($map) \
 	      -width 4] \
 	-row 0 -column 1 -sticky w
+
+    # Get canvas background from spinbox background
+    set CMapBackground [lindex [$map.spin configure -background] 4]
+    # Get text foreground and grid lines color from spinbox text foreground
+    set CMapForeground [lindex [$map.spin configure -foreground] 4]
+    # Get rectangle outline from spinbox selectbackground
+    set CMapSelectBackground [lindex [$map.spin configure -selectbackground] 4]
+    set CMapSelectForeground [lindex [$map.spin configure -selectforeground] 4]
+
     set c $map.c
-    grid [canvas $c -width 400 -height 400 -bg white -takefocus 1] \
+    grid [canvas $c -width 400 -height 400 -bg $CMapBackground -takefocus 1] \
 	-columnspan 2 -padx 3 -pady 3
     grid [frame $map.f] -row 2 -column 0 -columnspan 2 -sticky ew -pady 3
     button $map.f.b1 -text [mc OK] -command [list khim::CMapOK $map]
diff -Nur khim.cvshead\pl.msg khim\pl.msg
--- khim.cvshead\pl.msg	Thu Jan 01 03:00:00 1970
+++ khim\pl.msg	Fri Jan 05 21:14:40 2007
@@ -0,0 +1,113 @@
+# pl.msg --
+#
+#	Polish-language messages for KHIM
+# Contributed by Irek Chmielowiec <irek.ch (at) gmail.com>
+# Copyright (c) 2005 by Kevin B. Kenny.  All rights reserved.
+#
+# Refer to the file "license.terms" for the terms and conditions of
+# use and redistribution of this file, and a DISCLAIMER OF ALL WARRANTEES.
+#
+#----------------------------------------------------------------------
+
+namespace eval ::khim {
+
+    # If you edit HELPTEXT or {SELECT COMPOSE KEY}, also edit the corresponding
+    # messages in ROOT.msg
+
+    ::msgcat::mcset pl HELPTEXT {
+
+	Kevin's Hacky Input Method (KHIM)
+
+	KHIM pozwala na wprowadzanie znaków narodowych i symboli z
+	klawiatury która tego nie obsługuje. Działa niezależnie od
+	metody wprowadzania znaków jaką może oferować system operacyjny;
+	jest przewidziany do sytuacji kiedy nie ma się kontroli nad
+	odwzorowaniem klawiszy a istnieje potrzeba wprowadzania tekstu w
+	różnych językach.
+
+	Aby móc używać KHIM, uruchom okno Ustawień KHIM (sposób jego
+	uruchomienia zależy od używanej aplikacji) i włącz KHIM
+	zaznaczając opcję "Włącz KHIM". Należy także wybrać klawisz
+	który jest rzadko używany i przypisać mu funkcję klawisza
+	"sterującego" naciskając przycisk "Klawisz sterujący:",
+	a następnie naciskając klawisz któremu chcemy tę funkcję
+	przypisać. Mówiąc ogólnie, nie powinien to być klawisz
+	ustawiony jako sterujący dla używanego układu klawiatury (np.
+	Alt); klawisz ten będzie działał niezależnie od metody
+	wprowadzania znaków oferowanej przez lokalny system operacyjny.
+
+	Kiedy KHIM jest już uruchomiony, można wprowadzać znaki narodowe
+	i symbole w każdym elemencie interfejsu użytkownika, który
+	został ustawiony do korzystania z KHIM, naciskając klawisz
+	sterujący razem z sekwencją dwóch znaków. Lista wyboru w
+	ustawieniach KHIM pokazuje dostępne kombinacje. Dodatkowo, po
+	dwukrotnym naciśnięciu klawisza sterującego pojawi się okno
+	pozwalające na bezpośrednie wstawienie wybranego znaku z tablicy
+	symboli Unicode. W oknie tablicy można nawigować pomiędzy
+	znakami używając klawiszy kursorów lub za pomocą myszy a wybór
+	znaku następuje przez dwukrotne kliknięcie, naciśnięcie spacji
+	lub naciśnięcie klawisza Enter (Return).
+
+	Aby zdefiniować nową sekwencję do użycia z klawiszem sterującym
+	należy uruchomić ustawienia KHIM, wprowadzić dwa znaki w polu 
+	"Sekwencja znaków" i znak jaki chcemy uzyskać w polu "Wynik"
+	oraz nacisnąć przycisk "Zmień". (Można także skopiować i
+	wkleić znak z innej aplikacji lub użyć przycisku "Tablica
+	Unicode..." (także przez dwukrotne naciśnięcie klawisza
+	sterującego) do wyboru znaku z tablicy wszystkich dostępnych
+	kodów Unicode.) Aby usunąć sekwencję znaków, należy wybrać ją z
+	listy i nacisnąć "Usuń".
+
+    }
+
+    ::msgcat::mcset pl {SELECT COMPOSE KEY} [string map [list \n\t \n] {
+	Proszę nacisnąć klawisz 
+	który ma być używany 
+	jako sterujący.
+    }]
+
+    ::msgcat::mcset pl {Apply} {Zastosuj}
+
+    ::msgcat::mcset pl {Cancel} {Anuluj}
+
+    ::msgcat::mcset pl {Change} {Zmień}
+
+    ::msgcat::mcset pl {Character} {Wynik}
+
+    ::msgcat::mcset pl {Compose Key} {Klawisz sterujący}
+
+    ::msgcat::mcset pl {Compose key:} {Klawisz sterujący:}
+
+    ::msgcat::mcset pl {Composed sequence must be two characters long} \
+	{Sekwecja znaków musi być dwuelementowa}
+
+    ::msgcat::mcset pl {Delete} {Usuń}
+
+    ::msgcat::mcset pl {KHIM Help} {Pomoc KHIM}
+
+    ::msgcat::mcset pl {Help...} {Pomoc...}
+
+    ::msgcat::mcset pl {Input key sequence} {Sekwencja znaków}
+
+    ::msgcat::mcset pl {Insert Character} {Wstaw znak}
+
+    ::msgcat::mcset pl {Invalid sequence} {Nieprawidłowa sekwencja}
+
+    ::msgcat::mcset pl {Key sequences} {Sekwencje znaków}
+
+    ::msgcat::mcset pl {KHIM Controls} {Ustawienia KHIM}
+
+    ::msgcat::mcset pl {OK} {OK}
+
+    ::msgcat::mcset pl {Select code page:} {Wybierz kodowanie:}
+
+    ::msgcat::mcset pl {Unicode...} {Tablica Unicode...}
+
+    ::msgcat::mcset pl {Use KHIM} {Włącz KHIM}
+
+}
+
+# vim:ft=tcl:ts=8:sw=4:sts=4:noet
+# Local Variables:
+# mode: tcl
+# End:
diff -Nur khim.cvshead\ru.msg khim\ru.msg
--- khim.cvshead\ru.msg	Thu Jan 01 03:00:00 1970
+++ khim\ru.msg	Wed Jan 03 19:10:29 2007
@@ -0,0 +1,124 @@
+# ru.msg --
+#
+#	Russian-language messages for KHIM
+#
+# Contributed by Konstantin Khomoutov <[email protected]>.
+# Proof-read and edited by Serge Yudin <[email protected]>.
+#
+# Copyright (c) 2005 by Kevin B. Kenny.  All rights reserved.
+#
+# Refer to the file "license.terms" for the terms and conditions of
+# use and redistribution of this file, and a DISCLAIMER OF ALL WARRANTEES.
+#
+# $Id: ru.msg 858 2007-01-03 15:10:29Z sergei $
+# $Source$
+#
+#----------------------------------------------------------------------
+
+namespace eval ::khim {
+
+    # If you edit HELPTEXT or {SELECT COMPOSE KEY}, also edit the corresponding
+    # messages in ROOT.msg
+
+    ::msgcat::mcset ru HELPTEXT {
+
+	Kevin's Hacky Input Method (KHIM) --
+	Нетривиальный Метод Кевина для Ввода Символов
+
+	KHIM делает возможным ввод символов национальных алфавитов
+	с клавиатуры, которая не позволяют этого делать. Он работает
+	независимо от любых способов ввода, которые поддерживает ОС;
+	его задача -- позволить осуществлять ввод таких символов,
+	которые невозможно ввести с текущими настройками ОС данного
+	компьютера, а менять их нет возможности или желания.
+
+	Для того, чтобы использовать KHIM, следует вызвать диалог
+	"Настройки KHIM" (как это сделать, зависит от приложения,
+	использующего KHIM) и разрешить работу KHIM, включив переключатель
+	"Использовать KHIM". Также Вам понадобится выбрать редко
+	используемую клавишу на Вашей клавиатуре и назначить её
+	"клавишей композиции". Для этого нужно нажать кнопку, подписанную
+	"Клавиша композиции:", в диалоге настроек KHIM и затем нажать
+	выбранную клавишу на клавиатуре. Имейте в виду, что если на Вашей
+	клавиатуре есть клавиша, называемая "Compose", то её не следует
+	выбирать в качестве клавиши композиции для KHIM -- пусть она
+	продолжает вызывать тот метод ввода,
+	который назначен ей операционной системой.
+
+	После того как KHIM активирован, Вы можете вставлять символы
+	национальных алфавитов в любое поле ввода, настроенное на
+	использование KHIM, таким образом: нажать и отпустить клавишу
+	композиции, затем ввести два символа -- "входную последовательность".
+	В диалоге настроек KHIM есть окно со списком доступных
+	последовательностей. Кроме того, двойное нажатие клавиши
+	композиции вызывает окно диалога, позволяющее выбрать произвольный
+	символ Unicode. Выбор нужного символа в этом диалоге
+	осуществляется мышью либо клавишами управления курсором,
+	а вставка выбранного символа -- двойным щелчком левой кнопки
+	мыши на нём, либо нажатием клавиши Пробел или Ввод.
+
+	Чтобы создать новую входную последовательность для использования
+	совместно с клавишей композиции окройте диалог настроек KHIM,
+	введите два символа в поле "Входная последовательность" и
+	соответствующий ей символ в поле "Символ", затем нажмите
+	кнопку "Изменить". (Вы можете копировать и вставлять целевой
+	символ из другого приложения. Также можно воспользоваться
+	встроенным в KHIM диалогом выбора символов Unicode, нажав
+	кнопку "Unicode..." или дважды нажав клавишу композиции.)
+	Для удаления входной последовательности выберите её в списке
+	и дажмите "Удалить".
+
+    }
+
+    ::msgcat::mcset ru {SELECT COMPOSE KEY} [string map [list \n\t \n] {
+	Нажмите клавишу,
+	которую вы хотите
+	использовать в качестве
+	"Клавиши композиции"
+    }]
+
+    ::msgcat::mcset ru {Apply} {Применить}
+
+    ::msgcat::mcset ru {Cancel} {Отменить}
+
+    ::msgcat::mcset ru {Change} {Изменить}
+
+    ::msgcat::mcset ru {Character} {Символ}
+
+    ::msgcat::mcset ru {Compose Key} {Клавиша композиции}
+
+    ::msgcat::mcset ru {Compose key:} {Клавиша композиции:}
+
+    ::msgcat::mcset ru {Composed sequence must be two characters long} \
+	{Входная последовательность должна состоять из двух символов}
+
+    ::msgcat::mcset ru {Delete} {Удалить}
+
+    ::msgcat::mcset ru {KHIM Help} {Справка по KHIM}
+
+    ::msgcat::mcset ru {Help...} {Справка...}
+
+    ::msgcat::mcset ru {Input key sequence} {Входная последовательность}
+
+    ::msgcat::mcset ru {Insert Character} {Выберите символ}
+
+    ::msgcat::mcset ru {Invalid sequence} {Неправильная комбинация}
+
+    ::msgcat::mcset ru {Key sequences} {Комбинации клавиш}
+
+    ::msgcat::mcset ru {KHIM Controls} {Настройки KHIM}
+
+    ::msgcat::mcset ru {OK} {OK}
+
+    ::msgcat::mcset ru {Select code page:} {Выберите страницу кодов:}
+
+    ::msgcat::mcset ru {Unicode...} {Unicode...}
+
+    ::msgcat::mcset ru {Use KHIM} {Использовать KHIM}
+
+}
+
+# vim:ft=tcl:ts=8:sw=4:sts=4:noet
+# Local Variables:
+# mode: tcl
+# End:
diff -Nur khim.cvshead\uk.msg khim\uk.msg
--- khim.cvshead\uk.msg	Thu Jan 01 03:00:00 1970
+++ khim\uk.msg	Fri Dec 29 16:11:04 2006
@@ -0,0 +1,117 @@
+# uk.msg --
+#
+#	Ukrainian-language messages for KHIM
+#
+# Contributed by Fixer jabber:<[email protected]>, email:<[email protected]>.
+#
+# Copyright (c) 2005 by Kevin B. Kenny.  All rights reserved.
+#
+#----------------------------------------------------------------------
+
+namespace eval ::khim {
+
+    # If you edit HELPTEXT or {SELECT COMPOSE KEY}, also edit the corresponding
+    # messages in ROOT.msg
+
+    ::msgcat::mcset uk HELPTEXT {
+
+	Kevin's Hacky Input Method (KHIM) --
+	Нетривіальний Метод Кевіна для Введення Символів
+
+	KHIM дає можливість вводити символи національних алфавітів
+	з клавіатури, яка не дозволяє цього робити. Він працює
+	незалежно від інших способів вводу, котрі підтримує ОС;
+	його завдання -- дати змогу здійснювати введення таких символів,
+	котрі неможливо ввести з теперішніми налаштуваннями ОС даного
+	компьютера, а поміняти їх немає ні можливості, ні бажання.
+
+	Для того, щоб користуватися KHIM, треба відкрити діалог
+	"Налаштування KHIM" (як це зробити, залежить від програми,
+	яка використовує KHIM) і дозволити роботу KHIM, увімкнувши перемикач
+	"Використовувати KHIM". Також Вам необхідно обрати рідко
+	використовувану клавішу на Вашій клавіатурі і призначити її
+	"клавішою композиції". Для цього потрібно натиснути кнопку, підписану як
+	"Клавіша композиції:", у діалозі налаштувань KHIM, а потім натиснути
+	обрану клавішу на клавіатурі. Майте на увазі, що якшо на Вашій
+	клавіатурі є клавіша, що зветься "Compose", то її не треба
+	обирати в якості клавіши композиції для KHIM -- хай вона
+	продовжує викликати той метод вводу,
+	котрий призначений їй операційною системою.
+
+	Після того як KHIM активувався, Ви можете вставляти символи
+	національних алфавітів в будь-яке поле для вводу, налаштоване на
+	використання KHIM, таким чином: натиснути і відпустити клавішу
+	композиції, а потім ввести два символи -- "вхідну послідовність".
+	У діалозі налаштувань KHIM є вікно з переліком доступних
+	послідовностей. Крім того, подвійне натискання клавіші
+	композиції викликає вікно діалогу, що дозволяє обрати довільний
+	символ Unicode. Вибір потрібного символу в цьому діалозі
+	здійснюється мишою чи клавішами управління курсором,
+	а вставляння обраного симолу -- подвійним клацанням лівої кнопки
+	миші на ньому, або натисканням клавіши Пробіл чи Ввід.
+
+	Щоб створити нову вхідну послідовність для використання
+	сумісно з клавішою композиції відкрийте діалог налаштувань KHIM,
+	введіть два символи в поле "Вхідна послідовність" і
+	відповідний їй символ у полі "Символ", а потім натисніть
+	клавішу "Змінити". (Ви можете копіювати і вставляти цільовий
+	символ з іншої програми. Також можна скористатися
+	вбудованим у KHIM діалогом вибору символів Unicode, натиснувши
+	кнопку "Unicode...", або подвійно клацнувши клавішу композиції.)
+	Для видалення вхідної послідовності оберіть її у переліку
+	і натисніть "Видалити."
+
+    }
+
+    ::msgcat::mcset uk {SELECT COMPOSE KEY} [string map [list \n\t \n] {
+	Натисніть клавішу,
+	котру ви бажаєте
+	використовувати в якості
+	"Клавіші композиції"
+    }]
+
+    ::msgcat::mcset uk {Apply} {Прийняти}
+
+    ::msgcat::mcset uk {Cancel} {Відмінити}
+
+    ::msgcat::mcset uk {Change} {Змінити}
+
+    ::msgcat::mcset uk {Character} {Символ}
+
+    ::msgcat::mcset uk {Compose Key} {Клавіша композиції}
+
+    ::msgcat::mcset uk {Compose key:} {Клавіша композиції:}
+
+    ::msgcat::mcset uk {Composed sequence must be two characters long} \
+	{Вхідна послідовність повинна складатися з двох символів}
+
+    ::msgcat::mcset uk {Delete} {Видалити}
+
+    ::msgcat::mcset uk {KHIM Help} {Допомога по KHIM}
+
+    ::msgcat::mcset uk {Help...} {Допомога...}
+
+    ::msgcat::mcset uk {Input key sequence} {Вхідна послідовність}
+
+    ::msgcat::mcset uk {Insert Character} {Оберіть символ}
+
+    ::msgcat::mcset uk {Invalid sequence} {Неправильна комбінація}
+
+    ::msgcat::mcset uk {Key sequences} {Комбінації клавіш}
+
+    ::msgcat::mcset uk {KHIM Controls} {Налаштування KHIM}
+
+    ::msgcat::mcset uk {OK} {OK}
+
+    ::msgcat::mcset uk {Select code page:} {Оберіть кодову сторінку:}
+
+    ::msgcat::mcset uk {Unicode...} {Unicode...}
+
+    ::msgcat::mcset uk {Use KHIM} {Використовувати KHIM}
+
+}
+
+# vim:ft=tcl:ts=8:sw=4:sts=4:noet
+# Local Variables:
+# mode: tcl
+# End: