DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

SubWidgetPrivateData.hpp (2043B)


      1 /*
      2  * DISTRHO Plugin Framework (DPF)
      3  * Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com>
      4  *
      5  * Permission to use, copy, modify, and/or distribute this software for any purpose with
      6  * or without fee is hereby granted, provided that the above copyright notice and this
      7  * permission notice appear in all copies.
      8  *
      9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
     10  * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
     11  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
     12  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
     13  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
     14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     15  */
     16 
     17 #ifndef DGL_SUBWIDGET_PRIVATE_DATA_HPP_INCLUDED
     18 #define DGL_SUBWIDGET_PRIVATE_DATA_HPP_INCLUDED
     19 
     20 #include "../SubWidget.hpp"
     21 
     22 START_NAMESPACE_DGL
     23 
     24 // --------------------------------------------------------------------------------------------------------------------
     25 
     26 struct SubWidget::PrivateData {
     27     SubWidget* const self;
     28     Widget* const selfw;
     29     Widget* const parentWidget;
     30     Point<int> absolutePos;
     31     Point<int> margin;
     32     bool needsFullViewportForDrawing; // needed for widgets drawing out of bounds
     33     bool needsViewportScaling; // needed for NanoVG
     34     bool skipDrawing; // for context reuse in NanoVG based guis
     35     double viewportScaleFactor; // auto-scaling for NanoVG
     36 
     37     explicit PrivateData(SubWidget* const s, Widget* const pw);
     38     ~PrivateData();
     39 
     40     // NOTE display function is different depending on build type, must call displaySubWidgets at the end
     41     void display(uint width, uint height, double autoScaleFactor);
     42 
     43     DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PrivateData)
     44 };
     45 
     46 // --------------------------------------------------------------------------------------------------------------------
     47 
     48 END_NAMESPACE_DGL
     49 
     50 #endif // DGL_SUBWIDGET_PRIVATE_DATA_HPP_INCLUDED