diff options
author | Szabolcs Dezsi <dezsiszabi@hotmail.com> | 2012-03-01 20:13:21 +0100 |
---|---|---|
committer | Tor Lillqvist <tlillqvist@suse.com> | 2012-03-01 20:40:14 +0200 |
commit | dfc9c72d7797862a9292bdda16ad8c107124a6df (patch) | |
tree | c60941035d043b4e8740e6b67c27085cda95aaa9 /vcl | |
parent | Move MinGW-specific magic inside MinGW-specific .IF branch (diff) | |
download | core-dfc9c72d7797862a9292bdda16ad8c107124a6df.tar.gz core-dfc9c72d7797862a9292bdda16ad8c107124a6df.zip |
Added 'Copy to Clipboard' button to error dialogs
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/svids.hrc | 1 | ||||
-rw-r--r-- | vcl/inc/vcl/msgbox.hxx | 4 | ||||
-rw-r--r-- | vcl/source/src/btntext.src | 5 | ||||
-rw-r--r-- | vcl/source/window/msgbox.cxx | 14 |
4 files changed, 24 insertions, 0 deletions
diff --git a/vcl/inc/svids.hrc b/vcl/inc/svids.hrc index 5eba31828f38..e337bc724d7d 100644 --- a/vcl/inc/svids.hrc +++ b/vcl/inc/svids.hrc @@ -183,6 +183,7 @@ #define SV_BUTTONTEXT_IGNORE 10108 #define SV_BUTTONTEXT_ABORT 10109 #define SV_BUTTONTEXT_LESS 10110 +#define SV_BUTTONTEXT_COPY 10111 #define SV_STDTEXT_FIRST SV_STDTEXT_SERVICENOTAVAILABLE #define SV_STDTEXT_SERVICENOTAVAILABLE 10200 diff --git a/vcl/inc/vcl/msgbox.hxx b/vcl/inc/vcl/msgbox.hxx index fb960b847ff7..1c1dcee01d44 100644 --- a/vcl/inc/vcl/msgbox.hxx +++ b/vcl/inc/vcl/msgbox.hxx @@ -34,6 +34,8 @@ #include <vcl/btndlg.hxx> #include <vcl/image.hxx> #include <vcl/bitmap.hxx> +#include <vcl/button.hxx> + class FixedText; class FixedImage; class CheckBox; @@ -104,6 +106,8 @@ public: sal_Bool GetCheckBoxState() const; virtual Size GetOptimalSize(WindowSizeType eType) const; + + DECL_LINK( ClickHdl, Button* ); }; // ----------- diff --git a/vcl/source/src/btntext.src b/vcl/source/src/btntext.src index c0303aac0f1f..6762f085a0e8 100644 --- a/vcl/source/src/btntext.src +++ b/vcl/source/src/btntext.src @@ -69,6 +69,11 @@ String SV_BUTTONTEXT_LESS Text [ en-US ] = "~Less"; }; +String SV_BUTTONTEXT_COPY +{ + Text [ en-US ] = "Copy to Clipboard"; +}; + String SV_BUTTONTEXT_IGNORE { Text [ en-US ] = "~Ignore"; diff --git a/vcl/source/window/msgbox.cxx b/vcl/source/window/msgbox.cxx index 4e5e796657f9..3293929a4fe4 100644 --- a/vcl/source/window/msgbox.cxx +++ b/vcl/source/window/msgbox.cxx @@ -34,6 +34,7 @@ #include <brdwin.hxx> #include <window.h> +#include <vcl/edit.hxx> #include <vcl/metric.hxx> #include <vcl/svapp.hxx> #include <vcl/wrkwin.hxx> @@ -399,6 +400,10 @@ void MessBox::ImplPosControls() mpCheckBox->Show(); } + AddButton( String( ResId( SV_BUTTONTEXT_COPY, *ImplGetResMgr() ) ), BUTTON_COPY, 0 ); + Button* pCopyBtn = GetPushButton( BUTTON_COPY ); + pCopyBtn->SetClickHdl( LINK( this, MessBox, ClickHdl ) ); + mpFixedText = new FixedText( this, nWinStyle ); if( mpFixedText->GetStyle() & WB_EXTRAOFFSET ) // TODO: use CalcMinimumSize() instead aFixedSize.Width() += 2; @@ -408,6 +413,15 @@ void MessBox::ImplPosControls() SetPageSizePixel( aPageSize ); } +IMPL_LINK( MessBox, ClickHdl, Button*, pBtn ) +{ + Edit aCopyHelper( this ); + aCopyHelper.SetText( maMessText, Selection( 0, maMessText.Len() ) ); + aCopyHelper.Copy(); + + return 0; +} + // ----------------------------------------------------------------------- void MessBox::StateChanged( StateChangedType nType ) |