// This is the SIP interface definition for QDockWindow.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyQt.
// 
// This copy of PyQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
// 
// PyQt is supplied 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 General Public License for more
// details.
// 
// You should have received a copy of the GNU General Public License along with
// PyQt; see the file LICENSE.  If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


%ExportedDoc
<Sect2><Title>QDockWindow (Qt v3+)</Title>
<Para>
<Literal>QDockWindow</Literal> is fully implemented.
</Para>
</Sect2>
%End


%If (Qt_3_0_0 -)

class QDockWindow : QFrame
{
%TypeHeaderCode
#include <qdockwindow.h>
%End

public:
	enum Place {
		InDock,
		OutsideDock
	};

	enum CloseMode {
		Never,
		Docked,
		Undocked,
		Always
	};

	QDockWindow(Place = InDock,QWidget * /TransferThis/ = 0,
		    const char * = 0,WFlags = 0);
%If (Qt_3_1_0 -)
	QDockWindow(QWidget * /TransferThis/,const char * = 0,WFlags = 0);
%End

	virtual void setWidget(QWidget *);
	QWidget *widget() const;

	Place place() const;

	QDockArea *area() const;

	virtual void setCloseMode(int);
	bool isCloseEnabled() const;
	int closeMode() const;

	virtual void setResizeEnabled(bool);
	virtual void setMovingEnabled(bool);
	bool isResizeEnabled() const;
	bool isMovingEnabled() const;

	virtual void setHorizontallyStretchable(bool);
	virtual void setVerticallyStretchable(bool);
	bool isHorizontallyStretchable() const;
	bool isVerticallyStretchable() const;
	bool isStretchable() const;

	virtual void setOffset(int);
	int offset() const;

	virtual void setFixedExtentWidth(int);
	virtual void setFixedExtentHeight(int);
	QSize fixedExtent() const;

	virtual void setNewLine(bool);
	bool newLine() const;

	Qt::Orientation orientation() const;

	QSize sizeHint() const;
	QSize minimumSize() const;
	QSize minimumSizeHint() const;

	QBoxLayout *boxLayout();

	virtual void setOpaqueMoving(bool);
	bool opaqueMoving() const;

	bool eventFilter(QObject *,QEvent *);

signals:
	void orientationChanged(Orientation);
	void placeChanged(QDockWindow::Place);
	void visibilityChanged(bool);

public slots:
	virtual void undock(QWidget *);
	virtual void undock();
	virtual void dock();
	virtual void setOrientation(Orientation);
	void setCaption(const QString &);

protected:
	void resizeEvent(QResizeEvent *);
	void showEvent(QShowEvent *);
	void hideEvent(QHideEvent *);
	void contextMenuEvent(QContextMenuEvent *);

%If (Qt_3_0_1 -)
	void drawFrame(QPainter *);
%End
%If (Qt_3_1_0 -)
	void drawContents(QPainter *);
%End

	bool event(QEvent *);

private:
	QDockWindow(const QDockWindow &);
};

%End
