チュートリアルアプリケーション・ウィンドウ
このチュートリアルでは、アプリケーション・ウィンドウを持つ最小限のアプリケーションを作成する方法と、そのウィンドウのサイズと外観をカスタマイズする方法を示します。これは、あらゆるJUCE GUIアプリケーションにとって重要です。
レベル初心者
プラットフォーム:Windows, macOS, Linux
クラス: JUCEApplication,DocumentWindow,ResizableWindow
スタート
Projucerを起動し、次の名前で新しいGUIアプリケーション・プロジェクトを作成します。メインウィンドウチュートリアル.での自動生成するファイル:フィールドでMain.cppファイルのみを作成する.
このステップでヘルプが必要な場合は、以下を参照してください。Tutorial: Projucer Part 1: Getting started with the Projucer.
を変更する。MainWindowTutorialApplication
クラスには以下が含まれる。MainWindow
クラスを以下のように変更した:
//==============================================================================
class MainWindowTutorialApplication : public juce::JUCEApplication
{
public:
//...
//==============================================================================
class MainWindow : public juce::DocumentWindow
{
public:
MainWindow (juce::String name) : DocumentWindow (name,
juce::Colours::lightgrey,
DocumentWindow::allButtons)
{
centreWithSize (300, 200);
setVisible (true);
}
void closeButtonPressed() override
{
juce::JUCEApplication::getInstance()->systemRequestedQuit();
}
private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow)
};
private:
std::unique_ptr mainWindow;
};
DocumentWindowA resizable window with a title bar and maximise, minimise and close buttons.Definition juce_DocumentWindow.h:67
nameint UnityEventModifiers const char * nameDefinition juce_UnityPluginInterface.h:204
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...Definition juce_PlatformDefs.h:262
ColoursContains a set of predefined named colours (mostly standard HTML colours)Definition juce_Colours.h:46
juceDefinition juce_AudioWorkgroup_mac.h:36
以下の行をinitialise()
関数である:
void initialise (const juce::String& commandLine) override
{
mainWindow.reset (new MainWindow (getApplicationName()));
}
最後に、以下の行をshutdown()
関数である:
void shutdown() override
{
mainWindow = nullptr;
}
デモ・プロジェクト
デモ・プロジェクトは、ソース・ファイルが1つしかない非常に最小限のJUCEアプリです:Main.cpp
.このアプリが行うのは、空のアプリケーション・ウィンドウを作成して表示することだけです。アプリを実行すると、このウィンドウが開くはずです:
このウィンドウをドラッグして移動したり、最大化・最小化したり、閉じてJUCEアプリを終了することができます。
このアプリのC++コードは、動作するアプリに必要な最小限のコードに過ぎない。アプリケーション・クラスそのものはJUCEApplicationクラス)については、後のチュートリアルで取り上げる。今のところ、このアプリが実際に行っているのは、アプリのMainWindowTutorialApplication::initialise()
関数である:
void initialise (const juce::String& commandLine) override
{
mainWindow.reset (new MainWindow (getApplicationName()));
}
の新しいインスタンスを作成する。MainWindow
クラスで、アプリケーション・ウィンドウが表示される。
アプリケーションのinitialise()
関数が実行される。
メインウィンドウの実装
MainWindowクラス
では、この実装を見てみよう。MainWindow
クラスを継承している。これはJUCEDocumentWindowクラス、タイトル・バーのあるサイズ変更可能なウィンドウ、最大化、最小化、閉じるボタン。これらはすべて、アプリケーション・ウィンドウに期待される要素です。
一般的には、このようにしてアプリケーションのさまざまなコンポーネントを実装します。必要な機能を提供する適切なJUCE基本クラスを継承した新しいクラスを作成します。この新しいクラスでは、その上に独自のカスタム機能を追加することができます。
についてMainWindow
コンストラクタは以下のように定義されている:
MainWindow (juce::String name) : DocumentWindow (name,
juce::Colours::lightgrey,
DocumentWindow::allButtons)
{
centreWithSize (300, 200);
setVisible (true);
}