mmuifw_plat/alf_widgetmodel_api/inc/alf/ialflayoutmanager.h
changeset 17 3eca7e70b1b8
parent 3 4526337fb576
--- a/mmuifw_plat/alf_widgetmodel_api/inc/alf/ialflayoutmanager.h	Tue Feb 02 00:28:09 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  interface for layout managers
-*
-*/
-
-
-#ifndef I_ALFLAYOUTMANAGER
-#define I_ALFLAYOUTMANAGER
-
-#include <alf/ialfinterfacebase.h>
-#include <alf/alftypes.h>
-
-class CAlfLayout;
-class CAlfControl;
-
-namespace duiuimodel
-    {
-class DuiNode;
-    }
-using namespace duiuimodel;
-
-namespace Alf
-    {
-
-class CAlfWidgetControl;
-class AlfCustomInitDataBase;
-
-namespace ialflayoutmanager
-    {
-     static const IfId Ident =
-        {
-        0, "ialflayoutmanager"
-        };
-    } 
-
-/**
- * The interface for layout managers
- *
- * Layout manager handles the layouting of child widgets in the container widget.
- * It uses IAlfLayoutPreferences-interface (@see IAlfLayoutPreferences) 
- * of child widgets as a guide for laying out the widgets. The layoutmanager 
- * is set to the IAlfHostApi- interface (@see IAlfHostApi::setBaseLayout)
- * createLayout-method should be the first call after creating the layoutmanager. 
- *
- * Layout manager may also provide information about the layout preferences of its
- * children. If this is supported the layout manager will combine the layout preferences
- * of its children taking into consideration the technique used to lay out the children
- * using the layout manager. This will provide information about the whole display area
- * occupied by the layout manager. For instance vertical flow layout manager will provide
- * preferred size area of its children by summing their heights and providing the maximum
- * width among the children.
- *
- * @code
- * // Create layout manager interface.
- * IAlfLayoutManager* layoutManager = IAlfInterfaceBase::makeInterface<IAlfLayoutManager>(control);
- *
- * // See if layout preferences is supported in the given layout manager.
- * IAlfLayoutPreferences* layoutPreferences = IAlfInterfaceBase::makeInterface<IAlfLayoutPreferences>(layoutManager);
- *
- * if(layoutPreferences != 0)
- *     {
- *     TAlfXYMetric preferredSize;
- *     // This will report the preferred size of the layout by combining together preferred sizes of its children.
- *     bool result = layoutPreferences->getPreferredSize(preferredSize);
- *     }
- * @endcode
- *
- * @lib alfwidgetmodel.lib
- * @since S60 ?S60_version
- * @status Draft
- */
-class IAlfLayoutManager : public IAlfInterfaceBase
-    {
-public:
-       
-    static inline const IfId& type()
-        {       
-        return ialflayoutmanager::Ident;
-        }
-        
-    virtual inline ~IAlfLayoutManager() {}
-    
-    /**
-     * Creates the layout used by this layoutmanager.
-     *
-     * @param aOwner owner-control of the the created layout.
-     * @param aParentLayout parent for the created layout
-     * @param aLayoutIndex index, where created visual should be placed in the parent layout.
-     * @throw AlfVisualException(EInvalidArrayIndex), if aLayoutIndex is out of bounds
-     *        AlfVisualException(ECanNotCreateVisual), if the layout creation failed.
-     */    
-    virtual void createLayout(CAlfWidgetControl& aOwner, 
-        CAlfLayout* aParentLayout, int aLayoutIndex) = 0;
-    
-    /**
-     * Returns the layout used by this layoutmanager.
-     *
-     * @return layout used by this layoutmanager.
-     * @throw AlfVisualException(EInvalidVisual), if layout is not created.
-     */
-    virtual CAlfLayout& getLayout()const  = 0;
-    
-    /**
-     * Notifies the layout manager, that the child control's layout
-     * must be updated
-     * 
-     * @param aControl control, which size has changed.
-     * @throw AlfVisualException(EInvalidVisual), if layout is not created.
-     */    
-    virtual void updateChildLayout(CAlfWidgetControl* aControl) = 0;
-    
-    /**
-     * Notifies the layout manager, that all the child control's layouts
-     * must be updated.
-     * @throw AlfVisualException(EInvalidVisual), if layout is not created.
-     */    
-    virtual void updateChildrenLayout() = 0;
-    
-    /**
-     * Notifies the layout manager, that the control's has been
-     * removed from the layout.
-     * 
-     * @param aControl control, which has been removed from the layout.
-     * @throw AlfVisualException(EInvalidVisual), if layout is not created.
-     */    
-    virtual void childRemoved(CAlfWidgetControl* aControl) = 0;
-    
-public:
-// from base class IAlfInterfaceBase
-    
-    /**
-     * Interface getter. 
-     * @see IAlfInterfaceBase::MakeInterface
-     *
-     * @since S60 ?S60_version
-     * @param aType The type id of the queried interface.
-     * @return The queried interface, or NULL if the interface is not
-     *         supported or available.
-     */    
-    virtual IAlfInterfaceBase* makeInterface( const IfId& aType ) = 0;
-    };
-    
-/**
- * Placeholder for information required to instantiate an layoutmanager
- * via the widget factory mechanism.
- * A pointer to this structure is casted to a void pointer and sent to the
- * factory plugin.
- * @lib alfwidgetmodel.lib
- * @since S60 ?S60_version
- */
-struct AlfLayoutManagerInitData
-    {
-    /**
-     * Event handler instance ID.This uniquely identifies every event handler instance.
-     */
-    char* mLayoutManagerId;
-    
-    /**
-     * Pointer to node in declaration containing information for the widget.
-     */
-    DuiNode* mNode;
-
-    /**
-     * Pointer to custom data passed via factory mechanism
-     * Not Owned.
-     */
-    AlfCustomInitDataBase* mCustomData;
-    };
-
-
-    } // namespace Alf
-
-#endif // I_ALFLAYOUTMANAGER