27#include <osl/diagnose.h>
28#include <osl/file.hxx>
29#include <rtl/ustring.hxx>
31#include <com/sun/star/uno/Sequence.h>
33#include <com/sun/star/awt/ActionEvent.hpp>
34#include <com/sun/star/awt/PushButtonType.hpp>
35#include <com/sun/star/awt/UnoControlDialog.hpp>
36#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
37#include <com/sun/star/awt/WindowAttribute.hpp>
38#include <com/sun/star/awt/XButton.hpp>
39#include <com/sun/star/awt/XControl.hpp>
40#include <com/sun/star/awt/XControlContainer.hpp>
41#include <com/sun/star/awt/XMessageBox.hpp>
42#include <com/sun/star/awt/XAnimation.hpp>
43#include <com/sun/star/awt/XTopWindow.hpp>
44#include <com/sun/star/awt/XVclWindowPeer.hpp>
45#include <com/sun/star/awt/XVclContainer.hpp>
46#include <com/sun/star/awt/XWindow.hpp>
47#include <com/sun/star/awt/XWindow2.hpp>
49#include <com/sun/star/beans/PropertyValue.hpp>
50#include <com/sun/star/beans/XPropertySet.hpp>
52#include <com/sun/star/configuration/theDefaultProvider.hpp>
54#include <com/sun/star/container/XNameContainer.hpp>
56#include <com/sun/star/frame/Desktop.hpp>
57#include <com/sun/star/frame/TerminationVetoException.hpp>
58#include <com/sun/star/lang/XMultiServiceFactory.hpp>
59#include <com/sun/star/task/InteractionHandler.hpp>
60#include <com/sun/star/task/InteractionRequestStringResolver.hpp>
79constexpr OUStringLiteral
BUTTON_MODEL =
u"com.sun.star.awt.UnoControlButtonModel";
80constexpr OUStringLiteral
GROUP_BOX_MODEL =
u"com.sun.star.awt.UnoControlGroupBoxModel";
88 mxActionListener( rxActionListener ),
92 mnLastCtrlState( -1 ),
93 mbDownloadBtnHasDots( false ),
95 mbStringsLoaded( false ),
97 mbListenerAdded(false),
98 mbShowsMessageBox(false)
114 osl::MutexGuard aGuard(
maMutex );
123 short nCurStateVal =
static_cast<short>(nCtrlState >>
i);
125 if ( ( nCurStateVal & 0x01 ) != ( nOldStateVal & 0x01 ) )
127 bool bEnableControl = ( ( nCurStateVal & 0x01 ) == 0x01 );
138 osl::MutexGuard aGuard(
maMutex );
157 osl::MutexGuard aGuard(
maMutex );
170 uno::Reference< awt::XWindow2 > xWindow(
mxUpdDlg, uno::UNO_QUERY );
173 return xWindow->isVisible();
181 osl::MutexGuard aGuard(
maMutex );
196 uno::Reference< awt::XWindow > xWindow(
mxUpdDlg, uno::UNO_QUERY );
201 uno::Reference< awt::XTopWindow > xTopWindow(
mxUpdDlg, uno::UNO_QUERY );
202 if ( xTopWindow.is() )
204 xTopWindow->toFront();
207 xTopWindow->addTopWindowListener(
this );
214 uno::Reference< awt::XWindow > xWindow(
mxUpdDlg, uno::UNO_QUERY );
224 if ( nPercent > 100 )
226 else if ( nPercent < 0 )
231 osl::MutexGuard aGuard(
maMutex );
248 std::size_t nLast = rFilePath.rfind(
'/' );
249 if ( nLast != std::u16string_view::npos )
252 const OUString aDownloadURL(rFilePath.substr( 0, nLast ));
253 osl::FileBase::getSystemPathFromFileURL( aDownloadURL,
msDownloadPath );
260 osl::MutexGuard aGuard(
maMutex );
263 sal_Int32
nIndex =
static_cast<sal_Int32
>(eState);
276 osl::MutexGuard aGuard(
maMutex );
279 sal_Int32
nIndex =
static_cast<sal_Int32
>(eState);
353 OSL_FAIL(
"UpdateHandler::actionPerformed: unknown command!" );
366 awt::ActionEvent aActionEvt;
368 aActionEvt.Source = e.Source;
407 throw uno::RuntimeException(
"UpdateHandler:: empty component context", *
this );
409 uno::Reference< lang::XMultiComponentFactory > xServiceManager(
mxContext->getServiceManager());
411 if( !xServiceManager.is() )
412 throw uno::RuntimeException(
"UpdateHandler: unable to obtain service manager from component context", *
this );
415 task::InteractionHandler::createWithParent(
mxContext,
nullptr),
416 uno::UNO_QUERY_THROW);
418 uno::Reference< task::XInteractionRequestStringResolver > xStrResolver =
419 task::InteractionRequestStringResolver::create(
mxContext );
420 beans::Optional< OUString > aErrorText = xStrResolver->getStringFromInformationalRequest( rRequest );
421 if ( aErrorText.IsPresent )
425 uno::Sequence< uno::Reference< task::XInteractionContinuation > > xContinuations = rRequest->getContinuations();
426 if ( xContinuations.getLength() == 1 )
433 xContinuations[0]->select();
449 uno::Reference< awt::XTopWindow > xTopWindow(
mxUpdDlg, uno::UNO_QUERY );
450 if ( xTopWindow.is() )
451 xTopWindow->toFront();
453 throw frame::TerminationVetoException(
454 "The office cannot be closed while displaying a warning!",
455 static_cast<frame::XTerminateListener*
>(
this));
464 osl::MutexGuard aGuard(
maMutex );
468 uno::Reference< awt::XTopWindow > xTopWindow(
mxUpdDlg, uno::UNO_QUERY );
469 if ( xTopWindow.is() )
470 xTopWindow->removeTopWindowListener(
this );
472 uno::Reference< lang::XComponent > xComponent(
mxUpdDlg, uno::UNO_QUERY );
473 if ( xComponent.is() )
474 xComponent->dispose();
587 .replaceAll(
"%PERCENT", OUString::number(
mnPercent ) );
630 std::pair<TranslateId, TranslateId> RID_UPDATE_BUBBLE[] =
632 { RID_UPDATE_BUBBLE_UPDATE_AVAIL, RID_UPDATE_BUBBLE_T_UPDATE_AVAIL },
633 { RID_UPDATE_BUBBLE_UPDATE_NO_DOWN, RID_UPDATE_BUBBLE_T_UPDATE_NO_DOWN },
634 { RID_UPDATE_BUBBLE_AUTO_START, RID_UPDATE_BUBBLE_T_AUTO_START },
635 { RID_UPDATE_BUBBLE_DOWNLOADING, RID_UPDATE_BUBBLE_T_DOWNLOADING },
636 { RID_UPDATE_BUBBLE_DOWNLOAD_PAUSED, RID_UPDATE_BUBBLE_T_DOWNLOAD_PAUSED },
637 { RID_UPDATE_BUBBLE_ERROR_DOWNLOADING, RID_UPDATE_BUBBLE_T_ERROR_DOWNLOADING },
638 { RID_UPDATE_BUBBLE_DOWNLOAD_AVAIL, RID_UPDATE_BUBBLE_T_DOWNLOAD_AVAIL },
639 { RID_UPDATE_BUBBLE_EXT_UPD_AVAIL, RID_UPDATE_BUBBLE_T_EXT_UPD_AVAIL }
661 uno::Reference< awt::XControlContainer > xContainer(
mxUpdDlg, uno::UNO_QUERY );
662 uno::Reference< awt::XAnimation > xThrobber( xContainer->getControl(
CTRL_THROBBER ), uno::UNO_QUERY );
664 if ( xThrobber.is() )
667 xThrobber->startAnimation();
669 xThrobber->stopAnimation();
672 uno::Reference< awt::XWindow > xWindow( xContainer->getControl(
CTRL_THROBBER ), uno::UNO_QUERY );
674 xWindow->setVisible( bStart );
679 const OUString &rPropName,
684 uno::Reference< awt::XControlContainer > xContainer(
mxUpdDlg, uno::UNO_QUERY );
685 uno::Reference< awt::XControl > xControl( xContainer->getControl( rCtrlName ), uno::UNO_SET_THROW );
686 uno::Reference< awt::XControlModel > xControlModel( xControl->getModel(), uno::UNO_SET_THROW );
687 uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY_THROW );
690 xPropSet->setPropertyValue( rPropName, rPropValue );
692 catch(
const beans::UnknownPropertyException& )
701 uno::Reference< awt::XControlContainer > xContainer(
mxUpdDlg, uno::UNO_QUERY );
703 if ( !xContainer.is() )
705 OSL_FAIL(
"UpdateHandler::showControl: could not get control container!" );
709 uno::Reference< awt::XWindow > xWindow( xContainer->getControl( rCtrlName ), uno::UNO_QUERY );
711 xWindow->setVisible( bShow );
717 uno::Reference< awt::XControlContainer > xContainer(
mxUpdDlg, uno::UNO_QUERY );
719 if ( !xContainer.is() )
721 OSL_FAIL(
"UpdateHandler::focusControl: could not get control container!" );
725 OSL_ENSURE( (eID <
BUTTON_COUNT),
"UpdateHandler::focusControl: id too big!" );
727 uno::Reference< awt::XWindow > xWindow( xContainer->getControl(
msButtonIDs[
static_cast<short>(eID)] ), uno::UNO_QUERY );
734 OUString
const & rServiceName,
735 OUString
const & rControlName,
736 awt::Rectangle
const & rPosSize,
737 uno::Sequence< beans::NamedValue >
const & rProps )
739 uno::Reference< lang::XMultiServiceFactory >
xFactory (rxDialogModel, uno::UNO_QUERY_THROW);
740 uno::Reference< awt::XControlModel >
xModel (
xFactory->createInstance (rServiceName), uno::UNO_QUERY_THROW);
741 uno::Reference< beans::XPropertySet > xPropSet (
xModel, uno::UNO_QUERY_THROW);
743 for (beans::NamedValue
const & prop : rProps)
745 xPropSet->setPropertyValue (prop.Name, prop.Value);
749 xPropSet->setPropertyValue(
"Name",
uno::Any (rControlName) );
750 xPropSet->setPropertyValue(
"PositionX",
uno::Any (rPosSize.X) );
751 xPropSet->setPropertyValue(
"PositionY",
uno::Any (rPosSize.Y) );
752 xPropSet->setPropertyValue(
"Height",
uno::Any (rPosSize.Height) );
753 xPropSet->setPropertyValue(
"Width",
uno::Any (rPosSize.Width) );
756 uno::Reference< container::XNameContainer > xContainer (rxDialogModel, uno::UNO_QUERY_THROW);
757 xContainer->insertByName( rControlName,
uno::Any (uno::Reference< uno::XInterface >(
xModel, uno::UNO_QUERY)));
763 uno::Reference< lang::XMultiServiceFactory > xConfigurationProvider(
764 css::configuration::theDefaultProvider::get(
mxContext ) );
766 beans::PropertyValue aProperty;
767 aProperty.Name =
"nodepath";
768 aProperty.Value <<= OUString(
"org.openoffice.Setup/Product");
770 uno::Sequence< uno::Any > aArgumentList{
uno::Any(aProperty) };
772 uno::Reference< uno::XInterface > xConfigAccess = xConfigurationProvider->createInstanceWithArguments(
"com.sun.star.configuration.ConfigurationAccess",
775 uno::Reference< container::XNameAccess > xNameAccess( xConfigAccess, uno::UNO_QUERY_THROW );
777 OUString aProductVersion;
778 xNameAccess->getByName(
"ooSetupVersion") >>= aProductVersion;
779 OUString aProductFullVersion;
780 xNameAccess->getByName(
"ooSetupVersionAboutBox") >>= aProductFullVersion;
781 rString = rString.replaceFirst( aProductVersion, aProductFullVersion );
789 uno::Reference< awt::XControl > xControl(
mxUpdDlg, uno::UNO_QUERY );
790 if ( !xControl.is() )
return bRet;
792 uno::Reference< awt::XWindowPeer > xPeer = xControl->getPeer();
793 if ( !xPeer.is() )
return bRet;
795 uno::Reference< awt::XToolkit > xToolkit = xPeer->getToolkit();
796 if ( !xToolkit.is() )
return bRet;
798 awt::WindowDescriptor aDescriptor;
800 sal_Int32 nWindowAttributes = awt::WindowAttribute::BORDER | awt::WindowAttribute::MOVEABLE | awt::WindowAttribute::CLOSEABLE;
801 nWindowAttributes |= awt::VclWindowPeerAttribute::YES_NO;
802 nWindowAttributes |= awt::VclWindowPeerAttribute::DEF_NO;
804 aDescriptor.Type = awt::WindowClass_MODALTOP;
805 aDescriptor.WindowServiceName =
"warningbox";
806 aDescriptor.ParentIndex = -1;
807 aDescriptor.Parent = xPeer;
808 aDescriptor.Bounds = awt::Rectangle( 10, 10, 250, 150 );
809 aDescriptor.WindowAttributes = nWindowAttributes;
811 uno::Reference< awt::XMessageBox > xMsgBox( xToolkit->createWindow( aDescriptor ), uno::UNO_QUERY );
817 xMsgBox->setMessageText( rWarningText );
818 nRet = xMsgBox->execute();
824 uno::Reference< lang::XComponent > xComponent( xMsgBox, uno::UNO_QUERY );
825 if ( xComponent.is() )
826 xComponent->dispose();
833 const OUString &rBtnText_1,
834 const OUString &rBtnText_2 )
const
838 uno::Reference< awt::XControl > xControl(
mxUpdDlg, uno::UNO_QUERY );
839 if ( !xControl.is() )
return bRet;
841 uno::Reference< awt::XWindowPeer > xPeer = xControl->getPeer();
842 if ( !xPeer.is() )
return bRet;
844 uno::Reference< awt::XToolkit > xToolkit = xPeer->getToolkit();
845 if ( !xToolkit.is() )
return bRet;
847 awt::WindowDescriptor aDescriptor;
849 sal_Int32 nWindowAttributes = awt::WindowAttribute::BORDER | awt::WindowAttribute::MOVEABLE | awt::WindowAttribute::CLOSEABLE;
850 nWindowAttributes |= awt::VclWindowPeerAttribute::YES_NO;
851 nWindowAttributes |= awt::VclWindowPeerAttribute::DEF_NO;
853 aDescriptor.Type = awt::WindowClass_MODALTOP;
854 aDescriptor.WindowServiceName =
"warningbox";
855 aDescriptor.ParentIndex = -1;
856 aDescriptor.Parent = xPeer;
857 aDescriptor.Bounds = awt::Rectangle( 10, 10, 250, 150 );
858 aDescriptor.WindowAttributes = nWindowAttributes;
860 uno::Reference< awt::XMessageBox > xMsgBox( xToolkit->createWindow( aDescriptor ), uno::UNO_QUERY );
863 uno::Reference< awt::XVclContainer > xMsgBoxCtrls( xMsgBox, uno::UNO_QUERY );
864 if ( xMsgBoxCtrls.is() )
866 uno::Sequence< uno::Reference< awt::XWindow > > xChildren = xMsgBoxCtrls->getWindows();
868 for ( uno::Reference< awt::XWindow >
const & child : std::as_const(xChildren) )
870 uno::Reference< awt::XVclWindowPeer > xMsgBoxCtrl( child, uno::UNO_QUERY );
871 if ( xMsgBoxCtrl.is() )
873 bool bIsDefault =
true;
874 uno::Any aValue = xMsgBoxCtrl->getProperty(
"DefaultButton" );
875 aValue >>= bIsDefault;
877 xMsgBoxCtrl->setProperty(
"Text",
uno::Any( rBtnText_1 ) );
879 xMsgBoxCtrl->setProperty(
"Text",
uno::Any( rBtnText_2 ) );
887 xMsgBox->setMessageText( rWarningText );
888 nRet = xMsgBox->execute();
895 uno::Reference< lang::XComponent > xComponent( xMsgBox, uno::UNO_QUERY );
896 if ( xComponent.is() )
897 xComponent->dispose();
907 .replaceAll(
"%FILENAME", rFileName )
919#define BUTTON_HEIGHT 14
920#define BUTTON_WIDTH 50
921#define BUTTON_X_OFFSET 7
922#define BUTTON_Y_OFFSET 3
923#define LABEL_HEIGHT 10
925#define DIALOG_WIDTH 300
926#define DIALOG_BORDER 5
927#define INNER_BORDER 3
929#define BOX_HEIGHT1 ( LABEL_HEIGHT + 3*BUTTON_HEIGHT + 2*BUTTON_Y_OFFSET + 2*INNER_BORDER )
930#define BOX_HEIGHT2 50
931#define EDIT_WIDTH ( DIALOG_WIDTH - 2 * DIALOG_BORDER )
932#define BOX1_BTN_X ( DIALOG_BORDER + EDIT_WIDTH - BUTTON_WIDTH - INNER_BORDER )
933#define BOX1_BTN_Y ( DIALOG_BORDER + LABEL_HEIGHT + INNER_BORDER)
934#define THROBBER_WIDTH 16
935#define THROBBER_HEIGHT 16
936#define THROBBER_X_POS ( DIALOG_BORDER + 8 )
937#define THROBBER_Y_POS ( DIALOG_BORDER + 23 )
938#define BUTTON_BAR_HEIGHT 24
939#define LABEL_OFFSET ( LABEL_HEIGHT + 4 )
940#define DIALOG_HEIGHT ( BOX_HEIGHT1 + BOX_HEIGHT2 + LABEL_OFFSET + BUTTON_BAR_HEIGHT + 3 * DIALOG_BORDER )
941#define LABEL_Y_POS ( 2 * DIALOG_BORDER + BOX_HEIGHT1 )
942#define EDIT2_Y_POS ( LABEL_Y_POS + LABEL_HEIGHT )
943#define BUTTON_BAR_Y_POS ( EDIT2_Y_POS + DIALOG_BORDER + BOX_HEIGHT2 )
944#define BUTTON_Y_POS ( BUTTON_BAR_Y_POS + 8 )
945#define CLOSE_BTN_X ( DIALOG_WIDTH - DIALOG_BORDER - BUTTON_WIDTH )
946#define INSTALL_BTN_X ( CLOSE_BTN_X - 2 * BUTTON_X_OFFSET - BUTTON_WIDTH )
947#define DOWNLOAD_BTN_X ( INSTALL_BTN_X - BUTTON_X_OFFSET - BUTTON_WIDTH )
948#define PROGRESS_WIDTH 80
949#define PROGRESS_HEIGHT 10
950#define PROGRESS_X_POS ( DIALOG_BORDER + 8 )
951#define PROGRESS_Y_POS ( DIALOG_BORDER + 2*LABEL_OFFSET )
961 nShiftMe =
static_cast<short>(nControls >>
i);
996 uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create(
mxContext );
997 xDesktop->addTerminateListener(
this );
1002 uno::Reference< lang::XMultiComponentFactory >
xFactory(
mxContext->getServiceManager(), uno::UNO_SET_THROW );
1003 uno::Reference< awt::XControlModel > xControlModel(
xFactory->createInstanceWithContext(
1004 "com.sun.star.awt.UnoControlDialogModel",
1008 uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY_THROW );
1011 xPropSet->setPropertyValue(
"Closeable",
uno::Any(
true ) );
1012 xPropSet->setPropertyValue(
"Enabled",
uno::Any(
true ) );
1013 xPropSet->setPropertyValue(
"Moveable",
uno::Any(
true ) );
1014 xPropSet->setPropertyValue(
"Sizeable",
uno::Any(
true ) );
1015 xPropSet->setPropertyValue(
"DesktopAsParent",
uno::Any(
true ) );
1016 xPropSet->setPropertyValue(
"PositionX",
uno::Any(sal_Int32( 100 )) );
1017 xPropSet->setPropertyValue(
"PositionY",
uno::Any(sal_Int32( 100 )) );
1030 uno::Sequence< beans::NamedValue > aProps;
1037 uno::Sequence< beans::NamedValue > aProps
1040 {
"Border",
uno::Any( sal_Int16( 0 ) ) },
1041 {
"PaintTransparent",
uno::Any(
true ) },
1044 {
"AutoVScroll",
uno::Any(
true ) },
1056 uno::Sequence< beans::NamedValue > aProps
1059 {
"Border",
uno::Any( sal_Int16( 0 ) ) },
1060 {
"PaintTransparent",
uno::Any(
true ) },
1072 uno::Sequence< beans::NamedValue > aProps
1074 {
"DefaultButton",
uno::Any(
false ) },
1076 {
"PushButtonType",
uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) },
1086 uno::Sequence< beans::NamedValue > aProps
1088 {
"DefaultButton",
uno::Any(
false ) },
1090 {
"PushButtonType",
uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) },
1103 uno::Sequence< beans::NamedValue > aProps
1105 {
"DefaultButton",
uno::Any(
false ) },
1107 {
"PushButtonType",
uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) },
1127 uno::Sequence< beans::NamedValue > aProps;
1134 uno::Sequence< beans::NamedValue > aProps
1136 {
"Text",
uno::Any( OUString() ) },
1137 {
"Border",
uno::Any( sal_Int16( 0 ) ) },
1138 {
"PaintTransparent",
uno::Any(
true ) },
1141 {
"AutoVScroll",
uno::Any(
true ) },
1153 uno::Sequence< beans::NamedValue > aProps { {
"Orientation",
uno::Any( sal_Int32( 0 ) ) } };
1160 uno::Sequence< beans::NamedValue > aProps
1162 {
"DefaultButton",
uno::Any(
false ) },
1166 {
"PushButtonType",
uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) },
1179 uno::Sequence< beans::NamedValue > aProps
1181 {
"DefaultButton",
uno::Any(
false ) },
1183 {
"PushButtonType",
uno::Any( sal_Int16(awt::PushButtonType_STANDARD) ) },
1193 uno::Sequence< beans::NamedValue > aProps
1195 {
"DefaultButton",
uno::Any(
false ) },
1197 {
"PushButtonType",
uno::Any( sal_Int16(awt::PushButtonType_HELP) ) }
1205 uno::Sequence< beans::NamedValue > aProps;
1212 uno::Sequence< beans::NamedValue > aProps
1215 {
"ProgressValue",
uno::Any( sal_Int32( 0 ) ) },
1216 {
"ProgressValueMax",
uno::Any( sal_Int32( 100 ) ) },
1217 {
"ProgressValueMin",
uno::Any( sal_Int32( 0 ) ) },
1224 uno::Reference< awt::XUnoControlDialog > xControl = awt::UnoControlDialog::create(
mxContext );
1225 xControl->setModel( xControlModel );
1229 xControl->setVisible(
false );
1232 xControl->createPeer(
nullptr,
nullptr );
1236 uno::Reference< awt::XButton > xButton ( xControl->getControl(
msButtonIDs[
i] ), uno::UNO_QUERY);
1240 xButton->addActionListener(
this );
1245 mxUpdDlg.set( xControl, uno::UNO_QUERY_THROW );
OUString getBubbleTitle(UpdateState eState)
css::uno::Reference< css::task::XInteractionHandler > mxInteractionHdl
OUString msDownloadNotAvail
virtual ~UpdateHandler() override
virtual void SAL_CALL windowDeactivated(const css::lang::EventObject &e) override
void enableControls(short nCtrlState)
OUString substVariables(const OUString &rSource) const
virtual void SAL_CALL windowClosed(const css::lang::EventObject &e) override
void setErrorMessage(const OUString &rErrorMsg)
OUString msBubbleTitles[UPDATESTATES_COUNT]
void updateState(UpdateState eNewState)
void setFullVersion(OUString &rString)
void setProgress(sal_Int32 nPercent)
rtl::Reference< IActionListener > mxActionListener
virtual void SAL_CALL notifyTermination(const css::lang::EventObject &e) override
static OUString loadString(const std::locale &rLocale, TranslateId pResourceId)
UpdateHandler(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const rtl::Reference< IActionListener > &rxActionListener)
void setVisible(bool bVisible=true)
void showControl(const OUString &rCtrlName, bool bShow=true)
void focusControl(DialogControls eID)
void setControlProperty(const OUString &rCtrlName, const OUString &rPropName, const css::uno::Any &rPropValue)
css::uno::Reference< css::awt::XDialog > mxUpdDlg
virtual void SAL_CALL actionPerformed(css::awt::ActionEvent const &rEvent) override
virtual void SAL_CALL windowActivated(const css::lang::EventObject &e) override
void setState(UpdateState eState)
OUString msBubbleTexts[UPDATESTATES_COUNT]
bool showWarning(const OUString &rWarning) const
void showControls(short nControls)
virtual void SAL_CALL queryTermination(const css::lang::EventObject &e) override
static void insertControlModel(css::uno::Reference< css::awt::XControlModel > const &rxDialogModel, OUString const &rServiceName, OUString const &rControlName, css::awt::Rectangle const &rPosSize, css::uno::Sequence< css::beans::NamedValue > const &rProps)
void startThrobber(bool bStart=true)
bool mbDownloadBtnHasDots
OUString msDownloadWarning
OUString msButtonIDs[BUTTON_COUNT]
void setDownloadFile(std::u16string_view rPath)
virtual void SAL_CALL windowOpened(const css::lang::EventObject &e) override
virtual void SAL_CALL windowNormalized(const css::lang::EventObject &e) override
OUString msOverwriteWarning
OUString getBubbleText(UpdateState eState)
virtual void SAL_CALL windowClosing(const css::lang::EventObject &e) override
OUString msReloadContinue
virtual void SAL_CALL handle(const css::uno::Reference< css::task::XInteractionRequest > &Request) override
void setDownloadBtnLabel(bool bAppendDots)
virtual void SAL_CALL disposing(const css::lang::EventObject &rObj) override
css::uno::Reference< css::uno::XComponentContext > mxContext
virtual void SAL_CALL windowMinimized(const css::lang::EventObject &e) override
bool showOverwriteWarning() const
OUString msDescriptionMsg
#define TOOLS_WARN_EXCEPTION(area, stream)
Reference< XSingleServiceFactory > xFactory
#define HID_CHECK_FOR_UPD_PAUSE
#define HID_CHECK_FOR_UPD_DESCRIPTION
#define HID_CHECK_FOR_UPD_STATUS
#define HID_CHECK_FOR_UPD_DOWNLOAD
#define HID_CHECK_FOR_UPD_CANCEL
#define HID_CHECK_FOR_UPD_CLOSE
#define HID_CHECK_FOR_UPD_RESUME
#define HID_CHECK_FOR_UPD_DLG
#define HID_CHECK_FOR_UPD_DOWNLOAD2
#define SAL_N_ELEMENTS(arr)
std::locale Create(std::string_view aPrefixName, const LanguageTag &rLocale)
OUString get(TranslateId sContextAndId, const std::locale &loc)
constexpr OUStringLiteral first
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
Reference< XModel > xModel
constexpr OUStringLiteral BUTTON_MODEL
constexpr OUStringLiteral CTRL_THROBBER
constexpr OUStringLiteral TEXT_STATUS
constexpr OUStringLiteral GROUP_BOX_MODEL
constexpr OUStringLiteral TEXT_PERCENT
constexpr OUStringLiteral FIXED_TEXT_MODEL
constexpr OUStringLiteral CTRL_PROGRESS
constexpr OUStringLiteral EDIT_FIELD_MODEL
constexpr OUStringLiteral TEXT_DESCRIPTION
constexpr OUStringLiteral FIXED_LINE_MODEL
constexpr OUStringLiteral COMMAND_CLOSE
@ UPDATESTATE_UPDATE_NO_DOWNLOAD
@ UPDATESTATE_ERROR_DOWNLOADING
@ UPDATESTATE_EXT_UPD_AVAIL
@ UPDATESTATE_DOWNLOAD_PAUSED
@ UPDATESTATE_ERROR_CHECKING
@ UPDATESTATE_DOWNLOAD_AVAIL
@ UPDATESTATE_NO_UPDATE_AVAIL
@ UPDATESTATE_UPDATE_AVAIL
@ UPDATESTATE_DOWNLOADING
constexpr OUStringLiteral INET_HID_SCHEME