Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/updater/src/gui/orxonox_gui_flags.cc @ 3300

Last change on this file since 3300 was 3300, checked in by bensch, 19 years ago

orxonox/branches/updater: implemented a new SignalHandler, signals for starting and quiting the Gui are now located in OrxonoxGuiExec.
Now thinking about a way to pass options to Orxonox (so the GUI really makes sense)

File size: 3.0 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
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, or (at your option)
9   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 Foundation,
18   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
19
20
21   ### File Specific:
22   main-programmer: Benjamin Grauer
23
24*/
25
26#include "orxonox_gui_flags.h"
27
28/**
29   \brief Creates the Flags-Frame
30   \param widget The Widget from which the data will be parsed
31*/
32OrxonoxGuiFlags::OrxonoxGuiFlags (Widget* widget)
33{
34  this->flagsFrame = new Frame ("Orxonox-Startup-Flags:");
35  this->flagsBox = new Box ('v');
36
37  this->flagsLabel = new Label ();
38  this->flagsLabel->setSize (260,60);
39  this->flagsBox->fill (flagsLabel);
40  this->shortFlags = new CheckButton ("shortFlags");
41  this->flagsBox->fill (shortFlags);
42
43  this->flagsFrame->fill (flagsBox);
44}
45
46/**
47   \brief Function to return the Frame that holds the Flagtext.
48   \returns Frame that holds the Flagtext.
49*/
50Widget* OrxonoxGuiFlags::getWidget ()
51{
52  return this->flagsFrame;
53}
54
55/**
56   \brief Sets the Flags from widget downwards.
57   \param widget the Widget from which on to scan for deeper Options and their settings.
58*/
59void OrxonoxGuiFlags::setTextFromFlags (Widget* widget)
60{
61  FlagInfo flagInfo;
62  flagInfo.shortFlags = this->shortFlags;
63  flagInfo.flagsLabel = this->flagsLabel;
64
65  this->flagsLabel->ereaseText();
66  this->flagsLabel->appendText("orxonox");
67  widget->walkThrough(OrxonoxGuiFlags::flagsText, &flagInfo, 0);
68  //  flagsLabel->setTitle(flagText);
69}
70
71/**
72    \brief this actually sets the flagtext, and appends it to flagText
73    \param widget like OrxonoxGuiFlags::setTextFromFlags(widget)
74    \param flagInfo Information aboout the Flag that should be updated.
75*/
76void OrxonoxGuiFlags::flagsText(Widget* widget, void* flagInfo)
77{
78  FlagInfo* info = (FlagInfo*)flagInfo;
79  if (widget->isOption >= 1)
80    if  (static_cast<Option*>(widget)->value != static_cast<Option*>(widget)->defaultValue )
81      {
82        if (info->shortFlags->isActive() && static_cast<Option*>(widget)->flagNameShort)
83          {
84            info->flagsLabel->appendText(" -");
85            info->flagsLabel->appendText(static_cast<Option*>(widget)->flagNameShort);
86          }
87        else if (!info->shortFlags->isActive() && static_cast<Option*>(widget)->flagName)
88          {
89            info->flagsLabel->appendText(" --");
90            info->flagsLabel->appendText(static_cast<Option*>(widget)->flagName);
91          }
92
93        if (static_cast<Option*>(widget)->isOption == 2)
94          {
95            info->flagsLabel->appendText("=");
96            info->flagsLabel->appendInt(static_cast<Option*>(widget)->value);
97          }
98      }
99}
Note: See TracBrowser for help on using the repository browser.