summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basic/source/runtime/methods.cxx2
-rw-r--r--vcl/Library_vcl.mk1
-rw-r--r--vcl/Package_inc.mk1
-rw-r--r--vcl/aqua/source/window/salframe.cxx7
-rw-r--r--vcl/headless/svpframe.cxx4
-rw-r--r--vcl/inc/aqua/salframe.h1
-rw-r--r--vcl/inc/headless/svpframe.hxx1
-rw-r--r--vcl/inc/salframe.hxx2
-rw-r--r--vcl/inc/unx/gtk/gtkframe.hxx2
-rw-r--r--vcl/inc/unx/saldisp.hxx2
-rw-r--r--vcl/inc/unx/salframe.h1
-rw-r--r--vcl/inc/vcl/sound.hxx39
-rw-r--r--vcl/inc/win/salframe.h1
-rw-r--r--vcl/source/app/sound.cxx40
-rw-r--r--vcl/unx/generic/app/saldisp.cxx6
-rw-r--r--vcl/unx/generic/window/salframe.cxx6
-rw-r--r--vcl/unx/gtk/window/gtkframe.cxx5
-rw-r--r--vcl/win/source/window/salframe.cxx8
18 files changed, 129 insertions, 0 deletions
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 211618a4b544..f368ee2ca6cc 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -22,6 +22,7 @@
#include <osl/process.h>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
+#include <vcl/sound.hxx>
#include <tools/wintypes.hxx>
#include <vcl/msgbox.hxx>
#include <basic/sbx.hxx>
@@ -4226,6 +4227,7 @@ RTLFUNC(Beep)
StarBASIC::Error( SbERR_BAD_ARGUMENT );
return;
}
+ Sound::Beep();
}
RTLFUNC(Load)
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 64456e11bd60..c72f6a9de3bd 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -121,6 +121,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
vcl/source/app/session \
vcl/source/app/settings \
vcl/source/app/solarmutex \
+ vcl/source/app/sound \
vcl/source/app/stdtext \
vcl/source/app/svapp \
vcl/source/app/svdata \
diff --git a/vcl/Package_inc.mk b/vcl/Package_inc.mk
index 1ddefa6ebf43..08be3a2dd72a 100644
--- a/vcl/Package_inc.mk
+++ b/vcl/Package_inc.mk
@@ -126,6 +126,7 @@ $(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/seleng.hxx,vcl/seleng.hxx))
$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/settings.hxx,vcl/settings.hxx))
$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/slider.hxx,vcl/slider.hxx))
$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/solarmutex.hxx,vcl/solarmutex.hxx))
+$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/sound.hxx,vcl/sound.hxx))
$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/spinfld.hxx,vcl/spinfld.hxx))
$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/spin.h,vcl/spin.h))
$(eval $(call gb_Package_add_file,vcl_inc,inc/vcl/spin.hxx,vcl/spin.hxx))
diff --git a/vcl/aqua/source/window/salframe.cxx b/vcl/aqua/source/window/salframe.cxx
index 854b88c7df4e..1d03c30d95eb 100644
--- a/vcl/aqua/source/window/salframe.cxx
+++ b/vcl/aqua/source/window/salframe.cxx
@@ -1343,6 +1343,13 @@ const SystemEnvData* AquaSalFrame::GetSystemData() const
// -----------------------------------------------------------------------
+void AquaSalFrame::Beep()
+{
+ NSBeep();
+}
+
+// -----------------------------------------------------------------------
+
void AquaSalFrame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags)
{
if ( !mpWindow )
diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx
index bf679d9bc5d3..41f4629cf75c 100644
--- a/vcl/headless/svpframe.cxx
+++ b/vcl/headless/svpframe.cxx
@@ -419,6 +419,10 @@ void SvpSalFrame::UpdateSettings( AllSettings& )
{
}
+void SvpSalFrame::Beep()
+{
+}
+
const SystemEnvData* SvpSalFrame::GetSystemData() const
{
return &m_aSystemChildData;
diff --git a/vcl/inc/aqua/salframe.h b/vcl/inc/aqua/salframe.h
index e6dcde37cf75..39d9496a9fe0 100644
--- a/vcl/inc/aqua/salframe.h
+++ b/vcl/inc/aqua/salframe.h
@@ -138,6 +138,7 @@ public:
virtual sal_Bool MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
virtual LanguageType GetInputLanguage();
virtual void UpdateSettings( AllSettings& rSettings );
+ virtual void Beep();
virtual const SystemEnvData* GetSystemData() const;
virtual SalPointerState GetPointerState();
virtual SalIndicatorState GetIndicatorState();
diff --git a/vcl/inc/headless/svpframe.hxx b/vcl/inc/headless/svpframe.hxx
index 4c073d5e273a..342f542e2554 100644
--- a/vcl/inc/headless/svpframe.hxx
+++ b/vcl/inc/headless/svpframe.hxx
@@ -106,6 +106,7 @@ public:
virtual sal_Bool MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
virtual LanguageType GetInputLanguage();
virtual void UpdateSettings( AllSettings& rSettings );
+ virtual void Beep();
virtual const SystemEnvData* GetSystemData() const;
virtual SalPointerState GetPointerState();
virtual SalIndicatorState GetIndicatorState();
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx
index 1132c38ce0d0..0e5a92bf1d48 100644
--- a/vcl/inc/salframe.hxx
+++ b/vcl/inc/salframe.hxx
@@ -184,6 +184,8 @@ public: // public for Sal Implementation
virtual void UpdateSettings( AllSettings& rSettings ) = 0;
+ virtual void Beep() = 0;
+
// returns system data (most prominent: window handle)
virtual const SystemEnvData*
GetSystemData() const = 0;
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index 63d066aa8044..9cf14676ad68 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -406,6 +406,8 @@ public:
virtual void UpdateSettings( AllSettings& rSettings );
+ virtual void Beep();
+
// returns system data (most prominent: window handle)
virtual const SystemEnvData* GetSystemData() const;
diff --git a/vcl/inc/unx/saldisp.hxx b/vcl/inc/unx/saldisp.hxx
index b20684e5ac39..2511495910b4 100644
--- a/vcl/inc/unx/saldisp.hxx
+++ b/vcl/inc/unx/saldisp.hxx
@@ -305,6 +305,8 @@ public:
void DbgPrintDisplayEvent(const char *pComment, XEvent *pEvent) const;
#endif
+ void Beep() const;
+
void ModifierMapping();
void SimulateKeyPress( sal_uInt16 nKeyCode );
sal_uInt16 GetIndicatorState() const;
diff --git a/vcl/inc/unx/salframe.h b/vcl/inc/unx/salframe.h
index a88686478376..28a5446331ac 100644
--- a/vcl/inc/unx/salframe.h
+++ b/vcl/inc/unx/salframe.h
@@ -240,6 +240,7 @@ public:
virtual sal_Bool MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
virtual LanguageType GetInputLanguage();
virtual void UpdateSettings( AllSettings& rSettings );
+ virtual void Beep();
virtual const SystemEnvData* GetSystemData() const;
virtual SalPointerState GetPointerState();
virtual SalIndicatorState GetIndicatorState();
diff --git a/vcl/inc/vcl/sound.hxx b/vcl/inc/vcl/sound.hxx
new file mode 100644
index 000000000000..7be53a0944ee
--- /dev/null
+++ b/vcl/inc/vcl/sound.hxx
@@ -0,0 +1,39 @@
+/* -*- 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 _SV_SOUND_HXX
+#define _SV_SOUND_HXX
+
+#include <vcl/dllapi.h>
+
+class Window;
+
+// ---------
+// - Sound -
+// ---------
+
+class VCL_DLLPUBLIC Sound
+{
+public:
+ static void Beep( Window* pWindow = NULL );
+};
+
+#endif // _SV_SOUND_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/win/salframe.h b/vcl/inc/win/salframe.h
index 54e10bd59d5b..2a622195f37d 100644
--- a/vcl/inc/win/salframe.h
+++ b/vcl/inc/win/salframe.h
@@ -121,6 +121,7 @@ public:
virtual sal_Bool MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode );
virtual LanguageType GetInputLanguage();
virtual void UpdateSettings( AllSettings& rSettings );
+ virtual void Beep();
virtual const SystemEnvData* GetSystemData() const;
virtual SalPointerState GetPointerState();
virtual SalIndicatorState GetIndicatorState();
diff --git a/vcl/source/app/sound.cxx b/vcl/source/app/sound.cxx
new file mode 100644
index 000000000000..308f37f8c57f
--- /dev/null
+++ b/vcl/source/app/sound.cxx
@@ -0,0 +1,40 @@
+/* -*- 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 <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/sound.hxx>
+
+#include <salframe.hxx>
+#include <svdata.hxx>
+
+void Sound::Beep( Window* pWindow )
+{
+ // #i91990#
+ if ( Application::IsHeadlessModeEnabled() )
+ return;
+
+ if ( !pWindow )
+ pWindow = ImplGetDefaultWindow();
+
+ pWindow->ImplGetFrame()->Beep();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx
index 0662899dba6e..fdc0c6814dc6 100644
--- a/vcl/unx/generic/app/saldisp.cxx
+++ b/vcl/unx/generic/app/saldisp.cxx
@@ -645,6 +645,12 @@ void SalX11Display::SetupInput( SalI18N_InputMethod *pInputMethod )
SetKbdExtension( pKbdExtension );
}
+// Sound
+void SalDisplay::Beep() const
+{
+ XBell( pDisp_, 100 );
+}
+
// Keyboard
namespace {
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index d614dd5728e9..3ea05095faac 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -2522,6 +2522,12 @@ bool X11SalFrame::SetPluginParent( SystemParentData* pNewParent )
return true;
}
+// Sound
+void X11SalFrame::Beep()
+{
+ GetDisplay()->Beep();
+}
+
// Event Handling
static sal_uInt16 sal_GetCode( int state )
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 63df5260cfe4..3e9da947db95 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -2651,6 +2651,11 @@ void GtkSalFrame::UpdateSettings( AllSettings& rSettings )
ReleaseGraphics( pGraphics );
}
+void GtkSalFrame::Beep()
+{
+ gdk_display_beep( getGdkDisplay() );
+}
+
const SystemEnvData* GtkSalFrame::GetSystemData() const
{
return &m_aSystemData;
diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx
index 5951b15f3690..a668d72551d3 100644
--- a/vcl/win/source/window/salframe.cxx
+++ b/vcl/win/source/window/salframe.cxx
@@ -2934,6 +2934,14 @@ const SystemEnvData* WinSalFrame::GetSystemData() const
// -----------------------------------------------------------------------
+void WinSalFrame::Beep()
+{
+ // a simple beep
+ MessageBeep( 0 );
+}
+
+// -----------------------------------------------------------------------
+
SalFrame::SalPointerState WinSalFrame::GetPointerState()
{
SalPointerState aState;