OSDN Git Service

イニシャルコミット。
[marathon/ShapeFusion.git] / Shapes / CTBrowser.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 // CTBrowser
21 // Widget for displaying a list of ShapesColorTable's. Each color table
22 // is show as a matrix of color samples. The width of each sample will
23 // adjust to fit inside the available widget width, while the sample
24 // height is fixed.
25 //
26
27 #ifndef CTBROWSER_H
28 #define CTBROWSER_H
29
30 #include "wx/wxprec.h"
31 #ifndef WX_PRECOMP
32     #include "wx/wx.h"
33 #endif
34 #include "ShapesElements.h"
35
36 DECLARE_EVENT_TYPE(wxEVT_CTBROWSER, -1)
37
38 class CTBrowser: public wxScrolledWindow {
39 private:
40         vector<ShapesColorTable*>       mColorTables;           // array of pointers to color tables
41         unsigned int                            mColorsPerTable;
42         wxCoord                                         mSampleW, mSampleH,     // size of color samples
43                                                                 mMargin;
44         wxPen                                           mInvisiblePen,
45                                                                 mSelectionPen;
46         int                                                     mSelection;
47
48         void UpdateVirtualSize(void);
49
50 protected:
51         DECLARE_EVENT_TABLE();
52
53 public:
54         CTBrowser(wxWindow *parent);
55         void OnPaint(wxPaintEvent& e);
56         void OnSize(wxSizeEvent& e);
57         void OnMouseDown(wxMouseEvent& e);
58         void OnKeyDown(wxKeyEvent &e);
59
60         void AddColorTable(ShapesColorTable *ctp);
61         void Clear(void);
62
63         int GetSelection(void) const;
64 };
65
66 #endif