Linux版AzPainterでHSVカラーピッカーのスライダーとカラーマップを連動させる方法

f:id:kaiware-daikon:20140124184957p:plain

※AzPainter Ver.1.0.1でスライダーとカラーマップが連動するように修正されました。

Linux版AzPainterのHSVカラーピッカーは、カラーマップから色を変更するとスライダーの値も連動して変化しますが、逆にスライダーから色を変更してもカラーマップは変化しません。これを修正するには

azpainter-1.0.0/src/win/CColorWin.cpp

内のCColWin_hsv::onNotify()関数内にm_pPicker->setColor(col)を追加すると良いようです。

BOOL CColWin_hsv::onNotify(AXWindow *pwin,UINT uNotify,ULONG lParam)
{
    UINT id = pwin->getItemID();
    DWORD col;

    if(pwin == m_pPicker)
    {
        (省略)
    }
    else if(id >= ID_BAR1 && id < ID_BAR1 + 3)
    {
        //バー

        double s,v;

        s = m_pbar[1]->getPos() / 255.0;
        v = m_pbar[2]->getPos() / 255.0;

        col = AXHSVtoRGB(m_pbar[0]->getPos(), s, v);

        m_pPicker->setColor(col);    /* <<<<<<<<<< 追加 */
        
        getNotify()->onNotify(this, 0, col);
    }

    return TRUE;
}

あと修正後のmakeとmake installを忘れないように。