aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/tkinter/colorchooser.py')
-rw-r--r--Lib/tkinter/colorchooser.py60
1 files changed, 36 insertions, 24 deletions
diff --git a/Lib/tkinter/colorchooser.py b/Lib/tkinter/colorchooser.py
index 9dc9671336..5fd4c347f0 100644
--- a/Lib/tkinter/colorchooser.py
+++ b/Lib/tkinter/colorchooser.py
@@ -8,55 +8,67 @@
# fixed initialcolor handling in August 1998
#
-#
-# options (all have default values):
-#
-# - initialcolor: color to mark as selected when dialog is displayed
-# (given as an RGB triplet or a Tk color string)
-#
-# - parent: which window to place the dialog on top of
-#
-# - title: dialog title
-#
from tkinter.commondialog import Dialog
-#
-# color chooser class
-
class Chooser(Dialog):
- "Ask for a color"
+ """Create a dialog for the tk_chooseColor command.
+
+ Args:
+ master: The master widget for this dialog. If not provided,
+ defaults to options['parent'] (if defined).
+ options: Dictionary of options for the tk_chooseColor call.
+ initialcolor: Specifies the selected color when the
+ dialog is first displayed. This can be a tk color
+ string or a 3-tuple of ints in the range (0, 255)
+ for an RGB triplet.
+ parent: The parent window of the color dialog. The
+ color dialog is displayed on top of this.
+ title: A string for the title of the dialog box.
+ """
command = "tk_chooseColor"
def _fixoptions(self):
+ """Ensure initialcolor is a tk color string.
+
+ Convert initialcolor from a RGB triplet to a color string.
+ """
try:
- # make sure initialcolor is a tk color string
color = self.options["initialcolor"]
if isinstance(color, tuple):
- # assume an RGB triplet
+ # Assume an RGB triplet.
self.options["initialcolor"] = "#%02x%02x%02x" % color
except KeyError:
pass
def _fixresult(self, widget, result):
- # result can be somethings: an empty tuple, an empty string or
- # a Tcl_Obj, so this somewhat weird check handles that
+ """Adjust result returned from call to tk_chooseColor.
+
+ Return both an RGB tuple of ints in the range (0, 255) and the
+ tk color string in the form #rrggbb.
+ """
+ # Result can be many things: an empty tuple, an empty string, or
+ # a _tkinter.Tcl_Obj, so this somewhat weird check handles that.
if not result or not str(result):
- return None, None # canceled
+ return None, None # canceled
- # to simplify application code, the color chooser returns
- # an RGB tuple together with the Tk color string
+ # To simplify application code, the color chooser returns
+ # an RGB tuple together with the Tk color string.
r, g, b = widget.winfo_rgb(result)
- return (r/256, g/256, b/256), str(result)
+ return (r//256, g//256, b//256), str(result)
#
# convenience stuff
-def askcolor(color = None, **options):
- "Ask for a color"
+def askcolor(color=None, **options):
+ """Display dialog window for selection of a color.
+
+ Convenience wrapper for the Chooser class. Displays the color
+ chooser dialog with color as the initial value.
+ """
if color:
options = options.copy()