summaryrefslogtreecommitdiff
path: root/sc/source/ui/inc/pvfundlg.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/inc/pvfundlg.hxx')
-rw-r--r--sc/source/ui/inc/pvfundlg.hxx254
1 files changed, 254 insertions, 0 deletions
diff --git a/sc/source/ui/inc/pvfundlg.hxx b/sc/source/ui/inc/pvfundlg.hxx
new file mode 100644
index 000000000000..c017bd88586a
--- /dev/null
+++ b/sc/source/ui/inc/pvfundlg.hxx
@@ -0,0 +1,254 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SC_PVFUNDLG_HXX
+#define SC_PVFUNDLG_HXX
+
+#include <com/sun/star/sheet/DataPilotFieldReference.hpp>
+#include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
+
+#include <vcl/fixed.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/button.hxx>
+#include <vcl/morebtn.hxx>
+#include <vcl/field.hxx>
+#include <svtools/stdctrl.hxx>
+#include <svx/checklbx.hxx>
+#include <sfx2/itemconnect.hxx>
+#include "pivot.hxx"
+
+#include <boost/unordered_map.hpp>
+
+// ============================================================================
+
+typedef sfx::ListBoxWrapper< sal_Int32 > ScDPListBoxWrapper;
+
+class ScDPObject;
+
+// ============================================================================
+
+class ScDPFunctionListBox : public MultiListBox
+{
+public:
+ explicit ScDPFunctionListBox( Window* pParent, const ResId& rResId );
+
+ void SetSelection( sal_uInt16 nFuncMask );
+ sal_uInt16 GetSelection() const;
+
+private:
+ void FillFunctionNames();
+};
+
+// ============================================================================
+
+class ScDPFunctionDlg : public ModalDialog
+{
+ typedef ::boost::unordered_map< ::rtl::OUString, ::rtl::OUString, ::rtl::OUStringHash > NameMapType;
+public:
+ explicit ScDPFunctionDlg( Window* pParent, const ScDPLabelDataVector& rLabelVec,
+ const ScDPLabelData& rLabelData, const ScDPFuncData& rFuncData );
+
+ sal_uInt16 GetFuncMask() const;
+ ::com::sun::star::sheet::DataPilotFieldReference GetFieldRef() const;
+
+private:
+ void Init( const ScDPLabelData& rLabelData, const ScDPFuncData& rFuncData );
+
+ const ::rtl::OUString& GetBaseFieldName(const ::rtl::OUString& rLayoutName) const;
+ const ::rtl::OUString& GetBaseItemName(const ::rtl::OUString& rLayoutName) const;
+
+ /** Searches for a listbox entry, starts search at specified position. */
+ sal_uInt16 FindBaseItemPos( const String& rEntry, sal_uInt16 nStartPos ) const;
+
+ DECL_LINK( SelectHdl, ListBox* );
+ DECL_LINK( DblClickHdl, MultiListBox* );
+
+private:
+ FixedLine maFlFunc;
+ ScDPFunctionListBox maLbFunc;
+ FixedText maFtNameLabel;
+ FixedInfo maFtName;
+ FixedLine maFlDisplay;
+ FixedText maFtType;
+ ListBox maLbType;
+ FixedText maFtBaseField;
+ ListBox maLbBaseField;
+ FixedText maFtBaseItem;
+ ListBox maLbBaseItem;
+ OKButton maBtnOk;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+ MoreButton maBtnMore;
+
+ NameMapType maBaseFieldNameMap; // cache for base field display -> original name.
+ NameMapType maBaseItemNameMap; // cache for base item display -> original name.
+
+ ScDPListBoxWrapper maLbTypeWrp; /// Wrapper for direct usage of API constants.
+
+ const ScDPLabelDataVector& mrLabelVec; /// Data of all labels.
+ bool mbEmptyItem; /// true = Empty base item in listbox.
+};
+
+// ============================================================================
+
+class ScDPSubtotalDlg : public ModalDialog
+{
+public:
+ explicit ScDPSubtotalDlg( Window* pParent, ScDPObject& rDPObj,
+ const ScDPLabelData& rLabelData, const ScDPFuncData& rFuncData,
+ const ScDPNameVec& rDataFields, bool bEnableLayout );
+
+ sal_uInt16 GetFuncMask() const;
+
+ void FillLabelData( ScDPLabelData& rLabelData ) const;
+
+private:
+ void Init( const ScDPLabelData& rLabelData, const ScDPFuncData& rFuncData );
+
+ DECL_LINK( DblClickHdl, MultiListBox* );
+ DECL_LINK( RadioClickHdl, RadioButton* );
+ DECL_LINK( ClickHdl, PushButton* );
+
+private:
+ FixedLine maFlSubt;
+ RadioButton maRbNone;
+ RadioButton maRbAuto;
+ RadioButton maRbUser;
+ ScDPFunctionListBox maLbFunc;
+ FixedText maFtNameLabel;
+ FixedInfo maFtName;
+ CheckBox maCbShowAll;
+ OKButton maBtnOk;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+ PushButton maBtnOptions;
+
+ ScDPObject& mrDPObj; /// The DataPilot object (for member names).
+ const ScDPNameVec& mrDataFields; /// The list of all data field names.
+
+ ScDPLabelData maLabelData; /// Cache for sub dialog.
+ bool mbEnableLayout; /// true = Enable Layout mode controls.
+};
+
+// ============================================================================
+
+class ScDPSubtotalOptDlg : public ModalDialog
+{
+public:
+ explicit ScDPSubtotalOptDlg( Window* pParent, ScDPObject& rDPObj,
+ const ScDPLabelData& rLabelData, const ScDPNameVec& rDataFields,
+ bool bEnableLayout );
+
+ void FillLabelData( ScDPLabelData& rLabelData ) const;
+
+private:
+ void Init( const ScDPNameVec& rDataFields, bool bEnableLayout );
+ void InitHideListBox();
+
+ const ::rtl::OUString& GetFieldName(const ::rtl::OUString& rLayoutName) const;
+
+ /** Searches for a listbox entry, starts search at specified position. */
+ sal_uInt16 FindListBoxEntry( const ListBox& rLBox, const String& rEntry, sal_uInt16 nStartPos ) const;
+
+ DECL_LINK( RadioClickHdl, RadioButton* );
+ DECL_LINK( CheckHdl, CheckBox* );
+ DECL_LINK( SelectHdl, ListBox* );
+
+private:
+ FixedLine maFlSortBy;
+ ListBox maLbSortBy;
+ RadioButton maRbSortAsc;
+ RadioButton maRbSortDesc;
+ RadioButton maRbSortMan;
+ FixedLine maFlLayout;
+ FixedText maFtLayout;
+ ListBox maLbLayout;
+ CheckBox maCbLayoutEmpty;
+ FixedLine maFlAutoShow;
+ CheckBox maCbShow;
+ NumericField maNfShow;
+ FixedText maFtShow;
+ FixedText maFtShowFrom;
+ ListBox maLbShowFrom;
+ FixedText maFtShowUsing;
+ ListBox maLbShowUsing;
+ FixedLine maFlHide;
+ SvxCheckListBox maLbHide;
+ FixedText maFtHierarchy;
+ ListBox maLbHierarchy;
+ OKButton maBtnOk;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+
+ ScDPListBoxWrapper maLbLayoutWrp; /// Wrapper for direct usage of API constants.
+ ScDPListBoxWrapper maLbShowFromWrp; /// Wrapper for direct usage of API constants.
+
+ ScDPObject& mrDPObj; /// The DataPilot object (for member names).
+ ScDPLabelData maLabelData; /// Cache for members data.
+
+ typedef ::boost::unordered_map< ::rtl::OUString, ::rtl::OUString, ::rtl::OUStringHash > NameMapType;
+ NameMapType maDataFieldNameMap; /// Cache for displayed name to field name mapping.
+};
+
+// ============================================================================
+
+class ScDPShowDetailDlg : public ModalDialog
+{
+public:
+ explicit ScDPShowDetailDlg( Window* pParent, ScDPObject& rDPObj, sal_uInt16 nOrient );
+
+ virtual short Execute();
+
+ /**
+ * @return String internal name of the selected field. Note that this may
+ * be different from the name displayed in the dialog if the field
+ * has a layout name.
+ */
+ String GetDimensionName() const;
+
+private:
+ DECL_LINK( DblClickHdl, ListBox* );
+
+private:
+ FixedText maFtDims;
+ ListBox maLbDims;
+ OKButton maBtnOk;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+
+ typedef ::boost::unordered_map<String, long, ScStringHashCode> DimNameIndexMap;
+ DimNameIndexMap maNameIndexMap;
+ ScDPObject& mrDPObj;
+};
+
+// ============================================================================
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */