Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/lib/gui/gui/gui_flags.cc @ 4056

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

orxonox/trunk/gui: naming

File size: 2.8 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 "gui_flags.h"
27
28/**
29   \brief Creates the Flags-Frame
30*/
31GuiFlags::GuiFlags(void)
32{
33  this->flagsFrame = new Frame("Orxonox-Startup-Flags:");
34  this->flagsBox = new Box('v');
35
36  this->flagsLabel = new Label();
37  this->flagsLabel->setSize(260,60);
38  this->flagsBox->fill(flagsLabel);
39  this->shortFlags = new CheckButton("shortFlags");
40  this->flagsBox->fill(shortFlags);
41
42  this->flagsFrame->fill(flagsBox);
43  this->setMainWidget(flagsFrame);
44}
45
46/**
47   \brief Destructs the Flags-stuff
48*/
49GuiFlags::~GuiFlags(void)
50{
51  // nothing to do here
52}
53
54/**
55   \brief Sets the Flags from widget downwards.
56   \param widget the Widget from which on to scan for deeper Options and their settings.
57*/
58void GuiFlags::setTextFromFlags(Widget* widget)
59{
60  FlagInfo flagInfo;
61  flagInfo.shortFlags = this->shortFlags;
62  flagInfo.flagsLabel = this->flagsLabel;
63
64  this->flagsLabel->ereaseText();
65  this->flagsLabel->appendText(executable);
66  widget->walkThrough(GuiFlags::flagsText, &flagInfo, 0);
67  //  flagsLabel->setTitle(flagText);
68}
69
70/**
71    \brief this actually sets the flagtext, and appends it to flagText
72    \param widget like GuiFlags::setTextFromFlags(widget)
73    \param flagInfo Information aboout the Flag that should be updated.
74*/
75void GuiFlags::flagsText(Widget* widget, void* flagInfo)
76{
77  FlagInfo* info =(FlagInfo*)flagInfo;
78  if(widget->isOption >= 1)
79    if (static_cast<Option*>(widget)->value != static_cast<Option*>(widget)->defaultValue )
80      {
81        if(info->shortFlags->isActive() && static_cast<Option*>(widget)->flagNameShort)
82          {
83            info->flagsLabel->appendText(" -");
84            info->flagsLabel->appendText(static_cast<Option*>(widget)->flagNameShort);
85          }
86        else if(!info->shortFlags->isActive() && static_cast<Option*>(widget)->flagName)
87          {
88            info->flagsLabel->appendText(" --");
89            info->flagsLabel->appendText(static_cast<Option*>(widget)->flagName);
90          }
91
92        if(static_cast<Option*>(widget)->isOption == 2)
93          {
94            info->flagsLabel->appendText("=");
95            info->flagsLabel->appendInt(static_cast<Option*>(widget)->value);
96          }
97      }
98}
Note: See TracBrowser for help on using the repository browser.