NSFlexConstraintList.h

Go to the documentation of this file.
00001 // This code is a part of the NanoSoft NSViews C++ Library.
00002 // Copyright (C) 1996 NanoSoft Corporation. All rights reserved.
00003 
00004 #ifndef __NSFlexConstraintList_h__
00005 #define __NSFlexConstraintList_h__
00006 
00007 class CNSFlexConstraint
00008 {
00009 
00010   public:
00011 
00012     CNSFlexConstraint(UINT nControlID,
00013         const CNSFlexHorizontalConstraint& HorizontalConstraint,
00014         const CNSFlexVerticalConstraint& VerticalConstraint);
00015 
00016     ~CNSFlexConstraint();
00017 
00018     void SetBasePosition(int nBaseLeft, int nBaseTop, int nBaseRight, 
00019         int nBaseBottom);
00020 
00021     BOOL Init(const CWnd* pContainerWnd, int nClientWidth, int nClientHeight);
00022 
00023     UINT GetControlID() const;
00024 
00025     int GetBaseLeft() const;
00026     int GetBaseTop() const;
00027     int GetBaseRight() const;
00028     int GetBaseBottom() const;
00029 
00030     float GetLeftLocator() const;
00031     float GetTopLocator() const;
00032     float GetRightLocator() const;
00033     float GetBottomLocator() const;
00034 
00035   private:
00036 
00037     UINT m_nControlID;
00038 
00039     int m_nBaseLeft;
00040     int m_nBaseTop;
00041     int m_nBaseRight;
00042     int m_nBaseBottom;
00043 
00044     CNSFlexHorizontalConstraint* m_pHorizontalConstraint;
00045     CNSFlexVerticalConstraint* m_pVerticalConstraint;
00046     
00047 };
00048 
00049 inline UINT CNSFlexConstraint::GetControlID() const
00050 {
00051     return m_nControlID;
00052 }
00053 
00054 inline int CNSFlexConstraint::GetBaseLeft() const
00055 {
00056     return m_nBaseLeft;
00057 }
00058 
00059 inline int CNSFlexConstraint::GetBaseTop() const
00060 {
00061     return m_nBaseTop;
00062 }
00063 
00064 inline int CNSFlexConstraint::GetBaseRight() const
00065 {
00066     return m_nBaseRight;
00067 }
00068 
00069 inline int CNSFlexConstraint::GetBaseBottom() const
00070 {
00071     return m_nBaseBottom;
00072 }
00073 
00074 inline float CNSFlexConstraint::GetLeftLocator() const
00075 {
00076     return m_pHorizontalConstraint->GetLeft();
00077 }
00078 
00079 inline float CNSFlexConstraint::GetTopLocator() const
00080 {
00081     return m_pVerticalConstraint->GetTop();
00082 }
00083 
00084 inline float CNSFlexConstraint::GetRightLocator() const
00085 {
00086     return m_pHorizontalConstraint->GetRight();
00087 }
00088 
00089 inline float CNSFlexConstraint::GetBottomLocator() const
00090 {
00091     return m_pVerticalConstraint->GetBottom();
00092 }
00093 
00094 
00095 class CNSFlexConstraintList
00096 {
00097 
00098   public:
00099 
00100     CNSFlexConstraintList(CWnd* pContainerWnd);
00101 
00102     virtual ~CNSFlexConstraintList(); 
00103 
00104     void AddConstraint(UINT nControlID,
00105         const CNSFlexHorizontalConstraint& HorizontalConstraint,
00106         const CNSFlexVerticalConstraint& VerticalConstraint);
00107 
00108 #ifdef _DEBUG
00109 
00110     BOOL AssertAllFlexControlsExist();
00111 
00112 #endif
00113 
00114     void PositionControls(int nClientWidth, int nClientHeight);
00115 
00116     void SetClientBaseSize(int nClientBaseWidth, int nClientBaseHeight);
00117 
00118   private:
00119 
00120     void InitConstraints();
00121 
00122     CWnd* m_pContainerWnd;
00123 
00124     int m_nClientBaseWidth;
00125     int m_nClientBaseHeight;
00126 
00127     CPtrList m_FlexConstraints;
00128 
00129     BOOL m_bConstraintsInitialized;
00130 
00131 };
00132 
00133 #endif
00134                                    

Generated on Thu Nov 20 04:28:49 2008 for HOOPLE Libraries by  doxygen 1.5.1