SAD部屋 - Ticket-38 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! Tcl/Tk 8.6対応するためにPatchKitの改修が必要

:Priority:Normal
:Reporter:amorita
:Status:New
:Assigned to:?
:Version:4415
:Milestone:?
:Created:2016-05-06

!! Description

SADが、patch-kit経由で導入している機能に、Canvas上でのTextオブジェクトの回転があるが、Tcl/Tk 8.6では同様の機能がupstreamで実装されpatch-kitがコンフリクト状態になっている

* Tcl/Tk 8.6での実装内容を調査する
** [[TIP #119: Angled Text on a Canvas|http://www.tcl.tk/cgi-bin/tct/tip/119]]
** '''anchor'''動作の差異を確認する必要がある
|| 実装 || TIP #119(upstream) || SAD/Tkinter(patch-kit) ||
|| パラメータ名 || '''angle''' || '''rotation''' ||
|| 定義方向 || 反時計回り || 反時計回り ||
|| 単位 || '''degree''' || '''degree''' ||
|| データ型 || 浮動小数点 || 整数 ||

* 対応の方向性に付いて
** Tkinter widgetを直接使うコード向けに後方互換性を実装すべきか否か?
*** '''angle'''パラメータを改変するのはリスクが高い(Tk側のライブラリコードが依存している可能性がある)
*** '''rotation'''パラメータに対する操作を '''angle'''へ転送する proxy delegatorを実装するには?
**** patch-kit(Tcl/Tkインタプリタ)レベルで実装する
**** Tkinter.n側で実装する(TclEval経由では、機能しない)
** Canvasの実装で、'''Rotation'''と'''Angle'''のどちらを標準とするか
*** '''Rotation'''を標準として維持する場合、Tcl/Tkインタプリタレベルでの互換性を求めた場合、Tcl/Tk8.6への改変patch-kitを継続的に保守する必要が生じる
*** '''Angle'''を標準とする場合、Tcl/Tk 8.4及び8.5向けの patch-kitを改訂もしくはTkiner.nでの対応を必要とする

!! Attachement files
{{attach_map('Ticket-38')}}
{{attach_form('','')}}

!! Changelog
!!!amorita (2016-06-10 (金) 16:19:14)
Tcl/Tk 8.6での '''angle'''パラメータの回転方向は'''反時計回り'''で、patch-kitで実装した'''rotation'''パラメータと同じ

また、'''angle'''パラメータは90度の整数倍以外の中間的角度をサポートしている
!!!amorita (2016-06-10 (金) 17:04:38)
'''r4424'''にて、暫定的なTcl/Tk 8.6.5サポートを追加

現時点では、Canvas TextにてBackquote表記をサポートしていない

最低限、Tk_KGDrawAngledTextLayoutの実装が必要

Anchorの動作に関しては、要確認
!!!amorita (2016-06-29 (水) 10:07:38)
'''TkDrawAngledTextLayout'''は、''generic/tkFont.c''で実装されている


{{its_edit_ticket_form}}