ActivityIndicatorRecipe::ActivityIndicatorRecipe(Container *parent) :
        CustomControl(parent)
{
    // The recipe Container
    Container *recipeContainer = new Container();
    recipeContainer->setLeftPadding(20.0);
    recipeContainer->setRightPadding(20.0);

    // The introduction text
    TextArea *introText = new TextArea();
    introText->setText((const QString) "This is a milk boiling simulator recipe");
    introText->setEditable(false);
    introText->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    introText->setBottomMargin(100);

    Container* smashContainer = new Container();
    smashContainer->setLayout(new DockLayout());

    // Create the unbroken egg ImageView
    mUnbroken = ImageView::create("asset:///images/stockcurve/egg.png");

    // Center the unbroken egg image
    mUnbroken->setHorizontalAlignment(HorizontalAlignment::Center);
    mUnbroken->setVerticalAlignment(VerticalAlignment::Center);

    // Since this broken egg image is on top of the unbroken egg image, we can hide
    // this image by changing the opacity value of this image.
    mBroken = ImageView::create("asset:///images/stockcurve/broken_egg.png").opacity(0.0);

    // Center the brown egg image (same as unbroken one)
    mBroken->setHorizontalAlignment(HorizontalAlignment::Center);
    mBroken->setVerticalAlignment(VerticalAlignment::Center);

    mActivityIndicator = new ActivityIndicator();
    mActivityIndicator->setPreferredSize(130, 130);

    smashContainer->add(mUnbroken);
    smashContainer->add(mActivityIndicator);
    smashContainer->add(mBroken);

    mButton = new Button();
    mButton->setTopMargin(100);
    mButton->setText((const QString) "start cooking");
    connect(mButton, SIGNAL(clicked()), this, SLOT(onClicked()));

    // Add the controls to the recipe Container and set it as root.
    recipeContainer->add(introText);
    recipeContainer->add(smashContainer);

    recipeContainer->add(mButton);

    setRoot(recipeContainer);

}
ProgressIndicatorRecipe::ProgressIndicatorRecipe(Container *parent) :
        CustomControl(parent)
{
    // The recipe Container.
    Container *recipeContainer = new Container();
    StackLayout *recipeLayout = new StackLayout();
    recipeLayout->setLeftPadding(20.0);
    recipeLayout->setRightPadding(20.0);
    recipeContainer->setLayout(recipeLayout);
    
    // The introduction text.
    TextArea *introText = new TextArea();
    introText->setText((const QString) "Drag the slider to change the ProgressIndicator");
    introText->setEditable(false);
    introText->textStyle()->setColor(Color::Gray);
    introText->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    introText->setBottomMargin(100);
    
    mProgressIndicator = new ProgressIndicator();
    mProgressIndicator->setFromValue(0);
    mProgressIndicator->setToValue(100);
    connect(mProgressIndicator, SIGNAL(valueChanged(float)), this, SLOT(onValueChanged(float)));
    
    
    // Create a Slider and connect a slot to the signal for Slider value changing.
    Slider *slider = new Slider();
    slider->setTopMargin(100);
    slider->setFromValue(0);
    slider->setToValue(100);
    // Connect the Slider value directly to the value property of the ProgressIndicator.
    QObject::connect(slider, SIGNAL(valueChanging(float)), mProgressIndicator, SLOT(setValue(float)));
    
    // Create a Slider and connect a slot to the signal for Slider value changing.
    mButton = new Button();
    mButton->setText((const QString) "Pause");
    connect(mButton, SIGNAL(clicked()), this, SLOT(onClicked()));
    
    
    // Add the controls to the recipe Container and set it as root.
    recipeContainer->add(introText);
    recipeContainer->add(mProgressIndicator);
    recipeContainer->add(slider);
    recipeContainer->add(mButton);
 
    setRoot(recipeContainer);
}
ActivityIndicatorRecipe::ActivityIndicatorRecipe(Container *parent) :
CustomControl(parent)
{
    // The recipe Container.
    Container *recipeContainer = new Container();
    StackLayout *recipeLayout = new StackLayout();
    recipeLayout->setLeftPadding(20.0);
    recipeLayout->setRightPadding(20.0);
    recipeContainer->setLayout(recipeLayout);
    
    // The introduction text.
    TextArea *introText = new TextArea();
    introText->setText((const QString) "This is a milk boiling simulator recepie");
    introText->setEditable(false);
    introText->textStyle()->setColor(Color::Gray);
    introText->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    introText->setBottomMargin(100);
     
    Container* smashContainer = new Container();
    smashContainer->setLayout(new DockLayout());
    
    
    // This the big image that was taking during the night
    // it's at the same position as the day one, but further from the viewer.
    mUnbroken = ImageView::create("asset:///images/stockcurve/egg.png");
    
    // Center it using dock layout info.
    mUnbroken->setLayoutProperties( DockLayoutProperties::create()
                                   .horizontal(HorizontalAlignment::Center)
                                   .vertical(VerticalAlignment::Center));
    
    // Since this image is on top of the night one, we can hide the
    // night image with changing the opacity value of this image.
    mBroken = ImageView::create("asset:///images/stockcurve/broken_egg.png").opacity(0.0);
    
    // Center it using dock layout info.
    mBroken->setLayoutProperties( DockLayoutProperties::create()
                                 .horizontal(HorizontalAlignment::Center)
                                 .vertical(VerticalAlignment::Center));
    
    mActivityIndicator = new ActivityIndicator();
    mActivityIndicator->setPreferredSize(130, 130);
    
    smashContainer->add(mUnbroken);
    smashContainer->add(mActivityIndicator);
    smashContainer->add(mBroken);
     
    mButton = new Button();
    mButton->setTopMargin(100);
    mButton->setText((const QString) "start cooking");
    connect(mButton, SIGNAL(clicked()), this, SLOT(onClicked()));
    
    
    // Add the controls to the recipe Container and set it as root.
    recipeContainer->add(introText);
    recipeContainer->add(smashContainer);
    
    recipeContainer->add(mButton);
    
    setRoot(recipeContainer);
    
    
}