Button::Button() { imageView.reset(new ImageView); imageView->name("buttonIcon"); imageView->resizeOnImageChange = false; imageView->composite(false); imageView->backgroundColor(whiteColor); addSubview(imageView); titleLabel.reset(new Label); titleLabel->backgroundColor(clearColor); titleLabel->name("buttonTitle"); titleLabel->composite(false); addSubview(titleLabel); _state = ButtonStateReleased; updateFromState(); addEventHandler(ET_MouseDown, [this](Event* event) { mouseDown(event); }, EP_Bubble); addEventHandler(ET_MouseUpInside , [this](Event* event) { mouseUpInside(event); }, EP_Bubble); addEventHandler(ET_MouseUpOutside, [this](Event* event) { mouseUpOutside(event); }, EP_Bubble); name("Button"); layer->composite(true); }
AudioProcessorEditor* AdmvAudioProcessor::createEditor() { auto editor = new AdmvAudioProcessorEditor (this); editor->updateFromState(mState); return editor; }
void Button::image(const ImagePtr& v, ButtonState s) { state2image[s] = v; updateFromState(); }
void Button::background(const ImagePtr& v, ButtonState s) { state2background[s] = v; updateFromState(); }
void Button::titleColor(const Color& v, ButtonState s) { state2titleColor[s] = v; updateFromState(); }
void Button::title(const string& v, ButtonState s) { state2title[s] = v; updateFromState(); }
void Button::state(ButtonState v) { _state = v; updateFromState(); }