kdialog.h
00001 /* This file is part of the KDE Libraries 00002 * Copyright (C) 1998 Thomas Tanghus (tanghus@earthling.net) 00003 * Additions 1999-2000 by Espen Sand (espen@kde.org) 00004 * Additions 2011 by Timothy Pearson (kb9vqf@pearsoncomputing.net) 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Library General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Library General Public License 00017 * along with this library; see the file COPYING.LIB. If not, write to 00018 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 * Boston, MA 02110-1301, USA. 00020 */ 00021 00022 #ifndef _KDIALOG_H_ 00023 #define _KDIALOG_H_ 00024 00025 #include <tqdialog.h> 00026 #include <kdelibs_export.h> 00027 00028 class TQLayoutItem; 00029 00052 class KDEUI_EXPORT KDialog : public TQDialog 00053 { 00054 Q_OBJECT 00055 00056 public: 00057 00063 KDialog(TQWidget *parent = 0, const char *name = 0, 00064 bool modal = false, WFlags f = 0); 00065 00070 static int marginHint(); 00071 00076 static int spacingHint(); 00077 00085 static void resizeLayout( TQWidget *widget, int margin, int spacing ); 00086 00094 static void resizeLayout( TQLayoutItem *lay, int margin, int spacing ); 00095 00106 static void centerOnScreen( TQWidget *widget, int screen = -1 ); 00107 00117 static bool avoidArea( TQWidget *widget, const TQRect& area, int screen = -1 ); 00118 00119 public slots: 00124 virtual void polish(); 00125 00133 virtual void setCaption( const TQString &caption ); 00134 00141 virtual void setPlainCaption( const TQString &caption ); 00142 00143 00144 protected: 00148 virtual void keyPressEvent(TQKeyEvent*); 00149 00150 00151 signals: 00159 void layoutHintChanged(); 00160 00161 private: 00162 static const int mMarginSize; 00163 static const int mSpacingSize; 00164 00165 protected: 00166 virtual void virtual_hook( int id, void* data ); 00167 private: 00168 class KDialogPrivate; 00169 KDialogPrivate* const d; 00170 00171 }; 00172 00173 00188 class KDialogQueuePrivate; 00189 class KDEUI_EXPORT KDialogQueue : public TQObject 00190 { 00191 Q_OBJECT 00192 00193 public: 00194 00195 static void queueDialog(TQDialog *); 00196 00197 ~KDialogQueue(); 00198 00199 protected: 00200 KDialogQueue(); 00201 static KDialogQueue *self(); 00202 00203 private slots: 00204 void slotShowQueuedDialog(); 00205 00206 protected: 00207 KDialogQueuePrivate* const d; 00208 static KDialogQueue *_self; 00209 }; 00210 00218 class KDEUI_EXPORT KSMModalDialogHeader : public TQWidget 00219 { 00220 Q_OBJECT 00221 00222 public: 00223 KSMModalDialogHeader( TQWidget* parent ); 00224 ~KSMModalDialogHeader(); 00225 }; 00226 00236 class TQLabel; 00237 class KDEUI_EXPORT KSMModalDialog : public TQWidget 00238 { 00239 Q_OBJECT 00240 00241 public: 00242 KSMModalDialog( TQWidget* parent ); 00243 ~KSMModalDialog(); 00244 00245 void setStatusMessage(TQString message); 00246 void setStartupPhase(TQString msg); 00247 void closeSMDialog(); 00248 00249 protected slots: 00250 void keepMeOnTop(); 00251 void closeEvent(TQCloseEvent *e); 00252 00253 private: 00254 TQTimer* m_keepOnTopTimer; 00255 TQLabel* m_statusLabel; 00256 bool m_allowClose; 00257 }; 00258 00259 #endif // __KDIALOG_H