Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/chris/gui/orxonox_gui_exec.c @ 1977

Last change on this file since 1977 was 1864, checked in by bensch, 21 years ago

orxonox/trunk: merged gui to trunk

File size: 5.1 KB
Line 
1#include "orxonox_gui_exec.h"
2GtkWidget *exec_flags_label;
3struct settings *exec_orxonox_settings;
4
5gint orxonox_gui_quit ( GtkWidget *widget, GdkEvent *event, gpointer data)
6{
7  if (exec_orxonox_settings->exec_save_settings)
8    orxonox_gui_file_save("~/.orxonox.conf", exec_orxonox_settings);
9  gtk_main_quit();
10  return FALSE;
11}
12
13
14void exec_check_button_change(GtkWidget *widget, int* data)
15{
16  *data = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (widget)); 
17  orxonox_flags_update ();
18  if (verbose >=1)
19    printf ("%s changed to %i.\n", gtk_button_get_label(GTK_BUTTON(widget)), *data);
20  return;
21}
22
23void exec_verbose_mode_change(GtkWidget *widget, gpointer data)
24{
25  verbose = GPOINTER_TO_INT(data);
26  orxonox_flags_update ();
27  if (verbose >= 1)
28    printf ("Verbose-mode changed to %i.\n", verbose);
29  return;
30}
31
32
33GtkWidget *orxonox_gui_exec_frame (struct settings *orxonox_settings)
34{
35  GtkWidget *frame;
36  GtkWidget *save_settings_button;
37  GtkWidget *show_menu_button;
38  GtkWidget *start_button;
39  GtkWidget *quit_button;
40  GtkWidget *flags_frame;
41  GtkWidget *setting_box;
42  GtkWidget *verbose_button;
43
44
45  frame = gtk_frame_new ( "Execute-Tags:");
46  gtk_container_set_border_width (GTK_CONTAINER (frame), 5);
47  {
48    GtkWidget *orxonox_gui_exec_vbox;
49    orxonox_gui_exec_vbox = gtk_vbox_new (FALSE, 5);
50    {
51
52        start_button = gtk_button_new_with_label ("Start");
53        gtk_box_pack_start(GTK_BOX (orxonox_gui_exec_vbox), start_button, TRUE, TRUE, 5);
54        setting_box = gtk_hbox_new(FALSE, 5);
55        {
56          save_settings_button = gtk_check_button_new_with_label ("Save Settings");
57          gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (save_settings_button), orxonox_settings->exec_save_settings);
58          g_signal_connect(GTK_TOGGLE_BUTTON(save_settings_button), "clicked", G_CALLBACK(exec_check_button_change), &(orxonox_settings->exec_save_settings));
59          gtk_box_pack_start(GTK_BOX (setting_box), save_settings_button, TRUE, TRUE, 0);
60         
61          {
62            GtkWidget *opt;
63            GtkWidget *menu;
64            GtkWidget *item;
65
66            opt = gtk_option_menu_new ();
67            menu = gtk_menu_new ();
68
69            item = gtk_menu_item_new_with_label ("no verbose");     
70            g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (exec_verbose_mode_change), GINT_TO_POINTER(0));
71            gtk_menu_shell_append(GTK_MENU_SHELL (menu), item);
72
73            item = gtk_menu_item_new_with_label ("verbose");
74            g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (exec_verbose_mode_change), GINT_TO_POINTER(1));
75            gtk_menu_shell_append(GTK_MENU_SHELL (menu), item);
76
77            item = gtk_menu_item_new_with_label ("debug");
78            g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (exec_verbose_mode_change), GINT_TO_POINTER(2));
79            gtk_menu_shell_append(GTK_MENU_SHELL (menu), item);
80
81            gtk_option_menu_set_menu (GTK_OPTION_MENU (opt), menu);
82            gtk_option_menu_set_history (GTK_OPTION_MENU (opt), verbose);
83            gtk_box_pack_start (GTK_BOX (setting_box), opt, TRUE, TRUE, 0);
84
85          }
86        }
87        gtk_box_pack_start(GTK_BOX(orxonox_gui_exec_vbox), setting_box, TRUE, TRUE, 0);
88        show_menu_button = gtk_check_button_new_with_label ("Always show this Menu");
89        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (show_menu_button), orxonox_settings->exec_show_menu);
90        g_signal_connect(GTK_TOGGLE_BUTTON(show_menu_button), "clicked", G_CALLBACK(exec_check_button_change), &(orxonox_settings->exec_show_menu));
91        gtk_box_pack_start(GTK_BOX (orxonox_gui_exec_vbox), show_menu_button, TRUE, TRUE, 0);
92       
93        quit_button = gtk_button_new_with_label ("quit");
94        g_signal_connect(GTK_BUTTON(quit_button), "clicked", G_CALLBACK(orxonox_gui_quit), NULL);
95        gtk_box_pack_start(GTK_BOX (orxonox_gui_exec_vbox), quit_button, FALSE, FALSE, 5);
96
97
98        flags_frame = gtk_frame_new("Orxonox's starting Flags");
99        {
100          exec_flags_label = gtk_label_new("test");
101          exec_orxonox_settings = orxonox_settings;
102          orxonox_flags_update();
103          gtk_container_add (GTK_CONTAINER(flags_frame), exec_flags_label);
104
105        }
106        gtk_box_pack_start(GTK_BOX (orxonox_gui_exec_vbox), flags_frame, FALSE, FALSE, 5);
107    }
108    gtk_container_add(GTK_CONTAINER(frame), orxonox_gui_exec_vbox);
109  }
110
111  return frame;
112
113}
114
115
116char * orxonox_flags_text (struct settings *orxonox_settings, char *exec_flags_text)
117{
118  char temp [50];
119  bzero(exec_flags_text, 1);
120  strcat(exec_flags_text, "orxonox ");
121
122  if(!orxonox_settings->video_fullscreen)
123    strcat(exec_flags_text, "--windowed ");
124  if(orxonox_settings->video_wireframe)
125    strcat(exec_flags_text, "--wireframe ");
126 
127  if(!orxonox_settings->audio_enable_sound)
128    strcat(exec_flags_text, "--disable_audio ");
129  if(orxonox_settings->audio_music_volume != 80)
130    {
131      strcat(exec_flags_text, "--music_volume=");
132      sprintf(temp, "%i ", (int) orxonox_settings->audio_music_volume);
133      strcat(exec_flags_text, temp);
134    }
135  if(orxonox_settings->audio_effects_volume != 80)
136    {
137      strcat(exec_flags_text, "--effects_volume= ");
138      sprintf(temp, "%i ", (int) orxonox_settings->audio_effects_volume);
139      strcat(exec_flags_text, temp);
140    }
141  return (exec_flags_text);
142}
143
144void orxonox_flags_update (void)
145{
146  char exec_flags_text[1024];
147  gtk_label_set_text (GTK_LABEL(exec_flags_label), orxonox_flags_text (exec_orxonox_settings, exec_flags_text));
148  return;
149}
Note: See TracBrowser for help on using the repository browser.