MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoCSO/SoView2DCSOEditor/SoView2DCSOExtensibleEditor/extensions/SoCSOLabelRenderer/CSOLabelRenderer.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //----------------------------------------------------------------------------------
00010 
00011 #ifndef __CSOLabelRenderer_H
00012 #define __CSOLabelRenderer_H
00013 
00014 #include <SoCSOIncludes.h>
00015 #include <mlModuleIncludes.h>
00016 
00017 #include "SoCSOLabelRenderer.h"
00018 
00019 
00020 ML_START_NAMESPACE
00021 
00023 class SOCSO_EXPORT CSOLabelRenderer : public Module
00024 {
00025 public:
00026 
00027   CSOLabelRenderer();
00028 
00029 
00030 protected:
00031 
00032   ~CSOLabelRenderer();
00033 
00034   virtual void handleNotification(Field* field);
00035   virtual void activateAttachments();
00036 
00037 private:
00038 
00039   // generates the label string and name with Python 
00040   void generateLabelString(CSO* cso, std::string& labelString, std::string& labelName, 
00041                                      std::string& deviceOffsetX, std::string& deviceOffsetY);
00042 
00043   StringField* _extensionIdFld;
00044   BoolField*   _allowModificationFld;
00045   BoolField*   _shouldRenderFld;
00046 
00047   BoolField* _shouldDrawLabelBorderForSelectedCSOFld;
00048 
00049   IntField* _labelBorderMarginXFld;
00050   IntField* _labelBorderMarginYFld;
00051 
00052   // Fields we need at least:
00053   /*
00054     * DrawBoxMode:
00055       - Never
00056       - Always
00057       - Selected (only one at the moment)
00058     * Box margin X/Y
00059     * LabelColorMode:
00060       - General
00061       - As CSO
00062     * LabelColor / Alpha
00063     * FontSize
00064   */
00065 
00066   SoNodeField* _outSceneFld;
00067   BaseField*   _outCSOListFld;
00068   IntField*    _currentCSOIdFld;
00069 
00070   StringField* _labelStringFld;
00071   StringField* _labelNameFld;
00072   StringField* _labelCodeFld;
00073 
00074   StringField* _deviceOffsetXFld;
00075   StringField* _deviceOffsetYFld;
00076 
00077   StringField* _userDataFields[8];
00078 
00079   NotifyField* _redrawAllLabelsFld;
00080 
00081   NotifyField* _needsNewLabelStringFld;
00082 
00083   void setLabelBorderMargins();
00084 
00085   SoCSOLabelRenderer _soCSOLabelRenderer;
00086 
00087   friend class ::SoCSOLabelRenderer;
00088 
00089   ML_MODULE_CLASS_HEADER(CSOLabelRenderer);
00090 };
00091 
00092 
00093 ML_END_NAMESPACE
00094 
00095 
00096 #endif // __CSOLabelRenderer_H