Changeset 3746 in orxonox.OLD for orxonox/branches/levelloader/src/lib/gui
- Timestamp:
- Apr 7, 2005, 3:54:49 PM (20 years ago)
- Location:
- orxonox/branches/levelloader/src/lib/gui
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/levelloader/src/lib/gui/Makefile.in
r3605 r3746 1 # Makefile.in generated by automake 1.8. 5from Makefile.am.1 # Makefile.in generated by automake 1.8.2 from Makefile.am. 2 2 # @configure_input@ 3 3 … … 179 179 esac; \ 180 180 done; \ 181 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/lib/gui/Makefile'; \181 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/gui/Makefile'; \ 182 182 cd $(top_srcdir) && \ 183 $(AUTOMAKE) -- foreignsrc/lib/gui/Makefile183 $(AUTOMAKE) --gnu src/lib/gui/Makefile 184 184 .PRECIOUS: Makefile 185 185 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status … … 274 274 tags=; \ 275 275 here=`pwd`; \ 276 if ( $(ETAGS)--etags-include --version) >/dev/null 2>&1; then \276 if (etags --etags-include --version) >/dev/null 2>&1; then \ 277 277 include_option=--etags-include; \ 278 empty_fix=.; \279 278 else \ 280 279 include_option=--include; \ 281 empty_fix=; \282 280 fi; \ 283 281 list='$(SUBDIRS)'; for subdir in $$list; do \ 284 282 if test "$$subdir" = .; then :; else \ 285 test ! -f $$subdir/TAGS ||\283 test -f $$subdir/TAGS && \ 286 284 tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ 287 285 fi; \ … … 293 291 $(AWK) ' { files[$$0] = 1; } \ 294 292 END { for (i in files) print i; }'`; \ 295 if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 296 test -n "$$unique" || unique=$$empty_fix; \ 297 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 298 $$tags $$unique; \ 299 fi 293 test -z "$(ETAGS_ARGS)$$tags$$unique" \ 294 || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 295 $$tags $$unique 300 296 ctags: CTAGS 301 297 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -
orxonox/branches/levelloader/src/lib/gui/console/Makefile.in
r3605 r3746 1 # Makefile.in generated by automake 1.8. 5from Makefile.am.1 # Makefile.in generated by automake 1.8.2 from Makefile.am. 2 2 # @configure_input@ 3 3 … … 50 50 CONFIG_HEADER = $(top_builddir)/config.h 51 51 CONFIG_CLEAN_FILES = 52 am__installdirs = "$(DESTDIR)$(bindir)"52 am__installdirs = $(DESTDIR)$(bindir) 53 53 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) 54 54 PROGRAMS = $(bin_PROGRAMS) … … 205 205 esac; \ 206 206 done; \ 207 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/lib/gui/console/Makefile'; \207 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/gui/console/Makefile'; \ 208 208 cd $(top_srcdir) && \ 209 $(AUTOMAKE) -- foreignsrc/lib/gui/console/Makefile209 $(AUTOMAKE) --gnu src/lib/gui/console/Makefile 210 210 .PRECIOUS: Makefile 211 211 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status … … 227 227 install-binPROGRAMS: $(bin_PROGRAMS) 228 228 @$(NORMAL_INSTALL) 229 test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"229 $(mkdir_p) $(DESTDIR)$(bindir) 230 230 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 231 231 p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ … … 233 233 ; then \ 234 234 f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ 235 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \236 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f"|| exit 1; \235 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ 236 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ 237 237 else :; fi; \ 238 238 done … … 242 242 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 243 243 f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 244 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \245 rm -f "$(DESTDIR)$(bindir)/$$f"; \244 echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ 245 rm -f $(DESTDIR)$(bindir)/$$f; \ 246 246 done 247 247 … … 299 299 $(AWK) ' { files[$$0] = 1; } \ 300 300 END { for (i in files) print i; }'`; \ 301 if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 302 test -n "$$unique" || unique=$$empty_fix; \ 303 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 304 $$tags $$unique; \ 305 fi 301 test -z "$(ETAGS_ARGS)$$tags$$unique" \ 302 || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 303 $$tags $$unique 306 304 ctags: CTAGS 307 305 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ … … 358 356 all-am: Makefile $(PROGRAMS) $(HEADERS) 359 357 installdirs: 360 for dir in "$(DESTDIR)$(bindir)"; do \ 361 test -z "$$dir" || $(mkdir_p) "$$dir"; \ 362 done 358 $(mkdir_p) $(DESTDIR)$(bindir) 363 359 install: install-am 364 360 install-exec: install-exec-am -
orxonox/branches/levelloader/src/lib/gui/gui/Makefile.am
r3499 r3746 21 21 22 22 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 23 LIBS=$(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS)23 AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 24 24 25 25 bin_PROGRAMS=gui -
orxonox/branches/levelloader/src/lib/gui/gui/Makefile.in
r3605 r3746 1 # Makefile.in generated by automake 1.8. 5from Makefile.am.1 # Makefile.in generated by automake 1.8.2 from Makefile.am. 2 2 # @configure_input@ 3 3 … … 50 50 CONFIG_HEADER = $(top_builddir)/config.h 51 51 CONFIG_CLEAN_FILES = 52 am__installdirs = "$(DESTDIR)$(bindir)"52 am__installdirs = $(DESTDIR)$(bindir) 53 53 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) 54 54 PROGRAMS = $(bin_PROGRAMS) … … 131 131 LDFLAGS = @LDFLAGS@ 132 132 LIBOBJS = @LIBOBJS@ 133 134 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 135 LIBS = $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 133 LIBS = @LIBS@ 136 134 LTLIBOBJS = @LTLIBOBJS@ 137 135 MAKEINFO = @MAKEINFO@ … … 195 193 MAINSRCDIR = ../../.. 196 194 AM_CXXFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS) -I$(MAINSRCDIR) -I$(MAINSRCDIR)/world_entities -I$(MAINSRCDIR)/story_entities -I$(MAINSRCDIR)/lib -I$(MAINSRCDIR)/lib/coord -I$(MAINSRCDIR)/lib/data -I$(MAINSRCDIR)/lib/gaphics -I$(MAINSRCDIR)/lib/graphics/font -I$(MAINSRCDIR)/lib/graphics/importer -I$(MAINSRCDIR)/lib/gui -I$(MAINSRCDIR)/lib/lang -I$(MAINSRCDIR)/lib/util -I$(MAINSRCDIR)/lib/math -I$(MAINSRCDIR)/defs -I$(MAINSRCDIR)/font -I$(MAINSRCDIR)/network -I$(MAINSRCDIR)/glmenu -I$(MAINSRCDIR)/ai 195 196 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 197 AM_LDFLAGS = $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 197 198 gui_SOURCES = orxonox_gui.cc \ 198 199 orxonox_gui_gtk.cc \ … … 238 239 esac; \ 239 240 done; \ 240 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/lib/gui/gui/Makefile'; \241 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/gui/gui/Makefile'; \ 241 242 cd $(top_srcdir) && \ 242 $(AUTOMAKE) -- foreignsrc/lib/gui/gui/Makefile243 $(AUTOMAKE) --gnu src/lib/gui/gui/Makefile 243 244 .PRECIOUS: Makefile 244 245 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status … … 260 261 install-binPROGRAMS: $(bin_PROGRAMS) 261 262 @$(NORMAL_INSTALL) 262 test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"263 $(mkdir_p) $(DESTDIR)$(bindir) 263 264 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 264 265 p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ … … 266 267 ; then \ 267 268 f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ 268 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \269 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f"|| exit 1; \269 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ 270 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ 270 271 else :; fi; \ 271 272 done … … 275 276 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 276 277 f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 277 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \278 rm -f "$(DESTDIR)$(bindir)/$$f"; \278 echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ 279 rm -f $(DESTDIR)$(bindir)/$$f; \ 279 280 done 280 281 … … 338 339 $(AWK) ' { files[$$0] = 1; } \ 339 340 END { for (i in files) print i; }'`; \ 340 if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 341 test -n "$$unique" || unique=$$empty_fix; \ 342 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 343 $$tags $$unique; \ 344 fi 341 test -z "$(ETAGS_ARGS)$$tags$$unique" \ 342 || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 343 $$tags $$unique 345 344 ctags: CTAGS 346 345 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ … … 397 396 all-am: Makefile $(PROGRAMS) $(HEADERS) 398 397 installdirs: 399 for dir in "$(DESTDIR)$(bindir)"; do \ 400 test -z "$$dir" || $(mkdir_p) "$$dir"; \ 401 done 398 $(mkdir_p) $(DESTDIR)$(bindir) 402 399 install: install-am 403 400 install-exec: install-exec-am -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui.cc
r3499 r3746 95 95 96 96 // Reading Values from File 97 exec->set Filename("~/.orxonox.conf");97 exec->setConfFile("~/.orxonox/orxonox.conf"); 98 98 exec->readFromFile(orxonoxGUI); 99 99 // Merging changes to the Options from appended flags. -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui_exec.cc
r3499 r3746 25 25 26 26 #include "orxonox_gui_exec.h" 27 27 28 #include <iostream> 28 29 #include <string> 30 31 #include <sys/stat.h> 32 #include <sys/types.h> 33 29 34 30 35 HashTable* orxonoxFlagHash; … … 50 55 this->saveSettings->saveability(); 51 56 this->execBox->fill(this->saveSettings); 52 this->verboseMode = new Menu("verbose mode", "no output", "error", "warning", "info", "lastItem");57 this->verboseMode = new Menu("verbose mode", "nothing", "error", "warning", "info", "lastItem"); 53 58 this->verboseMode->setFlagName("verbose", "v", 0); 54 59 this->verboseMode->saveability(); … … 90 95 91 96 /** 97 \brief sets the confDir and File-name out of an input-string 98 */ 99 void OrxonoxGuiExec::setConfFile(char* confFile) 100 { 101 char splitter = 102 #ifdef __WIN32__ 103 '\\'; 104 #else 105 '/'; 106 #endif 107 char* tmpConfFile = new char[strlen(confFile)+1]; 108 strcpy(tmpConfFile, confFile); 109 char* tmp = strrchr(tmpConfFile, splitter); 110 if (tmp) 111 { 112 tmp[0] = '\0'; 113 this->setConfDir(tmpConfFile); 114 this->setFileName(tmp+1); 115 } 116 else 117 { 118 this->setConfDir("~/"); 119 this->setFileName(tmpConfFile); 120 } 121 delete []tmp; 122 delete []tmpConfFile; 123 } 124 125 /** 126 \brief sets the Directory of the configuration files 127 \param confDir the Directory for the configuration files 128 */ 129 void OrxonoxGuiExec::setConfDir(char* confDir) 130 { 131 if (!strncmp(confDir, "~/", 2)) 132 { 133 char tmp[500]; 134 #ifdef __WIN32__ 135 strcpy(tmp, getenv("USERPROFILE")); 136 #else 137 strcpy(tmp, getenv("HOME")); 138 #endif 139 this->confDir = new char[strlen(tmp)+strlen(confDir)]; 140 sprintf(this->confDir, "%s%s", tmp, confDir+1); 141 } 142 else 143 { 144 this->confDir = new char[strlen(confDir)+1]; 145 strcpy(this->confDir, confDir); 146 } 147 PRINTF(3)("Config Directory is: %s.\n", this->confDir); 148 mkdir(this->confDir, 0755); 149 } 150 151 /** 92 152 \brief Sets the location of the configuration File. 93 \param file name the location of the configFile153 \param fileName the location of the configFile 94 154 95 155 \todo: memory allocation could be better. … … 97 157 The name will be parsed from ~/ to /home/[username] on unix and c:/Documents and Settings/username/Settings/ on Windows 98 158 */ 99 void OrxonoxGuiExec::setFilename(char* filename) 100 { 101 char* buffer = (char*)malloc(2048*sizeof(char)); 102 sprintf(buffer, "%s", filename); 103 if(!strncmp(buffer, "~/", 2)) 104 { 105 #ifdef __WIN32__ 106 sprintf(configFile, "%s/%s", getenv("USERPROFILE"), buffer+2); 107 #else 108 sprintf(configFile, "%s/%s", getenv("HOME"), buffer+2); 109 #endif 110 } 111 else if(buffer) 112 strcpy(this->configFile, buffer); 113 free (buffer); 159 void OrxonoxGuiExec::setFileName(char* fileName) 160 { 161 if (!this->confDir) 162 this->setConfDir("~/"); 163 this->configFile = new char[strlen(this->confDir)+strlen(fileName)+2]; 164 sprintf(this->configFile, "%s/%s", this->confDir, fileName); 165 PRINTF(3)("ConfigurationFile is %s.\n", this->configFile); 114 166 } 115 167 … … 117 169 \returns The name of the Configuration-File 118 170 */ 119 char* OrxonoxGuiExec::getConfigFile(void) 171 char* OrxonoxGuiExec::getConfigFile(void) const 120 172 { 121 173 return this->configFile; … … 190 242 space2under[0] = '_'; 191 243 } 192 if(widget->isOption <=3) 193 fprintf(CONFIG_FILE, "%s = %d\n", Buffer, static_cast<Option*>(widget)->value); 194 else if(widget->isOption == 5) 195 fprintf(CONFIG_FILE, "%s = %s\n", Buffer, static_cast<OptionLabel*>(widget)->cValue); 244 fprintf(CONFIG_FILE, "%s = %s\n", Buffer, static_cast<Option*>(widget)->save()); 196 245 } 197 246 … … 259 308 { 260 309 PRINT(3)("Located Option %s.\n", widget->title); 261 if(widget->isOption >= 1 && widget->isOption <= 3) 262 { 263 static_cast<Option*>(widget)->value = atoi(info->variableValue); 264 static_cast<Option*>(widget)->redraw(); //!< \todo change this to setValue. 265 } 266 else if(widget->isOption == 5) 267 static_cast<OptionLabel*>(widget)->setValue(info->variableValue); 310 if(widget->isOption >= 1) 311 static_cast<Option*>(widget)->load(info->variableValue); 268 312 } 269 313 } -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui_exec.h
r3499 r3746 22 22 CheckButton* alwaysShow; //!< A CheckButton, for if orxonox should start with or without gui. 23 23 Button* quit; //!< A Button to quit the Gui without starting orxonox. 24 char* confDir; //!< The directory of the orxonox-configuration-files. 24 25 char* configFile; //!< The name of the .orxonox.conf(ig)-file. 25 26 FILE* CONFIG_FILE; //!< Filehandler for reading and writing. … … 37 38 38 39 Widget* getWidget(void); 39 40 void setFilename(char* filename); 41 char* getConfigFile(void); 40 41 void setConfFile(char* confFile); 42 void setConfDir(char* confDir); 43 void setFileName(char* fileName); 44 char* getConfigFile(void) const; 42 45 int shouldsave(void); 43 46 void writeToFile(Widget* widget); -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui_gtk.cc
r3499 r3746 25 25 26 26 27 #include "orxonox_gui_gtk.h" 28 29 #include <stdarg.h> 27 30 #include <iostream> 28 29 #include "orxonox_gui_gtk.h"30 31 31 32 … … 68 69 #else /* HAVE_GTK2 */ 69 70 char boolAns = 'y'; 70 char ans[10]; 71 char ans[10]; 72 PRINT(0)("================================\n"); 73 PRINT(0)("= ORXONOX CONFIGURATION WIZARD =\n"); 74 PRINT(0)("================================ - version:" PACKAGE_VERSION "\n"); 75 71 76 while(true) 72 77 { 73 PRINT(0)(" Listing all the Orxonox Options: \n");78 PRINT(0)("\n Listing all the Orxonox Options: \n"); 74 79 PRINT(0)(" #############################\n"); 75 80 Window::mainWindow->walkThrough(Widget::listOptionsAndGroups, 1); … … 122 127 //! \todo move this into the gui-gtk-file 123 128 //! \todo finish it. 129 //! \todo memory leek at save(); and save is a BAD word, use saveString instead, or something like it. 124 130 } 125 131 #endif /* HAVE_GTK2 */ … … 133 139 134 140 /* WIDGET */ 135 136 /** 137 \brief deletes any given Widget 138 This is still pretty crappy. 139 */ 140 Widget::~Widget(void) 141 { 142 this->destroy(); 143 } 144 145 /** 146 \brief Initializes a widget. 147 Initializes the next Pointer and the other Widget-specific Defaults. 148 */ 149 void Widget::init(void) 141 /** 142 \brief constructs a Widget 143 */ 144 Widget::Widget(void) 150 145 { 151 146 next = NULL; … … 155 150 156 151 /** 157 \brief Destroys a Widget 158 */ 159 void Widget::destroy(void) 160 { 161 if (this->title) 152 \brief deletes any given Widget 153 This is still pretty crappy. 154 */ 155 Widget::~Widget(void) 156 { 157 if (this->title) 162 158 { 163 159 delete []this->title; … … 172 168 delete this->next; 173 169 this->next = NULL; 174 175 170 //! \todo not hiding widget, deleting. 176 171 // this->hide(); 177 172 // delete this->widget; 173 } 174 175 /** 176 \brief sets a new Title to a Widget 177 \param title The new Title to set to the Widget 178 */ 179 void Widget::setTitle(const char* title) 180 { 181 if (this->title) 182 delete []this->title; 183 this->title = new char[strlen(title)+1]; 184 strcpy(this->title, title); 178 185 } 179 186 … … 273 280 { 274 281 if (widget->isOption < 0 && static_cast<Packer*>(widget)->groupName) 275 cout << "[" << static_cast<Packer*>(widget)->groupName << "]\n";276 if (widget->isOption >= 1 && widget->isOption <= 3)277 cout << " " << static_cast<Option*>(widget)->title <<" is : " << static_cast<Option*>(widget)->value <<endl;278 else if (widget->isOption == 5)279 cout << " " << static_cast<Option*>(widget)->title <<" is : " << static_cast<OptionLabel*>(widget)->cValue <<endl;282 PRINT(0)("[%s]\n", static_cast<Packer*>(widget)->groupName); 283 if (widget->isOption >= 1) 284 { 285 Widget::listOptions(widget); 286 } 280 287 } 281 288 … … 286 293 void Widget::listOptions(Widget* widget) 287 294 { 288 if (widget->isOption >= 1 && widget->isOption <= 3) 289 cout << " " << static_cast<Option*>(widget)->title <<" is : " << static_cast<Option*>(widget)->value <<endl; 290 else if (widget->isOption == 5) 291 cout << " " << static_cast<Option*>(widget)->title <<" is : " << static_cast<OptionLabel*>(widget)->cValue <<endl; 295 if(widget->isOption >= 1) 296 PRINT(0)(" %s is %s\n", static_cast<Option*>(widget)->title, static_cast<Option*>(widget)->save()); 292 297 } 293 298 … … 300 305 { 301 306 302 if (widget->isOption >= 1 && widget->isOption <= 3)307 if (widget->isOption >= 1) 303 308 { 304 309 int* count =(int*)data; 305 310 *count = *count +1; 306 cout << *count << ": " << static_cast<Option*>(widget)->title <<" is : " << static_cast<Option*>(widget)->value <<endl; 307 } 308 else if (widget->isOption == 5) 309 { 310 int* count =(int*)data; 311 *count = *count +1; 312 cout << *count << ": " << static_cast<Option*>(widget)->title <<" is : " << static_cast<OptionLabel*>(widget)->cValue <<endl; 311 PRINT(0)(" %d:%s is %s\n", *count, static_cast<Option*>(widget)->title, static_cast<Option*>(widget)->save()); 313 312 } 314 313 } … … 513 512 514 513 /* PACKERS */ 515 516 /** 517 \brief Initializes a Packer. 518 519 Sets the down-pinter to NULL and other PackerSpecific-values to their defaults. 520 */ 521 void Packer::init(void) 514 /** 515 \brief Constructs a Packer 516 */ 517 Packer::Packer(void) 522 518 { 523 519 this->down = NULL; 524 520 this->groupName = NULL; 525 526 527 static_cast<Widget*>(this)->init();528 return;529 521 } 530 522 … … 532 524 \brief Destroys a Packer. 533 525 */ 534 void Packer::destroy(void)526 Packer::~Packer(void) 535 527 { 536 528 PRINTF(4)("deleting the Packer part.\n"); … … 543 535 delete this->down; 544 536 this->down = NULL; 545 546 static_cast<Widget*>(this)->destroy();547 537 } 548 538 … … 575 565 sets the Container-Specific defaults. 576 566 */ 577 void Container::init(void)567 Container::Container(void) 578 568 { 579 569 this->isOption = -1; 580 581 static_cast<Packer*>(this)->init();582 583 return;584 570 } 585 571 … … 587 573 \brief Destroys a Container. 588 574 */ 589 void Container::destroy(void)575 Container::~Container(void) 590 576 { 591 577 PRINTF(4)("deleting the Container part.\n"); 592 593 static_cast<Packer*>(this)->destroy();594 578 } 595 579 … … 665 649 Window::~Window(void) 666 650 { 667 this->destroy(); 651 if (this->title) 652 PRINTF(3)("deleting the Window: %s\n", this->title); 653 else 654 PRINTF(3)("deleting the Window.\n"); 655 // this->hide(); 668 656 } 669 657 … … 677 665 678 666 isOpen = false; 679 680 static_cast<Container*>(this)->init();681 667 682 668 #ifdef HAVE_GTK2 … … 691 677 692 678 /** 693 \brief Destroys a Window.694 */695 void Window::destroy(void)696 {697 if (this->title)698 PRINTF(3)("deleting the Window: %s\n", this->title);699 else700 PRINTF(3)("deleting the Window.\n");701 // this->hide();702 static_cast<Container*>(this)->destroy();703 704 }705 706 /**707 679 \brief Shows all Widgets that are included within this->widget. 708 680 */ … … 730 702 \param title title the Window should get. 731 703 */ 732 void Window::setTitle(c har* title)704 void Window::setTitle(const char* title) 733 705 { 734 706 if (this->title) … … 823 795 Frame::~Frame(void) 824 796 { 825 this->destroy();826 }827 828 /**829 \brief Initializes a new Frame with default settings830 */831 void Frame::init(void)832 {833 static_cast<Container*>(this)->init();834 835 #ifdef HAVE_GTK2836 this->widget = gtk_frame_new("");837 gtk_container_set_border_width(GTK_CONTAINER(this->widget), 3);838 #endif /* HAVE_GTK2 */839 }840 841 /**842 \brief Destroys a Frame.843 */844 void Frame::destroy(void)845 {846 797 if (this->title) 847 798 PRINTF(3)("deleting the Frame: %s\n", this->title); 848 799 else 849 800 PRINTF(3)("deleting the Frame.\n"); 850 851 static_cast<Container*>(this)->destroy(); 801 } 802 803 /** 804 \brief Initializes a new Frame with default settings 805 */ 806 void Frame::init(void) 807 { 808 #ifdef HAVE_GTK2 809 this->widget = gtk_frame_new(""); 810 gtk_container_set_border_width(GTK_CONTAINER(this->widget), 3); 811 #endif /* HAVE_GTK2 */ 852 812 } 853 813 … … 856 816 \param title The title the Frame should get. 857 817 */ 858 void Frame::setTitle(c har* title)818 void Frame::setTitle(const char* title) 859 819 { 860 820 if (this->title) … … 892 852 EventBox::~EventBox(void) 893 853 { 894 this->destroy();895 896 }897 898 /**899 \brief Initializes a new EventBox900 */901 void EventBox::init(void)902 {903 this->isOption = -1;904 905 static_cast<Container*>(this)->init();906 907 #ifdef HAVE_GTK2908 this->widget = gtk_event_box_new();909 gtk_container_set_border_width(GTK_CONTAINER(this->widget), 3);910 #endif /* HAVE_GTK2 */911 }912 913 /**914 \brief Destroys an EventBox.915 */916 void EventBox::destroy(void)917 {918 854 if (this->title) 919 855 PRINTF(3)("deleting the EventBox: %s\n", this->title); 920 856 else 921 857 PRINTF(3)("deleting the EventBox.\n"); 922 923 static_cast<Container*>(this)->destroy(); 924 } 925 926 /** 927 \brief Sets the Title of the EventBox(not implemented) 928 \param title Name the EventBox should get(only datastructure-internal). 929 */ 930 void EventBox::setTitle(char* title) 931 { 932 if (this->title) 933 delete []this->title; 934 this->title = new char[strlen(title)+1]; 935 strcpy(this->title, title); 858 } 859 860 /** 861 \brief Initializes a new EventBox 862 */ 863 void EventBox::init(void) 864 { 865 this->isOption = -1; 866 867 #ifdef HAVE_GTK2 868 this->widget = gtk_event_box_new(); 869 gtk_container_set_border_width(GTK_CONTAINER(this->widget), 3); 870 #endif /* HAVE_GTK2 */ 936 871 } 937 872 … … 960 895 Box::~Box(void) 961 896 { 962 this->destroy();963 }964 965 /**966 \brief Initializes a new Box with type boxtype967 \param boxtype see Box(char boxtype)968 */969 void Box::init(char boxtype)970 {971 this->isOption = -2;972 973 static_cast<Packer*>(this)->init();974 #ifdef HAVE_GTK2975 if (boxtype == 'v')976 {977 this->widget = gtk_vbox_new(FALSE, 0);978 }979 else980 {981 this->widget = gtk_hbox_new(FALSE, 0);982 }983 #endif /* HAVE_GTK2 */984 }985 986 /**987 \brief Destroys a Box.988 */989 void Box::destroy(void)990 {991 897 if (this->title) 992 898 PRINTF(3)("deleting the Box: %s\n", this->title); … … 994 900 PRINTF(3)("deleting the Box.\n"); 995 901 996 static_cast<Packer*>(this)->destroy(); 902 } 903 904 /** 905 \brief Initializes a new Box with type boxtype 906 \param boxtype see Box(char boxtype) 907 */ 908 void Box::init(char boxtype) 909 { 910 this->isOption = -2; 911 912 #ifdef HAVE_GTK2 913 if (boxtype == 'v') 914 { 915 this->widget = gtk_vbox_new(FALSE, 0); 916 } 917 else 918 { 919 this->widget = gtk_hbox_new(FALSE, 0); 920 } 921 #endif /* HAVE_GTK2 */ 997 922 } 998 923 … … 1022 947 } 1023 948 1024 /**1025 \brief Sets the Title of a Box.1026 \param title the new Title to set.1027 */1028 void Box::setTitle(char* title)1029 {1030 if (this->title)1031 delete []this->title;1032 this->title = new char[strlen(title)+1];1033 strcpy(this->title, title);1034 }1035 1036 949 /* OPTION */ 1037 950 … … 1040 953 sets all Option-Specific-Values to their defaults. 1041 954 */ 1042 void Option::init(void)955 Option::Option(void) 1043 956 { 1044 957 this->value = 0; … … 1047 960 this->saveable = false; 1048 961 this->defaultValue = 0; 1049 1050 static_cast<Widget*>(this)->init();1051 1052 return;1053 962 } 1054 963 … … 1056 965 \brief Destroys an Option. 1057 966 */ 1058 void Option::destroy(void)967 Option::~Option(void) 1059 968 { 1060 969 PRINTF(4)("deleting the Option Part.\n"); … … 1063 972 if (this->flagNameShort) 1064 973 delete []this->flagNameShort; 1065 1066 static_cast<Widget*>(this)->destroy();1067 974 } 1068 975 … … 1123 1030 1124 1031 /** 1032 \brief saves an Option 1033 \returns the String that should be saved. 1034 1035 this is a default Option save 1036 */ 1037 char* Option::save(void) 1038 { 1039 char* value = new char [10]; 1040 sprintf (value, "%d", this->value); 1041 return value; 1042 } 1043 1044 /** 1045 \brief loads an Option from of its loadString 1046 \param loadString the string from which to load the data from 1047 */ 1048 void Option::load(char* loadString) 1049 { 1050 this->value = atoi(loadString); 1051 PRINT(3)("Loading %s: %s %d\n", this->title, loadString, value); 1052 this->redraw(); 1053 } 1054 1055 /** 1125 1056 \returns The saveable-state. 1126 1057 */ … … 1161 1092 Button::~Button(void) 1162 1093 { 1163 this->destroy();1164 }1165 1166 /**1167 \brief Initializes a new Button1168 */1169 void Button::init(void)1170 {1171 isOption = 0;1172 1173 static_cast<Option*>(this)->init();1174 1175 #ifdef HAVE_GTK21176 widget = gtk_button_new_with_label("");1177 #endif /* HAVE_GTK2 */1178 }1179 1180 /**1181 \brief Destroys a Button.1182 */1183 void Button::destroy(void)1184 {1185 1094 if (this->title) 1186 1095 PRINTF(3)("deleting the Label: %s\n", this->title); … … 1188 1097 PRINTF(3)("deleting the Label.\n"); 1189 1098 1190 static_cast<Option*>(this)->destroy(); 1099 } 1100 1101 /** 1102 \brief Initializes a new Button 1103 */ 1104 void Button::init(void) 1105 { 1106 isOption = 0; 1107 1108 #ifdef HAVE_GTK2 1109 widget = gtk_button_new_with_label(""); 1110 #endif /* HAVE_GTK2 */ 1191 1111 } 1192 1112 … … 1195 1115 \param title The name the Button should get 1196 1116 */ 1197 void Button::setTitle(c har *title)1117 void Button::setTitle(const char *title) 1198 1118 { 1199 1119 if (this->title) … … 1245 1165 CheckButton::~CheckButton(void) 1246 1166 { 1247 this->destroy();1248 }1249 1250 /**1251 \brief Initialize a new CheckButton with default settings1252 */1253 void CheckButton::init(void)1254 {1255 this->isOption = 1;1256 1257 static_cast<Option*>(this)->init();1258 1259 #ifdef HAVE_GTK21260 this->widget = gtk_check_button_new_with_label("");1261 #endif /* HAVE_GTK2 */1262 }1263 1264 /**1265 \brief Destroys a CheckButton.1266 */1267 void CheckButton::destroy(void)1268 {1269 1167 if (this->title) 1270 1168 PRINTF(3)("deleting the CheckButton: %s\n", this->title); 1271 1169 else 1272 1170 PRINTF(3)("deleting the CheckButton.\n"); 1273 1274 static_cast<Option*>(this)->destroy(); 1171 } 1172 1173 /** 1174 \brief Initialize a new CheckButton with default settings 1175 */ 1176 void CheckButton::init(void) 1177 { 1178 this->isOption = 1; 1179 1180 #ifdef HAVE_GTK2 1181 this->widget = gtk_check_button_new_with_label(""); 1182 #endif /* HAVE_GTK2 */ 1275 1183 } 1276 1184 … … 1279 1187 \param title The new Name the CheckButton should display. 1280 1188 */ 1281 void CheckButton::setTitle(c har* title)1189 void CheckButton::setTitle(const char* title) 1282 1190 { 1283 1191 if (this->title) … … 1306 1214 #else /* HAVE_GTK2 */ 1307 1215 char tmpChar[20]; 1308 cout << "\nPlease give me a new value for " << this->title << " [0,1](def ualt:" << this->defaultValue << "): ";1216 cout << "\nPlease give me a new value for " << this->title << " [0,1](default:" << this->defaultValue << "): "; 1309 1217 cin >> tmpChar; 1310 1218 … … 1350 1258 Slider::~Slider(void) 1351 1259 { 1352 this->destroy();1353 }1354 1355 /**1356 \brief Initializes a Slider with start and end Values1357 params: see Slider::Slider(char* slidername, int start, int end)1358 */1359 void Slider::init(int start, int end)1360 {1361 this->isOption = 2;1362 1363 static_cast<Option*>(this)->init();1364 1365 this->start = start;1366 this->end = end;1367 #ifdef HAVE_GTK21368 widget = gtk_hscale_new_with_range(this->start, this->end, 5);1369 #endif /* HAVE_GTK2 */1370 }1371 1372 /**1373 \brief Destroys a Slider.1374 */1375 void Slider::destroy(void)1376 {1377 1260 if (this->title) 1378 1261 PRINTF(3)("deleting the Slider: %s\n", this->title); 1379 1262 else 1380 1263 PRINTF(3)("deleting the Slider.\n"); 1381 1382 static_cast<Option*>(this)->destroy(); 1383 1384 } 1385 1386 /** 1387 \brief Sets a new Title to the Slider 1388 \param title The new Name of the slider 1389 */ 1390 void Slider::setTitle(char* title) 1391 { 1392 if (this->title)1393 delete []this->title; 1394 this->title = new char[strlen(title)+1];1395 strcpy(this->title, title); 1264 } 1265 1266 /** 1267 \brief Initializes a Slider with start and end Values 1268 params: see Slider::Slider(char* slidername, int start, int end) 1269 */ 1270 void Slider::init(int start, int end) 1271 { 1272 this->isOption = 2; 1273 1274 this->start = start; 1275 this->end = end; 1276 #ifdef HAVE_GTK2 1277 widget = gtk_hscale_new_with_range(this->start, this->end, 5); 1278 #endif /* HAVE_GTK2 */ 1396 1279 } 1397 1280 … … 1425 1308 #else /* HAVE_GTK2 */ 1426 1309 char tmpChar[20]; 1427 cout << "\nPlease give me a new value for " << this->title << " [" <<this->start << "-" << this->end << "](def ualt:" << this->defaultValue << "): ";1310 cout << "\nPlease give me a new value for " << this->title << " [" <<this->start << "-" << this->end << "](default:" << this->defaultValue << "): "; 1428 1311 cin >> tmpChar; 1429 1312 … … 1437 1320 1438 1321 /* MENU */ 1322 1323 /** 1324 \brief constructs a new Menu, without adding any items to it. 1325 \param menuName the Name the Menu gets. 1326 */ 1327 Menu::Menu(const char* menuName) 1328 { 1329 this->init(); 1330 this->setTitle(menuName); 1331 } 1439 1332 1440 1333 /** … … 1448 1341 this->init(); 1449 1342 this->setTitle(menuname); 1450 1343 va_list itemlist; //!< The list to readin multiple Options. 1344 1451 1345 char *itemName; 1452 1346 1453 #ifdef HAVE_GTK2 /////////////////////// REINPLEMENT1454 1347 va_start(itemlist, menuname); 1455 1348 while(strcmp(itemName = va_arg(itemlist, char*), "lastItem")) … … 1458 1351 } 1459 1352 va_end(itemlist); 1460 #endif /* HAVE_GTK2 */1461 1462 #ifdef HAVE_GTK21463 gtk_option_menu_set_menu(GTK_OPTION_MENU(this->widget), menu);1464 this->connectSignal("changed", this->OptionChange);1465 #endif /* HAVE_GTK2 */1466 1353 } 1467 1354 … … 1471 1358 Menu::~Menu(void) 1472 1359 { 1473 this->destroy();1474 }1475 1476 /**1477 \brief Initializes a new Menu with no items1478 */1479 void Menu::init(void)1480 {1481 this->isOption = 2;1482 1483 static_cast<Option*>(this)->init();1484 1485 #ifdef HAVE_GTK21486 this->widget = gtk_option_menu_new();1487 this->menu = gtk_menu_new();1488 #endif /* HAVE_GTK2 */1489 1490 }1491 1492 /**1493 \brief Destroys a Menu.1494 */1495 void Menu::destroy(void)1496 {1497 1360 if (this->title) 1498 1361 PRINTF(3)("deleting the Menu: %s\n", this->title); … … 1500 1363 PRINTF(3)("deleting the Menu.\n"); 1501 1364 //! \todo destroy menu 1502 1503 static_cast<Option*>(this)->destroy(); 1504 } 1505 1506 1507 /** 1508 * Sets the Database-Name of this Menu 1509 \param title Database-Name to be set. 1510 */ 1511 void Menu::setTitle(char* title) 1512 { 1513 if (this->title) 1514 delete []this->title; 1515 this->title = new char[strlen(title)+1]; 1516 strcpy(this->title, title); 1365 this->currItem = this->firstItem; 1366 while(this->currItem) 1367 { 1368 delete []this->currItem->name; 1369 /* 1370 #ifdef HAVE_GTK2 1371 free(this->currItem->item); 1372 #endif /* HAVE_GTK2 */ 1373 MenuItem* tmpItem = this->currItem; 1374 this->currItem = this->currItem->next; 1375 delete tmpItem; 1376 } 1377 } 1378 1379 /** 1380 \brief Initializes a new Menu with no items 1381 */ 1382 void Menu::init(void) 1383 { 1384 this->isOption = 2; 1385 this->firstItem = NULL; 1386 1387 #ifdef HAVE_GTK2 1388 this->widget = gtk_option_menu_new(); 1389 this->menu = gtk_menu_new(); 1390 gtk_option_menu_set_menu(GTK_OPTION_MENU(this->widget), menu); 1391 this->connectSignal("changed", this->OptionChange); 1392 #endif /* HAVE_GTK2 */ 1393 } 1394 1395 /** 1396 \brief saves the Label of the Menu 1397 \returns the name of the selected Menu-Item 1398 */ 1399 char* Menu::save(void) 1400 { 1401 MenuItem* tmpItem = this->firstItem; 1402 for (int i = 0; i<this->value; i++) 1403 tmpItem = tmpItem->next; 1404 1405 return tmpItem->name; 1406 } 1407 1408 /** 1409 \brief loads a Menu from of its loadString 1410 \param loadString the string from which to load the data from 1411 */ 1412 void Menu::load(char* loadString) 1413 { 1414 MenuItem* tmpItem = firstItem; 1415 bool foundItem = false; 1416 while (tmpItem) 1417 { 1418 if (!strcmp(loadString, tmpItem->name)) 1419 {foundItem = true; break;} 1420 tmpItem = tmpItem->next; 1421 } 1422 if (foundItem) 1423 this->value = tmpItem->itemNumber; 1424 else 1425 { 1426 this->value = 0; 1427 PRINTF(2)("Sorry, but %s has not been found in the Itemlist of %s\n", loadString, this->title); 1428 } 1429 PRINTF(3)( "Loading %s: setting to %d\n", this->title, this->value); 1430 this->redraw(); 1517 1431 } 1518 1432 … … 1520 1434 \brief appends a new Item to the Menu-List. 1521 1435 \param itemName the itemName to be appendet. 1522 1523 \todo make the item-list readable without GTK1524 1436 */ 1525 1437 void Menu::addItem(char* itemName) 1526 1438 { 1527 #ifdef HAVE_GTK2 1528 this->item = gtk_menu_item_new_with_label(itemName); 1529 gtk_menu_shell_append(GTK_MENU_SHELL(this->menu), this->item); 1530 #endif /* HAVE_GTK2 */ 1439 if (!this->firstItem) 1440 { 1441 this->firstItem = this->currItem = new MenuItem; 1442 this->currItem->itemNumber = 0; 1443 } 1444 else 1445 { 1446 int tmpI = this->currItem->itemNumber; 1447 this->currItem = this->currItem->next = new MenuItem; 1448 this->currItem->itemNumber = tmpI+1; 1449 } 1450 1451 this->currItem->name = new char[strlen(itemName)+1]; 1452 strcpy(this->currItem->name, itemName); 1453 1454 #ifdef HAVE_GTK2 1455 this->currItem->item = gtk_menu_item_new_with_label(itemName); 1456 gtk_menu_shell_append(GTK_MENU_SHELL(this->menu), this->currItem->item); 1457 #endif /* HAVE_GTK2 */ 1458 this->currItem->next = NULL; 1531 1459 } 1532 1460 … … 1551 1479 #else /* HAVE_GTK2 */ 1552 1480 char tmpChar[20]; 1553 cout << "\nPlease give me a new value for " << this->title << "(def ualt:" << this->defaultValue << "): ";1481 cout << "\nPlease give me a new value for " << this->title << "(default:" << this->defaultValue << "): "; 1554 1482 cin >> tmpChar; 1555 1483 this->value = atoi(tmpChar); … … 1578 1506 OptionLabel::~OptionLabel(void) 1579 1507 { 1580 this->destroy();1581 }1582 1583 /**1584 \brief Initializes an OptionLabel1585 */1586 void OptionLabel::init(void)1587 {1588 this->isOption = 5;1589 static_cast<Option*>(this)->init();1590 1591 cValue = NULL;1592 1593 #ifdef HAVE_GTK21594 this->widget = gtk_label_new("");1595 #endif /* HAVE_GTK2 */1596 }1597 1598 /**1599 \brief Destroys a OptionLabel.1600 */1601 void OptionLabel::destroy(void)1602 {1603 1508 if (this->title) 1604 1509 PRINTF(3)("deleting the OptionLabel: %s\n", this->title); … … 1607 1512 if (this->cValue) 1608 1513 delete []this->cValue; 1609 1610 static_cast<Option*>(this)->destroy(); 1611 } 1612 1514 } 1515 1516 /** 1517 \brief Initializes an OptionLabel 1518 */ 1519 void OptionLabel::init(void) 1520 { 1521 this->isOption = 5; 1522 cValue = NULL; 1523 1524 #ifdef HAVE_GTK2 1525 this->widget = gtk_label_new(""); 1526 #endif /* HAVE_GTK2 */ 1527 } 1613 1528 1614 1529 /** … … 1628 1543 1629 1544 /** 1630 \brief Sets a ned Title to the OptionLabel.1631 \param title The now title of the OptionLabel.1632 */1633 void OptionLabel::setTitle(char* title)1634 {1635 if (this->title)1636 delete []this->title;1637 this->title = new char [strlen(title)+1];1638 strcpy(this->title, title);1639 this->redraw();1640 }1641 1642 /**1643 1545 \brief Redraws an OptionLabel(not implemented yet, but it works). 1644 1546 */ … … 1666 1568 1667 1569 /** 1570 \brief creates the Optionlabel save-string 1571 \returns the String to save. 1572 */ 1573 char* OptionLabel::save(void) 1574 { 1575 return cValue; 1576 } 1577 1578 /** 1579 \brief loads an Option from of its loadString 1580 \param loadString the string from which to load the data from 1581 */ 1582 void OptionLabel::load(char* loadString) 1583 { 1584 PRINTF(3)( "Loading %s: setting to %s\n", this->title, loadString); 1585 this->setValue(loadString); 1586 } 1587 1588 /** 1668 1589 \brief Creates a new default Label with no Text. 1669 1590 You migth consider adding Label::setTitle with this. … … 1689 1610 Label::~Label(void) 1690 1611 { 1691 this->destroy();1692 }1693 1694 /**1695 \brief initializes a new Label1696 */1697 void Label::init(void)1698 {1699 this->isOption = 0;1700 1701 static_cast<Widget*>(this)->init();1702 1703 #ifdef HAVE_GTK21704 this->widget = gtk_label_new("");1705 gtk_label_set_line_wrap(GTK_LABEL(this->widget), TRUE);1706 #endif /* HAVE_GTK2 */1707 }1708 1709 /**1710 \brief Destroys a Label.1711 */1712 void Label::destroy(void)1713 {1714 1612 if (this->title) 1715 1613 PRINTF(3)("deleting the Label: %s\n", this->title); 1716 1614 else 1717 1615 PRINTF(3)("deleting the Label.\n"); 1718 1719 static_cast<Widget*>(this)->destroy(); 1616 } 1617 1618 /** 1619 \brief initializes a new Label 1620 */ 1621 void Label::init(void) 1622 { 1623 this->isOption = 0; 1624 1625 #ifdef HAVE_GTK2 1626 this->widget = gtk_label_new(""); 1627 gtk_label_set_line_wrap(GTK_LABEL(this->widget), TRUE); 1628 #endif /* HAVE_GTK2 */ 1720 1629 } 1721 1630 … … 1813 1722 ProgressBar::~ProgressBar(void) 1814 1723 { 1815 this->destroy(); 1724 if (this->title) 1725 PRINTF(3)("deleting the ProgressBar: %s\n", this->title); 1726 else 1727 PRINTF(3)("deleting the ProgressBar.\n"); 1816 1728 } 1817 1729 … … 1825 1737 this->totalSize = 0.0; 1826 1738 1827 static_cast<Widget*>(this)->init();1828 1739 #ifdef HAVE_GTK2 1829 1740 this->adjustment =(GtkAdjustment*)gtk_adjustment_new(0, 0, 100, 0, 0, 0); 1830 1741 this->widget = gtk_progress_bar_new_with_adjustment(this->adjustment); 1831 1742 #endif /* HAVE_GTK2 */ 1832 }1833 1834 /**1835 \brief Destroys a ProgressBar.1836 */1837 void ProgressBar::destroy(void)1838 {1839 if (this->title)1840 PRINTF(3)("deleting the ProgressBar: %s\n", this->title);1841 else1842 PRINTF(3)("deleting the ProgressBar.\n");1843 1844 static_cast<Widget*>(this)->destroy();1845 }1846 1847 /**1848 \brief Sets a ned Title to the ProgressBar.1849 \param title The now title of the ProgressBar.1850 */1851 void ProgressBar::setTitle(char* title)1852 {1853 if (this->title)1854 delete []this->title;1855 this->title = new char [strlen(title)+1];1856 strcpy(this->title, title);1857 1743 } 1858 1744 … … 1913 1799 Image::~Image(void) 1914 1800 { 1915 this->destroy();1916 }1917 1918 /**1919 \brief Initializes a new Image1920 */1921 void Image::init(void)1922 {1923 isOption = 0;1924 1925 static_cast<Widget*>(this)->init();1926 }1927 1928 /**1929 \brief Destroys a Image.1930 */1931 void Image::destroy(void)1932 {1933 1801 if (this->title) 1934 1802 PRINTF(3)("deleting the Image: %s\n", this->title); 1935 1803 else 1936 1804 PRINTF(3)("deleting the Image.\n"); 1937 1938 static_cast<Widget*>(this)->destroy(); 1939 } 1940 1941 /** 1942 \brief Sets a ned Title to the Image. 1943 \param title The now title of the OptionLabel. 1944 */ 1945 void Image::setTitle(char* title) 1946 { 1947 if (this->title) 1948 delete []this->title; 1949 this->title = new char [strlen(title)+1]; 1950 strcpy(this->title, title); 1951 } 1805 } 1806 1807 /** 1808 \brief Initializes a new Image 1809 */ 1810 void Image::init(void) 1811 { 1812 isOption = 0; 1813 } -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui_gtk.h
r3605 r3746 39 39 40 40 public: 41 Widget(void); 41 42 virtual ~Widget(void); 42 void init(void);43 void destroy(void);44 43 45 44 void show(void); 46 45 void hide(void); 47 46 void setSize(int width, int height); 48 virtual void setTitle(c har* title) = 0; //!< An abstract Function, that sets the title of Widgets.47 virtual void setTitle(const char* title); //!< An abstract Function, that sets the title of Widgets. 49 48 50 49 Widget* findWidgetByName(char* name, unsigned int depth); … … 90 89 { 91 90 public: 91 Packer(void); 92 virtual ~Packer(void); 93 92 94 Widget* down; //!< this points to the Widget below this. 93 95 char* groupName; //!< For each Packer you can specify a Groupname under which the lowerWidgets will be saved. 94 95 void init(void);96 void destroy(void);97 96 98 97 void setGroupName(char* name); … … 115 114 116 115 public: 117 void init(void); 118 void destroy(void); 119 116 Container(void); 117 virtual ~Container(void); 120 118 // void setBorderWidth(int borderwidth); 121 // virtual void setTitle(char* title) = 0;122 119 void fill(Widget* lowerWidget); 123 120 }; … … 138 135 Window(void); 139 136 Window(char* windowName); 140 ~Window(void); 141 void init(void); 142 void destroy(void); 143 144 void setTitle(char* title); 137 virtual ~Window(void); 138 void init(void); 139 140 void setTitle(const char* title); 145 141 void showall(void); 146 142 void open(void); … … 164 160 Frame(void); 165 161 Frame(char* frameName); 166 ~Frame(void); 167 void init(void); 168 void destroy(void); 169 170 void setTitle(char* title); 162 virtual ~Frame(void); 163 void init(void); 164 165 void setTitle(const char* title); 171 166 }; 172 167 … … 180 175 EventBox(void); 181 176 EventBox(char* eventBoxName); 182 ~EventBox(void); 183 void init(void); 184 void destroy(void); 185 186 void setTitle(char* title); 177 virtual ~EventBox(void); 178 void init(void); 187 179 }; 188 180 … … 198 190 Box(void); 199 191 Box(char boxtype); 200 ~Box(void);192 virtual ~Box(void); 201 193 void init(char boxtype); 202 void destroy(void);203 194 204 195 void fill(Widget* lowerWidget); 205 206 void setTitle(char* title);207 196 }; 208 197 … … 217 206 218 207 public: 219 void init(void); 220 void destroy(void); 208 Option(void); 209 virtual ~Option(void); 210 void init(void); 221 211 222 212 int value; //!< every option has a value either true or false(0,1) or something else like 25 for 25% of the volume … … 227 217 void saveability(void); 228 218 void saveability(bool isSaveable); 219 virtual char* save(void); 220 virtual void load(char* loadString); 221 229 222 bool isSaveable(void); 230 223 void setFlagName(char* flagname, int defaultvalue); … … 246 239 public: 247 240 Button(char* buttonname); 248 ~Button(void); 249 void init(void); 250 void destroy(void); 251 252 void setTitle(char* title); 241 virtual ~Button(void); 242 void init(void); 243 244 void setTitle(const char* title); 253 245 void redraw(void); 254 246 void changeOption(void); … … 262 254 public: 263 255 CheckButton(char* buttonname); 264 ~CheckButton(void); 265 void init(void); 266 void destroy(void); 267 268 void setTitle(char* title); 256 virtual ~CheckButton(void); 257 void init(void); 258 259 void setTitle(const char* title); 269 260 bool isActive(void); //!< a Bool value to see, if this CheckButton is active. 270 261 void redraw(void); … … 283 274 public: 284 275 Slider(char* slidername, int start, int end); 285 ~Slider(void);276 virtual ~Slider(void); 286 277 void init(int start, int end); 287 void destroy(void); 288 289 void setTitle(char* title); 278 290 279 void setValue(int value); 291 280 void redraw(void); … … 299 288 #ifdef HAVE_GTK2 300 289 GtkWidget* menu; //!< The menu That will hold the Options. 301 GtkWidget* item; //!< One Item From a Menu. 302 #endif /* HAVE_GTK2 */ 303 va_list itemlist; //!< The list to readin multiple Options. 304 305 public: 290 #endif /* HAVE_GTK2 */ 291 292 //! A struct to handle the MenuItems 293 struct MenuItem 294 { 295 char* name; //!< The name of this entry. 296 int itemNumber; //!< The n'th entry of this menu; 297 #ifdef HAVE_GTK2 298 GtkWidget* item; //!< One Item From a Menu. 299 #endif /* HAVE_GTK2 */ 300 MenuItem* next; //!< Pointer to the next MenuItem. 301 }; 302 MenuItem* firstItem; //!< Pointer to the first Item. 303 MenuItem* currItem; //!< Pointer to the current Item. 304 305 public: 306 Menu(const char* menuName); 306 307 Menu(char* menuname, ...); 307 ~Menu(void); 308 void init(void); 309 void destroy(void); 310 311 void setTitle(char* title); 308 virtual ~Menu(void); 309 void init(void); 310 311 virtual char* save(void); 312 virtual void load(char* loadString); 313 312 314 void addItem(char* itemName); 313 315 void redraw(void); … … 322 324 public: 323 325 OptionLabel(char* label, char* value); 324 ~OptionLabel(void); 325 void init(void); 326 void destroy(void); 327 326 virtual ~OptionLabel(void); 327 void init(void); 328 328 329 329 void setValue(char* newValue); 330 void setTitle(char* title); 330 331 virtual char* save(void); 332 virtual void load(char* loadString); 333 331 334 void redraw(void); 332 335 void changeOption(void); … … 342 345 Label(void); 343 346 Label(char* text); 344 ~Label(void); 345 void init(void); 346 void destroy(void); 347 virtual ~Label(void); 348 void init(void); 347 349 348 350 void setTitle(char* text); … … 359 361 ProgressBar(void); 360 362 ProgressBar(char* label); 361 ~ProgressBar(void); 362 void init(void); 363 void destroy(void); 364 365 void setTitle(char* title); 363 virtual ~ProgressBar(void); 364 void init(void); 365 366 366 void setProgress(double progress); 367 367 void setTotalSize(double totalSize); … … 385 385 public: 386 386 Image(char* imgaename); 387 ~Image(void); 388 void init(void); 389 void destroy(void); 390 391 void setTitle(char* title); 387 virtual ~Image(void); 388 void init(void); 392 389 }; 393 390 -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui_video.cc
r3499 r3746 27 27 #include "orxonox_gui_video.h" 28 28 29 #include "glincl.h" 30 29 31 /** 30 32 \brief Creates the Video-Option-Frame … … 40 42 this->fullscreen->saveability(); 41 43 this->videoBox->fill(this->fullscreen); 42 this->resolution = new Menu("Resolution", "640x480", "800x600", "1024x768", "1280x1024", "1400x1050", "1600x1200", "1920x1200", "lastItem"); 44 this->resolution = new Menu("Resolution"); 45 this->getResolutions(this->resolution); 43 46 this->resolution->saveability(); 44 47 this->videoBox->fill(this->resolution); … … 146 149 } 147 150 151 void OrxonoxGuiVideo::getResolutions(Menu* menu) 152 { 153 SDL_Init(SDL_INIT_VIDEO); 154 SDL_Rect **modes; 155 int i; 156 int x = 0,y =0; // check for difference 157 char tmpChar[100]; 158 159 /* Get available fullscreen/hardware modes */ 160 modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE); 161 162 /* Check is there are any modes available */ 163 if(modes == (SDL_Rect **)0){ 164 PRINTF(2)("No video-modes available!\n"); 165 exit(-1); 166 } 167 168 /* Check if our resolution is restricted */ 169 if(modes == (SDL_Rect **)-1){ 170 PRINTF(2)("All resolutions available.\n"); 171 } 172 else{ 173 /* Print valid modes */ 174 PRINT(4)("Available Modes\n"); 175 for(i = 0; modes[i] ;++i) 176 { 177 if (x != modes[i]->w || y != modes[i]->h) 178 { 179 PRINT(4)(" %d x %d\n", modes[i]->w, modes[i]->h); 180 sprintf(tmpChar, "%dx%d", modes[i]->w, modes[i]->h); 181 menu->addItem(tmpChar); 182 x = modes[i]->w; y = modes[i]->h; 183 } 184 } 185 } 186 SDL_Quit(); 187 } -
orxonox/branches/levelloader/src/lib/gui/gui/orxonox_gui_video.h
r3499 r3746 45 45 OrxonoxGuiVideo(void); 46 46 ~OrxonoxGuiVideo(void); 47 48 Widget* getWidget(void); 49 50 void getResolutions(Menu* menu); 47 51 48 Widget* getWidget(void); 52 49 53 }; 50 54 #endif /* _ORXONOX_GUI_VIDEO_H */
Note: See TracChangeset
for help on using the changeset viewer.