summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/commentbox.h
blob: 310335323d6bd92f9e679a7b9eb53afdba48e563 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/***************************************************************************
 *                                                                         *
 *   copyright (C) 2004 by Michael Buesch                                  *
 *   email: mbuesch@freenet.de                                             *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License version 2        *
 *   as published by the Free Software Foundation.                         *
 *                                                                         *
 ***************************************************************************/

/***************************************************************************
 * copyright (C) 2004 by Ulf Schenk
 * This file is originaly based on version 1.0.1 of pwmanager
 * and was modified to run on embedded devices that run microkde
 *
 * $Id$
 **************************************************************************/  

#ifndef COMMENTBOX_H
#define COMMENTBOX_H

#include <qstring.h>
#include <qsize.h>
class QWidget;
class QTextEdit;
class KHTMLPart;

#ifndef PWM_EMBEDDED

class CommentBox 
{
protected:
	enum commentBoxMode
	{
		mode_notSet = 0,
		mode_text,
		mode_html
	};

public:
	CommentBox(QWidget *_parentWidget);
	~CommentBox();

	/** clear all data in the comment box */
	void clear();
	/** show the comment box */
	void show();
	/** hide the comment box */
	void hide();
	/** resize the comment box */
	void resize(const QSize &size);
	void resize(int w, int h)
			{ resize(QSize(w, h)); }
	/** get the size of the comment box */
	QSize size();
	/** if neccessary switch to text-mode and
	  * insert this text into the comment box
	  */
	void setText(const QString &text);
	/** get the text of the comment box.
	  * If it's not in text-mode it returns false
	  */
	bool getText(QString *text);
	/** if neccessary switch to HTML-mode and
	  * insert this html code into the comment box
	  */
	void setHtml(QString code);
	/** checks "dta" for its type, sets the correct
	  * mode and writes "dta" to the comment box
	  */
	void setContent(const QString &dta);

protected:
	/** switch the current mode */
	void switchTo(commentBoxMode newMode);
	/** clear all text data */
	void clearText();
	/** clear all HTML data */
	void clearHtml();

protected:
	/** parent widget for this comment box */
	QWidget *parentWidget;
	/** current comment box usage type */
	commentBoxMode mode;
	/** if the comment box is a normal textbox, data is stored here */
	QTextEdit *textDta;
	/** if the comment box is a HTML box, data is stored here */
	KHTMLPart *htmlDta;
};

#else
#include <qtextbrowser.h>
/** Implementation of the advanced HTML comment box */
//US ENH: CommentBox must be derived from QWidget, to allow the splitter to set a initial size
// without conflicting with the two display modes 

class CommentBox : public QTextBrowser 
{
public:
	CommentBox(QWidget *_parentWidget);
	~CommentBox();

	/** clear all data in the comment box */
	void clear();
	/** if neccessary switch to text-mode and
	  * insert this text into the comment box
	  */
	void setText(const QString &text);
	/** get the text of the comment box.
	  * If it's not in text-mode it returns false
	  */
	bool getText(QString *text);
	/** if neccessary switch to HTML-mode and
	  * insert this html code into the comment box
	  */
	void setContent(const QString &dta);

};
#endif


#endif