From 131810238c451ca45f00ed844144c2b46272df2b Mon Sep 17 00:00:00 2001 From: san Date: Tue, 11 Nov 2008 14:33:04 +0000 Subject: [PATCH] Imported sources --- AUTHORS | 0 COPYING | 504 ++++++++++++++++++ ChangeLog | 0 INSTALL | 1 + Makefile.am | 42 ++ NEWS | 0 PARAVIS_version.h.in | 34 ++ README | 0 adm_local/Makefile.am | 22 + adm_local/unix/Makefile.am | 22 + adm_local/unix/config_files/Makefile.am | 23 + adm_local/unix/config_files/check_ParaView.m4 | 172 ++++++ adm_local/unix/make_common_starter.am | 69 +++ bin/Makefile.am | 30 ++ bin/VERSION.in | 1 + build_configure | 102 ++++ clean_configure | 15 + configure.ac | 316 +++++++++++ resources/LightApp.xml | 11 + resources/Makefile.am | 31 ++ resources/PARAVIS.png | Bin 0 -> 2579 bytes resources/SalomeApp.xml | 11 + src/Makefile.am | 28 + src/PVGUI/Makefile.am | 61 +++ src/PVGUI/PVGUI_Module.cxx | 350 ++++++++++++ src/PVGUI/PVGUI_Module.h | 86 +++ src/PVGUI/PVGUI_ProcessModuleHelper.cxx | 104 ++++ src/PVGUI/PVGUI_ProcessModuleHelper.h | 86 +++ src/PVGUI/resources/PARAVIS_images.ts | 17 + src/PVGUI/resources/PARAVIS_msg_en.ts | 188 +++++++ 30 files changed, 2326 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 PARAVIS_version.h.in create mode 100644 README create mode 100644 adm_local/Makefile.am create mode 100644 adm_local/unix/Makefile.am create mode 100644 adm_local/unix/config_files/Makefile.am create mode 100644 adm_local/unix/config_files/check_ParaView.m4 create mode 100644 adm_local/unix/make_common_starter.am create mode 100644 bin/Makefile.am create mode 100755 bin/VERSION.in create mode 100755 build_configure create mode 100755 clean_configure create mode 100644 configure.ac create mode 100644 resources/LightApp.xml create mode 100644 resources/Makefile.am create mode 100755 resources/PARAVIS.png create mode 100644 resources/SalomeApp.xml create mode 100755 src/Makefile.am create mode 100644 src/PVGUI/Makefile.am create mode 100644 src/PVGUI/PVGUI_Module.cxx create mode 100644 src/PVGUI/PVGUI_Module.h create mode 100644 src/PVGUI/PVGUI_ProcessModuleHelper.cxx create mode 100644 src/PVGUI/PVGUI_ProcessModuleHelper.h create mode 100644 src/PVGUI/resources/PARAVIS_images.ts create mode 100644 src/PVGUI/resources/PARAVIS_msg_en.ts diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..e69de29b diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..b1e3f5a2 --- /dev/null +++ b/COPYING @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..e69de29b diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..c828a2be --- /dev/null +++ b/INSTALL @@ -0,0 +1 @@ +PARAVIS module diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..67889909 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,42 @@ +# Copyright (C) 2005 CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# -* Makefile *- +# +# Author : +# Modified by : Alexander BORODIN (OCN) - autotools usage +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files + +SUBDIRS = adm_local resources src bin + +DISTCLEANFILES = a.out aclocal.m4 configure + +salomeinclude_DATA = PARAVIS_version.h + +EXTRA_DIST += \ + build_configure \ + clean_configure + +dist-hook: + rm -rf `find $(distdir) -name CVS` diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..e69de29b diff --git a/PARAVIS_version.h.in b/PARAVIS_version.h.in new file mode 100644 index 00000000..79c8971b --- /dev/null +++ b/PARAVIS_version.h.in @@ -0,0 +1,34 @@ +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ +// +// File : PARAVIS_version.h +// Author : Sergey ANIKIN +// Module : PARAVIS + +#if !defined(__PARAVIS_VERSION_H__) +#define __PARAVIS_VERSION_H__ + +/* + PARAVIS_VERSION is (major << 16) + (minor << 8) + patch. +*/ + +#define PARAVIS_VERSION_STR "@VERSION@" +#define PARAVIS_VERSION @XVERSION@ + +#endif // __PARAVIS_VERSION_H__ diff --git a/README b/README new file mode 100644 index 00000000..e69de29b diff --git a/adm_local/Makefile.am b/adm_local/Makefile.am new file mode 100644 index 00000000..b2d96e98 --- /dev/null +++ b/adm_local/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = unix diff --git a/adm_local/unix/Makefile.am b/adm_local/unix/Makefile.am new file mode 100644 index 00000000..facd4e6f --- /dev/null +++ b/adm_local/unix/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = config_files diff --git a/adm_local/unix/config_files/Makefile.am b/adm_local/unix/config_files/Makefile.am new file mode 100644 index 00000000..32784fab --- /dev/null +++ b/adm_local/unix/config_files/Makefile.am @@ -0,0 +1,23 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_admlocalm4_DATA = \ + check_ParaView.m4 diff --git a/adm_local/unix/config_files/check_ParaView.m4 b/adm_local/unix/config_files/check_ParaView.m4 new file mode 100644 index 00000000..8ae0e0f9 --- /dev/null +++ b/adm_local/unix/config_files/check_ParaView.m4 @@ -0,0 +1,172 @@ +dnl Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +dnl +dnl +dnl + +dnl +dnl OPTIONS_PARAVIEW +dnl ------------------------------------------------------------------------ +dnl Adds the --with-paraview=path +dnl +AC_DEFUN([OPTIONS_PARAVIEW], [ + AC_ARG_WITH([paraview], + [AC_HELP_STRING([--with-paraview], [The prefix where ParaView is located (default "" means taking from PVHOME environment variable)])], + [with_paraview=$withval], [with_paraview=""]) +]) + +dnl +dnl CHECK_PARAVIEW +dnl ------------------------------------------------------------------------ +dnl a simplified check that assumes VTK is a part of ParaView, separate location +dnl for VTK is not supported +dnl +AC_DEFUN([CHECK_PARAVIEW], [ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CXX])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([AC_PROG_CXXCPP])dnl +AC_REQUIRE([AC_LINKER_OPTIONS])dnl + +AC_REQUIRE([OPTIONS_PARAVIEW])dnl + +AC_CHECKING(for ParaView) + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +AC_SUBST(PARAVIEW_INCLUDES) +AC_SUBST(PARAVIEW_LIBS) +dnl AC_SUBST(VTKPY_MODULES) + +PARAVIEW_INCLUDES="" +PARAVIEW_LIBS="" +dnl VTKPY_MODULES="" + +paraview_ok=no + +if test "x$OpenGL_ok" != "xyes" ; then + AC_MSG_WARN(ParaView needs OpenGL correct configuration, check configure output) +fi + + +if test "x$qt_ok" != "xyes" ; then + AC_MSG_WARN(ParaView needs Qt correct configuration, check configure output) +fi + +AC_PATH_X +if test "x$x_libraries" != "x" +then + LXLIB="-L$x_libraries" +else + LXLIB="" +fi + +if test "x$x_libraries" = "x/usr/lib" +then + LXLIB="" +fi + +if test "x$x_libraries" = "x/usr/lib${LIB_LOCATION_SUFFIX}" +then + LXLIB="" +fi + +LOCAL_INCLUDES="$OGL_INCLUDES" +LOCAL_LIBS="-lvtksys -lvtkzlib -lvtkpng -lvtkjpeg -lvtktiff -lvtkexpat -lvtksqlite -lvtkmetaio -lvtkverdict -lvtkNetCDF -lvtkDICOMParser -lvtkfreetype -lvtkftgl -lvtkexoIIc -lvtkhdf5 -lvtklibxml2 -lvtkCommon -lvtkGraphics -lvtkImaging -lvtkFiltering -lvtkIO -lvtkRendering -lvtkHybrid -lvtkParallel -lvtkWidgets -lvtkClientServer -lvtkCommonCS -lvtkFilteringCS -lvtkIOCS -lvtkImagingCS -lvtkGraphicsCS -lvtkGenericFiltering -lvtkGenericFilteringCS -lvtkRenderingCS -lvtkHybridCS -lvtkParallelCS -lvtkPVCommandOptions -lKWCommon -lvtkInfovis -lvtkInfovisCS -lvtkPVServerCommon -lvtkPVServerCommonCS -lvtkCommonPythonD -lvtkFilteringPythonD -lvtkIOPythonD -lXdmf -lvtkXdmf -lvtkXdmfCS -lvtkWidgetsCS -lvtkVolumeRendering -lvtkVolumeRenderingCS -lvtkPVFilters -lvtkPVFiltersCS -lvtkViews -lvtkPVServerManagerPythonD -lvtkPVServerCommonPythonD -lvtkPVPythonInterpretor -lvtkPVServerManager -lQVTK -lpqWidgets -lQtTesting -lQtChart -lpqCore -lQtPython -lpqComponents $LXLIB -lX11 -lXt" +TRY_LINK_LIBS="$LOCAL_LIBS" + +dnl VTK install dir +if test -z $with_paraview ; then + with_paraview="" +fi +if test "x$with_paraview" = "xyes" ; then + dnl in case user wrote --with-paraview=yes + with_paraview="" +fi +if test "x$with_paraview" = "xno" ; then + dnl in case user wrote --with-paraview=no + with_paraview="" + AC_MSG_WARN(Value "no", specified for option --with-paraview, is not supported) +fi + +if test "x$with_paraview" != "x" ; then + PVHOME="$with_paraview" +else + if test -z $PVHOME ; then + AC_MSG_WARN(undefined PVHOME variable which specify where ParaView is located) + else + LOCAL_INCLUDES="-I$PVHOME/src/VTK/Common -I$PVHOME/src/VTK/Filtering -I$PVHOME/src/VTK/GenericFiltering -I$PVHOME/src/VTK/Graphics -I$PVHOME/src/VTK/Hybrid -I$PVHOME/src/VTK/Imaging -I$PVHOME/src/VTK/Infovis -I$PVHOME/src/VTK/IO -I$PVHOME/src/VTK/Parallel -I$PVHOME/src/VTK/Rendering -I$PVHOME/src/VTK/Utilities -I$PVHOME/src/VTK/Views -I$PVHOME/src/VTK/VolumeRendering -I$PVHOME/src/VTK/Widgets -I$PVHOME/src/Common/KWCommon -I$PVHOME/src/Qt/Core -I$PVHOME/src/Qt/Chart -I$PVHOME/src/Qt/Widgets -I$PVHOME/src/Qt/Python -I$PVHOME/src/Qt/Components -I$PVHOME/src/Servers/Common -I$PVHOME/src/Servers/ServerManager -I$PVHOME/src/Servers/Filters -I$PVHOME/src/Utilities/VTKClientServer -I$PVHOME/bin/VTK -I$PVHOME/bin/VTK/Common -I$PVHOME/bin/VTK/Filtering -I$PVHOME/bin/VTK/GenericFiltering -I$PVHOME/bin/VTK/Graphics -I$PVHOME/bin/VTK/Hybrid -I$PVHOME/bin/VTK/Imaging -I$PVHOME/bin/VTK/Infovis -I$PVHOME/bin/VTK/IO -I$PVHOME/bin/VTK/Parallel -I$PVHOME/bin/VTK/Rendering -I$PVHOME/bin/VTK/Utilities -I$PVHOME/bin/VTK/Views -I$PVHOME/bin/VTK/VolumeRendering -I$PVHOME/bin/VTK/Widgets -I$PVHOME/bin/Qt/Core -I$PVHOME/bin/Qt/Chart -I$PVHOME/bin/Qt/Widgets -I$PVHOME/bin/Qt/Python -I$PVHOME/bin/Qt/Components -I$PVHOME/bin/Servers/Common -I$PVHOME/bin/Servers/ServerManager -I$PVHOME/bin/Servers/Filters -I$PVHOME/bin/Utilities/VTKClientServer $LOCAL_INCLUDES" + LOCAL_LIBS="-L$PVHOME/bin/bin $LOCAL_LIBS" + TRY_LINK_LIBS="-L$PVHOME/bin/bin $TRY_LINK_LIBS" + fi +fi + +dnl vtk headers +CPPFLAGS_old="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $LOCAL_INCLUDES $QT_INCLUDES" + +AC_CHECK_HEADER(pqApplicationCore.h,paraview_ok="yes",paraview_ok="no") + +CPPFLAGS="$CPPFLAGS_old" + +if test "x$paraview_ok" = "xyes" +then + PARAVIEW_INCLUDES="$LOCAL_INCLUDES" + + dnl vtk libraries + + AC_MSG_CHECKING(linking ParaView component library) + + LIBS_old="$LIBS" + LIBS="$LIBS $QT_LIBS $TRY_LINK_LIBS" + CPPFLAGS_old="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $QT_INCLUDES $PARAVIEW_INCLUDES" + + dnl VTKPY_MODULES="$VTKHOME/python" + + AC_CACHE_VAL(salome_cv_lib_paraview,[ + AC_TRY_LINK([#include "pqApplicationCore.h" + ], + [pqApplicationCore::instance()], + [salome_cv_lib_paraview=yes], + [salome_cv_lib_paraview=no]) + ]) + paraview_ok="$salome_cv_lib_paraview" + LIBS="$LIBS_old" + CPPFLAGS="$CPPFLAGS_old" +fi + +if test "x$paraview_ok" = "xno" +then + AC_MSG_RESULT(no) + AC_MSG_WARN(unable to link with ParaView component library) +else + AC_MSG_RESULT(yes) + PARAVIEW_LIBS="$LOCAL_LIBS" +fi + +AC_MSG_RESULT(for ParaView: $paraview_ok) + +AC_LANG_RESTORE + +# Save cache +AC_CACHE_SAVE + +])dnl diff --git a/adm_local/unix/make_common_starter.am b/adm_local/unix/make_common_starter.am new file mode 100644 index 00000000..acf58dee --- /dev/null +++ b/adm_local/unix/make_common_starter.am @@ -0,0 +1,69 @@ +# +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# + +# Standard directory for installation +salomeincludedir = $(includedir)/salome +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +bindir = $(prefix)/bin/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ + +# Directories for installing admin files +admlocaldir = $(prefix)/adm_local +admlocalunixdir = $(admlocaldir)/unix +admlocalm4dir = $(admlocaldir)/unix/config_files + +# Shared modules installation directory +sharedpkgpythondir = $(salomepythondir)/shared_modules + +# Documentation directory +docdir = $(datadir)/doc/salome + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: resources/%.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=resources/%.ts) + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; diff --git a/bin/Makefile.am b/bin/Makefile.am new file mode 100644 index 00000000..94e250cf --- /dev/null +++ b/bin/Makefile.am @@ -0,0 +1,30 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# -* Makefile *- +# +# Author : +# Module : PARAVIS +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# non-distributed files +nodist_salomescript_DATA = VERSION + +# distributed files +dist_salomescript_SCRIPTS = diff --git a/bin/VERSION.in b/bin/VERSION.in new file mode 100755 index 00000000..4e8104ee --- /dev/null +++ b/bin/VERSION.in @@ -0,0 +1 @@ +THIS IS PARAVIS MODULE : VERSION: @VERSION@ diff --git a/build_configure b/build_configure new file mode 100755 index 00000000..3c8e79eb --- /dev/null +++ b/build_configure @@ -0,0 +1,102 @@ +#!/bin/bash + +# +# Tool for updating list of .in file for the SALOME project +# and regenerating configure script +# +# Author : +# Modified by : Alexander BORODIN (OCN) - autotools usage +# Date : 10/10/2002 + + +ORIG_DIR=`pwd` +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + +######################################################################## +# Test if the KERNEL_ROOT_DIR is set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi + + +######################################################################## +# Test if the GUI_ROOT_DIR is set correctly + +if test ! -d "${GUI_ROOT_DIR}"; then + echo "failed : GUI_ROOT_DIR variable is not correct !" + exit +fi + +cd ${CONF_DIR} +ABS_CONF_DIR=`pwd` + +mkdir -p salome_adm/unix/config_files +#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files +#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix + +cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/SALOMEconfig.h.in salome_adm/unix + +#cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files + +# remove KERNEL deprecated configure files +#for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \ +# check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \ +# check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing +# do +# rm -f salome_adm/unix/config_files/${deprecated} +# done + + +# ____________________________________________________________________ +# aclocal creates the aclocal.m4 file from the standard macro and the +# custom macro embedded in the directory salome_adm/unix/config_files +# and KERNEL config_files directory. +# output: +# aclocal.m4 +# autom4te.cache (directory) +echo "====================================================== aclocal" + +aclocal -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files || exit 1 + +# ____________________________________________________________________ +# libtoolize creates some configuration files (ltmain.sh, +# config.guess and config.sub). It only depends on the libtool +# version. The files are created in the directory specified with the +# AC_CONFIG_AUX_DIR() tag (see configure.ac). +# output: +# salome_adm/unix/config_files/config.guess +# salome_adm/unix/config_files/config.sub +# salome_adm/unix/config_files/ltmain.sh +#echo "====================================================== libtoolize" + +libtoolize --force --copy --automake || exit 1 + +# ____________________________________________________________________ +# autoconf creates the configure script from the file configure.ac (or +# configure.in if configure.ac doesn't exist) +# output: +# configure +echo "====================================================== autoconf" + +autoconf + +# ____________________________________________________________________ +# automake creates some scripts used in building process +# (install-sh, missing, ...). It only depends on the automake +# version. The files are created in the directory specified with the +# AC_CONFIG_AUX_DIR() tag (see configure.ac). This step also +# creates the Makefile.in files from the Makefile.am files. +# output: +# salome_adm/unix/config_files/compile +# salome_adm/unix/config_files/depcomp +# salome_adm/unix/config_files/install-sh +# salome_adm/unix/config_files/missing +# salome_adm/unix/config_files/py-compile +# Makefile.in (from Makefile.am) +echo "====================================================== automake" + +automake --copy --gnu --add-missing diff --git a/clean_configure b/clean_configure new file mode 100755 index 00000000..be0b5427 --- /dev/null +++ b/clean_configure @@ -0,0 +1,15 @@ +#!/bin/sh + +rm -rf autom4te.cache aclocal.m4 configure make_config +find . -name "*~" -print -exec rm {} \; +find . -name "*.pyc" -print -exec rm {} \; +#exit +# ==================== ON SORT AVANT + +find bin -name Makefile.in | xargs rm -f +find doc -name Makefile.in | xargs rm -f +find idl -name Makefile.in | xargs rm -f +find resources -name Makefile.in | xargs rm -f +find salome_adm -name Makefile.in | xargs rm -f +find src -name Makefile.in | xargs rm -f +rm -f Makefile.in diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..1fc9e847 --- /dev/null +++ b/configure.ac @@ -0,0 +1,316 @@ +# +# PLEASE DO NOT MODIFY configure.in FILE +# +# ALL CHANGES WILL BE DISCARDED BY THE NEXT +# build_configure COMMAND +# +# CHANGES MUST BE MADE IN configure.in.base FILE +# +# +# Author : Marc Tajchman (CEA) +# Date : 28/06/2001 +# Modified by : Patrick GOLDBRONN (CEA) +# Modified by : Marc Tajchman (CEA) +# +# Created from configure.in.base +# + +AC_INIT([PARAVIS - SALOME GUI for ParaView], [0.1.0], [webmaster.salome@opencascade.com], [PARAVIS]) +AC_CONFIG_AUX_DIR(salome_adm/unix/config_files) +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AM_INIT_AUTOMAKE + +XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` +AC_SUBST(XVERSION) + +# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) +MODULE_NAME=paravis +AC_SUBST(MODULE_NAME) + +dnl +dnl Initialize source and build root directories +dnl + +ROOT_BUILDDIR=`pwd` +ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` +cd $ROOT_SRCDIR +ROOT_SRCDIR=`pwd` +cd $ROOT_BUILDDIR + +AC_SUBST(ROOT_SRCDIR) +AC_SUBST(ROOT_BUILDDIR) + +echo +echo Source root directory : $ROOT_SRCDIR +echo Build root directory : $ROOT_BUILDDIR +echo +echo + +AC_CHECK_PROG(SHELL,sh) +AC_SUBST(SHELL) + +if test -z "$AR"; then + AC_CHECK_PROGS(AR,ar xar,:,$PATH) +fi +AC_SUBST(AR) + +dnl Export the AR macro so that it will be placed in the libtool file +dnl correctly. +export AR + +echo +echo --------------------------------------------- +echo testing make +echo --------------------------------------------- +echo + +AC_PROG_MAKE_SET +AC_PROG_INSTALL +dnl +dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques ! + +AC_ENABLE_DEBUG(yes) +AC_DISABLE_PRODUCTION + +echo --------------------------------------------- +echo testing libtool +echo --------------------------------------------- + +dnl first, we set static to no! +dnl if we want it, use --enable-static +AC_ENABLE_STATIC(no) + +AC_LIBTOOL_DLOPEN +AC_PROG_LIBTOOL + +dnl Fix up the INSTALL macro if it s a relative path. We want the +dnl full-path to the binary instead. +case "$INSTALL" in + *install-sh*) + INSTALL="\${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/install-sh -c" + ;; +esac + +echo +echo --------------------------------------------- +echo testing C/C++ +echo --------------------------------------------- +echo + +cc_ok=no +dnl inutil car libtool +dnl AC_PROG_CC +AC_PROG_CXX +AC_CXX_WARNINGS +AC_CXX_TEMPLATE_OPTIONS +AC_DEPEND_FLAG +# AC_CC_WARNINGS([ansi]) +cc_ok=yes + +dnl Library libdl : +AC_CHECK_LIB(dl,dlopen) + +dnl add library libm : +AC_CHECK_LIB(m,ceil) + +dnl Library librt : for alpha/osf +AC_CHECK_LIB(rt,nanosleep) + +dnl +dnl Check if we use std iostream by default or if we must add +dnl a compiler directive for that +dnl + +AC_CXX_USE_STD_IOSTREAM + +dnl +dnl Well we use sstream which is not in gcc pre-2.95.3 +dnl We must test if it exists. If not, add it in include ! +dnl + +AC_CXX_HAVE_SSTREAM + +dnl +dnl --------------------------------------------- +dnl testing linker +dnl --------------------------------------------- +dnl + +AC_LINKER_OPTIONS + +dnl +dnl --------------------------------------------- +dnl testing MPICH +dnl --------------------------------------------- +dnl + +CHECK_MPI +CHECK_MPICH + +dnl +dnl --------------------------------------------- +dnl testing WITHIHM +dnl --------------------------------------------- +dnl + +CHECK_WITHIHM + +echo +echo --------------------------------------------- +echo testing LEX \& YACC +echo --------------------------------------------- +echo + +lex_yacc_ok=no +AC_PROG_YACC +AC_PROG_LEX +lex_yacc_ok=yes + +echo +echo --------------------------------------------- +echo testing python +echo --------------------------------------------- +echo + +CHECK_PYTHON + +AM_PATH_PYTHON(2.3) + +dnl echo +dnl echo --------------------------------------------- +dnl echo testing java +dnl echo --------------------------------------------- +dnl echo + +dnl CHECK_JAVA + +#echo +#echo --------------------------------------------- +#echo testing swig +#echo --------------------------------------------- +#echo +# +#CHECK_SWIG + +echo +echo --------------------------------------------- +echo testing threads +echo --------------------------------------------- +echo + +ENABLE_PTHREADS + +echo +echo --------------------------------------------- +echo testing openGL +echo --------------------------------------------- +echo + +CHECK_OPENGL + +echo +echo --------------------------------------------- +echo testing QT +echo --------------------------------------------- +echo + +CHECK_QT + +echo +echo --------------------------------------------- +echo testing ParaView +echo --------------------------------------------- +echo + +CHECK_PARAVIEW + +echo +echo --------------------------------------------- +echo testing HDF5 +echo --------------------------------------------- +echo + +CHECK_HDF5 + +echo +echo --------------------------------------------- +echo Testing OpenCascade +echo --------------------------------------------- +echo + +CHECK_CAS + +echo +echo --------------------------------------------- +echo Testing html generators +echo --------------------------------------------- +echo + +CHECK_HTML_GENERATORS + +echo +echo --------------------------------------------- +echo Testing Kernel +echo --------------------------------------------- +echo + +CHECK_KERNEL + +echo +echo --------------------------------------------- +echo Testing GUI +echo --------------------------------------------- +echo + +CHECK_SALOME_GUI + +echo +echo --------------------------------------------- +echo Summary +echo --------------------------------------------- +echo + +echo Configure +variables="cc_ok lex_yacc_ok python_ok threads_ok OpenGL_ok qt_ok paraview_ok hdf5_ok occ_ok doxygen_ok graphviz_ok Kernel_ok SalomeGUI_ok" + +for var in $variables +do + printf " %10s : " `echo \$var | sed -e "s,_ok,,"` + eval echo \$$var +done + +dnl We don t need to say when we re entering directories if we re using +dnl GNU make becuase make does it for us. +if test "X$GMAKE" = "Xyes"; then + AC_SUBST(SETX) SETX=":" +else + AC_SUBST(SETX) SETX="set -x" +fi +echo +echo --------------------------------------------- +echo generating Makefiles and configure files +echo --------------------------------------------- +echo + +AC_OUTPUT_COMMANDS([ \ + chmod +x ./bin/*; \ +]) + +# This list is initiated using autoscan and must be updated manually +# when adding a new file .in to manage. When you execute +# autoscan, the Makefile list is generated in the output file configure.scan. +# This could be helpfull to update de configuration. +AC_OUTPUT([ \ + ./salome_adm/unix/SALOMEconfig.h \ + ./adm_local/Makefile \ + ./adm_local/unix/Makefile \ + ./adm_local/unix/config_files/Makefile \ + ./bin/VERSION \ + ./bin/Makefile \ + ./src/Makefile \ + ./src/PVGUI/Makefile \ + ./resources/Makefile \ + ./PARAVIS_version.h \ + Makefile \ +]) diff --git a/resources/LightApp.xml b/resources/LightApp.xml new file mode 100644 index 00000000..5f9fd8bf --- /dev/null +++ b/resources/LightApp.xml @@ -0,0 +1,11 @@ + +
+ + + +
+
+ + +
+
diff --git a/resources/Makefile.am b/resources/Makefile.am new file mode 100644 index 00000000..578207e2 --- /dev/null +++ b/resources/Makefile.am @@ -0,0 +1,31 @@ +# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# -* Makefile *- +# +# Author : Patrick GOLDBRONN (CEA) +# Date : 28/06/2001 +# Modified by : Alexander BORODIN (OCN) - autotools usage + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_salomeres_DATA = \ + PARAVIS.png \ + LightApp.xml \ + SalomeApp.xml diff --git a/resources/PARAVIS.png b/resources/PARAVIS.png new file mode 100755 index 0000000000000000000000000000000000000000..b0ab8de67f0eea925f55b05dc173dd7422adb71f GIT binary patch literal 2579 zcmZWrX;_k38-4-B?KPPBT)+%zvPrEBFhwgB(lKo;9c#)K197cPtv+`J)B>zb&2h<6 z%W2WZQp>H$LdC7zv&BSIw8h-OEm4s7qxpW$kLNt+oFDgn-RC^#Ja>xc{yna`C5VmAT+I~f3$Ayxhg01+y*2|57m$OQnyuxqqt7ZqNLn=|!b^Z-KvL5>1XBmiq_ zA~eA$fNl&5Q0qxw0{%Tk>sV^JxVU(Ah!KoPJab=)Uz_=B7@T*p5lDwKOl)jy671A3 znnZ<)cBp@(X^d{}>0fo4!~mN3^0EqFI7OZJ#M#+7GAc5%PN7(yFS9=VUh$yhbnSzZ zk}9m(;nt3h5Uo2;i^T@<7(Cl`k&Q#=n46ogyT1M8XglO7U6j)Zt1BWow2j7+4Zjtw zHZ=5}H1s@UW=`C9RRe(Yyipj$**`NfdapNMHsmj-sdeS=Tw)0y37|s09QK)|n3X`C zt%b_4!Lzcpn>M|7xaHu4H-HChJ{k?+*_tu+2E4e3rKOf3qQ5`ccl1I^7?IEuHdMF7 zzh5SS{`^v?G_j9@poS+=P)_ATg=3iDA|zo!ki-z9R4?Wm@qSOtO*X)(^tv2>sqU>E zQ>+r!Rp?05ABUYt?;qxa;Qjsi^xB9?q?3CHT=2dS1o=!Tz?K=l6T#2b7W6HFVCfbJ z>#bx3jnL!U>sz+Y3P0?XU_4K+MHgy})=(5_d3VtiK>U{mv;V^ftwdwgIa$hoHev61 z+~|+rP=h{8kezi)B`<93! zom-|O*n!s(6?px<_8@?!$QZ!E>LprTw4IBG2ltGyD*;5hd^nHW%az z$=HKcsaPgc-WVSIMVsTuf{4-1{=|5BS3RNXd9HZn?L6qnvQjukgh0REI#R=yZ9qd! z;_N+?I-T)?{5$`g_9xhIPmh#)>%Wk0?o7^B+A{0ao3D_EPpk}5PC^jM*nSDpBus}5 zL`*zw*94$oQ5CV7F7k~*imUNIveBTt%ZU41Bw9GIP-&w))>Y1{*f^6XR;X8V+~`7hnCN-}@m zxv&_?Gb^4XmF5q>#9NlN)5kIG^MS!eGFsv9RR$i_-l`k7+X z8^n{K{kw_Vt?g0nf~INFZj5X>2J_~PwH-N36d<0N@LXJ{$u6)}w^)$cq48|#Cm7}c z#oODzx%Yfc{*kB4-Y1?bTcnfnJsb~{A);bszEDi=$ts#df?>D~e|+iBNi+$4ivTcIi22=I*>`;Z;PP4W~ynCTP<-oPfEPhiP|Qyif2MM#lluY@TXHa$}=S?K0Z7> z@tBA!7IHnn%!wlGx0%5X>7vG+k)YiV0D6e`Ptdp3O)4N0_5uoNxh4{6=jMRi=!T;| zpLJYomY_f0;!(TnJ7acx_ltOCWsG>r?&y)MjYZrjnm^t5i|*Os9E}L1<5g? zIg-lT`&IS5QYeA0$)1k|?P+tvtVI3L<=*<}i_ERNgc0=Z3c>&B=3ZtU!DN zswqTfj8w6-0Ge%=-S%!1#)+$&JGrIqe0~BD*y9MAm=p%k4Ltqm`Uibwixb9zvY=K> zzi9_H&^?6FUw%?Yph5Q=9cH;6g_cY*W_%grfT<=J(q9F12LACLWG?3*m6hI%<^UZyi*I6Di7RoV{xQ5|e0pX*8Yf_A@)~S*) zFC8@HPW8Ufp{Hj*y}W(qnSa$f5vFU<*MG!+ERg;=!&k*B(2Wc!*@kPnHVjZzZ|{KyB}2ID?z2GQQ5qR}LVq)-EGLJZmjO<_j-;fy zS}D{%!&*>F^;t%32uC(9y{ZdgcpqB{upYib<%TN6-G_Mi-m=X+W19FH{D2_m0Qtq zvIgncP#|*6Mw(tT&C)$^gxIFuHxB$&OPY;Qb*{El7`iQLNvnVm(`>}C-@_s(68=t2 zJhoLc_X5*O5nst&zj^4gB~exJe=MXMObeerof*pF?k0JWz-_ikm=`|BTBJ+zwH#>h z5{Ag${LwsBrK!jiNx5ZbORBi%H?)f*iYu^E#KvVMIt^q~Ph8J$IFOR@f5cdz|EPam z)X1DuL5^bp_Cgaoz}65Um=(z}k2mCtarOF$T1G3*8- z2TZVfM=H(jYYqQ8RY9iM{qWyb2153c2UA`2NszrZCMjt**_7?mIC;3t9yZqvn>~at zNHIp#?p+_U@dxwon%+o(V$u}S+KSQ{ihqGNROY9G(1X@Q$PeV5 zyW)J8`ti1g18#I$)!Or7DQ@fxuMOUs*0w6|lZ{IU7zf7vHFpl6M}MO~j#hIIJV&Xv zMz{O+LYcW(92;O5PyDJ2z=PYmz2N_HR%{rM?{jf_SzBjXW#9m}U-mmc+D%XTA3?0Z A5dZ)H literal 0 HcmV?d00001 diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml new file mode 100644 index 00000000..5f9fd8bf --- /dev/null +++ b/resources/SalomeApp.xml @@ -0,0 +1,11 @@ + +
+ + + +
+
+ + +
+
diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100755 index 00000000..3b8741f7 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,28 @@ +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# +# +# File : Makefile.in +# Author : (CEA) +# Modified by : Alexander BORODIN (OCN) - autotools usage + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = PVGUI diff --git a/src/PVGUI/Makefile.am b/src/PVGUI/Makefile.am new file mode 100644 index 00000000..edcdfe70 --- /dev/null +++ b/src/PVGUI/Makefile.am @@ -0,0 +1,61 @@ +# PARAVIS : ParaView wrapper SALOME module +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Author : Julia DOROVSKIKH +# Date : 01/06/2005 +# Modified by : Alexander BORODIN (OCN) - autotools usage + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Library target +lib_LTLIBRARIES = libPARAVIS.la + +# Library sources +dist_libPARAVIS_la_SOURCES = \ + PVGUI_Module.h \ + PVGUI_Module.cxx \ + PVGUI_ProcessModuleHelper.h \ + PVGUI_ProcessModuleHelper.cxx + +# MOC pre-processing +MOC_FILES = \ + PVGUI_Module_moc.cxx + +nodist_libPARAVIS_la_SOURCES = $(MOC_FILES) + +# additionnal compilation flags +libPARAVIS_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(PARAVIEW_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(GUI_CXXFLAGS) + +# additionnal linkage flags +libPARAVIS_la_LDFLAGS = \ + $(PARAVIEW_LIBS) \ + $(GUI_LDFLAGS) \ + -lLightApp + +# resources files +nodist_salomeres_DATA = \ + PARAVIS_images.qm \ + PARAVIS_msg_en.qm diff --git a/src/PVGUI/PVGUI_Module.cxx b/src/PVGUI/PVGUI_Module.cxx new file mode 100644 index 00000000..4b1b8e91 --- /dev/null +++ b/src/PVGUI/PVGUI_Module.cxx @@ -0,0 +1,350 @@ +// LIGHT : sample (no-corba-engine) SALOME module +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : PVGUI_Module.cxx +// Author : Julia DOROVSKIKH +// + +#include "PVGUI_Module.h" +#include "PVGUI_ProcessModuleHelper.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/* + * Make sure all the kits register their classes with vtkInstantiator. + * Since ParaView uses Tcl wrapping, all of VTK is already compiled in + * anyway. The instantiators will add no more code for the linker to + * collect. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + + +//---------------------------------------------------------------------------- +// ClientServer wrapper initialization functions. +// Taken from ParaView sources (file pqMain.cxx) +extern "C" void vtkCommonCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkFilteringCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkGenericFilteringCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkImagingCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkInfovisCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkGraphicsCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkIOCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkRenderingCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkVolumeRenderingCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkHybridCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkWidgetsCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkParallelCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkPVServerCommonCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkPVFiltersCS_Initialize(vtkClientServerInterpreter*); +extern "C" void vtkXdmfCS_Initialize(vtkClientServerInterpreter *); + +//---------------------------------------------------------------------------- +void ParaViewInitializeInterpreter(vtkProcessModule* pm) +{ + // Initialize built-in wrapper modules. + vtkCommonCS_Initialize(pm->GetInterpreter()); + vtkFilteringCS_Initialize(pm->GetInterpreter()); + vtkGenericFilteringCS_Initialize(pm->GetInterpreter()); + vtkImagingCS_Initialize(pm->GetInterpreter()); + vtkInfovisCS_Initialize(pm->GetInterpreter()); + vtkGraphicsCS_Initialize(pm->GetInterpreter()); + vtkIOCS_Initialize(pm->GetInterpreter()); + vtkRenderingCS_Initialize(pm->GetInterpreter()); + vtkVolumeRenderingCS_Initialize(pm->GetInterpreter()); + vtkHybridCS_Initialize(pm->GetInterpreter()); + vtkWidgetsCS_Initialize(pm->GetInterpreter()); + vtkParallelCS_Initialize(pm->GetInterpreter()); + vtkPVServerCommonCS_Initialize(pm->GetInterpreter()); + vtkPVFiltersCS_Initialize(pm->GetInterpreter()); + vtkXdmfCS_Initialize(pm->GetInterpreter()); +} + +vtkPVMain* PVGUI_Module::myPVMain = 0; +pqOptions* PVGUI_Module::myPVOptions = 0; +PVGUI_ProcessModuleHelper* PVGUI_Module::myPVHelper = 0; + +/*! + \class PVGUI_Module + \brief Implementation of light (no-CORBA-engine) + SALOME module wrapping ParaView GUI. +*/ + +/*! + \brief Constructor. Sets the default name for the module. +*/ +PVGUI_Module::PVGUI_Module() +: LightApp_Module( "PARAVIS" ) +{ +} + +/*! + \brief Destructor. +*/ +PVGUI_Module::~PVGUI_Module() +{ +} + +/*! + \brief Initialize module. Creates menus, prepares context menu, etc. + \param app application instance +*/ +void PVGUI_Module::initialize( CAM_Application* app ) +{ + LightApp_Module::initialize( app ); + + SUIT_Desktop* desk = application()->desktop(); + + if ( pvInit() ) { + pvCreateActions(); + } + /* + createAction( lgLoadFile, tr( "TOP_LOAD_FILE" ), QIcon(), tr( "MEN_LOAD_FILE" ), + tr( "STB_LOAD_FILE" ), 0, desk, false, this, SLOT( onLoadFile() ) ); + createAction( lgDisplayLine, tr( "TOP_DISPLAY_LINE" ), QIcon(), tr( "MEN_DISPLAY_LINE" ), + tr( "STB_DISPLAY_LINE" ), 0, desk, false, this, SLOT( onDisplayLine() ) ); + createAction( lgEraseLine, tr( "TOP_ERASE_LINE" ), QIcon(), tr( "MEN_ERASE_LINE" ), + tr( "STB_ERASE_LINE" ), 0, desk, false, this, SLOT( onEraseLine() ) ); + createAction( lgSaveFile, tr( "TOP_SAVE_FILE" ), QIcon(), tr( "MEN_SAVE_FILE" ), + tr( "STB_SAVE_FILE" ), 0, desk, false, this, SLOT( onSaveFile() ) ); + createAction( lgEditLine, tr( "TOP_EDIT_LINE" ), QIcon(), tr( "MEN_EDIT_LINE" ), + tr( "STB_EDIT_LINE" ), 0, desk, false, this, SLOT( onEditLine() ) ); + createAction( lgAddLine, tr( "TOP_ADD_LINE" ), QIcon(), tr( "MEN_ADD_LINE" ), + tr( "STB_ADD_LINE" ), 0, desk, false, this, SLOT( onAddLine() ) ); + createAction( lgDelLine, tr( "TOP_DEL_LINE" ), QIcon(), tr( "MEN_DEL_LINE" ), + tr( "STB_DEL_LINE" ), 0, desk, false, this, SLOT( onDelLine() ) ); + createAction( lgClear, tr( "TOP_CLEAR_ALL" ), QIcon(), tr( "MEN_CLEAR_ALL" ), + tr( "STB_CLEAR_ALL" ), 0, desk, false, this, SLOT( onClear() ) ); + + int aFileMnu = createMenu( tr( "MEN_FILE" ), -1, -1 ); + createMenu( separator(), aFileMnu, -1, 10 ); + createMenu( lgLoadFile, aFileMnu, 10 ); + createMenu( lgSaveFile, aFileMnu, 10 ); + + int aLightMnu = createMenu( tr( "MEN_LIGHT" ), -1, -1, 50 ); + createMenu( lgAddLine, aLightMnu, 10 ); + createMenu( lgEditLine, aLightMnu, 10 ); + createMenu( lgDelLine, aLightMnu, 10 ); + createMenu( separator(), aLightMnu, -1, 10 ); + createMenu( lgClear, aLightMnu, 10 ); + + QString rule = "(client='ObjectBrowser' or client='OCCViewer') and selcount=1 and type='TextLine' and !empty"; + + popupMgr()->insert ( action( lgDisplayLine ), -1, 0 ); + popupMgr()->setRule( action( lgDisplayLine ), rule + " and !visible" ); + + popupMgr()->insert ( action( lgEraseLine ), -1, 0 ); + popupMgr()->setRule( action( lgEraseLine ), rule + " and activeView='OCCViewer' and visible" ); + + rule = "client='ObjectBrowser' and selcount=1 and type='TextLine'"; + + popupMgr()->insert ( action( lgEditLine ), -1, 0 ); + popupMgr()->setRule( action( lgEditLine ), rule ); + + popupMgr()->insert ( action( lgAddLine ), -1, 0 ); + popupMgr()->setRule( action( lgAddLine ), rule ); + + popupMgr()->insert ( separator(), -1, 0 ); + + popupMgr()->insert ( action( lgDelLine ), -1, 0 ); + popupMgr()->setRule( action( lgDelLine ), rule ); + + rule = "client='ObjectBrowser'"; + + popupMgr()->insert ( action( lgClear ), -1, 0 ); + popupMgr()->setRule( action( lgClear ), rule );*/ +} + +/*! + \brief Get list of compliant dockable GUI elements + \param m map to be filled in ("type":"default_position") +*/ +void PVGUI_Module::windows( QMap& m ) const +{ + m.insert( LightApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea ); + // TODO: creation of Python console leads to SIGSEGV on Python initialization... + //m.insert( LightApp_Application::WT_PyConsole, Qt::BottomDockWidgetArea ); + // ParaView diagnostic output redirected here + m.insert( LightApp_Application::WT_LogWindow, Qt::BottomDockWidgetArea ); +} + +/*! + \brief Create custom popup menu selection object. + \return new selected object +*/ +/*LightApp_Selection* PVGUI_Module::createSelection() const +{ + return new PVGUI_Selection(); +}*/ + +/*! + \brief Create data model. + \return module specific data model +*/ +/*CAM_DataModel* PVGUI_Module::createDataModel() +{ + return new PVGUI_DataModel( this ); +}*/ + +/*! + \brief Static method, performs initialization of ParaView session. + \return \c true if ParaView has been initialized successfully, otherwise false +*/ +bool PVGUI_Module::pvInit() +{ + if ( !myPVMain ){ + // Obtain command-line arguments + int argc = 0; + QStringList args = QApplication::arguments(); + char** argv = new char*[args.size()]; + for ( QStringList::const_iterator it = args.begin(); argc < 1 && it != args.end(); it++, argc++ ) + argv[argc] = strdup( (*it).toLatin1().constData() ); + + vtkPVMain::SetInitializeMPI(0); // pvClient never runs with MPI. + vtkPVMain::Initialize(&argc, &argv); // Perform any initializations. + + // TODO: Set plugin dir from preferences + //QApplication::setLibraryPaths(QStringList(dir.absolutePath())); + + myPVMain = vtkPVMain::New(); + if ( !myPVOptions ) + myPVOptions = pqOptions::New(); + if ( !myPVHelper ) + myPVHelper = PVGUI_ProcessModuleHelper::New(); + + myPVOptions->SetProcessType(vtkPVOptions::PVCLIENT); + + // This creates the Process Module and initializes it. + int ret = myPVMain->Initialize(myPVOptions, myPVHelper, ParaViewInitializeInterpreter, + argc, argv); + if (!ret){ + // Tell process module that we support Multiple connections. + // This must be set before starting the event loop. + vtkProcessModule::GetProcessModule()->SupportMultipleConnectionsOn(); + ret = myPVHelper->Run(myPVOptions); + } + + //delete[] argv; + cout << "*** ParaView client initalized!!!" << endl; + return !ret; + } + + return true; +} + +/*! + \brief Static method, cleans up ParaView session at application exit. +*/ +void PVGUI_Module::pvShutdown() +{ + // TODO... +} + +/*! + \brief Create actions for ParaView GUI operations + duplicating menus and toolbars in pqMainWindow ParaView class +*/ +void PVGUI_Module::pvCreateActions() +{ + // TODO... +} + +/*! + \brief Activate module. + \param study current study + \return \c true if activaion is done successfully or 0 to prevent + activation on error +*/ +bool PVGUI_Module::activateModule( SUIT_Study* study ) +{ + bool isDone = LightApp_Module::activateModule( study ); + if ( !isDone ) return false; + + setMenuShown( true ); + + return isDone; +} + +/*! + \brief Deactivate module. + \param study current study + \return \c true if deactivaion is done successfully or 0 to prevent + deactivation on error +*/ +bool PVGUI_Module::deactivateModule( SUIT_Study* study ) +{ + // hide menus + setMenuShown( false ); + + return LightApp_Module::deactivateModule( study ); +} + +/*! + \fn CAM_Module* createModule(); + \brief Export module instance (factory function). + \return new created instance of the module +*/ + +#ifdef WNT +#define PVGUI_EXPORT __declspec(dllexport) +#else // WNT +#define PVGUI_EXPORT +#endif // WNT + +extern "C" { + PVGUI_EXPORT CAM_Module* createModule() { + return new PVGUI_Module(); + } +} diff --git a/src/PVGUI/PVGUI_Module.h b/src/PVGUI/PVGUI_Module.h new file mode 100644 index 00000000..d64adcb6 --- /dev/null +++ b/src/PVGUI/PVGUI_Module.h @@ -0,0 +1,86 @@ +// PARAVIS : ParaView wrapper SALOME module +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : PVGUI_Module.h +// Author : Sergey ANIKIN +// + +#ifndef PVGUI_Module_H +#define PVGUI_Module_H + +#include + +class QMenu; +class LightApp_Selection; +class LightApp_SelectionMgr; +class PVGUI_ProcessModuleHelper; +class vtkPVMain; +class pqOptions; + +class PVGUI_Module: public LightApp_Module +{ + Q_OBJECT + + //! Menu actions + /*enum { + lgLoadFile = 931, //!< load text file + lgSaveFile, //!< save text file + lgDisplayLine, //!< display selected line + lgEraseLine, //!< erase selected line + lgEditLine, //!< edit selected line + lgAddLine, //!< insert new line + lgDelLine, //!< delete selected line + lgClear //!< clear all contents + };*/ + +public: + PVGUI_Module(); + ~PVGUI_Module(); + + virtual void initialize( CAM_Application* ); + virtual void windows( QMap& ) const; + + //virtual LightApp_Selection* createSelection() const; + +protected: + //virtual CAM_DataModel* createDataModel(); + +private: + //! Initialize ParaView if not yet done (once per session) + static bool pvInit(); + //! Shutdown ParaView, should be called on application exit + static void pvShutdown(); + + //! Create actions for ParaView GUI operations + //! duplicating menus and toolbars in pqMainWindow ParaView class + void pvCreateActions(); + +public slots: + virtual bool activateModule( SUIT_Study* ); + virtual bool deactivateModule( SUIT_Study* ); + +private: + static vtkPVMain* myPVMain; + static pqOptions* myPVOptions; + static PVGUI_ProcessModuleHelper* myPVHelper; +}; + +#endif // PVGUI_Module_H diff --git a/src/PVGUI/PVGUI_ProcessModuleHelper.cxx b/src/PVGUI/PVGUI_ProcessModuleHelper.cxx new file mode 100644 index 00000000..cf03dc25 --- /dev/null +++ b/src/PVGUI/PVGUI_ProcessModuleHelper.cxx @@ -0,0 +1,104 @@ +// File: PVGUI_ProcessModuleHelper.cxx +// Created: Tue Nov 11 13:03:19 2008 +// Author: Sergey ANIKIN +// + + +#include "PVGUI_ProcessModuleHelper.h" + +//#include +#include +//#include + +vtkStandardNewMacro(PVGUI_ProcessModuleHelper); +vtkCxxRevisionMacro(PVGUI_ProcessModuleHelper, "$Revision$"); + +//----------------------------------------------------------------------------- +PVGUI_ProcessModuleHelper::PVGUI_ProcessModuleHelper() +{ +} + +//----------------------------------------------------------------------------- +PVGUI_ProcessModuleHelper::~PVGUI_ProcessModuleHelper() +{ +} + +//----------------------------------------------------------------------------- +void PVGUI_ProcessModuleHelper::PrintSelf(ostream& os, vtkIndent indent) +{ + this->Superclass::PrintSelf(os, indent); +} + +//----------------------------------------------------------------------------- +bool PVGUI_ProcessModuleHelper::compareView(const QString& ReferenceImage, + double Threshold, ostream& Output, const QString& TempDirectory) +{ + // TODO: to be implemented... + //if(MainWindow* const main_window = qobject_cast(this->GetMainWindow())) + //{ + // return main_window->compareView(ReferenceImage, Threshold, Output, TempDirectory); + //} + + return false; +} + +//----------------------------------------------------------------------------- +void PVGUI_ProcessModuleHelper::showOutputWindow() +{ + // Do nothing here +} + +//----------------------------------------------------------------------------- +void PVGUI_ProcessModuleHelper::showWindow() +{ +} + +//----------------------------------------------------------------------------- +void PVGUI_ProcessModuleHelper::hideWindow() +{ +} + +//----------------------------------------------------------------------------- +int PVGUI_ProcessModuleHelper::InitializeApplication(int argc, char** argv) +{ + if ( pqProcessModuleGUIHelper::InitializeApplication( argc, argv ) ){ + // TODO: Redirect VTK debug output to SALOME GUI message console ... + /*this->Implementation->OutputWindow = new pqOutputWindow(0); + this->Implementation->OutputWindow->setAttribute(Qt::WA_QuitOnClose, false); + this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter, + SIGNAL(displayText(const QString&)), SLOT(onDisplayText(const QString&))); + this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter, + SIGNAL(displayErrorText(const QString&)), SLOT(onDisplayErrorText(const QString&))); + this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter, + SIGNAL(displayWarningText(const QString&)), SLOT(onDisplayWarningText(const QString&))); + this->Implementation->OutputWindow->connect(this->Implementation->OutputWindowAdapter, + SIGNAL(displayGenericWarningText(const QString&)), SLOT(onDisplayGenericWarningText(const QString&))); + vtkOutputWindow::SetInstance(Implementation->OutputWindowAdapter);*/ + } + + return 1; +} + +//----------------------------------------------------------------------------- +int PVGUI_ProcessModuleHelper::appExec() +{ + return 0; +} + +//----------------------------------------------------------------------------- +int PVGUI_ProcessModuleHelper::postAppExec() +{ + return 0; +} + +//----------------------------------------------------------------------------- +QWidget* PVGUI_ProcessModuleHelper::CreateMainWindow() +{ + return 0; +} + +//----------------------------------------------------------------------------- +void PVGUI_ProcessModuleHelper::ExitApplication() +{ + // Cannot exit here, so do nothing +} diff --git a/src/PVGUI/PVGUI_ProcessModuleHelper.h b/src/PVGUI/PVGUI_ProcessModuleHelper.h new file mode 100644 index 00000000..0206e411 --- /dev/null +++ b/src/PVGUI/PVGUI_ProcessModuleHelper.h @@ -0,0 +1,86 @@ +// PARAVIS : ParaView wrapper SALOME module +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : PVGUI_ProcessModuleHelper.h +// Author : Sergey ANIKIN +// + +#ifndef PVGUI_ProcessModuleHelper_H +#define PVGUI_ProcessModuleHelper_H + +#include + +/*! + \class PVGUI_ProcessModuleHelper + The key element of ParaView integration into SALOME GUI. + Sub-classes pqProcessModuleGUIHelper with the following main features: + \li No main window is created by this class + \li Qt event loop is run outside this class + \li ParaView messages are redirected to SALOME GUI message console + \li Client-server architecture is intialized and used as in any ParaView client + */ +class PVGUI_ProcessModuleHelper : public pqProcessModuleGUIHelper +{ +public: + static PVGUI_ProcessModuleHelper* New(); + vtkTypeRevisionMacro(PVGUI_ProcessModuleHelper, pqProcessModuleGUIHelper); + void PrintSelf(ostream& os, vtkIndent indent); + + + //! Compares the contents of the window with the given reference image, returns true iff they "match" within some tolerance + virtual bool compareView(const QString& ReferenceImage, double Threshold, ostream& Output, const QString& TempDirectory); + + //! Redefined to supress showing a default output window, as the messages are redirected + //! to SALOME GUI message console + virtual void showOutputWindow(); + + //! Stub for main window + virtual void showWindow(); + //! Stub for main window + virtual void hideWindow(); + +protected: + //! Calls the base implementation and then creates a custom output window adaptor + virtual int InitializeApplication(int argc, char** argv); + + //! Redefined to prevent QApplication::exec() call + virtual int appExec(); + + //! Redefined to do nothing at the end of RunGUIStart(). + //! FinalizeApplication() should be called when the SALOME module + //! is destroyed. + virtual int postAppExec(); + + PVGUI_ProcessModuleHelper(); + ~PVGUI_ProcessModuleHelper(); + + //! Stub for main window, returns a null pointer + virtual QWidget* CreateMainWindow(); + + //! Called by vtkProcessModule, but we cannot exit here. + virtual void ExitApplication(); + +private: + PVGUI_ProcessModuleHelper(const PVGUI_ProcessModuleHelper&); // Not implemented. + void operator=(const PVGUI_ProcessModuleHelper&); // Not implemented. +}; + +#endif diff --git a/src/PVGUI/resources/PARAVIS_images.ts b/src/PVGUI/resources/PARAVIS_images.ts new file mode 100644 index 00000000..fe70669e --- /dev/null +++ b/src/PVGUI/resources/PARAVIS_images.ts @@ -0,0 +1,17 @@ + + + @default + + ICON_LIGHT + LIGHT.png + + + ICON_LINE + line_icon.png + + + ICON_PARAGRAPH + paragraph_icon.png + + + diff --git a/src/PVGUI/resources/PARAVIS_msg_en.ts b/src/PVGUI/resources/PARAVIS_msg_en.ts new file mode 100644 index 00000000..eb885a42 --- /dev/null +++ b/src/PVGUI/resources/PARAVIS_msg_en.ts @@ -0,0 +1,188 @@ + + + @default + + TOP_CLEAR_ALL + Clear all + + + STB_CLEAR_ALL + Remove all text lines + + + STB_SAVE_FILE + Save text file + + + TOP_SAVE_FILE + Save text file + + + MEN_LIGHT + LIGHT + + + MEN_LOAD_FILE + Load text file + + + WRN_UNKNOWN_COMMAND + Unrecognized command! + + + BUT_OK + &OK + + + WRN_ADD_FAILED + Can't insert line! + + + STB_DISPLAY_LINE + Display selected line + + + TOP_DISPLAY_LINE + Display line + + + MEN_DISPLAY_LINE + Display selected line + + + STB_ERASE_LINE + Erase selected line + + + TOP_ERASE_LINE + Erase line + + + MEN_ERASE_LINE + Erase selected line + + + STB_EDIT_LINE + Edit selected line + + + WRN_EDIT_FAILED + Can't edit line! + + + WRN_DUMP_FAILED + Dumping file is failed! + + + WRN_LOAD_FAILED + Loading file is failed! + + + TOP_EDIT_LINE + Edit line + + + MEN_CLEAR_ALL + Clear all + + + MEN_FILE + &File + + + LIGHT_ROOT_TOOLTIP + LIGHT module root object + + + LIGHT_LIGHT + LIGHT + + + MEN_SAVE_FILE + Save text file + + + WRN_WARNING + Warning! + + + WRN_DELETE_FAILED + Can't delete line + + + WRN_SELECT_LINE + Wrong selection! + + + TOP_LOAD_FILE + Load text file + + + TOP_ADD_LINE + Add line + + + MEN_DEL_LINE + Remove line + + + STB_LOAD_FILE + Load text file + + + STB_ADD_LINE + Insert new line before the selected one + + + LIGHT_PARAGRAPH + Paragraph + + + TOP_DEL_LINE + Remove line + + + MEN_ADD_LINE + Insert new text line + + + LIGHT_LINE + Line + + + STB_DEL_LINE + Remove selected line + + + MEN_EDIT_LINE + Edit selected line + + + + LIGHTGUI + + LIGHTGUI_ADD_LINE + Add new line before the selected one + + + LIGHTGUI_MEN_DUMP + Dump + + + LIGHTGUI_MEN_LOAD + Load + + + LIGHTGUI_MEN_TXT_FILES + Text Files ( *.txt ) + + + LIGHTGUI_EDIT_LINE + Edit selected line + + + LIGHTGUI_MEN_ALL_FILES + All Files ( * ) + + + -- 2.39.2