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