summaryrefslogtreecommitdiff
path: root/sd/source/ui/inc/taskpane/ControlContainer.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/inc/taskpane/ControlContainer.hxx')
-rw-r--r--sd/source/ui/inc/taskpane/ControlContainer.hxx200
1 files changed, 0 insertions, 200 deletions
diff --git a/sd/source/ui/inc/taskpane/ControlContainer.hxx b/sd/source/ui/inc/taskpane/ControlContainer.hxx
deleted file mode 100644
index c9db3b12c..000000000
--- a/sd/source/ui/inc/taskpane/ControlContainer.hxx
+++ /dev/null
@@ -1,200 +0,0 @@
-/* -*- 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 SD_TOOLPANEL_CONTROL_CONTAINER_HXX
-#define SD_TOOLPANEL_CONTROL_CONTAINER_HXX
-
-#include <osl/mutex.hxx>
-
-#include <vector>
-#include <memory>
-
-class Window;
-
-namespace sd { namespace toolpanel {
-
-class TreeNode;
-
-/** This container manages the children of a TreeNode. It handles the
- expansion and visibility state of its child controls. The container
- does not do the layouting or painting of the controls. Instead it asks
- its owner to do that.
-
- The difference between expansion state and visibility is that when a
- control is collapsed at least a title bar is shown for it. When it is
- not visible then even this title bar is not shown. In that case the
- user can not expand the control. A control has to be visible in order
- to be expanded or collapsed.
-
- Whenever you expand or collapse, show or hide a child control then use
- this container class. Do not call the respective methods of the child
- directly.
-*/
-class ControlContainer
-{
-public:
- enum VisibilityState { VS_SHOW, VS_HIDE, VS_TOGGLE };
- enum ExpansionState { ES_EXPAND, ES_COLLAPSE, ES_TOGGLE };
-
- /** Create a new control container.
- @param pParent
- This node is asked to re-calculate the size of its children when
- a child of this container is expanded or collapsed.
- */
- ControlContainer (TreeNode* pNode);
-
- virtual ~ControlContainer (void);
-
- /** This is function makes sure that all children are deleted. Call
- this function from the destructor of a sub class to have all child
- windows deleted before the destructor of another base class of that
- sub class is called. When that other base class is some kind of a
- window it would otherwise complain that there are living children.
- */
- void DeleteChildren (void);
-
- /** Add the given control to the set of controls managed by the
- container. This control is then expanded.
- @return
- Return the index under which the control has been inserted in
- the container. It is the same index that is returned by
- GetControlIndex().
- */
- sal_uInt32 AddControl (::std::auto_ptr<TreeNode> pControl);
-
- /** Expand (default) or collapse the specified control. When
- expanding a control in a single expansion environment then all
- other controls are collapsed. The specified control is being
- made the active control as returned by GetActiveControl().
- */
- virtual void SetExpansionState (
- sal_uInt32 nIndex,
- ExpansionState aState);
- virtual void SetExpansionState (
- TreeNode* pControl,
- ExpansionState aState);
- virtual void SetVisibilityState (
- sal_uInt32 nIndex,
- VisibilityState aState);
-
- /** Return the index of the given control.
- */
- sal_uInt32 GetControlIndex (TreeNode* pControl) const;
-
- /** Return the number of controls in the container.
- */
- sal_uInt32 GetControlCount (void) const;
-
- /** Return the number of visible controls in the container.
- */
- sal_uInt32 GetVisibleControlCount (void) const;
-
- /** Return the control with the specified index regardless of whether
- that control is hidden or visible.
- */
- TreeNode* GetControl (sal_uInt32 nIndex) const;
-
- /** Return the index of the control previous to that that is specified
- by the given index.
- @param nIndex
- Index of the control for which to return the index of the
- previous control. This index is guaranteed not to be returned.
- @param bIncludeHidden
- This flag tells the method whether to include the controls that
- are not visible in the search for the previous control. When it
- is <FALSE/> the hidden controls are skipped.
- @param bCycle
- When this flag is <TRUE/> then the search for the previous
- control wraps arround when reaching the first control.
- @return
- Returns the index to the previous control or (sal_uInt32)-1 when
- there is no previous control. This would be the case when there
- is only one (visible) child.
- */
- sal_uInt32 GetPreviousIndex (
- sal_uInt32 nIndex,
- bool bIncludeHidden=false,
- bool bCycle=false) const;
-
- /** Return the index of the control next to that that is specified by
- the given index.
- @param nIndex
- Index of the control for which to return the index of the next
- control. This index is guaranteed not to be returned.
- @param bIncludeHidden
- This flag tells the method whether to include the controls that
- are not visible in the search for the next control. When it is
- <FALSE/> the hidden controls are skipped.
- @param bCycle
- When this flag is <TRUE/> then the search for the next control
- wraps arround when reaching the last control.
- @return
- Returns the index to the next control or (sal_uInt32)-1 when
- there is no next control. This would be the case when there is
- only one (visible) child.
- */
- sal_uInt32 GetNextIndex (
- sal_uInt32 nIndex,
- bool bIncludeHidden=false,
- bool bCycle=false) const;
-
- void SetMultiSelection (bool bFlag);
-
- /** This is method is called when the list of controls has changed,
- i.e. a new control has been added. The default implementation is
- empty. Overwrite this method in derived classes in order to react to
- such changes.
- */
- virtual void ListHasChanged (void);
-
-private:
- osl::Mutex maMutex;
-
- /// List of controls managed by a container.
- typedef ::std::vector<TreeNode*> ControlList;
- ControlList maControlList;
-
- /** This parent is used for resize requests when children are expanded
- or collapsed.
- */
- TreeNode* mpNode;
-
- /** The index of the currently expanded control. A value of
- (sal_uInt32)-1 indicates that no control is active. This may be the
- case after adding controls to the container.
- */
- sal_uInt32 mnActiveControlIndex;
-
- bool mbMultiSelection;
-};
-
-} } // end of namespace ::sd::toolpanel
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */