20#include "kchatdialog.h"
25#include <tdefontdialog.h>
29#include <tqpushbutton.h>
31class KChatDialogPrivate
40 mSystemNamePreview = 0;
41 mSystemTextPreview = 0;
48 TQLabel* mNamePreview;
49 TQLabel* mTextPreview;
50 TQLabel* mSystemNamePreview;
51 TQLabel* mSystemTextPreview;
53 TQLineEdit* mMaxMessages;
58KChatDialog::KChatDialog(
KChatBase* chat, TQWidget* parent,
bool modal)
60 : KDialogBase(Plain, i18n(
"Configure Chat"), Ok|Default|Apply|Cancel, Ok, parent, 0, modal, true)
66KChatDialog::KChatDialog(TQWidget* parent,
bool modal)
68 : KDialogBase(Plain, i18n(
"Configure Chat"), Ok|Default|Apply|Cancel, Ok, parent, 0, modal, true)
73KChatDialog::~KChatDialog()
78void KChatDialog::init()
80 d =
new KChatDialogPrivate;
82 d->mTextPage = plainPage();
83 TQGridLayout* layout =
new TQGridLayout(d->mTextPage, 7, 2, KDialog::marginHint(), KDialog::spacingHint());
86 TQPushButton* nameFont =
new TQPushButton(i18n(
"Name Font..."), d->mTextPage);
87 connect(nameFont, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotGetNameFont()));
88 layout->addWidget(nameFont, 0, 0);
89 TQPushButton* textFont =
new TQPushButton(i18n(
"Text Font..."), d->mTextPage);
90 connect(textFont, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotGetTextFont()));
91 layout->addWidget(textFont, 0, 1);
93 TQFrame* messagePreview =
new TQFrame(d->mTextPage);
94 messagePreview->setFrameStyle(TQFrame::StyledPanel | TQFrame::Sunken);
95 TQHBoxLayout* messageLayout =
new TQHBoxLayout(messagePreview);
96 layout->addMultiCellWidget(messagePreview, 1, 1, 0, 1);
98 d->mNamePreview =
new TQLabel(i18n(
"Player: "), messagePreview);
99 messageLayout->addWidget(d->mNamePreview, 0);
100 d->mTextPreview =
new TQLabel(i18n(
"This is a player message"), messagePreview);
101 messageLayout->addWidget(d->mTextPreview, 1);
103 layout->addRowSpacing(2, 10);
106 TQLabel* systemMessages =
new TQLabel(i18n(
"System Messages - Messages directly sent from the game"), d->mTextPage);
107 layout->addMultiCellWidget(systemMessages, 3, 3, 0, 1);
108 TQPushButton* systemNameFont =
new TQPushButton(i18n(
"Name Font..."), d->mTextPage);
109 connect(systemNameFont, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotGetSystemNameFont()));
110 layout->addWidget(systemNameFont, 4, 0);
111 TQPushButton* systemTextFont =
new TQPushButton(i18n(
"Text Font..."), d->mTextPage);
112 connect(systemTextFont, TQ_SIGNAL(pressed()),
this, TQ_SLOT(slotGetSystemTextFont()));
113 layout->addWidget(systemTextFont, 4, 1);
115 TQFrame* systemMessagePreview =
new TQFrame(d->mTextPage);
116 systemMessagePreview->setFrameStyle(TQFrame::StyledPanel | TQFrame::Sunken);
117 TQHBoxLayout* systemMessageLayout =
new TQHBoxLayout(systemMessagePreview);
118 layout->addMultiCellWidget(systemMessagePreview, 5, 5, 0, 1);
120 d->mSystemNamePreview =
new TQLabel(i18n(
"--- Game: "), systemMessagePreview);
121 systemMessageLayout->addWidget(d->mSystemNamePreview, 0);
122 d->mSystemTextPreview =
new TQLabel(i18n(
"This is a system message"), systemMessagePreview);
123 systemMessageLayout->addWidget(d->mSystemTextPreview, 1);
126 TQLabel* maxMessages =
new TQLabel(i18n(
"Maximal number of messages (-1 = unlimited):"), d->mTextPage);
127 layout->addWidget(maxMessages, 6, 0);
128 d->mMaxMessages =
new TQLineEdit(d->mTextPage);
129 d->mMaxMessages->setText(TQString::number(-1));
130 layout->addWidget(d->mMaxMessages, 6, 1);
133void KChatDialog::slotGetNameFont()
135 TQFont font = nameFont();
136 TDEFontDialog::getFont(font);
140void KChatDialog::slotGetTextFont()
142 TQFont font = textFont();
143 TDEFontDialog::getFont(font);
147void KChatDialog::slotGetSystemNameFont()
149 TQFont font = systemNameFont();
150 TDEFontDialog::getFont(font);
151 setSystemNameFont(font);
154void KChatDialog::slotGetSystemTextFont()
156 TQFont font = systemTextFont();
157 TDEFontDialog::getFont(font);
158 setSystemTextFont(font);
161TQFont KChatDialog::nameFont()
const
163 return d->mNamePreview->font();
166TQFont KChatDialog::textFont()
const
168 return d->mTextPreview->font();
171TQFont KChatDialog::systemNameFont()
const
173 return d->mSystemNamePreview->font();
176TQFont KChatDialog::systemTextFont()
const
178 return d->mSystemTextPreview->font();
181void KChatDialog::plugChatWidget(
KChatBase* widget,
bool applyFonts)
184 if (applyFonts && d->mChat) {
185 setNameFont(d->mChat->nameFont());
186 setTextFont(d->mChat->messageFont());
187 setSystemNameFont(d->mChat->systemNameFont());
188 setSystemTextFont(d->mChat->systemMessageFont());
189 setMaxMessages(d->mChat->maxItems());
193void KChatDialog::configureChatWidget(
KChatBase* widget)
207void KChatDialog::slotOk()
210 KDialogBase::slotOk();
213void KChatDialog::slotApply()
215 configureChatWidget(d->mChat);
218void KChatDialog::setNameFont(TQFont f)
220 d->mNamePreview->setFont(f);
223void KChatDialog::setTextFont(TQFont f)
225 d->mTextPreview->setFont(f);
228void KChatDialog::setSystemNameFont(TQFont f)
230 d->mSystemNamePreview->setFont(f);
233void KChatDialog::setSystemTextFont(TQFont f)
235 d->mSystemTextPreview->setFont(f);
238void KChatDialog::setMaxMessages(
int max)
240 d->mMaxMessages->setText(TQString::number(max));
243int KChatDialog::maxMessages()
const
246 int max = d->mMaxMessages->text().toInt(&ok);
253#include "kchatdialog.moc"
The base class for chat widgets.
void setSystemNameFont(const TQFont &font)
Same as setNameFont but applies only to system messages.
void setSystemMessageFont(const TQFont &font)
Same as setMessageFont but applies only to system messages.
void setNameFont(const TQFont &font)
Set the font that used used for the name part of a message.
void setMessageFont(const TQFont &font)
Set the font that used used for the message part of a message.
void setMaxItems(int maxItems)
Set the maximum number of items in the list.