OSDN Git Service

イニシャルコミット。
[marathon/ShapeFusion.git] / ShapeFusionMenus.cpp
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 #include "ShapeFusionMenus.h"
20
21 void CreateFileMenu(wxMenuBar *menu_bar)
22 {
23         wxMenu  *file_menu,
24                         *recent_file_menu;
25 /*                      *file_new_menu,
26                         *file_open_menu;*/
27         
28         // We create our two submenus
29 /*      file_new_menu = new wxMenu();
30         file_new_menu->Append(FILE_MENU_NEW_SHAPES, wxT("Shapes file"));
31         file_new_menu->Append(FILE_MENU_NEW_PHYSICS, wxT("Physics file"));
32         file_new_menu->Append(FILE_MENU_NEW_MAP, wxT("Map file"));
33         file_new_menu->Append(FILE_MENU_NEW_SOUNDS, wxT("Sounds file"));
34         file_open_menu = new wxMenu();
35         file_open_menu->Append(FILE_MENU_OPEN_SHAPES, wxT("Shapes file"));
36         file_open_menu->Append(FILE_MENU_OPEN_PHYSICS, wxT("Physics file"));
37         file_open_menu->Append(FILE_MENU_OPEN_MAP, wxT("Map file"));
38         file_open_menu->Append(FILE_MENU_OPEN_SOUNDS, wxT("Sounds file"));*/
39         // We create the recent menu here...
40         recent_file_menu = new wxMenu();
41         
42         // We create the 'main' File menu
43         file_menu = new wxMenu();
44 //      file_menu->Append(FILE_MENU_NEW, wxT("New..."), file_new_menu);
45 //      file_menu->Append(FILE_MENU_OPEN, wxT("Open..."), file_open_menu);
46 //      file_menu->Append(FILE_MENU_NEW, wxT("New...\tCtrl+N"));
47         file_menu->Append(FILE_MENU_OPEN, wxT("Open...\tCtrl+O"));
48         file_menu->Append(FILE_MENU_HISTORY, wxT("Open Recent..."), recent_file_menu);
49         file_menu->Append(FILE_MENU_CLOSE, wxT("&Close\tCtrl+W"));
50         file_menu->AppendSeparator();
51         file_menu->Append(FILE_MENU_SAVE, wxT("&Save\tCtrl+S"));
52         file_menu->Append(FILE_MENU_SAVEAS, wxT("Save as...\tCtrl+Shift+S"));
53         file_menu->Append(FILE_MENU_REVERT, wxT("&Revert"));
54         file_menu->AppendSeparator();
55         file_menu->Append(FILE_MENU_PRINT, _T("&Print..."));
56         file_menu->Append(FILE_MENU_PRINT_SETUP, _T("Print &Setup..."));
57         file_menu->Append(FILE_MENU_PREVIEW, _T("Print Pre&view"));
58         file_menu->AppendSeparator();
59         file_menu->Append(FILE_MENU_QUIT, wxT("&Quit\tAlt+F4"));
60         
61         file_menu->Enable(FILE_MENU_SAVE, false);
62         file_menu->Enable(FILE_MENU_SAVEAS, false);
63         file_menu->Enable(FILE_MENU_CLOSE, false);
64         
65         // We add the File menu to the passed menubar
66         menu_bar->Append(file_menu, wxT("&File"));
67 }
68
69 void CreateEditMenu(wxMenuBar *menu_bar)
70 {
71         wxMenu  *edit_menu;
72         
73         edit_menu = new wxMenu();
74         edit_menu->Append(EDIT_MENU_UNDO, wxT("&Undo\tCtrl+Z"));
75         edit_menu->Append(EDIT_MENU_REDO, wxT("&Redo\tCtrl+Shift+Z"));
76     edit_menu->AppendSeparator();
77         edit_menu->Append(EDIT_MENU_CUT, wxT("&Cut\tCtrl+X"));
78         edit_menu->Append(EDIT_MENU_COPY, wxT("&Copy\tCtrl+C"));
79         edit_menu->Append(EDIT_MENU_PASTE, wxT("&Paste\tCtrl+V"));
80     edit_menu->AppendSeparator();
81         edit_menu->Append(EDIT_MENU_DELETE, wxT("&Delete"));
82         
83         edit_menu->Enable(EDIT_MENU_CUT, false);
84         edit_menu->Enable(EDIT_MENU_COPY, false);
85         edit_menu->Enable(EDIT_MENU_PASTE, false);
86         edit_menu->Enable(EDIT_MENU_DELETE, false);
87         
88         // We add the Edit menu to the passed menubar
89         menu_bar->Append(edit_menu, wxT("&Edit"));
90 }
91
92 void CreateHelpMenu(wxMenuBar *menu_bar)
93 {
94         wxMenu *help_menu;
95         
96         help_menu = new wxMenu();
97         help_menu->Append(ABOUT_MENU, wxT("About ShapeFusion"));
98         help_menu->Append(HELP_MENU, wxT("ShapeFusion Help"));
99
100         menu_bar->Append(help_menu, wxT("&Help"));
101 }
102
103 void CreateViewMenu(wxMenuBar *menu_bar)
104 {
105         // view menu
106         wxMenu  *view_menu,
107                         *view_colortable_submenu,
108                         *view_tnsize_submenu;
109         
110         // We create our two submenus
111         view_colortable_submenu = new wxMenu();
112         for (unsigned int i = 0; i < 8; i++) {
113                 view_colortable_submenu->AppendRadioItem(VIEW_MENU_COLORTABLE_0 + i, wxString::Format(wxT("%d"), i));
114                 view_colortable_submenu->Enable(VIEW_MENU_COLORTABLE_0 + i, false);
115         }
116         
117         view_tnsize_submenu = new wxMenu();
118         view_tnsize_submenu->AppendRadioItem(VIEW_MENU_TNSIZE_SMALL, wxT("Small"));
119         view_tnsize_submenu->AppendRadioItem(VIEW_MENU_TNSIZE_MEDIUM, wxT("Medium"));
120         view_tnsize_submenu->AppendRadioItem(VIEW_MENU_TNSIZE_LARGE, wxT("Large"));
121         view_tnsize_submenu->AppendRadioItem(VIEW_MENU_TNSIZE_AUTO, wxT("Best fit"));
122         for (unsigned int i = VIEW_MENU_TNSIZE_SMALL; i <= VIEW_MENU_TNSIZE_AUTO; i++)
123                 view_tnsize_submenu->Check(i, i == VIEW_MENU_TNSIZE_MEDIUM);
124         
125         // Now the main View menu
126         view_menu = new wxMenu();
127         view_menu->Append(VIEW_MENU_COLOR_TABLE, wxT("Use color table"), view_colortable_submenu);
128         view_menu->Append(VIEW_MENU_THUMBNAIL_SIZE, wxT("Thumbnail size"), view_tnsize_submenu);
129         view_menu->AppendCheckItem(VIEW_MENU_TRANSPARENCY, wxT("Show transparent pixels"));
130         view_menu->AppendCheckItem(VIEW_MENU_CENTERORIGIN, wxT("Fix frame origins"));
131
132         // We add that to the passed menubar
133         menu_bar->Append(view_menu, wxT("&View"));
134 }
135
136 void CreateShapesMenu(wxMenuBar *menu_bar)
137 {
138         wxMenu *shapes_menu;
139         
140         // We create and build the Shapes menu
141         shapes_menu = new wxMenu();
142         shapes_menu->Append(SHAPES_MENU_ADDCOLORTABLE, wxT("New color table..."));
143         shapes_menu->Append(SHAPES_MENU_SAVECOLORTABLE, wxT("Export color table to GIMP..."));
144         shapes_menu->Append(SHAPES_MENU_SAVECOLORTABLETOPS, wxT("Export color table to PhotoShop..."));
145         shapes_menu->AppendSeparator();
146         shapes_menu->Append(SHAPES_MENU_ADDBITMAP, wxT("New bitmap..."));
147         shapes_menu->Append(SHAPES_MENU_EXPORTBITMAP, wxT("Export bitmap..."));
148         shapes_menu->Append(SHAPES_MENU_EXPORTMASK, wxT("Export bitmap mask..."));
149         shapes_menu->Append(SHAPES_MENU_EXPORTBITMAPS, wxT("Export all bitmaps..."));
150         shapes_menu->Append(SHAPES_MENU_EXPORTMASKS, wxT("Export all bitmap masks..."));
151         shapes_menu->AppendSeparator();
152         shapes_menu->Append(SHAPES_MENU_ADDFRAME, wxT("New frame"));
153         shapes_menu->AppendSeparator();
154         shapes_menu->Append(SHAPES_MENU_ADDSEQUENCE, wxT("New sequence"));
155         shapes_menu->AppendSeparator();
156         shapes_menu->Append(SHAPES_MENU_IMPORTPATCH, wxT("Apply Shapes Patch..."));
157         shapes_menu->Append(SHAPES_MENU_GENERATEPATCH, wxT("Export Shapes Patch..."));
158         
159         // Let's disable all these items...
160         shapes_menu->Enable(SHAPES_MENU_ADDCOLORTABLE, false);
161         shapes_menu->Enable(SHAPES_MENU_SAVECOLORTABLE, false);
162         shapes_menu->Enable(SHAPES_MENU_SAVECOLORTABLETOPS, false);
163         shapes_menu->Enable(SHAPES_MENU_ADDBITMAP, false);
164         shapes_menu->Enable(SHAPES_MENU_EXPORTBITMAP, false);
165         shapes_menu->Enable(SHAPES_MENU_EXPORTMASK, false);
166         shapes_menu->Enable(SHAPES_MENU_EXPORTBITMAPS, false);
167         shapes_menu->Enable(SHAPES_MENU_EXPORTMASKS, false);
168         shapes_menu->Enable(SHAPES_MENU_ADDFRAME, false);
169         shapes_menu->Enable(SHAPES_MENU_ADDSEQUENCE, false);
170         
171         // .. and add the whole to the menuBar
172         menu_bar->Append(shapes_menu, wxT("&Shapes"));
173 }
174
175 void CreateSoundsMenu(wxMenuBar *menu_bar)
176 {
177         wxMenu  *sounds_menu;
178         
179         // We create and build the Sounds menu
180         sounds_menu = new wxMenu();
181         sounds_menu->Append(SOUNDS_MENU_ADDCLASS, wxT("Add new sound class"));
182         sounds_menu->AppendSeparator();
183         sounds_menu->Append(SOUNDS_MENU_EXPORT, wxT("Export selected sound"));
184         sounds_menu->Append(SOUNDS_MENU_IMPORT, wxT("Import sound"));
185         
186         // Let's disable them ...
187         sounds_menu->Enable(SOUNDS_MENU_ADDCLASS, false);
188         sounds_menu->Enable(SOUNDS_MENU_EXPORT, false);
189         sounds_menu->Enable(SOUNDS_MENU_IMPORT, false);
190         
191         // ... and add the whole to the menu_bar
192         menu_bar->Append(sounds_menu, wxT("S&ounds"));
193 }
194