summaryrefslogtreecommitdiffstats
path: root/kxmleditor/kxeshellmanager.h
blob: 0eeff8ec8d3a7cea6f7e42f357e2b255cd304abe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//
// C++ Interface: kxeshellmanager
//
// Description: 
//
//
// Author: Adam Charytoniuk <achary@poczta.onet.pl>, (C) 2004
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef KXESHELLMANAGER_H
#define KXESHELLMANAGER_H
/**
@file
*/

#include <qptrlist.h>

class KXMLEditorShell;

/**
@short Available shell list

Stores and dispatches informations about all KXMLEditorShell windows currently opened.
Only one instance of this class is created. Eeach shell adds itself into this manager.

@sa KXMLEditorShell

@author Adam Charytoniuk
*/
class KXEShellManager{
public:
	/** @short Constructor */
	KXEShellManager();

	/** @short Destructor */
	~KXEShellManager();

	/** @short Adds given part to the manager.

	All opened Shells will be informed about that event by KXMLEditorShell::slotShellAdded()
	method. In addition, newly added shell will be informed about presence of each of all existing
	shells with the same method.
		@param pShell newly added shell
	 */
	void addShell(KXMLEditorShell* pShell);

	/** @short Removes given part from manager.

	All opened Shells will be informed about that event by KXMLEditorShell::slotShellRemoved()
	method.
		@param pShell to be removed (closed)
	*/
	void removeShell(KXMLEditorShell* pShell);

	/** @short Returns list of currently opened shells. */
	QPtrList<KXMLEditorShell> *shells();
	
private:
	/** @short Internally stores list of available shells. */
	QPtrList<KXMLEditorShell> m_shells;
};

#endif