summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2011-11-18 15:40:12 -0500
committerKohei Yoshida <kohei.yoshida@suse.com>2011-11-18 15:40:12 -0500
commite2aca79c0186b77e8eb7c4de7a0b35879584fee4 (patch)
tree5afd92d86c1bf571318ff67f765174ac3b81b82d
parentab5c5c9d808a5f32d1646de9e1b5cab251b62269 (diff)
Register modes for non-standard autofiltering options.
-rw-r--r--sc/source/ui/inc/gridwin.hxx4
-rw-r--r--sc/source/ui/view/gridwin.cxx32
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());