//==============================================================================
    void componentMovedOrResized (bool /*wasMoved*/, bool /*wasResized*/)
    {
        Component* const topComp = owner.getTopLevelComponent();

        if (topComp->getPeer() != nullptr)
            setControlBounds (topComp->getLocalArea (&owner, owner.getLocalBounds()));
    }
bool ActiveXControlComponent::createControl (const void* controlIID)
{
    deleteControl();
    ComponentPeer* const peer = getPeer();

    // the component must have already been added to a real window when you call this!
    jassert (dynamic_cast <Win32ComponentPeer*> (peer) != nullptr);

    if (dynamic_cast <Win32ComponentPeer*> (peer) != nullptr)
    {
        const Point<int> pos (getTopLevelComponent()->getLocalPoint (this, Point<int>()));
        HWND hwnd = (HWND) peer->getNativeHandle();

        ScopedPointer<Pimpl> newControl (new Pimpl (hwnd, *this));

        HRESULT hr;
        if ((hr = OleCreate (*(const IID*) controlIID, IID_IOleObject, 1 /*OLERENDER_DRAW*/, 0,
                             newControl->clientSite, newControl->storage,
                             (void**) &(newControl->control))) == S_OK)
        {
            newControl->control->SetHostNames (L"Juce", 0);

            if (OleSetContainedObject (newControl->control, TRUE) == S_OK)
            {
                RECT rect;
                rect.left = pos.getX();
                rect.top = pos.getY();
                rect.right = pos.getX() + getWidth();
                rect.bottom = pos.getY() + getHeight();

                if (newControl->control->DoVerb (OLEIVERB_SHOW, 0, newControl->clientSite, 0, hwnd, &rect) == S_OK)
                {
                    control = newControl;
                    setControlBounds (Rectangle<int> (pos.getX(), pos.getY(), getWidth(), getHeight()));

                    control->controlHWND = ActiveXHelpers::getHWND (this);

                    if (control->controlHWND != 0)
                    {
                        originalWndProc = (void*) (pointer_sized_int) GetWindowLongPtr ((HWND) control->controlHWND, GWLP_WNDPROC);
                        SetWindowLongPtr ((HWND) control->controlHWND, GWLP_WNDPROC, (LONG_PTR) Pimpl::activeXHookWndProc);
                    }

                    return true;
                }
            }
        }
    }

    return false;
}
Example #3
0
void CWaveLayers::UpdateControls(CLayer::LayerParams LP)
{
    setControlBounds(LP);
    foreach(QWidget* w,findChildren<QWidget*>()) w->blockSignals(true);
    ui->VolSpin->setValue(LP.Volume);
    ui->LowVelFullSpin->setValue(LP.LowerTop);
    ui->HighVelFullSpin->setValue(LP.UpperTop);
    ui->LowVelXSpin->setValue(LP.LowerZero);
    ui->HighVelXSpin->setValue(LP.UpperZero);
    ui->TransposeSpin->setValue(LP.Transpose);
    ui->TuneSpin->setValue(LP.Tune);
    foreach(QWidget* w,findChildren<QWidget*>()) w->blockSignals(false);
    m_Sampler->setLayerParams(LP);
}
Example #4
0
void CWaveLayers::UpdateGraph()
{
    CLayer::LayerParams LP;
    LP.Volume=ui->VolSpin->value();
    if (ui->HighVelFullSpin->value() > ui->HighVelXSpin->value()) ui->HighVelXSpin->setValue(ui->HighVelFullSpin->value());
    if (ui->LowVelFullSpin->value() < ui->LowVelXSpin->value()) ui->LowVelXSpin->setValue(ui->LowVelFullSpin->value());
    LP.LowerTop=ui->LowVelFullSpin->value();
    LP.UpperTop=ui->HighVelFullSpin->value();
    LP.LowerZero=ui->LowVelXSpin->value();
    LP.UpperZero=ui->HighVelXSpin->value();
    LP.Transpose=ui->TransposeSpin->value();
    LP.Tune=ui->TuneSpin->value();
    m_Sampler->setLayerParams(LP);
    setControlBounds(LP);
    ui->LayersControl->Draw();
}
 //==============================================================================
 void componentMovedOrResized (bool /*wasMoved*/, bool /*wasResized*/) override
 {
     if (ComponentPeer* const peer = owner.getTopLevelComponent()->getPeer())
         setControlBounds (peer->getAreaCoveredBy (owner));
 }