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
 |