| 1 | #include "orxonox_gui_flags.h" | 
|---|
| 2 | #include <iostream.h> | 
|---|
| 3 |  | 
|---|
| 4 |  | 
|---|
| 5 | OrxonoxGuiFlags::OrxonoxGuiFlags (Widget* widget) | 
|---|
| 6 | { | 
|---|
| 7 |   flagText = (char*) malloc (1024); | 
|---|
| 8 |  | 
|---|
| 9 |   flagsFrame = new Frame ("Orxonox-Startup-Flags:"); | 
|---|
| 10 |   flagsBox = new Box ('v'); | 
|---|
| 11 |  | 
|---|
| 12 |   flagsLabel = new Label (); | 
|---|
| 13 |   flagsBox->fill (flagsLabel); | 
|---|
| 14 |   shortFlags = new CheckButton ("shortFlags"); | 
|---|
| 15 |   flagsBox->fill (shortFlags); | 
|---|
| 16 |  | 
|---|
| 17 |   flagsFrame->fill (flagsBox); | 
|---|
| 18 | } | 
|---|
| 19 |  | 
|---|
| 20 | Frame* OrxonoxGuiFlags::getFrame () | 
|---|
| 21 | { | 
|---|
| 22 |   return flagsFrame; | 
|---|
| 23 | } | 
|---|
| 24 |  | 
|---|
| 25 | void OrxonoxGuiFlags::setTextFromFlags (Widget* widget) | 
|---|
| 26 | { | 
|---|
| 27 |   sprintf (flagText, ""); | 
|---|
| 28 |   strcat (flagText, "orxonox"); | 
|---|
| 29 |   FlagsText (widget); | 
|---|
| 30 |   flagsLabel->setText (flagText); | 
|---|
| 31 | } | 
|---|
| 32 |  | 
|---|
| 33 | void OrxonoxGuiFlags::FlagsText(Widget* widget) | 
|---|
| 34 | { | 
|---|
| 35 |   if (widget->is_option >= 1) | 
|---|
| 36 |     if  (static_cast<Option*>(widget)->value != static_cast<Option*>(widget)->default_value && (strcmp (static_cast<Option*>(widget)->flag_name, "") || strcmp (static_cast<Option*>(widget)->flag_name_short, ""))) | 
|---|
| 37 |       { | 
|---|
| 38 |         if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(shortFlags->widget))) | 
|---|
| 39 |           { | 
|---|
| 40 |             strcat (flagText, " -"); | 
|---|
| 41 |             strcat (flagText, static_cast<Option*>(widget)->flag_name_short); | 
|---|
| 42 |           } | 
|---|
| 43 |         else | 
|---|
| 44 |           { | 
|---|
| 45 |             strcat (flagText, " --"); | 
|---|
| 46 |             strcat (flagText, static_cast<Option*>(widget)->flag_name); | 
|---|
| 47 |           } | 
|---|
| 48 |         if (static_cast<Option*>(widget)->is_option == 2) | 
|---|
| 49 |           { | 
|---|
| 50 |             sprintf (flagText, "%s=%i", flagText, static_cast<Option*>(widget)->value); | 
|---|
| 51 |           } | 
|---|
| 52 |       } | 
|---|
| 53 |   switch (widget->is_option) | 
|---|
| 54 |     { | 
|---|
| 55 |     case -1: | 
|---|
| 56 |       FlagsText (static_cast<Container*>(widget)->down); | 
|---|
| 57 |       break; | 
|---|
| 58 |     case -2: | 
|---|
| 59 |       FlagsText (static_cast<Box*>(widget)->down); | 
|---|
| 60 |       break; | 
|---|
| 61 |     }  | 
|---|
| 62 |    | 
|---|
| 63 |   if (widget->next != NULL) | 
|---|
| 64 |     FlagsText (widget->next); | 
|---|
| 65 | } | 
|---|
| 66 |  | 
|---|
| 67 |  | 
|---|