#pragma once #include #include struct HtmlRenderDetails { int text_zone_width; QLocale* locale; }; class APBase { public: // maybe pass HtmlRenderDetails by reference (pointer) instead of by value? will have to be measured virtual QString get_html_render(HtmlRenderDetails render_info) = 0; // having a virtual destructor never hurts. see https://isocpp.org/wiki/faq/virtual-functions#virtual-dtors // it could always be removed by deleting the line below and removing the trivial destructors that are explicitly defined from classes that inherit from APBase. virtual ~APBase() {}; protected: QString object_url; // this URL represents generally the source of the object. for APObject & derived: object's URL, such as the Note/Statuses' URL for an APPost static const QString get_html_template(const QString& template_name); };