チェックボックスの実装

VST GUIにおけるチェックボックスコントロールの実装

VST GUIにおいてチェックボックスコントロールを実装する方法を説明いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

チェックボックスコントロールは下記のようなコントロールです。クリックするごとにチェック・未チェックを切り替えることができます。
チェックボックスが未チェックの時に値は0.0となり、チェックされている時に1.0になります。また、GUI上からは操作できませんが0.5の時にハーフチェックという状態にもなります。

チェックボックスコントロールを実装するには、VST GUIクラスのopen()関数内でチェックボックスコントロールを生成する処理を追記いたします。
コントロールを生成する処理は関数にしております。関数作成自体は必須ではありませんが、複数のコントロールを作る場合などに便利なためです。

【guieditor.cpp】

createCheckbox()関数の引数には、パラメータID、座標(x、y)、チェックボックスに表示する文字列(UTF-8)を指定するようにしています。
(UTF8StringPtr型はconst char*を再定義したものになります。)

createCheckbox()関数ではまず、チェックボックスコントロールのサイズをCRect sizeに設定します。
また、このsizeはコントロールサイズだけでなくフレーム上の配置位置も兼ねています。CRectのoffset()関数を使用して位置を設定します。

配置位置・サイズが決まれば、チェックボックスコントロール用のクラスであるCCheckBoxクラスを作成します。
CCheckBoxクラスのコンストラクタには、「サイズ」「VST GUIクラスのポインタ」「パラメータID」「表示する文字列」の順に指定します。

これでチェックボックスコントロールが作成できるので、パラメータの現在の値をチェックボックスコントロールに反映します。

最後は必要に応じてフォントや文字・背景色等を設定し、フレームに登録すれば表示させることができます。
今回はSDKで定義済みのフォントと色を指定しています。定義済みフォントと色は下記に一覧を記載しております。

作成したコントロール生成処理関数がコントロールのポインタを返すのは、後で他のコントロールと同期させたりするのに利用するためです。

また、VST GUIクラスのopen()関数内での呼び出しは下記のようにします。
注意点として、指定する文字列はダブルクォーテーションの前に「u8」プレフィックスを付けてUTF-8の文字列としてください。
(VST GUIでは文字列をUTF-8で扱っているためです。)
【guieditor.cpp】

以上でチェックボックスコントロールを追加することができます。

上記以外にもVST3.6についての情報があります。下記をご参照ください。

また、質問やご指摘はコメント欄や掲示板Twitterでいただけばとおもいます。

掲示板
■Twitterアカウント:@vstcpp   URL:https://twitter.com/vstcppps://twitter.com/vstcpp”>https://twitter.com/vstcpp


コメントを残す