summaryrefslogtreecommitdiffstats
path: root/toolkit/source
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/source')
-rw-r--r--toolkit/source/awt/vclxbutton.cxx130
-rw-r--r--toolkit/source/awt/vclxbutton.hxx69
2 files changed, 199 insertions, 0 deletions
diff --git a/toolkit/source/awt/vclxbutton.cxx b/toolkit/source/awt/vclxbutton.cxx
new file mode 100644
index 000000000000..01a08e480407
--- /dev/null
+++ b/toolkit/source/awt/vclxbutton.cxx
@@ -0,0 +1,130 @@
+#include "vclxbutton.hxx"
+
+#include "layoutcore.hxx"
+#include <com/sun/star/awt/ImagePosition.hpp>
+#include <vcl/button.hxx>
+
+namespace css = com::sun::star;
+
+IconButton::IconButton( css::uno::Reference< css::uno::XInterface > xButton,
+ rtl::OUString aDefaultLabel, const char *pGraphName )
+ : VCLXProxy( xButton )
+{
+ setLabel( aDefaultLabel );
+ setProperty( rtl::OUString::createFromAscii( "Graphic" ),
+ css::uno::Any( layoutimpl::loadGraphic( pGraphName ) ) );
+ setProperty( rtl::OUString::createFromAscii( "ImagePosition" ),
+ css::uno::Any( css::awt::ImagePosition::LeftCenter ) );
+ setProperty( rtl::OUString::createFromAscii( "Align" ),
+ css::uno::Any( (sal_Int16) 1 /* magic - center */ ) );
+}
+
+// FIXME: l10n/i18n of Reset & Apply
+
+VCLXOKButton::VCLXOKButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_OK ),
+ "res/commandimagelist/sc_ok.png" )
+{
+}
+
+VCLXCancelButton::VCLXCancelButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_CANCEL ),
+// : IconButton( xButton, rtl::OUString::createFromAscii( "~Cancel " ),
+ "res/commandimagelist/sc_cancel.png" )
+{
+}
+
+VCLXYesButton::VCLXYesButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_YES ),
+ "res/commandimagelist/sc_yes.png" )
+{
+}
+
+VCLXNoButton::VCLXNoButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_NO ),
+ "res/commandimagelist/sc_no.png" )
+{
+}
+
+VCLXRetryButton::VCLXRetryButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_RETRY ),
+ "res/commandimagelist/sc_retry.png" )
+{
+}
+
+VCLXIgnoreButton::VCLXIgnoreButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_IGNORE ),
+ "res/commandimagelist/sc_ignore.png" )
+{
+}
+
+VCLXResetButton::VCLXResetButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, rtl::OUString::createFromAscii( "~Reset " ),
+ "res/commandimagelist/sc_reset.png" )
+{
+}
+
+VCLXApplyButton::VCLXApplyButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, rtl::OUString::createFromAscii( "Apply" ),
+ "res/commandimagelist/sc_apply.png" )
+{
+}
+
+VCLXHelpButton::VCLXHelpButton( css::uno::Reference< css::uno::XInterface > xButton )
+ : IconButton( xButton, Button::GetStandardText( BUTTON_HELP ),
+ "res/commandimagelist/sc_help.png" )
+{
+}
+
+namespace layoutimpl
+{
+css::uno::Reference< css::awt::XLayoutConstrains >
+createInternalWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
+ css::uno::Reference< css::uno::XInterface > xParent,
+ const rtl::OUString &rName, long nProps )
+{
+ css::uno::Reference< css::awt::XLayoutConstrains > xRef, xWrapped;
+ bool bOK = false;
+ bool bCancel = false;
+ bool bYes = false;
+ bool bNo = false;
+ bool bRetry = false;
+ bool bIgnore = false;
+ bool bReset = false;
+ bool bApply = false;
+ bool bHelp = false;
+ if ( ( bOK = rName.equalsAscii( "okbutton" ) )
+ || ( bCancel = rName.equalsAscii( "cancelbutton" ) )
+ || ( bYes = rName.equalsAscii( "yesbutton" ) )
+ || ( bNo = rName.equalsAscii( "nobutton" ) )
+ || ( bRetry = rName.equalsAscii( "retrybutton" ) )
+ || ( bIgnore = rName.equalsAscii( "ignorebutton" ) )
+ || ( bReset = rName.equalsAscii( "resetbutton" ) )
+ || ( bApply = rName.equalsAscii( "applybutton" ) )
+ || ( bHelp = rName.equalsAscii( "helpbutton" ) ) )
+ {
+ xWrapped = createWidget( xToolkit, xParent,
+ rtl::OUString::createFromAscii( "pushbutton" ),
+ nProps );
+ if ( bOK )
+ xRef = new VCLXOKButton( xWrapped );
+ if ( bCancel )
+ xRef = new VCLXCancelButton( xWrapped );
+ if ( bYes )
+ xRef = new VCLXYesButton( xWrapped );
+ if ( bNo )
+ xRef = new VCLXNoButton( xWrapped );
+ if ( bRetry )
+ xRef = new VCLXRetryButton( xWrapped );
+ if ( bIgnore )
+ xRef = new VCLXIgnoreButton( xWrapped );
+ if ( bReset )
+ xRef = new VCLXResetButton( xWrapped );
+ if ( bApply )
+ xRef = new VCLXApplyButton( xWrapped );
+ if ( bHelp )
+ xRef = new VCLXHelpButton( xWrapped );
+ }
+ return xRef;
+}
+};
diff --git a/toolkit/source/awt/vclxbutton.hxx b/toolkit/source/awt/vclxbutton.hxx
new file mode 100644
index 000000000000..8e6846a87668
--- /dev/null
+++ b/toolkit/source/awt/vclxbutton.hxx
@@ -0,0 +1,69 @@
+#ifndef LAYOUT_AWT_VCLXBUTTON_HXX
+#define LAYOUT_AWT_VCLXBUTTON_HXX
+
+#include "vclxproxy.hxx"
+
+/* Replacements for broken toolkit/ impls. of ok, cancel, help button, etc. */
+
+class IconButton : public VCLXProxy
+{
+protected:
+ IconButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton,
+ rtl::OUString aDefaultLabel, const char *pGraphName );
+};
+
+class VCLXOKButton : public IconButton
+{
+public:
+ VCLXOKButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXCancelButton : public IconButton
+{
+public:
+ VCLXCancelButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXYesButton : public IconButton
+{
+public:
+ VCLXYesButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXNoButton : public IconButton
+{
+public:
+ VCLXNoButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXRetryButton : public IconButton
+{
+public:
+ VCLXRetryButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXIgnoreButton : public IconButton
+{
+public:
+ VCLXIgnoreButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXResetButton : public IconButton
+{
+public:
+ VCLXResetButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXApplyButton : public IconButton
+{
+public:
+ VCLXApplyButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+class VCLXHelpButton : public IconButton
+{
+public:
+ VCLXHelpButton( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xButton );
+};
+
+#endif // LAYOUT_AWT_VCLXBUTTON_HXX