Convert RID_CUI_DIALOG_COLORPICKER to .ui

Conflicts:
	extras/source/glade/libreoffice-catalog.xml.in

Change-Id: I161681859c924cc97afa9886b80005e70fa2a87c
Reviewed-on: https://gerrit.libreoffice.org/10210
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/cui/AllLangResTarget_cui.mk b/cui/AllLangResTarget_cui.mk
index 78d1ea0..cc4dffa 100644
--- a/cui/AllLangResTarget_cui.mk
+++ b/cui/AllLangResTarget_cui.mk
@@ -26,7 +26,6 @@ $(eval $(call gb_SrsTarget_add_files,cui/res,\
    cui/source/customize/acccfg.src \
    cui/source/customize/cfg.src \
    cui/source/customize/macropg.src \
    cui/source/dialogs/colorpicker.src \
    cui/source/dialogs/commonlingui.src \
    cui/source/dialogs/cuires.src \
    cui/source/dialogs/fmsearch.src \
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index e45a0ec..9ea8a74 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -36,9 +36,12 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
	cui/uiconfig/ui/cellalignment \
	cui/uiconfig/ui/certdialog \
	cui/uiconfig/ui/charnamepage \
	cui/uiconfig/ui/colorconfigwin \
	cui/uiconfig/ui/colorpage \
	cui/uiconfig/ui/colorpickerdialog \
	cui/uiconfig/ui/comment \
	cui/uiconfig/ui/connectortabpage \
	cui/uiconfig/ui/connpooloptions \
	cui/uiconfig/ui/croppage \
	cui/uiconfig/ui/cuiimapdlg \
	cui/uiconfig/ui/databaselinkdialog \
@@ -51,8 +54,6 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
	cui/uiconfig/ui/formatnumberdialog \
	cui/uiconfig/ui/fmsearchdialog \
	cui/uiconfig/ui/gradientpage \
	cui/uiconfig/ui/colorconfigwin \
	cui/uiconfig/ui/connpooloptions \
	cui/uiconfig/ui/customizedialog \
	cui/uiconfig/ui/dbregisterpage \
	cui/uiconfig/ui/distributiondialog \
diff --git a/cui/source/dialogs/colorpicker.cxx b/cui/source/dialogs/colorpicker.cxx
index cfe668b..4b11fb5 100644
--- a/cui/source/dialogs/colorpicker.cxx
+++ b/cui/source/dialogs/colorpicker.cxx
@@ -42,7 +42,6 @@
#include <sax/tools/converter.hxx>
#include <basegfx/color/bcolortools.hxx>
#include "dialmgr.hxx"
#include "colorpicker.hrc"
#include "colorpicker.hxx"
#include <cmath>
#include <limits>
@@ -134,7 +133,7 @@ static void RGBtoCMYK( double dR, double dG, double dB, double& fCyan, double& f
class HexColorControl : public Edit
{
public:
    HexColorControl( Window* pParent, const ResId& rResId );
    HexColorControl( Window* pParent, const WinBits& nStyle );

    virtual bool PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
    virtual void Paste() SAL_OVERRIDE;
@@ -146,12 +145,17 @@ private:
    bool ImplProcessKeyInput( const KeyEvent& rKEv );
};

HexColorControl::HexColorControl( Window* pParent, const ResId& rResId )
: Edit( pParent, rResId )
HexColorControl::HexColorControl( Window* pParent, const WinBits& nStyle )
: Edit( pParent, nStyle )
{
    SetMaxTextLen( 6 );
}

extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeHexColorControl(Window *pParent, VclBuilder::stringmap &)
{
    return new HexColorControl(pParent, WB_BORDER);
}

void HexColorControl::SetColor( sal_Int32 nColor )
{
    OUStringBuffer aBuffer;
@@ -257,7 +261,7 @@ bool HexColorControl::ImplProcessKeyInput( const KeyEvent& rKEv )
class ColorPreviewControl : public Control
{
public:
    ColorPreviewControl( Window* pParent, const ResId& rResId );
    ColorPreviewControl( Window* pParent, const WinBits& nStyle );

    virtual void        Paint( const Rectangle& rRect ) SAL_OVERRIDE;

@@ -266,13 +270,24 @@ private:
    Color maColor;
};

ColorPreviewControl::ColorPreviewControl( Window* pParent, const ResId& rResId )
: Control( pParent, rResId )
ColorPreviewControl::ColorPreviewControl( Window* pParent, const WinBits& nStyle )
: Control( pParent, nStyle )
{
    SetFillColor( maColor );
    SetLineColor( maColor );
}

extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeColorPreviewControl(Window *pParent, VclBuilder::stringmap &rMap)
{
    WinBits nBits = 0;

    OString sBorder = VclBuilder::extractCustomProperty(rMap);
    if (!sBorder.isEmpty())
        nBits |= WB_BORDER;

    return new ColorPreviewControl(pParent, nBits);
}

void ColorPreviewControl::SetColor( const Color& rCol )
{
    if( rCol != maColor )
@@ -295,7 +310,7 @@ const ColorMode DefaultMode = HUE;
class ColorFieldControl : public Control
{
public:
    ColorFieldControl( Window* pParent, const ResId& rResId );
    ColorFieldControl( Window* pParent, const WinBits& nStyle );
    virtual ~ColorFieldControl();

    virtual void        MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
@@ -305,6 +320,8 @@ public:
    virtual void        Paint( const Rectangle& rRect ) SAL_OVERRIDE;
    virtual void        Resize() SAL_OVERRIDE;

    virtual Size GetOptimalSize() const SAL_OVERRIDE;

    void                UpdateBitmap();
    void                ShowPosition( const Point& rPos, bool bUpdate );
    void                UpdatePosition();
@@ -333,8 +350,8 @@ private:
    std::vector< sal_uInt16 > maPercent_Vert;
};

ColorFieldControl::ColorFieldControl( Window* pParent, const ResId& rResId )
: Control( pParent, rResId )
ColorFieldControl::ColorFieldControl( Window* pParent, const WinBits& nStyle )
: Control( pParent, nStyle )
, meMode( DefaultMode )
, mdX( -1.0 )
, mdY( -1.0 )
@@ -348,6 +365,22 @@ ColorFieldControl::~ColorFieldControl()
    delete mpBitmap;
}

extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeColorFieldControl(Window *pParent, VclBuilder::stringmap &rMap)
{
    WinBits nBits = 0;

    OString sBorder = VclBuilder::extractCustomProperty(rMap);
    if (!sBorder.isEmpty())
        nBits |= WB_BORDER;

    return new ColorFieldControl(pParent, nBits);
}

Size ColorFieldControl::GetOptimalSize() const
{
    return LogicToPixel(Size(158, 158), MAP_APPFONT);
}

void ColorFieldControl::UpdateBitmap()
{
    const Size aSize( GetOutputSizePixel() );
@@ -500,6 +533,9 @@ void ColorFieldControl::ShowPosition( const Point& rPos, bool bUpdate )
        Invalidate();
    }

    if (!mpBitmap)
        return;

    const Size aSize( mpBitmap->GetSizePixel() );

    long nX = rPos.X();
@@ -663,7 +699,7 @@ void ColorFieldControl::UpdatePosition()
class ColorSliderControl : public Control
{
public:
    ColorSliderControl( Window* pParent, const ResId& rResId );
    ColorSliderControl( Window* pParent, const WinBits& nStyle );
    virtual ~ColorSliderControl();

    virtual void        MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
@@ -695,8 +731,8 @@ private:
    double mdValue;
};

ColorSliderControl::ColorSliderControl( Window* pParent, const ResId& rResId )
: Control( pParent, rResId )
ColorSliderControl::ColorSliderControl( Window* pParent, const WinBits& nStyle )
: Control( pParent, nStyle )
, meMode( DefaultMode )
, mpBitmap( 0 )
, mnLevel( 0 )
@@ -710,6 +746,17 @@ ColorSliderControl::~ColorSliderControl()
    delete mpBitmap;
}

extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeColorSliderControl(Window *pParent, VclBuilder::stringmap &rMap)
{
    WinBits nBits = 0;

    OString sBorder = VclBuilder::extractCustomProperty(rMap);
    if (!sBorder.isEmpty())
        nBits |= WB_BORDER;

    return new ColorSliderControl(pParent, nBits);
}

void ColorSliderControl::UpdateBitmap()
{
    Size aSize( 1, GetOutputSizePixel().Height() );
@@ -929,171 +976,129 @@ private:
    double mdCyan, mdMagenta, mdYellow, mdKey;

private:
    ColorFieldControl  maColorField;
    ColorSliderControl maColorSlider;
    ColorPreviewControl maColorPreview;
    ColorPreviewControl maColorPrevious;
    ColorFieldControl*    mpColorField;
    ColorSliderControl*   mpColorSlider;
    ColorPreviewControl*  mpColorPreview;
    ColorPreviewControl*  mpColorPrevious;

    FixedImage maFISliderLeft;
    FixedImage maFISliderRight;
    Image maSliderImage;
    FixedImage*   mpFISliderLeft;
    FixedImage*   mpFISliderRight;
    Image         maSliderImage;

#if 0
    ImageButton maBtnPicker;
#endif
    RadioButton*    mpRBRed;
    RadioButton*    mpRBGreen;
    RadioButton*    mpRBBlue;
    RadioButton*    mpRBHue;
    RadioButton*    mpRBSaturation;
    RadioButton*    mpRBBrightness;

    FixedLine maFLRGB;
    MetricField*        mpMFRed;
    MetricField*        mpMFGreen;
    MetricField*        mpMFBlue;
    HexColorControl*    mpEDHex;

    RadioButton maRBRed;
    RadioButton maRBGreen;
    RadioButton maRBBlue;
    RadioButton maRBHue;
    RadioButton maRBSaturation;
    RadioButton maRBBrightness;
    MetricField*    mpMFHue;
    MetricField*    mpMFSaturation;
    MetricField*    mpMFBrightness;

    FixedText maFTRed;
    MetricField maMFRed;
    FixedText maFTGreen;
    MetricField maMFGreen;
    FixedText maFTBlue;
    MetricField maMFBlue;
    FixedText maFTHex;
    HexColorControl maEDHex;

    FixedLine maFLHSB;
    FixedText maFTHue;
    MetricField maMFHue;
    FixedText maFTSaturation;
    MetricField maMFSaturation;
    FixedText maFTBrightness;
    MetricField maMFBrightness;

    FixedLine maFLCMYK;
    FixedText maFTCyan;
    MetricField maMFCyan;
    FixedText maFTMagenta;
    MetricField maMFMagenta;
    FixedText maFTYellow;
    MetricField maMFYellow;
    FixedText maFTKey;
    MetricField maMFKey;

    FixedLine maFLBottmLine;
    HelpButton maBTNHelp;
    OKButton maBTNOk;
    CancelButton maBTNCancel;
    MetricField*    mpMFCyan;
    MetricField*    mpMFMagenta;
    MetricField*    mpMFYellow;
    MetricField*    mpMFKey;
};

ColorPickerDialog::ColorPickerDialog( Window* pParent, sal_Int32 nColor, sal_Int16 nMode )
: ModalDialog( pParent, CUI_RES( RID_CUI_DIALOG_COLORPICKER ) )
: ModalDialog( pParent, "ColorPicker", "cui/ui/colorpickerdialog.ui" )
, maPreviousColor( nColor )
, mnDialogMode( nMode )
, meMode( DefaultMode )
, maColorField( this, CUI_RES( CT_COLORFIELD ) )
, maColorSlider( this, CUI_RES( CT_COLORSLIDER ) )
, maColorPreview( this, CUI_RES( CT_PREVIEW ) )
, maColorPrevious( this, CUI_RES( CT_PREVIOUS ) )
, maFISliderLeft(  this, CUI_RES( CT_LEFT_SLIDER ) )
, maFISliderRight( this, CUI_RES( CT_RIGHT_SLIDER ) )
, maSliderImage( CUI_RES( CT_SLIDERIMG ) )
#if 0
, maBtnPicker( this, CUI_RES( PB_PICKER ) )
#endif
, maFLRGB( this, CUI_RES( FL_RGB ) )
, maRBRed( this, CUI_RES( CT_RED ) )
, maRBGreen( this, CUI_RES( CT_GREEN ) )
, maRBBlue( this, CUI_RES( CT_BLUE ) )
, maRBHue( this, CUI_RES( CT_HUE ) )
, maRBSaturation( this, CUI_RES( CT_SATURATION ) )
, maRBBrightness( this, CUI_RES( CT_BRIGHTNESS ) )
, maFTRed( this, CUI_RES( CT_RED ) )
, maMFRed( this, CUI_RES( CT_RED ) )
, maFTGreen( this, CUI_RES( CT_GREEN ) )
, maMFGreen( this, CUI_RES( CT_GREEN ) )
, maFTBlue( this, CUI_RES( CT_BLUE ) )
, maMFBlue( this, CUI_RES( CT_BLUE ) )
, maFTHex( this, CUI_RES( CT_HEX ) )
, maEDHex( this, CUI_RES( CT_HEX ) )
, maFLHSB( this, CUI_RES( FL_HSB ) )
, maFTHue( this, CUI_RES( CT_HUE ) )
, maMFHue( this, CUI_RES( CT_HUE ) )
, maFTSaturation( this, CUI_RES( CT_SATURATION ) )
, maMFSaturation( this, CUI_RES( CT_SATURATION ) )
, maFTBrightness( this, CUI_RES( CT_BRIGHTNESS ) )
, maMFBrightness( this, CUI_RES( CT_BRIGHTNESS ) )
, maFLCMYK( this, CUI_RES( FL_CMYK ) )
, maFTCyan( this, CUI_RES( CT_CYAN ) )
, maMFCyan( this, CUI_RES( CT_CYAN ) )
, maFTMagenta( this, CUI_RES( CT_MAGENTA ) )
, maMFMagenta( this, CUI_RES( CT_MAGENTA ) )
, maFTYellow( this, CUI_RES( CT_YELLOW ) )
, maMFYellow( this, CUI_RES( CT_YELLOW ) )
, maFTKey( this, CUI_RES( CT_KEY ) )
, maMFKey( this, CUI_RES( CT_KEY ) )

, maFLBottmLine( this, CUI_RES( FT_BOTTOMLINE ) )
, maBTNHelp( this, CUI_RES( BTN_HELP ) )
, maBTNOk( this, CUI_RES( BTN_OK ) )
, maBTNCancel( this, CUI_RES( BTN_CANCEL ) )
, maSliderImage( FixedImage::loadThemeImage("res/colorslider.png") )
{
    FreeResource();
    get(mpColorField, "colorField");
    get(mpColorSlider, "colorSlider");
    get(mpColorPreview, "preview");
    get(mpColorPrevious, "previous");
    get(mpRBRed, "redRadiobutton");
    get(mpRBGreen, "greenRadiobutton");
    get(mpRBBlue, "blueRadiobutton");
    get(mpRBHue, "hueRadiobutton");
    get(mpRBSaturation, "satRadiobutton");
    get(mpRBBrightness, "brightRadiobutton");
    get(mpMFRed, "redSpinbutton");
    get(mpMFGreen, "greenSpinbutton");
    get(mpMFBlue, "blueSpinbutton");
    get(mpEDHex, "hexEntry");
    get(mpMFHue, "hueSpinbutton");
    get(mpMFSaturation, "satSpinbutton");
    get(mpMFBrightness, "brightSpinbutton");
    get(mpMFCyan, "cyanSpinbutton");
    get(mpMFMagenta, "magSpinbutton");
    get(mpMFYellow, "yellowSpinbutton");
    get(mpMFKey, "keySpinbutton");
    get(mpFISliderLeft, "leftImage");
    get(mpFISliderRight, "rightImage");

    Size aDialogSize = get_preferred_size();
    set_width_request(aDialogSize.Width() + 50);
    set_height_request(aDialogSize.Height() + 30);

    Link aLink( LINK( this, ColorPickerDialog, ColorModifyHdl ) );
    maColorField.SetModifyHdl( aLink );
    maColorSlider.SetModifyHdl( aLink );
    mpColorField->SetModifyHdl( aLink );
    mpColorSlider->SetModifyHdl( aLink );

    maMFRed.SetModifyHdl( aLink );
    maMFGreen.SetModifyHdl( aLink );
    maMFBlue.SetModifyHdl( aLink );
    mpMFRed->SetModifyHdl( aLink );
    mpMFGreen->SetModifyHdl( aLink );
    mpMFBlue->SetModifyHdl( aLink );

    maMFCyan.SetModifyHdl( aLink );
    maMFMagenta.SetModifyHdl( aLink );
    maMFYellow.SetModifyHdl( aLink );
    maMFKey.SetModifyHdl( aLink );
    mpMFCyan->SetModifyHdl( aLink );
    mpMFMagenta->SetModifyHdl( aLink );
    mpMFYellow->SetModifyHdl( aLink );
    mpMFKey->SetModifyHdl( aLink );

    maMFHue.SetModifyHdl( aLink );
    maMFSaturation.SetModifyHdl( aLink );
    maMFBrightness.SetModifyHdl( aLink );
    mpMFHue->SetModifyHdl( aLink );
    mpMFSaturation->SetModifyHdl( aLink );
    mpMFBrightness->SetModifyHdl( aLink );

    maEDHex.SetModifyHdl( aLink );
    mpEDHex->SetModifyHdl( aLink );

    aLink = LINK( this, ColorPickerDialog, ModeModifyHdl );
    maRBRed.SetToggleHdl( aLink );
    maRBGreen.SetToggleHdl( aLink );
    maRBBlue.SetToggleHdl( aLink );
    maRBHue.SetToggleHdl( aLink );
    maRBSaturation.SetToggleHdl( aLink );
    maRBBrightness.SetToggleHdl( aLink );
    mpRBRed->SetToggleHdl( aLink );
    mpRBGreen->SetToggleHdl( aLink );
    mpRBBlue->SetToggleHdl( aLink );
    mpRBHue->SetToggleHdl( aLink );
    mpRBSaturation->SetToggleHdl( aLink );
    mpRBBrightness->SetToggleHdl( aLink );

    Image aSliderImage( maSliderImage );

    maFISliderLeft.SetImage( aSliderImage );
    mpFISliderLeft->SetImage( aSliderImage );
    mpFISliderLeft->Show(true);

    BitmapEx aTmpBmp( maSliderImage.GetBitmapEx() );
    aTmpBmp.Mirror( BMP_MIRROR_HORZ );
    maFISliderRight.SetImage( Image( aTmpBmp  ) );
    mpFISliderRight->SetImage( Image( aTmpBmp  ) );

    Size aSize( maSliderImage.GetSizePixel() );
    maFISliderLeft.SetSizePixel( aSize );
    maFISliderRight.SetSizePixel( aSize );
    mpFISliderLeft->SetSizePixel( aSize );
    mpFISliderRight->SetSizePixel( aSize );

    Point aPos( maColorSlider.GetPosPixel() );
    Point aPos( mpColorSlider->GetPosPixel() );

    aPos.X() -= aSize.Width();
    aPos.Y() -= aSize.Height() / 2;
    maFISliderLeft.SetPosPixel( aPos );
    mpFISliderLeft->SetPosPixel( aPos );

    aPos.X() += aSize.Width() + maColorSlider.GetSizePixel().Width();
    maFISliderRight.SetPosPixel( aPos );
    aPos.X() += aSize.Width() + mpColorSlider->GetSizePixel().Width();
    mpFISliderRight->SetPosPixel( aPos );

    Color aColor( nColor );

    // modify
    if( mnDialogMode == 2 )
    {
        maColorPreview.SetSizePixel( maColorPrevious.GetSizePixel() );
        maColorPrevious.SetColor( aColor );
        maColorPrevious.Show( true );
        mpColorPreview->SetSizePixel( mpColorPrevious->GetSizePixel() );
        mpColorPrevious->SetColor( aColor );
        mpColorPrevious->Show( true );
    }

    mdRed = ((double)aColor.GetRed()) / 255.0;
@@ -1126,36 +1131,36 @@ void ColorPickerDialog::update_color( sal_uInt16 n )

    if( n & UPDATE_RGB ) // update RGB
    {
        maMFRed.SetValue( nRed );
        maMFGreen.SetValue( nGreen );
        maMFBlue.SetValue( nBlue );
        mpMFRed->SetValue( nRed );
        mpMFGreen->SetValue( nGreen );
        mpMFBlue->SetValue( nBlue );
    }

    if( n & UPDATE_CMYK ) // update CMYK
    {
        maMFCyan.SetValue( toInt( mdCyan, 100.0 ) );
        maMFMagenta.SetValue( toInt( mdMagenta, 100.0 ) );
        maMFYellow.SetValue( toInt( mdYellow, 100.0 ) );
        maMFKey.SetValue( toInt( mdKey, 100.0 ) );
        mpMFCyan->SetValue( toInt( mdCyan, 100.0 ) );
        mpMFMagenta->SetValue( toInt( mdMagenta, 100.0 ) );
        mpMFYellow->SetValue( toInt( mdYellow, 100.0 ) );
        mpMFKey->SetValue( toInt( mdKey, 100.0 ) );
    }

    if( n & UPDATE_HSB ) // update HSB
    {
        maMFHue.SetValue( toInt( mdHue, 1.0 ) );
        maMFSaturation.SetValue( toInt( mdSat, 100.0 ) );
        maMFBrightness.SetValue( toInt( mdBri, 100.0 ) );
        mpMFHue->SetValue( toInt( mdHue, 1.0 ) );
        mpMFSaturation->SetValue( toInt( mdSat, 100.0 ) );
        mpMFBrightness->SetValue( toInt( mdBri, 100.0 ) );
    }

    if( n & UPDATE_COLORCHOOSER ) // update Color Chooser 1
    {
        switch( meMode )
        {
        case HUE:           maColorField.SetValues( aColor, meMode, mdSat, mdBri ); break;
        case SATURATION:    maColorField.SetValues( aColor, meMode, mdHue / 360.0, mdBri ); break;
        case BRIGHTNESS:    maColorField.SetValues( aColor, meMode, mdHue / 360.0, mdSat ); break;
        case RED:           maColorField.SetValues( aColor, meMode, mdBlue, mdGreen ); break;
        case GREEN:         maColorField.SetValues( aColor, meMode, mdBlue, mdRed ); break;
        case BLUE:          maColorField.SetValues( aColor, meMode, mdRed, mdGreen ); break;
        case HUE:           mpColorField->SetValues( aColor, meMode, mdSat, mdBri ); break;
        case SATURATION:    mpColorField->SetValues( aColor, meMode, mdHue / 360.0, mdBri ); break;
        case BRIGHTNESS:    mpColorField->SetValues( aColor, meMode, mdHue / 360.0, mdSat ); break;
        case RED:           mpColorField->SetValues( aColor, meMode, mdBlue, mdGreen ); break;
        case GREEN:         mpColorField->SetValues( aColor, meMode, mdBlue, mdRed ); break;
        case BLUE:          mpColorField->SetValues( aColor, meMode, mdRed, mdGreen ); break;
        }
    }

@@ -1163,44 +1168,44 @@ void ColorPickerDialog::update_color( sal_uInt16 n )
    {
        switch( meMode )
        {
        case HUE:           maColorSlider.SetValue( aColor, meMode, mdHue / 360.0 ); break;
        case SATURATION:    maColorSlider.SetValue( aColor, meMode, mdSat ); break;
        case BRIGHTNESS:    maColorSlider.SetValue( aColor, meMode, mdBri ); break;
        case RED:           maColorSlider.SetValue( aColor, meMode, mdRed ); break;
        case GREEN:         maColorSlider.SetValue( aColor, meMode, mdGreen ); break;
        case BLUE:          maColorSlider.SetValue( aColor, meMode, mdBlue ); break;
        case HUE:           mpColorSlider->SetValue( aColor, meMode, mdHue / 360.0 ); break;
        case SATURATION:    mpColorSlider->SetValue( aColor, meMode, mdSat ); break;
        case BRIGHTNESS:    mpColorSlider->SetValue( aColor, meMode, mdBri ); break;
        case RED:           mpColorSlider->SetValue( aColor, meMode, mdRed ); break;
        case GREEN:         mpColorSlider->SetValue( aColor, meMode, mdGreen ); break;
        case BLUE:          mpColorSlider->SetValue( aColor, meMode, mdBlue ); break;
        }
    }

    if( n & UPDATE_HEX ) // update hex
    {
        maEDHex.SetColor( aColor.GetColor()  );
        mpEDHex->SetColor( aColor.GetColor()  );
    }

    {
        Point aPos( 0, maColorSlider.GetLevel() + maColorSlider.GetPosPixel().Y() - 1 );
        Point aPos( 0, mpColorSlider->GetLevel() + mpColorSlider->GetPosPixel().Y() - 1 );

        aPos.X() = maFISliderLeft.GetPosPixel().X();
        if( aPos != maFISliderLeft.GetPosPixel() )
        aPos.X() = mpFISliderLeft->GetPosPixel().X();
        if( aPos != mpFISliderLeft->GetPosPixel() )
        {
            maFISliderLeft.SetPosPixel( aPos );
            mpFISliderLeft->SetPosPixel( aPos );

            aPos.X() = maFISliderRight.GetPosPixel().X();
            maFISliderRight.SetPosPixel( aPos );
            aPos.X() = mpFISliderRight->GetPosPixel().X();
            mpFISliderRight->SetPosPixel( aPos );
        }
    }

    maColorPreview.SetColor( aColor );
    mpColorPreview->SetColor( aColor );
}

IMPL_LINK( ColorPickerDialog, ColorModifyHdl, void *, p )
{
    sal_uInt16 n = 0;

    if( p == &maColorField )
    if( p == mpColorField )
    {
        double x = maColorField.GetX();
        double y = maColorField.GetY();
        double x = mpColorField->GetX();
        double y = mpColorField->GetY();

        switch( meMode )
        {
@@ -1214,9 +1219,9 @@ IMPL_LINK( ColorPickerDialog, ColorModifyHdl, void *, p )

        n = UPDATE_ALL&~(UPDATE_COLORCHOOSER);
    }
    else if( p == &maColorSlider )
    else if( p == mpColorSlider )
    {
        double dValue = maColorSlider.GetValue();
        double dValue = mpColorSlider->GetValue();
        switch( meMode )
        {
        case HUE:           setColorComponent( COLORCOMP_HUE, dValue * 360.0 ); break;
@@ -1229,59 +1234,59 @@ IMPL_LINK( ColorPickerDialog, ColorModifyHdl, void *, p )

        n = UPDATE_ALL&~(UPDATE_COLORSLIDER);
    }
    else if( p == &maMFRed )
    else if( p == mpMFRed )
    {
        setColorComponent( COLORCOMP_RED, ((double)maMFRed.GetValue()) / 255.0 );
        setColorComponent( COLORCOMP_RED, ((double)mpMFRed->GetValue()) / 255.0 );
        n = UPDATE_ALL&~(UPDATE_RGB);
    }
    else if( p == &maMFGreen )
    else if( p == mpMFGreen )
    {
        setColorComponent( COLORCOMP_GREEN, ((double)maMFGreen.GetValue()) / 255.0 );
        setColorComponent( COLORCOMP_GREEN, ((double)mpMFGreen->GetValue()) / 255.0 );
        n = UPDATE_ALL&~(UPDATE_RGB);
    }
    else if( p == &maMFBlue )
    else if( p == mpMFBlue )
    {
        setColorComponent( COLORCOMP_BLUE, ((double)maMFBlue.GetValue()) / 255.0 );
        setColorComponent( COLORCOMP_BLUE, ((double)mpMFBlue->GetValue()) / 255.0 );
        n = UPDATE_ALL&~(UPDATE_RGB);
    }
    else if( p == &maMFHue )
    else if( p == mpMFHue )
    {
        setColorComponent( COLORCOMP_HUE, (double)maMFHue.GetValue() );
        setColorComponent( COLORCOMP_HUE, (double)mpMFHue->GetValue() );
        n = UPDATE_ALL&~(UPDATE_HSB);
    }
    else if( p == &maMFSaturation )
    else if( p == mpMFSaturation )
    {
        setColorComponent( COLORCOMP_SAT, ((double)maMFSaturation.GetValue()) / 100.0 );
        setColorComponent( COLORCOMP_SAT, ((double)mpMFSaturation->GetValue()) / 100.0 );
        n = UPDATE_ALL&~(UPDATE_HSB);
    }
    else if( p == &maMFBrightness )
    else if( p == mpMFBrightness )
    {
        setColorComponent( COLORCOMP_BRI, ((double)maMFBrightness.GetValue()) / 100.0 );
        setColorComponent( COLORCOMP_BRI, ((double)mpMFBrightness->GetValue()) / 100.0 );
        n = UPDATE_ALL&~(UPDATE_HSB);
    }
    else if( p == &maMFCyan )
    else if( p == mpMFCyan )
    {
        setColorComponent( COLORCOMP_CYAN, ((double)maMFCyan.GetValue()) / 100.0 );
        setColorComponent( COLORCOMP_CYAN, ((double)mpMFCyan->GetValue()) / 100.0 );
        n = UPDATE_ALL&~(UPDATE_CMYK);
    }
    else if( p == &maMFMagenta )
    else if( p == mpMFMagenta )
    {
        setColorComponent( COLORCOMP_MAGENTA, ((double)maMFMagenta.GetValue()) / 100.0 );
        setColorComponent( COLORCOMP_MAGENTA, ((double)mpMFMagenta->GetValue()) / 100.0 );
        n = UPDATE_ALL&~(UPDATE_CMYK);
    }
    else if( p == &maMFYellow )
    else if( p == mpMFYellow )
    {
        setColorComponent( COLORCOMP_YELLOW, ((double)maMFYellow.GetValue()) / 100.0 );
        setColorComponent( COLORCOMP_YELLOW, ((double)mpMFYellow->GetValue()) / 100.0 );
        n = UPDATE_ALL&~(UPDATE_CMYK);
    }
    else if( p == &maMFKey )
    else if( p == mpMFKey )
    {
        setColorComponent( COLORCOMP_KEY, ((double)maMFKey.GetValue()) / 100.0 );
        setColorComponent( COLORCOMP_KEY, ((double)mpMFKey->GetValue()) / 100.0 );
        n = UPDATE_ALL&~(UPDATE_CMYK);
    }
    else if( p == &maEDHex )
    else if( p == mpEDHex )
    {
        sal_Int32 nColor = maEDHex.GetColor();
        sal_Int32 nColor = mpEDHex->GetColor();

        if( nColor != -1 )
        {
@@ -1310,23 +1315,23 @@ IMPL_LINK_NOARG(ColorPickerDialog, ModeModifyHdl)
{
    ColorMode eMode = HUE;

    if( maRBRed.IsChecked() )
    if( mpRBRed->IsChecked() )
    {
        eMode = RED;
    }
    else if( maRBGreen.IsChecked() )
    else if( mpRBGreen->IsChecked() )
    {
        eMode = GREEN;
    }
    else if( maRBBlue.IsChecked() )
    else if( mpRBBlue->IsChecked() )
    {
        eMode = BLUE;
    }
    else if( maRBSaturation.IsChecked() )
    else if( mpRBSaturation->IsChecked() )
    {
        eMode = SATURATION;
    }
    else if( maRBBrightness.IsChecked() )
    else if( mpRBBrightness->IsChecked() )
    {
        eMode = BRIGHTNESS;
    }
diff --git a/cui/source/dialogs/colorpicker.hrc b/cui/source/dialogs/colorpicker.hrc
deleted file mode 100644
index b044d01..0000000
--- a/cui/source/dialogs/colorpicker.hrc
+++ /dev/null
@@ -1,61 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#ifndef _CUI_COLORPICKER_HRC_
#define _CUI_COLORPICKER_HRC_

#include <cuires.hrc>

#define FT_BOTTOMLINE   1
#define BTN_OK          2
#define BTN_CANCEL      3
#define BTN_HELP        4

#define CT_COLORFIELD   5
#define CT_COLORSLIDER  6
#define CT_PREVIEW      7
#define CT_PREVIOUS     8

#define FL_RGB          9
#define CT_RED          10
#define CT_GREEN        11
#define CT_BLUE         12
#define CT_HEX          13

#define FL_HSB          14
#define CT_HUE          15
#define CT_SATURATION   16
#define CT_BRIGHTNESS   17

#define FL_CMYK         18
#define CT_CYAN         19
#define CT_MAGENTA      20
#define CT_YELLOW       21
#define CT_KEY          22

#define PB_PICKER       23

#define CT_LEFT_SLIDER  24
#define CT_RIGHT_SLIDER 25

#define CT_SLIDERIMG    26

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/colorpicker.src b/cui/source/dialogs/colorpicker.src
deleted file mode 100644
index f94e3c5..0000000
--- a/cui/source/dialogs/colorpicker.src
+++ /dev/null
@@ -1,467 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#include "colorpicker.hrc"

#define DLG_WIDTH 295
#define DLG_HEIGHT 216

#define BUTTON_WIDTH 50
#define BUTTON_HEIGHT 14

#define METRIC_WIDTH 30
#define METRIC_HEIGHT 12

#define RADIO_WIDTH 8
#define RADIO_HEIGHT 8

#define LABEL_WIDTH 50
#define LABEL_HEIGHT 10

#define SLIDER_WIDTH 22
#define PREVIEW_HEIGHT 16

#define LINE_WIDTH  (3 + RADIO_WIDTH + 2 + LABEL_WIDTH + 3 + METRIC_WIDTH + 3)
#define LINE_HEIGHT 8

#define CONTROL_AREA_X    (DLG_WIDTH - LINE_WIDTH - 6)
#define CONTROL_AREA_X_RADIO (CONTROL_AREA_X + 3)
#define CONTROL_AREA_X_LABEL (CONTROL_AREA_X + 3 + RADIO_WIDTH + 2)
#define CONTROL_AREA_X_METRIC (CONTROL_AREA_X + 3 + RADIO_WIDTH + 2 + LABEL_WIDTH + 3)

#define CHOOSER_SIZE (CONTROL_AREA_X - 6 - SLIDER_WIDTH - 2 - 2 )

#define BOTTOMLINE_Y (DLG_HEIGHT - 3 - 3 - 8 - 14)
#define BUTTON_LINE_Y (BOTTOMLINE_Y + 8 + 3)

#define RGB_Y1 (6 + LINE_HEIGHT + 1)
#define RGB_Y2 (RGB_Y1 + METRIC_HEIGHT + 2)
#define RGB_Y3 (RGB_Y2 + METRIC_HEIGHT + 2)
#define RGB_Y4 (RGB_Y3 + METRIC_HEIGHT + 4)
#define HSB_Y0 (RGB_Y4 + METRIC_HEIGHT + 1)
#define HSB_Y1 (HSB_Y0 + LINE_HEIGHT + 2)
#define HSB_Y2 (HSB_Y1 + METRIC_HEIGHT + 2)
#define HSB_Y3 (HSB_Y2 + METRIC_HEIGHT + 2)
#define CMYK_Y0 (HSB_Y3 + METRIC_HEIGHT + 1)
#define CMYK_Y1 (CMYK_Y0 + LINE_HEIGHT + 1)
#define CMYK_Y2 (CMYK_Y1 + METRIC_HEIGHT + 2)
#define CMYK_Y3 (CMYK_Y2 + METRIC_HEIGHT + 2)
#define CMYK_Y4 (CMYK_Y3 + METRIC_HEIGHT + 2)

ModalDialog RID_CUI_DIALOG_COLORPICKER
{
    HelpID = "cui:ModalDialog:ColorPicker";

    OutputSize = TRUE ;
    SvLook = TRUE ;
    Moveable = TRUE ;
    Size = MAP_APPFONT ( DLG_WIDTH , DLG_HEIGHT ) ;

    Text [ en-US ] = "Color Picker" ;

    Control CT_COLORFIELD
    {
        HelpID = "cui:Control:ColorPicker:ColorField";
        Pos = MAP_APPFONT ( 6 , 6 ) ;
        Size = MAP_APPFONT ( CHOOSER_SIZE , CHOOSER_SIZE ) ;
        Border = TRUE;
        TabStop = TRUE ;
    };

    Control CT_COLORSLIDER
    {
        HelpID = "cui:Control:ColorPicker:ColorSlider";
        Pos = MAP_APPFONT ( CONTROL_AREA_X - 2 - SLIDER_WIDTH + 4 , 6 ) ;
        Size = MAP_APPFONT ( SLIDER_WIDTH - 8 , CHOOSER_SIZE ) ;
        Border = TRUE;
        TabStop = TRUE ;
    };

    Control CT_PREVIEW
    {
        HelpID = "cui:Control:ColorPicker:ColorPreview";
        Pos = MAP_APPFONT ( 6 , 6 + CHOOSER_SIZE + 3 ) ;
        Size = MAP_APPFONT ( CHOOSER_SIZE , PREVIEW_HEIGHT ) ;
        Border = FALSE;
    };

    Control CT_PREVIOUS
    {
        HelpID = "cui:Control:ColorPicker:ColorPrevious";
        Pos = MAP_APPFONT ( 6 + (CHOOSER_SIZE/2), 6 + CHOOSER_SIZE + 3 ) ;
        Size = MAP_APPFONT ( CHOOSER_SIZE/2 , PREVIEW_HEIGHT ) ;
        Border = FALSE;
        Hide = TRUE;
    };

    FixedImage CT_LEFT_SLIDER
    {
    };

    FixedImage CT_RIGHT_SLIDER
    {
    };

    Image CT_SLIDERIMG
    {
        ImageBitmap = Bitmap { File = "colorslider.png" ; };
        MaskColor = Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; };
    };

#if 0
    ImageButton PB_PICKER
    {
        HelpID = "cui:ImageButton:ColorPicker:Picker";
        Pos = MAP_APPFONT ( CONTROL_AREA_X - 2 - SLIDER_WIDTH + 4, 6 + CHOOSER_SIZE + 3 ) ;
        Size = MAP_APPFONT( SLIDER_WIDTH - 8, PREVIEW_HEIGHT );
        TabStop = TRUE ;
        QuickHelpText [ en-US ] = "Pick a color from the document" ;
        ButtonImage = Image
        {
            ImageBitmap = Bitmap { File = "pipette.png" ; };
            MaskColor = Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; } ;
        };
    };
#endif

    FixedLine FL_RGB
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X , 6 ) ;
        Size = MAP_APPFONT ( LINE_WIDTH , LINE_HEIGHT ) ;
        Text [ en-US ] = "RGB" ;
    };

    RadioButton CT_RED
    {
        HelpID = "cui:RadioButton:ColorPicker:Red";
        Pos = MAP_APPFONT ( CONTROL_AREA_X_RADIO , RGB_Y1+2 ) ;
        Size = MAP_APPFONT ( RADIO_WIDTH , RADIO_HEIGHT ) ;
        Group = TRUE;
    };

    RadioButton CT_GREEN
    {
        HelpID = "cui:RadioButton:ColorPicker:Green";
        Pos = MAP_APPFONT ( CONTROL_AREA_X_RADIO , RGB_Y2+2 ) ;
        Size = MAP_APPFONT ( RADIO_WIDTH , RADIO_HEIGHT ) ;
    };

    RadioButton CT_BLUE
    {
        HelpID = "cui:RadioButton:ColorPicker:Blue";
        Pos = MAP_APPFONT ( CONTROL_AREA_X_RADIO , RGB_Y3+2 ) ;
        Size = MAP_APPFONT ( RADIO_WIDTH , RADIO_HEIGHT ) ;
    };

    RadioButton CT_HUE
    {
        HelpID = "cui:RadioButton:ColorPicker:Hue";
        Pos = MAP_APPFONT ( CONTROL_AREA_X_RADIO , HSB_Y1+2 ) ;
        Size = MAP_APPFONT ( RADIO_WIDTH , RADIO_HEIGHT ) ;
        Check = TRUE ;
    };

    RadioButton CT_SATURATION
    {
        HelpID = "cui:RadioButton:ColorPicker:Saturation";
        Pos = MAP_APPFONT ( CONTROL_AREA_X_RADIO , HSB_Y2+2 ) ;
        Size = MAP_APPFONT ( RADIO_WIDTH , RADIO_HEIGHT ) ;
    };

    RadioButton CT_BRIGHTNESS
    {
        HelpID = "cui:RadioButton:ColorPicker:Brightness";
        Pos = MAP_APPFONT ( CONTROL_AREA_X_RADIO , HSB_Y3+2 ) ;
        Size = MAP_APPFONT ( RADIO_WIDTH , RADIO_HEIGHT ) ;
    };

    FixedText CT_RED
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , RGB_Y1+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Red" ;
    };

    MetricField CT_RED
    {
        HelpID = "cui:MetricField:ColorPicker:Red";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , RGB_Y1 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 255 ;
        Last = 255 ;
    };

    FixedText CT_GREEN
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , RGB_Y2+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Green" ;
    };

    MetricField CT_GREEN
    {
        HelpID = "cui:MetricField:ColorPicker:Green";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , RGB_Y2 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 255 ;
        Last = 255 ;
    };

    FixedText CT_BLUE
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , RGB_Y3+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Blue" ;
    };

    MetricField CT_BLUE
    {
        HelpID = "cui:MetricField:ColorPicker:Blue";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , RGB_Y3 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 255 ;
        Last = 255 ;
    };

    FixedText CT_HEX
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , RGB_Y4+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "Hex ~#" ;
    };

    Edit CT_HEX
    {
        HelpID = "cui:MetricField:ColorPicker:Hex";
        Border = TRUE ;
        Left = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , RGB_Y4 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
    };

// HSB

    FixedLine FL_HSB
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X , HSB_Y0 ) ;
        Size = MAP_APPFONT ( LINE_WIDTH , LINE_HEIGHT ) ;
        Text [ en-US ] = "HSB" ;
    };

    FixedText CT_HUE
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , HSB_Y1+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "H~ue" ;
    };

    MetricField CT_HUE
    {
        HelpID = "cui:MetricField:ColorPicker:Hue";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , HSB_Y1 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 360 ;
        Last = 360 ;
        Unit = FUNIT_CUSTOM ;
        CustomUnitText = "°" ;
    };

    FixedText CT_SATURATION
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , HSB_Y2+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Saturation" ;
    };

    MetricField CT_SATURATION
    {
        HelpID = "cui:MetricField:ColorPicker:Saturation";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , HSB_Y2 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 100 ;
        Last = 100 ;
        Unit = FUNIT_PERCENT ;
    };

    FixedText CT_BRIGHTNESS
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , HSB_Y3+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "Bright~ness" ;
    };

    MetricField CT_BRIGHTNESS
    {
        HelpID = "cui:MetricField:ColorPicker:Brightness";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , HSB_Y3 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 100 ;
        Last = 100 ;
        Unit = FUNIT_PERCENT ;
    };

// CMYK

    FixedLine FL_CMYK
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X , CMYK_Y0 ) ;
        Size = MAP_APPFONT ( LINE_WIDTH , LINE_HEIGHT ) ;
        Text [ en-US ] = "CMYK" ;
    };

    FixedText CT_CYAN
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , CMYK_Y1+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Cyan" ;
    };

    MetricField CT_CYAN
    {
        HelpID = "cui:MetricField:ColorPicker:Cyan";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , CMYK_Y1 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 100 ;
        Last = 100 ;
        Unit = FUNIT_PERCENT ;
    };

    FixedText CT_MAGENTA
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , CMYK_Y2+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Magenta" ;
    };

    MetricField CT_MAGENTA
    {
        HelpID = "cui:MetricField:ColorPicker:Magenta";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , CMYK_Y2 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 100 ;
        Last = 100 ;
        Unit = FUNIT_PERCENT ;
    };

    FixedText CT_YELLOW
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , CMYK_Y3+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Yellow" ;
    };

    MetricField CT_YELLOW
    {
        HelpID = "cui:MetricField:ColorPicker:Yellow";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , CMYK_Y3 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 100 ;
        Last = 100 ;
        Unit = FUNIT_PERCENT ;
    };

    FixedText CT_KEY
    {
        Pos = MAP_APPFONT ( CONTROL_AREA_X_LABEL , CMYK_Y4+1 ) ;
        Size = MAP_APPFONT ( LABEL_WIDTH , LABEL_HEIGHT ) ;
        Text [ en-US ] = "~Key" ;
    };

    MetricField CT_KEY
    {
        HelpID = "cui:MetricField:ColorPicker:Key";
        Border = TRUE ;
        Pos = MAP_APPFONT ( CONTROL_AREA_X_METRIC , CMYK_Y4 ) ;
        Size = MAP_APPFONT ( METRIC_WIDTH , METRIC_HEIGHT ) ;
        TabStop = TRUE ;
        Repeat = TRUE ;
        Spin = TRUE ;
        Maximum = 100 ;
        Last = 100 ;
        Unit = FUNIT_PERCENT ;
    };

    // bottom buttons

    FixedLine FT_BOTTOMLINE
    {
        Pos = MAP_APPFONT ( 0 , BOTTOMLINE_Y ) ;
        Size = MAP_APPFONT ( DLG_WIDTH , 8 ) ;
    };

    HelpButton BTN_HELP
    {
        Pos = MAP_APPFONT ( 3 , BUTTON_LINE_Y ) ;
        Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ;
        TabStop = TRUE ;
    };

    OKButton BTN_OK
    {
        Pos = MAP_APPFONT ( DLG_WIDTH - 3 - BUTTON_WIDTH - 3 - BUTTON_WIDTH, BUTTON_LINE_Y ) ;
        Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ;
        TabStop = TRUE ;
        DefButton = TRUE ;
    };
    CancelButton BTN_CANCEL
    {
        Pos = MAP_APPFONT ( DLG_WIDTH - 3 - BUTTON_WIDTH, BUTTON_LINE_Y ) ;
        Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ;
        TabStop = TRUE ;
    };
};

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/inc/cuires.hrc b/cui/source/inc/cuires.hrc
index 89f00b5..7cd6afb 100644
--- a/cui/source/inc/cuires.hrc
+++ b/cui/source/inc/cuires.hrc
@@ -28,7 +28,6 @@
// RID_SVX_START + 0 unused
#define RID_SVX_MSGBOX_OPTIONS_RESTART      (RID_SVX_START + 1)
#define RID_SVX_MSGBOX_LANGUAGE_RESTART     (RID_SVX_START + 2)
#define RID_CUI_DIALOG_COLORPICKER          (RID_SVX_START + 3)

#define RID_CUIIMG_HARDDISK                 (RID_SVX_START + 4)
#define RID_CUIIMG_LIB                      (RID_SVX_START + 5)
diff --git a/cui/uiconfig/ui/colorpickerdialog.ui b/cui/uiconfig/ui/colorpickerdialog.ui
new file mode 100644
index 0000000..979c163
--- /dev/null
+++ b/cui/uiconfig/ui/colorpickerdialog.ui
@@ -0,0 +1,723 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<interface>
  <requires lib="gtk+" version="3.0"/>
  <!-- interface-requires LibreOffice 1.0 -->
  <object class="GtkDialog" id="ColorPicker">
    <property name="can_focus">False</property>
    <property name="hexpand">True</property>
    <property name="vexpand">True</property>
    <property name="border_width">6</property>
    <property name="title" translatable="yes">Color Picker</property>
    <property name="type_hint">dialog</property>
    <child internal-child="vbox">
      <object class="GtkBox" id="dialog-vbox1">
        <property name="can_focus">False</property>
        <property name="hexpand">True</property>
        <property name="vexpand">True</property>
        <property name="orientation">vertical</property>
        <property name="spacing">12</property>
        <child internal-child="action_area">
          <object class="GtkButtonBox" id="dialog-action_area1">
            <property name="can_focus">False</property>
            <property name="layout_style">end</property>
            <child>
              <object class="GtkButton" id="ok">
                <property name="label">gtk-ok</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="can_default">True</property>
                <property name="has_default">True</property>
                <property name="receives_default">True</property>
                <property name="use_stock">True</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="cancel">
                <property name="label">gtk-cancel</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="use_stock">True</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">1</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="help">
                <property name="label">gtk-help</property>
                <property name="use_action_appearance">False</property>
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="use_stock">True</property>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">2</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="pack_type">end</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkBox" id="box1">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="hexpand">True</property>
            <property name="vexpand">True</property>
            <property name="spacing">6</property>
            <child>
              <object class="GtkGrid" id="grid1">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="hexpand">True</property>
                <property name="vexpand">True</property>
                <property name="row_spacing">6</property>
                <property name="column_spacing">2</property>
                <child>
                  <object class="GtkBox" id="box2">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="hexpand">True</property>
                    <child>
                      <object class="cuilo-ColorPreviewControl" id="preview">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="hexpand">True</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="cuilo-ColorPreviewControl" id="previous">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="hexpand">True</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">1</property>
                      </packing>
                    </child>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">1</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="cuilo-ColorFieldControl" id="colorField">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="hexpand">True</property>
                    <property name="vexpand">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">0</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="cuilo-ColorSliderControl" id="colorSlider">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="vexpand">True</property>
                  </object>
                  <packing>
                    <property name="left_attach">2</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkImage" id="rightImage">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="valign">start</property>
                    <property name="stock">gtk-missing-image</property>
                  </object>
                  <packing>
                    <property name="left_attach">3</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkImage" id="leftImage">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="valign">start</property>
                    <property name="stock">gtk-missing-image</property>
                  </object>
                  <packing>
                    <property name="left_attach">1</property>
                    <property name="top_attach">0</property>
                    <property name="width">1</property>
                    <property name="height">1</property>
                  </packing>
                </child>
                <child>
                  <placeholder/>
                </child>
                <child>
                  <placeholder/>
                </child>
                <child>
                  <placeholder/>
                </child>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">0</property>
              </packing>
            </child>
            <child>
              <object class="GtkBox" id="box3">
                <property name="visible">True</property>
                <property name="can_focus">False</property>
                <property name="hexpand">True</property>
                <property name="vexpand">True</property>
                <property name="orientation">vertical</property>
                <property name="spacing">12</property>
                <child>
                  <object class="GtkFrame" id="frame1">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="hexpand">True</property>
                    <property name="vexpand">True</property>
                    <property name="label_xalign">0</property>
                    <property name="shadow_type">none</property>
                    <child>
                      <object class="GtkAlignment" id="alignment1">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="hexpand">True</property>
                        <property name="vexpand">True</property>
                        <property name="top_padding">6</property>
                        <property name="left_padding">12</property>
                        <child>
                          <object class="GtkGrid" id="grid2">
                            <property name="visible">True</property>
                            <property name="can_focus">False</property>
                            <property name="hexpand">True</property>
                            <property name="vexpand">True</property>
                            <property name="row_spacing">6</property>
                            <property name="column_spacing">12</property>
                            <child>
                              <object class="GtkRadioButton" id="redRadiobutton">
                                <property name="label" translatable="yes">_Red</property>
                                <property name="use_action_appearance">False</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="receives_default">False</property>
                                <property name="use_underline">True</property>
                                <property name="xalign">0</property>
                                <property name="active">True</property>
                                <property name="draw_indicator">True</property>
                                <property name="group">greenRadiobutton</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">0</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkRadioButton" id="greenRadiobutton">
                                <property name="label" translatable="yes">_Green</property>
                                <property name="use_action_appearance">False</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="receives_default">False</property>
                                <property name="use_underline">True</property>
                                <property name="xalign">0</property>
                                <property name="draw_indicator">True</property>
                                <property name="group">redRadiobutton</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">1</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkRadioButton" id="blueRadiobutton">
                                <property name="label" translatable="yes">_Blue</property>
                                <property name="use_action_appearance">False</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="receives_default">False</property>
                                <property name="use_underline">True</property>
                                <property name="xalign">0</property>
                                <property name="draw_indicator">True</property>
                                <property name="group">redRadiobutton</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">2</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="redSpinbutton:0">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">0</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="greenSpinbutton:0">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">1</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="blueSpinbutton:0">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">2</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkLabel" id="label2">
                                <property name="visible">True</property>
                                <property name="can_focus">False</property>
                                <property name="xalign">0</property>
                                <property name="label" translatable="yes">Hex _#</property>
                                <property name="use_underline">True</property>
                                <property name="mnemonic_widget">hexEntry</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">3</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="cuilo-HexColorControl" id="hexEntry">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">3</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                          </object>
                        </child>
                      </object>
                    </child>
                    <child type="label">
                      <object class="GtkLabel" id="label1">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="label" translatable="yes">RGB</property>
                        <attributes>
                          <attribute name="weight" value="semibold"/>
                        </attributes>
                      </object>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">0</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkFrame" id="frame2">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="hexpand">True</property>
                    <property name="vexpand">True</property>
                    <property name="label_xalign">0</property>
                    <property name="shadow_type">none</property>
                    <child>
                      <object class="GtkAlignment" id="alignment2">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="hexpand">True</property>
                        <property name="vexpand">True</property>
                        <property name="top_padding">6</property>
                        <property name="left_padding">12</property>
                        <child>
                          <object class="GtkGrid" id="grid3">
                            <property name="visible">True</property>
                            <property name="can_focus">False</property>
                            <property name="hexpand">True</property>
                            <property name="vexpand">True</property>
                            <property name="row_spacing">6</property>
                            <property name="column_spacing">12</property>
                            <child>
                              <object class="GtkRadioButton" id="hueRadiobutton">
                                <property name="label" translatable="yes">H_ue</property>
                                <property name="use_action_appearance">False</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="receives_default">False</property>
                                <property name="use_underline">True</property>
                                <property name="xalign">0</property>
                                <property name="active">True</property>
                                <property name="draw_indicator">True</property>
                                <property name="group">satRadiobutton</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">0</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkRadioButton" id="satRadiobutton">
                                <property name="label" translatable="yes">_Saturation</property>
                                <property name="use_action_appearance">False</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="receives_default">False</property>
                                <property name="use_underline">True</property>
                                <property name="xalign">0</property>
                                <property name="draw_indicator">True</property>
                                <property name="group">hueRadiobutton</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">1</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkRadioButton" id="brightRadiobutton">
                                <property name="label" translatable="yes">Bright_ness</property>
                                <property name="use_action_appearance">False</property>
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="receives_default">False</property>
                                <property name="use_underline">True</property>
                                <property name="xalign">0</property>
                                <property name="draw_indicator">True</property>
                                <property name="group">hueRadiobutton</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">2</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="hueSpinbutton:°">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">0</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="satSpinbutton:%">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">1</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="brightSpinbutton:%">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">2</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                          </object>
                        </child>
                      </object>
                    </child>
                    <child type="label">
                      <object class="GtkLabel" id="label3">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="label" translatable="yes">HSB</property>
                        <attributes>
                          <attribute name="weight" value="semibold"/>
                        </attributes>
                      </object>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkFrame" id="frame3">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
                    <property name="hexpand">True</property>
                    <property name="vexpand">True</property>
                    <property name="label_xalign">0</property>
                    <property name="shadow_type">none</property>
                    <child>
                      <object class="GtkAlignment" id="alignment3">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="hexpand">True</property>
                        <property name="vexpand">True</property>
                        <property name="top_padding">6</property>
                        <property name="left_padding">12</property>
                        <child>
                          <object class="GtkGrid" id="grid4">
                            <property name="visible">True</property>
                            <property name="can_focus">False</property>
                            <property name="row_spacing">6</property>
                            <property name="column_spacing">12</property>
                            <child>
                              <object class="GtkLabel" id="label5">
                                <property name="visible">True</property>
                                <property name="can_focus">False</property>
                                <property name="halign">start</property>
                                <property name="xalign">0</property>
                                <property name="label" translatable="yes">_Cyan</property>
                                <property name="use_underline">True</property>
                                <property name="mnemonic_widget">cyanSpinbutton:%</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">0</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkLabel" id="label6">
                                <property name="visible">True</property>
                                <property name="can_focus">False</property>
                                <property name="halign">start</property>
                                <property name="xalign">0</property>
                                <property name="label" translatable="yes">_Magenta</property>
                                <property name="use_underline">True</property>
                                <property name="mnemonic_widget">magSpinbutton:%</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">1</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkLabel" id="label7">
                                <property name="visible">True</property>
                                <property name="can_focus">False</property>
                                <property name="halign">start</property>
                                <property name="xalign">0</property>
                                <property name="label" translatable="yes">_Yellow</property>
                                <property name="use_underline">True</property>
                                <property name="mnemonic_widget">yellowSpinbutton:%</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">2</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkLabel" id="label8">
                                <property name="visible">True</property>
                                <property name="can_focus">False</property>
                                <property name="halign">start</property>
                                <property name="xalign">0</property>
                                <property name="label" translatable="yes">_Key</property>
                                <property name="use_underline">True</property>
                                <property name="mnemonic_widget">keySpinbutton:%</property>
                              </object>
                              <packing>
                                <property name="left_attach">0</property>
                                <property name="top_attach">3</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="cyanSpinbutton:%">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">0</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="magSpinbutton:%">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">1</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="yellowSpinbutton:%">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">2</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkSpinButton" id="keySpinbutton:%">
                                <property name="visible">True</property>
                                <property name="can_focus">True</property>
                                <property name="hexpand">True</property>
                              </object>
                              <packing>
                                <property name="left_attach">1</property>
                                <property name="top_attach">3</property>
                                <property name="width">1</property>
                                <property name="height">1</property>
                              </packing>
                            </child>
                          </object>
                        </child>
                      </object>
                    </child>
                    <child type="label">
                      <object class="GtkLabel" id="label4">
                        <property name="visible">True</property>
                        <property name="can_focus">False</property>
                        <property name="label" translatable="yes">CMYK</property>
                        <attributes>
                          <attribute name="weight" value="semibold"/>
                        </attributes>
                      </object>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">2</property>
                  </packing>
                </child>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="fill">True</property>
                <property name="position">1</property>
              </packing>
            </child>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">1</property>
          </packing>
        </child>
      </object>
    </child>
    <action-widgets>
      <action-widget response="0">ok</action-widget>
      <action-widget response="0">cancel</action-widget>
      <action-widget response="0">help</action-widget>
    </action-widgets>
  </object>
  <object class="GtkSizeGroup" id="sizegroup1">
    <widgets>
      <widget name="redRadiobutton"/>
      <widget name="greenRadiobutton"/>
      <widget name="blueRadiobutton"/>
      <widget name="label2"/>
      <widget name="hueRadiobutton"/>
      <widget name="satRadiobutton"/>
      <widget name="brightRadiobutton"/>
      <widget name="label5"/>
      <widget name="label6"/>
      <widget name="label7"/>
      <widget name="label8"/>
    </widgets>
  </object>
</interface>
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index aaca675..f8b74a7 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -39,6 +39,9 @@
    <glade-widget-class title="Spelling View" name="cuilo-SentenceEditWindow"
                        generic-name="SentenceEditWindow" parent="GtkTextView"
                        icon-name="widget-gtk-textview"/>
    <glade-widget-class title="Hex Color Control" name="cuilo-HexColorControl"
                        generic-name="Hex Color Control" parent="GtkEntry"
                        icon-name="widget-gtk-textentry"/>
    <glade-widget-class title="Thesaurus Edit" name="cuilo-ReplaceEdit"
                        generic-name="ReplaceEdit" parent="GtkEntry"
                        icon-name="widget-gtk-textentry"/>
@@ -286,6 +289,15 @@
    <glade-widget-class title="Graphic Preview" name="cuilo-GraphicPreviewWindow"
                        generic-name="Graphic Preview Window" parent="GtkDrawingArea"
                        icon-name="widget-gtk-drawingarea"/>
    <glade-widget-class title="Color Field Control" name="cuilo-ColorFieldControl"
                        generic-name="Color Field Control" parent="GtkDrawingArea"
                        icon-name="widget-gtk-drawingarea"/>
    <glade-widget-class title="Color Slider Control" name="cuilo-ColorSliderControl"
                        generic-name="Color Slider Control" parent="GtkDrawingArea"
                        icon-name="widget-gtk-drawingarea"/>
    <glade-widget-class title="Color Preview Control" name="cuilo-ColorPreviewControl"
                        generic-name="Color Preview Control" parent="GtkDrawingArea"
                        icon-name="widget-gtk-drawingarea"/>
    <glade-widget-class title="Html Attribute Preview" name="sduilo-SdHtmlAttrPreview"
                        generic-name="Html Attribute Preview" parent="GtkDrawingArea"
                        icon-name="widget-gtk-drawingarea"/>