CControl.hpp

Go to the documentation of this file.
00001 #ifndef __CControl__
00002 #define __CControl__
00003 
00004 #include "IControl.hpp"
00005 #include <Testing/CTrace.hpp>
00006 
00007 //  ===========================================================================
00008 
00009 using Exponent::GUI::Controls::IControl;
00010 using Exponent::Testing::CTrace;
00011 
00012 //  ===========================================================================
00013 
00014 namespace Exponent
00015 {
00016     namespace GUI
00017     {
00018         namespace Controls
00019         {
00039             class CControl : public IControl
00040             {
00042                 EXPONENT_CLASS_DECLARATION;
00045 //  ===========================================================================
00046         
00047             public:
00048 
00049 //  ===========================================================================
00050 
00051                 const static long CCONTROL_NO_ID_REQUIRED = -1;     
00053 //  ===========================================================================
00054 
00062                 CControl(IControlRoot *root, const long uniqueId, const CRect &area, IActionListener *listener = NULL);
00063 
00067                 virtual ~CControl();
00068 
00069 //  ===========================================================================
00070 
00075                 virtual void setControlRoot(IControlRoot *controlRoot);
00076 
00081                 virtual IControlRoot *getRootControl() const { return m_rootControl; }
00082 
00087                 virtual void setParentControl(IControl *parent) { m_parentControl = parent; }
00088 
00093                 virtual IControl *getParentControl() const { return m_parentControl; }
00094 
00095 //  ===========================================================================
00096 
00101                 virtual void registerActionListener(IActionListener *listener) { m_actionListener = listener; }
00102 
00103 //  ===========================================================================
00104 
00109                 virtual void controlIsMouseEnabled(const bool mouseEnabled = true) { m_mouseEnabled = mouseEnabled; }
00110 
00115                 virtual void controlIsDropFileEnabled(const bool dropEnabled = true) { m_dropEnabled = dropEnabled; }
00116 
00121                 virtual void controlIsKeyEnabled(const bool keyEnabled = true) { m_keyboardEnabled = keyEnabled; }
00122 
00127                 virtual void controlIsEnabledFor(const CString &identifier) { }
00128 
00129 //  ===========================================================================
00130 
00135                 virtual bool isMouseEnabled() const { return m_mouseEnabled; }
00136 
00141                 virtual bool isDropFileEnabled() const { return m_dropEnabled; }
00142 
00147                 virtual bool isKeyEnabled() const { return m_keyboardEnabled; }
00148 
00154                 virtual bool isEnabledFor(const CString &identifier) { return false; }
00155 
00160                 virtual bool needsRightClick() const { return m_needsRightClick; }
00161 
00162 //  ===========================================================================
00163 
00170                 virtual bool serializeToNode(CXMLNode &node);
00171 
00178                 virtual bool serializeFromNode(CXMLNode &node);
00179 
00180 //  ===========================================================================
00181 
00186                 virtual long getUniqueId() const { return m_uniqueId; }
00187 
00192                 virtual void setUniqueId(const long id) { m_uniqueId = id; }
00193 
00198                 virtual double getValue() const { return m_value; }
00199 
00204                 virtual void setValue(const double value) { m_value = value; }
00205 
00206 //  ===========================================================================
00207 
00212                 virtual void setArea(const CRect &area);
00213 
00218                 virtual const CRect &getArea() const { return m_area; }
00219 
00224                 virtual const CRect &getAbsoluteRect() const { return m_absoluteArea; }
00225 
00230                 virtual const CDimension &getDimension() const { return m_dimension; }
00231 
00236                 virtual const CRect &getNormalisedArea() const { return m_normalisedArea; }
00237 
00244                 virtual bool isContainer() const { return false; }
00245 
00246 //  ===========================================================================
00247 
00251                 virtual void update();
00252 
00298                 virtual void drawControl(CGraphics &graphics);
00299 
00300 //  ===========================================================================
00301 
00305                 virtual void enableControl() ;
00306 
00310                 virtual void disableControl();
00311 
00312 //  ===========================================================================
00313 
00318                 virtual void setPrimaryImage(IImage *theImage);
00319 
00324                 virtual void setDisabledImage(IImage *theImage);
00325 
00326 //  ===========================================================================
00327 
00332                 virtual void handleFileDrop(const CDropEvent &event) { }
00333 
00334 //  ===========================================================================
00335 
00340                 virtual bool handleKeyDown(const CKeyboardEvent &event) { return false; }
00341                 
00346                 virtual bool handleKeyUp(const CKeyboardEvent &event) { return false; }
00347 
00348 //  ===========================================================================
00349 
00354                 virtual void handleLeftButtonDown(CMouseEvent &event) { }
00355 
00360                 virtual void handleLeftButtonUp(CMouseEvent &event) { }
00361 
00366                 virtual void handleRightButtonDown(CMouseEvent &event) { }
00367 
00372                 virtual void handleRightButtonUp(CMouseEvent &event) { }
00373 
00378                 virtual void handleDoubleClick(CMouseEvent &event) { }
00379 
00384                 virtual void handleMouseScroll(CMouseEvent &event) { }
00385 
00390                 virtual void handleMouseMovement(CMouseEvent &event) { }
00391 
00396                 virtual void handleMouseLeavingArea(CMouseEvent &event) { }
00397 
00398 //  ===========================================================================
00399 
00405                 virtual void setDefaultControlColours(const CAlphaColour &backgroundColour = CAlphaColour::CALPHACOLOUR_WHITE, const CAlphaColour &frameColour = CAlphaColour::CALPHACOLOUR_BLACK);
00406 
00411                 virtual void doDefaultDrawing(const bool doDefaultDraw) { m_doDefaultDrawing = doDefaultDraw; }
00412 
00413 //  ===========================================================================
00414 
00418                 virtual void referenced();
00419 
00423                 virtual void dereference();
00424 
00429                 virtual long getReferenceCount() const { return m_referenceCount; }
00430 
00436                 virtual void getObjectDescription(char *string, const long size) const;
00437 
00438 //  ===========================================================================
00439 
00440             protected:
00441 
00442 //  ===========================================================================
00443 
00449                 virtual bool drawEnabledControl(CGraphics &graphics);
00450 
00456                 virtual bool drawPrimaryImage(CGraphics &graphics);
00457 
00464                 virtual void drawPrimaryImage(CGraphics &graphics, const bool drawFrameIfNoImage);
00465 
00466 //  ===========================================================================
00467 
00468 
00469                 long m_referenceCount;                  
00470                 IActionListener *m_actionListener;      
00471                 IControlRoot *m_rootControl;            
00472                 IControl *m_parentControl;              
00474                 bool m_mouseEnabled;                    
00475                 bool m_keyboardEnabled;                 
00476                 bool m_dropEnabled;                     
00477                 bool m_needsRightClick;                 
00478                 bool m_enabled;                         
00479                 bool m_doDefaultDrawing;                
00481                 long m_uniqueId;                        
00482                 double m_value;                         
00484                 CRect m_area;                           
00485                 CDimension m_dimension;                 
00486                 CRect m_absoluteArea;                   
00487                 CRect m_normalisedArea;                 
00489                 IImage *m_primaryImage;                 
00490                 IImage *m_disabledImage;                
00492                 CAlphaColour m_frameColour;             
00493                 CAlphaColour m_backgroundColour;        
00494             };
00495         }
00496     }
00497 }
00498 #endif  // End of CControl.hpp

Infinity API - CControl.hpp Source File generated on 7 Mar 2007