* Klayout PyCell integration
-added tl::optional as derivate of std::optional for c++17 and above, reduced
implementation otherwise
-fixed missing include for c++17 and above
-added range constraints for PCell parameter
Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
* tl::optional now based on internal implementation, added tests and tl::to_string binding
* Refactoring the range into min_value and max_value attributes without action and resolution.
* Integration of feature into PCell framework
* Cleanup and fixed some compile issues
* Cleanup, added tests
* [consider merging] Added pymod distutil_src files to dependencies.
* Updated Python stubs
* User feedback: upon entering an invalid value string into an edit box, do not reset the field
---------
Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
Also fixed a problem with icons that did not get hidden when visibility was changed.
This fix needed some rework of the layout scheme of PCell parameter pages.
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
Currently, in the Array Instance sub-UI that appears when inserting a new
array instance, trying to use the "tab" key to move through the entry
widgets results in going through them in a strange order (column step x,
column step y, row step y, row step x, dimension columns, dimension
rows). This patch declares the correct tabbing order for the widgets.
PCells have been featuring point-like handles but
they suffered some issues because they have been
mapped to degenerated boxes:
- hardly visible
- could be destroyed using partial editing
Now, the database offers points, hence it is
possible to store points explicitly, so no
tricks need to be played to make them visible.
Editing has been implemented to some extent,
so it is possible for example to configure
handles in the properties dialogs.
- do not remove last point of closed paths
- fixed removal of redundant points in polygon/path edit
- on-grid point insertion in paths and polygons for skew angle edges