Salome HOME
Split PyConsole in order to be used easily outside GUI of SALOME.
[modules/gui.git] / src / PyConsole / PyConsole_Console.h
index ce8f36467170f50b9fa0ae653d0906393df40bc8..1aa68a4d68f4c82e6bcfbe81c2b9a89be804a863 100644 (file)
@@ -27,7 +27,7 @@
 #define PYCONSOLE_CONSOLE_H
 
 #include "PyConsole.h"
-
+#include <PyConsole_ConsoleBase.h>
 #include <SUIT_PopupClient.h>
 #include <QWidget>
 #include <QMap>
 class PyConsole_Interp;
 class PyConsole_Editor;
 
-class PYCONSOLE_EXPORT PyConsole_Console : public QWidget, public SUIT_PopupClient
+class PYCONSOLE_EXPORT PyConsole_Console : public PyConsole_ConsoleBase, public SUIT_PopupClient
 {
   Q_OBJECT
-
 public:
-  //! Context popup menu actions flags
-  enum
+
+  struct PyConsole_Interp_Creator : public PyConsole_Interp_CreatorBase
   {
-    CopyId         = 0x01,  //!< "Copy" menu action
-    PasteId        = 0x02,  //!< "Paste" menu action
-    ClearId        = 0x04,  //!< "Clear" menu action
-    SelectAllId    = 0x08,  //!< "Select All" menu action
-    DumpCommandsId = 0x10,  //!< "DumpCommands" menu action
-    StartLogId     = 0x20,  //!< "Start log" menu action
-    StopLogId      = 0x40,  //!< "Stop log" menu action
-    All            = 0xFF,  //!< all menu actions 
+    virtual PyConsole_EditorBase *createEditor( PyConsole_Interp *interp, PyConsole_ConsoleBase *console ) const;
+    virtual PyConsole_Interp *createInterp( ) const;
   };
 
 public:
   PyConsole_Console( QWidget* parent, PyConsole_Interp* interp = 0 );
   virtual ~PyConsole_Console();
-
-  //! \brief Get python interperter
-  PyConsole_Interp*   getInterp() const;
-  QFont               font() const;
-  virtual void        setFont( const QFont& );
-
-  bool                isSync() const;
-  void                setIsSync( const bool );
-
-  bool                isSuppressOutput() const;
-  void                setIsSuppressOutput( const bool );
-
-  bool                isShowBanner() const;
-  void                setIsShowBanner( const bool );
-
-  void                exec( const QString& );
-  void                execAndWait( const QString& );
-
-  virtual bool        eventFilter( QObject*, QEvent* );
-
   //! \brief Get popup client symbolic name
   virtual QString     popupClientType() const { return QString( "PyConsole" ); }
   virtual void        contextMenuPopup( QMenu* );
-
-  void                setMenuActions( const int );
-  int                 menuActions() const;
-
-  void                startLog( const QString& );
-  void                stopLog();
-
+  virtual bool        eventFilter( QObject*, QEvent* );
 protected:
-  void                createActions();
-  void                updateActions();
-
   PyConsole_Console( QWidget* parent, PyConsole_Interp*,  PyConsole_Editor*);
-
-  PyConsole_Editor*   myEditor;    //!< python console editor widget
-  QMap<int, QAction*> myActions;   //!< menu actions list
 };
 
 /**
@@ -101,9 +62,16 @@ protected:
  * Similar to PyConsole_Console except that an enhanced interpreter and enhanced editor
  * are encapsulated.
  */
-class PYCONSOLE_EXPORT PyConsole_EnhConsole: public PyConsole_Console
+class PYCONSOLE_EXPORT PyConsole_EnhConsole : public PyConsole_Console
 {
   Q_OBJECT
+public:
+
+  struct PyConsole_Interp_EnhCreator : public PyConsole_Interp_CreatorBase
+  {
+    virtual PyConsole_EditorBase *createEditor( PyConsole_Interp *interp, PyConsole_ConsoleBase *console ) const;
+    virtual PyConsole_Interp *createInterp( ) const;
+  };
 
 public:
   PyConsole_EnhConsole( QWidget* parent, PyConsole_Interp* interp = 0 );