diff --git a/model/godleyTab.h b/model/godleyTab.h index 171ae76c7..01e6a099c 100644 --- a/model/godleyTab.h +++ b/model/godleyTab.h @@ -28,7 +28,7 @@ namespace minsky class GodleyTab: public ItemTab { public: - bool itemSelector(ItemPtr i) override {if (auto g=dynamic_cast(i.get())) {return g->editorMode();}; return false;} + bool itemSelector(ItemPtr i) override {if (dynamic_cast(i.get())) return true; return false;} }; } diff --git a/model/itemTab.cc b/model/itemTab.cc index 5c25f3234..9fcd9b27b 100644 --- a/model/itemTab.cc +++ b/model/itemTab.cc @@ -18,6 +18,7 @@ along with Minsky. If not, see . */ #include "itemTab.h" +#include "godleyTableWindow.h" #include "latexMarkup.h" #include "group.h" #include @@ -41,7 +42,7 @@ namespace minsky { itemVector.emplace_back(*i); if (auto p=(*i)->plotWidgetCast()) itemCoords.emplace(make_pair(*i,make_pair(p->x(),p->y()))); - if (auto g=dynamic_cast(i->get())) itemCoords.emplace(make_pair(*i,make_pair(g->x(),g->y()))); + if (auto g=dynamic_cast(i->get())) itemCoords.emplace(make_pair(*i,make_pair(g->x(),g->y()))); } return false; }); @@ -149,7 +150,7 @@ namespace minsky { float d=sqr((i.second).first+offsx-x)+sqr((i.second).second+offsy-y); float z=i.first->zoomFactor(); - float w=0.5*i.first->iWidth()*z,h=0.5*i.first->iHeight()*z; + float w=0.5*i.first->iWidth()*z,h=0.5*i.first->iHeight()*z; if (ddraw(cairo); } - else if (auto g=dynamic_cast(it.get())) + else if (auto g=dynamic_pointer_cast(it)) { cairo::CairoSave cs(cairo); if (it==itemFocus) { cairo_translate(cairo,xItem,yItem); itemCoords.erase(itemFocus); itemCoords.emplace(make_pair(itemFocus,make_pair(xItem,yItem))); - } else cairo_translate(cairo,itemCoords[it].first,itemCoords[it].second); - g->draw(cairo); + } else cairo_translate(cairo,itemCoords[it].first,itemCoords[it].second); + auto godley=GodleyTableWindow(g); + godley.disableButtons(); + godley.draw(cairo); } } } diff --git a/model/itemTab.h b/model/itemTab.h index d1737be0a..29e8ecab9 100644 --- a/model/itemTab.h +++ b/model/itemTab.h @@ -76,7 +76,7 @@ namespace minsky void togglePlotDisplay() const; void displayDelayedTooltip(float x, float y); - ~ItemTab() {} + virtual ~ItemTab() {} }; }