root/headers/os/interface/LayoutContext.h
/*
 * Copyright 2006, Haiku, Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 */
#ifndef _LAYOUT_CONTEXT_H
#define _LAYOUT_CONTEXT_H

#include <List.h>

class BLayoutContext;


class BLayoutContextListener {
public:
                                                                BLayoutContextListener();
        virtual                                         ~BLayoutContextListener();

        virtual void                            LayoutContextLeft(BLayoutContext* context) = 0;

private:
        virtual void                            _ReservedLayoutContextListener1();
        virtual void                            _ReservedLayoutContextListener2();
        virtual void                            _ReservedLayoutContextListener3();
        virtual void                            _ReservedLayoutContextListener4();
        virtual void                            _ReservedLayoutContextListener5();

                        uint32                          _reserved[3];
};


class BLayoutContext {
public:
                                                                BLayoutContext();
                                                                ~BLayoutContext();

                        void                            AddListener(BLayoutContextListener* listener);
                        void                            RemoveListener(
                                                                        BLayoutContextListener* listener);

private:
                        BList                           fListeners;
                        uint32                          _reserved[5];
};

#endif  //      _LAYOUT_CONTEXT_H