]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - tools/src/tools/configtool/standalone/wxwin/conflictsdlg.h
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / tools / src / tools / configtool / standalone / wxwin / conflictsdlg.h
1 //####COPYRIGHTBEGIN####
2 //
3 // ----------------------------------------------------------------------------
4 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
5 //
6 // This program is part of the eCos host tools.
7 //
8 // This program is free software; you can redistribute it and/or modify it
9 // under the terms of the GNU General Public License as published by the Free
10 // Software Foundation; either version 2 of the License, or (at your option)
11 // any later version.
12 //
13 // This program is distributed in the hope that it will be useful, but WITHOUT
14 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
16 // more details.
17 //
18 // You should have received a copy of the GNU General Public License along with
19 // this program; if not, write to the Free Software Foundation, Inc.,
20 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21 //
22 // ----------------------------------------------------------------------------
23 //
24 //####COPYRIGHTEND####
25 // conflictsdlg.h :
26 //
27 //===========================================================================
28 //#####DESCRIPTIONBEGIN####
29 //
30 // Author(s):   julians
31 // Contact(s):  julians
32 // Date:        2000/09/06
33 // Version:     $Id$
34 // Purpose:
35 // Description: Header file for ecResolveConflictsDialog
36 // Requires:
37 // Provides:
38 // See also:
39 // Known bugs:
40 // Usage:
41 //
42 //####DESCRIPTIONEND####
43 //
44 //===========================================================================
45
46 #ifndef _ECOS_CONFLICTSDLG_H_
47 #define _ECOS_CONFLICTSDLG_H_
48
49 #ifdef __GNUG__
50 #pragma interface "conflictsdlg.h"
51 #endif
52
53 #include "wx/wx.h"
54 #include "wx/listctrl.h"
55
56 #include "ecutils.h"
57
58 // Forward declarations
59 class ecConflictListCtrl;
60 class ecSolutionListCtrl;
61
62 class ecResolveConflictsDialog : public ecDialog
63 {
64 public:
65 // Ctor(s)
66         ecResolveConflictsDialog(wxWindow* parent, std::list<CdlConflict> conflicts, CdlTransaction=NULL, wxList *parConflictsOfInterest=NULL);
67     ~ecResolveConflictsDialog();
68
69 //// Event handlers
70
71     void OnContinue(wxCommandEvent& event);
72     void OnAll(wxCommandEvent& event);
73     void OnNone(wxCommandEvent& event);
74     void OnInitDialog(wxInitDialogEvent& event);
75     void OnUpdateAll(wxUpdateUIEvent& event);
76     void OnUpdateNone(wxUpdateUIEvent& event);
77     void OnConflictSelected(wxListEvent& event) ;
78     void OnConflictDeselected(wxListEvent& event) ;
79
80 //// Operations
81     void CreateControls(wxWindow* parent);
82
83 protected:
84     struct SolutionInfo {
85         int nCount;
86         enum {CHECKED=-1,UNCHECKED=-2};
87         int arItem[1]; // real size==nCount.
88         // Each element of nItem==item index (if selected) or accept bool (if not)
89     };
90
91     void SetButtons();
92     void AddConflictSolutions (CdlConflict conflict);
93     void RemoveConflictSolutions (CdlConflict conflict);
94     void OnLocate();
95     SolutionInfo & Info (const CdlConflict conflict);
96     void SetAll (bool bOnOff);
97
98 //// Member variables
99 protected:
100     //UINT m_idTimer;
101     wxHashTable             m_Map; // maps conflicts to bool array representing fixes
102     wxArrayString           m_arValues;
103     const std::list<CdlConflict> m_conflicts;
104     CdlTransactionBody*     m_Transaction;
105     wxList*                 m_parConflictsOfInterest;
106     int                     m_nContextItem;
107     int                     m_nContextRow;
108     
109
110     ecConflictListCtrl* m_conflictsCtrl;
111     ecSolutionListCtrl* m_solutionsCtrl;
112
113 private:
114     DECLARE_EVENT_TABLE()
115 };
116
117 #define ecID_RESOLVE_CONFLICTS_DIALOG   2031
118 #define ecID_CONFLICTS_CONTINUE     3000
119 #define ecID_CONFLICTS_CONFLICTS    3005
120 #define ecID_CONFLICTS_NONE         3001
121 #define ecID_CONFLICTS_ALL          3002
122 #define ecID_CONFLICTS_SOLUTIONS    3004
123 #define ecID_CONFLICTS_MSG          3005
124
125
126 #endif
127         // _ECOS_CONFLICTSDLG_H_