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();
    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);

}
Exemple #3
0
Container *Intro::setUpExampleUI()
{
    // A small example UI, illustrating some of the core controls.
    // The UI is arranged using a Container with a stack layout.
    Container *exampleUI = new Container();
    StackLayout *exampleUILayout = new StackLayout();

    exampleUI->setLayout(exampleUILayout);

    // A TextArea with text input functionality
    TextArea *exampleTextArea = new TextArea();
    exampleTextArea->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    exampleTextArea->setHorizontalAlignment(HorizontalAlignment::Fill);

    // An example of a Slider
    Slider *exampleSlider = new Slider();
    exampleSlider->setValue(0.5f);
    exampleSlider->setHorizontalAlignment(HorizontalAlignment::Left);
    exampleSlider->setVerticalAlignment(VerticalAlignment::Bottom);

    // A ToggleButton
    ToggleButton *exampleToggle = new ToggleButton();
    exampleToggle->setHorizontalAlignment(HorizontalAlignment::Right);

    // A regular Button
    Button *exampleButton = new Button();
    exampleButton->setText("Button");

    // Container for the buttons
    Container *buttonContainer = new Container();
    DockLayout *buttonContainerLayout = new DockLayout();

    buttonContainer->setLayout(buttonContainerLayout);
    buttonContainer->setHorizontalAlignment(HorizontalAlignment::Fill);

    // Adding the buttons to the container.
    buttonContainer->add(exampleToggle);
    buttonContainer->add(exampleButton);

    // Add the Controls to the Container, the layouting is done using
    // layout properties and margins of each control (see code above).
    exampleUI->add(exampleTextArea);
    exampleUI->add(exampleSlider);
    exampleUI->add(buttonContainer);

    return exampleUI;
}
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);
    
    
}
InputRecipe::InputRecipe(Container *parent) :
        CustomControl(parent)
{
    bool connectResult;
    Q_UNUSED(connectResult);

    ScrollView *scrollView = new ScrollView();
    ScrollViewProperties* scrollViewProp = scrollView->scrollViewProperties();
    scrollViewProp->setScrollMode(ScrollMode::Vertical);

    Container *recipeContainer = Container::create().left(80).right(80);

    // Label used to display the entered text
    mInputLabel = new Label();
    mInputLabel->setMultiline(true);
    mInputLabel->setText((const QString) " ");
    mInputLabel->setHorizontalAlignment(HorizontalAlignment::Fill);
    mInputLabel->setBottomMargin(50.0);
    mInputLabel->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());

    // A multi line text input
    TextArea *textArea = new TextArea();
    textArea->setHintText("Enter text into multi-line TextArea");
    textArea->setPreferredHeight(140);
    textArea->setBottomMargin(50.0);
    textArea->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    textArea->setHorizontalAlignment(HorizontalAlignment::Fill);

    // Connect the TextArea textChanging signal to the onTextChanging function to update the text.
    connectResult = connect(textArea, SIGNAL(textChanging(const QString &)), this,
            SLOT(onTextChanging(const QString &)));
    Q_ASSERT(connectResult);

    // A single line input field with a clear functionality
    TextField *textField = new TextField();
    textField->setHintText("Enter text into a single line TextField");
    textField->setHorizontalAlignment(HorizontalAlignment::Fill);
    textField->setBottomMargin(50.0);

    // Connect the TextField textChanging signal to the onTextChanging function to update the text.
    connectResult = connect(textField, SIGNAL(textChanging(const QString &)), this,
            SLOT(onTextChanging(const QString &)));
    Q_ASSERT(connectResult);

    // A disabled text field
    TextField *disabledTextField = new TextField();
    disabledTextField->setHintText("This is a disabled text field");
    disabledTextField->setEnabled(false);
    disabledTextField->setHorizontalAlignment(HorizontalAlignment::Fill);
    disabledTextField->setBottomMargin(50.0);

    // Add the controls to the recipe Container and ScrollView and set it as the CustomControl root.
    scrollView->setContent(recipeContainer);
    recipeContainer->add(mInputLabel);
    recipeContainer->add(textField);
    recipeContainer->add(disabledTextField);
    recipeContainer->add(textArea);

    //recipeContainer->add(inputContainer);
    setRoot(scrollView);
}
InputRecipe::InputRecipe(Container *parent) :
        CustomControl(parent)
{

    Container *recipeContainer = new Container();
    StackLayout *recipeLayout = new StackLayout();
    recipeContainer->setLayout(recipeLayout);
    recipeLayout->setLeftPadding(80);
    recipeLayout->setRightPadding(80);

    // Label used to display the entered text.
    mInputLabel = new Label();
    mInputLabel->setText((const QString) " ");
    mInputLabel->setLayoutProperties(
            StackLayoutProperties::create().horizontal(HorizontalAlignment::Fill));
    mInputLabel->setBottomMargin(50.0);
    mInputLabel->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    
    // A multi line text input.
    TextArea *textArea = new TextArea();
    textArea->setHintText("Enter text into multi-line TextArea");
    textArea->setMinHeight(120.0f);
    textArea->setMaxHeight(200.0f);
    textArea->setPreferredHeight(0);
    textArea->setBottomMargin(50.0);
    textArea->textStyle()->setBase(SystemDefaults::TextStyles::bodyText());
    textArea->setLayoutProperties(
            StackLayoutProperties::create().horizontal(HorizontalAlignment::Fill));


    // Connect to the textChanged (to update text).
    connect(textArea, SIGNAL(textChanging(const QString &)), this,
            SLOT(onTextChanging(const QString &)));

    // A single line input field with a clear functionality.
    TextField *textField = new TextField();
    textField->setHintText("Enter text into a single line TextField");
    textField->setLayoutProperties(
            StackLayoutProperties::create().horizontal(HorizontalAlignment::Fill));
    textField->setBottomMargin(50.0);

    // Connect to the textChanged (to update text).
    connect(textField, SIGNAL(textChanging(const QString &)), this,
            SLOT(onTextChanging(const QString &)));

    // A disabled text field.
    TextField *disabledTextField = new TextField();
    disabledTextField->setHintText("This is a disabled text field");
    disabledTextField->setEnabled(false);
    disabledTextField->setLayoutProperties(
            StackLayoutProperties::create().horizontal(HorizontalAlignment::Fill));
    disabledTextField->setBottomMargin(50.0);

    // Add the controls to the recipe Container and set it as the CustomControl root.
    recipeContainer->add(mInputLabel);
    recipeContainer->add(textField);
    recipeContainer->add(disabledTextField);
    recipeContainer->add(textArea);

    //recipeContainer->add(inputContainer);
    setRoot(recipeContainer);
}