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

View File

@ -91,7 +91,7 @@ PluginDeclaration::get_menu_entries (std::vector<lay::MenuEntry> &menu_entries)
} }
lay::Plugin * lay::Plugin *
PluginDeclaration::create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutViewBase *view) const PluginDeclaration::create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutView *view) const
{ {
return new ant::Service (manager, view); return new ant::Service (manager, view);
} }

View File

@ -40,7 +40,7 @@ public:
virtual void get_options (std::vector < std::pair<std::string, std::string> > &options) const; virtual void get_options (std::vector < std::pair<std::string, std::string> > &options) const;
virtual void get_menu_entries (std::vector<lay::MenuEntry> &menu_entries) const; virtual void get_menu_entries (std::vector<lay::MenuEntry> &menu_entries) const;
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutViewBase *view) const; virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutView *view) const;
virtual bool implements_editable (std::string &title) const; virtual bool implements_editable (std::string &title) const;
virtual bool implements_mouse_mode (std::string &title) const; virtual bool implements_mouse_mode (std::string &title) const;
virtual bool configure (const std::string &name, const std::string &value); virtual bool configure (const std::string &name, const std::string &value);

View File

@ -784,7 +784,7 @@ View::render (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas)
// ------------------------------------------------------------- // -------------------------------------------------------------
// ant::Service implementation // ant::Service implementation
Service::Service (db::Manager *manager, lay::LayoutViewBase *view) Service::Service (db::Manager *manager, lay::LayoutView *view)
: lay::EditorServiceBase (view), : lay::EditorServiceBase (view),
lay::Drawing (1/*number of planes*/, view->drawings ()), lay::Drawing (1/*number of planes*/, view->drawings ()),
db::Object (manager), db::Object (manager),

View File

@ -201,7 +201,7 @@ public:
*/ */
enum MoveMode { MoveNone, MoveP1, MoveP2, MoveP12, MoveP21, MoveP1X, MoveP2X, MoveP1Y, MoveP2Y, MoveRuler, MoveSelected }; enum MoveMode { MoveNone, MoveP1, MoveP2, MoveP12, MoveP21, MoveP1X, MoveP2X, MoveP1Y, MoveP2Y, MoveRuler, MoveSelected };
Service (db::Manager *manager, lay::LayoutViewBase *view); Service (db::Manager *manager, lay::LayoutView *view);
~Service (); ~Service ();
@ -427,7 +427,7 @@ public:
/** /**
* @brief Access to the view object * @brief Access to the view object
*/ */
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
return mp_view; return mp_view;
} }
@ -510,7 +510,7 @@ private:
int m_max_number_of_rulers; int m_max_number_of_rulers;
// The layout view that the ruler service is attached to // The layout view that the ruler service is attached to
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
// The ruler view objects representing the selection // The ruler view objects representing the selection
// and the moved rules in move mode // and the moved rules in move mode

View File

@ -72,8 +72,8 @@ static int align_up () { return int (ant::Object::AL_up); }
static void clear_annotations (lay::LayoutView *view); static void clear_annotations (lay::LayoutView *view);
static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj); static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj);
static void erase_annotation_base (lay::LayoutViewBase *view, int id); static void erase_annotation_base (lay::LayoutView *view, int id);
static void replace_annotation_base (lay::LayoutViewBase *view, int id, const AnnotationRef &obj); static void replace_annotation_base (lay::LayoutView *view, int id, const AnnotationRef &obj);
/** /**
* @brief An extension of the ant::Object that provides "live" updates of the view * @brief An extension of the ant::Object that provides "live" updates of the view
@ -88,7 +88,7 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
AnnotationRef (const ant::Object &other, lay::LayoutViewBase *view) AnnotationRef (const ant::Object &other, lay::LayoutView *view)
: ant::Object (other), mp_view (view) : ant::Object (other), mp_view (view)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -140,10 +140,10 @@ public:
template <class T> template <class T>
AnnotationRef transformed (const T &t) const AnnotationRef transformed (const T &t) const
{ {
return AnnotationRef (ant::Object::transformed<T> (t), const_cast<lay::LayoutViewBase *> (mp_view.get ())); return AnnotationRef (ant::Object::transformed<T> (t), const_cast<lay::LayoutView *> (mp_view.get ()));
} }
void set_view (lay::LayoutViewBase *view) void set_view (lay::LayoutView *view)
{ {
mp_view.reset (view); mp_view.reset (view);
} }
@ -157,7 +157,7 @@ protected:
} }
private: private:
tl::weak_ptr<lay::LayoutViewBase> mp_view; tl::weak_ptr<lay::LayoutView> mp_view;
}; };
static void clear_annotations (lay::LayoutView *view) static void clear_annotations (lay::LayoutView *view)
@ -182,7 +182,7 @@ static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj)
} }
} }
static void erase_annotation_base (lay::LayoutViewBase *view, int id) static void erase_annotation_base (lay::LayoutView *view, int id)
{ {
ant::Service *ant_service = view->get_plugin <ant::Service> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) { if (ant_service) {
@ -200,7 +200,7 @@ static void erase_annotation (lay::LayoutView *view, int id)
erase_annotation_base (view, id); erase_annotation_base (view, id);
} }
static void replace_annotation_base (lay::LayoutViewBase *view, int id, const AnnotationRef &obj) static void replace_annotation_base (lay::LayoutView *view, int id, const AnnotationRef &obj)
{ {
ant::Service *ant_service = view->get_plugin <ant::Service> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) { if (ant_service) {

View File

@ -207,7 +207,7 @@ void
InstPropertiesPage::show_props () InstPropertiesPage::show_props ()
{ {
lay::UserPropertiesForm props_form (this); lay::UserPropertiesForm props_form (this);
if (props_form.show (mp_service->view ()->ui (), m_selection_ptrs [m_index]->cv_index (), m_prop_id)) { if (props_form.show (mp_service->view (), m_selection_ptrs [m_index]->cv_index (), m_prop_id)) {
emit edited (); emit edited ();
} }
} }
@ -395,7 +395,7 @@ void
InstPropertiesPage::show_inst () InstPropertiesPage::show_inst ()
{ {
InstantiationForm inst_form (this); InstantiationForm inst_form (this);
inst_form.show (mp_service->view ()->ui (), *m_selection_ptrs [m_index]); inst_form.show (mp_service->view (), *m_selection_ptrs [m_index]);
} }
bool bool
@ -912,7 +912,7 @@ InstPropertiesPage::update_pcell_parameters ()
mp_pcell_parameters = new PCellParametersPage (pcell_tab); mp_pcell_parameters = new PCellParametersPage (pcell_tab);
connect (mp_pcell_parameters, SIGNAL (edited ()), this, SIGNAL (edited ())); connect (mp_pcell_parameters, SIGNAL (edited ()), this, SIGNAL (edited ()));
mp_pcell_parameters->setup (mp_service->view ()->ui (), pos->cv_index (), layout->pcell_declaration (pc.second), parameters); mp_pcell_parameters->setup (mp_service->view (), pos->cv_index (), layout->pcell_declaration (pc.second), parameters);
pcell_tab->layout ()->addWidget (mp_pcell_parameters); pcell_tab->layout ()->addWidget (mp_pcell_parameters);
} }

View File

@ -55,7 +55,7 @@ namespace edt
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// Main Service implementation // Main Service implementation
MainService::MainService (db::Manager *manager, lay::LayoutViewBase *view, lay::Dispatcher *root) MainService::MainService (db::Manager *manager, lay::LayoutView *view, lay::Dispatcher *root)
: lay::Plugin (view), : lay::Plugin (view),
lay::Editable (view), lay::Editable (view),
db::Object (manager), db::Object (manager),
@ -1751,7 +1751,7 @@ db::DVector compute_alignment_vector (const db::DBox &prim_box, const db::DBox &
} }
static db::DBox static db::DBox
inst_bbox (const db::CplxTrans &tr, lay::LayoutViewBase *view, int cv_index, const db::InstElement &inst_element, bool visible_only) inst_bbox (const db::CplxTrans &tr, lay::LayoutView *view, int cv_index, const db::InstElement &inst_element, bool visible_only)
{ {
db::DBox box; db::DBox box;
@ -2296,7 +2296,7 @@ class NewObjectsSelection
: public db::ClipboardDataInsertReceiver : public db::ClipboardDataInsertReceiver
{ {
public: public:
NewObjectsSelection (int cv_index, db::cell_index_type topcell, lay::LayoutViewBase *view) NewObjectsSelection (int cv_index, db::cell_index_type topcell, lay::LayoutView *view)
: m_cv_index (cv_index), m_topcell (topcell) : m_cv_index (cv_index), m_topcell (topcell)
{ {
mp_polygon_service = view->get_plugin <edt::PolygonService> (); mp_polygon_service = view->get_plugin <edt::PolygonService> ();

View File

@ -64,7 +64,7 @@ public:
/** /**
* @brief The constructor * @brief The constructor
*/ */
MainService (db::Manager *manager, lay::LayoutViewBase *view, lay::Dispatcher *root); MainService (db::Manager *manager, lay::LayoutView *view, lay::Dispatcher *root);
/** /**
* @brief The destructor * @brief The destructor
@ -74,7 +74,7 @@ public:
/** /**
* @brief Access to the view object * @brief Access to the view object
*/ */
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
return mp_view; return mp_view;
} }
@ -196,7 +196,7 @@ public:
private: private:
// The layout view that this service is attached to // The layout view that this service is attached to
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
lay::Dispatcher *mp_root; lay::Dispatcher *mp_root;
bool m_needs_update; bool m_needs_update;

View File

@ -1010,7 +1010,7 @@ PartialShapeFinder::visit_cell (const db::Cell &cell, const db::Box &search_box,
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// Main Service implementation // Main Service implementation
PartialService::PartialService (db::Manager *manager, lay::LayoutViewBase *view, lay::Dispatcher *root) PartialService::PartialService (db::Manager *manager, lay::LayoutView *view, lay::Dispatcher *root)
: QObject (), : QObject (),
lay::EditorServiceBase (view), lay::EditorServiceBase (view),
db::Object (manager), db::Object (manager),

View File

@ -149,7 +149,7 @@ public:
/** /**
* @brief The constructor * @brief The constructor
*/ */
PartialService (db::Manager *manager, lay::LayoutViewBase *view, lay::Dispatcher *root); PartialService (db::Manager *manager, lay::LayoutView *view, lay::Dispatcher *root);
/** /**
* @brief The destructor * @brief The destructor
@ -159,7 +159,7 @@ public:
/** /**
* @brief Access to the view object * @brief Access to the view object
*/ */
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
tl_assert (mp_view != 0); tl_assert (mp_view != 0);
return mp_view; return mp_view;
@ -298,7 +298,7 @@ protected:
private: private:
// The layout view that this service is attached to // The layout view that this service is attached to
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
lay::Dispatcher *mp_root; lay::Dispatcher *mp_root;
bool m_dragging; bool m_dragging;
bool m_keep_selection; bool m_keep_selection;

View File

@ -179,18 +179,18 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> &pages, lay::LayoutViewBase *view, lay::Dispatcher *root) const virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> &pages, lay::LayoutView *view, lay::Dispatcher *root) const
{ {
if (mp_pages_f != 0) { if (mp_pages_f != 0) {
size_t nstart = pages.size (); size_t nstart = pages.size ();
(*mp_pages_f) (pages, view->ui (), root); (*mp_pages_f) (pages, view, root);
while (nstart < pages.size ()) { while (nstart < pages.size ()) {
pages [nstart++]->set_plugin_declaration (this); pages [nstart++]->set_plugin_declaration (this);
} }
} }
} }
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutViewBase *view) const virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutView *view) const
{ {
Svc *service = new Svc (manager, view); Svc *service = new Svc (manager, view);
service->set_plugin_declaration (this); service->set_plugin_declaration (this);
@ -312,7 +312,7 @@ public:
return false; return false;
} }
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
{ {
return new edt::MainService (manager, view, root); return new edt::MainService (manager, view, root);
} }
@ -327,10 +327,10 @@ public:
return false; return false;
} }
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
{ {
// NOTE: we do not set plugin_declaration which makes the page unspecific // NOTE: we do not set plugin_declaration which makes the page unspecific
EditorOptionsGeneric *generic_opt = new EditorOptionsGeneric (view->ui (), dispatcher); EditorOptionsGeneric *generic_opt = new EditorOptionsGeneric (view, dispatcher);
pages.push_back (generic_opt); pages.push_back (generic_opt);
} }
@ -413,9 +413,9 @@ private:
static tl::RegisteredClass<lay::PluginDeclaration> config_decl_main (new edt::MainPluginDeclaration (tl::to_string (QObject::tr ("Instances and shapes"))), 4000, "edt::MainService"); static tl::RegisteredClass<lay::PluginDeclaration> config_decl_main (new edt::MainPluginDeclaration (tl::to_string (QObject::tr ("Instances and shapes"))), 4000, "edt::MainService");
void void
commit_recent (lay::LayoutViewBase *view) commit_recent (lay::LayoutView *view)
{ {
lay::EditorOptionsPages *eo_pages = view->ui ()->editor_options_pages (); lay::EditorOptionsPages *eo_pages = view->editor_options_pages ();
if (!eo_pages) { if (!eo_pages) {
return; return;
} }
@ -442,12 +442,12 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> & /*pages*/, lay::LayoutViewBase * /*view*/, lay::Dispatcher * /*root*/) const virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> & /*pages*/, lay::LayoutView * /*view*/, lay::Dispatcher * /*root*/) const
{ {
// .. no specific ones .. // .. no specific ones ..
} }
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
{ {
return new edt::PartialService (manager, view, root); return new edt::PartialService (manager, view, root);
} }

View File

@ -49,7 +49,7 @@ namespace edt
/** /**
* @brief Commits the current configuration for the recently used configuration list * @brief Commits the current configuration for the recently used configuration list
*/ */
void commit_recent (lay::LayoutViewBase *view); void commit_recent (lay::LayoutView *view);
} }
#endif #endif

View File

@ -361,14 +361,14 @@ void
ShapePropertiesPage::show_inst () ShapePropertiesPage::show_inst ()
{ {
InstantiationForm inst_form (this); InstantiationForm inst_form (this);
inst_form.show (mp_service->view ()->ui (), *m_selection_ptrs [m_index]); inst_form.show (mp_service->view (), *m_selection_ptrs [m_index]);
} }
void void
ShapePropertiesPage::show_props () ShapePropertiesPage::show_props ()
{ {
lay::UserPropertiesForm props_form (this); lay::UserPropertiesForm props_form (this);
if (props_form.show (mp_service->view ()->ui (), m_selection_ptrs [m_index]->cv_index (), m_prop_id)) { if (props_form.show (mp_service->view (), m_selection_ptrs [m_index]->cv_index (), m_prop_id)) {
emit edited (); emit edited ();
} }
} }

View File

@ -60,7 +60,7 @@ ac_from_buttons (unsigned int buttons)
// ------------------------------------------------------------- // -------------------------------------------------------------
Service::Service (db::Manager *manager, lay::LayoutViewBase *view, db::ShapeIterator::flags_type flags) Service::Service (db::Manager *manager, lay::LayoutView *view, db::ShapeIterator::flags_type flags)
: lay::EditorServiceBase (view), : lay::EditorServiceBase (view),
db::Object (manager), db::Object (manager),
mp_view (view), mp_view (view),
@ -80,7 +80,7 @@ Service::Service (db::Manager *manager, lay::LayoutViewBase *view, db::ShapeIter
// .. nothing yet .. // .. nothing yet ..
} }
Service::Service (db::Manager *manager, lay::LayoutViewBase *view) Service::Service (db::Manager *manager, lay::LayoutView *view)
: lay::EditorServiceBase (view), : lay::EditorServiceBase (view),
db::Object (manager), db::Object (manager),
mp_view (view), mp_view (view),

View File

@ -82,12 +82,12 @@ public:
/** /**
* @brief The constructor for an service selecting shapes * @brief The constructor for an service selecting shapes
*/ */
Service (db::Manager *manager, lay::LayoutViewBase *view, db::ShapeIterator::flags_type shape_types); Service (db::Manager *manager, lay::LayoutView *view, db::ShapeIterator::flags_type shape_types);
/** /**
* @brief The constructor for an service selecting instances * @brief The constructor for an service selecting instances
*/ */
Service (db::Manager *manager, lay::LayoutViewBase *view); Service (db::Manager *manager, lay::LayoutView *view);
/** /**
* @brief The destructor * @brief The destructor
@ -243,7 +243,7 @@ public:
/** /**
* @brief Access to the view object * @brief Access to the view object
*/ */
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
tl_assert (mp_view != 0); tl_assert (mp_view != 0);
return mp_view; return mp_view;
@ -559,7 +559,7 @@ protected:
private: private:
// The layout view that the editor service is attached to // The layout view that the editor service is attached to
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
// The marker objects representing the selection // The marker objects representing the selection
std::vector<lay::ViewObject *> m_markers; std::vector<lay::ViewObject *> m_markers;

View File

@ -47,7 +47,7 @@ namespace edt
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// ShapeEditService implementation // ShapeEditService implementation
ShapeEditService::ShapeEditService (db::Manager *manager, lay::LayoutViewBase *view, db::ShapeIterator::flags_type shape_types) ShapeEditService::ShapeEditService (db::Manager *manager, lay::LayoutView *view, db::ShapeIterator::flags_type shape_types)
: edt::Service (manager, view, shape_types), : edt::Service (manager, view, shape_types),
m_layer (0), m_cv_index (0), mp_cell (0), mp_layout (0), m_combine_mode (CM_Add) m_layer (0), m_cv_index (0), mp_cell (0), mp_layout (0), m_combine_mode (CM_Add)
{ {
@ -362,7 +362,7 @@ ShapeEditService::deliver_shape (const db::Box &box)
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// PolygonService implementation // PolygonService implementation
PolygonService::PolygonService (db::Manager *manager, lay::LayoutViewBase *view) PolygonService::PolygonService (db::Manager *manager, lay::LayoutView *view)
: ShapeEditService (manager, view, db::ShapeIterator::Polygons), : ShapeEditService (manager, view, db::ShapeIterator::Polygons),
m_closure_set (false), m_closure () m_closure_set (false), m_closure ()
{ {
@ -692,7 +692,7 @@ PolygonService::update_marker ()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// BoxService implementation // BoxService implementation
BoxService::BoxService (db::Manager *manager, lay::LayoutViewBase *view) BoxService::BoxService (db::Manager *manager, lay::LayoutView *view)
: ShapeEditService (manager, view, db::ShapeIterator::Boxes) : ShapeEditService (manager, view, db::ShapeIterator::Boxes)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -784,7 +784,7 @@ BoxService::selection_applies (const lay::ObjectInstPath &sel) const
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// TextService implementation // TextService implementation
TextService::TextService (db::Manager *manager, lay::LayoutViewBase *view) TextService::TextService (db::Manager *manager, lay::LayoutView *view)
: ShapeEditService (manager, view, db::ShapeIterator::Texts), : ShapeEditService (manager, view, db::ShapeIterator::Texts),
m_rot (0) m_rot (0)
{ {
@ -972,7 +972,7 @@ TextService::configure (const std::string &name, const std::string &value)
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// PathService implementation // PathService implementation
PathService::PathService (db::Manager *manager, lay::LayoutViewBase *view) PathService::PathService (db::Manager *manager, lay::LayoutView *view)
: ShapeEditService (manager, view, db::ShapeIterator::Paths), : ShapeEditService (manager, view, db::ShapeIterator::Paths),
m_width (0.1), m_bgnext (0.0), m_endext (0.0), m_type (Flush), m_needs_update (true) m_width (0.1), m_bgnext (0.0), m_endext (0.0), m_type (Flush), m_needs_update (true)
{ {
@ -1211,7 +1211,7 @@ PathService::config_finalize ()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// InstService implementation // InstService implementation
InstService::InstService (db::Manager *manager, lay::LayoutViewBase *view) InstService::InstService (db::Manager *manager, lay::LayoutView *view)
: edt::Service (manager, view), : edt::Service (manager, view),
m_angle (0.0), m_scale (1.0), m_angle (0.0), m_scale (1.0),
m_mirror (false), m_is_pcell (false), m_mirror (false), m_is_pcell (false),

View File

@ -45,7 +45,7 @@ class ShapeEditService
: public edt::Service : public edt::Service
{ {
public: public:
ShapeEditService (db::Manager *manager, lay::LayoutViewBase *view, db::ShapeIterator::flags_type shape_types); ShapeEditService (db::Manager *manager, lay::LayoutView *view, db::ShapeIterator::flags_type shape_types);
protected: protected:
void get_edit_layer (); void get_edit_layer ();
@ -86,7 +86,7 @@ class PolygonService
: public ShapeEditService : public ShapeEditService
{ {
public: public:
PolygonService (db::Manager *manager, lay::LayoutViewBase *view); PolygonService (db::Manager *manager, lay::LayoutView *view);
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent); virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
virtual void do_delete (); virtual void do_delete ();
@ -117,7 +117,7 @@ class BoxService
: public ShapeEditService : public ShapeEditService
{ {
public: public:
BoxService (db::Manager *manager, lay::LayoutViewBase *view); BoxService (db::Manager *manager, lay::LayoutView *view);
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent); virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
virtual void do_begin_edit (const db::DPoint &p); virtual void do_begin_edit (const db::DPoint &p);
@ -142,7 +142,7 @@ class TextService
: public ShapeEditService : public ShapeEditService
{ {
public: public:
TextService (db::Manager *manager, lay::LayoutViewBase *view); TextService (db::Manager *manager, lay::LayoutView *view);
~TextService (); ~TextService ();
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent); virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
@ -174,7 +174,7 @@ class PathService
: public ShapeEditService : public ShapeEditService
{ {
public: public:
PathService (db::Manager *manager, lay::LayoutViewBase *view); PathService (db::Manager *manager, lay::LayoutView *view);
~PathService (); ~PathService ();
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent); virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
@ -211,7 +211,7 @@ class InstService
: public edt::Service : public edt::Service
{ {
public: public:
InstService (db::Manager *manager, lay::LayoutViewBase *view); InstService (db::Manager *manager, lay::LayoutView *view);
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent); virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
virtual void do_begin_edit (const db::DPoint &p); virtual void do_begin_edit (const db::DPoint &p);

View File

@ -77,7 +77,7 @@ std::map<std::string, tl::Variant> pcell_parameters_from_string (const std::stri
// ------------------------------------------------------------- // -------------------------------------------------------------
// SelectionIterator implementation // SelectionIterator implementation
SelectionIterator::SelectionIterator (lay::LayoutViewBase *view, bool including_transient) SelectionIterator::SelectionIterator (lay::LayoutView *view, bool including_transient)
: m_transient_mode (false) : m_transient_mode (false)
{ {
mp_edt_services = view->get_plugins <edt::Service> (); mp_edt_services = view->get_plugins <edt::Service> ();
@ -145,7 +145,7 @@ SelectionIterator::next ()
// TransformationsVariants implementation // TransformationsVariants implementation
// for a lay::LayoutView // for a lay::LayoutView
TransformationVariants::TransformationVariants (const lay::LayoutViewBase *view, bool per_cv_and_layer, bool per_cv) TransformationVariants::TransformationVariants (const lay::LayoutView *view, bool per_cv_and_layer, bool per_cv)
{ {
// build the transformation variants cache // build the transformation variants cache

View File

@ -40,7 +40,7 @@
namespace lay namespace lay
{ {
class LayoutViewBase; class LayoutView;
} }
namespace edt { namespace edt {
@ -84,7 +84,7 @@ public:
class TransformationVariants class TransformationVariants
{ {
public: public:
TransformationVariants (const lay::LayoutViewBase *view, bool per_cv_and_layer = true, bool per_cv = true); TransformationVariants (const lay::LayoutView *view, bool per_cv_and_layer = true, bool per_cv = true);
const std::vector<db::DCplxTrans> *per_cv_and_layer (unsigned int cv, unsigned int layer) const; const std::vector<db::DCplxTrans> *per_cv_and_layer (unsigned int cv, unsigned int layer) const;
const std::vector<db::DCplxTrans> *per_cv (unsigned int cv) const; const std::vector<db::DCplxTrans> *per_cv (unsigned int cv) const;
@ -109,7 +109,7 @@ public:
* *
* If "including_transient" is true, the transient selection will be used as fallback. * If "including_transient" is true, the transient selection will be used as fallback.
*/ */
SelectionIterator (lay::LayoutViewBase *view, bool including_transient = true); SelectionIterator (lay::LayoutView *view, bool including_transient = true);
/** /**
* @brief Returns a value indicating whether the transient selection is taken * @brief Returns a value indicating whether the transient selection is taken

View File

@ -299,8 +299,8 @@ gsi::Class<img::DataMapping> decl_ImageDataMapping ("lay", "ImageDataMapping",
class ImageRef; class ImageRef;
static void replace_image_base (lay::LayoutViewBase *view, size_t id, ImageRef &new_obj); static void replace_image_base (lay::LayoutView *view, size_t id, ImageRef &new_obj);
static void erase_image_base (lay::LayoutViewBase *view, size_t id); static void erase_image_base (lay::LayoutView *view, size_t id);
/** /**
* @brief An extension of the img::Object that provides "live" updates of the view * @brief An extension of the img::Object that provides "live" updates of the view
@ -321,7 +321,7 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
ImageRef (const img::Object &other, lay::LayoutViewBase *view) ImageRef (const img::Object &other, lay::LayoutView *view)
: img::Object (other), mp_view (view), dm_update_view (this, &ImageRef::do_update_view) : img::Object (other), mp_view (view), dm_update_view (this, &ImageRef::do_update_view)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -373,7 +373,7 @@ public:
template <class T> template <class T>
ImageRef transformed (const T &t) const ImageRef transformed (const T &t) const
{ {
return ImageRef (img::Object::transformed<T> (t), const_cast<lay::LayoutViewBase *> (mp_view.get ())); return ImageRef (img::Object::transformed<T> (t), const_cast<lay::LayoutView *> (mp_view.get ()));
} }
void set_view (lay::LayoutView *view) void set_view (lay::LayoutView *view)
@ -403,7 +403,7 @@ protected:
} }
private: private:
tl::weak_ptr<lay::LayoutViewBase> mp_view; tl::weak_ptr<lay::LayoutView> mp_view;
tl::DeferredMethod<ImageRef> dm_update_view; tl::DeferredMethod<ImageRef> dm_update_view;
}; };
@ -1114,7 +1114,7 @@ static void show_image (lay::LayoutView *view, size_t id, bool visible)
} }
} }
void replace_image_base (lay::LayoutViewBase *view, size_t id, ImageRef &new_obj) void replace_image_base (lay::LayoutView *view, size_t id, ImageRef &new_obj)
{ {
img::Service *img_service = view->get_plugin <img::Service> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) { if (img_service) {
@ -1134,7 +1134,7 @@ static void replace_image (lay::LayoutView *view, size_t id, ImageRef &new_obj)
replace_image_base (view, id, new_obj); replace_image_base (view, id, new_obj);
} }
void erase_image_base (lay::LayoutViewBase *view, size_t id) void erase_image_base (lay::LayoutView *view, size_t id)
{ {
img::Service *img_service = view->get_plugin <img::Service> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) { if (img_service) {

View File

@ -45,7 +45,7 @@ PluginDeclaration::get_menu_entries (std::vector<lay::MenuEntry> &menu_entries)
} }
lay::Plugin * lay::Plugin *
PluginDeclaration::create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutViewBase *view) const PluginDeclaration::create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutView *view) const
{ {
return new img::Service (manager, view); return new img::Service (manager, view);
} }

View File

@ -36,7 +36,7 @@ class PluginDeclaration
{ {
public: public:
virtual void get_menu_entries (std::vector<lay::MenuEntry> &menu_entries) const; virtual void get_menu_entries (std::vector<lay::MenuEntry> &menu_entries) const;
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutViewBase *view) const; virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *, lay::LayoutView *view) const;
virtual bool implements_editable (std::string &title) const; virtual bool implements_editable (std::string &title) const;
virtual void get_options (std::vector < std::pair<std::string, std::string> > &options) const; virtual void get_options (std::vector < std::pair<std::string, std::string> > &options) const;
}; };

View File

@ -402,7 +402,7 @@ View::render (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas)
// ------------------------------------------------------------- // -------------------------------------------------------------
// img::Service implementation // img::Service implementation
Service::Service (db::Manager *manager, lay::LayoutViewBase *view) Service::Service (db::Manager *manager, lay::LayoutView *view)
: lay::BackgroundViewObject (view->view_object_widget ()), : lay::BackgroundViewObject (view->view_object_widget ()),
lay::Editable (view), lay::Editable (view),
lay::Plugin (view), lay::Plugin (view),

View File

@ -203,7 +203,7 @@ public:
typedef lay::AnnotationShapes::iterator obj_iterator; typedef lay::AnnotationShapes::iterator obj_iterator;
enum MoveMode { move_none, move_selected, move_landmark, move_l, move_r, move_t, move_b, move_lr, move_tr, move_ll, move_tl, move_all }; enum MoveMode { move_none, move_selected, move_landmark, move_l, move_r, move_t, move_b, move_lr, move_tr, move_ll, move_tl, move_all };
Service (db::Manager *manager, lay::LayoutViewBase *view); Service (db::Manager *manager, lay::LayoutView *view);
~Service (); ~Service ();
@ -432,7 +432,7 @@ public:
/** /**
* @brief Access to the view object * @brief Access to the view object
*/ */
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
return mp_view; return mp_view;
} }
@ -480,7 +480,7 @@ public:
private: private:
// The layout view that the image service is attached to // The layout view that the image service is attached to
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
// The view objects representing the selection and the moved images in move mode // The view objects representing the selection and the moved images in move mode
std::vector<View *> m_selected_image_views; std::vector<View *> m_selected_image_views;

View File

@ -55,7 +55,7 @@ public:
menu_entries.push_back (lay::menu_item ("clip_tool::show", "clip_tool:edit_mode", "edit_menu.utils_menu.end", tl::to_string (QObject::tr ("Clip Tool")))); menu_entries.push_back (lay::menu_item ("clip_tool::show", "clip_tool:edit_mode", "edit_menu.utils_menu.end", tl::to_string (QObject::tr ("Clip Tool"))));
} }
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 ClipDialog (root, view); return new ClipDialog (root, view);
} }
@ -66,7 +66,7 @@ static tl::RegisteredClass<lay::PluginDeclaration> config_decl (new ClipDialogPl
// ------------------------------------------------------------ // ------------------------------------------------------------
ClipDialog::ClipDialog (lay::Dispatcher *root, LayoutViewBase *vw) ClipDialog::ClipDialog (lay::Dispatcher *root, LayoutView *vw)
: lay::Browser (root, vw), : lay::Browser (root, vw),
Ui::ClipDialog () Ui::ClipDialog ()
{ {

View File

@ -40,7 +40,7 @@ class ClipDialog
Q_OBJECT Q_OBJECT
public: public:
ClipDialog (lay::Dispatcher *root, lay::LayoutViewBase *view); ClipDialog (lay::Dispatcher *root, lay::LayoutView *view);
~ClipDialog (); ~ClipDialog ();
public slots: public slots:

View File

@ -62,7 +62,7 @@ public:
menu_entries.push_back (lay::menu_item ("fill_tool::show", "fill_tool:edit_mode", "edit_menu.utils_menu.end", tl::to_string (QObject::tr ("Fill Tool")))); menu_entries.push_back (lay::menu_item ("fill_tool::show", "fill_tool:edit_mode", "edit_menu.utils_menu.end", tl::to_string (QObject::tr ("Fill Tool"))));
} }
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 FillDialog (root, view); return new FillDialog (root, view);
} }
@ -73,7 +73,7 @@ static tl::RegisteredClass<lay::PluginDeclaration> config_decl (new FillDialogPl
// ------------------------------------------------------------ // ------------------------------------------------------------
FillDialog::FillDialog (lay::Dispatcher *main, LayoutViewBase *view) FillDialog::FillDialog (lay::Dispatcher *main, LayoutView *view)
: QDialog (view->widget ()), : QDialog (view->widget ()),
lay::Plugin (main), lay::Plugin (main),
Ui::FillDialog (), Ui::FillDialog (),

View File

@ -76,7 +76,7 @@ class LAY_PUBLIC FillDialog
Q_OBJECT Q_OBJECT
public: public:
FillDialog (lay::Dispatcher *root, lay::LayoutViewBase *view); FillDialog (lay::Dispatcher *root, lay::LayoutView *view);
~FillDialog (); ~FillDialog ();
public slots: public slots:
@ -95,7 +95,7 @@ private:
void generate_fill (const FillParameters &fp); void generate_fill (const FillParameters &fp);
FillParameters get_fill_parameters (); FillParameters get_fill_parameters ();
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
}; };
} }

View File

@ -63,9 +63,9 @@ public:
menu_entries.push_back (lay::menu_item ("search_replace::show", "search_replace_viewer:edit:view_mode", "edit_menu.utils_group+", tl::to_string (QObject::tr ("Search")))); menu_entries.push_back (lay::menu_item ("search_replace::show", "search_replace_viewer:edit:view_mode", "edit_menu.utils_group+", tl::to_string (QObject::tr ("Search"))));
} }
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 SearchReplaceDialog (root, view->ui ()); return new SearchReplaceDialog (root, view);
} }
}; };

View File

@ -1165,6 +1165,11 @@ static void clear_children (lay::LayerPropertiesNode *node)
node->clear_children (); node->clear_children ();
} }
static lay::LayoutView *get_view (lay::LayerPropertiesNode *node)
{
return node->view ()->ui ();
}
Class<lay::LayerPropertiesNode> decl_LayerPropertiesNode ( Class<lay::LayerPropertiesNode> decl_LayerPropertiesNode (
decl_LayerProperties, decl_LayerProperties,
"lay", "LayerPropertiesNode", "lay", "LayerPropertiesNode",
@ -1222,7 +1227,7 @@ Class<lay::LayerPropertiesNode> decl_LayerPropertiesNode (
"\n" "\n"
"@return A bbox in micron units\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" "@brief Gets the view this node lives in\n"
"\n" "\n"
"This reference can be nil if the node is a orphan node that lives outside a view." "This reference can be nil if the node is a orphan node that lives outside a view."

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) 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); 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> 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) 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); 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", 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), 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" "@brief Creates a standalone view\n"
"\n" "\n"
@ -574,12 +584,14 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n" "\n"
"This method has been introduced in version 0.27." "This method has been introduced in version 0.27."
) + ) +
#if defined(HAVE_QT)
gsi::method ("current", &lay::LayoutView::current, gsi::method ("current", &lay::LayoutView::current,
"@brief Returns the current view\n" "@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" "The current view is the one that is shown in the current tab. Returns nil if no layout is loaded.\n"
"\n" "\n"
"This method has been introduced in version 0.23.\n" "This method has been introduced in version 0.23.\n"
) + ) +
#endif
gsi::method ("stop_redraw", &lay::LayoutView::stop_redraw, gsi::method ("stop_redraw", &lay::LayoutView::stop_redraw,
"@brief Stops the redraw thread\n" "@brief Stops the redraw thread\n"
"\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" "@brief Return the viewport height in pixels\n"
"This method was introduced in version 0.18.\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"), gsi::method ("bookmark_view", &lay::LayoutView::bookmark_view, gsi::arg ("name"),
"@brief Bookmarks the current view under the given name\n" "@brief Bookmarks the current view under the given name\n"
"\n" "\n"
"@param name The name under which to bookmark the current state" "@param name The name under which to bookmark the current state"
) + ) +
#endif
gsi::method ("add_missing_layers", &lay::LayoutView::add_missing_layers, gsi::method ("add_missing_layers", &lay::LayoutView::add_missing_layers,
"@brief Adds new layers to layer list\n" "@brief Adds new layers to layer list\n"
"This method was introduced in version 0.19.\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" "\n"
"This method has been introduced in 0.23.10.\n" "This method has been introduced in 0.23.10.\n"
) + ) +
#endif
gsi::method ("save_screenshot", &lay::LayoutView::save_screenshot, gsi::arg ("filename"), gsi::method ("save_screenshot", &lay::LayoutView::save_screenshot, gsi::arg ("filename"),
"@brief Saves a screenshot to the given file\n" "@brief Saves a screenshot to the given file\n"
"\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 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. " "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"), 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" "@brief Saves the layout as an image to the given file (with options)\n"
"\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 " "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" "(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, gsi::event ("on_close", &lay::LayoutView::close_event,
"@brief A event indicating that the view is about to close\n" "@brief A event indicating that the view is about to close\n"
"\n" "\n"
@ -1573,6 +1588,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n" "\n"
"It has been added in version 0.25." "It has been added in version 0.25."
) + ) +
#endif
gsi::event ("on_viewport_changed", &lay::LayoutView::viewport_changed_event, gsi::event ("on_viewport_changed", &lay::LayoutView::viewport_changed_event,
"@brief An event indicating that the viewport (the visible rectangle) has changed\n" "@brief An event indicating that the viewport (the visible rectangle) has changed\n"
"\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" "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" "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"), 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" "@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" "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" "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, 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" "@brief An event that is triggered the list of netlist databases is changed\n"
"\n" "\n"
@ -1749,6 +1767,7 @@ Class<lay::LayoutView> decl_LayoutView (QT_EXTERNAL_BASE (QWidget) "lay", "Layou
"\n" "\n"
"This method has been added in version 0.26." "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"), 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" "@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" "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" "\n"
"This method has been added in version 0.26." "This method has been added in version 0.26."
) + ) +
#endif
gsi::method_ext ("lvsdb", &get_lvsdb, gsi::arg ("index"), gsi::method_ext ("lvsdb", &get_lvsdb, gsi::arg ("index"),
"@brief Gets the netlist database with the given index\n" "@brief Gets the netlist database with the given index\n"
"@return The \\LayoutVsSchematic object or nil if the index is not valid" "@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" "\n"
"This method has been added in version 0.26." "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"), 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" "@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" "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" "\n"
"This method has been added in version 0.26." "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 // 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 ..) // Plugin method (in which case we get a segmentation violation ..)
// TODO: this method belongs to the Plugin interface and should be located there. // 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) static tl::Event &get_technology_changed_event (lay::CellViewRef *cv)
{ {
if (! cv->is_valid ()) { 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; return (*cv)->technology_changed_event;
} }
#if defined(HAVE_QT)
static lay::CellViewRef get_active_cellview_ref () static lay::CellViewRef get_active_cellview_ref ()
{ {
lay::LayoutView *view = lay::LayoutView::current (); lay::LayoutView *view = lay::LayoutView::current ();
@ -2002,6 +2025,7 @@ static lay::CellViewRef get_active_cellview_ref ()
return lay::CellViewRef (); return lay::CellViewRef ();
} }
} }
#endif
static void set_cell (lay::CellViewRef *cv, db::Cell *cell) 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 (cv->is_valid () && cell) {
if (cell->layout () != &(*cv)->layout ()) { 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 ()); return cv->view ()->is_cell_hidden (cell->cell_index (), cv->index ());
} else { } else {
@ -2058,7 +2082,7 @@ static void cv_hide_cell (lay::CellViewRef *cv, const db::Cell *cell)
{ {
if (cv->is_valid () && cell) { if (cv->is_valid () && cell) {
if (cell->layout () != &(*cv)->layout ()) { 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 ()); 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 (cv->is_valid () && cell) {
if (cell->layout () != &(*cv)->layout ()) { 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 ()); 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", Class<lay::CellViewRef> decl_CellView ("lay", "CellView",
method ("==", static_cast<bool (lay::CellViewRef::*) (const lay::CellViewRef &) const> (&lay::CellViewRef::operator==), gsi::arg ("other"), 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" "@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" "The index will be negative if the cellview is not a valid one.\n"
"This method has been added in version 0.25.\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" "@brief Gets the view the cellview resides in\n"
"This reference will be nil if the cellview is not a valid one.\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" "This method has been added in version 0.25.\n"
) + ) +
#if defined(HAVE_QT)
method ("active", &get_active_cellview_ref, method ("active", &get_active_cellview_ref,
"@brief Gets the active CellView\n" "@brief Gets the active CellView\n"
"The active CellView is the one that is selected in the current layout view. This method is " "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" "\n"
"This method has been introduced in version 0.23." "This method has been introduced in version 0.23."
) + ) +
#endif
method ("is_valid?", &lay::CellViewRef::is_valid, method ("is_valid?", &lay::CellViewRef::is_valid,
"@brief Returns true, if the cellview is valid\n" "@brief Returns true, if the cellview is valid\n"
"A cellview may become invalid if the corresponding tab is closed for example." "A cellview may become invalid if the corresponding tab is closed for example."

View File

@ -29,7 +29,7 @@ namespace gsi
{ {
static static
lay::DMarker *create_marker (lay::LayoutViewBase *view) lay::DMarker *create_marker (lay::LayoutView *view)
{ {
return new lay::DMarker (view); return new lay::DMarker (view);
} }

View File

@ -40,7 +40,7 @@ namespace gsi
// since PluginBase object are only allowed to be created inside the create_plugin method // 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. // of the factory, this hack is a quick but dirty workaround.
static bool s_in_create_plugin = false; 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; static lay::Dispatcher *sp_dispatcher = 0;
class PluginBase class PluginBase
@ -51,7 +51,7 @@ public:
: lay::Plugin (sp_dispatcher), lay::ViewService (sp_view ? sp_view->view_object_widget () : 0) : lay::Plugin (sp_dispatcher), lay::ViewService (sp_view ? sp_view->view_object_widget () : 0)
{ {
if (! s_in_create_plugin) { 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 ()) { if (f_create_plugin.can_issue ()) {
return create_plugin_gsi (manager, root, view); 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 // TODO: this is a hack. See notes above at s_in_create_plugin
s_in_create_plugin = true; s_in_create_plugin = true;
@ -410,7 +410,7 @@ public:
sp_dispatcher = root; sp_dispatcher = root;
gsi::PluginBase *ret = 0; gsi::PluginBase *ret = 0;
try { 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; s_in_create_plugin = false;
sp_view = 0; sp_view = 0;
sp_dispatcher = 0; sp_dispatcher = 0;

View File

@ -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")))); 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); 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), : lay::Browser (root, vw),
Ui::BrowseInstancesForm (), Ui::BrowseInstancesForm (),
m_cv_index (0), m_cv_index (0),
@ -349,7 +349,7 @@ void
BrowseInstancesForm::choose_cell_pressed () BrowseInstancesForm::choose_cell_pressed ()
{ {
BEGIN_PROTECTED BEGIN_PROTECTED
CellSelectionForm form (this, view ()->ui (), "browse_cell", true /*simple mode*/); CellSelectionForm form (this, view (), "browse_cell", true /*simple mode*/);
if (form.exec ()) { if (form.exec ()) {
change_cell (form.selected_cellview ().cell_index (), form.selected_cellview_index ()); change_cell (form.selected_cellview ().cell_index (), form.selected_cellview_index ());
} }

View File

@ -65,7 +65,7 @@ public:
enum mode_type { ToCellView = 0, AnyTop, Parent }; enum mode_type { ToCellView = 0, AnyTop, Parent };
enum window_type { DontChange = 0, FitCell, FitMarker, Center, CenterSize }; enum window_type { DontChange = 0, FitCell, FitMarker, Center, CenterSize };
BrowseInstancesForm (lay::Dispatcher *root, lay::LayoutViewBase *view); BrowseInstancesForm (lay::Dispatcher *root, lay::LayoutView *view);
~BrowseInstancesForm (); ~BrowseInstancesForm ();
bool eventFilter (QObject *watched, QEvent *event); bool eventFilter (QObject *watched, QEvent *event);

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")))); 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); 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), : lay::Browser (root, vw),
Ui::BrowseShapesForm (), Ui::BrowseShapesForm (),
m_cv_index (-1), m_cv_index (-1),

View File

@ -64,7 +64,7 @@ public:
enum mode_type { ToCellView = 0, AnyTop, Local }; enum mode_type { ToCellView = 0, AnyTop, Local };
enum window_type { DontChange = 0, FitCell, FitMarker, Center, CenterSize }; enum window_type { DontChange = 0, FitCell, FitMarker, Center, CenterSize };
BrowseShapesForm (lay::Dispatcher *root, LayoutViewBase *view); BrowseShapesForm (lay::Dispatcher *root, LayoutView *view);
~BrowseShapesForm (); ~BrowseShapesForm ();
bool eventFilter (QObject *watched, QEvent *event); bool eventFilter (QObject *watched, QEvent *event);

View File

@ -32,9 +32,9 @@ namespace lay
{ {
#if QT_VERSION >= 0x050000 #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 #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 #endif
// TODO: clarify whether to keep the browsers as separate (potentially hidden) windows // TODO: clarify whether to keep the browsers as separate (potentially hidden) windows
: QDialog (0 /*view*/, fl), : QDialog (0 /*view*/, fl),

View File

@ -47,9 +47,9 @@ public:
* @brief Constructor * @brief Constructor
*/ */
#if QT_VERSION >= 0x050000 #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 #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 #endif
/** /**
@ -93,7 +93,7 @@ public:
/** /**
* @brief Return the pointer to the layout view * @brief Return the pointer to the layout view
*/ */
lay::LayoutViewBase *view () lay::LayoutView *view ()
{ {
return mp_view; return mp_view;
} }
@ -132,7 +132,7 @@ public:
private: private:
bool m_active; bool m_active;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
lay::Dispatcher *mp_root; lay::Dispatcher *mp_root;
void closeEvent (QCloseEvent *); void closeEvent (QCloseEvent *);

View File

@ -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 (), : QDialog (parent), Ui::CellSelectionForm (),
mp_view (view), mp_view (view),
m_current_cv (-1), m_current_cv (-1),

View File

@ -49,7 +49,7 @@ class LAYBASIC_PUBLIC CellSelectionForm
Q_OBJECT Q_OBJECT
public: 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) * @brief Obtain the selected cellview's index (with changes)
@ -76,7 +76,7 @@ public slots:
void find_prev_clicked(); void find_prev_clicked();
private: private:
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
std::vector <lay::CellView> m_cellviews; std::vector <lay::CellView> m_cellviews;
int m_current_cv; int m_current_cv;
bool m_name_cb_enabled; bool m_name_cb_enabled;

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 // valid ("under construction"). In this case, the model will return defaults or void
// objects. // 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), : QAbstractItemModel (parent),
m_flags (flags), m_flags (flags),
m_sorting (sorting), m_sorting (sorting),
@ -379,7 +379,7 @@ CellTreeModel::~CellTreeModel ()
} }
void 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 (); db::Layout *layout = & view->cellview (cv_index)->layout ();
do_configure (layout, 0, view, cv_index, flags, base, sorting); 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 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); bool flat = ((flags & Flat) != 0) && ((flags & TopCells) == 0);

View File

@ -45,7 +45,7 @@ namespace db
namespace lay namespace lay
{ {
class LayoutViewBase; class LayoutView;
class CellTreeItem; class CellTreeItem;
/** /**
@ -85,7 +85,7 @@ public:
* If flags "Children" or "Parents" are given, "base" must be set to the cell of which * If flags "Children" or "Parents" are given, "base" must be set to the cell of which
* the children or parents should be derived. * 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 * @brief Constructor
@ -120,7 +120,7 @@ public:
/** /**
* @brief Reconfigures the model with a LayoutView * @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 * @brief Reconfigures the model with a pure Layout
@ -257,7 +257,7 @@ private:
unsigned int m_flags; unsigned int m_flags;
Sorting m_sorting; Sorting m_sorting;
QWidget *mp_parent; QWidget *mp_parent;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
db::Layout *mp_layout; db::Layout *mp_layout;
db::Library *mp_library; db::Library *mp_library;
int m_cv_index; int m_cv_index;
@ -271,7 +271,7 @@ private:
void build_top_level (); void build_top_level ();
void clear_top_level (); void clear_top_level ();
bool search_children (const tl::GlobPattern &pattern, CellTreeItem *item); 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);
}; };
/** /**

View File

@ -23,7 +23,9 @@
#include "layCellView.h" #include "layCellView.h"
#include "layLayoutView.h" #include "layLayoutView.h"
#include "layStream.h" #if defined(HAVE_QT) // @@@
# include "layStream.h"
#endif
#include "dbLayout.h" #include "dbLayout.h"
#include "dbWriter.h" #include "dbWriter.h"
#include "dbReader.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 // layouts in the managed layouts space participate in spare proxy cleanup
layout->do_cleanup (true); layout->do_cleanup (true);
file_watcher ().add_file (m_filename); add_file_to_watcher (m_filename);
if (! m_filename.empty ()) { if (! m_filename.empty ()) {
rename (filename_for_caption (m_filename)); rename (filename_for_caption (m_filename));
@ -107,7 +109,23 @@ LayoutHandle::~LayoutHandle ()
ms_dict.erase (m_name); 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 void
@ -176,9 +194,9 @@ LayoutHandle::layout () const
void void
LayoutHandle::set_filename (const std::string &fn) LayoutHandle::set_filename (const std::string &fn)
{ {
file_watcher ().remove_file (m_filename); remove_file_from_watcher (m_filename);
m_filename = fn; m_filename = fn;
file_watcher ().add_file (m_filename); add_file_to_watcher (m_filename);
} }
const std::string & const std::string &
@ -274,6 +292,7 @@ LayoutHandle::set_save_options (const db::SaveLayoutOptions &options, bool valid
void void
LayoutHandle::update_save_options (db::SaveLayoutOptions &options) 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) { 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); const lay::StreamWriterPluginDeclaration *decl = dynamic_cast <const lay::StreamWriterPluginDeclaration *> (&*cls);
@ -294,6 +313,7 @@ LayoutHandle::update_save_options (db::SaveLayoutOptions &options)
} }
} }
#endif
} }
void void
@ -307,7 +327,7 @@ LayoutHandle::save_as (const std::string &fn, tl::OutputStream::OutputStreamMode
// reader options. // reader options.
m_load_options = db::LoadLayoutOptions (); m_load_options = db::LoadLayoutOptions ();
file_watcher ().remove_file (filename ()); remove_file_from_watcher (filename ());
rename (filename_for_caption (fn)); rename (filename_for_caption (fn));
@ -331,14 +351,14 @@ LayoutHandle::save_as (const std::string &fn, tl::OutputStream::OutputStreamMode
} }
if (update) { if (update) {
file_watcher ().add_file (filename ()); add_file_to_watcher (filename ());
m_dirty = false; m_dirty = false;
} }
} catch (...) { } catch (...) {
if (update) { if (update) {
file_watcher ().add_file (filename ()); add_file_to_watcher (filename ());
} }
throw; throw;
@ -366,8 +386,8 @@ LayoutHandle::load (const db::LoadLayoutOptions &options, const std::string &tec
} }
// Update the file's data: // Update the file's data:
file_watcher ().remove_file (filename ()); remove_file_from_watcher (filename ());
file_watcher ().add_file (filename ()); add_file_to_watcher (filename ());
m_dirty = false; m_dirty = false;
return new_lmap; return new_lmap;
@ -391,13 +411,14 @@ LayoutHandle::load ()
} }
// Update the file's data: // Update the file's data:
file_watcher ().remove_file (filename ()); remove_file_from_watcher (filename ());
file_watcher ().add_file (filename ()); add_file_to_watcher (filename ());
m_dirty = false; m_dirty = false;
return new_lmap; return new_lmap;
} }
#if defined(HAVE_QT)
tl::FileSystemWatcher & tl::FileSystemWatcher &
LayoutHandle::file_watcher () LayoutHandle::file_watcher ()
{ {
@ -408,8 +429,10 @@ LayoutHandle::file_watcher ()
return *mp_file_watcher; return *mp_file_watcher;
} }
std::map <std::string, LayoutHandle *> LayoutHandle::ms_dict;
tl::FileSystemWatcher *LayoutHandle::mp_file_watcher = 0; tl::FileSystemWatcher *LayoutHandle::mp_file_watcher = 0;
#endif
std::map <std::string, LayoutHandle *> LayoutHandle::ms_dict;
// ------------------------------------------------------------- // -------------------------------------------------------------
// LayoutHandleRef implementation // LayoutHandleRef implementation

View File

@ -297,6 +297,16 @@ public:
static tl::FileSystemWatcher &file_watcher (); static tl::FileSystemWatcher &file_watcher ();
#endif #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: private:
db::Layout *mp_layout; db::Layout *mp_layout;
int m_ref_count; int m_ref_count;

View File

@ -47,7 +47,7 @@ EditorOptionsFrame::~EditorOptionsFrame ()
} }
void void
EditorOptionsFrame::populate (LayoutViewBase *view) EditorOptionsFrame::populate (LayoutView *view)
{ {
std::vector<lay::EditorOptionsPage *> prop_dialog_pages; 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) { for (tl::Registrar<lay::PluginDeclaration>::iterator cls = tl::Registrar<lay::PluginDeclaration>::begin (); cls != tl::Registrar<lay::PluginDeclaration>::end (); ++cls) {

View File

@ -30,7 +30,7 @@ namespace lay
{ {
class EditorOptionsPages; class EditorOptionsPages;
class LayoutViewBase; class LayoutView;
class LAYBASIC_PUBLIC EditorOptionsFrame class LAYBASIC_PUBLIC EditorOptionsFrame
: public QFrame : public QFrame
@ -39,7 +39,7 @@ public:
EditorOptionsFrame (QWidget *parent); EditorOptionsFrame (QWidget *parent);
virtual ~EditorOptionsFrame (); virtual ~EditorOptionsFrame ();
void populate (lay::LayoutViewBase *view); void populate (lay::LayoutView *view);
EditorOptionsPages *pages_widget () const EditorOptionsPages *pages_widget () const
{ {

View File

@ -202,7 +202,7 @@ private:
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
EditorServiceBase::EditorServiceBase (LayoutViewBase *view) EditorServiceBase::EditorServiceBase (LayoutView *view)
: lay::ViewService (view->view_object_widget ()), : lay::ViewService (view->view_object_widget ()),
lay::Editable (view), lay::Editable (view),
lay::Plugin (view), lay::Plugin (view),

View File

@ -46,7 +46,7 @@ public:
/** /**
* @brief Constructor * @brief Constructor
*/ */
EditorServiceBase (lay::LayoutViewBase *view); EditorServiceBase (lay::LayoutView *view);
/** /**
* @brief Destructor * @brief Destructor

View File

@ -86,7 +86,7 @@ Finder::closer (double d)
} }
void 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_layers = layers;
m_region = region; m_region = region;
@ -265,7 +265,7 @@ struct LPContextCompareOp
}; };
bool 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 ..."))); tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000); progress.set_unit (1000);
@ -330,7 +330,7 @@ ShapeFinder::find (LayoutViewBase *view, const db::DBox &region_mu)
} }
bool 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 ..."))); tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000); progress.set_unit (1000);
@ -349,7 +349,7 @@ ShapeFinder::find (lay::LayoutViewBase *view, const lay::LayerProperties &lprops
} }
bool 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; m_cv_index = cv_index;
@ -624,7 +624,7 @@ InstFinder::InstFinder (bool point_mode, bool top_level_sel, bool full_arrays, b
} }
bool 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 ..."))); tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000); progress.set_unit (1000);
@ -641,7 +641,7 @@ InstFinder::find (lay::LayoutViewBase *view, const db::DBox &region_mu)
} }
bool 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 ..."))); tl::AbsoluteProgress progress (tl::to_string (tr ("Selecting ...")));
progress.set_unit (1000); progress.set_unit (1000);
@ -655,7 +655,7 @@ InstFinder::find (LayoutViewBase *view, unsigned int cv_index, const db::DCplxTr
} }
bool 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); const lay::CellView &cv = view->cellview (cv_index);
if (! cv.is_valid ()) { if (! cv.is_valid ()) {

View File

@ -136,7 +136,7 @@ protected:
return m_max_level; return m_max_level;
} }
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
return mp_view; return mp_view;
} }
@ -153,7 +153,7 @@ protected:
* path of instantiations up to the top cell is maintained and accessible by * path of instantiations up to the top cell is maintained and accessible by
* the path() accessor. * 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 * @brief Provide a basic edge test facility
@ -186,7 +186,7 @@ private:
int m_min_level, m_max_level; int m_min_level, m_max_level;
std::vector<db::InstElement> m_path; std::vector<db::InstElement> m_path;
const db::Layout *mp_layout; const db::Layout *mp_layout;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
unsigned int m_cv_index; unsigned int m_cv_index;
db::Box m_region; db::Box m_region;
std::vector<int> m_layers; 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); 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 (LayoutView *view, const lay::LayerProperties &lprops, const db::DBox &region_mu);
bool find (LayoutViewBase *view, const db::DBox &region_mu); bool find (LayoutView *view, const db::DBox &region_mu);
iterator begin () const iterator begin () const
{ {
@ -262,7 +262,7 @@ protected:
private: private:
virtual void visit_cell (const db::Cell &cell, const db::Box &search_box, const db::ICplxTrans &t, int /*level*/); 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, unsigned int cv_index,
const std::set<db::properties_id_type> *prop_sel, const std::set<db::properties_id_type> *prop_sel,
bool inv_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); 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 (LayoutView *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, const db::DBox &region_mu);
iterator begin () const iterator begin () const
{ {
@ -315,7 +315,7 @@ public:
private: private:
virtual void visit_cell (const db::Cell &cell, const db::Box &search_box, const db::ICplxTrans &t, int level); 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; unsigned int m_cv_index;
db::cell_index_type m_topcell; db::cell_index_type m_topcell;

View File

@ -105,7 +105,7 @@ GridNetPluginDeclaration::config_page (QWidget *parent, std::string &title) cons
#endif #endif
lay::Plugin * 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); return new lay::GridNet (view);
} }
@ -115,7 +115,7 @@ static tl::RegisteredClass<lay::PluginDeclaration> config_decl (new GridNetPlugi
// ------------------------------------------------------------ // ------------------------------------------------------------
// Implementation of the GridNet object // Implementation of the GridNet object
GridNet::GridNet (LayoutViewBase *view) GridNet::GridNet (LayoutView *view)
: lay::BackgroundViewObject (view->view_object_widget ()), : lay::BackgroundViewObject (view->view_object_widget ()),
lay::Plugin (view), lay::Plugin (view),
mp_view (view), mp_view (view),

View File

@ -50,7 +50,7 @@ public:
#if defined(HAVE_QT) #if defined(HAVE_QT)
virtual lay::ConfigPage *config_page (QWidget *parent, std::string &title) const; virtual lay::ConfigPage *config_page (QWidget *parent, std::string &title) const;
#endif #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 class GridNet
@ -68,7 +68,7 @@ public:
CheckerBoard CheckerBoard
}; };
GridNet (lay::LayoutViewBase *view); GridNet (lay::LayoutView *view);
private: private:
virtual void render_bg (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas); virtual void render_bg (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas);
@ -76,7 +76,7 @@ private:
// implementation of the lay::Plugin interface // implementation of the lay::Plugin interface
virtual bool configure (const std::string &name, const std::string &value); virtual bool configure (const std::string &name, const std::string &value);
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
bool m_visible; bool m_visible;
bool m_show_ruler; bool m_show_ruler;
double m_grid; double m_grid;

View File

@ -23,6 +23,7 @@
#include "layLayerProperties.h" #include "layLayerProperties.h"
#include "layLayoutViewBase.h" #include "layLayoutViewBase.h"
#include "layLayoutView.h"
#include "layConverters.h" #include "layConverters.h"
#include "tlXMLParser.h" #include "tlXMLParser.h"
#include "tlException.h" #include "tlException.h"
@ -404,7 +405,7 @@ class LayerSourceEval
: public tl::Eval : public tl::Eval
{ {
public: 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) : m_lp (lp), mp_view (view), m_real (real)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -415,14 +416,14 @@ public:
return m_lp.source (m_real); return m_lp.source (m_real);
} }
const lay::LayoutViewBase *view () const const lay::LayoutView *view () const
{ {
return mp_view; return mp_view;
} }
private: private:
const lay::LayerProperties &m_lp; const lay::LayerProperties &m_lp;
const lay::LayoutViewBase *mp_view; const lay::LayoutView *mp_view;
bool m_real; bool m_real;
}; };
@ -498,7 +499,7 @@ LayerProperties::display_string (const lay::LayoutViewBase *view, bool real, boo
realize_source (); 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 ("N", new LayerSourceEvalFunction ('N', &eval)); // layer name
eval.define_function ("L", new LayerSourceEvalFunction ('L', &eval)); // layer number eval.define_function ("L", new LayerSourceEvalFunction ('L', &eval)); // layer number
eval.define_function ("D", new LayerSourceEvalFunction ('D', &eval)); // datatype 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; return m_children == d.m_children;
} }
LayoutViewBase * LayoutViewBase *LayerPropertiesNode::view() const
LayerPropertiesNode::view () const
{ {
return const_cast<lay::LayoutViewBase *> (mp_view.get ()); 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 // NOTE: initialization through LayerProperties creates a new ID
lay::LayerPropertiesNode node ((const LayerProperties &) lp); 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 // Build a new ParsedLayerSource combining the transformation, hierarchy levels and
// property selections from the wildcard one and the requested layer source // property selections from the wildcard one and the requested layer source

View File

@ -1170,7 +1170,6 @@ public:
* This method attaches the properties node and it's children to a view. * 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. * This enables the node to realize itself against the view, i.e.
* compute the actual property selection set. * compute the actual property selection set.
* This method is supposed to be
*/ */
void attach_view (LayoutViewBase *view, unsigned int list_index); void attach_view (LayoutViewBase *view, unsigned int list_index);
@ -1912,7 +1911,7 @@ public:
* "load" automatically attaches the view. * "load" automatically attaches the view.
* This method has the side effect of recomputing the layer source parameters. * 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 * @brief Gets the layout view this list is attached to

View File

@ -631,7 +631,7 @@ LayerTreeModel::empty_within_view_predicate (const QModelIndex &index) const
LAYBASIC_PUBLIC LAYBASIC_PUBLIC
QIcon 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); h = std::max ((unsigned int) 16, h);
w = std::max ((unsigned int) 16, w); w = std::max ((unsigned int) 16, w);

View File

@ -48,7 +48,7 @@ namespace lay
{ {
class LayoutView; class LayoutView;
class LayoutViewBase; class LayoutView;
class LayerPropertiesConstIterator; class LayerPropertiesConstIterator;
/** /**
@ -109,7 +109,7 @@ public:
/** /**
* @brief Provides an icon for a given layer style * @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 * @brief Gets the preferred icon size

View File

@ -418,11 +418,6 @@ public:
*/ */
virtual QWidget *widget () { return this; } virtual QWidget *widget () { return this; }
/**
* @brief Gets the LayoutView interface
*/
virtual LayoutView *ui () { return this; }
/** /**
* @brief Copies to clipboard * @brief Copies to clipboard
* *
@ -762,6 +757,15 @@ protected:
virtual void emit_title_changed (); virtual void emit_title_changed ();
virtual void emit_dirty_changed (); virtual void emit_dirty_changed ();
virtual void emit_layer_order_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) * @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); 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;
}; };
} }

View File

@ -274,7 +274,7 @@ LayoutViewBase::LayoutViewBase (lay::LayoutViewBase *source, db::Manager *manage
} else { } else {
*m_layer_properties_lists [i] = *source->m_layer_properties_lists [i]; *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 ()) { if (! m_layer_properties_lists.empty ()) {
@ -367,7 +367,7 @@ LayoutViewBase::init (db::Manager *mgr)
m_search_range_box = 0; m_search_range_box = 0;
m_layer_properties_lists.push_back (new LayerPropertiesList ()); 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; m_current_layer_list = 0;
#if defined(HAVE_QT) #if defined(HAVE_QT)
@ -388,16 +388,16 @@ LayoutViewBase::init (db::Manager *mgr)
// occupy services and editables: // occupy services and editables:
// these services get deleted by the canvas destructor automatically: // these services get deleted by the canvas destructor automatically:
if ((m_options & LV_NoTracker) == 0) { if ((m_options & LV_NoTracker) == 0) {
mp_tracker = new lay::MouseTracker (this); mp_tracker = new lay::MouseTracker (ui ());
} }
if ((m_options & LV_NoZoom) == 0) { 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) { 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) { if ((m_options & LV_NoMove) == 0) {
mp_move_service = new lay::MoveService (this); mp_move_service = new lay::MoveService (ui ());
} }
create_plugins (); 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 *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) { if (p) {
// unhook the plugin from the script side if created there (prevent GC from destroying it) // 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 (); clear_layer_selection ();
m_layer_properties_lists.insert (m_layer_properties_lists.begin () + index, new LayerPropertiesList (props)); 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]); merge_dither_pattern (*m_layer_properties_lists [index]);
m_current_layer_list = index; m_current_layer_list = index;
@ -1538,7 +1538,7 @@ LayoutViewBase::set_properties (unsigned int index, const LayerPropertiesList &p
return; return;
} else { } else {
m_layer_properties_lists.push_back (new LayerPropertiesList ()); 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] = 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]); merge_dither_pattern (*m_layer_properties_lists [index]);
@ -1975,7 +1975,7 @@ LayoutViewBase::signal_layer_properties_changed ()
// recompute the source // recompute the source
// TODO: this is a side effect of this method - provide a special method for this purpose // 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) { 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 // 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 // recompute the source
// TODO: this is a side effect of this method - provide a special method for this purpose // 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) { 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) { if (map_cv) {
cv_map.insert (std::make_pair (-1, cv_index)); 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); 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. // expand the wildcards and map to the target cv.
for (std::vector<lay::LayerPropertiesList>::iterator p = props.begin (); p != props.end (); ++p) { 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); p->expand (cv_map, add_missing || !loaded);
} }
@ -3203,7 +3203,7 @@ LayoutViewBase::widget ()
#endif #endif
LayoutView * LayoutView *
LayoutViewBase::ui () LayoutViewBase::get_ui ()
{ {
tl_assert (false); tl_assert (false);
} }

View File

@ -790,12 +790,12 @@ public:
*/ */
void load_layer_props (const std::string &fn, int cv_index, bool add_default); 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 * @brief Save the screen content to a file
*/ */
void save_screenshot (const std::string &fn); void save_screenshot (const std::string &fn);
#if defined(HAVE_QT)
/** /**
* @brief Get the screen content as a QImage object * @brief Get the screen content as a QImage object
*/ */
@ -2510,7 +2510,18 @@ public:
/** /**
* @brief Gets the LayoutView interface * @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: private:
// event handlers used to connect to the layout object's events // event handlers used to connect to the layout object's events
@ -2686,6 +2697,8 @@ protected:
return mp_active_plugin; return mp_active_plugin;
} }
virtual LayoutView *get_ui ();
bool configure (const std::string &name, const std::string &value); bool configure (const std::string &name, const std::string &value);
void config_finalize (); void config_finalize ();

View File

@ -77,8 +77,8 @@ validate_cell_path (const db::Layout &layout, lay::LayoutView::cell_path_type &p
return false; return false;
} }
LayoutViewFunctions::LayoutViewFunctions (db::Manager *manager, LayoutViewBase *view) LayoutViewFunctions::LayoutViewFunctions (db::Manager *manager, LayoutView *view)
: lay::Plugin (view), mp_view (view->ui ()), mp_manager (manager) : lay::Plugin (view), mp_view (view), mp_manager (manager)
{ {
m_del_cell_mode = 0; m_del_cell_mode = 0;
m_move_to_origin_mode_x = 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); return new LayoutViewFunctions (manager, view);
} }

View File

@ -46,7 +46,7 @@ public:
/** /**
* @brief Constructor * @brief Constructor
*/ */
LayoutViewFunctions (db::Manager *manager, lay::LayoutViewBase *view); LayoutViewFunctions (db::Manager *manager, lay::LayoutView *view);
/** /**
* @brief Destructor * @brief Destructor

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 ()), : 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) 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) : MarkerBase (view), mp_trans_vector (0), mp_view (view), m_cv_index (cv_index)
{ {
// .. nothing yet .. // .. 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 () : GenericMarkerBase (view, cv_index), m_draw_outline (draw_outline), m_max_shapes (max_shapes), m_inst ()
{ {
// .. nothing yet .. // .. 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 () : GenericMarkerBase (view, cv_index), m_shape ()
{ {
// .. nothing yet .. // .. 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) : GenericMarkerBase (view, cv_index), m_draw_outline (draw_outline), m_max_shapes (max_shapes)
{ {
m_type = None; 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) : MarkerBase (view), mp_view (view)
{ {
m_type = None; m_type = None;

View File

@ -44,7 +44,7 @@
namespace lay namespace lay
{ {
class LayoutViewBase; class LayoutView;
/** /**
* @brief The marker base class * @brief The marker base class
@ -59,7 +59,7 @@ public:
/** /**
* @brief The constructor * @brief The constructor
*/ */
MarkerBase (lay::LayoutViewBase *view); MarkerBase (lay::LayoutView *view);
/** /**
* @brief Get the color by which the marker is drawn * @brief Get the color by which the marker is drawn
@ -232,7 +232,7 @@ protected:
bool m_text_enabled; bool m_text_enabled;
lay::ViewOp::Shape m_vertex_shape; lay::ViewOp::Shape m_vertex_shape;
int m_line_style, m_dither_pattern, m_frame_pattern; 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 * @brief The constructor
*/ */
GenericMarkerBase (lay::LayoutViewBase *view, unsigned int cv_index); GenericMarkerBase (lay::LayoutView *view, unsigned int cv_index);
/** /**
* @brief The destructor * @brief The destructor
@ -321,7 +321,7 @@ public:
/** /**
* @brief Gets the view object * @brief Gets the view object
*/ */
lay::LayoutViewBase *view () const lay::LayoutView *view () const
{ {
return mp_view; return mp_view;
} }
@ -344,7 +344,7 @@ public:
private: private:
db::CplxTrans m_trans; db::CplxTrans m_trans;
std::vector<db::DCplxTrans> *mp_trans_vector; std::vector<db::DCplxTrans> *mp_trans_vector;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
unsigned int m_cv_index; unsigned int m_cv_index;
/** /**
@ -367,7 +367,7 @@ public:
/** /**
* @brief The constructor * @brief The constructor
*/ */
ShapeMarker (lay::LayoutViewBase *view, unsigned int cv_index); ShapeMarker (lay::LayoutView *view, unsigned int cv_index);
/** /**
* @brief The destructor * @brief The destructor
@ -418,7 +418,7 @@ public:
* @param draw_outline True to have instances drawing their outline * @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) * @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 * @brief The destructor
@ -508,7 +508,7 @@ public:
* @param draw_outline True to have instances drawing their outline * @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) * @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 * @brief The destructor
@ -743,7 +743,7 @@ public:
/** /**
* @brief The constructor * @brief The constructor
*/ */
DMarker (lay::LayoutViewBase *view); DMarker (lay::LayoutView *view);
/** /**
* @brief The destructor * @brief The destructor
@ -806,7 +806,7 @@ private:
void *any; void *any;
} m_object; } m_object;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
}; };
} }

View File

@ -28,7 +28,7 @@
namespace lay namespace lay
{ {
MouseTracker::MouseTracker (lay::LayoutViewBase *view) MouseTracker::MouseTracker (lay::LayoutView *view)
: lay::ViewService (view->view_object_widget ()), mp_view (view) : lay::ViewService (view->view_object_widget ()), mp_view (view)
{ {
widget ()->grab_mouse (this, false); widget ()->grab_mouse (this, false);

View File

@ -31,17 +31,17 @@ class QMouseEvent;
namespace lay { namespace lay {
class LayoutCanvas; class LayoutCanvas;
class LayoutViewBase; class LayoutView;
class MouseTracker class MouseTracker
: public lay::ViewService : public lay::ViewService
{ {
public: public:
MouseTracker (lay::LayoutViewBase *view); MouseTracker (lay::LayoutView *view);
virtual bool mouse_move_event (const db::DPoint &p, unsigned int buttons, bool prio); virtual bool mouse_move_event (const db::DPoint &p, unsigned int buttons, bool prio);
private: private:
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
}; };
} }

View File

@ -34,7 +34,7 @@ namespace lay
// ------------------------------------------------------------- // -------------------------------------------------------------
// MoveService implementation // MoveService implementation
MoveService::MoveService (lay::LayoutViewBase *view) MoveService::MoveService (lay::LayoutView *view)
: lay::ViewService (view->view_object_widget ()), : lay::ViewService (view->view_object_widget ()),
m_dragging (false), m_dragging (false),
m_dragging_transient (false), m_dragging_transient (false),

View File

@ -31,13 +31,13 @@
namespace lay { namespace lay {
class Editables; class Editables;
class LayoutViewBase; class LayoutView;
class MoveService : class MoveService :
public lay::ViewService public lay::ViewService
{ {
public: public:
MoveService (lay::LayoutViewBase *view); MoveService (lay::LayoutView *view);
~MoveService (); ~MoveService ();
virtual bool configure (const std::string &name, const std::string &value); virtual bool configure (const std::string &name, const std::string &value);
@ -59,7 +59,7 @@ private:
bool m_dragging; bool m_dragging;
bool m_dragging_transient; bool m_dragging_transient;
lay::Editables *mp_editables; lay::Editables *mp_editables;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
double m_global_grid; double m_global_grid;
db::DPoint m_shift; db::DPoint m_shift;
db::DPoint m_mouse_pos; db::DPoint m_mouse_pos;

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")))); 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); return new lay::NetlistBrowserDialog (root, view);
} }

View File

@ -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_show_all;
extern const std::string cfg_l2ndb_window_state; 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::Browser (root, vw),
lay::ViewService (vw->view_object_widget ()), lay::ViewService (vw->view_object_widget ()),
Ui::NetlistBrowserDialog (), Ui::NetlistBrowserDialog (),

View File

@ -42,7 +42,7 @@ class NetlistBrowserDialog
Q_OBJECT Q_OBJECT
public: public:
NetlistBrowserDialog (lay::Dispatcher *root, lay::LayoutViewBase *view); NetlistBrowserDialog (lay::Dispatcher *root, lay::LayoutView *view);
~NetlistBrowserDialog (); ~NetlistBrowserDialog ();
void load (int lay_index, int cv_index); void load (int lay_index, int cv_index);

View File

@ -242,7 +242,7 @@ NetlistBrowserPage::set_highlight_style (lay::Color color, int line_width, int v
} }
void void
NetlistBrowserPage::set_view (lay::LayoutViewBase *view, int cv_index) NetlistBrowserPage::set_view (lay::LayoutView *view, int cv_index)
{ {
if (mp_view) { if (mp_view) {
mp_view->layer_list_changed_event.remove (this, &NetlistBrowserPage::layer_list_changed); 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)) { if (dialog->exec_dialog (mp_plugin_root)) {
// NOTE: mp_view and database might get reset to 0 in create_layout // 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 (); db::LayoutToNetlist *database = mp_database.get ();
unsigned int cv_index = view->create_layout (true); unsigned int cv_index = view->create_layout (true);

View File

@ -86,7 +86,7 @@ public:
* If that pointer is non-null, the browser will attach itself to * 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. * 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 * @brief Attaches the page to a L2N DB
@ -224,7 +224,7 @@ private:
int m_marker_dither_pattern; int m_marker_dither_pattern;
int m_marker_intensity; int m_marker_intensity;
bool m_use_original_colors; bool m_use_original_colors;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
unsigned int m_cv_index; unsigned int m_cv_index;
lay::Dispatcher *mp_plugin_root; lay::Dispatcher *mp_plugin_root;
tl::weak_ptr<db::LayoutToNetlist> mp_database; tl::weak_ptr<db::LayoutToNetlist> mp_database;

View File

@ -22,7 +22,7 @@
#include "layParsedLayerSource.h" #include "layParsedLayerSource.h"
#include "layLayoutViewBase.h" #include "layLayoutView.h"
#include "tlString.h" #include "tlString.h"
#include "tlGlobPattern.h" #include "tlGlobPattern.h"

View File

@ -48,7 +48,7 @@ namespace lay
class Plugin; class Plugin;
class Dispatcher; class Dispatcher;
class LayoutViewBase; class LayoutView;
class ViewService; class ViewService;
class Editable; class Editable;
class Drawing; class Drawing;
@ -302,7 +302,7 @@ public:
* This method may return 0 for "dummy" plugins that just register menu entries * This method may return 0 for "dummy" plugins that just register menu entries
* or configuration options. * 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; 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. * 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 .. // .. no pages in the default implementation ..
} }

View File

@ -37,7 +37,7 @@ namespace lay
// ------------------------------------------------------------- // -------------------------------------------------------------
// SelectionService implementation // SelectionService implementation
SelectionService::SelectionService (lay::LayoutViewBase *view) SelectionService::SelectionService (lay::LayoutView *view)
: QObject (), : QObject (),
lay::ViewService (view->view_object_widget ()), lay::ViewService (view->view_object_widget ()),
mp_view (view), mp_view (view),

View File

@ -38,7 +38,7 @@
namespace lay { namespace lay {
class RubberBox; class RubberBox;
class LayoutViewBase; class LayoutView;
class LayoutCanvas; class LayoutCanvas;
class LAYBASIC_PUBLIC SelectionService : class LAYBASIC_PUBLIC SelectionService :
@ -52,7 +52,7 @@ Q_OBJECT
#endif #endif
public: public:
SelectionService (lay::LayoutViewBase *view); SelectionService (lay::LayoutView *view);
~SelectionService (); ~SelectionService ();
void set_colors (lay::Color background, lay::Color color); void set_colors (lay::Color background, lay::Color color);
@ -88,7 +88,7 @@ private:
db::DPoint m_p1, m_p2; db::DPoint m_p1, m_p2;
db::DPoint m_current_position; db::DPoint m_current_position;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
lay::RubberBox *mp_box; lay::RubberBox *mp_box;
unsigned int m_color; unsigned int m_color;
unsigned int m_buttons; unsigned int m_buttons;

View File

@ -23,7 +23,7 @@
#include "laySnap.h" #include "laySnap.h"
#include "layLayoutViewBase.h" #include "layLayoutView.h"
#include "dbEdge.h" #include "dbEdge.h"
@ -282,7 +282,7 @@ public:
* This will run the finder on the given view. * This will run the finder on the given view.
* "search_range" is the search range in micron units. * "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) { if (! view) {
return; return;
@ -586,7 +586,7 @@ private:
} }
void 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; db::Box touch_box = t.inverted () * m_region;
@ -727,7 +727,7 @@ private:
}; };
static PointSnapToObjectResult 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); db::DPoint dp (pt);
@ -792,7 +792,7 @@ do_obj_snap (lay::LayoutViewBase *view, const db::DPoint &pt, const db::DVector
} }
static TwoPointSnapToObjectResult 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 dp1 (pt1);
db::DPoint dp2 (pt2); db::DPoint dp2 (pt2);
@ -915,13 +915,13 @@ make_cutlines (lay::angle_constraint_type snap_mode, const db::DPoint &p1, std::
} }
PointSnapToObjectResult 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> ()); return do_obj_snap (view, pt, grid, snap_range, std::vector<db::DEdge> ());
} }
PointSnapToObjectResult 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; std::vector <db::DEdge> cutlines;
make_cutlines (snap_mode, p1, 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 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); return obj_snap2 (view, pt, pt, grid, min_search_range, max_search_range);
} }
TwoPointSnapToObjectResult 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); return obj_snap2 (view, pt, pt, grid, ac, min_search_range, max_search_range);
} }
TwoPointSnapToObjectResult 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 dp1 = lay::snap_xy (pt1, grid);
db::DPoint dp2 = lay::snap_xy (pt2, 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 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 dp1 = lay::snap_xy (pt1, grid);
db::DPoint dp2 = lay::snap_xy (pt2, grid); db::DPoint dp2 = lay::snap_xy (pt2, grid);

View File

@ -41,7 +41,7 @@
namespace lay namespace lay
{ {
class LayoutViewBase; class LayoutView;
/** /**
* @brief An angle constraint type * @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 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 * @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" * @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. * 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. * "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) * @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 * 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. * 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 * @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. * 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 * @brief Same than the previous obj_snap2, but allows specification of an angle constraint
* *
* Measurements will be confined to the direction specified. * 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 * @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. * 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 * @brief Reduce a given vector according to the angle constraint

View File

@ -31,7 +31,7 @@ namespace lay
// ------------------------------------------------------------- // -------------------------------------------------------------
// ZoomService implementation // ZoomService implementation
ZoomService::ZoomService (lay::LayoutViewBase *view) ZoomService::ZoomService (lay::LayoutView *view)
: lay::ViewService (view->view_object_widget ()), : lay::ViewService (view->view_object_widget ()),
mp_view (view), mp_view (view),
mp_box (0), mp_box (0),

View File

@ -30,7 +30,7 @@
namespace lay namespace lay
{ {
class LayoutViewBase; class LayoutView;
class LayoutCanvas; class LayoutCanvas;
class RubberBox; class RubberBox;
@ -38,7 +38,7 @@ class LAYBASIC_PUBLIC ZoomService
: public lay::ViewService : public lay::ViewService
{ {
public: public:
ZoomService (lay::LayoutViewBase *view); ZoomService (lay::LayoutView *view);
~ZoomService (); ~ZoomService ();
void set_colors (lay::Color background, lay::Color text); void set_colors (lay::Color background, lay::Color text);
@ -55,7 +55,7 @@ private:
db::DPoint m_p1, m_p2; db::DPoint m_p1, m_p2;
db::DBox m_vp; db::DBox m_vp;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
lay::RubberBox *mp_box; lay::RubberBox *mp_box;
unsigned int m_color; unsigned int m_color;
}; };

View File

@ -84,11 +84,8 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
SOURCES = \ SOURCES = \
gsiDeclLayDialogs.cc \ gsiDeclLayDialogs.cc \
gsiDeclLayLayoutView.cc \
gsiDeclLayMarker.cc \
gsiDeclLayMenu.cc \ gsiDeclLayMenu.cc \
gsiDeclLayNetlistBrowserDialog.cc \ gsiDeclLayNetlistBrowserDialog.cc \
gsiDeclLayPlugin.cc \
gsiDeclLayStream.cc \ gsiDeclLayStream.cc \
gtf.cc \ gtf.cc \
layAbstractMenu.cc \ layAbstractMenu.cc \
@ -105,7 +102,6 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
layBusy.cc \ layBusy.cc \
layCellSelectionForm.cc \ layCellSelectionForm.cc \
layCellTreeModel.cc \ layCellTreeModel.cc \
layCellView.cc \
layConfigurationDialog.cc \ layConfigurationDialog.cc \
layConverters.cc \ layConverters.cc \
layCursor.cc \ layCursor.cc \
@ -178,7 +174,6 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
layBusy.h \ layBusy.h \
layCellSelectionForm.h \ layCellSelectionForm.h \
layCellTreeModel.h \ layCellTreeModel.h \
layCellView.h \
layConfigurationDialog.h \ layConfigurationDialog.h \
layConverters.h \ layConverters.h \
layColor.h \ layColor.h \
@ -240,9 +235,13 @@ DEFINES += MAKE_LAYBASIC_LIBRARY
SOURCES += \ SOURCES += \
gsiDeclLayLayers.cc \ gsiDeclLayLayers.cc \
gsiDeclLayLayoutView.cc \
gsiDeclLayMarker.cc \
gsiDeclLayPlugin.cc \
layAnnotationShapes.cc \ layAnnotationShapes.cc \
layBitmap.cc \ layBitmap.cc \
layBitmapRenderer.cc \ layBitmapRenderer.cc \
layCellView.cc \
layColor.cc \ layColor.cc \
layColorPalette.cc \ layColorPalette.cc \
layDispatcher.cc \ layDispatcher.cc \
@ -283,6 +282,7 @@ HEADERS += \
layAnnotationShapes.h \ layAnnotationShapes.h \
layBitmap.h \ layBitmap.h \
layBitmapRenderer.h \ layBitmapRenderer.h \
layCellView.h \
layColorPalette.h \ layColorPalette.h \
layDispatcher.h \ layDispatcher.h \
layDisplayState.h \ layDisplayState.h \

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")))); 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); return new rdb::MarkerBrowserDialog (root, view);
} }

View File

@ -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_halo;
extern std::string cfg_rdb_marker_dither_pattern; 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), : lay::Browser (root, vw),
Ui::MarkerBrowserDialog (), Ui::MarkerBrowserDialog (),
m_context (rdb::AnyCell), m_context (rdb::AnyCell),
@ -806,7 +806,7 @@ MarkerBrowserDialog::scan_layer ()
} }
unsigned int rdb_index = view ()->add_rdb (rdb.release ()); 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 void
@ -882,7 +882,7 @@ MarkerBrowserDialog::scan_layer_flat ()
} }
unsigned int rdb_index = view ()->add_rdb (rdb.release ()); 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 void

View File

@ -38,7 +38,7 @@ class MarkerBrowserDialog
Q_OBJECT Q_OBJECT
public: public:
MarkerBrowserDialog (lay::Dispatcher *root, lay::LayoutViewBase *view); MarkerBrowserDialog (lay::Dispatcher *root, lay::LayoutView *view);
~MarkerBrowserDialog (); ~MarkerBrowserDialog ();
void load (int rdb_index, int cv_index); void load (int rdb_index, int cv_index);

View File

@ -1620,7 +1620,7 @@ MarkerBrowserPage::set_marker_style (lay::Color color, int line_width, int verte
} }
void void
MarkerBrowserPage::set_view (lay::LayoutViewBase *view, unsigned int cv_index) MarkerBrowserPage::set_view (lay::LayoutView *view, unsigned int cv_index)
{ {
mp_view = view; mp_view = view;
m_cv_index = cv_index; m_cv_index = cv_index;

View File

@ -78,7 +78,7 @@ public:
* If that pointer is non-null, the browser will attach itself to * 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. * 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 * @brief Attach the page to a RDB
@ -184,7 +184,7 @@ private:
rdb::Database *mp_database; rdb::Database *mp_database;
bool m_show_all; bool m_show_all;
QAction *m_show_all_action; QAction *m_show_all_action;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
unsigned int m_cv_index; unsigned int m_cv_index;
std::vector<lay::DMarker *> mp_markers; std::vector<lay::DMarker *> mp_markers;
db::DBox m_markers_bbox; db::DBox m_markers_bbox;

View File

@ -494,9 +494,9 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{ {
return new BooleanOperationsPlugin (root, view->ui ()); return new BooleanOperationsPlugin (root, view);
} }
}; };

View File

@ -103,9 +103,9 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{ {
return new DiffPlugin (root, view->ui ()); return new DiffPlugin (root, view);
} }
}; };

View File

@ -76,9 +76,9 @@ public:
menu_entries.push_back (lay::menu_item ("lay::edit_layer_stack", "edit_layer_stack", "tools_menu.end", tl::to_string (QObject::tr ("Edit Layer Stack")))); menu_entries.push_back (lay::menu_item ("lay::edit_layer_stack", "edit_layer_stack", "tools_menu.end", tl::to_string (QObject::tr ("Edit Layer Stack"))));
} }
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
{ {
return new NetTracerDialog (root, view->ui ()); return new NetTracerDialog (root, view);
} }
}; };

View File

@ -67,7 +67,7 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{ {
return new D25View (root, view); return new D25View (root, view);
} }

View File

@ -38,7 +38,7 @@ namespace lay
const double initial_elevation = 15.0; const double initial_elevation = 15.0;
D25View::D25View (lay::Dispatcher *root, LayoutViewBase *view) D25View::D25View (lay::Dispatcher *root, LayoutView *view)
: lay::Browser (root, view, "d25_view"), : lay::Browser (root, view, "d25_view"),
dm_rerun_macro (this, &D25View::rerun_macro), dm_rerun_macro (this, &D25View::rerun_macro),
dm_fit (this, &D25View::fit) dm_fit (this, &D25View::fit)

View File

@ -57,7 +57,7 @@ class D25View
Q_OBJECT Q_OBJECT
public: public:
D25View (lay::Dispatcher *root, lay::LayoutViewBase *view); D25View (lay::Dispatcher *root, lay::LayoutView *view);
~D25View (); ~D25View ();
virtual void menu_activated (const std::string &symbol); virtual void menu_activated (const std::string &symbol);

View File

@ -711,7 +711,7 @@ D25ViewWidget::finish ()
} }
void void
D25ViewWidget::attach_view (LayoutViewBase *view) D25ViewWidget::attach_view (LayoutView *view)
{ {
mp_view = view; mp_view = view;
} }

View File

@ -57,7 +57,7 @@ namespace tl
namespace lay namespace lay
{ {
class LayoutViewBase; class LayoutView;
class LayerPropertiesNode; class LayerPropertiesNode;
class D25ViewWidget; class D25ViewWidget;
@ -106,7 +106,7 @@ public:
void mouseReleaseEvent (QMouseEvent *event); void mouseReleaseEvent (QMouseEvent *event);
void mouseMoveEvent (QMouseEvent *event); void mouseMoveEvent (QMouseEvent *event);
void attach_view(lay::LayoutViewBase *view); void attach_view(lay::LayoutView *view);
QVector3D hit_point_with_scene(const QVector3D &line_dir); QVector3D hit_point_with_scene(const QVector3D &line_dir);
void refresh (); void refresh ();
@ -187,7 +187,7 @@ private:
double m_scale_factor; double m_scale_factor;
double m_vscale_factor; double m_vscale_factor;
QVector3D m_displacement; QVector3D m_displacement;
lay::LayoutViewBase *mp_view; lay::LayoutView *mp_view;
db::DBox m_bbox; db::DBox m_bbox;
double m_zmin, m_zmax; double m_zmin, m_zmax;
bool m_zset; bool m_zset;

View File

@ -111,9 +111,9 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutViewBase *view) const lay::Plugin *create_plugin (db::Manager *, lay::Dispatcher *root, lay::LayoutView *view) const
{ {
return new XORPlugin (root, view->ui ()); return new XORPlugin (root, view);
} }
}; };