Cleanup
[carla.git] / source / includes / vst3sdk / pluginterfaces / gui / iplugviewcontentscalesupport.h
blob532c94105e29d2cc916b3464c6f6ad5bc0fb0a26
1 //-----------------------------------------------------------------------------
2 // Project : SDK Core
3 //
4 // Category : SDK GUI Interfaces
5 // Filename : pluginterfaces/gui/iplugviewcontentscalesupport.h
6 // Created by : Steinberg, 06/2016
7 // Description : Plug-in User Interface Scaling
8 //
9 //-----------------------------------------------------------------------------
10 // This file is part of a Steinberg SDK. It is subject to the license terms
11 // in the LICENSE file found in the top-level directory of this distribution
12 // and at www.steinberg.net/sdklicenses.
13 // No part of the SDK, including this file, may be copied, modified, propagated,
14 // or distributed except according to the terms contained in the LICENSE file.
15 //-----------------------------------------------------------------------------
17 #pragma once
19 #include "pluginterfaces/base/funknown.h"
21 //------------------------------------------------------------------------
22 #include "pluginterfaces/base/falignpush.h"
23 //------------------------------------------------------------------------
25 //------------------------------------------------------------------------
26 namespace Steinberg {
28 //------------------------------------------------------------------------
29 /** Plug-in view content scale support
30 \ingroup pluginGUI vstIPlug vst366
31 - [plug impl]
32 - [extends IPlugView]
33 - [released: 3.6.6]
34 - [optional]
36 This interface communicates the content scale factor from the host to the plug-in view on
37 systems where plug-ins cannot get this information directly like Microsoft Windows.
39 The host calls setContentScaleFactor directly after the plug-in view is attached and when the scale
40 factor changes (system change or window moved to another screen with different scaling settings).
41 The host could call setContentScaleFactor in a different context, for example: scaling the
42 plug-in editor for better readability.
43 When a plug-in handles this (by returning kResultTrue), it needs to scale the width and height of
44 its view by the scale factor and inform the host via a IPlugFrame::resizeView(), the host will then
45 call IPlugView::onSize().
47 Note that the host is allowed to call setContentScaleFactor() at any time the IPlugView is valid.
49 class IPlugViewContentScaleSupport : public FUnknown
51 public:
52 //------------------------------------------------------------------------
53 typedef float ScaleFactor;
55 virtual tresult PLUGIN_API setContentScaleFactor (ScaleFactor factor) = 0;
56 //------------------------------------------------------------------------
57 static const FUID iid;
60 DECLARE_CLASS_IID (IPlugViewContentScaleSupport, 0x65ED9690, 0x8AC44525, 0x8AADEF7A, 0x72EA703F)
62 //------------------------------------------------------------------------
63 } // namespace Steinberg
65 //------------------------------------------------------------------------
66 #include "pluginterfaces/base/falignpop.h"
67 //------------------------------------------------------------------------