head	1.6;
access;
symbols
	core-8-5-9:1.5.2.1
	core-8-5-8:1.5
	macosx-cocoa-merge:1.6
	macosx-cocoa-premerge:1.6
	macosx-carbon-freeze:1.6
	core-8-5-7:1.5
	core-8-5-6:1.5
	core-8-6-b1:1.6
	core-8-6-a3:1.5
	core-8-5-5:1.5
	core-8-6-a2:1.5
	core-8-5-4:1.5
	core-8-5-3:1.5
	core-8-6-a1:1.5
	core-8-5-branch:1.5.0.2
	core-8-5-2:1.5
	core-8-5-1:1.5
	core-8-5-0:1.5
	core-8-5-b3:1.4
	core-8-5-b2:1.4
	core-8-5-b1:1.4
	core-stablilizer-merge:1.4
	core-stabilizer-branch:1.3.0.2
	core-stabilizer-merge:1.5
	core-8-5-a6:1.3;
locks; strict;
comment	@# @;


1.6
date	2008.10.28.20.02.03;	author jenglish;	state Exp;
branches;
next	1.5;

1.5
date	2007.12.13.15.27.08;	author dgp;	state Exp;
branches
	1.5.2.1;
next	1.4;

1.4
date	2007.06.09.21.45.45;	author jenglish;	state Exp;
branches;
next	1.3;

1.3
date	2007.04.13.00.21.47;	author hobbs;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2006.11.07.03.45.28;	author jenglish;	state Exp;
branches;
next	1.1;

1.1
date	2006.10.31.01.42.27;	author hobbs;	state Exp;
branches;
next	;

1.3.2.1
date	2007.06.12.16.22.41;	author dgp;	state Exp;
branches;
next	;

1.5.2.1
date	2010.08.26.02.06.10;	author hobbs;	state Exp;
branches;
next	;


desc
@@


1.6
log
@Expanded set of symbolic cursors.
Add correct platform-specific cursors for OSX [Bug 2054562]
Use correct cursor for ttk::entry and ttk::combobox widgets [Bug 1534835]
@
text
@#
# $Id: panedwindow.tcl,v 1.5 2007/12/13 15:27:08 dgp Exp $
#
# Bindings for ttk::panedwindow widget.
#

namespace eval ttk::panedwindow {
    variable State
    array set State {
	pressed 0
    	pressX	-
	pressY	-
	sash 	-
	sashPos -
    }
}

## Bindings:
#
bind TPanedwindow <ButtonPress-1> 	{ ttk::panedwindow::Press %W %x %y }
bind TPanedwindow <B1-Motion>		{ ttk::panedwindow::Drag %W %x %y }
bind TPanedwindow <ButtonRelease-1> 	{ ttk::panedwindow::Release %W %x %y }

bind TPanedwindow <Motion> 		{ ttk::panedwindow::SetCursor %W %x %y }
bind TPanedwindow <Enter> 		{ ttk::panedwindow::SetCursor %W %x %y }
bind TPanedwindow <Leave> 		{ ttk::panedwindow::ResetCursor %W }
# See <<NOTE-PW-LEAVE-NOTIFYINFERIOR>>
bind TPanedwindow <<EnteredChild>>	{ ttk::panedwindow::ResetCursor %W }

## Sash movement:
#
proc ttk::panedwindow::Press {w x y} {
    variable State

    set sash [$w identify $x $y]
    if {$sash eq ""} {
    	set State(pressed) 0
	return
    }
    set State(pressed) 	1
    set State(pressX) 	$x
    set State(pressY) 	$y
    set State(sash) 	$sash
    set State(sashPos)	[$w sashpos $sash]
}

proc ttk::panedwindow::Drag {w x y} {
    variable State
    if {!$State(pressed)} { return }
    switch -- [$w cget -orient] {
    	horizontal 	{ set delta [expr {$x - $State(pressX)}] }
    	vertical 	{ set delta [expr {$y - $State(pressY)}] }
    }
    $w sashpos $State(sash) [expr {$State(sashPos) + $delta}]
}

proc ttk::panedwindow::Release {w x y} {
    variable State
    set State(pressed) 0
    SetCursor $w $x $y
}

## Cursor management:
#
proc ttk::panedwindow::ResetCursor {w} {
    variable State
    if {!$State(pressed)} {
	ttk::setCursor $w {}
    }
}

proc ttk::panedwindow::SetCursor {w x y} {
    set cursor ""
    if {[llength [$w identify $x $y]]} {
    	# Assume we're over a sash.
	switch -- [$w cget -orient] {
	    horizontal 	{ set cursor hresize }
	    vertical 	{ set cursor vresize }
	}
    }
    ttk::setCursor $w $cursor
}

#*EOF*
@


1.5
log
@merge stable branch onto HEAD
@
text
@d2 1
a2 1
# $Id: panedwindow.tcl,v 1.3.2.1 2007/06/12 16:22:41 dgp Exp $
a29 1

d68 1
a68 1
	$w configure -cursor {}
d73 2
a74 5
    variable ::ttk::Cursors

    if {![llength [$w identify $x $y]]} {
    	ResetCursor $w
    } else {
d77 2
a78 2
	    horizontal 	{ $w configure -cursor $Cursors(hresize) }
	    vertical 	{ $w configure -cursor $Cursors(vresize) }
d81 1
@


1.5.2.1
log
@        Major backport of 8.6 Ttk for 8.5.9.  Most changes were only being
        committed to head (8.6), although they could apply for 8.5 as well.
        This re-sync makes future work easier to maintain and adds some
        useful work for 8.5 users. Notable changes:
        - Lots of code cleanup
        - Some bug fixes never backported
        - Addition of ttk::spinbox
        - minor color changes
        - Improved Vista/7 styling
        - Move to tile version 0.8.6 (pseudo-package)
        - ABI and API compatible (even $w identify)
        - minor new features (extended $w identify)
@
text
@d2 1
a2 1
# $Id: panedwindow.tcl,v 1.6 2008/10/28 20:02:03 jenglish Exp $
d30 1
d69 1
a69 1
	ttk::setCursor $w {}
d74 5
a78 2
    set cursor ""
    if {[llength [$w identify $x $y]]} {
d81 2
a82 2
	    horizontal 	{ set cursor hresize }
	    vertical 	{ set cursor vresize }
a84 1
    ttk::setCursor $w $cursor
@


1.4
log
@Ttk_Manager API overhaul:
    + Ttk_Manager no longer responsible for managing slave records
    + Ttk_Manager structure now opaque
    + Ttk_Slave structure now private
    + Pass Ttk_Manager * to Tk_GeomMgr hooks instead of Ttk_Slave *
ttk::labelframe: Simplified -labelwidget management.
ttk::noteboook 'insert' command didn't correctly maintain current tab.
Changed documentation of ttk::panedwindow 'identify' command to
match implementation.
@
text
@d2 1
a2 1
# $Id: panedwindow.tcl,v 1.3 2007/04/13 00:21:47 hobbs Exp $
@


1.3
log
@	* library/ttk/panedwindow.tcl (ttk::panedwindow::Press): handle
	Press triggering outside sash element boundaries.
@
text
@d2 1
a2 1
# $Id: panedwindow.tcl,v 1.2 2006/11/07 03:45:28 jenglish Exp $
d36 2
a37 2
    lassign [$w identify $x $y] sash element
    if {![info exists sash] || $sash eq ""} {
@


1.3.2.1
log
@merge updates from HEAD
@
text
@d2 1
a2 1
# $Id: panedwindow.tcl,v 1.3 2007/04/13 00:21:47 hobbs Exp $
d36 2
a37 2
    set sash [$w identify $x $y]
    if {$sash eq ""} {
@


1.2
log
@Miscellaneous minor changes to re-sync Ttk codebase with Tile CVS:
fix comments damaged by overzealous search-and-destroy;
removed obsolete [style default] synonym for [ttk::style configure];
removed other dead code.
@
text
@d2 1
a2 1
# $Id: panedwindow.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $
d37 1
a37 1
    if {![info exists sash]} {
@


1.1
log
@	* doc/ttk_Geometry.3, doc/ttk_Theme.3, doc/ttk_button.n:
	* doc/ttk_checkbutton.n, doc/ttk_combobox.n, doc/ttk_dialog.n:
	* doc/ttk_entry.n, doc/ttk_frame.n, doc/ttk_image.n:
	* doc/ttk_intro.n, doc/ttk_label.n, doc/ttk_labelframe.n:
	* doc/ttk_menubutton.n, doc/ttk_notebook.n, doc/ttk_panedwindow.n:
	* doc/ttk_progressbar.n, doc/ttk_radiobutton.n, doc/ttk_scrollbar.n:
	* doc/ttk_separator.n, doc/ttk_sizegrip.n, doc/ttk_style.n:
	* doc/ttk_treeview.n, doc/ttk_widget.n,:
	* generic/ttk/ttk.decls, generic/ttk/ttkBlink.c:
	* generic/ttk/ttkButton.c, generic/ttk/ttkCache.c:
	* generic/ttk/ttkClamTheme.c, generic/ttk/ttkClassicTheme.c:
	* generic/ttk/ttkDecls.h, generic/ttk/ttkDefaultTheme.c:
	* generic/ttk/ttkElements.c, generic/ttk/ttkEntry.c:
	* generic/ttk/ttkFrame.c, generic/ttk/ttkImage.c:
	* generic/ttk/ttkInit.c, generic/ttk/ttkLabel.c:
	* generic/ttk/ttkLayout.c, generic/ttk/ttkManager.c:
	* generic/ttk/ttkManager.h, generic/ttk/ttkNotebook.c:
	* generic/ttk/ttkPanedwindow.c, generic/ttk/ttkProgress.c:
	* generic/ttk/ttkScale.c, generic/ttk/ttkScroll.c:
	* generic/ttk/ttkScrollbar.c, generic/ttk/ttkSeparator.c:
	* generic/ttk/ttkSquare.c, generic/ttk/ttkState.c:
	* generic/ttk/ttkStubInit.c, generic/ttk/ttkStubLib.c:
	* generic/ttk/ttkTagSet.c, generic/ttk/ttkTheme.c:
	* generic/ttk/ttkTheme.h, generic/ttk/ttkThemeInt.h:
	* generic/ttk/ttkTrace.c, generic/ttk/ttkTrack.c:
	* generic/ttk/ttkTreeview.c, generic/ttk/ttkWidget.c:
	* generic/ttk/ttkWidget.h:
	* library/demos/ttk_demo.tcl, library/demos/ttk_iconlib.tcl:
	* library/demos/ttk_repeater.tcl:
	* library/ttk/altTheme.tcl, library/ttk/aquaTheme.tcl:
	* library/ttk/button.tcl, library/ttk/clamTheme.tcl:
	* library/ttk/classicTheme.tcl, library/ttk/combobox.tcl:
	* library/ttk/cursors.tcl, library/ttk/defaults.tcl:
	* library/ttk/dialog.tcl, library/ttk/entry.tcl:
	* library/ttk/fonts.tcl, library/ttk/icons.tcl:
	* library/ttk/keynav.tcl, library/ttk/menubutton.tcl:
	* library/ttk/notebook.tcl, library/ttk/panedwindow.tcl:
	* library/ttk/progress.tcl, library/ttk/scale.tcl:
	* library/ttk/scrollbar.tcl, library/ttk/sizegrip.tcl:
	* library/ttk/treeview.tcl, library/ttk/ttk.tcl:
	* library/ttk/utils.tcl, library/ttk/winTheme.tcl:
	* library/ttk/xpTheme.tcl:
	* macosx/ttkMacOSXTheme.c:
	* tests/ttk/all.tcl, tests/ttk/bwidget.test, tests/ttk/combobox.test:
	* tests/ttk/entry.test, tests/ttk/image.test:
	* tests/ttk/labelframe.test, tests/ttk/layout.test:
	* tests/ttk/misc.test, tests/ttk/notebook.test:
	* tests/ttk/panedwindow.test, tests/ttk/progressbar.test:
	* tests/ttk/scrollbar.test, tests/ttk/treetags.test:
	* tests/ttk/treeview.test, tests/ttk/ttk.test, tests/ttk/validate.test:
	* win/ttkWinMonitor.c, win/ttkWinTheme.c, win/ttkWinXPTheme.c:
	First import of Ttk themed Tk widgets as branched from tile 0.7.8

	* generic/tkInt.h, generic/tkWindow.c: add Ttk_Init call, copy
	tk classic widgets to ::tk namespace.
	* library/tk.tcl: add source of ttk/ttk.tcl, define $::ttk::library.
	* unix/Makefile.in, win/Makefile.in: add Ttk build bits
	* win/configure, win/configure.in: check for uxtheme.h (XP theme).
@
text
@d2 1
a2 1
# $Id: paned.tcl,v 1.2 2006/01/16 15:29:47 jenglish Exp $
d4 1
a4 1
# Ttk widget set: bindings for TPanedwindow widget.
d27 1
a27 1
# See PanedEventProc in ttkPanedwindow.c:
@

