diff options
Diffstat (limited to 'lib/interfaces/extras/tdevcompileroptions.h')
| -rw-r--r-- | lib/interfaces/extras/tdevcompileroptions.h | 91 | 
1 files changed, 91 insertions, 0 deletions
| diff --git a/lib/interfaces/extras/tdevcompileroptions.h b/lib/interfaces/extras/tdevcompileroptions.h new file mode 100644 index 00000000..b8509a99 --- /dev/null +++ b/lib/interfaces/extras/tdevcompileroptions.h @@ -0,0 +1,91 @@ +/* This file is part of the KDE project +   Copyright (C) 2001 Matthias Hoelzer-Kluepfel <hoelzer@kde.org> +   Copyright (C) 2002 Roberto Raggi <roberto@kdevelop.org> + +   This library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Library General Public +   License as published by the Free Software Foundation; either +   version 2 of the License, or (at your option) any later version. + +   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. +*/ + +/** +@file tdevcompileroptions.h +The interface to compiler options configuration. +*/ + +#ifndef _TDEVCOMPILEROPTIONS_H_ +#define _TDEVCOMPILEROPTIONS_H_ + +#include <tqobject.h> + +/** +The interface to compiler options configuration. +Used by build systems to give users a compiler options configuration dialog. + +Common use case: +@code +static TDevCompilerOptions *createCompilerOptions( const TQString &name, TQObject *parent ) +{ +    KService::Ptr service = KService::serviceByDesktopName( name ); +    if ( !service ) +        return 0; +     +    KLibFactory *factory = KLibLoader::self()->factory(TQFile::encodeName(service->library())); +    if (!factory) +        return 0; + +    TQStringList args; +    TQVariant prop = service->property("X-TDevelop-Args"); +    if (prop.isValid()) +        args = TQStringList::split(" ", prop.toString()); + +    TQObject *obj = factory->create(parent, service->name().latin1(), +                                   "TDevCompilerOptions", args); + +    if (!obj->inherits("TDevCompilerOptions")) +        return 0; +     +    TDevCompilerOptions *dlg = (TDevCompilerOptions*) obj; +    return dlg; +} + +... +TDevCompilerOptions *plugin = createCompilerOptions(compilerName, parent); +TQString flags = ""; //old compiler flags +if ( plugin ) +{ +    flags = plugin->exec( parent, flags ); //new compiler flags are returned +    delete plugin; +} +@endcode +*/ +class TDevCompilerOptions : public TQObject +{ +    Q_OBJECT +   + +public: +    TDevCompilerOptions( TQObject *parent=0, const char *name=0 ); + +    /** +     * Opens a dialog which allows the user to configure the +     * compiler options. The initial settings in the dialog +     * will be set from the flags argument of this method. +     * After the dialog is accepted, the new settings will +     * be returned as a string. If the dialog was cancelled, +     * TQString() is returned. +     */ +    virtual TQString exec(TQWidget *parent, const TQString &flags) = 0; +}; + +#endif | 
