]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - tools/src/tools/configtool/standalone/wxwin/mltwin.h
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / tools / src / tools / configtool / standalone / wxwin / mltwin.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 // mltwin.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 ecMemoryLayoutWindow
36 // Requires:
37 // Provides:
38 // See also:
39 // Known bugs:
40 // Usage:
41 //
42 //####DESCRIPTIONEND####
43 //
44 //===========================================================================
45
46 #ifndef _ECOS_MLTWIN_H_
47 #define _ECOS_MLTWIN_H_
48
49 #ifdef __GNUG__
50 #pragma interface "mltwin.h"
51 #endif
52
53 #if ecUSE_MLT
54
55 #include "memmap.h"
56
57 typedef struct tagREGIONRECT
58 {
59     std::list <mem_region>::iterator Region;
60     wxRect Rect;
61 }
62 REGIONRECT;
63
64 typedef struct tagSECTIONRECT
65 {
66     std::list <mem_section_view>::iterator SectionView;
67     wxRect Rect;
68 }
69 SECTIONRECT;
70
71 #endif
72
73 class ecMemoryLayoutWindow : public wxScrolledWindow
74 {
75 public:
76 // Ctor(s)
77     ecMemoryLayoutWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
78     ~ecMemoryLayoutWindow();
79
80 //// Event handlers
81
82     //void OnPaint(wxPaintEvent& event);
83     void OnMouseEvent(wxMouseEvent& event);
84     void OnPaint(wxPaintEvent& event);
85     void OnSize(wxSizeEvent& event);
86     void OnProperties(wxCommandEvent& event);
87
88 //// Operations
89     void RefreshMLT();
90
91 #if ecUSE_MLT
92         void DrawRegion (wxDC& dc, int uRegion, int uUnitCount, int uPixelsPerUnit, std::list <mem_region>::iterator region);
93     SECTIONRECT * SectionHitTest (wxPoint pntTest);
94     REGIONRECT * RegionHitTest (wxPoint pntTest);
95 #endif
96
97         void CalcUnitCountMax ();
98
99
100 //// Accessors
101     wxMenu* GetPropertiesMenu() const { return m_propertiesMenu; }
102
103 protected:
104     wxMenu*     m_propertiesMenu;
105
106     wxList      m_listSectionRect;
107     wxList      m_listRegionRect;
108
109 #if ecUSE_MLT
110     std::list <mem_section_view>::iterator m_sviSelectedSectionView;
111     std::list <mem_region>::iterator m_riSelectedRegion;
112 #endif
113
114     int         m_uViewWidth, m_uClientWidth;
115     int         m_uUnitCountMax;
116         wxRect      m_rectSelectedItem;
117
118 private:
119     DECLARE_EVENT_TABLE()
120     DECLARE_CLASS(ecMemoryLayoutWindow)
121 };
122
123
124 #endif
125         // _ECOS_MLTWIN_H_