Bwidget Source Code
Check-in [0371bea522]
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Place the bubblehelp correctly within the virtual screen [b64e03e548].
Timelines: family | ancestors | descendants | both | bwidget
Files: files | file ages | folders
SHA1:0371bea522cf0b39a9976849a2387a3807417157
User & Date: oehhar 2015-11-04 09:51:24
References
2015-11-04
09:57 Closed ticket [b64e03e548]: Multi monitors issue on Windows plus 9 other changes artifact: 23d4a7878f user: oehhar
Context
2015-12-08
18:18
8.4 compatibility was broken due to the use of min/max math functions. Ticket [0aef856302] check-in: b765b56d04 user: oehhar tags: bwidget
2015-11-04
09:51
Place the bubblehelp correctly within the virtual screen [b64e03e548]. check-in: 0371bea522 user: oehhar tags: bwidget
2015-10-18
17:57
BWidget 1.9.9 release check-in: 346e8c2d46 user: oehhar tags: bwidget, bwidget-1-9-9
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.







1
2
3
4
5
6
7






2015-10-18 Harald Oehlmann <oehhar@users.sourceforge.net>

	**** BWidget 1.9.9 tagged ****

2015-03-18 Harald Oehlmann <oehhar@users.sourceforge.net>

	widget.tcl: Widget::define got new parameter -namespace,
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
2015-11-04 Harald Oehlmann <oehhar@users.sourceforge.net>
	dynhelp.tcl: Drop the asumption that all windows
	screen are the same size (of fix dated 2009-06-26)
	and use the virtual screen information to place the bubble
	help. Ticket [b64e03e548].

2015-10-18 Harald Oehlmann <oehhar@users.sourceforge.net>

	**** BWidget 1.9.9 tagged ****

2015-03-18 Harald Oehlmann <oehhar@users.sourceforge.net>

	widget.tcl: Widget::define got new parameter -namespace,

Changes to dynhelp.tcl.

109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
...
694
695
696
697
698
699
700
701
702
703
704
705
706

707
708
709
710
711
712
713

714
715
716

717
718
719
720
721
722
723
724
#  Command DynamicHelp::sethelp
# ----------------------------------------------------------------------------
proc DynamicHelp::sethelp { path subpath {force 0}} {
    foreach {ctype ctext cvar} [Widget::hasChangedX $path \
	    -helptype -helptext -helpvar] break
    if { $force || $ctype || $ctext || $cvar } {
	set htype [Widget::cget $path -helptype]
        switch $htype {
            balloon {
                return [register $subpath balloon \
			[Widget::cget $path -helptext]]
            }
            variable {
                return [register $subpath variable \
			[Widget::cget $path -helpvar] \
................................................................................
	if {![winfo exists $_top]} {return}

        set  scrwidth  [winfo vrootwidth  .]
        set  scrheight [winfo vrootheight .]
        set  width     [winfo reqwidth  $_top]
        set  height    [winfo reqheight $_top]

        # On windows multi screen configurations, coordinates may get outside
        # the main screen. We suppose that all screens have the same size
        # because it is not possible to query the size of the other screens.
        
        set screenx [expr {$x % $scrwidth} ]
        set screeny [expr {$y % $scrheight} ]

        
        # Increment the required size by the deplacement from the passed point
        incr width 8
        incr height 12
        
        if { $screenx+$width > $scrwidth } {
            set x [expr {$x + ($scrwidth - $screenx) - ($width - 8)}]

        } else {
            incr x 8
        }

        if { $screeny+$height > $scrheight } {
            set y [expr {$y - $height}]
        } else {
            incr y 12
        }

        wm geometry  $_top "+$x+$y"
        update idletasks







|







 







|
|
|
<
<
<
>





|
|
>



>
|







109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
...
694
695
696
697
698
699
700
701
702
703



704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
#  Command DynamicHelp::sethelp
# ----------------------------------------------------------------------------
proc DynamicHelp::sethelp { path subpath {force 0}} {
    foreach {ctype ctext cvar} [Widget::hasChangedX $path \
	    -helptype -helptext -helpvar] break
    if { $force || $ctype || $ctext || $cvar } {
	set htype [Widget::cget $path -helptype]
        switch -- $htype {
            balloon {
                return [register $subpath balloon \
			[Widget::cget $path -helptext]]
            }
            variable {
                return [register $subpath variable \
			[Widget::cget $path -helpvar] \
................................................................................
	if {![winfo exists $_top]} {return}

        set  scrwidth  [winfo vrootwidth  .]
        set  scrheight [winfo vrootheight .]
        set  width     [winfo reqwidth  $_top]
        set  height    [winfo reqheight $_top]

        # On windows multi screen configurations, the virtual screen may start
        # at negative positions.
        set scrrootx [winfo vrootx .]



        set scrrooty [winfo vrooty .]
        
        # Increment the required size by the deplacement from the passed point
        incr width 8
        incr height 12
        
        # Put at the right border if going over it
        if { $x+$width > $scrrootx+$scrwidth } {
            set x [expr {$scrwidth + $scrrootx - $width + 8}]
        } else {
            incr x 8
        }
        # Put above widget if below is no space
        if { $y+$height > $scrrooty+$scrheight } {
            set y [expr {$y - $height}]
        } else {
            incr y 12
        }

        wm geometry  $_top "+$x+$y"
        update idletasks