00001 #if !defined(AFX_DLGAUTOLAYOUT_H__FF60C817_C49F_4110_96C7_BD85490C6F17__INCLUDED_) 00002 #define AFX_DLGAUTOLAYOUT_H__FF60C817_C49F_4110_96C7_BD85490C6F17__INCLUDED_ 00003 00004 #if _MSC_VER > 1000 00005 #pragma once 00006 #endif // _MSC_VER > 1000 00007 // DlgAutoLayout.h : header file 00008 // 00009 00010 #include "resource.h" 00011 #include "ComponentLib.h" 00012 #include "GMEGraph.h" 00013 #include "LayoutOptimization.h" 00014 #include "GAOptimizer.h" 00015 #include "CommonSmart.h" 00016 00018 // CDlgAutoLayout dialog 00019 00020 class CDlgAutoLayout : public CDialog, public LayoutOptimizerListener 00021 { 00022 // Construction 00023 public: 00024 CDlgAutoLayout(CWnd* pParent = NULL); // standard constructor 00025 00026 virtual ~CDlgAutoLayout(); 00027 00028 void initialize( IMgaProject * project, IMgaModel* model ); 00029 00030 virtual LayoutOptimizerListener::ContinueAbortOrCurrent update( int percentage, LayoutSolution * sol, double score ); 00031 00032 // Dialog Data 00033 //{{AFX_DATA(CDlgAutoLayout) 00034 enum { IDD = IDD_DIALOG_AUTOLAYOUT }; 00035 CListBox m_listAspects; 00036 CProgressCtrl m_progressOptimization; 00037 CProgressCtrl m_progressAspect; 00038 CButton m_graph; 00039 BOOL m_startFromScratch; 00040 CButton m_startButton; 00041 CButton m_abortButton; 00042 CButton m_currentResultsButton; 00043 //}}AFX_DATA 00044 00045 00046 // Overrides 00047 // ClassWizard generated virtual function overrides 00048 //{{AFX_VIRTUAL(CDlgAutoLayout) 00049 protected: 00050 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 00051 //}}AFX_VIRTUAL 00052 00053 public: 00054 void OptimizeAllAspects(); 00055 void Optimize(CComObjPtr<IMgaMetaAspect>& aspect); 00056 // Implementation 00057 protected: 00058 void drawSolution( CDC * dc, LayoutSolution * sol ); 00059 00060 00061 CRect m_graphRect; 00062 CBrush m_backBrush; 00063 CDC m_graphDC; 00064 CBitmap m_graphBmp; 00065 CBitmap * m_graphOldBmp; 00066 00067 LayoutSolution * m_currentSolution; // only for display purpose 00068 double m_score; 00069 00070 CComObjPtr<IMgaProject> m_project; 00071 CComObjPtr<IMgaModel> m_model; 00072 CComObjPtr<IMgaMetaModel> m_metaModel; 00073 CComObjPtr<IMgaMetaAspects> m_metaAspects; 00074 00075 int m_updateTime; 00076 bool m_bAbortionRequested; 00077 bool m_bCurrentResults; 00078 00079 // Generated message map functions 00080 //{{AFX_MSG(CDlgAutoLayout) 00081 afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct); 00082 virtual BOOL OnInitDialog(); 00083 afx_msg void OnButtonStart(); 00084 afx_msg void OnButtonAbort(); 00085 afx_msg void OnButtonCurrentResults(); 00086 //}}AFX_MSG 00087 DECLARE_MESSAGE_MAP() 00088 }; 00089 00090 //{{AFX_INSERT_LOCATION}} 00091 // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 00092 00093 #endif // !defined(AFX_DLGAUTOLAYOUT_H__FF60C817_C49F_4110_96C7_BD85490C6F17__INCLUDED_)