]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - tools/src/tools/configtool/standalone/wxwin/propertywin.h
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / tools / src / tools / configtool / standalone / wxwin / propertywin.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 // propertywin.h :
26 //
27 //===========================================================================
28 //#####DESCRIPTIONBEGIN####
29 //
30 // Author(s):   julians
31 // Contact(s):  julians
32 // Date:        2000/09/04
33 // Version:     $Id$
34 // Purpose:
35 // Description: Header file for ecPropertyListCtrl
36 // Requires:
37 // Provides:
38 // See also:
39 // Known bugs:
40 // Usage:
41 //
42 //####DESCRIPTIONEND####
43 //
44 //===========================================================================
45
46 #ifndef _ECOS_PROPERTYWIN_H_
47 #define _ECOS_PROPERTYWIN_H_
48
49 #ifdef __GNUG__
50 #pragma interface "propertywin.h"
51 #endif
52
53 #include "wx/listctrl.h"
54
55 class ecConfigItem;
56
57 class ecPropertyListCtrl : public wxListCtrl
58 {
59 public:
60     enum ecFieldType {ecType, ecValue, ecDefaultValue, ecMacro, ecFile, ecURL, ecEnabled, ecMAXFIELDTYPE};
61
62 // Ctor(s)
63     ecPropertyListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
64
65 //// Event handlers
66
67     void OnRightClick(wxMouseEvent& event);
68     void OnDoubleClick(wxMouseEvent& event);
69
70 //// Accessors
71     int SetItem (ecFieldType f, const wxString& value);
72     int SetItem (const wxString& item, const wxString& value,int nInsertAs,int nRepeat=1);
73     int SetProperty (const wxString& value, CdlProperty prop);
74         static bool PropertyInConflictsList (CdlProperty property, const std::list<CdlConflict> & conflicts);
75
76 //// Operations
77
78     void Fill(ecConfigItem *pti);
79     void AddColumns();
80     void RefreshValue();
81
82 protected:
83 private:
84     DECLARE_EVENT_TABLE()
85     DECLARE_CLASS(ecPropertyListCtrl)
86
87     double m_fWidth;
88     enum {NCOLS=2};
89     double m_f[NCOLS]; // relative proportions of columns
90     int m_nLastCol;
91     int m_nOnSizeRecursionCount;
92     int m_nMaxValueWidth;
93     int m_nFirstProperty;
94     ecConfigItem *m_pti;
95
96     static const std::string ecPropertyListCtrl::visible_properties [];
97         static const wxChar* sm_fieldTypeImage[ecMAXFIELDTYPE];
98 };
99
100
101 #endif
102         // _ECOS_PROPERTYWIN_H_