1 /*
2  * menu_callback.c  menu callback function
3  *
4  * Copyright (C) 2000- Masaki Chikama (Wren) <masaki-c@is.aist-nara.ac.jp>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20 */
21 /* $Id: menu_callback.c,v 1.11 2003/04/25 17:23:55 chikama Exp $ */
22 
23 #ifdef HAVE_CONFIG_H
24 #  include <config.h>
25 #endif
26 
27 #include "portab.h"
28 #include "menu.h"
29 #include "menu_callback.h"
30 #include "menu_gui.h"
31 #include "nact.h"
32 #include "imput.h"
33 #include "music.h"
34 #include "s39init.h"
35 
36 boolean menu_ok_exit;   /* exit window �� OK �������줿���ɤ��� */
37 boolean menu_ok_input;  /* ʸ����/�������� window �� OK ��... */
38 
39 GtkWidget *menu_item_pcm;
40 GtkWidget *menu_item_cdrom;
41 GtkWidget *menu_item_midi;
42 GtkWidget *menu_item_msgskip_on;
43 GtkWidget *menu_item_msgskip_off;
44 
45 GtkWidget *menu_label_inputstring_title;
46 GtkWidget *menu_label_inputstring_maxchar;
47 GtkWidget *menu_label_inputnum_max;
48 GtkWidget *menu_label_inputnum_min;
49 GtkWidget *menu_label_inputnum_def;
50 GtkWidget *menu_label_msgbox;
51 GtkWidget *menu_spinbutton;
52 GtkWidget *menu_textentry;
53 GtkWidget *menu_textentry2;
54 gchar     *menu_textentry_string;
55 
56 GtkWidget *menu_window_popup; /* popup menu */
57 GtkWidget *menu_window_exit;  /* exit window */
58 GtkWidget *menu_window_is;    /* input string window */
59 GtkWidget *menu_window_is2;   /* input string window no 2*/
60 GtkWidget *menu_window_in;    /* input number window */
61 GtkWidget *menu_window_about; /* about xsystem35 window */
62 GtkWidget *menu_window_msgbox;/* message box window */
63 
64 void
on_window3_destroy(GtkObject * object,gpointer user_data)65 on_window3_destroy                     (GtkObject       *object,
66                                         gpointer         user_data)
67 {
68 
69 }
70 
71 /* message skip on */
72 void
on_item2_activate(GtkMenuItem * menuitem,gpointer user_data)73 on_item2_activate                      (GtkMenuItem     *menuitem,
74                                         gpointer         user_data)
75 {
76 	set_skipMode(TRUE);
77 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
78 }
79 
80 /* message skip off */
81 void
on_item3_activate(GtkMenuItem * menuitem,gpointer user_data)82 on_item3_activate                      (GtkMenuItem     *menuitem,
83                                         gpointer         user_data)
84 {
85 	set_skipMode(FALSE);
86 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
87 }
88 
89 /* mouse auto move on */
90 void
on_item5_activate(GtkMenuItem * menuitem,gpointer user_data)91 on_item5_activate                      (GtkMenuItem     *menuitem,
92                                         gpointer         user_data)
93 {
94 	nact->sys_mouse_movesw = 2;
95 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
96 }
97 
98 
99 /* mouse auto move off */
100 void
on_item6_activate(GtkMenuItem * menuitem,gpointer user_data)101 on_item6_activate                      (GtkMenuItem     *menuitem,
102                                         gpointer         user_data)
103 {
104 	nact->sys_mouse_movesw = 0;
105 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
106 }
107 
108 
109 void
on_item7_activate(GtkMenuItem * menuitem,gpointer user_data)110 on_item7_activate                      (GtkMenuItem     *menuitem,
111                                         gpointer         user_data)
112 {
113 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
114 	s39ini_winopen();
115 }
116 
117 /* PCM off */
118 void
on_item9_activate(GtkMenuItem * menuitem,gpointer user_data)119 on_item9_activate                      (GtkMenuItem     *menuitem,
120                                         gpointer         user_data)
121 {
122 	// mus_pcm_set_state(FALSE);
123 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
124 }
125 
126 
127 /* CD on */
128 void
on_item11_activate(GtkMenuItem * menuitem,gpointer user_data)129 on_item11_activate                     (GtkMenuItem     *menuitem,
130                                         gpointer         user_data)
131 {
132 	// mus_cdrom_set_state(TRUE);
133 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
134 }
135 
136 
137 /* CD off */
138 void
on_item12_activate(GtkMenuItem * menuitem,gpointer user_data)139 on_item12_activate                     (GtkMenuItem     *menuitem,
140                                         gpointer         user_data)
141 {
142 	// mus_cdrom_set_state(FALSE);
143 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
144 }
145 
146 
147 /* MIDI on */
148 void
on_item14_activate(GtkMenuItem * menuitem,gpointer user_data)149 on_item14_activate                     (GtkMenuItem     *menuitem,
150                                         gpointer         user_data)
151 {
152 	// mus_midi_set_state(TRUE);
153 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
154 }
155 
156 /* MIDI off */
157 void
on_item15_activate(GtkMenuItem * menuitem,gpointer user_data)158 on_item15_activate                     (GtkMenuItem     *menuitem,
159                                         gpointer         user_data)
160 {
161 	// mus_midi_set_state(FALSE);
162 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
163 }
164 
165 /* PopupMenu about */
166 void
on_item16_activate(GtkMenuItem * menuitem,gpointer user_data)167 on_item16_activate                     (GtkMenuItem     *menuitem,
168                                         gpointer         user_data)
169 {
170 	nact->popupmenu_opened = TRUE;
171 	gtk_widget_show(menu_window_about);
172 }
173 
174 /* PopupMenu exit */
175 void
on_item17_activate(GtkMenuItem * menuitem,gpointer user_data)176 on_item17_activate                     (GtkMenuItem     *menuitem,
177                                         gpointer         user_data)
178 {
179 	nact->popupmenu_opened = TRUE;
180 	gtk_widget_show(menu_window_exit);
181 }
182 
183 /* input number window OK button */
184 void
on_button1_clicked(GtkButton * button,gpointer user_data)185 on_button1_clicked                     (GtkButton       *button,
186                                         gpointer         user_data)
187 {
188 	menu_ok_input = TRUE;
189 	gtk_widget_hide(menu_window_in);
190 	gtk_main_quit();
191 }
192 
193 
194 /* input number window cancel button */
195 void
on_button2_clicked(GtkButton * button,gpointer user_data)196 on_button2_clicked                     (GtkButton       *button,
197                                         gpointer         user_data)
198 {
199 	menu_ok_input = FALSE;
200 	gtk_widget_hide(menu_window_in);
201 	gtk_main_quit();
202 }
203 
204 
205 /* input string window cancel button */
206 void
on_button4_clicked(GtkButton * button,gpointer user_data)207 on_button4_clicked                     (GtkButton       *button,
208                                         gpointer         user_data)
209 {
210 	menu_ok_input = FALSE;
211 	gtk_widget_hide(menu_window_is);
212 	gtk_main_quit();
213 }
214 
215 
216 /* input string window OK button */
217 void
on_button3_clicked(GtkButton * button,gpointer user_data)218 on_button3_clicked                     (GtkButton       *button,
219                                         gpointer         user_data)
220 {
221 	menu_textentry_string = gtk_entry_get_text(GTK_ENTRY(menu_textentry));
222 	menu_ok_input = TRUE;
223 	gtk_widget_hide(menu_window_is);
224 	gtk_main_quit();
225 }
226 
227 /* Exit Yes */
228 void
on_button5_clicked(GtkButton * button,gpointer user_data)229 on_button5_clicked                     (GtkButton       *button,
230                                         gpointer         user_data)
231 {
232 	menu_ok_exit = TRUE;
233 	nact->is_quit = TRUE;
234 	nact->popupmenu_opened = FALSE;
235 }
236 
237 
238 /* Exit No */
239 void
on_button6_clicked(GtkButton * button,gpointer user_data)240 on_button6_clicked                     (GtkButton       *button,
241                                         gpointer         user_data)
242 {
243 	nact->popupmenu_opened = FALSE;
244 	menu_ok_exit = FALSE;
245 	gtk_widget_hide(menu_window_exit);
246 }
247 
248 /* About OK */
249 void
on_button11_clicked(GtkButton * button,gpointer user_data)250 on_button11_clicked                     (GtkButton       *button,
251                                         gpointer         user_data)
252 {
253 	gtk_widget_hide(menu_window_about);
254 	nact->popupmenu_opened = FALSE;
255 }
256 
257 /* menu canceld */
258 void
on_menu1_deactivate(GtkMenuShell * menushell,gpointer user_data)259 on_menu1_deactivate                    (GtkMenuShell    *menushell,
260                                         gpointer         user_data)
261 {
262 	gtk_menu_popdown(GTK_MENU(menu_window_popup));
263 	nact->popupmenu_opened = FALSE;
264 }
265 
266 /* get enter in text entry */
267 void
on_entry1_activate(GtkEditable * editable,gpointer user_data)268 on_entry1_activate                     (GtkEditable     *editable,
269                                         gpointer         user_data)
270 {
271 	menu_textentry_string = gtk_entry_get_text(GTK_ENTRY(editable));
272 	menu_ok_input = TRUE;
273 	gtk_widget_hide(menu_window_is);
274 	gtk_main_quit();
275 }
276 
277 /* get enter in spin button */
278 void
on_spinbutton1_activate(GtkEditable * editable,gpointer user_data)279 on_spinbutton1_activate                (GtkEditable     *editable,
280                                         gpointer         user_data)
281 {
282 	GtkAdjustment *adj;
283 	adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(menu_spinbutton));
284 	if (adj->value >= adj->lower && adj->value <= adj->upper) {
285 		menu_ok_input = TRUE;
286 		gtk_widget_hide(menu_window_in);
287 		gtk_main_quit();
288 	}
289 }
290 
291 /* get enter in text entry */
292 void
on_entry2_activate(GtkEditable * editable,gpointer user_data)293 on_entry2_activate                     (GtkEditable     *editable,
294                                         gpointer         user_data)
295 {
296 	menu_textentry_string = gtk_entry_get_text(GTK_ENTRY(editable));
297 	menu_ok_input = TRUE;
298 	gtk_widget_hide(menu_window_is2);
299 	gtk_main_quit();
300 }
301 
302 void
on_button16_clicked(GtkButton * button,gpointer user_data)303 on_button16_clicked                    (GtkButton       *button,
304                                         gpointer         user_data)
305 {
306 	gtk_widget_hide(menu_window_msgbox);
307 	gtk_main_quit();
308 }
309