summaryrefslogtreecommitdiffstats
path: root/konsole/konsole/konsole_part.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /konsole/konsole/konsole_part.h
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'konsole/konsole/konsole_part.h')
-rw-r--r--konsole/konsole/konsole_part.h241
1 files changed, 241 insertions, 0 deletions
diff --git a/konsole/konsole/konsole_part.h b/konsole/konsole/konsole_part.h
new file mode 100644
index 000000000..6f410d3c3
--- /dev/null
+++ b/konsole/konsole/konsole_part.h
@@ -0,0 +1,241 @@
+/* -*- C++ -*-
+ This file is part of the KDE system
+ Copyright (C) 1999,2000 Boloni Laszlo <lboloni@cpe.ucf.edu>
+
+ This program 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 program 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.
+ */
+
+#ifndef KONSOLE_PART_H
+#define KONSOLE_PART_H
+
+#include <kparts/browserextension.h>
+#include <kparts/factory.h>
+
+
+#include <kdialogbase.h>
+
+#include <kde_terminal_interface.h>
+
+#include "schema.h"
+#include "session.h"
+
+class KInstance;
+class konsoleBrowserExtension;
+class QPushButton;
+class QSpinBox;
+class KPopupMenu;
+class KActionMenu;
+class QCheckBox;
+class KRootPixmap;
+class KToggleAction;
+class KSelectAction;
+
+namespace KParts { class GUIActivateEvent; }
+
+class konsoleFactory : public KParts::Factory
+{
+ Q_OBJECT
+public:
+ konsoleFactory();
+ virtual ~konsoleFactory();
+
+ virtual KParts::Part* createPartObject(QWidget *parentWidget = 0, const char *widgetName = 0,
+ QObject* parent = 0, const char* name = 0,
+ const char* classname = "KParts::Part",
+ const QStringList &args = QStringList());
+
+ static KInstance *instance();
+
+ private:
+ static KInstance *s_instance;
+ static KAboutData *s_aboutData;
+};
+
+//////////////////////////////////////////////////////////////////////
+
+class konsolePart: public KParts::ReadOnlyPart, public TerminalInterface, public ExtTerminalInterface
+{
+ Q_OBJECT
+ public:
+ konsolePart(QWidget *parentWidget, const char *widgetName, QObject * parent, const char *name, const char *classname = 0);
+ virtual ~konsolePart();
+
+signals:
+ void processExited( KProcess * );
+ void receivedData( const QString& s );
+ void forkedChild();
+ protected:
+ virtual bool openURL( const KURL & url );
+ virtual bool openFile() {return false;} // never used
+ virtual bool closeURL() {return true;}
+ virtual void guiActivateEvent( KParts::GUIActivateEvent * event );
+
+ protected slots:
+ void showShell();
+
+ void doneSession(TESession*);
+ void sessionDestroyed();
+ void configureRequest(TEWidget*,int,int x,int y);
+ void updateTitle(TESession*);
+ void enableMasterModeConnections();
+
+ private slots:
+ void emitOpenURLRequest(const QString &url);
+
+ void readProperties();
+ void saveProperties();
+ void applyProperties();
+ void setSettingsMenuEnabled( bool );
+
+ void sendSignal(int n);
+ void closeCurrentSession();
+
+ void notifySize(int /*columns*/, int /*lines*/);
+
+ void slotToggleFrame();
+ void slotSelectScrollbar();
+ void slotSelectFont();
+ void schema_menu_check();
+ void keytab_menu_activated(int item);
+ void updateSchemaMenu();
+ void setSchema(int n);
+ void pixmap_menu_activated(int item);
+ void schema_menu_activated(int item);
+ void slotHistoryType();
+ void slotSelectBell();
+ void slotSelectLineSpacing();
+ void slotBlinkingCursor();
+ void slotUseKonsoleSettings();
+ void slotWordSeps();
+ void slotSetEncoding();
+ void biggerFont();
+ void smallerFont();
+
+ void autoShowShell();
+
+ private:
+ konsoleBrowserExtension *m_extension;
+ KURL currentURL;
+
+ void makeGUI();
+ void applySettingsToGUI();
+
+ void setSchema(ColorSchema* s);
+ void updateKeytabMenu();
+
+ bool doOpenStream( const QString& );
+ bool doWriteStream( const QByteArray& );
+ bool doCloseStream();
+
+ QWidget* parentWidget;
+ TEWidget* te;
+ TESession* se;
+ ColorSchemaList* colors;
+ KRootPixmap* rootxpm;
+
+ KActionCollection* actions;
+ KActionCollection* settingsActions;
+
+ KToggleAction* blinkingCursor;
+ KToggleAction* showFrame;
+ KToggleAction* m_useKonsoleSettings;
+
+ KSelectAction* selectBell;
+ KSelectAction* selectLineSpacing;
+ KSelectAction* selectScrollbar;
+ KSelectAction* selectSetEncoding;
+
+ KActionMenu* m_fontsizes;
+
+ KPopupMenu* m_keytab;
+ KPopupMenu* m_schema;
+ KPopupMenu* m_signals;
+ KPopupMenu* m_options;
+ KPopupMenu* m_popupMenu;
+
+ QFont defaultFont;
+
+ QString pmPath; // pixmap path
+ QString s_schema;
+ QString s_kconfigSchema;
+ QString s_word_seps; // characters that are considered part of a word
+
+ bool b_framevis:1;
+ bool b_histEnabled:1;
+ bool b_useKonsoleSettings:1;
+ bool b_autoDestroy:1;
+ bool b_autoStartShell:1;
+
+ int curr_schema; // current schema no
+ int n_bell;
+ int n_keytab;
+ int n_render;
+ int n_scroll;
+ unsigned m_histSize;
+ bool m_runningShell;
+ bool m_streamEnabled;
+ int n_encoding;
+
+public:
+ // these are the implementations for the TermEmuInterface
+ // functions...
+ void startProgram( const QString& program,
+ const QStrList& args );
+ void newSession();
+ void showShellInDir( const QString& dir );
+ void sendInput( const QString& text );
+ void setAutoDestroy( bool );
+ void setAutoStartShell( bool );
+};
+
+//////////////////////////////////////////////////////////////////////
+
+class HistoryTypeDialog : public KDialogBase
+{
+ Q_OBJECT
+public:
+ HistoryTypeDialog(const HistoryType& histType,
+ unsigned int histSize,
+ QWidget *parent);
+
+public slots:
+ void slotDefault();
+ void slotSetUnlimited();
+ void slotHistEnable(bool);
+
+ unsigned int nbLines() const;
+ bool isOn() const;
+
+protected:
+ QCheckBox* m_btnEnable;
+ QSpinBox* m_size;
+ QPushButton* m_setUnlimited;
+};
+
+//////////////////////////////////////////////////////////////////////
+
+class konsoleBrowserExtension : public KParts::BrowserExtension
+{
+ Q_OBJECT
+ friend class konsolePart;
+ public:
+ konsoleBrowserExtension(konsolePart *parent);
+ virtual ~konsoleBrowserExtension();
+
+ void emitOpenURLRequest(const KURL &url);
+};
+
+#endif