void InputSample::initialize() { setMultiTouch(true); // Load font _font = Font::create("res/ui/arial.gpb"); assert(_font); // Reuse part of the gamepad texture as the crosshair in this sample. _crosshair = SpriteBatch::create("res/png/gamepad.png"); _crosshairDstRect.set(0, 0, 256, 256); _crosshairSrcRect.set(256, 0, 256, 256); _crosshairLowerLimit.set(-_crosshairSrcRect.width / 2.0f, -_crosshairSrcRect.height / 2.0f); _crosshairUpperLimit.set((float)getWidth(), (float)getHeight()); _crosshairUpperLimit += _crosshairLowerLimit; // Create input sample controls _keyboardState = false; _inputSampleControls = Form::create("res/common/inputs.form"); static_cast<Button*>(_inputSampleControls->getControl("showKeyboardButton"))->addListener(this, Listener::CLICK); static_cast<Button*>(_inputSampleControls->getControl("captureMouseButton"))->addListener(this, Listener::CLICK); if (!hasMouse()) { static_cast<Button*>(_inputSampleControls->getControl("captureMouseButton"))->setVisible(false); } _inputSampleControls->getControl("restoreMouseLabel")->setVisible(false); _mousePoint.set(-100, -100); // Create a 3D form that responds to raw sensor inputs. // For this, we will need a scene with a camera node. Camera* camera = Camera::createPerspective(45.0f, (float)getWidth() / (float)getHeight(), 0.25f, 100.0f); _scene = Scene::create(); Node* cameraNode = _scene->addNode("Camera"); cameraNode->setCamera(camera); _scene->setActiveCamera(camera); SAFE_RELEASE(camera); _formNodeParent = _scene->addNode("FormParent"); _formNode = Node::create("Form"); _formNodeParent->addChild(_formNode); Theme* theme = _inputSampleControls->getTheme(); Form* form = Form::create("testForm", theme->getStyle("basicContainer"), Layout::LAYOUT_ABSOLUTE); form->setSize(225, 100); Label* label = Label::create("sensorLabel", theme->getStyle("iconNoBorder")); label->setPosition(25, 15); label->setSize(175, 50); label->setText("Raw sensor response (accel/gyro)"); form->addControl(label); label->release(); _formNode->setScale(0.0015f, 0.0015f, 1.0f); _formNodeRestPosition.set(0, 0, -1.5f); _formNodeParent->setTranslation(_formNodeRestPosition); _formNode->setTranslation(-0.2f, -0.2f, 0); _formNode->setDrawable(form); form->release(); }
void FormsSample::createSampleForm() { Form* form = Form::create("testForm", NULL); form->setSize(600, 600); Label* label = Label::create("testLabel"); label->setPosition(50, 50); label->setSize(200, 50); label->setText(L"Label:"); form->addControl(label); label->release(); Button* button = Button::create("opacityButton"); button->setPosition(45, 100); button->setSize(200, 100); button->setText(L"This is a button. Click to change its opacity."); button->addListener(this, Control::Listener::CLICK); form->addControl(button); button->release(); form->setEnabled(false); _forms.push_back(form); }