// // Copyright (C) 1998 Matthias Hoelzer // Copyright (C) 2002 David Faure // // This program 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 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the7 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 this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // #include #include #include "widgets.h" #include "tdelistboxdialog.h" #include "progressdialog.h" #include #include #include #include #include #include #include #include #include #if defined Q_WS_X11 && ! defined K_WS_QTONLY #include #endif void Widgets::handleXGeometry(TQWidget * dlg) { #ifdef Q_WS_X11 if ( ! kapp->geometryArgument().isEmpty()) { int x, y; int w, h; int m = XParseGeometry( kapp->geometryArgument().latin1(), &x, &y, (unsigned int*)&w, (unsigned int*)&h); if ( (m & XNegative) ) x = TDEApplication::desktop()->width() + x - w; if ( (m & YNegative) ) y = TDEApplication::desktop()->height() + y - h; dlg->setGeometry(x, y, w, h); // kdDebug() << "x: " << x << " y: " << y << " w: " << w << " h: " << h << endl; } #endif } bool Widgets::inputBox(TQWidget *parent, const TQString& title, const TQString& text, const TQString& init, TQString &result) { bool ok; TQString str = KInputDialog::text( title, text, init, &ok, parent, 0, 0, TQString::null ); if ( ok ) result = str; return ok; } bool Widgets::passwordBox(TQWidget *parent, const TQString& title, const TQString& text, TQString &result) { KPasswordDialog dlg( KPasswordDialog::Password, false, 0, parent ); kapp->setTopWidget( &dlg ); dlg.setCaption(title); dlg.setPrompt(text); handleXGeometry(&dlg); bool retcode = (dlg.exec() == TQDialog::Accepted); if ( retcode ) result = dlg.password(); return retcode; } int Widgets::textBox(TQWidget *parent, int width, int height, const TQString& title, const TQString& file) { // KTextBox dlg(parent, 0, TRUE, width, height, file); KDialogBase dlg( parent, 0, true, title, KDialogBase::Ok, KDialogBase::Ok ); kapp->setTopWidget( &dlg ); KTextEdit *edit = new KTextEdit( dlg.makeVBoxMainWidget() ); edit->setReadOnly(TRUE); TQFile f(file); if (!f.open(IO_ReadOnly)) { kdError() << i18n("kdialog: could not open file ") << file << endl; return -1; } TQTextStream s(&f); while (!s.eof()) edit->append(s.readLine()); edit->moveCursor(TQTextEdit::MoveHome, false); f.close(); if ( width > 0 && height > 0 ) dlg.setInitialSize( TQSize( width, height ) ); handleXGeometry(&dlg); dlg.setCaption(title); dlg.exec(); return 0; } int Widgets::textInputBox(TQWidget *parent, int width, int height, const TQString& title, const TQStringList& args, TQCString &result) { // KTextBox dlg(parent, 0, TRUE, width, height, file); KDialogBase dlg( parent, 0, true, title, KDialogBase::Ok, KDialogBase::Ok ); kapp->setTopWidget( &dlg ); TQVBox* vbox = dlg.makeVBoxMainWidget(); if( args.count() > 0 ) { TQLabel *label = new TQLabel(vbox); label->setText(args[0]); } KTextEdit *edit = new KTextEdit( vbox ); edit->setReadOnly(FALSE); edit->setTextFormat( TQt::PlainText ); edit->setFocus(); if( args.count() > 1 ) edit->setText( args[1] ); if ( width > 0 && height > 0 ) dlg.setInitialSize( TQSize( width, height ) ); handleXGeometry(&dlg); dlg.setCaption(title); dlg.exec(); result = edit->text().local8Bit(); return 0; } bool Widgets::comboBox(TQWidget *parent, const TQString& title, const TQString& text, const TQStringList& args, const TQString& defaultEntry, TQString &result) { KDialogBase dlg( parent, 0, true, title, KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok ); kapp->setTopWidget( &dlg ); dlg.setCaption(title); TQVBox* vbox = dlg.makeVBoxMainWidget(); TQLabel label (vbox); label.setText (text); KComboBox combo (vbox); combo.insertStringList (args); combo.setCurrentItem( defaultEntry, false ); handleXGeometry(&dlg); bool retcode = (dlg.exec() == TQDialog::Accepted); if (retcode) result = combo.currentText(); return retcode; } bool Widgets::listBox(TQWidget *parent, const TQString& title, const TQString& text, const TQStringList& args, const TQString& defaultEntry, TQString &result) { TDEListBoxDialog box(text,parent); kapp->setTopWidget( &box ); box.setCaption(title); for (unsigned int i = 0; i+1setTopWidget( &box ); box.setCaption(title); for (unsigned int i=0; i+2setTopWidget( &box ); box.setCaption(title); for (unsigned int i=0; i+2setTopWidget( &dlg ); dlg.setCaption( title ); handleXGeometry(&dlg); dlg.exec(); return dlg.wasCancelled(); }