summaryrefslogtreecommitdiffstats
path: root/vcl
diff options
context:
space:
mode:
authorSzabolcs Dezsi <dezsiszabi@hotmail.com>2012-03-01 20:13:21 +0100
committerTor Lillqvist <tlillqvist@suse.com>2012-03-01 20:40:14 +0200
commitdfc9c72d7797862a9292bdda16ad8c107124a6df (patch)
treec60941035d043b4e8740e6b67c27085cda95aaa9 /vcl
parentMove MinGW-specific magic inside MinGW-specific .IF branch (diff)
downloadcore-dfc9c72d7797862a9292bdda16ad8c107124a6df.tar.gz
core-dfc9c72d7797862a9292bdda16ad8c107124a6df.zip
Added 'Copy to Clipboard' button to error dialogs
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/svids.hrc1
-rw-r--r--vcl/inc/vcl/msgbox.hxx4
-rw-r--r--vcl/source/src/btntext.src5
-rw-r--r--vcl/source/window/msgbox.cxx14
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 )