BALL  1.4.1
message.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 
00005 #ifndef BALL_VIEW_KERNEL_MESSAGE_H
00006 #define BALL_VIEW_KERNEL_MESSAGE_H
00007 
00008 #ifndef BALL_VIEW_KERNEL_STAGE_H
00009 # include <BALL/VIEW/KERNEL/stage.h>
00010 #endif
00011 
00012 #ifndef BALL_VIEW_KERNEL_COMMON_H
00013 # include <BALL/VIEW/KERNEL/common.h>
00014 #endif
00015 
00016 #include <boost/any.hpp>
00017 
00018 class QWidget;
00019 
00020 namespace BALL
00021 {
00022   class Composite;
00023   class ConformationSet;
00024 
00025   namespace VIEW
00026   {
00027     class Dataset;
00028     class ConnectionObject;
00029     class GeometricObject;
00030 
00033 
00052 class BALL_VIEW_EXPORT Message
00053 {
00054   public:
00055 
00059 
00065   Message();
00066 
00069   Message(const Message& message);
00070 
00073   virtual ~Message();
00074 
00076 
00079 
00085   void setSender(const ConnectionObject* sender);
00086 
00092   const ConnectionObject* getSender() const;
00093 
00105   void setDeletable(bool flag = true);
00106 
00109   bool isDeletable() const;
00110 
00115   boost::any& data() { return data_; }
00117 
00118   private:
00119 
00120   const ConnectionObject* connection_object_;
00121 
00122   bool deletable_;
00123 
00124   boost::any data_;
00125 };
00126 
00127 
00137 class DatasetMessage
00138   : public Message
00139 {
00140   public:
00141 
00143     enum Type
00144     {
00146       UNDEFINED = -1,
00147 
00149       ADD = 0,
00150 
00152       REMOVE,
00153 
00155       UPDATE,
00156 
00158       SELECTED,
00159 
00161       VISUALIZE,
00162 
00164       VISUALIZE_END = 100
00165     };
00166 
00168     DatasetMessage(Dataset* set = 0, Type type = UNDEFINED);
00169 
00171     DatasetMessage(const DatasetMessage& msg);
00172 
00174     Type getType() const { return type_;}
00175 
00177     void setType(Type type) { type_ = type;}
00178 
00180     Dataset* getDataset() const { return dataset_;}
00181 
00183     void setDataset(Dataset* set) { dataset_ = set;}
00184 
00186     bool isValid() const;
00187 
00188     protected:
00189 
00190     Dataset* dataset_;
00191     Type     type_;
00192     String   dataset_type_;
00193 };
00194 
00195         
00196 
00200 class BALL_VIEW_EXPORT CompositeMessage
00201   : public Message
00202 {
00203   public:
00204 
00206   enum CompositeMessageType
00207   {
00209     UNDEFINED = -1,
00210 
00214     NEW_COMPOSITE,
00215     
00217     REMOVED_COMPOSITE,
00218     
00220     CHANGED_COMPOSITE,
00221     
00223     CHANGED_COMPOSITE_HIERARCHY,
00224     
00226     SELECTED_COMPOSITE,
00227     
00229     DESELECTED_COMPOSITE,
00230     
00232     CENTER_CAMERA,
00233 
00237     NEW_MOLECULE
00238   };
00239 
00243 
00249   CompositeMessage();
00250 
00252   CompositeMessage(const Composite& composite, CompositeMessageType type, bool update_representations = true);
00253 
00255   CompositeMessage(const CompositeMessage& message);
00256 
00258   virtual ~CompositeMessage();
00259 
00261 
00264   
00267   void setComposite(const Composite& composite);
00268 
00271   Composite* getComposite() const;
00272 
00276   void setCompositeName(const String& name);
00277 
00280   const String& getCompositeName() const;
00281 
00283   void setType(CompositeMessageType type)
00284      { type_ = type;}
00285 
00287   CompositeMessageType getType() const
00288      { return type_;}
00289 
00291   void setUpdateRepresentations(bool state)
00292      { update_representations_ = state;}
00293 
00295   bool updateRepresentations() const
00296      { return update_representations_;}
00297 
00299   void setShowSelectionInfos(bool state)
00300      { show_selection_infos_ = state;}
00301 
00303   bool showSelectionInfos()
00304      { return show_selection_infos_;}
00305 
00307 
00308   protected:
00309 
00310   CompositeMessageType  type_;
00311   Composite*            composite_;
00312   String                composite_name_;
00313   bool                  update_representations_;
00314   bool                  show_selection_infos_;
00315 };
00316 
00317 
00328 class BALL_VIEW_EXPORT SceneMessage: public Message
00329 {
00330   public:
00331 
00335   
00337   enum SceneMessageType
00338   {
00340     UNDEFINED = 0,
00341 
00343     REBUILD_DISPLAY_LISTS,
00344     
00346     REDRAW,
00347 
00349     UPDATE_CAMERA,
00350     
00352     REMOVE_COORDINATE_SYSTEM,
00353 
00355     EXPORT_PNG,
00356 
00358     EXPORT_POVRAY,
00359 
00361     ENTER_ROTATE_MODE,
00362 
00364     ENTER_PICKING_MODE,
00365 
00367     ENTER_MOVE_MODE,
00368 
00370     EXPORT_FINISHED
00371   };
00372 
00374 
00377 
00384   SceneMessage(SceneMessageType type = UNDEFINED);
00385 
00388   SceneMessage(const SceneMessage& message);
00389 
00392   virtual ~SceneMessage();
00393 
00395 
00398   
00400   void setType(SceneMessageType type);
00401 
00403   SceneMessageType getType() const
00404      { return type_;}
00405 
00408   void setStage(Stage stage) 
00409      { stage_ = stage;}
00410   
00412   Stage& getStage() 
00413      { return stage_;}
00414 
00416   const Stage& getStage() const
00417      { return stage_;}
00418 
00420 
00421   private:
00422 
00423   SceneMessageType  type_;
00424   Stage             stage_;
00425 };
00426 
00427 
00433 class BALL_VIEW_EXPORT GenericSelectionMessage: public Message
00434 {
00435   public:
00436 
00440 
00445   GenericSelectionMessage();
00446 
00449   GenericSelectionMessage(const GenericSelectionMessage& message);
00450 
00453   virtual ~GenericSelectionMessage();
00454           
00456 
00459 
00463   void setSelection(const std::list<Composite*>& selection);
00464 
00467   const std::list<Composite*>& getSelection() const;
00468 
00471   std::list<Composite*>& getSelection();
00472 
00474 
00475   private:
00476 
00477   std::list<Composite*> selection_;
00478 };
00479 
00480 
00486 class BALL_VIEW_EXPORT ControlSelectionMessage: public GenericSelectionMessage
00487 {
00488   public:
00489   ControlSelectionMessage();
00490 };
00491 
00492 
00495 class BALL_VIEW_EXPORT NewSelectionMessage: public Message
00496 {
00497   public:
00498   NewSelectionMessage();
00499 
00501   bool openItems()
00502      { return open_;}
00503 
00505   void setOpenItems(bool state)
00506      { open_ = state;}
00507 
00508   protected:
00509    bool open_;
00510 };
00511 
00516 class BALL_VIEW_EXPORT GeometricObjectSelectionMessage: public Message
00517 {
00518   public:
00519 
00523 
00526   GeometricObjectSelectionMessage();
00527 
00530   virtual ~GeometricObjectSelectionMessage();
00531 
00533 
00536   
00540   void setSelection(const std::list<GeometricObject*>& selection)
00541      { selection_ = selection;}
00542 
00545   const std::list<GeometricObject*>& getSelection() const
00546      { return selection_;}
00547 
00549   void setSelected(bool state)
00550      { state_ = state;}
00551 
00553   bool isSelected() const
00554      { return state_;}
00555 
00557 
00558   private:
00559 
00560   std::list<GeometricObject*> selection_;
00561 
00562   bool state_;
00563 };
00564 
00565 
00566 class Representation;
00567 
00569 class BALL_VIEW_EXPORT RepresentationMessage: public Message
00570 {
00571   public:
00572 
00574   enum RepresentationMessageType
00575   {
00577     UNDEFINED = -1,
00578 
00580     ADD = 0,
00581 
00583     REMOVE,
00584 
00586     UPDATE,
00587 
00589     SELECTED,
00590 
00592     STARTED_UPDATE,
00593 
00595     FINISHED_UPDATE,
00596 
00598     ADD_TO_GEOMETRIC_CONTROL
00599   };
00600 
00602   RepresentationMessage();
00603   
00605   virtual ~RepresentationMessage();
00606 
00608   RepresentationMessage(Representation& rep, RepresentationMessageType type);
00609 
00611   void setRepresentation(Representation& rep)
00612      {representation_ = &rep;}
00613 
00615   Representation* getRepresentation() 
00616      {return representation_;}
00617 
00619   void setType(RepresentationMessageType type);
00620 
00622   RepresentationMessageType getType() const
00623      { return type_;}
00624   
00625   private:
00626 
00627   Representation*           representation_;
00628   RepresentationMessageType type_;
00629 };
00630   
00631 
00635 class BALL_VIEW_EXPORT MolecularTaskMessage
00636   : public Message
00637 {
00638   public:
00639 
00641   enum MolecularTaskMessageType
00642   {
00644     UNDEFINED = -1,
00646     BUILD_BONDS,
00648     CHECK_RESIDUE,
00650     ADD_HYDROGENS,
00652     CREATE_DISTANCE_GRID
00653   };
00654 
00656   MolecularTaskMessage(MolecularTaskMessageType type = UNDEFINED);
00657 
00659   void setType(MolecularTaskMessageType type);
00660 
00662   MolecularTaskMessageType getType() const
00663      {return type_;}
00664 
00665   protected:
00666   
00667   MolecularTaskMessageType type_;
00668 };
00669 
00670 
00674 class BALL_VIEW_EXPORT ShowDisplayPropertiesMessage
00675   :public Message
00676 {
00677   public:
00679     ShowDisplayPropertiesMessage()
00680       : Message(){};
00681 };
00682 
00686 class BALL_VIEW_EXPORT CreateRepresentationMessage
00687   :public Message
00688 {
00689   public:
00691     CreateRepresentationMessage();
00692 
00694     CreateRepresentationMessage(const std::list<Composite*>& composites,
00695                                 ModelType model_type, 
00696                                 ColoringMethod coloring_method)
00697       ;   
00698 
00700     const std::list<Composite*>& getComposites() const
00701        { return composites_;}
00702 
00704     ModelType getModelType() const
00705        { return model_type_;}
00706     
00708     ColoringMethod getColoringMethod() const
00709        { return coloring_method_;} 
00710   
00711     private: 
00712     std::list<Composite*>   composites_;
00713     ModelType         model_type_;
00714     ColoringMethod    coloring_method_;
00715 };
00716   
00717 
00721 class BALL_VIEW_EXPORT DeselectControlsMessage
00722   : public Message
00723 {
00724   public:
00725     DeselectControlsMessage()
00726       : Message() {};
00727 };
00728 
00729 
00731 class BALL_VIEW_EXPORT TransformationMessage
00732   : public Message
00733 {
00734   public:
00735 
00737   TransformationMessage();
00738 
00740   TransformationMessage(const Matrix4x4& m);
00741 
00743   void setMatrix(const Matrix4x4& m)
00744      { matrix_ = m;}
00745 
00747   const Matrix4x4& getMatrix() const
00748      { return matrix_;}
00749 
00750   private:
00751 
00752   Matrix4x4 matrix_;
00753 };
00754 
00755 
00757 class BALL_VIEW_EXPORT FinishedSimulationMessage
00758   : public Message
00759 {
00760   public:
00761 
00763   FinishedSimulationMessage();
00764 };
00765   
00766 
00768 class BALL_VIEW_EXPORT SyncClippingPlanesMessage
00769   : public Message
00770 {
00771   public:
00772 
00774   SyncClippingPlanesMessage(){};
00775 };
00776 
00777 
00779 class BALL_VIEW_EXPORT ShowHelpMessage
00780   : public Message
00781 {
00782   public:
00783 
00785   ShowHelpMessage(String url = "", String project = "BALLView", String entry = "");
00786 
00787   String getURL() const { return url_;}
00788 
00789   String getProject() const { return project_;}
00790 
00791   String getEntry() const { return entry_;}
00792 
00793   protected:
00794 
00795   String url_;
00796   String project_;
00797   String entry_;
00798 };
00799 
00800 
00805 class BALL_VIEW_EXPORT RegisterHelpSystemMessage
00806   : public Message
00807 {
00808   public:
00809 
00811   RegisterHelpSystemMessage();
00812 
00814   void setObject(const QObject* object) { object_ = object;}
00815 
00817   void setURL(const String& url) { url_ = url;}
00818 
00820   void setRegisterMode(bool state) { register_ = state;}
00821 
00823   const QObject* getObject() const { return object_;}
00824 
00826   const String& getURL() const { return url_;}
00827 
00829   bool isRegister() const { return register_;}
00830 
00831   protected:
00832 
00833   const QObject* object_;
00834   Index    menu_entry_;
00835   String   url_;
00836   bool     register_;
00837 };
00838 
00839 
00840 
00842 class BALL_VIEW_EXPORT DockingFinishedMessage
00843   :public Message
00844 {
00845   public:
00847     DockingFinishedMessage();
00848 
00850     DockingFinishedMessage(bool abort);
00851        
00853     virtual ~DockingFinishedMessage();
00854       
00856     void setConformationSet(const ConformationSet* conformation_set)
00857     {
00858       conformation_set_ = conformation_set;
00859     }
00860     
00861     //
00862     const ConformationSet* getConformationSet() const { return conformation_set_; }
00863     
00865     bool wasAborted() { return abort_; }
00866 
00867   protected:
00868 
00870     const ConformationSet* conformation_set_;
00871     bool abort_;
00872 };
00873 
00875 
00876 # ifndef BALL_NO_INLINE_FUNCTIONS
00877 #   include <BALL/VIEW/KERNEL/message.iC>
00878 # endif
00879         
00880 } } // namespaces
00881 
00882 #endif // BALL_VIEW_KERNEL_MESSAGE_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines