diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2011-11-18 15:40:12 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2011-11-18 15:40:12 -0500 |
commit | e2aca79c0186b77e8eb7c4de7a0b35879584fee4 (patch) | |
tree | 5afd92d86c1bf571318ff67f765174ac3b81b82d | |
parent | ab5c5c9d808a5f32d1646de9e1b5cab251b62269 (diff) |
Register modes for non-standard autofiltering options.
-rw-r--r-- | sc/source/ui/inc/gridwin.hxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/gridwin.cxx | 32 |
2 files changed, 18 insertions, 18 deletions
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx index 899b973295db..477536a6ad14 100644 --- a/sc/source/ui/inc/gridwin.hxx +++ b/sc/source/ui/inc/gridwin.hxx @@ -304,6 +304,8 @@ protected: virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ); public: + enum AutoFilterMode { Normal, Top10, Custom, Empty, NonEmpty }; + ScGridWindow( Window* pParent, ScViewData* pData, ScSplitPos eWhichPos ); ~ScGridWindow(); @@ -342,7 +344,7 @@ public: void LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow); void RefreshAutoFilterButton(const ScAddress& rPos); - void UpdateAutoFilterFromMenu(); + void UpdateAutoFilterFromMenu(AutoFilterMode eMode); void LaunchPageFieldMenu( SCCOL nCol, SCROW nRow ); void LaunchDPFieldMenu( SCCOL nCol, SCROW nRow ); diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 4a0d0c9bbd9c..e378a7f7a6b4 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -588,28 +588,22 @@ void ScGridWindow::ExecPageFieldSelect( SCCOL nCol, SCROW nRow, sal_Bool bHasSel namespace { -class PopupAction : public ScMenuFloatingWindow::Action -{ -public: - virtual void execute() - { - } -}; - struct AutoFilterData : public ScCheckListMenuWindow::ExtendedData { ScAddress maPos; ScDBData* mpData; }; -class AutoFilterOKAction : public ScMenuFloatingWindow::Action +class AutoFilterAction : public ScMenuFloatingWindow::Action { ScGridWindow* mpWindow; + ScGridWindow::AutoFilterMode meMode; public: - AutoFilterOKAction(ScGridWindow* p) : mpWindow(p) {} + AutoFilterAction(ScGridWindow* p, ScGridWindow::AutoFilterMode eMode) : + mpWindow(p), meMode(eMode) {} virtual void execute() { - mpWindow->UpdateAutoFilterFromMenu(); + mpWindow->UpdateAutoFilterFromMenu(meMode); } }; @@ -662,7 +656,7 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) ScDocument* pDoc = pViewData->GetDocument(); mpAutoFilterPopup.reset(new ScCheckListMenuWindow(this, pDoc)); - mpAutoFilterPopup->setOKAction(new AutoFilterOKAction(this)); + mpAutoFilterPopup->setOKAction(new AutoFilterAction(this, Normal)); mpAutoFilterPopup->setPopupEndAction( new AutoFilterPopupEndAction(this, ScAddress(nCol, nRow, nTab))); std::auto_ptr<AutoFilterData> pData(new AutoFilterData); @@ -712,10 +706,14 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) mpAutoFilterPopup->initMembers(); // Populate the menu. - mpAutoFilterPopup->addMenuItem(ScResId::toString(ScResId(SCSTR_TOP10FILTER)), true, new PopupAction); - mpAutoFilterPopup->addMenuItem(ScResId::toString(ScResId(SCSTR_STDFILTER)), true, new PopupAction); - mpAutoFilterPopup->addMenuItem(ScResId::toString(ScResId(SCSTR_EMPTY)), true, new PopupAction); - mpAutoFilterPopup->addMenuItem(ScResId::toString(ScResId(SCSTR_NOTEMPTY)), true, new PopupAction); + mpAutoFilterPopup->addMenuItem( + ScResId::toString(ScResId(SCSTR_TOP10FILTER)), true, new AutoFilterAction(this, Top10)); + mpAutoFilterPopup->addMenuItem( + ScResId::toString(ScResId(SCSTR_STDFILTER)), true, new AutoFilterAction(this, Custom)); + mpAutoFilterPopup->addMenuItem( + ScResId::toString(ScResId(SCSTR_EMPTY)), true, new AutoFilterAction(this, Empty)); + mpAutoFilterPopup->addMenuItem( + ScResId::toString(ScResId(SCSTR_NOTEMPTY)), true, new AutoFilterAction(this, NonEmpty)); mpAutoFilterPopup->SetPopupModeEndHdl( LINK(this, ScGridWindow, PopupModeEndHdl) ); @@ -735,7 +733,7 @@ void ScGridWindow::RefreshAutoFilterButton(const ScAddress& rPos) } } -void ScGridWindow::UpdateAutoFilterFromMenu() +void ScGridWindow::UpdateAutoFilterFromMenu(AutoFilterMode eMode) { const AutoFilterData* pData = static_cast<const AutoFilterData*>(mpAutoFilterPopup->getExtendedData()); |