This commit is contained in:
Matthias Koefferlein
2022-05-01 21:56:47 +02:00
parent 48f5f95a8f
commit e49b9a5e8a
96 changed files with 384 additions and 290 deletions
+6 -1
View File
@@ -1165,6 +1165,11 @@ static void clear_children (lay::LayerPropertiesNode *node)
node->clear_children ();
}
static lay::LayoutView *get_view (lay::LayerPropertiesNode *node)
{
return node->view ()->ui ();
}
Class<lay::LayerPropertiesNode> decl_LayerPropertiesNode (
decl_LayerProperties,
"lay", "LayerPropertiesNode",
@@ -1222,7 +1227,7 @@ Class<lay::LayerPropertiesNode> decl_LayerPropertiesNode (
"\n"
"@return A bbox in micron units\n"
) +
method ("view", &lay::LayerPropertiesNode::view,
method_ext ("view", &get_view,
"@brief Gets the view this node lives in\n"
"\n"
"This reference can be nil if the node is a orphan node that lives outside a view."
+38 -7
View File
@@ -336,7 +336,9 @@ static QImage get_image_with_options (lay::LayoutView *view, unsigned int width,
static void save_image_with_options (lay::LayoutView *view, const std::string &fn, unsigned int width, unsigned int height, int linewidth, int oversampling, double resolution, const db::DBox &target_box, bool monochrome)
{
#if defined(HAVE_QT) // @@@
view->save_image_with_options (fn, width, height, linewidth, oversampling, resolution, lay::Color (), lay::Color (), lay::Color (), target_box, monochrome);
#endif
}
static std::vector<std::string>
@@ -417,11 +419,19 @@ static lay::LayoutView *new_view (QWidget *parent, bool editable, db::Manager *m
static lay::LayoutView *new_view2 (bool editable, db::Manager *manager, unsigned int options)
{
#if defined(HAVE_QT)
return new lay::LayoutView (manager, editable, 0 /*plugin parent*/, 0 /*parent*/, "view", options);
#else
return new lay::LayoutView (manager, editable, 0 /*plugin parent*/, options);
#endif
}
#if defined(HAVE_QT)
Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "LayoutView",
#if defined(HAVE_QTBINDINGS)
#else
Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "LayoutView",
#endif
#if defined(HAVE_QTBINDINGS) && defined(HAVE_QT)
gsi::constructor ("new", &new_view, gsi::arg ("parent"), gsi::arg ("editable", false), gsi::arg ("manager", (db::Manager *) 0, "nil"), gsi::arg ("options", (unsigned int) 0),
"@brief Creates a standalone view\n"
"\n"
@@ -574,12 +584,14 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"This method has been introduced in version 0.27."
) +
#if defined(HAVE_QT)
gsi::method ("current", &lay::LayoutView::current,
"@brief Returns the current view\n"
"The current view is the one that is shown in the current tab. Returns nil if no layout is loaded.\n"
"\n"
"This method has been introduced in version 0.23.\n"
) +
#endif
gsi::method ("stop_redraw", &lay::LayoutView::stop_redraw,
"@brief Stops the redraw thread\n"
"\n"
@@ -953,11 +965,13 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"@brief Return the viewport height in pixels\n"
"This method was introduced in version 0.18.\n"
) +
#if defined(HAVE_QT)
gsi::method ("bookmark_view", &lay::LayoutView::bookmark_view, gsi::arg ("name"),
"@brief Bookmarks the current view under the given name\n"
"\n"
"@param name The name under which to bookmark the current state"
) +
#endif
gsi::method ("add_missing_layers", &lay::LayoutView::add_missing_layers,
"@brief Adds new layers to layer list\n"
"This method was introduced in version 0.19.\n"
@@ -1149,7 +1163,6 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"This method has been introduced in 0.23.10.\n"
) +
#endif
gsi::method ("save_screenshot", &lay::LayoutView::save_screenshot, gsi::arg ("filename"),
"@brief Saves a screenshot to the given file\n"
"\n"
@@ -1171,6 +1184,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"The image is written as a PNG file to the given file. "
"The image is drawn synchronously with the given width and height. Drawing may take some time. "
) +
#endif
gsi::method_ext ("save_image_with_options", &save_image_with_options, gsi::arg ("filename"), gsi::arg ("width"), gsi::arg ("height"), gsi::arg ("linewidth"), gsi::arg ("oversampling"), gsi::arg ("resolution"), gsi::arg ("target"), gsi::arg ("monochrome"),
"@brief Saves the layout as an image to the given file (with options)\n"
"\n"
@@ -1556,6 +1570,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"Before version 0.25 this event was based on the observer pattern obsolete now. The corresponding methods "
"(add_file_open_observer/remove_file_open_observer) have been removed in 0.25.\n"
) +
#if defined(HAVE_QT)
gsi::event ("on_close", &lay::LayoutView::close_event,
"@brief A event indicating that the view is about to close\n"
"\n"
@@ -1573,6 +1588,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"It has been added in version 0.25."
) +
#endif
gsi::event ("on_viewport_changed", &lay::LayoutView::viewport_changed_event,
"@brief An event indicating that the viewport (the visible rectangle) has changed\n"
"\n"
@@ -1690,11 +1706,13 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"If a report database with the given name already exists, a unique name will be created.\n"
"The name will be replaced by the file name when a file is loaded into the report database.\n"
) +
#if defined(HAVE_QT)
gsi::method ("show_rdb", &lay::LayoutView::open_rdb_browser, gsi::arg ("rdb_index"), gsi::arg ("cv_index"),
"@brief Shows a report database in the marker browser on a certain layout\n"
"The marker browser is opened showing the report database with the index given by \"rdb_index\".\n"
"It will be attached (i.e. navigate to) the layout with the given cellview index in \"cv_index\".\n"
) +
#endif
gsi::event ("on_l2ndb_list_changed", &lay::LayoutView::l2ndb_list_changed_event,
"@brief An event that is triggered the list of netlist databases is changed\n"
"\n"
@@ -1749,6 +1767,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"This method has been added in version 0.26."
) +
#if defined(HAVE_QT)
gsi::method ("show_l2ndb", &lay::LayoutView::open_l2ndb_browser, gsi::arg ("l2ndb_index"), gsi::arg ("cv_index"),
"@brief Shows a netlist database in the marker browser on a certain layout\n"
"The netlist browser is opened showing the netlist database with the index given by \"l2ndb_index\".\n"
@@ -1756,6 +1775,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"This method has been added in version 0.26."
) +
#endif
gsi::method_ext ("lvsdb", &get_lvsdb, gsi::arg ("index"),
"@brief Gets the netlist database with the given index\n"
"@return The \\LayoutVsSchematic object or nil if the index is not valid"
@@ -1791,6 +1811,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"This method has been added in version 0.26."
) +
#if defined(HAVE_QT)
gsi::method ("show_lvsdb", &lay::LayoutView::open_l2ndb_browser, gsi::arg ("lvsdb_index"), gsi::arg ("cv_index"),
"@brief Shows a netlist database in the marker browser on a certain layout\n"
"The netlist browser is opened showing the netlist database with the index given by \"lvsdb_index\".\n"
@@ -1798,6 +1819,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n"
"This method has been added in version 0.26."
) +
#endif
// HINT: the cast is important to direct GSI to the LayoutView method rather than the
// Plugin method (in which case we get a segmentation violation ..)
// TODO: this method belongs to the Plugin interface and should be located there.
@@ -1985,11 +2007,12 @@ static std::string get_technology (const lay::CellViewRef *cv)
static tl::Event &get_technology_changed_event (lay::CellViewRef *cv)
{
if (! cv->is_valid ()) {
throw tl::Exception (tl::to_string (QObject::tr ("Not a valid cellview")));
throw tl::Exception (tl::to_string (tr ("Not a valid cellview")));
}
return (*cv)->technology_changed_event;
}
#if defined(HAVE_QT)
static lay::CellViewRef get_active_cellview_ref ()
{
lay::LayoutView *view = lay::LayoutView::current ();
@@ -2002,6 +2025,7 @@ static lay::CellViewRef get_active_cellview_ref ()
return lay::CellViewRef ();
}
}
#endif
static void set_cell (lay::CellViewRef *cv, db::Cell *cell)
{
@@ -2046,7 +2070,7 @@ static bool cv_is_cell_hidden (lay::CellViewRef *cv, const db::Cell *cell)
{
if (cv->is_valid () && cell) {
if (cell->layout () != &(*cv)->layout ()) {
throw tl::Exception (tl::to_string (QObject::tr ("The cell is not a cell of the view's layout")));
throw tl::Exception (tl::to_string (tr ("The cell is not a cell of the view's layout")));
}
return cv->view ()->is_cell_hidden (cell->cell_index (), cv->index ());
} else {
@@ -2058,7 +2082,7 @@ static void cv_hide_cell (lay::CellViewRef *cv, const db::Cell *cell)
{
if (cv->is_valid () && cell) {
if (cell->layout () != &(*cv)->layout ()) {
throw tl::Exception (tl::to_string (QObject::tr ("The cell is not a cell of the view's layout")));
throw tl::Exception (tl::to_string (tr ("The cell is not a cell of the view's layout")));
}
cv->view ()->hide_cell (cell->cell_index (), cv->index ());
}
@@ -2068,7 +2092,7 @@ static void cv_show_cell (lay::CellViewRef *cv, const db::Cell *cell)
{
if (cv->is_valid () && cell) {
if (cell->layout () != &(*cv)->layout ()) {
throw tl::Exception (tl::to_string (QObject::tr ("The cell is not a cell of the view's layout")));
throw tl::Exception (tl::to_string (tr ("The cell is not a cell of the view's layout")));
}
cv->view ()->show_cell (cell->cell_index (), cv->index ());
}
@@ -2081,6 +2105,11 @@ static void cv_show_all_cells (lay::CellViewRef *cv)
}
}
static lay::LayoutView *get_view (lay::CellViewRef *cv)
{
return cv->view ()->ui ();
}
Class<lay::CellViewRef> decl_CellView ("lay", "CellView",
method ("==", static_cast<bool (lay::CellViewRef::*) (const lay::CellViewRef &) const> (&lay::CellViewRef::operator==), gsi::arg ("other"),
"@brief Equality: indicates whether the cellviews refer to the same one\n"
@@ -2092,11 +2121,12 @@ Class<lay::CellViewRef> decl_CellView ("lay", "CellView",
"The index will be negative if the cellview is not a valid one.\n"
"This method has been added in version 0.25.\n"
) +
method ("view", &lay::CellViewRef::view,
method_ext ("view", &get_view,
"@brief Gets the view the cellview resides in\n"
"This reference will be nil if the cellview is not a valid one.\n"
"This method has been added in version 0.25.\n"
) +
#if defined(HAVE_QT)
method ("active", &get_active_cellview_ref,
"@brief Gets the active CellView\n"
"The active CellView is the one that is selected in the current layout view. This method is "
@@ -2108,6 +2138,7 @@ Class<lay::CellViewRef> decl_CellView ("lay", "CellView",
"\n"
"This method has been introduced in version 0.23."
) +
#endif
method ("is_valid?", &lay::CellViewRef::is_valid,
"@brief Returns true, if the cellview is valid\n"
"A cellview may become invalid if the corresponding tab is closed for example."
+1 -1
View File
@@ -29,7 +29,7 @@ namespace gsi
{
static
lay::DMarker *create_marker (lay::LayoutViewBase *view)
lay::DMarker *create_marker (lay::LayoutView *view)
{
return new lay::DMarker (view);
}
+5 -5
View File
@@ -40,7 +40,7 @@ namespace gsi
// since PluginBase object are only allowed to be created inside the create_plugin method
// of the factory, this hack is a quick but dirty workaround.
static bool s_in_create_plugin = false;
static lay::LayoutViewBase *sp_view = 0;
static lay::LayoutView *sp_view = 0;
static lay::Dispatcher *sp_dispatcher = 0;
class PluginBase
@@ -51,7 +51,7 @@ public:
: lay::Plugin (sp_dispatcher), lay::ViewService (sp_view ? sp_view->view_object_widget () : 0)
{
if (! s_in_create_plugin) {
throw tl::Exception (tl::to_string (QObject::tr ("A PluginBase object can only be created in the PluginFactory's create_plugin method")));
throw tl::Exception (tl::to_string (tr ("A PluginBase object can only be created in the PluginFactory's create_plugin method")));
}
}
@@ -393,7 +393,7 @@ public:
}
}
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *root, lay::LayoutViewBase *view) const
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *root, lay::LayoutView *view) const
{
if (f_create_plugin.can_issue ()) {
return create_plugin_gsi (manager, root, view);
@@ -402,7 +402,7 @@ public:
}
}
virtual gsi::PluginBase *create_plugin_gsi (db::Manager *manager, lay::Dispatcher *root, lay::LayoutViewBase *view) const
virtual gsi::PluginBase *create_plugin_gsi (db::Manager *manager, lay::Dispatcher *root, lay::LayoutView *view) const
{
// TODO: this is a hack. See notes above at s_in_create_plugin
s_in_create_plugin = true;
@@ -410,7 +410,7 @@ public:
sp_dispatcher = root;
gsi::PluginBase *ret = 0;
try {
ret = f_create_plugin.issue<PluginFactoryBase, gsi::PluginBase *, db::Manager *, lay::Dispatcher *, lay::LayoutViewBase *> (&PluginFactoryBase::create_plugin_gsi, manager, root, view);
ret = f_create_plugin.issue<PluginFactoryBase, gsi::PluginBase *, db::Manager *, lay::Dispatcher *, lay::LayoutView *> (&PluginFactoryBase::create_plugin_gsi, manager, root, view);
s_in_create_plugin = false;
sp_view = 0;
sp_dispatcher = 0;
@@ -79,7 +79,7 @@ public:
menu_entries.push_back (lay::menu_item ("browse_instances::show", "browse_instances", "tools_menu.end", tl::to_string (QObject::tr ("Browse Instances"))));
}
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{
return new BrowseInstancesForm (root, view);
}
@@ -289,7 +289,7 @@ private:
// ------------------------------------------------------------
BrowseInstancesForm::BrowseInstancesForm (lay::Dispatcher *root, LayoutViewBase *vw)
BrowseInstancesForm::BrowseInstancesForm (lay::Dispatcher *root, LayoutView *vw)
: lay::Browser (root, vw),
Ui::BrowseInstancesForm (),
m_cv_index (0),
@@ -349,7 +349,7 @@ void
BrowseInstancesForm::choose_cell_pressed ()
{
BEGIN_PROTECTED
CellSelectionForm form (this, view ()->ui (), "browse_cell", true /*simple mode*/);
CellSelectionForm form (this, view (), "browse_cell", true /*simple mode*/);
if (form.exec ()) {
change_cell (form.selected_cellview ().cell_index (), form.selected_cellview_index ());
}
@@ -65,7 +65,7 @@ public:
enum mode_type { ToCellView = 0, AnyTop, Parent };
enum window_type { DontChange = 0, FitCell, FitMarker, Center, CenterSize };
BrowseInstancesForm (lay::Dispatcher *root, lay::LayoutViewBase *view);
BrowseInstancesForm (lay::Dispatcher *root, lay::LayoutView *view);
~BrowseInstancesForm ();
bool eventFilter (QObject *watched, QEvent *event);
+2 -2
View File
@@ -80,7 +80,7 @@ public:
menu_entries.push_back (lay::menu_item ("browse_shapes::show", "browse_shapes", "tools_menu.end", tl::to_string (QObject::tr ("Browse Shapes"))));
}
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{
return new BrowseShapesForm (root, view);
}
@@ -392,7 +392,7 @@ private:
// ------------------------------------------------------------
BrowseShapesForm::BrowseShapesForm (lay::Dispatcher *root, LayoutViewBase *vw)
BrowseShapesForm::BrowseShapesForm (lay::Dispatcher *root, LayoutView *vw)
: lay::Browser (root, vw),
Ui::BrowseShapesForm (),
m_cv_index (-1),
+1 -1
View File
@@ -64,7 +64,7 @@ public:
enum mode_type { ToCellView = 0, AnyTop, Local };
enum window_type { DontChange = 0, FitCell, FitMarker, Center, CenterSize };
BrowseShapesForm (lay::Dispatcher *root, LayoutViewBase *view);
BrowseShapesForm (lay::Dispatcher *root, LayoutView *view);
~BrowseShapesForm ();
bool eventFilter (QObject *watched, QEvent *event);
+2 -2
View File
@@ -32,9 +32,9 @@ namespace lay
{
#if QT_VERSION >= 0x050000
Browser::Browser (lay::Dispatcher *root, lay::LayoutViewBase *view, const char *name, Qt::WindowFlags fl)
Browser::Browser (lay::Dispatcher *root, lay::LayoutView *view, const char *name, Qt::WindowFlags fl)
#else
Browser::Browser (lay::Dispatcher *root, lay::LayoutViewBase *view, const char *name, Qt::WFlags fl)
Browser::Browser (lay::Dispatcher *root, lay::LayoutView *view, const char *name, Qt::WFlags fl)
#endif
// TODO: clarify whether to keep the browsers as separate (potentially hidden) windows
: QDialog (0 /*view*/, fl),
+4 -4
View File
@@ -47,9 +47,9 @@ public:
* @brief Constructor
*/
#if QT_VERSION >= 0x050000
Browser (lay::Dispatcher *root, lay::LayoutViewBase *view, const char *name = "", Qt::WindowFlags fl = Qt::Window /*adds minimize button for example*/);
Browser (lay::Dispatcher *root, lay::LayoutView *view, const char *name = "", Qt::WindowFlags fl = Qt::Window /*adds minimize button for example*/);
#else
Browser (lay::Dispatcher *root, lay::LayoutViewBase *view, const char *name = "", Qt::WFlags fl = Qt::Window /*adds minimize button for example*/);
Browser (lay::Dispatcher *root, lay::LayoutView *view, const char *name = "", Qt::WFlags fl = Qt::Window /*adds minimize button for example*/);
#endif
/**
@@ -93,7 +93,7 @@ public:
/**
* @brief Return the pointer to the layout view
*/
lay::LayoutViewBase *view ()
lay::LayoutView *view ()
{
return mp_view;
}
@@ -132,7 +132,7 @@ public:
private:
bool m_active;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
lay::Dispatcher *mp_root;
void closeEvent (QCloseEvent *);
@@ -49,7 +49,7 @@ static const std::string cfg_cell_selection_search_use_expressions ("cell-select
// ------------------------------------------------------------
CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutViewBase *view, const char *name, bool simple_mode)
CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutView *view, const char *name, bool simple_mode)
: QDialog (parent), Ui::CellSelectionForm (),
mp_view (view),
m_current_cv (-1),
+2 -2
View File
@@ -49,7 +49,7 @@ class LAYBASIC_PUBLIC CellSelectionForm
Q_OBJECT
public:
CellSelectionForm (QWidget *parent, LayoutViewBase *view, const char *name, bool simple_mode = false);
CellSelectionForm (QWidget *parent, LayoutView *view, const char *name, bool simple_mode = false);
/**
* @brief Obtain the selected cellview's index (with changes)
@@ -76,7 +76,7 @@ public slots:
void find_prev_clicked();
private:
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
std::vector <lay::CellView> m_cellviews;
int m_current_cv;
bool m_name_cb_enabled;
+3 -3
View File
@@ -303,7 +303,7 @@ CellTreeItem::by_area_equal_than (const CellTreeItem *b) const
// valid ("under construction"). In this case, the model will return defaults or void
// objects.
CellTreeModel::CellTreeModel (QWidget *parent, lay::LayoutViewBase *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting)
CellTreeModel::CellTreeModel (QWidget *parent, lay::LayoutView *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting)
: QAbstractItemModel (parent),
m_flags (flags),
m_sorting (sorting),
@@ -379,7 +379,7 @@ CellTreeModel::~CellTreeModel ()
}
void
CellTreeModel::configure (lay::LayoutViewBase *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting)
CellTreeModel::configure (lay::LayoutView *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting)
{
db::Layout *layout = & view->cellview (cv_index)->layout ();
do_configure (layout, 0, view, cv_index, flags, base, sorting);
@@ -398,7 +398,7 @@ CellTreeModel::configure (db::Library *library, unsigned int flags, const db::Ce
}
void
CellTreeModel::do_configure (db::Layout *layout, db::Library *library, lay::LayoutViewBase *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting)
CellTreeModel::do_configure (db::Layout *layout, db::Library *library, lay::LayoutView *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting)
{
bool flat = ((flags & Flat) != 0) && ((flags & TopCells) == 0);
+5 -5
View File
@@ -45,7 +45,7 @@ namespace db
namespace lay
{
class LayoutViewBase;
class LayoutView;
class CellTreeItem;
/**
@@ -85,7 +85,7 @@ public:
* If flags "Children" or "Parents" are given, "base" must be set to the cell of which
* the children or parents should be derived.
*/
CellTreeModel (QWidget *parent, lay::LayoutViewBase *view, int cv_index, unsigned int flags = 0, const db::Cell *base = 0, Sorting sorting = ByName);
CellTreeModel (QWidget *parent, lay::LayoutView *view, int cv_index, unsigned int flags = 0, const db::Cell *base = 0, Sorting sorting = ByName);
/**
* @brief Constructor
@@ -120,7 +120,7 @@ public:
/**
* @brief Reconfigures the model with a LayoutView
*/
void configure (LayoutViewBase *view, int cv_index, unsigned int flags = 0, const db::Cell *base = 0, Sorting sorting = ByName);
void configure (LayoutView *view, int cv_index, unsigned int flags = 0, const db::Cell *base = 0, Sorting sorting = ByName);
/**
* @brief Reconfigures the model with a pure Layout
@@ -257,7 +257,7 @@ private:
unsigned int m_flags;
Sorting m_sorting;
QWidget *mp_parent;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
db::Layout *mp_layout;
db::Library *mp_library;
int m_cv_index;
@@ -271,7 +271,7 @@ private:
void build_top_level ();
void clear_top_level ();
bool search_children (const tl::GlobPattern &pattern, CellTreeItem *item);
void do_configure (db::Layout *layout, db::Library *library, LayoutViewBase *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting);
void do_configure (db::Layout *layout, db::Library *library, LayoutView *view, int cv_index, unsigned int flags, const db::Cell *base, Sorting sorting);
};
/**
+36 -13
View File
@@ -23,7 +23,9 @@
#include "layCellView.h"
#include "layLayoutView.h"
#include "layStream.h"
#if defined(HAVE_QT) // @@@
# include "layStream.h"
#endif
#include "dbLayout.h"
#include "dbWriter.h"
#include "dbReader.h"
@@ -64,7 +66,7 @@ LayoutHandle::LayoutHandle (db::Layout *layout, const std::string &filename)
// layouts in the managed layouts space participate in spare proxy cleanup
layout->do_cleanup (true);
file_watcher ().add_file (m_filename);
add_file_to_watcher (m_filename);
if (! m_filename.empty ()) {
rename (filename_for_caption (m_filename));
@@ -107,7 +109,23 @@ LayoutHandle::~LayoutHandle ()
ms_dict.erase (m_name);
}
file_watcher ().remove_file (filename ());
remove_file_from_watcher (filename ());
}
void
LayoutHandle::remove_file_from_watcher (const std::string &path)
{
#if defined(HAVE_QT)
file_watcher ().remove_file (path);
#endif
}
void
LayoutHandle::add_file_to_watcher (const std::string &path)
{
#if defined(HAVE_QT)
file_watcher ().add_file (path);
#endif
}
void
@@ -176,9 +194,9 @@ LayoutHandle::layout () const
void
LayoutHandle::set_filename (const std::string &fn)
{
file_watcher ().remove_file (m_filename);
remove_file_from_watcher (m_filename);
m_filename = fn;
file_watcher ().add_file (m_filename);
add_file_to_watcher (m_filename);
}
const std::string &
@@ -274,6 +292,7 @@ LayoutHandle::set_save_options (const db::SaveLayoutOptions &options, bool valid
void
LayoutHandle::update_save_options (db::SaveLayoutOptions &options)
{
#if defined(HAVE_QT) // @@@
for (tl::Registrar<lay::PluginDeclaration>::iterator cls = tl::Registrar<lay::PluginDeclaration>::begin (); cls != tl::Registrar<lay::PluginDeclaration>::end (); ++cls) {
const lay::StreamWriterPluginDeclaration *decl = dynamic_cast <const lay::StreamWriterPluginDeclaration *> (&*cls);
@@ -294,6 +313,7 @@ LayoutHandle::update_save_options (db::SaveLayoutOptions &options)
}
}
#endif
}
void
@@ -307,7 +327,7 @@ LayoutHandle::save_as (const std::string &fn, tl::OutputStream::OutputStreamMode
// reader options.
m_load_options = db::LoadLayoutOptions ();
file_watcher ().remove_file (filename ());
remove_file_from_watcher (filename ());
rename (filename_for_caption (fn));
@@ -331,14 +351,14 @@ LayoutHandle::save_as (const std::string &fn, tl::OutputStream::OutputStreamMode
}
if (update) {
file_watcher ().add_file (filename ());
add_file_to_watcher (filename ());
m_dirty = false;
}
} catch (...) {
if (update) {
file_watcher ().add_file (filename ());
add_file_to_watcher (filename ());
}
throw;
@@ -366,8 +386,8 @@ LayoutHandle::load (const db::LoadLayoutOptions &options, const std::string &tec
}
// Update the file's data:
file_watcher ().remove_file (filename ());
file_watcher ().add_file (filename ());
remove_file_from_watcher (filename ());
add_file_to_watcher (filename ());
m_dirty = false;
return new_lmap;
@@ -391,13 +411,14 @@ LayoutHandle::load ()
}
// Update the file's data:
file_watcher ().remove_file (filename ());
file_watcher ().add_file (filename ());
remove_file_from_watcher (filename ());
add_file_to_watcher (filename ());
m_dirty = false;
return new_lmap;
}
#if defined(HAVE_QT)
tl::FileSystemWatcher &
LayoutHandle::file_watcher ()
{
@@ -408,8 +429,10 @@ LayoutHandle::file_watcher ()
return *mp_file_watcher;
}
std::map <std::string, LayoutHandle *> LayoutHandle::ms_dict;
tl::FileSystemWatcher *LayoutHandle::mp_file_watcher = 0;
#endif
std::map <std::string, LayoutHandle *> LayoutHandle::ms_dict;
// -------------------------------------------------------------
// LayoutHandleRef implementation
+10
View File
@@ -297,6 +297,16 @@ public:
static tl::FileSystemWatcher &file_watcher ();
#endif
/**
* @brief Removes a file from the watcher
*/
static void remove_file_from_watcher (const std::string &path);
/**
* @brief Adds a file to the watcher
*/
static void add_file_to_watcher (const std::string &path);
private:
db::Layout *mp_layout;
int m_ref_count;
@@ -47,7 +47,7 @@ EditorOptionsFrame::~EditorOptionsFrame ()
}
void
EditorOptionsFrame::populate (LayoutViewBase *view)
EditorOptionsFrame::populate (LayoutView *view)
{
std::vector<lay::EditorOptionsPage *> prop_dialog_pages;
for (tl::Registrar<lay::PluginDeclaration>::iterator cls = tl::Registrar<lay::PluginDeclaration>::begin (); cls != tl::Registrar<lay::PluginDeclaration>::end (); ++cls) {
@@ -30,7 +30,7 @@ namespace lay
{
class EditorOptionsPages;
class LayoutViewBase;
class LayoutView;
class LAYBASIC_PUBLIC EditorOptionsFrame
: public QFrame
@@ -39,7 +39,7 @@ public:
EditorOptionsFrame (QWidget *parent);
virtual ~EditorOptionsFrame ();
void populate (lay::LayoutViewBase *view);
void populate (lay::LayoutView *view);
EditorOptionsPages *pages_widget () const
{
@@ -202,7 +202,7 @@ private:
// --------------------------------------------------------------------------------------
EditorServiceBase::EditorServiceBase (LayoutViewBase *view)
EditorServiceBase::EditorServiceBase (LayoutView *view)
: lay::ViewService (view->view_object_widget ()),
lay::Editable (view),
lay::Plugin (view),
+1 -1
View File
@@ -46,7 +46,7 @@ public:
/**
* @brief Constructor
*/
EditorServiceBase (lay::LayoutViewBase *view);
EditorServiceBase (lay::LayoutView *view);
/**
* @brief Destructor
+7 -7
View File
@@ -86,7 +86,7 @@ Finder::closer (double d)
}
void
Finder::start (lay::LayoutViewBase *view, const lay::CellView &cv, unsigned int cv_index, const std::vector<db::ICplxTrans> &trans, const db::Box &region, int min_level, int max_level, const std::vector<int> &layers)
Finder::start (lay::LayoutView *view, const lay::CellView &cv, unsigned int cv_index, const std::vector<db::ICplxTrans> &trans, const db::Box &region, int min_level, int max_level, const std::vector<int> &layers)
{
m_layers = layers;
m_region = region;
@@ -265,7 +265,7 @@ struct LPContextCompareOp
};
bool
ShapeFinder::find (LayoutViewBase *view, const db::DBox &region_mu)
ShapeFinder::find (LayoutView *view, const db::DBox &region_mu)
{
tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000);
@@ -330,7 +330,7 @@ ShapeFinder::find (LayoutViewBase *view, const db::DBox &region_mu)
}
bool
ShapeFinder::find (lay::LayoutViewBase *view, const lay::LayerProperties &lprops, const db::DBox &region_mu)
ShapeFinder::find (lay::LayoutView *view, const lay::LayerProperties &lprops, const db::DBox &region_mu)
{
tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000);
@@ -349,7 +349,7 @@ ShapeFinder::find (lay::LayoutViewBase *view, const lay::LayerProperties &lprops
}
bool
ShapeFinder::find_internal (lay::LayoutViewBase *view, unsigned int cv_index, const std::set<db::properties_id_type> *prop_sel, bool inv_prop_sel, const lay::HierarchyLevelSelection &hier_sel, const std::vector<db::DCplxTrans> &trans_mu, const std::vector<int> &layers, const db::DBox &region_mu)
ShapeFinder::find_internal (lay::LayoutView *view, unsigned int cv_index, const std::set<db::properties_id_type> *prop_sel, bool inv_prop_sel, const lay::HierarchyLevelSelection &hier_sel, const std::vector<db::DCplxTrans> &trans_mu, const std::vector<int> &layers, const db::DBox &region_mu)
{
m_cv_index = cv_index;
@@ -624,7 +624,7 @@ InstFinder::InstFinder (bool point_mode, bool top_level_sel, bool full_arrays, b
}
bool
InstFinder::find (lay::LayoutViewBase *view, const db::DBox &region_mu)
InstFinder::find (lay::LayoutView *view, const db::DBox &region_mu)
{
tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000);
@@ -641,7 +641,7 @@ InstFinder::find (lay::LayoutViewBase *view, const db::DBox &region_mu)
}
bool
InstFinder::find (LayoutViewBase *view, unsigned int cv_index, const db::DCplxTrans &trans_mu, const db::DBox &region_mu)
InstFinder::find (LayoutView *view, unsigned int cv_index, const db::DCplxTrans &trans_mu, const db::DBox &region_mu)
{
tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000);
@@ -655,7 +655,7 @@ InstFinder::find (LayoutViewBase *view, unsigned int cv_index, const db::DCplxTr
}
bool
InstFinder::find_internal (LayoutViewBase *view, unsigned int cv_index, const db::DCplxTrans &trans_mu, const db::DBox &region_mu)
InstFinder::find_internal (LayoutView *view, unsigned int cv_index, const db::DCplxTrans &trans_mu, const db::DBox &region_mu)
{
const lay::CellView &cv = view->cellview (cv_index);
if (! cv.is_valid ()) {
+9 -9
View File
@@ -136,7 +136,7 @@ protected:
return m_max_level;
}
lay::LayoutViewBase *view () const
lay::LayoutView *view () const
{
return mp_view;
}
@@ -153,7 +153,7 @@ protected:
* path of instantiations up to the top cell is maintained and accessible by
* the path() accessor.
*/
void start (LayoutViewBase *view, const lay::CellView &cv, unsigned int cv_index, const std::vector<db::ICplxTrans> &trans, const db::Box &region, int min_level, int max_level, const std::vector<int> &layers = std::vector<int> ());
void start (LayoutView *view, const lay::CellView &cv, unsigned int cv_index, const std::vector<db::ICplxTrans> &trans, const db::Box &region, int min_level, int max_level, const std::vector<int> &layers = std::vector<int> ());
/**
* @brief Provide a basic edge test facility
@@ -186,7 +186,7 @@ private:
int m_min_level, m_max_level;
std::vector<db::InstElement> m_path;
const db::Layout *mp_layout;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
unsigned int m_cv_index;
db::Box m_region;
std::vector<int> m_layers;
@@ -214,8 +214,8 @@ public:
ShapeFinder (bool point_mode, bool top_level_sel, db::ShapeIterator::flags_type flags, const std::set<lay::ObjectInstPath> *excludes = 0);
bool find (LayoutViewBase *view, const lay::LayerProperties &lprops, const db::DBox &region_mu);
bool find (LayoutViewBase *view, const db::DBox &region_mu);
bool find (LayoutView *view, const lay::LayerProperties &lprops, const db::DBox &region_mu);
bool find (LayoutView *view, const db::DBox &region_mu);
iterator begin () const
{
@@ -262,7 +262,7 @@ protected:
private:
virtual void visit_cell (const db::Cell &cell, const db::Box &search_box, const db::ICplxTrans &t, int /*level*/);
bool find_internal (LayoutViewBase *view,
bool find_internal (LayoutView *view,
unsigned int cv_index,
const std::set<db::properties_id_type> *prop_sel,
bool inv_prop_sel,
@@ -300,8 +300,8 @@ public:
InstFinder (bool point_mode, bool top_level_sel, bool full_arrays, bool enclose_inst = true, const std::set<lay::ObjectInstPath> *excludes = 0, bool visible_layers = false);
bool find (LayoutViewBase *view, unsigned int cv_index, const db::DCplxTrans &trans, const db::DBox &region_mu);
bool find (LayoutViewBase *view, const db::DBox &region_mu);
bool find (LayoutView *view, unsigned int cv_index, const db::DCplxTrans &trans, const db::DBox &region_mu);
bool find (LayoutView *view, const db::DBox &region_mu);
iterator begin () const
{
@@ -315,7 +315,7 @@ public:
private:
virtual void visit_cell (const db::Cell &cell, const db::Box &search_box, const db::ICplxTrans &t, int level);
bool find_internal (LayoutViewBase *view, unsigned int cv_index, const db::DCplxTrans &trans_mu, const db::DBox &region_mu);
bool find_internal (LayoutView *view, unsigned int cv_index, const db::DCplxTrans &trans_mu, const db::DBox &region_mu);
unsigned int m_cv_index;
db::cell_index_type m_topcell;
+2 -2
View File
@@ -105,7 +105,7 @@ GridNetPluginDeclaration::config_page (QWidget *parent, std::string &title) cons
#endif
lay::Plugin *
GridNetPluginDeclaration::create_plugin (db::Manager *, Dispatcher *, lay::LayoutViewBase *view) const
GridNetPluginDeclaration::create_plugin (db::Manager *, Dispatcher *, lay::LayoutView *view) const
{
return new lay::GridNet (view);
}
@@ -115,7 +115,7 @@ static tl::RegisteredClass<lay::PluginDeclaration> config_decl (new GridNetPlugi
// ------------------------------------------------------------
// Implementation of the GridNet object
GridNet::GridNet (LayoutViewBase *view)
GridNet::GridNet (LayoutView *view)
: lay::BackgroundViewObject (view->view_object_widget ()),
lay::Plugin (view),
mp_view (view),
+3 -3
View File
@@ -50,7 +50,7 @@ public:
#if defined(HAVE_QT)
virtual lay::ConfigPage *config_page (QWidget *parent, std::string &title) const;
#endif
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *, lay::LayoutViewBase *view) const;
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *, lay::LayoutView *view) const;
};
class GridNet
@@ -68,7 +68,7 @@ public:
CheckerBoard
};
GridNet (lay::LayoutViewBase *view);
GridNet (lay::LayoutView *view);
private:
virtual void render_bg (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas);
@@ -76,7 +76,7 @@ private:
// implementation of the lay::Plugin interface
virtual bool configure (const std::string &name, const std::string &value);
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
bool m_visible;
bool m_show_ruler;
double m_grid;
+7 -7
View File
@@ -23,6 +23,7 @@
#include "layLayerProperties.h"
#include "layLayoutViewBase.h"
#include "layLayoutView.h"
#include "layConverters.h"
#include "tlXMLParser.h"
#include "tlException.h"
@@ -404,7 +405,7 @@ class LayerSourceEval
: public tl::Eval
{
public:
LayerSourceEval (const lay::LayerProperties &lp, const lay::LayoutViewBase *view, bool real)
LayerSourceEval (const lay::LayerProperties &lp, const lay::LayoutView *view, bool real)
: m_lp (lp), mp_view (view), m_real (real)
{
// .. nothing yet ..
@@ -415,14 +416,14 @@ public:
return m_lp.source (m_real);
}
const lay::LayoutViewBase *view () const
const lay::LayoutView *view () const
{
return mp_view;
}
private:
const lay::LayerProperties &m_lp;
const lay::LayoutViewBase *mp_view;
const lay::LayoutView *mp_view;
bool m_real;
};
@@ -498,7 +499,7 @@ LayerProperties::display_string (const lay::LayoutViewBase *view, bool real, boo
realize_source ();
}
LayerSourceEval eval (*this, view, real);
LayerSourceEval eval (*this, view->ui (), real);
eval.define_function ("N", new LayerSourceEvalFunction ('N', &eval)); // layer name
eval.define_function ("L", new LayerSourceEvalFunction ('L', &eval)); // layer number
eval.define_function ("D", new LayerSourceEvalFunction ('D', &eval)); // datatype
@@ -712,8 +713,7 @@ LayerPropertiesNode::operator== (const LayerPropertiesNode &d) const
return m_children == d.m_children;
}
LayoutViewBase *
LayerPropertiesNode::view () const
LayoutViewBase *LayerPropertiesNode::view() const
{
return const_cast<lay::LayoutViewBase *> (mp_view.get ());
}
@@ -1373,7 +1373,7 @@ expand_wildcard_layers (const LayerPropertiesNode &lp, const LayerPropertiesList
// NOTE: initialization through LayerProperties creates a new ID
lay::LayerPropertiesNode node ((const LayerProperties &) lp);
node.attach_view (view, list_index);
node.attach_view (view->ui (), list_index);
// Build a new ParsedLayerSource combining the transformation, hierarchy levels and
// property selections from the wildcard one and the requested layer source
+1 -2
View File
@@ -1170,7 +1170,6 @@ public:
* This method attaches the properties node and it's children to a view.
* This enables the node to realize itself against the view, i.e.
* compute the actual property selection set.
* This method is supposed to be
*/
void attach_view (LayoutViewBase *view, unsigned int list_index);
@@ -1912,7 +1911,7 @@ public:
* "load" automatically attaches the view.
* This method has the side effect of recomputing the layer source parameters.
*/
void attach_view (lay::LayoutViewBase *view, unsigned int list_index);
void attach_view (LayoutViewBase *view, unsigned int list_index);
/**
* @brief Gets the layout view this list is attached to
+1 -1
View File
@@ -631,7 +631,7 @@ LayerTreeModel::empty_within_view_predicate (const QModelIndex &index) const
LAYBASIC_PUBLIC
QIcon
LayerTreeModel::icon_for_layer (const lay::LayerPropertiesConstIterator &iter, lay::LayoutViewBase *view, unsigned int w, unsigned int h, unsigned int di_off, bool no_state)
LayerTreeModel::icon_for_layer (const lay::LayerPropertiesConstIterator &iter, lay::LayoutView *view, unsigned int w, unsigned int h, unsigned int di_off, bool no_state)
{
h = std::max ((unsigned int) 16, h);
w = std::max ((unsigned int) 16, w);
+2 -2
View File
@@ -48,7 +48,7 @@ namespace lay
{
class LayoutView;
class LayoutViewBase;
class LayoutView;
class LayerPropertiesConstIterator;
/**
@@ -109,7 +109,7 @@ public:
/**
* @brief Provides an icon for a given layer style
*/
static QIcon icon_for_layer (const lay::LayerPropertiesConstIterator &iter, lay::LayoutViewBase *view, unsigned int w, unsigned int h, unsigned int di_offset, bool no_state = false);
static QIcon icon_for_layer (const lay::LayerPropertiesConstIterator &iter, lay::LayoutView *view, unsigned int w, unsigned int h, unsigned int di_offset, bool no_state = false);
/**
* @brief Gets the preferred icon size
+18 -5
View File
@@ -418,11 +418,6 @@ public:
*/
virtual QWidget *widget () { return this; }
/**
* @brief Gets the LayoutView interface
*/
virtual LayoutView *ui () { return this; }
/**
* @brief Copies to clipboard
*
@@ -762,6 +757,15 @@ protected:
virtual void emit_title_changed ();
virtual void emit_dirty_changed ();
virtual void emit_layer_order_changed ();
protected:
/**
* @brief Gets the LayoutView interface
*/
virtual LayoutView *get_ui () { return this; }
private:
using LayoutViewBase::ui;
};
}
@@ -792,6 +796,15 @@ public:
* @brief Constructor (clone from another view)
*/
LayoutView (lay::LayoutView *source, db::Manager *mgr, bool editable, lay::Plugin *plugin_parent, unsigned int options = (unsigned int) LV_Normal);
protected:
/**
* @brief Gets the LayoutView interface
*/
virtual LayoutView *get_ui () { return this; }
private:
using LayoutViewBase::ui;
};
}
+15 -15
View File
@@ -274,7 +274,7 @@ LayoutViewBase::LayoutViewBase (lay::LayoutViewBase *source, db::Manager *manage
} else {
*m_layer_properties_lists [i] = *source->m_layer_properties_lists [i];
}
m_layer_properties_lists [i]->attach_view (this, (unsigned int) i);
m_layer_properties_lists [i]->attach_view (ui (), (unsigned int) i);
}
if (! m_layer_properties_lists.empty ()) {
@@ -367,7 +367,7 @@ LayoutViewBase::init (db::Manager *mgr)
m_search_range_box = 0;
m_layer_properties_lists.push_back (new LayerPropertiesList ());
m_layer_properties_lists.back ()->attach_view (this, (unsigned int) (m_layer_properties_lists.size () - 1));
m_layer_properties_lists.back ()->attach_view (ui (), (unsigned int) (m_layer_properties_lists.size () - 1));
m_current_layer_list = 0;
#if defined(HAVE_QT)
@@ -388,16 +388,16 @@ LayoutViewBase::init (db::Manager *mgr)
// occupy services and editables:
// these services get deleted by the canvas destructor automatically:
if ((m_options & LV_NoTracker) == 0) {
mp_tracker = new lay::MouseTracker (this);
mp_tracker = new lay::MouseTracker (ui ());
}
if ((m_options & LV_NoZoom) == 0) {
mp_zoom_service = new lay::ZoomService (this);
mp_zoom_service = new lay::ZoomService (ui ());
}
if ((m_options & LV_NoSelection) == 0) {
mp_selection_service = new lay::SelectionService (this);
mp_selection_service = new lay::SelectionService (ui ());
}
if ((m_options & LV_NoMove) == 0) {
mp_move_service = new lay::MoveService (this);
mp_move_service = new lay::MoveService (ui ());
}
create_plugins ();
@@ -554,7 +554,7 @@ void LayoutViewBase::create_plugins (const lay::PluginDeclaration *except_this)
lay::Plugin *LayoutViewBase::create_plugin (const lay::PluginDeclaration *cls)
{
lay::Plugin *p = cls->create_plugin (manager (), dispatcher (), this);
lay::Plugin *p = cls->create_plugin (manager (), dispatcher (), ui ());
if (p) {
// unhook the plugin from the script side if created there (prevent GC from destroying it)
@@ -1329,7 +1329,7 @@ LayoutViewBase::insert_layer_list (unsigned index, const LayerPropertiesList &pr
clear_layer_selection ();
m_layer_properties_lists.insert (m_layer_properties_lists.begin () + index, new LayerPropertiesList (props));
m_layer_properties_lists [index]->attach_view (this, index);
m_layer_properties_lists [index]->attach_view (ui (), index);
merge_dither_pattern (*m_layer_properties_lists [index]);
m_current_layer_list = index;
@@ -1538,7 +1538,7 @@ LayoutViewBase::set_properties (unsigned int index, const LayerPropertiesList &p
return;
} else {
m_layer_properties_lists.push_back (new LayerPropertiesList ());
m_layer_properties_lists.back ()->attach_view (this, (unsigned int) (m_layer_properties_lists.size () - 1));
m_layer_properties_lists.back ()->attach_view (ui (), (unsigned int) (m_layer_properties_lists.size () - 1));
}
}
@@ -1557,7 +1557,7 @@ LayoutViewBase::set_properties (unsigned int index, const LayerPropertiesList &p
}
*m_layer_properties_lists [index] = props;
m_layer_properties_lists [index]->attach_view (this, index);
m_layer_properties_lists [index]->attach_view (ui (), index);
merge_dither_pattern (*m_layer_properties_lists [index]);
@@ -1975,7 +1975,7 @@ LayoutViewBase::signal_layer_properties_changed ()
// recompute the source
// TODO: this is a side effect of this method - provide a special method for this purpose
for (unsigned int i = 0; i < layer_lists (); ++i) {
m_layer_properties_lists [i]->attach_view (this, i);
m_layer_properties_lists [i]->attach_view (ui (), i);
}
// schedule a redraw request - since the layer views might not have changed, this is necessary
@@ -1991,7 +1991,7 @@ LayoutViewBase::signal_prop_ids_changed ()
// recompute the source
// TODO: this is a side effect of this method - provide a special method for this purpose
for (unsigned int i = 0; i < layer_lists (); ++i) {
m_layer_properties_lists [i]->attach_view (this, i);
m_layer_properties_lists [i]->attach_view (ui (), i);
}
}
@@ -2298,7 +2298,7 @@ LayoutViewBase::do_load_layer_props (const std::string &fn, bool map_cv, int cv_
if (map_cv) {
cv_map.insert (std::make_pair (-1, cv_index));
}
p->attach_view (this, p - props.begin ());
p->attach_view (ui (), p - props.begin ());
p->expand (cv_map, add_default);
}
@@ -3089,7 +3089,7 @@ LayoutViewBase::create_initial_layer_props (int cv_index, const std::string &lyp
// expand the wildcards and map to the target cv.
for (std::vector<lay::LayerPropertiesList>::iterator p = props.begin (); p != props.end (); ++p) {
p->attach_view (this, p - props.begin ());
p->attach_view (ui (), p - props.begin ());
p->expand (cv_map, add_missing || !loaded);
}
@@ -3203,7 +3203,7 @@ LayoutViewBase::widget ()
#endif
LayoutView *
LayoutViewBase::ui ()
LayoutViewBase::get_ui ()
{
tl_assert (false);
}
+15 -2
View File
@@ -790,12 +790,12 @@ public:
*/
void load_layer_props (const std::string &fn, int cv_index, bool add_default);
#if defined(HAVE_QT) // @@@
/**
* @brief Save the screen content to a file
*/
void save_screenshot (const std::string &fn);
#if defined(HAVE_QT)
/**
* @brief Get the screen content as a QImage object
*/
@@ -2510,7 +2510,18 @@ public:
/**
* @brief Gets the LayoutView interface
*/
virtual LayoutView *ui ();
LayoutView *ui ()
{
return get_ui ();
}
/**
* @brief Gets the LayoutView interface (const version)
*/
const LayoutView *ui () const
{
return const_cast<LayoutViewBase *> (this)->get_ui ();
}
private:
// event handlers used to connect to the layout object's events
@@ -2686,6 +2697,8 @@ protected:
return mp_active_plugin;
}
virtual LayoutView *get_ui ();
bool configure (const std::string &name, const std::string &value);
void config_finalize ();
@@ -77,8 +77,8 @@ validate_cell_path (const db::Layout &layout, lay::LayoutView::cell_path_type &p
return false;
}
LayoutViewFunctions::LayoutViewFunctions (db::Manager *manager, LayoutViewBase *view)
: lay::Plugin (view), mp_view (view->ui ()), mp_manager (manager)
LayoutViewFunctions::LayoutViewFunctions (db::Manager *manager, LayoutView *view)
: lay::Plugin (view), mp_view (view), mp_manager (manager)
{
m_del_cell_mode = 0;
m_move_to_origin_mode_x = 0;
@@ -2244,7 +2244,7 @@ public:
}
}
lay::Plugin *create_plugin (db::Manager *manager, Dispatcher *, LayoutViewBase *view) const
lay::Plugin *create_plugin (db::Manager *manager, Dispatcher *, LayoutView *view) const
{
return new LayoutViewFunctions (manager, view);
}
@@ -46,7 +46,7 @@ public:
/**
* @brief Constructor
*/
LayoutViewFunctions (db::Manager *manager, lay::LayoutViewBase *view);
LayoutViewFunctions (db::Manager *manager, lay::LayoutView *view);
/**
* @brief Destructor
+6 -6
View File
@@ -188,7 +188,7 @@ void render_cell_inst (const db::Layout &layout, const db::CellInstArray &inst,
// ------------------------------------------------------------------------
MarkerBase::MarkerBase (lay::LayoutViewBase *view)
MarkerBase::MarkerBase (lay::LayoutView *view)
: lay::ViewObject (view->view_object_widget ()),
m_line_width (-1), m_vertex_size (-1), m_halo (-1), m_text_enabled (true), m_vertex_shape (lay::ViewOp::Rect), m_line_style (-1), m_dither_pattern (-1), m_frame_pattern (0), mp_view (view)
{
@@ -372,7 +372,7 @@ MarkerBase::get_bitmaps (const Viewport & /*vp*/, ViewObjectCanvas &canvas, lay:
// ------------------------------------------------------------------------
GenericMarkerBase::GenericMarkerBase (lay::LayoutViewBase *view, unsigned int cv_index)
GenericMarkerBase::GenericMarkerBase (lay::LayoutView *view, unsigned int cv_index)
: MarkerBase (view), mp_trans_vector (0), mp_view (view), m_cv_index (cv_index)
{
// .. nothing yet ..
@@ -496,7 +496,7 @@ GenericMarkerBase::dbu () const
// ------------------------------------------------------------------------
InstanceMarker::InstanceMarker (LayoutViewBase *view, unsigned int cv_index, bool draw_outline, size_t max_shapes)
InstanceMarker::InstanceMarker (LayoutView *view, unsigned int cv_index, bool draw_outline, size_t max_shapes)
: GenericMarkerBase (view, cv_index), m_draw_outline (draw_outline), m_max_shapes (max_shapes), m_inst ()
{
// .. nothing yet ..
@@ -576,7 +576,7 @@ InstanceMarker::item_bbox () const
// ------------------------------------------------------------------------
ShapeMarker::ShapeMarker (LayoutViewBase *view, unsigned int cv_index)
ShapeMarker::ShapeMarker (LayoutView *view, unsigned int cv_index)
: GenericMarkerBase (view, cv_index), m_shape ()
{
// .. nothing yet ..
@@ -643,7 +643,7 @@ ShapeMarker::item_bbox () const
// ------------------------------------------------------------------------
Marker::Marker (lay::LayoutViewBase *view, unsigned int cv_index, bool draw_outline, size_t max_shapes)
Marker::Marker (lay::LayoutView *view, unsigned int cv_index, bool draw_outline, size_t max_shapes)
: GenericMarkerBase (view, cv_index), m_draw_outline (draw_outline), m_max_shapes (max_shapes)
{
m_type = None;
@@ -1135,7 +1135,7 @@ Marker::render (const Viewport &vp, ViewObjectCanvas &canvas)
// ------------------------------------------------------------------------
DMarker::DMarker (LayoutViewBase *view)
DMarker::DMarker (LayoutView *view)
: MarkerBase (view), mp_view (view)
{
m_type = None;
+11 -11
View File
@@ -44,7 +44,7 @@
namespace lay
{
class LayoutViewBase;
class LayoutView;
/**
* @brief The marker base class
@@ -59,7 +59,7 @@ public:
/**
* @brief The constructor
*/
MarkerBase (lay::LayoutViewBase *view);
MarkerBase (lay::LayoutView *view);
/**
* @brief Get the color by which the marker is drawn
@@ -232,7 +232,7 @@ protected:
bool m_text_enabled;
lay::ViewOp::Shape m_vertex_shape;
int m_line_style, m_dither_pattern, m_frame_pattern;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
};
/**
@@ -252,7 +252,7 @@ public:
/**
* @brief The constructor
*/
GenericMarkerBase (lay::LayoutViewBase *view, unsigned int cv_index);
GenericMarkerBase (lay::LayoutView *view, unsigned int cv_index);
/**
* @brief The destructor
@@ -321,7 +321,7 @@ public:
/**
* @brief Gets the view object
*/
lay::LayoutViewBase *view () const
lay::LayoutView *view () const
{
return mp_view;
}
@@ -344,7 +344,7 @@ public:
private:
db::CplxTrans m_trans;
std::vector<db::DCplxTrans> *mp_trans_vector;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
unsigned int m_cv_index;
/**
@@ -367,7 +367,7 @@ public:
/**
* @brief The constructor
*/
ShapeMarker (lay::LayoutViewBase *view, unsigned int cv_index);
ShapeMarker (lay::LayoutView *view, unsigned int cv_index);
/**
* @brief The destructor
@@ -418,7 +418,7 @@ public:
* @param draw_outline True to have instances drawing their outline
* @param max_shapes The maximum number of shapes to draw for instances (just a box is drawn if more shapes are present)
*/
InstanceMarker (lay::LayoutViewBase *view, unsigned int cv_index, bool draw_outline = true, size_t max_shapes = 0);
InstanceMarker (lay::LayoutView *view, unsigned int cv_index, bool draw_outline = true, size_t max_shapes = 0);
/**
* @brief The destructor
@@ -508,7 +508,7 @@ public:
* @param draw_outline True to have instances drawing their outline
* @param max_shapes The maximum number of shapes to draw for instances (just a box is drawn if more shapes are present)
*/
Marker (lay::LayoutViewBase *view, unsigned int cv_index, bool draw_outline = true, size_t max_shapes = 0);
Marker (lay::LayoutView *view, unsigned int cv_index, bool draw_outline = true, size_t max_shapes = 0);
/**
* @brief The destructor
@@ -743,7 +743,7 @@ public:
/**
* @brief The constructor
*/
DMarker (lay::LayoutViewBase *view);
DMarker (lay::LayoutView *view);
/**
* @brief The destructor
@@ -806,7 +806,7 @@ private:
void *any;
} m_object;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
};
}
+1 -1
View File
@@ -28,7 +28,7 @@
namespace lay
{
MouseTracker::MouseTracker (lay::LayoutViewBase *view)
MouseTracker::MouseTracker (lay::LayoutView *view)
: lay::ViewService (view->view_object_widget ()), mp_view (view)
{
widget ()->grab_mouse (this, false);
+3 -3
View File
@@ -31,17 +31,17 @@ class QMouseEvent;
namespace lay {
class LayoutCanvas;
class LayoutViewBase;
class LayoutView;
class MouseTracker
: public lay::ViewService
{
public:
MouseTracker (lay::LayoutViewBase *view);
MouseTracker (lay::LayoutView *view);
virtual bool mouse_move_event (const db::DPoint &p, unsigned int buttons, bool prio);
private:
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
};
}
+1 -1
View File
@@ -34,7 +34,7 @@ namespace lay
// -------------------------------------------------------------
// MoveService implementation
MoveService::MoveService (lay::LayoutViewBase *view)
MoveService::MoveService (lay::LayoutView *view)
: lay::ViewService (view->view_object_widget ()),
m_dragging (false),
m_dragging_transient (false),
+3 -3
View File
@@ -31,13 +31,13 @@
namespace lay {
class Editables;
class LayoutViewBase;
class LayoutView;
class MoveService :
public lay::ViewService
{
public:
MoveService (lay::LayoutViewBase *view);
MoveService (lay::LayoutView *view);
~MoveService ();
virtual bool configure (const std::string &name, const std::string &value);
@@ -59,7 +59,7 @@ private:
bool m_dragging;
bool m_dragging_transient;
lay::Editables *mp_editables;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
double m_global_grid;
db::DPoint m_shift;
db::DPoint m_mouse_pos;
+1 -1
View File
@@ -376,7 +376,7 @@ public:
menu_entries.push_back (lay::menu_item ("netlist_browser::show", "browse_netlists", "tools_menu.end", tl::to_string (QObject::tr ("Netlist Browser"))));
}
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{
return new lay::NetlistBrowserDialog (root, view);
}
@@ -56,7 +56,7 @@ extern const std::string cfg_l2ndb_max_shapes_highlighted;
extern const std::string cfg_l2ndb_show_all;
extern const std::string cfg_l2ndb_window_state;
NetlistBrowserDialog::NetlistBrowserDialog (lay::Dispatcher *root, lay::LayoutViewBase *vw)
NetlistBrowserDialog::NetlistBrowserDialog (lay::Dispatcher *root, lay::LayoutView *vw)
: lay::Browser (root, vw),
lay::ViewService (vw->view_object_widget ()),
Ui::NetlistBrowserDialog (),
@@ -42,7 +42,7 @@ class NetlistBrowserDialog
Q_OBJECT
public:
NetlistBrowserDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
NetlistBrowserDialog (lay::Dispatcher *root, lay::LayoutView *view);
~NetlistBrowserDialog ();
void load (int lay_index, int cv_index);
@@ -242,7 +242,7 @@ NetlistBrowserPage::set_highlight_style (lay::Color color, int line_width, int v
}
void
NetlistBrowserPage::set_view (lay::LayoutViewBase *view, int cv_index)
NetlistBrowserPage::set_view (lay::LayoutView *view, int cv_index)
{
if (mp_view) {
mp_view->layer_list_changed_event.remove (this, &NetlistBrowserPage::layer_list_changed);
@@ -1424,7 +1424,7 @@ NetlistBrowserPage::export_nets (const std::vector<const db::Net *> *nets)
if (dialog->exec_dialog (mp_plugin_root)) {
// NOTE: mp_view and database might get reset to 0 in create_layout
lay::LayoutViewBase *view = mp_view;
lay::LayoutView *view = mp_view;
db::LayoutToNetlist *database = mp_database.get ();
unsigned int cv_index = view->create_layout (true);
@@ -86,7 +86,7 @@ public:
* If that pointer is non-null, the browser will attach itself to
* the view and provide highlights for the selected markers inside the given cellview.
*/
void set_view (LayoutViewBase *view, int cv_index);
void set_view (LayoutView *view, int cv_index);
/**
* @brief Attaches the page to a L2N DB
@@ -224,7 +224,7 @@ private:
int m_marker_dither_pattern;
int m_marker_intensity;
bool m_use_original_colors;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
unsigned int m_cv_index;
lay::Dispatcher *mp_plugin_root;
tl::weak_ptr<db::LayoutToNetlist> mp_database;
@@ -22,7 +22,7 @@
#include "layParsedLayerSource.h"
#include "layLayoutViewBase.h"
#include "layLayoutView.h"
#include "tlString.h"
#include "tlGlobPattern.h"
+3 -3
View File
@@ -48,7 +48,7 @@ namespace lay
class Plugin;
class Dispatcher;
class LayoutViewBase;
class LayoutView;
class ViewService;
class Editable;
class Drawing;
@@ -302,7 +302,7 @@ public:
* This method may return 0 for "dummy" plugins that just register menu entries
* or configuration options.
*/
virtual lay::Plugin *create_plugin (db::Manager * /*manager*/, lay::Dispatcher * /*dispatcher*/, lay::LayoutViewBase * /*view*/) const
virtual lay::Plugin *create_plugin (db::Manager * /*manager*/, lay::Dispatcher * /*dispatcher*/, lay::LayoutView * /*view*/) const
{
return 0;
}
@@ -329,7 +329,7 @@ public:
*
* The new pages are returned in the "pages" vector. The layout view will take ownership of these pages.
*/
virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> & /*pages*/, lay::LayoutViewBase * /*view*/, lay::Dispatcher * /*dispatcher*/) const
virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> & /*pages*/, lay::LayoutView * /*view*/, lay::Dispatcher * /*dispatcher*/) const
{
// .. no pages in the default implementation ..
}
+1 -1
View File
@@ -37,7 +37,7 @@ namespace lay
// -------------------------------------------------------------
// SelectionService implementation
SelectionService::SelectionService (lay::LayoutViewBase *view)
SelectionService::SelectionService (lay::LayoutView *view)
: QObject (),
lay::ViewService (view->view_object_widget ()),
mp_view (view),
+3 -3
View File
@@ -38,7 +38,7 @@
namespace lay {
class RubberBox;
class LayoutViewBase;
class LayoutView;
class LayoutCanvas;
class LAYBASIC_PUBLIC SelectionService :
@@ -52,7 +52,7 @@ Q_OBJECT
#endif
public:
SelectionService (lay::LayoutViewBase *view);
SelectionService (lay::LayoutView *view);
~SelectionService ();
void set_colors (lay::Color background, lay::Color color);
@@ -88,7 +88,7 @@ private:
db::DPoint m_p1, m_p2;
db::DPoint m_current_position;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
lay::RubberBox *mp_box;
unsigned int m_color;
unsigned int m_buttons;
+11 -11
View File
@@ -23,7 +23,7 @@
#include "laySnap.h"
#include "layLayoutViewBase.h"
#include "layLayoutView.h"
#include "dbEdge.h"
@@ -282,7 +282,7 @@ public:
* This will run the finder on the given view.
* "search_range" is the search range in micron units.
*/
void find (lay::LayoutViewBase *view, double search_range)
void find (lay::LayoutView *view, double search_range)
{
if (! view) {
return;
@@ -586,7 +586,7 @@ private:
}
void
do_find (lay::LayoutViewBase *view, int cv_index, const db::Cell &cell, unsigned int l, int min_level, int max_level, const db::CplxTrans &t)
do_find (lay::LayoutView *view, int cv_index, const db::Cell &cell, unsigned int l, int min_level, int max_level, const db::CplxTrans &t)
{
db::Box touch_box = t.inverted () * m_region;
@@ -727,7 +727,7 @@ private:
};
static PointSnapToObjectResult
do_obj_snap (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, double snap_range, const std::vector <db::DEdge> &cutlines)
do_obj_snap (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, double snap_range, const std::vector <db::DEdge> &cutlines)
{
db::DPoint dp (pt);
@@ -792,7 +792,7 @@ do_obj_snap (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector
}
static TwoPointSnapToObjectResult
do_obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, double min_search_range, double max_search_range, const std::vector <db::DEdge> &cutlines)
do_obj_snap2 (lay::LayoutView *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, double min_search_range, double max_search_range, const std::vector <db::DEdge> &cutlines)
{
db::DPoint dp1 (pt1);
db::DPoint dp2 (pt2);
@@ -915,13 +915,13 @@ make_cutlines (lay::angle_constraint_type snap_mode, const db::DPoint &p1, std::
}
PointSnapToObjectResult
obj_snap (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, double snap_range)
obj_snap (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, double snap_range)
{
return do_obj_snap (view, pt, grid, snap_range, std::vector<db::DEdge> ());
}
PointSnapToObjectResult
obj_snap (lay::LayoutViewBase *view, const db::DPoint &p1, const db::DPoint &p2, const db::DVector &grid, lay::angle_constraint_type snap_mode, double snap_range)
obj_snap (lay::LayoutView *view, const db::DPoint &p1, const db::DPoint &p2, const db::DVector &grid, lay::angle_constraint_type snap_mode, double snap_range)
{
std::vector <db::DEdge> cutlines;
make_cutlines (snap_mode, p1, cutlines);
@@ -929,19 +929,19 @@ obj_snap (lay::LayoutViewBase *view, const db::DPoint &p1, const db::DPoint &p2,
}
TwoPointSnapToObjectResult
obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, double min_search_range, double max_search_range)
obj_snap2 (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, double min_search_range, double max_search_range)
{
return obj_snap2 (view, pt, pt, grid, min_search_range, max_search_range);
}
TwoPointSnapToObjectResult
obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, lay::angle_constraint_type ac, double min_search_range, double max_search_range)
obj_snap2 (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, lay::angle_constraint_type ac, double min_search_range, double max_search_range)
{
return obj_snap2 (view, pt, pt, grid, ac, min_search_range, max_search_range);
}
TwoPointSnapToObjectResult
obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, double min_search_range, double max_search_range)
obj_snap2 (lay::LayoutView *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, double min_search_range, double max_search_range)
{
db::DPoint dp1 = lay::snap_xy (pt1, grid);
db::DPoint dp2 = lay::snap_xy (pt2, grid);
@@ -950,7 +950,7 @@ obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt1, const db::DPoint &p
}
TwoPointSnapToObjectResult
obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, lay::angle_constraint_type snap_mode, double min_search_range, double max_search_range)
obj_snap2 (lay::LayoutView *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, lay::angle_constraint_type snap_mode, double min_search_range, double max_search_range)
{
db::DPoint dp1 = lay::snap_xy (pt1, grid);
db::DPoint dp2 = lay::snap_xy (pt2, grid);
+7 -7
View File
@@ -41,7 +41,7 @@
namespace lay
{
class LayoutViewBase;
class LayoutView;
/**
* @brief An angle constraint type
@@ -154,7 +154,7 @@ namespace lay
* @param grid Either (0,0) to disable grid snapping or a (gx,gy) value for the (potentially anisotropic grid)
* @param snap_range The search range for objects
*/
LAYBASIC_PUBLIC PointSnapToObjectResult obj_snap (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, double snap_range);
LAYBASIC_PUBLIC PointSnapToObjectResult obj_snap (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, double snap_range);
/**
* @brief combined grid-, projection- and object snapping provided to implementing "magnetic features"
@@ -162,7 +162,7 @@ namespace lay
* This is a convenience method that creates the projection axes from a reference point and an angle mode.
* "pr" is the reference point, "pt" is the point to snap.
*/
LAYBASIC_PUBLIC PointSnapToObjectResult obj_snap (lay::LayoutViewBase *view, const db::DPoint &pr, const db::DPoint &pt, const db::DVector &grid, lay::angle_constraint_type ac, double snap_range);
LAYBASIC_PUBLIC PointSnapToObjectResult obj_snap (lay::LayoutView *view, const db::DPoint &pr, const db::DPoint &pt, const db::DVector &grid, lay::angle_constraint_type ac, double snap_range);
/**
* @brief A structure describing the snap result for a two-sided object snap (distance measurement)
@@ -208,7 +208,7 @@ namespace lay
* This method basically implements "auto measure". The first value of the returned pair
* is true if such an edge could be found. Otherwise it's false.
*/
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, double min_search_range, double max_search_range);
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, double min_search_range, double max_search_range);
/**
* @brief Same than obj_snap, but delivers two points on two opposite sides of the initial points
@@ -218,14 +218,14 @@ namespace lay
*
* This version accepts two points defining different search regions for first and second edge.
*/
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, double min_search_range, double max_search_range);
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutView *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, double min_search_range, double max_search_range);
/**
* @brief Same than the previous obj_snap2, but allows specification of an angle constraint
*
* Measurements will be confined to the direction specified.
*/
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector &grid, lay::angle_constraint_type ac, double min_search_range, double max_search_range);
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutView *view, const db::DPoint &pt, const db::DVector &grid, lay::angle_constraint_type ac, double min_search_range, double max_search_range);
/**
* @brief Same than the previous obj_snap2, but allows specification of an angle constraint
@@ -234,7 +234,7 @@ namespace lay
*
* This version accepts two points defining different search regions for first and second edge.
*/
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutViewBase *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, lay::angle_constraint_type ac, double min_search_range, double max_search_range);
LAYBASIC_PUBLIC TwoPointSnapToObjectResult obj_snap2 (lay::LayoutView *view, const db::DPoint &pt1, const db::DPoint &pt2, const db::DVector &grid, lay::angle_constraint_type ac, double min_search_range, double max_search_range);
/**
* @brief Reduce a given vector according to the angle constraint
+1 -1
View File
@@ -31,7 +31,7 @@ namespace lay
// -------------------------------------------------------------
// ZoomService implementation
ZoomService::ZoomService (lay::LayoutViewBase *view)
ZoomService::ZoomService (lay::LayoutView *view)
: lay::ViewService (view->view_object_widget ()),
mp_view (view),
mp_box (0),
+3 -3
View File
@@ -30,7 +30,7 @@
namespace lay
{
class LayoutViewBase;
class LayoutView;
class LayoutCanvas;
class RubberBox;
@@ -38,7 +38,7 @@ class LAYBASIC_PUBLIC ZoomService
: public lay::ViewService
{
public:
ZoomService (lay::LayoutViewBase *view);
ZoomService (lay::LayoutView *view);
~ZoomService ();
void set_colors (lay::Color background, lay::Color text);
@@ -55,7 +55,7 @@ private:
db::DPoint m_p1, m_p2;
db::DBox m_vp;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
lay::RubberBox *mp_box;
unsigned int m_color;
};
+5 -5
View File
@@ -84,11 +84,8 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
SOURCES = \
gsiDeclLayDialogs.cc \
gsiDeclLayLayoutView.cc \
gsiDeclLayMarker.cc \
gsiDeclLayMenu.cc \
gsiDeclLayNetlistBrowserDialog.cc \
gsiDeclLayPlugin.cc \
gsiDeclLayStream.cc \
gtf.cc \
layAbstractMenu.cc \
@@ -105,7 +102,6 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
layBusy.cc \
layCellSelectionForm.cc \
layCellTreeModel.cc \
layCellView.cc \
layConfigurationDialog.cc \
layConverters.cc \
layCursor.cc \
@@ -178,7 +174,6 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
layBusy.h \
layCellSelectionForm.h \
layCellTreeModel.h \
layCellView.h \
layConfigurationDialog.h \
layConverters.h \
layColor.h \
@@ -240,9 +235,13 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
SOURCES += \
gsiDeclLayLayers.cc \
gsiDeclLayLayoutView.cc \
gsiDeclLayMarker.cc \
gsiDeclLayPlugin.cc \
layAnnotationShapes.cc \
layBitmap.cc \
layBitmapRenderer.cc \
layCellView.cc \
layColor.cc \
layColorPalette.cc \
layDispatcher.cc \
@@ -283,6 +282,7 @@ HEADERS += \
layAnnotationShapes.h \
layBitmap.h \
layBitmapRenderer.h \
layCellView.h \
layColorPalette.h \
layDispatcher.h \
layDisplayState.h \
+1 -1
View File
@@ -302,7 +302,7 @@ public:
menu_entries.push_back (lay::menu_item ("marker_browser::scan_layers_flat", "scan_layers_flat", "tools_menu.shapes_to_markers.end", tl::to_string (QObject::tr ("Flat"))));
}
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const
virtual lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{
return new rdb::MarkerBrowserDialog (root, view);
}
@@ -54,7 +54,7 @@ extern std::string cfg_rdb_marker_vertex_size;
extern std::string cfg_rdb_marker_halo;
extern std::string cfg_rdb_marker_dither_pattern;
MarkerBrowserDialog::MarkerBrowserDialog (lay::Dispatcher *root, lay::LayoutViewBase *vw)
MarkerBrowserDialog::MarkerBrowserDialog (lay::Dispatcher *root, lay::LayoutView *vw)
: lay::Browser (root, vw),
Ui::MarkerBrowserDialog (),
m_context (rdb::AnyCell),
@@ -806,7 +806,7 @@ MarkerBrowserDialog::scan_layer ()
}
unsigned int rdb_index = view ()->add_rdb (rdb.release ());
view ()->ui ()->open_rdb_browser (rdb_index, cv_index);
view ()->open_rdb_browser (rdb_index, cv_index);
}
void
@@ -882,7 +882,7 @@ MarkerBrowserDialog::scan_layer_flat ()
}
unsigned int rdb_index = view ()->add_rdb (rdb.release ());
view ()->ui ()->open_rdb_browser (rdb_index, cv_index);
view ()->open_rdb_browser (rdb_index, cv_index);
}
void
@@ -38,7 +38,7 @@ class MarkerBrowserDialog
Q_OBJECT
public:
MarkerBrowserDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
MarkerBrowserDialog (lay::Dispatcher *root, lay::LayoutView *view);
~MarkerBrowserDialog ();
void load (int rdb_index, int cv_index);
@@ -1620,7 +1620,7 @@ MarkerBrowserPage::set_marker_style (lay::Color color, int line_width, int verte
}
void
MarkerBrowserPage::set_view (lay::LayoutViewBase *view, unsigned int cv_index)
MarkerBrowserPage::set_view (lay::LayoutView *view, unsigned int cv_index)
{
mp_view = view;
m_cv_index = cv_index;
+2 -2
View File
@@ -78,7 +78,7 @@ public:
* If that pointer is non-null, the browser will attach itself to
* the view and provide highlights for the selected markers inside the given cellview.
*/
void set_view (lay::LayoutViewBase *view, unsigned int cv_index);
void set_view (lay::LayoutView *view, unsigned int cv_index);
/**
* @brief Attach the page to a RDB
@@ -184,7 +184,7 @@ private:
rdb::Database *mp_database;
bool m_show_all;
QAction *m_show_all_action;
lay::LayoutViewBase *mp_view;
lay::LayoutView *mp_view;
unsigned int m_cv_index;
std::vector<lay::DMarker *> mp_markers;
db::DBox m_markers_bbox;