Catalogue des éléments

English version: CONTROLS.md

Tous les types sont dans l'espace de noms PluginUI. Les contrôles à valeur dérivent de ValueControl : liaison à un IParameter (Parameter = …), geste VST3 complet, réinitialisation par double-clic ou Ctrl+clic (ResetOnDoubleClick, ResetOnControlClick), saisie de la valeur au clavier pour Knob et Slider (double-clic sur le texte de la valeur, Alt+clic, double-clic droit ou Entrée, au choix par TextEntryTriggers ; nombres toujours avec le point décimal), molette, flèches, Maj pour le réglage fin, bulle de valeur (ShowValueBubble), habillage (Skin) et style (Style). La colonne « Équivalent » indique la classe VSTGUI ou iPlug2 correspondante.

Versions de référence des équivalents : VSTGUI 4.15.1 (SDK VST 3 3.8.1) et iPlug2 master du 18 octobre 2026 (commit 39ea73a, après le tag v1.0.0-beta).

Rotatifs

Élément Points clés Équivalent
Knob Styles Arc / Classic / Minimal, mode bipolaire (IsBipolar, BipolarCenter), arc de modulation (ModulationAmount), graduations, glisser vertical/horizontal, saisie au clavier (double-clic sur la valeur, Alt+clic…), film-strip et SVG via Skin CKnob, CAnimKnob, IVKnobControl, IBKnobControl, ISVGKnobControl
EndlessKnob Encodeur sans fin : événement Turned(pas), pilotage optionnel d'un paramètre par StepSize, Wrap —

Linéaires

Élément Points clés Équivalent
Slider Vertical ou horizontal, bipolaire, poignées Cap/Round/Line/None, JumpToClick, graduations, libellé latéral, SliderHandleSkin (poignée bitmap) CSlider, IVSliderControl, IBSliderControl, ISVGSliderControl, CHorizontalSlider, CVerticalSlider
RangeSlider Deux bornes (Low/High, LowParameter/HighParameter), écart minimal, glisser de la bande IVRangeSliderControl
MultiSlider N barres, dessin à la souris (interpolé, Ctrl : ligne droite), bipolaire, pas, index en surbrillance, BindParameters IVMultiSliderControl
XYPad Deux paramètres édités dans des gestes simultanés, grille, réticule CXYPad, IVXYPadControl
ScrollBar Minimum/Maximum/ViewportSize/Value, flèches, pages avec répétition, masquage automatique CScrollbar
EnvelopeEditor ADSR à points déplaçables, quatre paramètres optionnels, axe temporel en racine carrée — (bonus)
CurveEditor Enveloppe / LFO multi-segments (MSEG) : points déplaçables, ajout et suppression par double-clic, courbure par segment, grille magnétique, curseur de lecture, Evaluate exact pour le moteur audio — (bonus)

Boutons et sélecteurs

Élément Points clés Équivalent
Button Texte et/ou icône (bitmap, SVG, IconRenderer), apparences Normal/Accent/Flat/Outline, répétition tant que pressé, paramètre momentané CKickButton, CTextButton, IVButtonControl, IBButtonControl (+ ImageStateSkin), ISVGButtonControl (+ SvgStateSkin)
ToggleButton OnText/OffText, LED, couleur d'état ; avec un FilmStripSkin, équivalent de CMovieButton COnOffButton, CMovieButton, IVToggleControl, ITextToggleControl, ISVGToggleControl
CheckBox Case animée + texte CCheckBox
Switch N positions, vertical/horizontal, sélection directe ou cyclique, film-strip par index d'état CHorizontalSwitch, IVSwitchControl, CVerticalSwitch, IBSwitchControl (+ FilmStripSkin), ISVGSwitchControl
SlideSwitch Interrupteur « pilule » animé IVSlideSwitchControl
SegmentedControl Segments en ligne ou colonne, surbrillance glissante CSegmentButton, IVTabSwitchControl
RadioGroup Liste de boutons radio IVRadioButtonControl
RockerSwitch Momentané −1/0/+1, répétition, pas d'un paramètre CRockerSwitch
MultiToggle Rangée de N bascules (séquenceur de portes), dessin par glisser, position de lecture IVMultiToggleControl
StepSequencer Valeurs par pas (dessin interpolé) + portes, longueur active, groupes de temps, pas joué, liaison à un paramètre par pas (un geste par paramètre touché) — (bonus)
ModulationSourceButton Pastille de source de modulation à glisser sur un contrôle qui accepte la modulation (AcceptsModulation, événement ModulationDropped) — (bonus, façon Serum / Vital)
Élément Points clés Équivalent
DropDown Éléments du paramètre ou liste explicite, sous-menus par séparateur ("Groupe/Élément"), molette et flèches, éléments non applicables masqués (IsItemAvailable) COptionMenu, IVMenuButtonControl
MenuButton Menu arbitraire (MenuItem), styles hamburger / points / texte + chevron IVMenuButtonControl
MenuPopup Menu dessiné : coches, raccourcis, séparateurs, sous-menus, clavier, saisie rapide, défilement IPopupMenuControl
NativeMenu Menu Win32 natif (UIHost.UseNativeMenus) COptionMenu (natif)
Menu contextuel du DAW Clic droit sur un contrôle lié : menu de l'hôte VST3 (IComponentHandler3), entrées propres ajoutables intégré à VSTGUI et iPlug2

Texte

Élément Points clés Équivalent
Label Une ou plusieurs lignes, alignements, TextSource rafraîchi à chaque image (texte temps réel) CTextLabel, CMultiLineTextLabel, ITextControl, IRTTextControl, IVLabelControl, IMultiLineTextControl
ValueDisplay Valeur du paramètre, saisie par double-clic ou Entrée, glisser optionnel CParamDisplay, ICaptionControl
NumberBox Glisser, molette, saisie, boutons −/+ IVNumberBoxControl
TextBox Saisie une ligne : sélection, presse-papiers, mots (Ctrl+flèches), filtre, longueur max., lecture seule, style recherche CTextEdit, CSearchTextEdit, ITextEntryControl
UIHost.BeginTextEdit Saisie sur place au-dessus de n'importe quel rectangle IEditableTextControl
SegmentDisplay Afficheur 7 segments vectoriel, segments éteints visibles, point décimal, inclinaison, lueur CSpecialDigit
Hyperlink Lien cliquable (navigateur par défaut) IURLControl
BitmapText, BitmapFont Texte en police bitmap à chasse fixe (LCD, VFD, pixel art), agrandissement entier sans lissage, segments éteints visibles, texte temps réel IBTextControl
Bulle de valeur ShowValueBubble sur tout ValueControl IBubbleControl

Mesure et visualisation

Élément Points clés Équivalent
LevelMeter 1 à 64 canaux, dégradé / segments / plein, crête + RMS, maintien de crête, indicateur d'écrêtage, échelle en dB, mode réduction de gain, sources PeakValue sans verrou, film-strip par Skin (une image par niveau, dessinée par canal) CVuMeter, IVMeterControl, IVLEDMeterControl, IVPeakAvgMeterControl, IBMeterControl (+ FilmStripSkin)
Led Luminosité, lueur, formes rondes ou carrées, source par fonction ILEDControl
Oscilloscope Lecture d'un AudioRingBuffer, déclenchement sur front montant, gain, remplissage, lueur IVScopeControl, IVDisplayControl
SpectrumAnalyzer FFT (Dsp.Fft), axe log 20 Hz–20 kHz, compensation de pente, lissage attaque/relâchement, maintien de crête, mode barres par fraction d'octave IVSpectrumAnalyzerControl, IVBarGraphSpectrumAnalyzerControl
Plot Fonctions ou listes de points, X logarithmique, remplissage, graduations automatiques (courbe d'égaliseur) IVPlotControl
ProgressBar Déterminée (avec pourcentage) ou indéterminée —
FpsCounter Images par seconde et durée d'image (débogage) IFPSDisplayControl
HistoryGraph Historique défilant d'une valeur (réduction de gain, enveloppe, LFO) : ligne, rempli ou barres, source PeakValue sans verrou ou fonction interrogée IVDisplayControl
ParametricEqEditor, EqBand Égaliseur paramétrique : courbe exacte des biquads RBJ, nœuds déplaçables (fréquence et gain en gestes parallèles), Q à la molette, menu de forme par bande, ajout et suppression, spectre en fond — (bonus)
FrequencyResponseView, ResponseCurve, ResponseNode Affichage de réponse pour tout filtre : courbes fournies par l'appelant, axe des fréquences logarithmique ou linéaire, axe gauche fixe et axe droit à échelle automatique (phase en multiples de π, retards), spectre d'entrée analysé (recouvrement 50 %, lissage en relâchement, dB en 20·log10 ou 6·log2) et spectre façonné par une réponse sans seconde FFT, nœuds liés aux paramètres, nœuds de bande définis par deux bords avec leurs propres poignées — (bonus)
CompressorCurve Courbe de transfert (seuil, ratio, genou doux), seuil et ratio réglables à la souris, niveau d'entrée en direct — (bonus)
LoudnessMeter + Dsp.LoudnessAnalyzer Sonie EBU R128 / BS.1770-4 : momentanée, court terme, intégrée (avec seuils), plage LRA, crête ; cible et tolérance — (bonus)
Goniometer, CorrelationMeter Image stéréo (Lissajous M/S) et corrélation de phase −1…+1 — (bonus)
Spectrogram Spectrogramme défilant, axe de fréquence logarithmique, carte de couleurs — (bonus)
WaveformView + Dsp.WavReader Forme d'onde multicanal : zoom et défilement, marqueurs début / fin / boucle liables à des paramètres, sélection, curseur de lecture, dépôt de fichier WAV — (bonus, échantillonneur)

MIDI

Élément Points clés Équivalent
PitchWheel, ModWheel (WheelControl) Molettes de pitch (retour au centre animé dans le même geste) et de modulation IWheelControl
PianoKeyboard Étendue configurable, glissando, vélocité selon la hauteur du clic, NoteOn/NoteOff, SetNoteState utilisable depuis n'importe quel thread, notes du processeur par ActivitySource (NoteActivity, sans verrou), jeu au clavier d'ordinateur ; dans un plugin NPlug, ConnectKeyboard envoie les notes au processeur KeyboardView, IVKeyboardControl

Conteneurs et mise en page

Élément Points clés Équivalent
Canvas Positionnement absolu (SetBounds) : la racine habituelle d'un éditeur CViewContainer
StackPanel, WrapPanel, DockPanel, UniformGrid Empilement, retour à la ligne, ancrage, grille régulière CRowColumnView
Grid Lignes/colonnes Auto / pixels / étoiles, fusion, espacements (new Grid("Auto,*", "120,*")) Flexbox iPlug2
Border, Panel Fond (couleur ou dégradé, équivalent de CGradientView), bordure, arrondi, ombre portée, marge interne CShadowViewContainer, IVPanelControl, IPanelControl
GroupBox Cadre titré, barre d'accent, repliable IVGroupControl
TabView Onglets en haut ou à gauche, indicateur animé, pages désactivables, Ctrl+Tab ; seule la page visible est attachée CTabView, IVTabbedPagesControl
ViewSwitcher Affiche un seul enfant à la fois, choisi par SelectedIndex ou par un paramètre lié (discret : indice du pas ; continu : valeur répartie sur les enfants) ; les vues masquées gardent leur état UIViewSwitchContainer
ScrollViewer Défilement vertical et horizontal, barres fines superposées, molette (Maj : horizontal), ScrollIntoView CScrollView
SplitView Deux volets et séparateur déplaçable CSplitView
ListBox Liste virtualisée, sélection simple ou étendue, clavier, recherche par frappe, réordonnancement par glisser CListControl, CStringList
DataTable Colonnes fixes ou étoiles, tri, redimensionnement, ajustement automatique, lignes virtualisées, édition de cellules CDataBrowser
CornerResizer Poignée de redimensionnement de l'éditeur (double-clic : 100 %) ICornerResizerControl
Separator, Spacer Ligne de séparation, espace fixe ou extensible —
LayeredPanel Calques superposés pleine taille, opacité composée par calque, BringToFront / SendToBack CLayeredViewContainer

Dialogues et sélecteurs

Élément Points clés Équivalent
ColorSwatch, ColorPicker, ColorPickerPopup Carré TS/V, teinte, alpha, saisie hexadécimale, couleurs récentes, Échap restaure CColorChooser, IColorPickerControl, IVColorSwatchControl
FilePathBox Chemin abrégé au milieu, dialogue natif (fichier, dossier, enregistrement), dépôt de fichiers CNewFileSelector, IDirBrowseControlBase
FileDialogs IFileOpenDialog / IFileSaveDialog —
ABCompareBar, ParameterSnapshot Comparaison A/B de réglages complets, copie vers l'autre emplacement, restauration par gestes — (bonus)
PresetBar, IPresetProvider, PresetList Précédent/suivant, menu par banque, Enregistrer / Enregistrer sous / Supprimer, Ctrl+S IVBakedPresetManagerControl, IVDiskPresetManagerControl
Dialog Dialogue modal, boutons par défaut et d'annulation, Dialog.ShowMessage —
AboutBox, SplashScreen Fenêtre « À propos », écran d'accueil qui s'efface en fondu CSplashScreen, IAboutBoxControl, CAnimationSplashScreen

Images et intégration

Élément Points clés Équivalent
ImageView Image ajustée (ImageFit) ou film-strip animé (boucle, aller-retour) CMovieBitmap, CAutoAnimation, IBitmapControl
SvgView SVG natif, ajustement, rotation ISVGControl
NativeWindowHost Incruste une fenêtre Win32 tierce (vidéo, WebView2 créée par l'application) CExternalView, IPlatformViewControl, CExternalControl

Habillages (Skins)

Habillage Usage
FilmStripSkin Film-strip : image choisie selon la valeur ou l'index d'état (CMultiFrameBitmap)
ImageStateSkin Une image par état : normal, actif, survol, enfoncé, désactivé
SvgRotarySkin Rotor SVG tourné selon la valeur, fond et reflet fixes
ImageRotarySkin Rotor bitmap tourné selon la valeur, fond et reflet fixes (IBKnobRotaterControl)
SvgStateSkin Un SVG par état ou par plage de valeur
NineSliceSkin Cadre bitmap étirable sans déformation des coins (CNinePartTiledBitmap)
SliderHandleSkin Poignée (et piste) bitmap pour Slider
DelegateSkin Dessin libre par une fonction (ILambdaControl)

Services transverses

Apprentissage MIDI (UIHost.MidiLearn, IMidiLearnService, MidiLearnService : entrées « MIDI Learn » / « Oublier l'affectation » dans le menu contextuel, y compris celui du DAW ; contour du contrôle en attente), langue de l'interface (UIHost.Language, tables UIStrings anglais / français, extensibles), nombres indépendants des paramètres régionaux (InvariantNumber), infobulles (ToolTip), menus contextuels (ContextMenu), glisser-déposer interne (UIHost.BeginDrag) et dépôt de fichiers (AllowFileDrop), animations (UIHost.Animator, courbes Easing), tickers par image, navigation au clavier (Tab, anneau de focus), presse-papiers, thèmes clair et sombre, mode d'édition en direct, rendu PNG hors écran, DSP d'affichage (Dsp.Fft, AudioRingBuffer, PeakValue, LevelBallistics).

Non inclus (volontairement)

Vue web WebView2 intégrée (IWebViewControl ; utilisez NativeWindowHost), shaders GPU (IShaderControl), vue OpenGL (COpenGLView), éditeur de code complet (éditeur de texte de VSTGUI), sélecteurs de police et de date (CFontChooser). Multi-touch (IMultiTouchControlBase) : PluginUI gère la souris, et le toucher à un doigt grâce à l'émulation de la souris par Windows.