mirror of
				https://github.com/python/cpython.git
				synced 2025-11-01 06:01:29 +00:00 
			
		
		
		
	Issue #6167: Scrollbar.activate() now returns the name of active element if
the argument is not specified. Scrollbar.set() now always accepts only 2 arguments. Added tests for Scrollbar.activate() and Scrollbar.set().
This commit is contained in:
		
							parent
							
								
									6e20460dc6
								
							
						
					
					
						commit
						320f339131
					
				
					 3 changed files with 33 additions and 6 deletions
				
			
		|  | @ -2875,10 +2875,14 @@ def __init__(self, master=None, cnf={}, **kw): | |||
|         relief, repeatdelay, repeatinterval, takefocus, | ||||
|         troughcolor, width.""" | ||||
|         Widget.__init__(self, master, 'scrollbar', cnf, kw) | ||||
|     def activate(self, index): | ||||
|         """Display the element at INDEX with activebackground and activerelief. | ||||
|         INDEX can be "arrow1","slider" or "arrow2".""" | ||||
|         self.tk.call(self._w, 'activate', index) | ||||
|     def activate(self, index=None): | ||||
|         """Marks the element indicated by index as active. | ||||
|         The only index values understood by this method are "arrow1", | ||||
|         "slider", or "arrow2".  If any other value is specified then no | ||||
|         element of the scrollbar will be active.  If index is not specified, | ||||
|         the method returns the name of the element that is currently active, | ||||
|         or None if no element is active.""" | ||||
|         return self.tk.call(self._w, 'activate', index) or None | ||||
|     def delta(self, deltax, deltay): | ||||
|         """Return the fractional change of the scrollbar setting if it | ||||
|         would be moved by DELTAX or DELTAY pixels.""" | ||||
|  | @ -2896,10 +2900,10 @@ def get(self): | |||
|         """Return the current fractional values (upper and lower end) | ||||
|         of the slider position.""" | ||||
|         return self._getdoubles(self.tk.call(self._w, 'get')) | ||||
|     def set(self, *args): | ||||
|     def set(self, first, last): | ||||
|         """Set the fractional values of the slider position (upper and | ||||
|         lower ends as value between 0 and 1).""" | ||||
|         self.tk.call((self._w, 'set') + args) | ||||
|         self.tk.call(self._w, 'set', first, last) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -916,6 +916,25 @@ def test_orient(self): | |||
|         self.checkEnumParam(widget, 'orient', 'vertical', 'horizontal', | ||||
|                 errmsg='bad orientation "{}": must be vertical or horizontal') | ||||
| 
 | ||||
|     def test_activate(self): | ||||
|         sb = self.create() | ||||
|         for e in ('arrow1', 'slider', 'arrow2'): | ||||
|             sb.activate(e) | ||||
|             self.assertEqual(sb.activate(), e) | ||||
|         sb.activate('') | ||||
|         self.assertIsNone(sb.activate()) | ||||
|         self.assertRaises(TypeError, sb.activate, 'arrow1', 'arrow2') | ||||
| 
 | ||||
|     def test_set(self): | ||||
|         sb = self.create() | ||||
|         sb.set(0.2, 0.4) | ||||
|         self.assertEqual(sb.get(), (0.2, 0.4)) | ||||
|         self.assertRaises(TclError, sb.set, 'abc', 'def') | ||||
|         self.assertRaises(TclError, sb.set, 0.6, 'def') | ||||
|         self.assertRaises(TclError, sb.set, 0.6, None) | ||||
|         self.assertRaises(TypeError, sb.set, 0.6) | ||||
|         self.assertRaises(TypeError, sb.set, 0.6, 0.7, 0.8) | ||||
| 
 | ||||
| 
 | ||||
| @add_standard_options(StandardOptionsTests) | ||||
| class PanedWindowTest(AbstractWidgetTest, unittest.TestCase): | ||||
|  |  | |||
|  | @ -108,6 +108,10 @@ Core and Builtins | |||
| Library | ||||
| ------- | ||||
| 
 | ||||
| - Issue #6167: Scrollbar.activate() now returns the name of active element if | ||||
|   the argument is not specified.  Scrollbar.set() now always accepts only 2 | ||||
|   arguments. | ||||
| 
 | ||||
| - Issue #15275: Clean up and speed up the ntpath module. | ||||
| 
 | ||||
| - Issue #21888: plistlib's load() and loads() now work if the fmt parameter is | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka