// Copyright (C) 2010, Guy Barrand. All rights reserved. // See the file tools.license for terms. #ifndef tools_viewplot #define tools_viewplot #include "sg/plots_viewer" #include "sg/dummy_freetype" #include "sg/plotter_style" #include "wps" namespace tools { class viewplot : public sg::plots_viewer { typedef sg::plots_viewer parent; public: viewplot(std::ostream& a_out, unsigned int a_cols = 1,unsigned int a_rows = 1, unsigned int a_width = 500,unsigned int a_height = 500) :parent(a_out,m_ttf,a_cols,a_rows,a_width,a_height) ,m_wps(a_out) ,m_ttf() ,m_styles(a_out) {} viewplot(std::ostream& a_out,const sg::base_freetype& a_ttf, unsigned int a_cols = 1,unsigned int a_rows = 1, unsigned int a_width = 500,unsigned int a_height = 500) :parent(a_out,a_ttf,a_cols,a_rows,a_width,a_height) ,m_wps(a_out) ,m_ttf() ,m_styles(a_out) {} virtual ~viewplot() {} public: viewplot(const viewplot& a_from) :parent(a_from) ,m_wps(a_from.m_out) ,m_styles(a_from.m_styles) {} viewplot& operator=(const viewplot& a_from){ parent::operator=(a_from); m_styles = a_from.m_styles; return *this; } public: #ifdef tools_viewplot //deprecated, use set_current_plotter_style(). void style_from_res(const std::string& a_path,bool a_verbose = false) { style_from_res(a_path,m_plots.current_plotter(),a_verbose); } #endif void set_current_plotter_style(const std::string& a_path,bool a_verbose = false) { style_from_res(a_path,m_plots.current_plotter(),a_verbose); } public: void set_cols_rows(unsigned int a_cols,unsigned int a_rows) { m_plots.cols = a_cols; m_plots.rows = a_rows; m_plots.adjust_size(width(),height()); } //#ifdef tools_viewplot bool write(const std::string& a_file,bool a_anonymous = false) { return parent::write_inzb_ps(a_file,a_anonymous); } bool open_file(const std::string& a_file,bool a_anonymous = false) {return open_inzb_ps_file(a_file,a_anonymous);} bool write_page() {return write_inzb_ps_page();} bool close_file() {return close_inzb_ps_file();} //#endif const xml::styles& styles() const {return m_styles;} xml::styles& styles() {return m_styles;} protected: void style_from_res(const std::string& a_path,sg::plotter& a_plotter,bool a_verbose) { sg::style_from_res(m_styles,a_path,a_plotter,a_verbose); } protected: sg::zb_manager m_mgr; wps m_wps; sg::dummy_freetype m_ttf; xml::styles m_styles; }; } #endif