summaryrefslogtreecommitdiffstats
path: root/src/Mainpage.dox
diff options
context:
space:
mode:
Diffstat (limited to 'src/Mainpage.dox')
-rw-r--r--src/Mainpage.dox118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/Mainpage.dox b/src/Mainpage.dox
new file mode 100644
index 00000000..77210259
--- /dev/null
+++ b/src/Mainpage.dox
@@ -0,0 +1,118 @@
+/**
+@mainpage The KDevelop Generic Shell
+
+This library contains the Shell - a profile-based implementation of KDevelop plugin architecture.
+
+<b>Link with</b>: -lkdevshell
+
+<b>Include path</b>: -I\$(kde_includes)/kdevelop/shell
+
+\section creatingapp Creating an application using generic shell
+KDevelop platform applications can use generic shell as a ready to use implementation
+of KDevelop plugin architecture.
+
+This is done by creating application %main.cpp file and @ref ShellExtension subclass.
+Example:
+- %main.cpp for "myapp" application:
+ @code
+ #include <config.h>
+
+ #include <kaboutdata.h>
+ #include <kapplication.h>
+ #include <kcmdlineargs.h>
+ #include <klocale.h>
+ #include <dcopclient.h>
+
+ #include <splashscreen.h>
+ #include <toplevel.h>
+ #include <plugincontroller.h>
+ #include <partcontroller.h>
+ #include <core.h>
+ #include <projectmanager.h>
+ #include <newmainwindow.h>
+
+ #include "myappextension.h"
+
+ static KCmdLineOptions options[] =
+ {
+ { "profile <profile>", I18N_NOOP("Profile to load"), 0 },
+ { 0,0,0 }
+ };
+
+ int main(int argc, char *argv[])
+ {
+ static const char description[] = I18N_NOOP("My Application");
+ KAboutData aboutData("myapp", I18N_NOOP("My Application"),
+ VERSION, description, KAboutData::License_GPL,
+ I18N_NOOP("(c) 1999-2004, MyApp developers"),
+ "", "http://www.myapp.org");
+ aboutData.addAuthor("Me", I18N_NOOP("Creator"), "[email protected]");
+
+ KCmdLineArgs::init(argc, argv, &aboutData);
+ KCmdLineArgs::addCmdLineOptions( options );
+
+ KApplication app;
+
+ MyAppExtension::init();
+
+ QPixmap pm;
+ pm.load(locate("data", "myapp/pics/myapp-splash.png"));
+ SplashScreen * splash = new SplashScreen( pm );
+ splash->show();
+
+ app.processEvents();
+
+ QObject::connect(PluginController::getInstance(), SIGNAL(loadingPlugin(const QString &)),
+ splash, SLOT(showMessage(const QString &)));
+
+ splash->message( i18n( "Loading Settings" ) );
+ TopLevel::getInstance()->loadSettings();
+
+ PluginController::getInstance()->loadInitialPlugins();
+
+ splash->message( i18n( "Starting GUI" ) );
+ NewMainWindow *mw = dynamic_cast<NewMainWindow*>(TopLevel::getInstance()->main());
+ if (mw)
+ mw->enableShow();
+ TopLevel::getInstance()->main()->show();
+
+ Core::getInstance()->doEmitCoreInitialized();
+
+ delete splash;
+
+ kapp->dcopClient()->registerAs("myapp");
+
+ return app.exec();
+ }
+ @endcode
+
+- Shell extension for "myapp" application:
+ @code
+ class MyAppExtension: public ShellExtension {
+ public:
+ static void init()
+ {
+ s_instance = new MyAppExtension();
+ }
+
+ virtual void createGlobalSettingsPage(KDialogBase */*dlg*/) {};
+ virtual void acceptGlobalSettingsPage(KDialogBase */*dlg*/) {};
+
+ virtual QString xmlFile()
+ {
+ return "myappui.rc";
+ }
+
+ virtual QString defaultProfile()
+ {
+ return "MyApp";
+ }
+
+ protected:
+ KDevAssistantExtension();
+
+ };
+ @endcode
+
+*/
+