Compute sensible default values for unspecified image attributes
The goal is to enable the user to avoid specifying more attributes than strictly needed.
This commit is contained in:
parent
d289f95bc3
commit
0c6b6f390d
@ -9,8 +9,6 @@ connectors:
|
||||
show_pincount: false
|
||||
image:
|
||||
src: resources/stereo-phone-plug-TRS.png
|
||||
scale: true
|
||||
height: 100
|
||||
caption: Tip, Ring, and Sleeve
|
||||
|
||||
cables:
|
||||
@ -23,6 +21,7 @@ cables:
|
||||
shield: SN
|
||||
image:
|
||||
src: resources/cable-WH+BN+GN+shield.png
|
||||
height: 75
|
||||
caption: Cross-section
|
||||
|
||||
connections:
|
||||
|
||||
@ -11,15 +11,30 @@ from wireviz import wv_colors
|
||||
class Image:
|
||||
# Attributes of the image object <img>:
|
||||
src: str
|
||||
scale: Optional[str] = "false" # false | true | width | height | both
|
||||
scale: Optional[str] = None # false | true | width | height | both
|
||||
# Attributes of the image cell <td> containing the image:
|
||||
width: Optional[int] = None
|
||||
height: Optional[int] = None
|
||||
fixedsize: Optional[bool] = False
|
||||
fixedsize: Optional[bool] = None
|
||||
# Contents of the cell <td> just below the image cell:
|
||||
caption: Optional[str] = None
|
||||
# See also HTML doc at https://graphviz.org/doc/info/shapes.html#html
|
||||
|
||||
def __post_init__(self):
|
||||
|
||||
if self.scale is None:
|
||||
self.scale = "false" if self.width is None and self.height is None \
|
||||
else "both" if self.width is not None and self.height is not None \
|
||||
else "true" # When only one dimension is specified.
|
||||
|
||||
if self.fixedsize is None:
|
||||
self.fixedsize = self.width is not None or self.height is not None
|
||||
|
||||
if self.width is None and self.height is not None:
|
||||
self.width = self.height # Assuming 1:1 aspect ratio for now.
|
||||
elif self.height is None and self.width is not None:
|
||||
self.height = self.width # Assuming 1:1 aspect ratio for now.
|
||||
|
||||
|
||||
@dataclass
|
||||
class Connector:
|
||||
|
||||
@ -75,8 +75,8 @@ def html_caption(image):
|
||||
|
||||
def html_size_attr(image):
|
||||
# Return Graphviz HTML attributes to specify minimum or fixed size of a TABLE or TD object
|
||||
return ((f' width="{image.width}"' if image.width else '')
|
||||
+ (f' height="{image.height}"' if image.height else '')
|
||||
return ((f' width="{image.width}"' if image.width is not None else '')
|
||||
+ (f' height="{image.height}"' if image.height is not None else '')
|
||||
+ ( ' fixedsize="true"' if image.fixedsize else '')) if image else ''
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user