]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Make XGUI as a shared library
authorvsv <vitaly.smetannikov@opencascade.com>
Tue, 15 Apr 2014 15:00:28 +0000 (19:00 +0400)
committervsv <vitaly.smetannikov@opencascade.com>
Tue, 15 Apr 2014 15:00:28 +0000 (19:00 +0400)
22 files changed:
CMakeLists.txt
src/XGUI/CMakeLists.txt
src/XGUI/XGUI.h [new file with mode: 0644]
src/XGUI/XGUI_Command.h
src/XGUI/XGUI_DataTreeModel.h
src/XGUI/XGUI_DocumentDataModel.h
src/XGUI/XGUI_Main.cpp [deleted file]
src/XGUI/XGUI_MainMenu.h
src/XGUI/XGUI_MainWindow.h
src/XGUI/XGUI_MenuGroupPanel.h
src/XGUI/XGUI_ObjectsBrowser.h
src/XGUI/XGUI_PartDataModel.h
src/XGUI/XGUI_RubberBand.h
src/XGUI/XGUI_SelectionMgr.h
src/XGUI/XGUI_Tools.h
src/XGUI/XGUI_ViewBackground.h
src/XGUI/XGUI_ViewPort.h
src/XGUI/XGUI_ViewWindow.h
src/XGUI/XGUI_Viewer.h
src/XGUI/XGUI_WidgetFactory.h
src/XGUI/XGUI_Workbench.h
src/XGUI/XGUI_Workshop.h

index eeaee08cf380263b3d74689200c95c5a782147ca..ed7aa098c1c3f40289243b3189ca7be39e688626 100644 (file)
@@ -29,3 +29,4 @@ ADD_SUBDIRECTORY (src/PyConsole)
 ADD_SUBDIRECTORY (src/PyEvent)
 ADD_SUBDIRECTORY (src/PyInterp)
 ADD_SUBDIRECTORY (src/XGUI)
+ADD_SUBDIRECTORY (src/GeomApp)
index bd4e643dd0093a3e97492bb0e5813713241a3b14..c77c1ce446ab01c4c52f5297b721976efce7d0a2 100644 (file)
@@ -3,6 +3,7 @@ INCLUDE(FindCAS)
 SET(CMAKE_AUTOMOC ON)
 
 SET(PROJECT_HEADERS
+       XGUI.h
        XGUI_Command.h
        XGUI_MainMenu.h
        XGUI_MainWindow.h
@@ -30,7 +31,6 @@ SET(PROJECT_AUTOMOC
 
 SET(PROJECT_SOURCES
        XGUI_Command.cpp
-       XGUI_Main.cpp
        XGUI_MainMenu.cpp
        XGUI_MainWindow.cpp
        XGUI_MenuGroupPanel.cpp
@@ -61,7 +61,6 @@ SET(PROJECT_LIBRARIES
     Event
     Config
        ${QT_LIBRARIES}
-       ${QT_QTMAIN_LIBRARY}
        ${CAS_VIEWER}
        ${CAS_KERNEL}
        PyConsole
@@ -84,7 +83,7 @@ QT4_ADD_RESOURCES(PROJECT_COMPILED_RESOURCES ${PROJECT_RESOURCES})
 SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES})
 SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES})
 
-ADD_DEFINITIONS(${CAS_DEFINITIONS} )
+ADD_DEFINITIONS( -DXGUI_EXPORTS ${CAS_DEFINITIONS} )
 
 INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/src/Event
                                         ${PROJECT_SOURCE_DIR}/src/Config
@@ -97,7 +96,7 @@ INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/src/Event
 
 LINK_DIRECTORIES($ENV{PYTHON_LIB_DIR})
 
-ADD_EXECUTABLE(XGUI WIN32 
+ADD_LIBRARY(XGUI SHARED 
        ${PROJECT_SOURCES} 
        ${PROJECT_HEADERS} 
        ${PROJECT_COMPILED_RESOURCES} 
diff --git a/src/XGUI/XGUI.h b/src/XGUI/XGUI.h
new file mode 100644 (file)
index 0000000..713348a
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef XGUI_H
+#define XGUI_H
+
+#if defined XGUI_EXPORTS
+#if defined WIN32
+#define XGUI_EXPORT              __declspec( dllexport )
+#else
+#define XGUI_EXPORT
+#endif
+#else
+#if defined WIN32
+#define XGUI_EXPORT              __declspec( dllimport )
+#else
+#define XGUI_EXPORT
+#endif
+#endif
+
+#endif
index b1227ba2e88335a0636ee9c3416141477ddf516d..34c5f63f6dee6b8c0d55ac06211d1a1fc50804d3 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_Command_H
 #define XGUI_Command_H
 
+#include "XGUI.h"
 #include <QWidgetAction>
 
 #define MIN_BUTTON_HEIGHT 18
@@ -10,7 +11,7 @@
  * \ingroup GUI
  * \brief Represents a command item in the application menu (Workbench)
  */
-class XGUI_Command: public QWidgetAction
+class XGUI_EXPORT XGUI_Command: public QWidgetAction
 {
 Q_OBJECT
 public:
index 359fbdabdeac434cef82644fa682ff003daa2c80..c602d02c10a26db4bce4dec559d4f4f49f480a95 100644 (file)
@@ -1,18 +1,18 @@
 
-
 #ifndef XGUI_DataTreeModel_H
 #define XGUI_DataTreeModel_H
 
+#include "XGUI.h"
+#include "XGUI_Constants.h"
+
 #include <ModelAPI_Document.h>
 #include <QAbstractItemModel>
 
-#include "XGUI_Constants.h"
-
 /**\class XGUI_FeaturesModel
  * \ingroup GUI
  * \brief Abstaract class of model object which operates with features data.
  */
-class XGUI_FeaturesModel : public QAbstractItemModel
+class XGUI_EXPORT XGUI_FeaturesModel : public QAbstractItemModel
 {
 public:
   XGUI_FeaturesModel(const std::shared_ptr<ModelAPI_Document>& theDocument, QObject* theParent):
index 0f19a6d31117db409d21b69189633ba4de322d98..ba7558e0ede450c7800faec333cfb91897d9e17c 100644 (file)
@@ -2,6 +2,7 @@
 #ifndef XGUI_DocumentDataModel_H
 #define XGUI_DocumentDataModel_H
 
+#include "XGUI.h"
 #include "XGUI_Constants.h"
 
 #include <QAbstractItemModel>
@@ -18,7 +19,7 @@ class XGUI_TopDataModel;
  * \brief This is a proxy data model for Object Browser (QTreeView).
  * It contains several sub-models for generation of each sub-part of data tree.
  */
-class XGUI_DocumentDataModel : public QAbstractItemModel, public Event_Listener
+class XGUI_EXPORT XGUI_DocumentDataModel : public QAbstractItemModel, public Event_Listener
 {
   Q_OBJECT
 public:
diff --git a/src/XGUI/XGUI_Main.cpp b/src/XGUI/XGUI_Main.cpp
deleted file mode 100644 (file)
index 35210da..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#include "XGUI_Workshop.h"
-#include <QApplication>
-#include <QTranslator>
-#include <QDebug>
-
-#ifndef WIN32
-
-#include <X11/Xlib.h>
-#include <GL/glx.h>
-
-/*!
-  \brief Open the default X display and returns pointer to it.
-         This method is available on Linux only.
-  \return Pointer to X display.
-  \sa getVisual()
-*/
-Display* getDisplay()
-{
-  static Display* pDisplay = NULL;
-  if ( !pDisplay )
-    pDisplay = XOpenDisplay( NULL );
-  return pDisplay;
-}
-
-/*!
-  \brief Returns pointer to X visual suitable for 3D rendering.
-         This method is available on Linux only.
-  \return Pointer to X visual.
-  \sa getDisplay()
-*/
-Qt::HANDLE getVisual()
-{
-  Qt::HANDLE res = (Qt::HANDLE)NULL;
-
-  Display* pDisplay = (Display*)getDisplay();
-  if ( !pDisplay )
-    return res;
-
-  int errorBase;
-  int eventBase;
-
-  // Make sure OpenGL's GLX extension supported
-  if( !glXQueryExtension( pDisplay, &errorBase, &eventBase ) ){
-    qCritical( "Could not find glx extension" );
-    return res;
-  }
-
-  // Find an appropriate visual
-
-  int doubleBufferVisual[]  = {
-    GLX_RGBA,           // Needs to support OpenGL
-    GLX_DEPTH_SIZE, 16, // Needs to support a 16 bit depth buffer
-    GLX_DOUBLEBUFFER,   // Needs to support double-buffering
-    None                // end of list
-  };
-
-  // Try for the double-bufferd visual first
-  XVisualInfo *visualInfo = NULL;
-  visualInfo = glXChooseVisual( pDisplay, DefaultScreen(pDisplay), doubleBufferVisual );
-
-  if( visualInfo == NULL ){
-    qCritical( "Could not find matching glx visual" );
-    return res;
-  }
-
-
-  qDebug() << "Picked visual 0x" << hex << XVisualIDFromVisual( visualInfo->visual );
-  res = (Qt::HANDLE)( visualInfo->visual );
-  return res;
-}
-#endif // WIN32
-
-
-
-int main(int argc, char *argv[])
-{
-#ifndef WIN32
-  QApplication app(getDisplay(), argc, argv, getVisual());
-#else
-  QApplication app(argc, argv);
-#endif
-
-  // Install translator
-  QTranslator aTranslator;
-  aTranslator.load(app.applicationDirPath() + "\\XGUI_msg_en.qm");
-  app.installTranslator(&aTranslator);
-
-  XGUI_Workshop aWorkshop;
-  aWorkshop.startApplication();
-
-  return app.exec();
-}
index b683fc99edbafab754a041947c2bcf25472a15b2..c281422a6ba8f1c9bf51c646ef2a5391cca553e6 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_MainMenu_H
 #define XGUI_MainMenu_H
 
+#include "XGUI.h"
 #include <QObject>
 #include <QList>
 
@@ -19,7 +20,7 @@ class QEvent;
  * \ingroup GUI
  * \brief Class for creation of main menu (set of workbenches)
  */
-class XGUI_MainMenu: public QObject
+class XGUI_EXPORT XGUI_MainMenu: public QObject
 {
 Q_OBJECT
 public:
index 4f99979c998549fbc9e5f10abf037217bd08cc3c..186b3b87d6f60728651eea3f382dee0dd281b1ab 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_MAINWINDOW_H
 #define XGUI_MAINWINDOW_H
 
+#include "XGUI.h"
 #include <QMainWindow>
 
 class XGUI_MainMenu;
@@ -14,7 +15,7 @@ class PyConsole_EnhConsole;
  * \brief Main window of the application (Desktop).
  * It contains: Object Browser, 3d Viewer, Python console, property panel, main menu
  */
-class XGUI_MainWindow: public QMainWindow
+class XGUI_EXPORT XGUI_MainWindow: public QMainWindow
 {
 Q_OBJECT
 
index fa3152ec075867fea4cf6ea51245fad28e65dca2..a1398132698b7bdcd5e4ad19055f80bf709181de 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_MenuGroupPanel_H
 #define XGUI_MenuGroupPanel_H
 
+#include "XGUI.h"
 #include <QWidget>
 #include <QMap>
 
@@ -11,7 +12,7 @@ class QGridLayout;
  * \ingroup GUI
  * \brief Represents a one group in a page of main menu (workbench)
  */
-class XGUI_MenuGroupPanel: public QWidget
+class XGUI_EXPORT XGUI_MenuGroupPanel: public QWidget
 {
 Q_OBJECT
 public:
index 0d1043c0f3f3734b3cee40abb3165529f24fdf61..1b7e710c70ad31f4d24c908ed3bbee774d5b06e0 100644 (file)
@@ -2,6 +2,7 @@
 #ifndef XGUI_ObjectsBrowser_H
 #define XGUI_ObjectsBrowser_H
 
+#include "XGUI.h"
 #include "XGUI_Constants.h"
 
 #include <QTreeView>
@@ -12,7 +13,7 @@ class XGUI_DocumentDataModel;
  * \ingroup GUI
  * \brief Object browser window object. Represents data tree of current data structure
  */
- class XGUI_ObjectsBrowser : public QTreeView
+ class XGUI_EXPORT XGUI_ObjectsBrowser : public QTreeView
 {
   Q_OBJECT
 public:
index 7910724aa0680926a1e5b6a429ba1e6e31f37f79..15c863519bb69f76eed5b8bf05ad4c7277ca3df0 100644 (file)
@@ -2,6 +2,7 @@
 #ifndef XGUI_PartDataModel_H
 #define XGUI_PartDataModel_H
 
+#include "XGUI.h"
 #include "XGUI_DataTreeModel.h"
 
 /**\class XGUI_TopDataModel
@@ -9,7 +10,7 @@
  * \brief This is a data model for Object Browser (QTreeView).
  * It represents only upper part of data tree (non-parts tree items)
  */
-class XGUI_TopDataModel : public XGUI_FeaturesModel
+class XGUI_EXPORT XGUI_TopDataModel : public XGUI_FeaturesModel
 {
   Q_OBJECT
 public:
index 76b3a6bc9708cc8022f49008e4f1553375154356..3f6199af9e222f8f9725b1451847227c6a0577a0 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_RubberBand_H
 #define XGUI_RubberBand_H
 
+#include "XGUI.h"
 #include <QWidget>
 
 /*!
@@ -10,7 +11,7 @@
   
   Currently this class does not support Style functionality in full.
 */
-class XGUI_AbstractRubberBand: public QWidget
+class XGUI_EXPORT XGUI_AbstractRubberBand: public QWidget
 {
 Q_OBJECT
 protected:
index 61fb70aff19e7df51150ba01479cc4b50e879004..91b4c255fea2d71ddbf482ace5053820048359cf 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_SelectionMgr_H
 #define XGUI_SelectionMgr_H
 
+#include "XGUI.h"
 #include "XGUI_Constants.h"
 #include <QObject>
 
@@ -12,7 +13,7 @@ class XGUI_ObjectsBrowser;
  * \brief Selection manager. Provides selection event on selection in 
  * Object Browser and Viewer
  */
-class XGUI_SelectionMgr : public QObject
+class XGUI_EXPORT XGUI_SelectionMgr : public QObject
 {
   Q_OBJECT
 public:
index e60684c753eb711e2515c46313776f0c88cd4658..e8e3495e8225d186d5fb8dc96cffb71f085af781 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_Tools_H
 #define XGUI_Tools_H
 
+#include "XGUI.h"
 #include <QString>
 #include <QRect>
 
@@ -15,7 +16,7 @@
  \param str short library name
  \return full library name
  */
-QString library(const QString& str);
+QString XGUI_EXPORT library(const QString& str);
 
 /*!
  \brief Return directory part of the file path.
@@ -27,7 +28,7 @@ QString library(const QString& str);
  \param abs if true (default) \a path parameter is treated as absolute file path
  \return directory part of the file path
  */
-QString dir(const QString& path, bool isAbs = true);
+QString XGUI_EXPORT dir(const QString& path, bool isAbs = true);
 
 /*!
  \brief Return file name part of the file path.
@@ -38,7 +39,7 @@ QString dir(const QString& path, bool isAbs = true);
  is returned
  \return file name part of the file path
  */
-QString file(const QString& path, bool withExt = true);
+QString XGUI_EXPORT file(const QString& path, bool withExt = true);
 
 /*!
  \brief Return extension part of the file path.
@@ -48,7 +49,7 @@ QString file(const QString& path, bool withExt = true);
  is returned, otherwise (default) only last extension is returned
  \return extension part of the file path 
  */
-QString extension(const QString& path, bool full = false);
+QString XGUI_EXPORT extension(const QString& path, bool full = false);
 
 /*!
  \brief Add a slash (platform-specific) to the end of \a path
@@ -56,12 +57,12 @@ QString extension(const QString& path, bool full = false);
  \param path directory path
  \return modified path (with slash added to the end)
  */
-QString addSlash(const QString& path);
+QString XGUI_EXPORT addSlash(const QString& path);
 
 /*! 
  Creates a rect with TopLeft = ( min(x1,x2), min(y1,y2) )
  and BottomRight = ( TopLeft + (x2-x1)(y2-y1) )    
  */
-QRect makeRect(const int x1, const int y1, const int x2, const int y2);
+QRect XGUI_EXPORT makeRect(const int x1, const int y1, const int x2, const int y2);
 
 #endif
index 749f21b3857b40658f005952b41fe841b69e6c8b..789c3543ee5322f4744303986af983462bfde957 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_ViewBackground_H
 #define XGUI_ViewBackground_H
 
+#include "XGUI.h"
 #include "XGUI_Constants.h"
 
 #include <QColor>
@@ -44,7 +45,7 @@ typedef QList<QColor> QColorList;     //!< list of colors
  bg.setTextureShown( true );                            // draw texture on the solid color background
  \endcode
  */
-class XGUI_ViewBackground
+class XGUI_EXPORT XGUI_ViewBackground
 {
 public:
   XGUI_ViewBackground();
index 5d73031a1605825dceac5624a8f84ba057fd6f1a..0f62915b62782e1e0e6a289b5c02509fe3feab42 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_ViewPort_H
 #define XGUI_ViewPort_H
 
+#include "XGUI.h"
 #include "XGUI_ViewBackground.h"
 
 #include <QWidget>
@@ -10,7 +11,7 @@
 
 class XGUI_ViewWindow;
 
-class XGUI_ViewPort: public QWidget
+class XGUI_EXPORT XGUI_ViewPort: public QWidget
 {
 Q_OBJECT
 public:
index 14e5ccf52a6f16deb78e86881f5dc5f38e456aab..01fd18ddfb736bad43da235917fcc0bcad3c6f63 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_ViewWindow_H
 #define XGUI_ViewWindow_H
 
+#include "XGUI.h"
 #include "XGUI_Constants.h"
 #include "XGUI_ViewBackground.h"
 
@@ -27,7 +28,7 @@ class QMdiSubWindow;
   It contains a view port object (drawing area) and toolbars for view camera and window management.
   Also it managements events in view port
 */
-class XGUI_ViewWindow: public QFrame
+class XGUI_EXPORT XGUI_ViewWindow: public QFrame
 {
 Q_OBJECT
 public:
index 4b29bb1f12f4b0f12859a293dceab8e5c46b7b67..fc0476cbba2d4e2882c647c3249eea415ac4f586 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_Viewer_H
 #define XGUI_Viewer_H
 
+#include "XGUI.h"
 #include "XGUI_Constants.h"
 
 #include <QObject>
@@ -22,7 +23,7 @@ class QKeyEvent;
  * \brief Represents a 3d viewer. The viewer manages 3d scene and a set of view windows
  * when each of view window is a one point of view on this scene.
  */
-class XGUI_Viewer: public QObject
+class XGUI_EXPORT XGUI_Viewer: public QObject
 {
 Q_OBJECT
 public:
index 474559f4825d5181abe9ddbc374c6ab1e2ddaaa3..99ab978b379d1b9bb8a81e5793cf16bf04415710 100644 (file)
@@ -8,13 +8,14 @@
 #ifndef XGUI_WIDGETFACTORY_H_
 #define XGUI_WIDGETFACTORY_H_
 
+#include "XGUI.h"
 #include <QString>
 
 class QWidget;
 class Config_WidgetAPI;
 class ModuleBase_Operation;
 
-class XGUI_WidgetFactory
+class XGUI_EXPORT XGUI_WidgetFactory
 {
 public:
   XGUI_WidgetFactory(ModuleBase_Operation*);
index d751a06973034edaf0ee2bd5e60a28c2fb541ca7..144a23a2d2fe8ffa84965b6b1facfe2f8346e150 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef XGUI_Workbench_H
 #define XGUI_Workbench_H
 
+#include "XGUI.h"
 #include <QWidget>
 #include <QScrollArea>
 #include <QList>
@@ -12,7 +13,7 @@ class CommandsArea;
 class QHBoxLayout;
 class QPushButton;
 
-class XGUI_Workbench: public QWidget
+class XGUI_EXPORT XGUI_Workbench: public QWidget
 {
 Q_OBJECT
 public:
index 31d87bbbc4d0a522b3d5a4520deb4c8898b78f09..371fbb366f4b57de084f327bebfa4f89aff09ce2 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef XGUI_WORKSHOP_H
 #define XGUI_WORKSHOP_H
 
-#include <Event_Message.h>
+#include "XGUI.h"
 #include <Event_Listener.h>
 
 #include <QObject>
@@ -23,7 +23,7 @@ class Config_PointerMessage;
  * \ingroup GUI
  * \brief Class which defines a configuration of the application (Workshop) and launches it.
  */
-class XGUI_Workshop: public QObject, public Event_Listener
+class XGUI_EXPORT XGUI_Workshop: public QObject, public Event_Listener
 {
 Q_OBJECT
 public: