Fixed up for release.
This commit is contained in:
parent
104f35182c
commit
c906053c07
9 changed files with 73 additions and 54 deletions
|
|
@ -15,7 +15,7 @@ cache:
|
||||||
# or remove the env block entirely and remove the condition in the
|
# or remove the env block entirely and remove the condition in the
|
||||||
# deploy block.
|
# deploy block.
|
||||||
env:
|
env:
|
||||||
- DEPLOY_PYPI="false"
|
- DEPLOY_PYPI="true"
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
- provider: releases
|
- provider: releases
|
||||||
|
|
@ -31,7 +31,7 @@ deploy:
|
||||||
- provider: pypi
|
- provider: pypi
|
||||||
user: adafruit-travis
|
user: adafruit-travis
|
||||||
password:
|
password:
|
||||||
secure: #-- PASTE ENCRYPTED PASSWORD HERE --#
|
secure: ZxsMZrdftjJBqxdW4fowdLWFR5ykdCawV6pQt1BwRO8Q+6PGRloGkpIBQ2tj9eX85YY8q5sBIhqNwODJ5od9/B7nbx3xTo8T79O5Nq//tv9zmZaQS/uqZo8fj9TaHpaq+MVH2aCRfepey9/OzVRRsIZW/nEpaHuDPow7UtaoGFij4VsZ66RoVm88J7Zer8/bVlOdYatmMpb8SOSRE8Hj6jx7F4ayVxF2hVdzd8wOxrKObDkEFZ9ym0xYKHMWdPehtbnCOo/rgm0jtutd8plrKnTm//qNFEp6CdRcLbCEL6cQoPOWzk47p7tGe42yHllquB//f2VqmGzep3+YverAAOrPG2XOxp2ypQFc0RL6KY6CpDqWAdfYh+/H5o74oxCvRVWyUyHZ2eTHrd6YKnwlhxDTk0+A7FwforEPODm/YGxoTrRXduiD+LR4xvPFaQISAyFjIOeCYA1Yyfz4ZTQgcpXwqAa4irLlfb3rdjWRZIRnhR6mQsd1nTqDaxXcqlbL/EIH8KKG0ZBIAXL7F73ajRblaVn2iHvYkrTDKQhR8yaIFBUgAoSXdCBY1TIg3/RWU/knRyQItEKiQHXgua+gVO95GT4a2Hf2yV4y3PoaXCSoAVF24hgnHN9WRIEpyVRHgcMJpH2bLnXmDnl8KPgEqZD586tQaCqZdIdKtNJhUbo=
|
||||||
on:
|
on:
|
||||||
tags: true
|
tags: true
|
||||||
condition: $DEPLOY_PYPI = "true"
|
condition: $DEPLOY_PYPI = "true"
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
# Adafruit_CircuitPython_Display_Button
|
|
||||||
Press it!
|
|
||||||
|
|
@ -28,10 +28,6 @@ This is easily achieved by downloading
|
||||||
|
|
||||||
Installing from PyPI
|
Installing from PyPI
|
||||||
--------------------
|
--------------------
|
||||||
.. note:: This library is not available on PyPI yet. Install documentation is included
|
|
||||||
as a standard element. Stay tuned for PyPI availability!
|
|
||||||
.. todo:: Remove the above note if PyPI version is/will be available at time of release.
|
|
||||||
If the library is not planned for PyPI, remove the entire 'Installing from PyPI' section.
|
|
||||||
On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
|
On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
|
||||||
PyPI <https://pypi.org/project/adafruit-circuitpython-display_button/>`_. To install for current user:
|
PyPI <https://pypi.org/project/adafruit-circuitpython-display_button/>`_. To install for current user:
|
||||||
|
|
||||||
|
|
@ -57,7 +53,7 @@ To install in a virtual environment in your current project:
|
||||||
Usage Example
|
Usage Example
|
||||||
=============
|
=============
|
||||||
|
|
||||||
.. todo:: Add a quick, simple example. It and other examples should live in the examples folder and be included in docs/examples.rst.
|
See examples in examples/ folder.
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
============
|
============
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
# THE SOFTWARE.
|
# THE SOFTWARE.
|
||||||
"""
|
"""
|
||||||
`adafruit_display_button`
|
`adafruit_button`
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
UI Buttons for displayio
|
UI Buttons for displayio
|
||||||
|
|
@ -38,9 +38,9 @@ Implementation Notes
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from micropython import const
|
||||||
import displayio
|
import displayio
|
||||||
from adafruit_display_text.text_area import TextArea
|
from adafruit_display_text.text_area import TextArea
|
||||||
from adafruit_bitmap_font import bitmap_font
|
|
||||||
from adafruit_display_shapes.rect import Rect
|
from adafruit_display_shapes.rect import Rect
|
||||||
from adafruit_display_shapes.roundrect import RoundRect
|
from adafruit_display_shapes.roundrect import RoundRect
|
||||||
|
|
||||||
|
|
@ -48,11 +48,40 @@ __version__ = "0.0.0-auto.0"
|
||||||
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Display_Button.git"
|
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Display_Button.git"
|
||||||
|
|
||||||
|
|
||||||
|
def _check_color(color):
|
||||||
|
# if a tuple is supplied, convert it to a RGB number
|
||||||
|
if isinstance(color, tuple):
|
||||||
|
r, g, b = color
|
||||||
|
return int((r << 16) + (g << 8) + (b & 0xff))
|
||||||
|
return color
|
||||||
|
|
||||||
|
|
||||||
class Button():
|
class Button():
|
||||||
|
# pylint: disable=too-many-instance-attributes, too-many-locals
|
||||||
|
"""Helper class for creating UI buttons for ``displayio``.
|
||||||
|
|
||||||
|
:param x: The x position of the button.
|
||||||
|
:param y: The y position of the button.
|
||||||
|
:param width: The width of the button in pixels.
|
||||||
|
:param height: The height of the button in pixels.
|
||||||
|
:param name: The name of the button.
|
||||||
|
:param style: The style of the button. Can be RECT, ROUNDRECT, SHADOWRECT, SHADOWROUNDRECT.
|
||||||
|
Defaults to RECT.
|
||||||
|
:param fill_color: The color to fill the button. Defaults to 0xFFFFFF.
|
||||||
|
:param outline_color: The color of the outline of the button.
|
||||||
|
:param label: The button label. Defaults to 0x0.
|
||||||
|
:param label_font: The button label font.
|
||||||
|
:param label_color: The color of the button label. Defaults to 0x0.
|
||||||
|
:param selected_fill: Inverts the fill color.
|
||||||
|
:param selected_outline: Inverts the outline color.
|
||||||
|
:param selected_label: Inverts the label color.
|
||||||
|
|
||||||
|
"""
|
||||||
RECT = const(0)
|
RECT = const(0)
|
||||||
ROUNDRECT = const(1)
|
ROUNDRECT = const(1)
|
||||||
SHADOWRECT = const(2)
|
SHADOWRECT = const(2)
|
||||||
SHADOWROUNDRECT = const(3)
|
SHADOWROUNDRECT = const(3)
|
||||||
|
|
||||||
def __init__(self, *, x, y, width, height, name=None, style=RECT,
|
def __init__(self, *, x, y, width, height, name=None, style=RECT,
|
||||||
fill_color=0xFFFFFF, outline_color=0x0,
|
fill_color=0xFFFFFF, outline_color=0x0,
|
||||||
label=None, label_font=None, label_color=0x0,
|
label=None, label_font=None, label_color=0x0,
|
||||||
|
|
@ -66,38 +95,39 @@ class Button():
|
||||||
self._selected = False
|
self._selected = False
|
||||||
self.group = displayio.Group()
|
self.group = displayio.Group()
|
||||||
self.name = name
|
self.name = name
|
||||||
|
self.label = label
|
||||||
|
|
||||||
self.fill_color = fill_color
|
self.fill_color = _check_color(fill_color)
|
||||||
self.outline_color = outline_color
|
self.outline_color = _check_color(outline_color)
|
||||||
self.label_color = label_color
|
self.label_color = label_color
|
||||||
# Selecting inverts the button colors!
|
# Selecting inverts the button colors!
|
||||||
self.selected_fill = selected_fill
|
self.selected_fill = _check_color(selected_fill)
|
||||||
self.selected_outline = selected_outline
|
self.selected_outline = _check_color(selected_outline)
|
||||||
self.selected_label = selected_label
|
self.selected_label = _check_color(selected_label)
|
||||||
|
|
||||||
if self.selected_fill is None and fill_color is not None:
|
if self.selected_fill is None and fill_color is not None:
|
||||||
self.selected_fill = (~fill_color) & 0xFFFFFF
|
self.selected_fill = (~self.fill_color) & 0xFFFFFF
|
||||||
if self.selected_outline is None and outline_color is not None:
|
if self.selected_outline is None and outline_color is not None:
|
||||||
self.selected_outline = (~outline_color) & 0xFFFFFF
|
self.selected_outline = (~self.outline_color) & 0xFFFFFF
|
||||||
|
|
||||||
if outline_color or fill_color:
|
if outline_color or fill_color:
|
||||||
self.body = self.shadow = None
|
self.body = self.shadow = None
|
||||||
if style == RECT:
|
if style == Button.RECT:
|
||||||
self.body = Rect(x, y, width, height,
|
self.body = Rect(x, y, width, height,
|
||||||
fill=fill_color, outline=outline_color)
|
fill=self.fill_color, outline=self.outline_color)
|
||||||
elif style == ROUNDRECT:
|
elif style == Button.ROUNDRECT:
|
||||||
self.body = RoundRect(x, y, width, height, r=10,
|
self.body = RoundRect(x, y, width, height, r=10,
|
||||||
fill=fill_color, outline=outline_color)
|
fill=self.fill_color, outline=self.outline_color)
|
||||||
elif style == SHADOWRECT:
|
elif style == Button.SHADOWRECT:
|
||||||
self.shadow = Rect(x + 2, y + 2, width - 2, height - 2,
|
self.shadow = Rect(x + 2, y + 2, width - 2, height - 2,
|
||||||
fill=outline_color)
|
fill=outline_color)
|
||||||
self.body = Rect(x, y, width - 2, height - 2,
|
self.body = Rect(x, y, width - 2, height - 2,
|
||||||
fill=fill_color, outline=outline_color)
|
fill=self.fill_color, outline=self.outline_color)
|
||||||
elif style == SHADOWROUNDRECT:
|
elif style == Button.SHADOWROUNDRECT:
|
||||||
self.shadow = RoundRect(x + 2, y + 2, width - 2, height - 2, r=10,
|
self.shadow = RoundRect(x + 2, y + 2, width - 2, height - 2, r=10,
|
||||||
fill=outline_color)
|
fill=self.outline_color)
|
||||||
self.body = RoundRect(x, y, width - 2, height - 2, r=10,
|
self.body = RoundRect(x, y, width - 2, height - 2, r=10,
|
||||||
fill=fill_color, outline=outline_color)
|
fill=self.fill_color, outline=self.outline_color)
|
||||||
if self.shadow:
|
if self.shadow:
|
||||||
self.group.append(self.shadow)
|
self.group.append(self.shadow)
|
||||||
self.group.append(self.body)
|
self.group.append(self.body)
|
||||||
|
|
@ -118,14 +148,13 @@ class Button():
|
||||||
self.selected_label = (~label_color) & 0xFFFFFF
|
self.selected_label = (~label_color) & 0xFFFFFF
|
||||||
# print(dims)
|
# print(dims)
|
||||||
|
|
||||||
"""
|
|
||||||
# else: # ok just a bounding box
|
# else: # ok just a bounding box
|
||||||
# self.bodyshape = displayio.Shape(width, height)
|
# self.bodyshape = displayio.Shape(width, height)
|
||||||
# self.group.append(self.bodyshape)
|
# self.group.append(self.bodyshape)
|
||||||
"""
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def selected(self):
|
def selected(self):
|
||||||
|
"""Selected inverts the colors."""
|
||||||
return self._selected
|
return self._selected
|
||||||
|
|
||||||
@selected.setter
|
@selected.setter
|
||||||
|
|
@ -142,4 +171,9 @@ class Button():
|
||||||
self.label.color = self.label_color
|
self.label.color = self.label_color
|
||||||
|
|
||||||
def contains(self, point):
|
def contains(self, point):
|
||||||
return (self.x <= point[0] <= self.x+self.width) and (self.y <= point[1] <= self.y+self.height)
|
"""Used to determine if a point is contained within a button. For example,
|
||||||
|
``button.contains(touch)`` where ``touch`` is the touch point on the screen will allow for
|
||||||
|
determining that a button has been touched.
|
||||||
|
"""
|
||||||
|
return (self.x <= point[0] <= self.x + self.width) and (self.y <= point[1] <=
|
||||||
|
self.y + self.height)
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,5 @@
|
||||||
.. If your library file(s) are nested in a directory (e.g. /adafruit_foo/foo.py)
|
.. If your library file(s) are nested in a directory (e.g. /adafruit_foo/foo.py)
|
||||||
.. use this format as the module name: "adafruit_foo.foo"
|
.. use this format as the module name: "adafruit_foo.foo"
|
||||||
|
|
||||||
.. automodule:: adafruit_display_button
|
.. automodule:: adafruit_button
|
||||||
:members:
|
:members:
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ extensions = [
|
||||||
# Uncomment the below if you use native CircuitPython modules such as
|
# Uncomment the below if you use native CircuitPython modules such as
|
||||||
# digitalio, micropython and busio. List the modules you use. Without it, the
|
# digitalio, micropython and busio. List the modules you use. Without it, the
|
||||||
# autodoc module docs will fail to generate with a warning.
|
# autodoc module docs will fail to generate with a warning.
|
||||||
# autodoc_mock_imports = ["digitalio", "busio"]
|
autodoc_mock_imports = ["displayio", "adafruit_display_text", "adafruit_display_shapes"]
|
||||||
|
|
||||||
|
|
||||||
intersphinx_mapping = {'python': ('https://docs.python.org/3.4', None),'CircuitPython': ('https://circuitpython.readthedocs.io/en/latest/', None)}
|
intersphinx_mapping = {'python': ('https://docs.python.org/3.4', None),'CircuitPython': ('https://circuitpython.readthedocs.io/en/latest/', None)}
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,10 @@ Table of Contents
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Tutorials
|
:caption: Tutorials
|
||||||
|
|
||||||
.. todo:: Add any Learn guide links here. If there are none, then simply delete this todo and leave
|
|
||||||
the toctree above for use later.
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Related Products
|
:caption: Related Products
|
||||||
|
|
||||||
.. todo:: Add any product links here. If there are none, then simply delete this todo and leave
|
|
||||||
the toctree above for use later.
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:caption: Other Links
|
:caption: Other Links
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,7 @@
|
||||||
import time
|
import os
|
||||||
import board
|
import board
|
||||||
import displayio
|
import displayio
|
||||||
import os
|
|
||||||
from adafruit_display_text.text_area import TextArea
|
|
||||||
from adafruit_bitmap_font import bitmap_font
|
from adafruit_bitmap_font import bitmap_font
|
||||||
from adafruit_display_shapes.rect import Rect
|
|
||||||
from adafruit_button import Button
|
from adafruit_button import Button
|
||||||
import adafruit_touchscreen
|
import adafruit_touchscreen
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
import time
|
import time
|
||||||
import board
|
|
||||||
import displayio
|
|
||||||
from adafruit_pyportal import PyPortal
|
from adafruit_pyportal import PyPortal
|
||||||
from adafruit_button import Button
|
from adafruit_button import Button
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue