E. A. Tacao. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			145 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| __author__  = "E. A. Tacao <e.a.tacao |at| estadao.com.br>"
 | |
| __date__    = "15 Fev 2006, 22:00 GMT-03:00"
 | |
| __version__ = "0.02"
 | |
| __doc__     = """
 | |
| AnalogClock - an analog clock.
 | |
| 
 | |
| This control creates an analog clock window. Its features include shadowing,
 | |
| the ability to render numbers as well as any arbitrary polygon as tick marks,
 | |
| resize marks and hands proportionally as the widget itself is resized, rotate
 | |
| marks in a way the get aligned to the watch. It also has a dialog, accessed 
 | |
| via a context menu item, allowing one to change on the fly all of its settings.
 | |
| 
 | |
| 
 | |
| Usage:
 | |
| 
 | |
|        AnalogClock(parent, id=-1, pos=wx.DefaultPosition,
 | |
|                    size=wx.DefaultSize, style=wx.NO_BORDER, name="AnalogClock",
 | |
|                    clockStyle=DEFAULT_CLOCK_STYLE,
 | |
|                    minutesStyle=TICKS_CIRCLE, hoursStyle=TICKS_POLY)
 | |
| 
 | |
| - parent, id, pos, size, style and name are used as in a wx.Window. Please
 | |
|   refer to the wx.Window docs for more details.
 | |
| 
 | |
| - clockStyle defines the clock style, according to the options below:
 | |
| 
 | |
|     ====================  ================================
 | |
|     SHOW_QUARTERS_TICKS   Show marks for hours 3, 6, 9, 12
 | |
|     SHOW_HOURS_TICKS      Show marks for all hours
 | |
|     SHOW_MINUTES_TICKS    Show marks for minutes
 | |
| 
 | |
|     SHOW_HOURS_HAND       Show hours hand
 | |
|     SHOW_MINUTES_HAND     Show minutes hand
 | |
|     SHOW_SECONDS_HAND     Show seconds hand
 | |
| 
 | |
|     SHOW_SHADOWS          Show hands and marks shadows
 | |
| 
 | |
|     ROTATE_TICKS          Align tick marks to watch
 | |
|     OVERLAP_TICKS         Draw tick marks for minutes even
 | |
|                           when they match the hours marks.
 | |
| 
 | |
|     DEFAULT_CLOCK_STYLE   The same as SHOW_HOURS_TICKS|
 | |
|                           SHOW_MINUTES_TICKS|
 | |
|                           SHOW_HOURS_HAND|
 | |
|                           SHOW_MINUTES_HAND|
 | |
|                           SHOW_SECONDS_HAND|
 | |
|                           SHOW_SHADOWS|ROTATE_TICKS
 | |
|     ====================  ================================
 | |
| 
 | |
| - minutesStyle and hoursStyle define the the tick styles, according to the
 | |
|   options below:
 | |
| 
 | |
|     =================   ======================================
 | |
|     TICKS_NONE          Don't show tick marks.
 | |
|     TICKS_SQUARE        Use squares as tick marks.
 | |
|     TICKS_CIRCLE        Use circles as tick marks.
 | |
|     TICKS_POLY          Use a polygon as tick marks. A
 | |
|                         polygon can be passed using
 | |
|                         SetTickPolygon, otherwise the default
 | |
|                         polygon will be used.
 | |
|     TICKS_DECIMAL       Use decimal numbers as tick marks.
 | |
|     TICKS_ROMAN         Use Roman numbers as tick marks.
 | |
|     TICKS_BINARY        Use binary numbers as tick marks.
 | |
|     TICKS_HEX           Use hexadecimal numbers as tick marks.
 | |
|     =================   ======================================
 | |
| 
 | |
| 
 | |
| Notes:
 | |
| 
 | |
| The 'target' keyword that's present in various of the AnalogClock methods may
 | |
| accept one (or more, combined using '|') of the following values:
 | |
| 
 | |
|     =========  ===========================================
 | |
|     HOUR       The values passed/retrieved are related to
 | |
|                the hours hand/ticks
 | |
| 
 | |
|     MINUTE     The values passed/retrieved are related to
 | |
|                the minutes hand/ticks
 | |
| 
 | |
|     SECOND     The values passed/retrieved are related to
 | |
|                the seconds hand/ticks
 | |
| 
 | |
|     ALL        The same as HOUR|MINUTE|SECOND, i. e., the
 | |
|                values passed/retrieved are related to all
 | |
|                of the hours hands/ticks. This is the
 | |
|                default value in all methods.
 | |
|     =========  ===========================================
 | |
| 
 | |
| It is legal to pass target=ALL to methods that don't handle seconds (tick
 | |
| mark related methods). In such cases, ALL will be equivalent to HOUR|MINUTE.
 | |
| 
 | |
| All of the 'Get' AnalogClock methods that allow the 'target' keyword
 | |
| will always return a tuple, e. g.:
 | |
| 
 | |
|     =================================  ========================================
 | |
|     GetHandSize(target=HOUR)           Returns a 1 element tuple, containing
 | |
|                                        the size of the hours hand.
 | |
| 
 | |
|     GetHandSize(target=HOUR|MINUTE)    Returns a 2 element tuple, containing
 | |
|                                        the sizes of the hours and the minutes
 | |
|                                        hands, respectively.
 | |
| 
 | |
|     GetHandSize(target=ALL)            Returns a 3 element tuple, containing
 | |
|          or                            the sizes of the hours, minutes and
 | |
|     GetHandSize()                      seconds hands, respectively.
 | |
|     =================================  ========================================
 | |
| 
 | |
| 
 | |
| About:
 | |
| 
 | |
| Most of the ideas and part of the code of AnalogClock were based on the
 | |
| original wxPython's AnalogClock module, which was created by several folks on
 | |
| the wxPython-users list.
 | |
| 
 | |
| AnalogClock is distributed under the wxWidgets license.
 | |
| 
 | |
| This code should meet the wxPython Coding Guidelines 
 | |
| <http://www.wxpython.org/codeguidelines.php> and the wxPython Style Guide
 | |
| <http://wiki.wxpython.org/index.cgi/wxPython_20Style_20Guide>.
 | |
| 
 | |
| For all kind of problems, requests, enhancements, bug reports, etc,
 | |
| please drop me an e-mail.
 | |
| 
 | |
| For updates please visit <http://j.domaindlx.com/elements28/wxpython/>.
 | |
| """
 | |
| 
 | |
| # History:
 | |
| #
 | |
| # Version 0.02:
 | |
| #   - Module/namespace rearranges;
 | |
| #   - All '-1' occurrences meaning "use any id" were eliminated or replaced 
 | |
| #     to 'wx.ID_ANY'.
 | |
| #   - Better names to the methods triggered by the context menu events.
 | |
| #   - Included small demo class code in analogclock.py.
 | |
| # Version 0.01:
 | |
| #   - Initial release.
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| from analogclock import AnalogClock, AnalogClockWindow
 | |
| from styles import *
 | |
| 
 | |
| #
 | |
| ##
 | |
| ### eof
 |