Tk Library Source Code

Artifact [425caa78ab]
Login

Artifact 425caa78abec72ce1278ebee121b6a7bb9ba9959:

Attachment "tkchat.patch" to ticket [3379933fff] added by mpc_janssen 2011-07-27 21:21:58.
--- tkchat.tcl	Wed Mar 23 20:29:37 2011
+++ tkchat.tcl.new	Wed Jul 27 16:14:32 2011
@@ -47,8 +47,17 @@
 set imgdir [file join $tkchat_dir images]
 set auto_path [linsert $::auto_path 0 $tkchat_dir [file join $tkchat_dir lib]]
 
-package require Tcl 8.4		; # core Tcl
-package require Tk  8.4		; # core Tk
+# core Tcl use peer widget for seperate history if available
+if {[catch {package require Tcl 8.5}]} {
+    package require Tcl 8.4
+    package require Tk 8.4
+    set has_peer 0
+ } else {
+   package require Tk 8.5
+   set has_peer 1
+ }
+
+
 package require http 2		; # core Tcl
 package require msgcat		; # core Tcl
 package require textutil	; # tcllib 1.0
@@ -723,6 +732,7 @@
     # ... Or make the window invisible clearing it from all content
     
     variable useTile
+    global has_peer
     # remember current position in window:
     set fraction [lindex [.txt yview] 1]
     if {[winfo ismapped .cframe]} {
@@ -730,7 +740,9 @@
 	.pane2 forget .cframe
 	update idletasks
 	.clone configure -state normal
-	.clone delete 1.0 end
+  if {!$has_peer} {
+	     .clone delete 1.0 end
+  }
 	.mbar.vis entryconfigure "*current history*" -state normal
     } else {
 	# fill clone and display it:
@@ -739,7 +751,9 @@
 	} else {
 	    .pane2 add .cframe -before .txtframe
 	}
-	::tkchat::textClone .txt .clone
+  if {!$has_peer} {
+	     ::tkchat::textClone .txt .clone
+  }
 	.clone configure -state disabled
 	.mbar.vis entryconfigure "*current history*" -state disabled
     }
@@ -2964,8 +2978,8 @@
     
     # text widget to view history:
     # FIX ME: be nice to have a little theme-specific tab close button here.
-    # FIX ME: this should use the text widget clone feature if available.
     variable useClosebutton
+    global has_peer
     ${NS}::frame .cframe -relief groove
     if {$useClosebutton} {
         if {[catch {
@@ -2975,7 +2989,12 @@
         ${NS}::button .cbtn -text [mc "Close history pane"]
     }
     .cbtn configure -command ::tkchat::HistoryPaneToggle
-    ScrolledWidget text .clone 0 1 \
+    if {$has_peer} {
+      set widget_command {.txt peer create}
+    } else {
+      set widget_command text
+    }
+    ScrolledWidget $widget_command .clone 0 1 \
 	-wrap word -background #f0f0f0 -relief sunken -borderwidth 2 \
 	-font FNT -cursor left_ptr -height 1
     .clone tag bind URL <Enter> [list .clone configure -cursor hand2]