テキストラベルの実装

VST GUIにおけるテキストラベルコントロールの実装

VST GUIにおいてテキストを表示させる方法を説明いたします。テキストを表示させるにはテキストラベルコントロールを利用いたします。
なお、VST GUIの基本的な作成方法として下記をご理解いただいている前提で進めさせていただきます。

テキストラベルコントロールは下記のようなコントロールです。コントロールといいつつも、操作することはできません。(パラメーターの値を変えたりすることはできません。)

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

【guieditor.cpp】

createTextLabel()関数の引数には、フレーム(描画領域)上の位置を指定するための座標(x、y)と表示するテキスト(UTF-8)を指定するようにしています。
テキストラベルコントロールはパラメータの値を変えたりできませんのでパラメータIDは不要です。
(UTF8StringPtr型はconst char*を再定義したものになります。)

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

配置位置・サイズが決まれば、テキストラベルコントロール用のクラスであるCTextLabelクラスを作成します。
CTextLabelクラスのコンストラクタには、「サイズ」「表示させるテキスト」の順に指定します。

これでテキストラベルコントロールが作成できるので、フォントや文字・背景色等を設定し、フレームに登録すれば表示させることができます。
今回はSDKで定義済みのフォントと色を指定しています。定義済みフォントと色は下記に一覧を記載しております。

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

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

以上でテキストラベルコントロールを追加することができます。

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

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

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


コメントを残す