/* KLayout Layout Viewer Copyright (C) 2006-2022 Matthias Koefferlein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef HDR_layD25View #define HDR_layD25View #include #include "tlObject.h" #include "layBrowser.h" #include "layViewOp.h" namespace Ui { class D25View; } namespace lay { class LayoutView; } namespace db { class Region; struct LayerProperties; } namespace lay { class D25View : public lay::Browser { Q_OBJECT public: D25View (lay::Dispatcher *root, lay::LayoutView *view); ~D25View (); virtual void menu_activated (const std::string &symbol); virtual void deactivated (); virtual void activated (); static D25View *open (lay::LayoutView *view); void close (); void clear (); void begin (const std::string &generator); void open_display (const color_t *frame_color, const color_t *fill_color, const db::LayerProperties *like); void close_display (); void entry (const db::Region &data, double dbu, double zstart, double zstop); void finish (); protected: void accept (); void reject (); private slots: void fit_button_clicked (); void scale_factor_changed (double f); void scale_slider_changed (int value); void scale_value_edited (); void vscale_factor_changed (double f); void vscale_slider_changed (int value); void vscale_value_edited (); void init_failed (); void rerun_button_pressed (); private: Ui::D25View *mp_ui; tl::DeferredMethod dm_rerun_macro; tl::DeferredMethod dm_fit; std::string m_generator; void cellviews_changed (); void layer_properties_changed (int); void rerun_macro (); void fit (); }; } #endif