File indexing completed on 2024-04-28 04:36:30

0001 /*
0002     SPDX-FileCopyrightText: 2009 Andreas Pakulat <apaku@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_ILAUNCHMODE_H
0008 #define KDEVPLATFORM_ILAUNCHMODE_H
0009 
0010 #include "interfacesexport.h"
0011 
0012 class QString;
0013 class QIcon;
0014 
0015 namespace KDevelop
0016 {
0017 
0018 /**
0019  * This class is used to identify in which "mode" a given
0020  * launch configuration should be started. Typical modes are "Debug", 
0021  * "Execute" or "Profile".
0022  * @see ILauncher
0023  */
0024 class KDEVPLATFORMINTERFACES_EXPORT ILaunchMode
0025 {
0026 public:
0027     virtual ~ILaunchMode();
0028 
0029     /**
0030      * Provide an icon for this launch mode for the GUI.
0031      * @returns an icon for menus/toolbars
0032      */
0033     virtual QIcon icon() const = 0;
0034     
0035     /**
0036      * Provide a unique ID for this launch mode.
0037      * This is used for example from ILauncher::supportedModes()
0038      * @returns a unique ID for this launchmode
0039      */
0040     virtual QString id() const = 0;
0041     
0042     /**
0043      * A translated name for this launch mode.
0044      * For example:
0045      * \code
0046      * QString ExecuteMode::name() { return i18n("Execute"); }
0047      * \endcode
0048      * @returns a human readable name
0049      */
0050     virtual QString name() const = 0;
0051 };
0052 
0053 }
0054 
0055 #endif
0056