You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
254 lines
6.8 KiB
254 lines
6.8 KiB
/*
|
|
This file is part of the KDE games library
|
|
Copyright (C) 2001 Andreas Beckermann (b_mann@gmx.de)
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License version 2 as published by the Free Software Foundation.
|
|
|
|
This library is distributed 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
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#include "kchatdialog.h"
|
|
|
|
#include "kchatbase.h"
|
|
|
|
#include <klocale.h>
|
|
#include <kfontdialog.h>
|
|
|
|
#include <tqlayout.h>
|
|
#include <tqlabel.h>
|
|
#include <tqpushbutton.h>
|
|
|
|
class KChatDialogPrivate
|
|
{
|
|
public:
|
|
KChatDialogPrivate()
|
|
{
|
|
mTextPage = 0;
|
|
|
|
mNamePreview = 0;
|
|
mTextPreview = 0;
|
|
mSystemNamePreview = 0;
|
|
mSystemTextPreview = 0;
|
|
|
|
mChat = 0;
|
|
}
|
|
|
|
TQFrame* mTextPage;
|
|
|
|
TQLabel* mNamePreview;
|
|
TQLabel* mTextPreview;
|
|
TQLabel* mSystemNamePreview;
|
|
TQLabel* mSystemTextPreview;
|
|
|
|
TQLineEdit* mMaxMessages;
|
|
|
|
KChatBase* mChat;
|
|
};
|
|
|
|
KChatDialog::KChatDialog(KChatBase* chat, TQWidget* tqparent, bool modal)
|
|
// : KDialogBase(Tabbed, i18n("Configure Chat"), Ok|Default|Apply|Cancel, Ok, tqparent, 0, modal, true)
|
|
: KDialogBase(Plain, i18n("Configure Chat"), Ok|Default|Apply|Cancel, Ok, tqparent, 0, modal, true)
|
|
{
|
|
init();
|
|
plugChatWidget(chat);
|
|
}
|
|
|
|
KChatDialog::KChatDialog(TQWidget* tqparent, bool modal)
|
|
// : KDialogBase(Tabbed, i18n("Configure Chat"), Ok|Default|Apply|Cancel, Ok, tqparent, 0, modal, true)
|
|
: KDialogBase(Plain, i18n("Configure Chat"), Ok|Default|Apply|Cancel, Ok, tqparent, 0, modal, true)
|
|
{
|
|
init();
|
|
}
|
|
|
|
KChatDialog::~KChatDialog()
|
|
{
|
|
delete d;
|
|
}
|
|
|
|
void KChatDialog::init()
|
|
{
|
|
d = new KChatDialogPrivate;
|
|
// d->mTextPage = addPage(i18n("&Messages"));// not a good name - game Messages?
|
|
d->mTextPage = plainPage();
|
|
TQGridLayout* tqlayout = new TQGridLayout(d->mTextPage, 7, 2, KDialog::marginHint(), KDialog::spacingHint());
|
|
|
|
// General fonts
|
|
TQPushButton* nameFont = new TQPushButton(i18n("Name Font..."), d->mTextPage);
|
|
connect(nameFont, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotGetNameFont()));
|
|
tqlayout->addWidget(nameFont, 0, 0);
|
|
TQPushButton* textFont = new TQPushButton(i18n("Text Font..."), d->mTextPage);
|
|
connect(textFont, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotGetTextFont()));
|
|
tqlayout->addWidget(textFont, 0, 1);
|
|
|
|
TQFrame* messagePreview = new TQFrame(d->mTextPage);
|
|
messagePreview->setFrameStyle(TQFrame::StyledPanel | TQFrame::Sunken);
|
|
TQHBoxLayout* messageLayout = new TQHBoxLayout(messagePreview);
|
|
tqlayout->addMultiCellWidget(messagePreview, 1, 1, 0, 1);
|
|
|
|
d->mNamePreview = new TQLabel(i18n("Player: "), messagePreview);
|
|
messageLayout->addWidget(d->mNamePreview, 0);
|
|
d->mTextPreview = new TQLabel(i18n("This is a player message"), messagePreview);
|
|
messageLayout->addWidget(d->mTextPreview, 1);
|
|
|
|
tqlayout->addRowSpacing(2, 10);
|
|
|
|
// System Message fonts
|
|
TQLabel* systemMessages = new TQLabel(i18n("System Messages - Messages directly sent from the game"), d->mTextPage);
|
|
tqlayout->addMultiCellWidget(systemMessages, 3, 3, 0, 1);
|
|
TQPushButton* systemNameFont = new TQPushButton(i18n("Name Font..."), d->mTextPage);
|
|
connect(systemNameFont, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotGetSystemNameFont()));
|
|
tqlayout->addWidget(systemNameFont, 4, 0);
|
|
TQPushButton* systemTextFont = new TQPushButton(i18n("Text Font..."), d->mTextPage);
|
|
connect(systemTextFont, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotGetSystemTextFont()));
|
|
tqlayout->addWidget(systemTextFont, 4, 1);
|
|
|
|
TQFrame* systemMessagePreview = new TQFrame(d->mTextPage);
|
|
systemMessagePreview->setFrameStyle(TQFrame::StyledPanel | TQFrame::Sunken);
|
|
TQHBoxLayout* systemMessageLayout = new TQHBoxLayout(systemMessagePreview);
|
|
tqlayout->addMultiCellWidget(systemMessagePreview, 5, 5, 0, 1);
|
|
|
|
d->mSystemNamePreview = new TQLabel(i18n("--- Game: "), systemMessagePreview);
|
|
systemMessageLayout->addWidget(d->mSystemNamePreview, 0);
|
|
d->mSystemTextPreview = new TQLabel(i18n("This is a system message"), systemMessagePreview);
|
|
systemMessageLayout->addWidget(d->mSystemTextPreview, 1);
|
|
|
|
// message count
|
|
TQLabel* maxMessages = new TQLabel(i18n("Maximal number of messages (-1 = unlimited):"), d->mTextPage);
|
|
tqlayout->addWidget(maxMessages, 6, 0);
|
|
d->mMaxMessages = new TQLineEdit(d->mTextPage);
|
|
d->mMaxMessages->setText(TQString::number(-1));
|
|
tqlayout->addWidget(d->mMaxMessages, 6, 1);
|
|
}
|
|
|
|
void KChatDialog::slotGetNameFont()
|
|
{
|
|
TQFont font = nameFont();
|
|
KFontDialog::getFont(font);
|
|
setNameFont(font);
|
|
}
|
|
|
|
void KChatDialog::slotGetTextFont()
|
|
{
|
|
TQFont font = textFont();
|
|
KFontDialog::getFont(font);
|
|
setTextFont(font);
|
|
}
|
|
|
|
void KChatDialog::slotGetSystemNameFont()
|
|
{
|
|
TQFont font = systemNameFont();
|
|
KFontDialog::getFont(font);
|
|
setSystemNameFont(font);
|
|
}
|
|
|
|
void KChatDialog::slotGetSystemTextFont()
|
|
{
|
|
TQFont font = systemTextFont();
|
|
KFontDialog::getFont(font);
|
|
setSystemTextFont(font);
|
|
}
|
|
|
|
TQFont KChatDialog::nameFont() const
|
|
{
|
|
return d->mNamePreview->font();
|
|
}
|
|
|
|
TQFont KChatDialog::textFont() const
|
|
{
|
|
return d->mTextPreview->font();
|
|
}
|
|
|
|
TQFont KChatDialog::systemNameFont() const
|
|
{
|
|
return d->mSystemNamePreview->font();
|
|
}
|
|
|
|
TQFont KChatDialog::systemTextFont() const
|
|
{
|
|
return d->mSystemTextPreview->font();
|
|
}
|
|
|
|
void KChatDialog::plugChatWidget(KChatBase* widget, bool applyFonts)
|
|
{
|
|
d->mChat = widget;
|
|
if (applyFonts && d->mChat) {
|
|
setNameFont(d->mChat->nameFont());
|
|
setTextFont(d->mChat->messageFont());
|
|
setSystemNameFont(d->mChat->systemNameFont());
|
|
setSystemTextFont(d->mChat->systemMessageFont());
|
|
setMaxMessages(d->mChat->maxItems());
|
|
}
|
|
}
|
|
|
|
void KChatDialog::configureChatWidget(KChatBase* widget)
|
|
{
|
|
if (!widget) {
|
|
return;
|
|
}
|
|
widget->setNameFont(nameFont());
|
|
widget->setMessageFont(textFont());
|
|
|
|
widget->setSystemNameFont(systemNameFont());
|
|
widget->setSystemMessageFont(systemTextFont());
|
|
|
|
widget->setMaxItems(maxMessages());
|
|
}
|
|
|
|
void KChatDialog::slotOk()
|
|
{
|
|
slotApply();
|
|
KDialogBase::slotOk();
|
|
}
|
|
|
|
void KChatDialog::slotApply()
|
|
{
|
|
configureChatWidget(d->mChat);
|
|
}
|
|
|
|
void KChatDialog::setNameFont(TQFont f)
|
|
{
|
|
d->mNamePreview->setFont(f);
|
|
}
|
|
|
|
void KChatDialog::setTextFont(TQFont f)
|
|
{
|
|
d->mTextPreview->setFont(f);
|
|
}
|
|
|
|
void KChatDialog::setSystemNameFont(TQFont f)
|
|
{
|
|
d->mSystemNamePreview->setFont(f);
|
|
}
|
|
|
|
void KChatDialog::setSystemTextFont(TQFont f)
|
|
{
|
|
d->mSystemTextPreview->setFont(f);
|
|
}
|
|
|
|
void KChatDialog::setMaxMessages(int max)
|
|
{
|
|
d->mMaxMessages->setText(TQString::number(max));
|
|
}
|
|
|
|
int KChatDialog::maxMessages() const
|
|
{
|
|
bool ok;
|
|
int max = d->mMaxMessages->text().toInt(&ok);
|
|
if (!ok) {
|
|
return -1; // unlimited is default
|
|
}
|
|
return max;
|
|
}
|
|
|
|
#include "kchatdialog.moc"
|