reman3/Rayman_X/cpa/Appli/MngData5/Inc/DlgConfl.h

223 lines
8.2 KiB
C++

/*
*=======================================================================================
* Name :dlgconfl.h
*
* Author :vincent lhullier Date :21/07/97
*
* Description :implementation of dialog box to show section differences
*=======================================================================================
* Modification -> Author : Date :
* Description :
*=======================================================================================
*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#if !defined(AFX_DLGCONFL_H__6184144B_0199_11D1_8EF9_00609736731A__INCLUDED_)
#define AFX_DLGCONFL_H__6184144B_0199_11D1_8EF9_00609736731A__INCLUDED_
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include "resource.h"
#include "MajData.h"
#include "SCR.h"
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*
=======================================================================================
=======================================================================================
PART of code to decompose a file/section into a tree of section
=======================================================================================
=======================================================================================
*/
/*
=======================================================================================
Constant
=======================================================================================
*/
#define SCRT_C_cNew 0
#define SCRT_C_cDiff 1
#define SCRT_C_cSame 2
#define SCRT_C_cNewVss 3
#define SCRT_C_cNewLocal 4
#define SCRT_C_cComment 5
#define SCRT_C_cSection 0
#define SCRT_C_cEntry 1
/*
=======================================================================================
Structures
=======================================================================================
*/
typedef struct SCRT_tdstEntry_
{
char cType;
char *szName;
unsigned short uwNameLength;
char cCompState;
long lCompWith;
HTREEITEM hItem;
} SCRT_tdstEntry;
typedef struct SCRT_tdstSection_
{
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/* same entry than SCR_tdstSection entry */
char cType;
char *szName;
unsigned short uwNameLength;
char cCompState;
long lCompWith;
HTREEITEM hItem;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
char *szEndSection;
BOOL bNameIsAllocate;
long lNumberOfElements;
SCRT_tdstEntry **d_p_stElement;
//long lNumberOfEntries;
//SCRT_tdstSectionEntry *d_stEntry;
//long lNumberOfSubSections;
//struct SCRT_tdstSectionTree_ *d_stSubSection;
} SCRT_tdstSection;
/*
=======================================================================================
Functions
=======================================================================================
*/
void SCRT_fn_vClean( SCRT_tdstSection *_p_stSection );
void SCRT_fn_vFree ( SCRT_tdstSection *_p_stSection );
void SCRT_fn_vBuildSectionTree( SCRT_tdstSection *_p_stSection, SCR_tdst_File_Description *_p_stContent, char *_szName, unsigned short _uwNameLength, BOOL bFile );
void SCRT_fn_vInitAndBuildSectionTree( SCRT_tdstSection *_p_stSection, char *_szSectionContent, char *_szFileName );
BOOL SCRT_fn_bCompareSectionTree( SCRT_tdstSection *_p_stSection1, SCRT_tdstSection *_p_stSection2 );
/*
=======================================================================================
=======================================================================================
CConflictDlg dialog
=======================================================================================
=======================================================================================
*/
#define C_cDisplayText 0
#define C_cDisplayTree 1
class CConflictDlg : public CDialog
{
public:
/*==> section name and user name (name of user that makes the update that generate the conflict )*/
char *m_szSectionName;
char *m_szUserName;
/*==> variable to manage Vss section */
char *m_szVssSection;
CRichEditCtrl m_oVssRichEdit;
SCRT_tdstSection m_stVssTree;
CTreeCtrl *m_p_oVssTree;
/*==> variable to manage Local section */
CRichEditCtrl m_oLocalRichEdit;
char *m_szLocalSection;
SCRT_tdstSection m_stLocalTree;
CTreeCtrl *m_p_oLocalTree;
/*==> variable to manage merged section (not yet used ) */
SCRT_tdstSection m_szMergeSection;
CTreeCtrl *m_p_oMergeTree;
/*==> char format structure (for CRichEditCtrl display ) */
CHARFORMAT m_stCharFormat;
/*==> Section display mode (tree or edit) */
char m_cDisplayMode;
/*==> use to know if some message on tree or Rich Edit are generated by code */
BOOL m_bLocalOp;
/*==> image list and array of icons for Tree Control */
CImageList m_oImageList;
HICON m_a_hIcon[7];
/*==> Id of some dialog control for resizing operation */
char m_cNbBottomButtons;
UINT m_a_uiBottomButton[ 3 ];
// Construction
public:
CConflictDlg(CWnd* pParent = NULL); // standard constructor
~CConflictDlg();
/*==> to change display mode of section : tree or text */
void m_fn_vChangeDisplayMode( char _cMode );
/*==> access function to set section and user names and contents */
void m_fn_vSetSectionName( char *_szSectionName ) { m_szSectionName = _szSectionName; }
void m_fn_vSetUserName( char *_szUserName ) { m_szUserName = _szUserName; }
void m_fn_vSetVssSection( char *_szVssSection ) { m_szVssSection = _szVssSection; }
void m_fn_vSetLocalSection( char *_szLocalSection ) { m_szLocalSection = _szLocalSection; }
/*==> fill a tree control with a section */
void m_fn_vFillTree( CTreeCtrl *_p_oTree, SCRT_tdstSection *_p_stSection, HTREEITEM _hParent, int _iImage, BOOL _bVss );
/*==> low level functions to add text in a RichEdit control */
long m_fn_RE_lAddText( CRichEditCtrl *_p_oRE, char *_szText, char *_szEndText, char _cType );
void m_fn_RE_vRecaleLine( CRichEditCtrl *_p_oRE1, CRichEditCtrl *_p_oRE2 );
/*==> Low level functions to print section part in a Rich Edit control */
char *m_fn_RE_vPrintSectionBeginning( CRichEditCtrl *_p_oRE, SCRT_tdstSection *_p_stSection, char *_szFrom, BOOL _bVss );
char *m_fn_RE_vPrintEntry( CRichEditCtrl *_p_oRE, SCRT_tdstEntry *_p_stEntry, char *_szFrom, BOOL _bVss );
char *m_fn_RE_vPrintSectionEnd( CRichEditCtrl *_p_oRE, SCRT_tdstSection *_p_stSection, char *_szFrom, BOOL _bVss );
/*==> High level function to print an entire section or two parrallel section in one or two rich edit control */
char *m_fn_RE_vPrintSection( CRichEditCtrl *_p_oRE, SCRT_tdstSection *_p_stSection, char *_szFrom, BOOL _bVss );
void m_fn_RE_vPrintTwoSection(SCRT_tdstSection *_p_stVssSection,char **_p_szVssFrom, SCRT_tdstSection *_p_stLclSection,char **_p_szLclFrom );
void m_fn_RE_vFill( void );
// Dialog Data
//{{AFX_DATA(CConflictDlg)
enum { IDD = IDD_DIALOG_CONFLICT };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CConflictDlg)
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CConflictDlg)
virtual BOOL OnInitDialog();
afx_msg void OnDestroy();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing( UINT nSide, LPRECT lpRect );
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
afx_msg void OnSelchangedTreeLocal(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnItemexpandedTreeLocal(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelchangedTreeVss(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnItemexpandedTreeVss(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnVscrollRicheditLocal();
afx_msg void OnVscrollRicheditVss();
afx_msg void OnButtonTreetext();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#endif // !defined(AFX_DLGCONFL_H__6184144B_0199_11D1_8EF9_00609736731A__INCLUDED_)
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/