summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extras/source/glade/libreoffice-catalog.xml.in4
-rw-r--r--include/vcl/customweld.hxx3
-rw-r--r--sc/source/ui/inc/AccessibleContextBase.hxx11
-rw-r--r--sc/source/ui/inc/scuitphfedit.hxx77
-rw-r--r--sc/source/ui/inc/tphfedit.hxx42
-rw-r--r--sc/source/ui/pagedlg/scuitphfedit.cxx513
-rw-r--r--sc/source/ui/pagedlg/tphfedit.cxx129
-rw-r--r--sc/uiconfig/scalc/ui/headerfootercontent.ui112
-rwxr-xr-xsolenv/bin/native-code.py1
-rw-r--r--svx/source/dialog/ClassificationEditView.cxx2
10 files changed, 481 insertions, 413 deletions
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index afd5a35b392d..0c2957caa44b 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -328,10 +328,6 @@
generic-name="Cursor Reference Edit" parent="foruilo-RefEdit"
icon-name="widget-gtk-textentry"/>
- <glade-widget-class title="Text View" name="sclo-ScEditWindow"
- generic-name="Text View" parent="GtkTextView"
- icon-name="widget-gtk-textentry"/>
-
<glade-widget-class title="Open Document ListBox" name="dbulo-OpenDocumentListBox"
generic-name="Open Document ListBox" parent="GtkComboBox"
icon-name="widget-gtk-combobox"/>
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index e8bbb2129912..a003d6b4bace 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -38,6 +38,7 @@ public:
virtual tools::Rectangle GetFocusRect() { return tools::Rectangle(); }
virtual FactoryFunction GetUITestFactory() const { return nullptr; }
virtual OUString RequestHelp(tools::Rectangle&) { return OUString(); }
+ virtual OUString GetHelpText() const { return m_pDrawingArea->get_tooltip_text(); }
Size const& GetOutputSizePixel() const { return m_aSize; }
void SetOutputSizePixel(const Size& rSize) { m_aSize = rSize; }
virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) { m_pDrawingArea = pDrawingArea; }
@@ -124,6 +125,8 @@ public:
void set_sensitive(bool bSensitive) { m_xDrawingArea->set_sensitive(bSensitive); }
bool get_sensitive() const { return m_xDrawingArea->get_sensitive(); }
bool get_visible() const { return m_xDrawingArea->get_visible(); }
+ void set_grid_left_attach(int nAttach) { m_xDrawingArea->set_grid_left_attach(nAttach); }
+ int get_grid_left_attach() const { return m_xDrawingArea->get_grid_left_attach(); }
};
}
#endif
diff --git a/sc/source/ui/inc/AccessibleContextBase.hxx b/sc/source/ui/inc/AccessibleContextBase.hxx
index d8e7353f123b..8451169a8f70 100644
--- a/sc/source/ui/inc/AccessibleContextBase.hxx
+++ b/sc/source/ui/inc/AccessibleContextBase.hxx
@@ -241,6 +241,12 @@ public:
void
CommitChange(const css::accessibility::AccessibleEventObject& rEvent) const;
+ /// Use this method to set initial Name without notification
+ void SetName(const OUString& rName) { msName = rName; }
+
+ /// Use this method to set initial Description without notification
+ void SetDescription(const OUString& rDesc) { msDescription = rDesc; }
+
protected:
/// Calls all FocusListener to tell they that the focus is gained.
void CommitFocusGained() const;
@@ -253,11 +259,6 @@ protected:
/// @throws css::lang::DisposedException
void IsObjectValid() const;
- /// Use this method to set initial Name without notification
- void SetName(const OUString& rName) { msName = rName; }
- /// Use this method to set initial Description without notification
- void SetDescription(const OUString& rDesc) { msDescription = rDesc; }
-
/// Reference to the parent object.
css::uno::Reference<css::accessibility::XAccessible> mxParent;
diff --git a/sc/source/ui/inc/scuitphfedit.hxx b/sc/source/ui/inc/scuitphfedit.hxx
index 541ff19b76ee..d377a12d0cba 100644
--- a/sc/source/ui/inc/scuitphfedit.hxx
+++ b/sc/source/ui/inc/scuitphfedit.hxx
@@ -21,8 +21,8 @@
#define INCLUDED_SC_SOURCE_UI_INC_SCUITPHFEDIT_HXX
#include "tphfedit.hxx"
-#include <sfx2/tabdlg.hxx>
-#include <vcl/menubtn.hxx>
+#include <vcl/customweld.hxx>
+#include <vcl/weld.hxx>
enum ScHFEntryId
{
@@ -54,40 +54,48 @@ public:
void ClearTextAreas();
protected:
- ScHFEditPage( vcl::Window* pParent,
+ ScHFEditPage( TabPageParent pParent,
const SfxItemSet& rCoreSet,
sal_uInt16 nWhich,
bool bHeader );
virtual ~ScHFEditPage() override;
- virtual void dispose() override;
private:
- VclPtr<ScEditWindow> m_pWndLeft;
- VclPtr<ScEditWindow> m_pWndCenter;
- VclPtr<ScEditWindow> m_pWndRight;
- VclPtr<FixedText> m_pFtDefinedHF;
- VclPtr<ListBox> m_pLbDefined;
- VclPtr<FixedText> m_pFtCustomHF;
- VclPtr<PushButton> m_pBtnText;
- VclPtr<MenuButton> m_pBtnFile;
- VclPtr<PushButton> m_pBtnTable;
- VclPtr<PushButton> m_pBtnPage;
- VclPtr<PushButton> m_pBtnLastPage;
- VclPtr<PushButton> m_pBtnDate;
- VclPtr<PushButton> m_pBtnTime;
-
- VclPtr<FixedText> m_pFtConfidential;
- VclPtr<FixedText> m_pFtPage;
- VclPtr<FixedText> m_pFtOfQuestion;
- VclPtr<FixedText> m_pFtOf;
- VclPtr<FixedText> m_pFtNone;
- VclPtr<FixedText> m_pFtCreatedBy;
- VclPtr<FixedText> m_pFtCustomized;
+ sal_uInt16 const nWhich;
+ bool m_bDropDownActive;
+ sal_Int64 m_nTimeToggled;
+
+ std::unique_ptr<weld::Label> m_xFtDefinedHF;
+ std::unique_ptr<weld::ComboBox> m_xLbDefined;
+ std::unique_ptr<weld::Label> m_xFtCustomHF;
+ std::unique_ptr<weld::Button> m_xBtnText;
+ std::unique_ptr<weld::MenuButton> m_xBtnFile;
+ std::unique_ptr<weld::Button> m_xBtnTable;
+ std::unique_ptr<weld::Button> m_xBtnPage;
+ std::unique_ptr<weld::Button> m_xBtnLastPage;
+ std::unique_ptr<weld::Button> m_xBtnDate;
+ std::unique_ptr<weld::Button> m_xBtnTime;
+
+ std::unique_ptr<weld::Label> m_xFtConfidential;
+ std::unique_ptr<weld::Label> m_xFtPage;
+ std::unique_ptr<weld::Label> m_xFtOfQuestion;
+ std::unique_ptr<weld::Label> m_xFtOf;
+ std::unique_ptr<weld::Label> m_xFtNone;
+ std::unique_ptr<weld::Label> m_xFtCreatedBy;
+ std::unique_ptr<weld::Label> m_xFtCustomized;
+
+ std::unique_ptr<weld::Widget> m_xLeft;
+ std::unique_ptr<weld::Widget> m_xRight;
+
+ std::unique_ptr<ScEditWindow> m_xWndLeft;
+ std::unique_ptr<ScEditWindow> m_xWndCenter;
+ std::unique_ptr<ScEditWindow> m_xWndRight;
+ std::unique_ptr<weld::CustomWeld> m_xWndLeftWnd;
+ std::unique_ptr<weld::CustomWeld> m_xWndCenterWnd;
+ std::unique_ptr<weld::CustomWeld> m_xWndRightWnd;
ScEditWindow * m_pEditFocus; ///one of m_pWndLeft, m_pWndCenter, m_pWndRight
- sal_uInt16 const nWhich;
-
DECL_LINK( ObjectSelectHdl, ScEditWindow&, void );
private:
@@ -99,9 +107,10 @@ private:
bool IsPageEntry(EditEngine*pEngine, const EditTextObject* pTextObj);
static bool IsDateEntry(const EditTextObject* pTextObj);
static bool IsExtFileNameEntry(const EditTextObject* pTextObj);
- DECL_LINK( ListHdl_Impl, ListBox&, void);
- DECL_LINK( ClickHdl, Button*, void );
- DECL_LINK( MenuHdl, MenuButton*, void );
+ DECL_LINK( ListHdl_Impl, weld::ComboBox&, void);
+ DECL_LINK( ListToggleHdl_Impl, weld::ComboBox&, void);
+ DECL_LINK( ClickHdl, weld::Button&, void );
+ DECL_LINK( MenuHdl, const OString&, void );
};
class ScRightHeaderEditPage : public ScHFEditPage
@@ -111,7 +120,7 @@ public:
static VclPtr<SfxTabPage> Create( TabPageParent pParent, const SfxItemSet* rCoreSet );
private:
- ScRightHeaderEditPage( vcl::Window* pParent, const SfxItemSet& rSet );
+ ScRightHeaderEditPage( TabPageParent pParent, const SfxItemSet& rSet );
};
class ScLeftHeaderEditPage : public ScHFEditPage
@@ -121,7 +130,7 @@ public:
static VclPtr<SfxTabPage> Create( TabPageParent pParent, const SfxItemSet* rCoreSet );
private:
- ScLeftHeaderEditPage( vcl::Window* pParent, const SfxItemSet& rSet );
+ ScLeftHeaderEditPage( TabPageParent pParent, const SfxItemSet& rSet );
};
class ScRightFooterEditPage : public ScHFEditPage
@@ -131,7 +140,7 @@ public:
static VclPtr<SfxTabPage> Create( TabPageParent pParent, const SfxItemSet* rCoreSet );
private:
- ScRightFooterEditPage( vcl::Window* pParent, const SfxItemSet& rSet );
+ ScRightFooterEditPage( TabPageParent pParent, const SfxItemSet& rSet );
};
class ScLeftFooterEditPage : public ScHFEditPage
@@ -141,7 +150,7 @@ public:
static VclPtr<SfxTabPage> Create( TabPageParent pParent, const SfxItemSet* rCoreSet );
private:
- ScLeftFooterEditPage( vcl::Window* pParent, const SfxItemSet& rSet );
+ ScLeftFooterEditPage( TabPageParent pParent, const SfxItemSet& rSet );
};
#endif
diff --git a/sc/source/ui/inc/tphfedit.hxx b/sc/source/ui/inc/tphfedit.hxx
index f7036cf8a22f..790840e85bea 100644
--- a/sc/source/ui/inc/tphfedit.hxx
+++ b/sc/source/ui/inc/tphfedit.hxx
@@ -23,9 +23,9 @@
#include <scdllapi.h>
#include <cppuhelper/weakref.hxx>
#include <tools/wintypes.hxx>
+#include <editeng/editview.hxx>
#include <editeng/svxenum.hxx>
-#include <vcl/ctrl.hxx>
-#include <vcl/menu.hxx>
+#include <vcl/customweld.hxx>
#include <functional>
@@ -46,16 +46,15 @@ enum ScEditWindowLocation
Right
};
-class SC_DLLPUBLIC ScEditWindow : public Control
+class SC_DLLPUBLIC ScEditWindow : public weld::CustomWidgetController
+ , public EditViewCallbacks
{
public:
- ScEditWindow( vcl::Window* pParent, WinBits nBits , ScEditWindowLocation eLoc );
- virtual ~ScEditWindow() override;
- virtual void dispose() override;
+ ScEditWindow(ScEditWindowLocation eLoc, weld::Window* pParent);
+ virtual void SetDrawingArea(weld::DrawingArea* pArea) override;
+ virtual ~ScEditWindow() override;
- using Control::SetFont;
void SetFont( const ScPatternAttr& rPattern );
- using Control::SetText;
void SetText( const EditTextObject& rTextObject );
std::unique_ptr<EditTextObject> CreateTextObject();
void SetCharAttributes();
@@ -73,20 +72,37 @@ public:
void SetLocation(ScEditWindowLocation eLoc) { eLocation = eLoc; }
protected:
virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
- virtual void MouseMove( const MouseEvent& rMEvt ) override;
- virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
- virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
- virtual void Command( const CommandEvent& rCEvt ) override;
+ virtual bool MouseMove( const MouseEvent& rMEvt ) override;
+ virtual bool MouseButtonDown( const MouseEvent& rMEvt ) override;
+ virtual bool MouseButtonUp( const MouseEvent& rMEvt ) override;
+ virtual bool KeyInput( const KeyEvent& rKEvt ) override;
virtual void GetFocus() override;
virtual void LoseFocus() override;
virtual void Resize() override;
+ virtual void EditViewInvalidate(const tools::Rectangle& rRect) const override
+ {
+ weld::DrawingArea* pDrawingArea = GetDrawingArea();
+ pDrawingArea->queue_draw_area(rRect.Left(), rRect.Top(), rRect.GetWidth(), rRect.GetHeight());
+ }
+
+ virtual void EditViewSelectionChange() const override
+ {
+ weld::DrawingArea* pDrawingArea = GetDrawingArea();
+ pDrawingArea->queue_draw();
+ }
+
+ virtual OutputDevice& EditViewOutputDevice() const override
+ {
+ return GetDrawingArea()->get_ref_device();
+ }
+
private:
std::unique_ptr<ScHeaderEditEngine> pEdEngine;
std::unique_ptr<EditView> pEdView;
ScEditWindowLocation eLocation;
bool mbRTL;
+ weld::Window* mpDialog;
css::uno::WeakReference< css::accessibility::XAccessible > xAcc;
ScAccessibleEditObject* pAcc;
diff --git a/sc/source/ui/pagedlg/scuitphfedit.cxx b/sc/source/ui/pagedlg/scuitphfedit.cxx
index 0eeeeb0d748e..d49f37f8c962 100644
--- a/sc/source/ui/pagedlg/scuitphfedit.cxx
+++ b/sc/source/ui/pagedlg/scuitphfedit.cxx
@@ -24,6 +24,7 @@
#include <editeng/editobj.hxx>
#include <editeng/flditem.hxx>
+#include <osl/time.h>
#include <sfx2/tabdlg.hxx>
#include <vcl/settings.hxx>
#include <vcl/lstbox.hxx>
@@ -41,108 +42,92 @@
// class ScHFEditPage
-ScHFEditPage::ScHFEditPage( vcl::Window* pParent,
- const SfxItemSet& rCoreAttrs,
- sal_uInt16 nWhichId,
- bool bHeader )
- : SfxTabPage( pParent, "HeaderFooterContent", "modules/scalc/ui/headerfootercontent.ui", &rCoreAttrs )
- , m_pEditFocus(nullptr)
+ScHFEditPage::ScHFEditPage(TabPageParent pParent,
+ const SfxItemSet& rCoreAttrs,
+ sal_uInt16 nWhichId,
+ bool bHeader)
+ : SfxTabPage(pParent, "modules/scalc/ui/headerfootercontent.ui", "HeaderFooterContent", &rCoreAttrs)
, nWhich( nWhichId )
+ , m_bDropDownActive(false)
+ , m_nTimeToggled(-1)
+ , m_xFtDefinedHF(m_xBuilder->weld_label(!bHeader ? "labelFT_F_DEFINED" : "labelFT_H_DEFINED"))
+ , m_xLbDefined(m_xBuilder->weld_combo_box("comboLB_DEFINED"))
+ , m_xFtCustomHF(m_xBuilder->weld_label(!bHeader ? "labelFT_F_CUSTOM" : "labelFT_H_CUSTOM"))
+ , m_xBtnText(m_xBuilder->weld_button("buttonBTN_TEXT"))
+ , m_xBtnFile(m_xBuilder->weld_menu_button("buttonBTN_FILE"))
+ , m_xBtnTable(m_xBuilder->weld_button("buttonBTN_TABLE"))
+ , m_xBtnPage(m_xBuilder->weld_button("buttonBTN_PAGE"))
+ , m_xBtnLastPage(m_xBuilder->weld_button("buttonBTN_PAGES"))
+ , m_xBtnDate(m_xBuilder->weld_button("buttonBTN_DATE"))
+ , m_xBtnTime(m_xBuilder->weld_button("buttonBTN_TIME"))
+ , m_xFtConfidential(m_xBuilder->weld_label("labelSTR_HF_CONFIDENTIAL"))
+ , m_xFtPage(m_xBuilder->weld_label("labelSTR_PAGE"))
+ , m_xFtOfQuestion(m_xBuilder->weld_label("labelSTR_HF_OF_QUESTION"))
+ , m_xFtOf(m_xBuilder->weld_label("labelSTR_HF_OF"))
+ , m_xFtNone(m_xBuilder->weld_label("labelSTR_HF_NONE_IN_BRACKETS"))
+ , m_xFtCreatedBy(m_xBuilder->weld_label("labelSTR_HF_CREATED_BY"))
+ , m_xFtCustomized(m_xBuilder->weld_label("labelSTR_HF_CUSTOMIZED"))
+ , m_xLeft(m_xBuilder->weld_widget("labelFT_LEFT"))
+ , m_xRight(m_xBuilder->weld_widget("labelFT_RIGHT"))
+ , m_xWndLeft(new ScEditWindow(Left, pParent.GetFrameWeld()))
+ , m_xWndCenter(new ScEditWindow(Center, pParent.GetFrameWeld()))
+ , m_xWndRight(new ScEditWindow(Right, pParent.GetFrameWeld()))
+ , m_xWndLeftWnd(new weld::CustomWeld(*m_xBuilder, "textviewWND_LEFT", *m_xWndLeft))
+ , m_xWndCenterWnd(new weld::CustomWeld(*m_xBuilder, "textviewWND_CENTER", *m_xWndCenter))
+ , m_xWndRightWnd(new weld::CustomWeld(*m_xBuilder, "textviewWND_RIGHT", *m_xWndRight))
+ , m_pEditFocus(nullptr)
{
- get(m_pWndLeft,"textviewWND_LEFT");
- m_pWndLeft->SetLocation(Left);
- get(m_pWndCenter,"textviewWND_CENTER");
- m_pWndCenter->SetLocation(Center);
- get(m_pWndRight,"textviewWND_RIGHT");
- m_pWndRight->SetLocation(Right);
-
- get(m_pLbDefined,"comboLB_DEFINED");
// tdf#114695 override natural size with a small value
// we expect this to get stretched to some larger but
// limited size based on surrounding widgets
- m_pLbDefined->set_width_request(m_pLbDefined->approximate_digit_width() * 20);
-
- get(m_pBtnText,"buttonBTN_TEXT");
- get(m_pBtnTable,"buttonBTN_TABLE");
- get(m_pBtnPage,"buttonBTN_PAGE");
- get(m_pBtnLastPage,"buttonBTN_PAGES");
- get(m_pBtnDate,"buttonBTN_DATE");
- get(m_pBtnTime,"buttonBTN_TIME");
-
- get(m_pBtnFile,"buttonBTN_FILE");
-
- get(m_pFtConfidential,"labelSTR_HF_CONFIDENTIAL");
- get(m_pFtPage,"labelSTR_PAGE");
- get(m_pFtOfQuestion,"labelSTR_HF_OF_QUESTION");
- get(m_pFtOf,"labelSTR_HF_OF");
- get(m_pFtNone,"labelSTR_HF_NONE_IN_BRACKETS");
- get(m_pFtCreatedBy,"labelSTR_HF_CREATED_BY");
- get(m_pFtCustomized,"labelSTR_HF_CUSTOMIZED");
+ m_xLbDefined->set_size_request(m_xLbDefined->get_approximate_digit_width() * 20, -1);
//! use default style from current document?
//! if font color is used, header/footer background color must be set
- ScPatternAttr aPatAttr( rCoreAttrs.GetPool() );
-
- m_pBtnFile->SetPopupMenu(get_menu("popup"));
+ ScPatternAttr aPatAttr( rCoreAttrs.GetPool() );
- m_pLbDefined->SetSelectHdl( LINK( this, ScHFEditPage, ListHdl_Impl ) );
- m_pBtnFile->SetSelectHdl( LINK( this, ScHFEditPage, MenuHdl ) );
- m_pBtnText->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
- m_pBtnPage->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
- m_pBtnLastPage->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
- m_pBtnDate->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
- m_pBtnTime->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
- m_pBtnFile->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
- m_pBtnTable->SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xLbDefined->connect_popup_toggled( LINK( this, ScHFEditPage, ListToggleHdl_Impl) );
+ m_xLbDefined->connect_changed( LINK( this, ScHFEditPage, ListHdl_Impl ) );
+ m_xBtnFile->connect_selected( LINK( this, ScHFEditPage, MenuHdl ) );
+ m_xBtnText->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xBtnPage->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xBtnLastPage->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xBtnDate->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xBtnTime->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xBtnFile->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
+ m_xBtnTable->connect_clicked( LINK( this, ScHFEditPage, ClickHdl ) );
- get(m_pFtDefinedHF,!bHeader ? "labelFT_F_DEFINED" : "labelFT_H_DEFINED");
- get(m_pFtCustomHF, !bHeader ? "labelFT_F_CUSTOM" : "labelFT_H_CUSTOM");
-
- m_pFtDefinedHF->Show();
- m_pFtCustomHF->Show();
+ m_xFtDefinedHF->show();
+ m_xFtCustomHF->show();
//swap left/right areas and their labels in RTL mode
if( AllSettings::GetLayoutRTL() )
{
- vcl::Window *pLeft = get<vcl::Window>("labelFT_LEFT");
- vcl::Window *pRight = get<vcl::Window>("labelFT_RIGHT");
- sal_Int32 nOldLeftAttach = pLeft->get_grid_left_attach();
- sal_Int32 nOldRightAttach = pRight->get_grid_left_attach();
- pLeft->set_grid_left_attach(nOldRightAttach);
- pRight->set_grid_left_attach(nOldLeftAttach);
-
- pLeft = m_pWndLeft;
- pRight = m_pWndRight;
- nOldLeftAttach = pLeft->get_grid_left_attach();
- nOldRightAttach = pRight->get_grid_left_attach();
- pLeft->set_grid_left_attach(nOldRightAttach);
- pRight->set_grid_left_attach(nOldLeftAttach);
- }
- m_pWndLeft->SetFont( aPatAttr );
- m_pWndCenter->SetFont( aPatAttr );
- m_pWndRight->SetFont( aPatAttr );
-
- // Set size request for all 3 widgets
- Size aSize = LogicToPixel(Size(80, 120), MapMode(MapUnit::MapAppFont));
- VclPtr<ScEditWindow> aEditWindows[] = {m_pWndLeft, m_pWndCenter, m_pWndRight};
-
- for (auto &pEditWindow : aEditWindows)
- {
- pEditWindow->set_width_request(aSize.Width());
- pEditWindow->set_height_request(aSize.Height());
+ sal_Int32 nOldLeftAttach = m_xLeft->get_grid_left_attach();
+ sal_Int32 nOldRightAttach = m_xRight->get_grid_left_attach();
+ m_xLeft->set_grid_left_attach(nOldRightAttach);
+ m_xRight->set_grid_left_attach(nOldLeftAttach);
+
+ nOldLeftAttach = m_xWndLeftWnd->get_grid_left_attach();
+ nOldRightAttach = m_xWndRightWnd->get_grid_left_attach();
+ m_xWndLeftWnd->set_grid_left_attach(nOldRightAttach);
+ m_xWndRightWnd->set_grid_left_attach(nOldLeftAttach);
}
+ m_xWndLeft->SetFont( aPatAttr );
+ m_xWndCenter->SetFont( aPatAttr );
+ m_xWndRight->SetFont( aPatAttr );
- m_pWndLeft->SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
- m_pWndCenter->SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
- m_pWndRight->SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
+ m_xWndLeft->SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
+ m_xWndCenter->SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
+ m_xWndRight->SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
auto setEditFocus = [this](ScEditWindow & rEdit) { this->m_pEditFocus = &rEdit; };
- m_pWndLeft->SetGetFocusHdl(setEditFocus);
- m_pWndCenter->SetGetFocusHdl(setEditFocus);
- m_pWndRight->SetGetFocusHdl(setEditFocus);
+ m_xWndLeft->SetGetFocusHdl(setEditFocus);
+ m_xWndCenter->SetGetFocusHdl(setEditFocus);
+ m_xWndRight->SetGetFocusHdl(setEditFocus);
- m_pWndLeft->GrabFocus();
- m_pEditFocus = m_pWndLeft; // there's no event from GrabFocus()
+ m_xWndLeft->GrabFocus();
+ m_pEditFocus = m_xWndLeft.get(); // there's no event from grab_focus()
InitPreDefinedList();
@@ -150,7 +135,7 @@ ScHFEditPage::ScHFEditPage( vcl::Window* pParent,
IMPL_LINK_NOARG( ScHFEditPage, ObjectSelectHdl, ScEditWindow&, void )
{
- m_pBtnText->GrabFocus();
+ m_xBtnText->grab_focus();
}
ScHFEditPage::~ScHFEditPage()
@@ -158,36 +143,11 @@ ScHFEditPage::~ScHFEditPage()
disposeOnce();
}
-void ScHFEditPage::dispose()
-{
- m_pWndLeft.clear();
- m_pWndCenter.clear();
- m_pWndRight.clear();
- m_pFtDefinedHF.clear();
- m_pLbDefined.clear();
- m_pFtCustomHF.clear();
- m_pBtnText.clear();
- m_pBtnFile.clear();
- m_pBtnTable.clear();
- m_pBtnPage.clear();
- m_pBtnLastPage.clear();
- m_pBtnDate.clear();
- m_pBtnTime.clear();
- m_pFtConfidential.clear();
- m_pFtPage.clear();
- m_pFtOfQuestion.clear();
- m_pFtOf.clear();
- m_pFtNone.clear();
- m_pFtCreatedBy.clear();
- m_pFtCustomized.clear();
- SfxTabPage::dispose();
-}
-
void ScHFEditPage::SetNumType(SvxNumType eNumType)
{
- m_pWndLeft->SetNumType(eNumType);
- m_pWndCenter->SetNumType(eNumType);
- m_pWndRight->SetNumType(eNumType);
+ m_xWndLeft->SetNumType(eNumType);
+ m_xWndCenter->SetNumType(eNumType);
+ m_xWndRight->SetNumType(eNumType);
}
void ScHFEditPage::Reset( const SfxItemSet* rCoreSet )
@@ -198,11 +158,11 @@ void ScHFEditPage::Reset( const SfxItemSet* rCoreSet )
const ScPageHFItem& rItem = static_cast<const ScPageHFItem&>(*pItem);
if( const EditTextObject* pLeft = rItem.GetLeftArea() )
- m_pWndLeft->SetText( *pLeft );
+ m_xWndLeft->SetText( *pLeft );
if( const EditTextObject* pCenter = rItem.GetCenterArea() )
- m_pWndCenter->SetText( *pCenter );
+ m_xWndCenter->SetText( *pCenter );
if( const EditTextObject* pRight = rItem.GetRightArea() )
- m_pWndRight->SetText( *pRight );
+ m_xWndRight->SetText( *pRight );
SetSelectDefinedList();
}
@@ -211,9 +171,9 @@ void ScHFEditPage::Reset( const SfxItemSet* rCoreSet )
bool ScHFEditPage::FillItemSet( SfxItemSet* rCoreSet )
{
ScPageHFItem aItem( nWhich );
- std::unique_ptr<EditTextObject> pLeft = m_pWndLeft->CreateTextObject();
- std::unique_ptr<EditTextObject> pCenter = m_pWndCenter->CreateTextObject();
- std::unique_ptr<EditTextObject> pRight = m_pWndRight->CreateTextObject();
+ std::unique_ptr<EditTextObject> pLeft = m_xWndLeft->CreateTextObject();
+ std::unique_ptr<EditTextObject> pCenter = m_xWndCenter->CreateTextObject();
+ std::unique_ptr<EditTextObject> pRight = m_xWndRight->CreateTextObject();
aItem.SetLeftArea ( *pLeft );
aItem.SetCenterArea( *pCenter );
@@ -232,64 +192,64 @@ void ScHFEditPage::InitPreDefinedList()
boost::optional<Color> pFldColour;
// Get the all field values at the outset.
- OUString aPageFieldValue(m_pWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
- OUString aSheetFieldValue(m_pWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
- OUString aFileFieldValue(m_pWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
- OUString aExtFileFieldValue(m_pWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxExtFileField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
- OUString aDateFieldValue(m_pWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxDateField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
+ OUString aPageFieldValue(m_xWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
+ OUString aSheetFieldValue(m_xWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
+ OUString aFileFieldValue(m_xWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
+ OUString aExtFileFieldValue(m_xWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxExtFileField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
+ OUString aDateFieldValue(m_xWndLeft->GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxDateField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
- m_pLbDefined->Clear();
+ m_xLbDefined->clear();
- m_pLbDefined->InsertEntry(m_pFtNone->GetText());
+ m_xLbDefined->append_text(m_xFtNone->get_label());
- OUString aPageEntry(m_pFtPage->GetText() + " " + aPageFieldValue);
- m_pLbDefined->InsertEntry(aPageEntry);
+ OUString aPageEntry(m_xFtPage->get_label() + " " + aPageFieldValue);
+ m_xLbDefined->append_text(aPageEntry);
- OUString aPageOfEntry(aPageEntry + " " + m_pFtOfQuestion->GetText());
- m_pLbDefined->InsertEntry( aPageOfEntry);
+ OUString aPageOfEntry(aPageEntry + " " + m_xFtOfQuestion->get_label());
+ m_xLbDefined->append_text( aPageOfEntry);
- m_pLbDefined->InsertEntry(aSheetFieldValue);
+ m_xLbDefined->append_text(aSheetFieldValue);
- OUString aConfidentialEntry(aUserOpt.GetCompany() + " " + m_pFtConfidential->GetText() + ", " + aDateFieldValue + ", " + aPageEntry);
- m_pLbDefined->InsertEntry( aConfidentialEntry);
+ OUString aConfidentialEntry(aUserOpt.GetCompany() + " " + m_xFtConfidential->get_label() + ", " + aDateFieldValue + ", " + aPageEntry);
+ m_xLbDefined->append_text( aConfidentialEntry);
OUString aFileNamePageEntry(aFileFieldValue + ", " + aPageEntry);
- m_pLbDefined->InsertEntry( aFileNamePageEntry);
+ m_xLbDefined->append_text( aFileNamePageEntry);
- m_pLbDefined->InsertEntry( aExtFileFieldValue);
+ m_xLbDefined->append_text( aExtFileFieldValue);
OUString aPageSheetNameEntry(aPageEntry + ", " + aSheetFieldValue);
- m_pLbDefined->InsertEntry( aPageSheetNameEntry);
+ m_xLbDefined->append_text( aPageSheetNameEntry);
OUString aPageFileNameEntry(aPageEntry + ", " + aFileFieldValue);
- m_pLbDefined->InsertEntry( aPageFileNameEntry);
+ m_xLbDefined->append_text( aPageFileNameEntry);
OUString aPagePathNameEntry(aPageEntry + ", " + aExtFileFieldValue);
- m_pLbDefined->InsertEntry( aPagePathNameEntry);
+ m_xLbDefined->append_text( aPagePathNameEntry);
OUString aUserNameEntry(aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName() + ", " + aPageEntry + ", " + aDateFieldValue);
- m_pLbDefined->InsertEntry( aUserNameEntry);
+ m_xLbDefined->append_text( aUserNameEntry);
- OUString aCreatedByEntry( m_pFtCreatedBy->GetText() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName() + ", ");
+ OUString aCreatedByEntry( m_xFtCreatedBy->get_label() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName() + ", ");
aCreatedByEntry += aDateFieldValue + ", " + aPageEntry;
- m_pLbDefined->InsertEntry( aCreatedByEntry);
+ m_xLbDefined->append_text( aCreatedByEntry);
}
void ScHFEditPage::InsertToDefinedList()
{
- const sal_Int32 nCount = m_pLbDefined->GetEntryCount();
+ const sal_Int32 nCount = m_xLbDefined->get_count();
if(nCount == eEntryCount)
{
- m_pLbDefined->InsertEntry( m_pFtCustomized->GetText() );
- m_pLbDefined->SelectEntryPos(eEntryCount);
+ m_xLbDefined->append_text( m_xFtCustomized->get_label() );
+ m_xLbDefined->set_active(eEntryCount);
}
}
void ScHFEditPage::RemoveFromDefinedList()
{
- const sal_Int32 nCount = m_pLbDefined->GetEntryCount();
+ const sal_Int32 nCount = m_xLbDefined->get_count();
if(nCount > eEntryCount )
- m_pLbDefined->RemoveEntry( nCount-1);
+ m_xLbDefined->remove( nCount-1);
}
// determine if the header/footer exists in our predefined list and set select to it.
@@ -308,13 +268,13 @@ void ScHFEditPage::SetSelectDefinedList()
OUString aCenterEntry;
OUString aRightEntry;
- pLeftObj = m_pWndLeft->GetEditEngine()->CreateTextObject();
- pCenterObj = m_pWndCenter->GetEditEngine()->CreateTextObject();
- pRightObj = m_pWndRight->GetEditEngine()->CreateTextObject();
+ pLeftObj = m_xWndLeft->GetEditEngine()->CreateTextObject();
+ pCenterObj = m_xWndCenter->GetEditEngine()->CreateTextObject();
+ pRightObj = m_xWndRight->GetEditEngine()->CreateTextObject();
bool bFound = false;
- const sal_Int32 nCount = m_pLbDefined->GetEntryCount();
+ const sal_Int32 nCount = m_xLbDefined->get_count();
for(sal_Int32 i = 0; i < nCount && !bFound; ++i)
{
switch(static_cast<ScHFEntryId>(i))
@@ -339,7 +299,7 @@ void ScHFEditPage::SetSelectDefinedList()
aRightEntry = pRightObj->GetText(0);
if(aLeftEntry == EMPTY_OUSTRING && aRightEntry == EMPTY_OUSTRING)
{
- if(IsPageEntry(m_pWndCenter->GetEditEngine(), pCenterObj.get()))
+ if(IsPageEntry(m_xWndCenter->GetEditEngine(), pCenterObj.get()))
{
eSelectEntry = ePageEntry;
bFound = true;
@@ -379,10 +339,10 @@ void ScHFEditPage::SetSelectDefinedList()
case eConfidentialEntry:
{
- if(IsDateEntry(pCenterObj.get()) && IsPageEntry(m_pWndRight->GetEditEngine(), pRightObj.get()))
+ if(IsDateEntry(pCenterObj.get()) && IsPageEntry(m_xWndRight->GetEditEngine(), pRightObj.get()))
{
- OUString aConfidentialEntry(aUserOpt.GetCompany() + " " + m_pFtConfidential->GetText());
- if(aConfidentialEntry == m_pWndLeft->GetEditEngine()->GetText(0))
+ OUString aConfidentialEntry(aUserOpt.GetCompany() + " " + m_xFtConfidential->get_label());
+ if(aConfidentialEntry == m_xWndLeft->GetEditEngine()->GetText(0))
{
eSelectEntry = eConfidentialEntry;
bFound = true;
@@ -425,7 +385,7 @@ void ScHFEditPage::SetSelectDefinedList()
case ePageExtFileNameEntry:
{
aLeftEntry = pLeftObj->GetText(0);
- if(IsPageEntry(m_pWndCenter->GetEditEngine(), pCenterObj.get()) &&
+ if(IsPageEntry(m_xWndCenter->GetEditEngine(), pCenterObj.get()) &&
IsExtFileNameEntry(pRightObj.get()) && aLeftEntry == EMPTY_OUSTRING)
{
eSelectEntry = ePageExtFileNameEntry;
@@ -436,11 +396,11 @@ void ScHFEditPage::SetSelectDefinedList()
case eUserNameEntry:
{
- if(IsDateEntry(pRightObj.get()) && IsPageEntry(m_pWndCenter->GetEditEngine(), pCenterObj.get()))
+ if(IsDateEntry(pRightObj.get()) && IsPageEntry(m_xWndCenter->GetEditEngine(), pCenterObj.get()))
{
OUString aUserNameEntry(aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName());
- if(aUserNameEntry == m_pWndLeft->GetEditEngine()->GetText(0))
+ if(aUserNameEntry == m_xWndLeft->GetEditEngine()->GetText(0))
{
eSelectEntry = eUserNameEntry;
bFound = true;
@@ -451,11 +411,11 @@ void ScHFEditPage::SetSelectDefinedList()
case eCreatedByEntry:
{
- if(IsDateEntry(pCenterObj.get()) && IsPageEntry(m_pWndRight->GetEditEngine(), pRightObj.get()))
+ if(IsDateEntry(pCenterObj.get()) && IsPageEntry(m_xWndRight->GetEditEngine(), pRightObj.get()))
{
- OUString aCreatedByEntry(m_pFtCreatedBy->GetText() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName());
+ OUString aCreatedByEntry(m_xFtCreatedBy->get_label() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName());
- if(aCreatedByEntry == m_pWndLeft->GetEditEngine()->GetText(0))
+ if(aCreatedByEntry == m_xWndLeft->GetEditEngine()->GetText(0))
{
eSelectEntry = eCreatedByEntry;
bFound = true;
@@ -474,7 +434,7 @@ void ScHFEditPage::SetSelectDefinedList()
if(eSelectEntry == eEntryCount)
InsertToDefinedList();
- m_pLbDefined->SelectEntryPos( sal::static_int_cast<sal_uInt16>( eSelectEntry ) );
+ m_xLbDefined->set_active( sal::static_int_cast<sal_uInt16>( eSelectEntry ) );
}
bool ScHFEditPage::IsPageEntry(EditEngine*pEngine, const EditTextObject* pTextObj)
@@ -490,7 +450,7 @@ bool ScHFEditPage::IsPageEntry(EditEngine*pEngine, const EditTextObject* pTextOb
pEngine->GetPortions(0,aPosList);
if(aPosList.size() == 2)
{
- OUString aPageEntry(m_pFtPage->GetText() + " ");
+ OUString aPageEntry(m_xFtPage->get_label() + " ");
ESelection aSel(0,0,0,0);
aSel.nEndPos = aPageEntry.getLength();
if(aPageEntry == pEngine->GetText(aSel))
@@ -561,17 +521,17 @@ void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
case eNoneEntry:
ClearTextAreas();
if(!bTravelling)
- m_pWndLeft->GrabFocus();
+ m_xWndLeft->GrabFocus();
break;
case ePageEntry:
{
ClearTextAreas();
- OUString aPageEntry( m_pFtPage->GetText() + " " );
- m_pWndCenter->GetEditEngine()->SetText(aPageEntry);
- m_pWndCenter->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
+ OUString aPageEntry( m_xFtPage->get_label() + " " );
+ m_xWndCenter->GetEditEngine()->SetText(aPageEntry);
+ m_xWndCenter->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
}
break;
@@ -579,42 +539,42 @@ void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
{
ClearTextAreas();
ESelection aSel(0,0,0,0);
- OUString aPageEntry( m_pFtPage->GetText() + " ");
- m_pWndCenter->GetEditEngine()->SetText(aPageEntry);
+ OUString aPageEntry( m_xFtPage->get_label() + " ");
+ m_xWndCenter->GetEditEngine()->SetText(aPageEntry);
aSel.nEndPos = aPageEntry.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ m_xWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
++aSel.nEndPos;
- OUString aPageOfEntry(" " + m_pFtOf->GetText() + " ");
- m_pWndCenter->GetEditEngine()->QuickInsertText(aPageOfEntry,ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ OUString aPageOfEntry(" " + m_xFtOf->get_label() + " ");
+ m_xWndCenter->GetEditEngine()->QuickInsertText(aPageOfEntry,ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
aSel.nEndPos = aSel.nEndPos + aPageOfEntry.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
- pTextObj = m_pWndCenter->GetEditEngine()->CreateTextObject();
- m_pWndCenter->SetText(*pTextObj);
+ m_xWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ pTextObj = m_xWndCenter->GetEditEngine()->CreateTextObject();
+ m_xWndCenter->SetText(*pTextObj);
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
}
break;
case eSheetEntry:
ClearTextAreas();
- m_pWndCenter->InsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD) );
+ m_xWndCenter->InsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD) );
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
break;
case eConfidentialEntry:
{
ClearTextAreas();
- OUString aConfidentialEntry(aUserOpt.GetCompany() + " " + m_pFtConfidential->GetText());
- m_pWndLeft->GetEditEngine()->SetText(aConfidentialEntry);
- m_pWndCenter->InsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SvxDateType::Var), EE_FEATURE_FIELD) );
+ OUString aConfidentialEntry(aUserOpt.GetCompany() + " " + m_xFtConfidential->get_label());
+ m_xWndLeft->GetEditEngine()->SetText(aConfidentialEntry);
+ m_xWndCenter->InsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SvxDateType::Var), EE_FEATURE_FIELD) );
- OUString aPageEntry( m_pFtPage->GetText() + " ");
- m_pWndRight->GetEditEngine()->SetText(aPageEntry);
- m_pWndRight->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
+ OUString aPageEntry( m_xFtPage->get_label() + " ");
+ m_xWndRight->GetEditEngine()->SetText(aPageEntry);
+ m_xWndRight->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
if(!bTravelling)
- m_pWndRight->GrabFocus();
+ m_xWndRight->GrabFocus();
}
break;
@@ -622,46 +582,46 @@ void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
{
ClearTextAreas();
ESelection aSel(0,0,0,0);
- m_pWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem( SvxFileField(), EE_FEATURE_FIELD ), aSel );
+ m_xWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem( SvxFileField(), EE_FEATURE_FIELD ), aSel );
++aSel.nEndPos;
- OUString aPageEntry(", " + m_pFtPage->GetText() + " ");
- m_pWndCenter->GetEditEngine()->QuickInsertText(aPageEntry, ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ OUString aPageEntry(", " + m_xFtPage->get_label() + " ");
+ m_xWndCenter->GetEditEngine()->QuickInsertText(aPageEntry, ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
aSel.nStartPos = aSel.nEndPos;
aSel.nEndPos = aSel.nEndPos + aPageEntry.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
- pTextObj = m_pWndCenter->GetEditEngine()->CreateTextObject();
- m_pWndCenter->SetText(*pTextObj);
+ m_xWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ pTextObj = m_xWndCenter->GetEditEngine()->CreateTextObject();
+ m_xWndCenter->SetText(*pTextObj);
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
}
break;
case eExtFileNameEntry:
ClearTextAreas();
- m_pWndCenter->InsertField( SvxFieldItem( SvxExtFileField(
+ m_xWndCenter->InsertField( SvxFieldItem( SvxExtFileField(
EMPTY_OUSTRING, SvxFileType::Var, SvxFileFormat::PathFull ), EE_FEATURE_FIELD ) );
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
break;
case ePageSheetEntry:
{
ClearTextAreas();
ESelection aSel(0,0,0,0);
- OUString aPageEntry( m_pFtPage->GetText() + " " );
- m_pWndCenter->GetEditEngine()->SetText(aPageEntry);
+ OUString aPageEntry( m_xFtPage->get_label() + " " );
+ m_xWndCenter->GetEditEngine()->SetText(aPageEntry);
aSel.nEndPos = aPageEntry.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ m_xWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
++aSel.nEndPos;
OUString aCommaSpace(", ");
- m_pWndCenter->GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ m_xWndCenter->GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
aSel.nEndPos = aSel.nEndPos + aCommaSpace.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
- pTextObj = m_pWndCenter->GetEditEngine()->CreateTextObject();
- m_pWndCenter->SetText(*pTextObj);
+ m_xWndCenter->GetEditEngine()->QuickInsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ pTextObj = m_xWndCenter->GetEditEngine()->CreateTextObject();
+ m_xWndCenter->SetText(*pTextObj);
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
}
break;
@@ -669,32 +629,32 @@ void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
{
ClearTextAreas();
ESelection aSel(0,0,0,0);
- OUString aPageEntry( m_pFtPage->GetText() + " " );
- m_pWndCenter->GetEditEngine()->SetText(aPageEntry);
+ OUString aPageEntry( m_xFtPage->get_label() + " " );
+ m_xWndCenter->GetEditEngine()->SetText(aPageEntry);
aSel.nEndPos = aPageEntry.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ m_xWndCenter->GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
++aSel.nEndPos;
OUString aCommaSpace(", ");
- m_pWndCenter->GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ m_xWndCenter->GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
aSel.nEndPos = aSel.nEndPos + aCommaSpace.getLength();
- m_pWndCenter->GetEditEngine()->QuickInsertField( SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
- pTextObj = m_pWndCenter->GetEditEngine()->CreateTextObject();
- m_pWndCenter->SetText(*pTextObj);
+ m_xWndCenter->GetEditEngine()->QuickInsertField( SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
+ pTextObj = m_xWndCenter->GetEditEngine()->CreateTextObject();
+ m_xWndCenter->SetText(*pTextObj);
if(!bTravelling)
- m_pWndCenter->GrabFocus();
+ m_xWndCenter->GrabFocus();
}
break;
case ePageExtFileNameEntry:
{
ClearTextAreas();
- OUString aPageEntry( m_pFtPage->GetText() + " " );
- m_pWndCenter->GetEditEngine()->SetText(aPageEntry);
- m_pWndCenter->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
- m_pWndRight->InsertField( SvxFieldItem( SvxExtFileField(
+ OUString aPageEntry( m_xFtPage->get_label() + " " );
+ m_xWndCenter->GetEditEngine()->SetText(aPageEntry);
+ m_xWndCenter->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
+ m_xWndRight->InsertField( SvxFieldItem( SvxExtFileField(
EMPTY_OUSTRING, SvxFileType::Var, SvxFileFormat::PathFull ), EE_FEATURE_FIELD ) );
if(!bTravelling)
- m_pWndRight->GrabFocus();
+ m_xWndRight->GrabFocus();
}
break;
@@ -702,29 +662,29 @@ void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
{
ClearTextAreas();
OUString aUserNameEntry(aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName());
- m_pWndLeft->GetEditEngine()->SetText(aUserNameEntry);
- OUString aPageEntry( m_pFtPage->GetText() + " ");
+ m_xWndLeft->GetEditEngine()->SetText(aUserNameEntry);
+ OUString aPageEntry( m_xFtPage->get_label() + " ");
//aPageEntry += " ";
- m_pWndCenter->GetEditEngine()->SetText(aPageEntry);
- m_pWndCenter->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
- m_pWndRight->InsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SvxDateType::Var), EE_FEATURE_FIELD) );
+ m_xWndCenter->GetEditEngine()->SetText(aPageEntry);
+ m_xWndCenter->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
+ m_xWndRight->InsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SvxDateType::Var), EE_FEATURE_FIELD) );
if(!bTravelling)
- m_pWndRight->GrabFocus();
+ m_xWndRight->GrabFocus();
}
break;
case eCreatedByEntry:
{
ClearTextAreas();
- OUString aCreatedByEntry( m_pFtCreatedBy->GetText() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName());
- m_pWndLeft->GetEditEngine()->SetText(aCreatedByEntry);
- m_pWndCenter->InsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SvxDateType::Var), EE_FEATURE_FIELD) );
- OUString aPageEntry( m_pFtPage->GetText() );
+ OUString aCreatedByEntry( m_xFtCreatedBy->get_label() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName());
+ m_xWndLeft->GetEditEngine()->SetText(aCreatedByEntry);
+ m_xWndCenter->InsertField( SvxFieldItem(SvxDateField(Date( Date::SYSTEM ),SvxDateType::Var), EE_FEATURE_FIELD) );
+ OUString aPageEntry( m_xFtPage->get_label() );
aPageEntry += " ";
- m_pWndRight->GetEditEngine()->SetText(aPageEntry);
- m_pWndRight->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
+ m_xWndRight->GetEditEngine()->SetText(aPageEntry);
+ m_xWndRight->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
if(!bTravelling)
- m_pWndRight->GrabFocus();
+ m_xWndRight->GrabFocus();
}
break;
@@ -735,83 +695,92 @@ void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
void ScHFEditPage::ClearTextAreas()
{
- m_pWndLeft->GetEditEngine()->SetText(EMPTY_OUSTRING);
- m_pWndLeft->Invalidate();
- m_pWndCenter->GetEditEngine()->SetText(EMPTY_OUSTRING);
- m_pWndCenter->Invalidate();
- m_pWndRight->GetEditEngine()->SetText(EMPTY_OUSTRING);
- m_pWndRight->Invalidate();
+ m_xWndLeft->GetEditEngine()->SetText(EMPTY_OUSTRING);
+ m_xWndLeft->Invalidate();
+ m_xWndCenter->GetEditEngine()->SetText(EMPTY_OUSTRING);
+ m_xWndCenter->Invalidate();
+ m_xWndRight->GetEditEngine()->SetText(EMPTY_OUSTRING);
+ m_xWndRight->Invalidate();
}
// Handler:
-
-IMPL_LINK( ScHFEditPage, ListHdl_Impl, ListBox&, rList, void )
+IMPL_LINK_NOARG(ScHFEditPage, ListToggleHdl_Impl, weld::ComboBox&, void)
{
- if ( &rList == m_pLbDefined )
- {
- ScHFEntryId eSel = static_cast<ScHFEntryId>(m_pLbDefined->GetSelectedEntryPos());
- if(!m_pLbDefined->IsTravelSelect())
- {
- ProcessDefinedListSel(eSel, false);
+ m_bDropDownActive = !m_bDropDownActive;
+ TimeValue aNow;
+ osl_getSystemTime(&aNow);
+ m_nTimeToggled = sal_Int64(aNow.Seconds) * 1000000000L + aNow.Nanosec;
+}
- // check if we need to remove the customized entry.
- if(eSel < eEntryCount)
- RemoveFromDefinedList();
- }
- else
- {
- ProcessDefinedListSel(eSel, true);
- }
- }
+IMPL_LINK_NOARG(ScHFEditPage, ListHdl_Impl, weld::ComboBox&, void)
+{
+ ScHFEntryId eSel = static_cast<ScHFEntryId>(m_xLbDefined->get_active());
+
+ TimeValue aNow;
+ osl_getSystemTime(&aNow);
+ sal_Int64 nNow = sal_Int64(aNow.Seconds) * 1000000000L + aNow.Nanosec;
+
+ // order of dropdown vs select not guaranteed
+ bool bDiscrepency = m_xLbDefined->get_popup_shown() != m_bDropDownActive;
+ if (bDiscrepency)
+ ListToggleHdl_Impl(*m_xLbDefined);
+
+ bool bFocusToTarget = !m_xLbDefined->get_popup_shown() && m_nTimeToggled != -1 && (nNow - m_nTimeToggled < 800000000L);
+ ProcessDefinedListSel(eSel, !bFocusToTarget);
+ // check if we need to remove the customized entry.
+ if (!m_bDropDownActive && eSel < eEntryCount)
+ RemoveFromDefinedList();
+
+ // keep balanced
+ if (bDiscrepency)
+ ListToggleHdl_Impl(*m_xLbDefined);
}
-IMPL_LINK( ScHFEditPage, ClickHdl, Button*, pBtn, void )
+IMPL_LINK( ScHFEditPage, ClickHdl, weld::Button&, rBtn, void )
{
if (!m_pEditFocus)
return;
- if ( pBtn == m_pBtnText )
+ if (&rBtn == m_xBtnText.get())
{
m_pEditFocus->SetCharAttributes();
}
else
{
- if ( pBtn == m_pBtnPage )
+ if ( &rBtn == m_xBtnPage.get() )
m_pEditFocus->InsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD));
- else if ( pBtn == m_pBtnLastPage )
+ else if ( &rBtn == m_xBtnLastPage.get() )
m_pEditFocus->InsertField(SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD));
- else if ( pBtn == m_pBtnDate )
+ else if ( &rBtn == m_xBtnDate.get() )
m_pEditFocus->InsertField(SvxFieldItem(SvxDateField(Date(Date::SYSTEM),SvxDateType::Var), EE_FEATURE_FIELD));
- else if ( pBtn == m_pBtnTime )
+ else if ( &rBtn == m_xBtnTime.get() )
m_pEditFocus->InsertField(SvxFieldItem(SvxTimeField(), EE_FEATURE_FIELD));
- else if ( pBtn == m_pBtnFile )
+ else if ( &rBtn == m_xBtnFile.get() )
{
m_pEditFocus->InsertField(SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD));
}
- else if ( pBtn == m_pBtnTable )
+ else if ( &rBtn == m_xBtnTable.get() )
m_pEditFocus->InsertField(SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD));
}
InsertToDefinedList();
m_pEditFocus->GrabFocus();
}
-IMPL_LINK(ScHFEditPage, MenuHdl, MenuButton*, pBtn, void)
+IMPL_LINK(ScHFEditPage, MenuHdl, const OString&, rSelectedId, void)
{
if (!m_pEditFocus)
return;
- OString sSelectedId = pBtn->GetCurItemIdent();
-
- if (sSelectedId == "title")
+ if (rSelectedId == "title")
{
m_pEditFocus->InsertField(SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD));
}
- else if (sSelectedId == "filename")
+ else if (rSelectedId == "filename")
{
m_pEditFocus->InsertField( SvxFieldItem( SvxExtFileField(
OUString(), SvxFileType::Var, SvxFileFormat::NameAndExt ), EE_FEATURE_FIELD ) );
}
- else if (sSelectedId == "pathname")
+ else if (rSelectedId == "pathname")
{
m_pEditFocus->InsertField( SvxFieldItem( SvxExtFileField(
OUString(), SvxFileType::Var, SvxFileFormat::PathFull ), EE_FEATURE_FIELD ) );
@@ -820,7 +789,7 @@ IMPL_LINK(ScHFEditPage, MenuHdl, MenuButton*, pBtn, void)
// class ScRightHeaderEditPage
-ScRightHeaderEditPage::ScRightHeaderEditPage( vcl::Window* pParent, const SfxItemSet& rCoreSet )
+ScRightHeaderEditPage::ScRightHeaderEditPage( TabPageParent pParent, const SfxItemSet& rCoreSet )
: ScHFEditPage( pParent,
rCoreSet,
rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_HEADERRIGHT ),
@@ -829,12 +798,12 @@ ScRightHeaderEditPage::ScRightHeaderEditPage( vcl::Window* pParent, const SfxIte
VclPtr<SfxTabPage> ScRightHeaderEditPage::Create( TabPageParent pParent, const SfxItemSet* rCoreSet )
{
- return VclPtr<ScRightHeaderEditPage>::Create( pParent.pParent, *rCoreSet );
+ return VclPtr<ScRightHeaderEditPage>::Create( pParent, *rCoreSet );
}
// class ScLeftHeaderEditPage
-ScLeftHeaderEditPage::ScLeftHeaderEditPage( vcl::Window* pParent, const SfxItemSet& rCoreSet )
+ScLeftHeaderEditPage::ScLeftHeaderEditPage( TabPageParent pParent, const SfxItemSet& rCoreSet )
: ScHFEditPage( pParent,
rCoreSet,
rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_HEADERLEFT ),
@@ -843,12 +812,12 @@ ScLeftHeaderEditPage::ScLeftHeaderEditPage( vcl::Window* pParent, const SfxItemS
VclPtr<SfxTabPage> ScLeftHeaderEditPage::Create( TabPageParent pParent, const SfxItemSet* rCoreSet )
{
- return VclPtr<ScLeftHeaderEditPage>::Create( pParent.pParent, *rCoreSet );
+ return VclPtr<ScLeftHeaderEditPage>::Create( pParent, *rCoreSet );
}
// class ScRightFooterEditPage
-ScRightFooterEditPage::ScRightFooterEditPage( vcl::Window* pParent, const SfxItemSet& rCoreSet )
+ScRightFooterEditPage::ScRightFooterEditPage( TabPageParent pParent, const SfxItemSet& rCoreSet )
: ScHFEditPage( pParent,
rCoreSet,
rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_FOOTERRIGHT ),
@@ -857,12 +826,12 @@ ScRightFooterEditPage::ScRightFooterEditPage( vcl::Window* pParent, const SfxIte
VclPtr<SfxTabPage> ScRightFooterEditPage::Create( TabPageParent pParent, const SfxItemSet* rCoreSet )
{
- return VclPtr<ScRightFooterEditPage>::Create( pParent.pParent, *rCoreSet );
+ return VclPtr<ScRightFooterEditPage>::Create( pParent, *rCoreSet );
}
// class ScLeftFooterEditPage
-ScLeftFooterEditPage::ScLeftFooterEditPage( vcl::Window* pParent, const SfxItemSet& rCoreSet )
+ScLeftFooterEditPage::ScLeftFooterEditPage( TabPageParent pParent, const SfxItemSet& rCoreSet )
: ScHFEditPage( pParent,
rCoreSet,
rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_FOOTERLEFT ),
@@ -871,7 +840,7 @@ ScLeftFooterEditPage::ScLeftFooterEditPage( vcl::Window* pParent, const SfxItemS
VclPtr<SfxTabPage> ScLeftFooterEditPage::Create( TabPageParent pParent, const SfxItemSet* rCoreSet )
{
- return VclPtr<ScLeftFooterEditPage>::Create( pParent.pParent, *rCoreSet );
+ return VclPtr<ScLeftFooterEditPage>::Create( pParent, *rCoreSet );
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/pagedlg/tphfedit.cxx b/sc/source/ui/pagedlg/tphfedit.cxx
index 80a7073609fb..ca845a16d53d 100644
--- a/sc/source/ui/pagedlg/tphfedit.cxx
+++ b/sc/source/ui/pagedlg/tphfedit.cxx
@@ -59,26 +59,39 @@ static void lcl_GetFieldData( ScHeaderFieldData& rData )
// class ScEditWindow
-ScEditWindow::ScEditWindow( vcl::Window* pParent, WinBits nBits, ScEditWindowLocation eLoc )
- : Control( pParent, nBits ),
- eLocation(eLoc),
- pAcc(nullptr)
+ScEditWindow::ScEditWindow(ScEditWindowLocation eLoc, weld::Window* pDialog)
+ : eLocation(eLoc)
+ , mbRTL(ScGlobal::IsSystemRTL())
+ , mpDialog(pDialog)
+ , pAcc(nullptr)
{
+}
+
+void ScEditWindow::SetDrawingArea(weld::DrawingArea* pDrawingArea)
+{
+ OutputDevice& rDevice = pDrawingArea->get_ref_device();
+
+ Size aSize = rDevice.LogicToPixel(Size(80, 120), MapMode(MapUnit::MapAppFont));
+ pDrawingArea->set_size_request(aSize.Width(), aSize.Height());
+ SetOutputSizePixel(aSize);
+
+ weld::CustomWidgetController::SetDrawingArea(pDrawingArea);
+
EnableRTL(false);
const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
Color aBgColor = rStyleSettings.GetWindowColor();
- SetMapMode(MapMode(MapUnit::MapTwip));
- SetPointer( PointerStyle::Text );
- SetBackground( aBgColor );
+ rDevice.SetMapMode(MapMode(MapUnit::MapTwip));
+ rDevice.SetBackground(aBgColor);
- Size aSize( GetOutputSize() );
+ Size aOutputSize(rDevice.PixelToLogic(aSize));
+ aSize = aOutputSize;
aSize.setHeight( aSize.Height() * 4 );
pEdEngine.reset( new ScHeaderEditEngine( EditEngine::CreatePool() ) );
pEdEngine->SetPaperSize( aSize );
- pEdEngine->SetRefDevice( this );
+ pEdEngine->SetRefDevice( &rDevice );
ScHeaderFieldData aData;
lcl_GetFieldData( aData );
@@ -86,34 +99,35 @@ ScEditWindow::ScEditWindow( vcl::Window* pParent, WinBits nBits, ScEditWindowLoc
// fields
pEdEngine->SetData( aData );
pEdEngine->SetControlWord( pEdEngine->GetControlWord() | EEControlBits::MARKFIELDS );
- mbRTL = ScGlobal::IsSystemRTL();
if (mbRTL)
pEdEngine->SetDefaultHorizontalTextDirection(EEHorizontalTextDirection::R2L);
- pEdView.reset( new EditView( pEdEngine.get(), this ) );
- pEdView->SetOutputArea( tools::Rectangle( Point(0,0), GetOutputSize() ) );
+ pEdView.reset(new EditView(pEdEngine.get(), nullptr));
+ pEdView->setEditViewCallbacks(this);
+ pEdView->SetOutputArea(tools::Rectangle(Point(0,0), aOutputSize));
pEdView->SetBackgroundColor( aBgColor );
pEdEngine->InsertView( pEdView.get() );
+
+ pDrawingArea->set_text_cursor();
+
+ if (pAcc)
+ pAcc->SetDescription(pDrawingArea->get_tooltip_text());
}
void ScEditWindow::Resize()
{
- Size aOutputSize(GetOutputSize());
+ OutputDevice& rDevice = GetDrawingArea()->get_ref_device();
+ Size aOutputSize(rDevice.PixelToLogic(GetOutputSizePixel()));
Size aSize(aOutputSize);
aSize.setHeight( aSize.Height() * 4 );
pEdEngine->SetPaperSize(aSize);
pEdView->SetOutputArea(tools::Rectangle(Point(0,0), aOutputSize));
- Control::Resize();
+ weld::CustomWidgetController::Resize();
}
ScEditWindow::~ScEditWindow()
{
- disposeOnce();
-}
-
-void ScEditWindow::dispose()
-{
// delete Accessible object before deleting EditEngine and EditView
if (pAcc)
{
@@ -123,12 +137,6 @@ void ScEditWindow::dispose()
}
pEdEngine.reset();
pEdView.reset();
- Control::dispose();
-}
-
-extern "C" SAL_DLLPUBLIC_EXPORT void makeScEditWindow(VclPtr<vcl::Window> & rRet, VclPtr<vcl::Window> & pParent, VclBuilder::stringmap &)
-{
- rRet = VclPtr<ScEditWindow>::Create(pParent, WB_BORDER|WB_TABSTOP, Left);
}
void ScEditWindow::SetNumType(SvxNumType eNumType)
@@ -196,9 +204,8 @@ void ScEditWindow::SetCharAttributes()
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
- vcl::Window* pWin = GetParent();
ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateScCharDlg(
- pWin ? pWin->GetFrameWeld() : nullptr, &aSet, pDocSh));
+ mpDialog, &aSet, pDocSh));
pDlg->SetText( ScResId( STR_TEXTATTRS ) );
if ( pDlg->Execute() == RET_OK )
{
@@ -213,62 +220,81 @@ void ScEditWindow::SetCharAttributes()
void ScEditWindow::Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect )
{
+ //note: ClassificationEditView::Paint is similar
+
+ rRenderContext.Push(PushFlags::ALL);
+ rRenderContext.SetClipRegion();
+
const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
Color aBgColor = rStyleSettings.GetWindowColor();
pEdView->SetBackgroundColor( aBgColor );
- SetBackground( aBgColor );
-
- Control::Paint(rRenderContext, rRect);
+ rRenderContext.SetBackground( aBgColor );
- pEdView->Paint(rRect);
+ tools::Rectangle aLogicRect(rRenderContext.PixelToLogic(rRect));
+ pEdView->Paint(aLogicRect, &rRenderContext);
- if( HasFocus() )
+ if (HasFocus())
+ {
pEdView->ShowCursor();
+ vcl::Cursor* pCursor = pEdView->GetCursor();
+ pCursor->DrawToDevice(rRenderContext);
+ }
+
+ std::vector<tools::Rectangle> aLogicRects;
+
+ // get logic selection
+ pEdView->GetSelectionRectangles(aLogicRects);
+
+ rRenderContext.SetLineColor();
+ rRenderContext.SetFillColor(COL_BLACK);
+ rRenderContext.SetRasterOp(RasterOp::Invert);
+
+ for (const auto &rSelectionRect : aLogicRects)
+ rRenderContext.DrawRect(rSelectionRect);
+
+ rRenderContext.Pop();
}
-void ScEditWindow::MouseMove( const MouseEvent& rMEvt )
+bool ScEditWindow::MouseMove( const MouseEvent& rMEvt )
{
- pEdView->MouseMove( rMEvt );
+ return pEdView->MouseMove( rMEvt );
}
-void ScEditWindow::MouseButtonDown( const MouseEvent& rMEvt )
+bool ScEditWindow::MouseButtonDown( const MouseEvent& rMEvt )
{
if ( !HasFocus() )
GrabFocus();
- pEdView->MouseButtonDown( rMEvt );
+ return pEdView->MouseButtonDown( rMEvt );
}
-void ScEditWindow::MouseButtonUp( const MouseEvent& rMEvt )
+bool ScEditWindow::MouseButtonUp( const MouseEvent& rMEvt )
{
- pEdView->MouseButtonUp( rMEvt );
+ return pEdView->MouseButtonUp( rMEvt );
}
-void ScEditWindow::KeyInput( const KeyEvent& rKEvt )
+bool ScEditWindow::KeyInput( const KeyEvent& rKEvt )
{
sal_uInt16 nKey = rKEvt.GetKeyCode().GetModifier()
+ rKEvt.GetKeyCode().GetCode();
if ( nKey == KEY_TAB || nKey == KEY_TAB + KEY_SHIFT )
{
- Control::KeyInput( rKEvt );
+ return false;
}
else if ( !pEdView->PostKeyEvent( rKEvt ) )
{
- Control::KeyInput( rKEvt );
+ return false;
}
else if ( !rKEvt.GetKeyCode().IsMod1() && !rKEvt.GetKeyCode().IsShift() &&
rKEvt.GetKeyCode().IsMod2() && rKEvt.GetKeyCode().GetCode() == KEY_DOWN )
{
aObjectSelectLink.Call(*this);
+ return true;
}
-}
-
-void ScEditWindow::Command( const CommandEvent& rCEvt )
-{
- pEdView->Command( rCEvt );
+ return false;
}
void ScEditWindow::GetFocus()
@@ -286,7 +312,7 @@ void ScEditWindow::GetFocus()
else
pAcc = nullptr;
- Control::GetFocus();
+ weld::CustomWidgetController::GetFocus();
}
void ScEditWindow::LoseFocus()
@@ -298,13 +324,13 @@ void ScEditWindow::LoseFocus()
}
else
pAcc = nullptr;
- Control::LoseFocus();
+ weld::CustomWidgetController::LoseFocus();
+ Invalidate(); // redraw without cursor
}
css::uno::Reference< css::accessibility::XAccessible > ScEditWindow::CreateAccessible()
{
OUString sName;
- OUString sDescription(GetHelpText());
switch (eLocation)
{
case Left:
@@ -323,10 +349,13 @@ css::uno::Reference< css::accessibility::XAccessible > ScEditWindow::CreateAcces
}
break;
}
+#if 0
+ //TODO
pAcc = new ScAccessibleEditObject(GetAccessibleParentWindow()->GetAccessible(), pEdView.get(), this,
- sName, sDescription, ScAccessibleEditObject::EditControl);
+ sName, OUString(), ScAccessibleEditObject::EditControl);
css::uno::Reference< css::accessibility::XAccessible > xAccessible = pAcc;
xAcc = xAccessible;
+#endif
return pAcc;
}
diff --git a/sc/uiconfig/scalc/ui/headerfootercontent.ui b/sc/uiconfig/scalc/ui/headerfootercontent.ui
index 7ef031f12b43..d39796409fb8 100644
--- a/sc/uiconfig/scalc/ui/headerfootercontent.ui
+++ b/sc/uiconfig/scalc/ui/headerfootercontent.ui
@@ -2,7 +2,6 @@
<!-- Generated with glade 3.22.1 -->
<interface domain="sc">
<requires lib="gtk+" version="3.18"/>
- <requires lib="LibreOffice" version="1.0"/>
<object class="GtkImage" id="imageBTN_DATE">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -38,6 +37,34 @@
<property name="can_focus">False</property>
<property name="icon_name">sc/res/time.png</property>
</object>
+ <object class="GtkMenu" id="popup">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="title">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="headerfootercontent|title">Title</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="filename">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="headerfootercontent|filename">File Name</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="pathname">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="headerfootercontent|pathname">Path/File Name</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ </object>
<object class="GtkBox" id="HeaderFooterContent">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -94,11 +121,24 @@
</packing>
</child>
<child>
- <object class="sclo-ScEditWindow" id="textviewWND_LEFT">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="wrap_mode">word</property>
- <property name="overwrite">True</property>
+ <property name="border_width">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkDrawingArea" id="textviewWND_LEFT">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="left_attach">0</property>
@@ -106,9 +146,24 @@
</packing>
</child>
<child>
- <object class="sclo-ScEditWindow" id="textviewWND_CENTER">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="border_width">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkDrawingArea" id="textviewWND_CENTER">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="left_attach">1</property>
@@ -116,9 +171,24 @@
</packing>
</child>
<child>
- <object class="sclo-ScEditWindow" id="textviewWND_RIGHT">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="border_width">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkDrawingArea" id="textviewWND_RIGHT">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="left_attach">2</property>
@@ -247,6 +317,8 @@
<property name="tooltip_text" translatable="yes" context="headerfootercontent|buttonBTN_FILE|tooltip_text">Title</property>
<property name="image">imageBTN_FILE</property>
<property name="draw_indicator">True</property>
+ <property name="popup">popup</property>
+ <property name="use_popover">False</property>
</object>
<packing>
<property name="expand">False</property>
@@ -487,32 +559,4 @@
</packing>
</child>
</object>
- <object class="GtkMenu" id="popup">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkMenuItem" id="title">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="headerfootercontent|title">Title</property>
- <property name="use_underline">True</property>
- </object>
- </child>
- <child>
- <object class="GtkMenuItem" id="filename">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="headerfootercontent|filename">File Name</property>
- <property name="use_underline">True</property>
- </object>
- </child>
- <child>
- <object class="GtkMenuItem" id="pathname">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="headerfootercontent|pathname">Path/File Name</property>
- <property name="use_underline">True</property>
- </object>
- </child>
- </object>
</interface>
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 2b2974590ef7..4992863879e1 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -471,7 +471,6 @@ custom_widgets = [
'ScCursorRefEdit',
'ScDataTableView',
'ScDoubleField',
- 'ScEditWindow',
'ScPivotLayoutTreeList',
'ScPivotLayoutTreeListData',
'ScPivotLayoutTreeListLabel',
diff --git a/svx/source/dialog/ClassificationEditView.cxx b/svx/source/dialog/ClassificationEditView.cxx
index e428f02172b6..70f4418e9b25 100644
--- a/svx/source/dialog/ClassificationEditView.cxx
+++ b/svx/source/dialog/ClassificationEditView.cxx
@@ -128,6 +128,8 @@ void ClassificationEditView::InvertSelectionWeight()
void ClassificationEditView::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect)
{
+ //note: ScEditWindow::Paint is similar
+
rRenderContext.Push(PushFlags::ALL);
rRenderContext.SetClipRegion();