OSDN Git Service

イニシャルコミット。
[marathon/ShapeFusion.git] / Shapes / CTView.h
1 /*
2  * This file is part of ShapeFusion (Copyright 2000 Tito Dal Canton)
3  *
4  * ShapeFusion is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * ShapeFusion is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with ShapeFusion; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17 */
18
19 //
20 // CTView
21 // A widget for displaying a ShapesColorTable. We don't derive
22 // wxScrolledWindow because IMO the purpose of the widget doesn't
23 // require scrolling.
24 //
25
26 #ifndef CTVIEW_H
27 #define CTVIEW_H
28
29 #include "wx/wxprec.h"
30 #ifndef WX_PRECOMP
31     #include "wx/wx.h"
32 #endif
33 #include "ShapesElements.h"
34
35 DECLARE_EVENT_TYPE(wxEVT_CTVIEW_SELECTION, -1)
36 DECLARE_EVENT_TYPE(wxEVT_CTVIEW_COLOR, -1)
37
38 class CTView: public wxPanel {
39 private:
40         ShapesColorTable        *mColorTable;           // link to the color table
41         wxPen                           mInvisiblePen,
42                                                 mSelectionPen;
43         unsigned int            mSwatchSize,
44                                                 mMargin;
45         wxBitmap                        mLightBulbIcon;
46         vector<bool>            mSelectionMask;
47
48 protected:
49         DECLARE_EVENT_TABLE();
50         void CalculateSwatchSize(void);
51
52 public:
53         CTView(wxWindow *parent);
54         // event handlers
55         void OnPaint(wxPaintEvent &e);
56         void OnSize(wxSizeEvent &e);
57         void OnMouseDown(wxMouseEvent& e);
58         void OnMouseDoubleClick(wxMouseEvent& e);
59         // access
60         void SetColorTable(ShapesColorTable *ct);
61         vector<bool> GetSelection(void) const;
62 };
63
64 #endif