diff options
Diffstat (limited to 'sw/source/uibase/envelp/syncbtn.cxx')
-rw-r--r-- | sw/source/uibase/envelp/syncbtn.cxx | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/sw/source/uibase/envelp/syncbtn.cxx b/sw/source/uibase/envelp/syncbtn.cxx new file mode 100644 index 000000000000..b3882f011b8e --- /dev/null +++ b/sw/source/uibase/envelp/syncbtn.cxx @@ -0,0 +1,82 @@ +/* -*- 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 <sfx2/viewfrm.hxx> +#include <sfx2/dispatch.hxx> + +#include "cmdid.h" +#include "swmodule.hxx" +#include "view.hxx" +#include "edtwin.hxx" +#include "label.hrc" + +#define _SYNCDLG +#include "syncbtn.hxx" +#include "swtypes.hxx" + +SFX_IMPL_FLOATINGWINDOW( SwSyncChildWin, FN_SYNC_LABELS ) + +SwSyncChildWin::SwSyncChildWin( Window* _pParent, + sal_uInt16 nId, + SfxBindings* pBindings, + SfxChildWinInfo* pInfo ) : + SfxChildWindow( _pParent, nId ) +{ + pWindow = new SwSyncBtnDlg( pBindings, this, _pParent); + + if (!pInfo->aSize.Width() || !pInfo->aSize.Height()) + { + SwView* pActiveView = ::GetActiveView(); + if(pActiveView) + { + const SwEditWin &rEditWin = pActiveView->GetEditWin(); + pWindow->SetPosPixel(rEditWin.OutputToScreenPixel(Point(0, 0))); + } + else + pWindow->SetPosPixel(_pParent->OutputToScreenPixel(Point(0, 0))); + pInfo->aPos = pWindow->GetPosPixel(); + pInfo->aSize = pWindow->GetSizePixel(); + } + + ((SwSyncBtnDlg *)pWindow)->Initialize(pInfo); + + pWindow->Show(); +} + +SwSyncBtnDlg::SwSyncBtnDlg( SfxBindings* _pBindings, + SfxChildWindow* pChild, + Window *pParent) : + SfxFloatingWindow(_pBindings, pChild, pParent, SW_RES(DLG_SYNC_BTN)), + aSyncBtn (this, SW_RES(BTN_SYNC )) +{ + FreeResource(); + aSyncBtn.SetClickHdl(LINK(this, SwSyncBtnDlg, BtnHdl)); +} + +SwSyncBtnDlg::~SwSyncBtnDlg() +{ +} + +IMPL_LINK_NOARG(SwSyncBtnDlg, BtnHdl) +{ + SfxViewFrame::Current()->GetDispatcher()->Execute(FN_UPDATE_ALL_LINKS, SFX_CALLMODE_ASYNCHRON); + return 0; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |