Changeset 3423 in orxonox.OLD for orxonox/trunk
- Timestamp:
- Feb 27, 2005, 7:11:19 PM (20 years ago)
- Location:
- orxonox/trunk
- Files:
-
- 26 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
orxonox/trunk/Makefile.in
r3377 r3423 85 85 CPP = @CPP@ 86 86 CPPFLAGS = @CPPFLAGS@ 87 CURL_CFLAGS = @CURL_CFLAGS@ 88 CURL_LIBS = @CURL_LIBS@ 87 89 CXX = @CXX@ 88 90 CXXDEPMODE = @CXXDEPMODE@ … … 100 102 EGREP = @EGREP@ 101 103 EXEEXT = @EXEEXT@ 104 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ 105 GTHREAD_LIBS = @GTHREAD_LIBS@ 102 106 GTK2_CFLAGS = @GTK2_CFLAGS@ 103 107 GTK2_LIBS = @GTK2_LIBS@ 108 HAVE_CURL_FALSE = @HAVE_CURL_FALSE@ 109 HAVE_CURL_TRUE = @HAVE_CURL_TRUE@ 110 HAVE_GTHREAD_FALSE = @HAVE_GTHREAD_FALSE@ 111 HAVE_GTHREAD_TRUE = @HAVE_GTHREAD_TRUE@ 104 112 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 105 113 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ -
orxonox/trunk/config.h.in
r3205 r3423 7 7 #undef HAVE_BZERO 8 8 9 /* if we have CURL */ 10 #undef HAVE_CURL 11 12 /* Define to 1 if you have the <curl/curl.h> header file. */ 13 #undef HAVE_CURL_CURL_H 14 9 15 /* Define to 1 if you have the <GL/glu.h> header file. */ 10 16 #undef HAVE_GL_GLU_H … … 12 18 /* Define to 1 if you have the <GL/gl.h> header file. */ 13 19 #undef HAVE_GL_GL_H 20 21 /* if we have gThread */ 22 #undef HAVE_GTHREAD 14 23 15 24 /* if we have GTK2 */ … … 40 49 /* Define to 1 if you have the <png.h> header file. */ 41 50 #undef HAVE_PNG_H 51 52 /* Define to 1 if you have the <pthread.h> header file. */ 53 #undef HAVE_PTHREAD_H 42 54 43 55 /* Define to 1 if you have the <SDL/SDL.h> header file. */ -
orxonox/trunk/configure
r3385 r3423 312 312 #endif" 313 313 314 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP DEBUG SUB_PROJECTS_TRUE SUB_PROJECTS_FALSE DOXYGEN DOXYGEN_TRUE DOXYGEN_FALSE MSBITFIELDS GTK2_LIBS GTK2_CFLAGS HAVE_GTK2_TRUE HAVE_GTK2_FALSE LIBOBJS LTLIBOBJS'314 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP DEBUG SUB_PROJECTS_TRUE SUB_PROJECTS_FALSE DOXYGEN DOXYGEN_TRUE DOXYGEN_FALSE MSBITFIELDS GTK2_LIBS GTK2_CFLAGS HAVE_GTK2_TRUE HAVE_GTK2_FALSE GTHREAD_LIBS GTHREAD_CFLAGS HAVE_GTHREAD_TRUE HAVE_GTHREAD_FALSE CURL_LIBS CURL_CFLAGS HAVE_CURL_TRUE HAVE_CURL_FALSE LIBOBJS LTLIBOBJS' 315 315 ac_subst_files='' 316 316 … … 873 873 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) 874 874 --without-gtk Prevents GTK from being loaded 875 --without-gthread Prevents gThread from being loaded 876 --without-pthread Prevents pthread from being loaded 877 --without-curl Prevents libcURL from being loaded 875 878 --without-sdl-image Prevents SDL_image from being loaded 876 879 … … 3886 3889 echo "no" 3887 3890 fi 3891 3892 ## gThread-disabled 3893 echo "$as_me:$LINENO: checking if gThread should be enabled" >&5 3894 echo $ECHO_N "checking if gThread should be enabled... $ECHO_C" >&6 3895 3896 # Check whether --with-gthread or --without-gthread was given. 3897 if test "${with_gthread+set}" = set; then 3898 withval="$with_gthread" 3899 def_gthread=no 3900 else 3901 def_gthread=yes 3902 fi; 3903 if test "$def_gthread" = yes; then 3904 echo "yes" 3905 fi 3906 if test "$def_gthread" = no; then 3907 echo "no" 3908 fi 3909 3910 ## pthread-disabled 3911 echo "$as_me:$LINENO: checking if pthread should be enabled" >&5 3912 echo $ECHO_N "checking if pthread should be enabled... $ECHO_C" >&6 3913 3914 # Check whether --with-pthread or --without-pthread was given. 3915 if test "${with_pthread+set}" = set; then 3916 withval="$with_pthread" 3917 def_pthread=no 3918 else 3919 def_pthread=yes 3920 fi; 3921 if test "$def_pthread" = yes; then 3922 echo "yes" 3923 fi 3924 if test "$def_pthread" = no; then 3925 echo "no" 3926 fi 3927 3928 ## libCurl disabled? 3929 echo "$as_me:$LINENO: checking if libcURL should be enabled" >&5 3930 echo $ECHO_N "checking if libcURL should be enabled... $ECHO_C" >&6 3931 3932 # Check whether --with-curl or --without-curl was given. 3933 if test "${with_curl+set}" = set; then 3934 withval="$with_curl" 3935 def_curl=no 3936 else 3937 def_curl=yes 3938 fi; 3939 if test "$def_curl" = yes; then 3940 echo "yes" 3941 fi 3942 if test "$def_curl" = no; then 3943 echo "no" 3944 fi 3945 3888 3946 ### SDL_image-disable 3889 3947 def_sdl_image=yes … … 6685 6743 6686 6744 6687 6688 6689 #checking for pthread libs 6690 # AC_CHECK_LIB([pthread], [main], FOUND_pthread=yes) 6691 # if test "$FOUND_pthread" = "yes" ; then 6692 # LIBS="$LIBS -lpthread" 6693 # fi 6694 6695 6696 # FIXME: Replace `main' with a function in `-lm': 6697 6698 echo "$as_me:$LINENO: checking for main in -lm" >&5 6699 echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6 6700 if test "${ac_cv_lib_m_main+set}" = set; then 6701 echo $ECHO_N "(cached) $ECHO_C" >&6 6702 else 6703 ac_check_lib_save_LIBS=$LIBS 6704 LIBS="-lm $LIBS" 6705 cat >conftest.$ac_ext <<_ACEOF 6706 /* confdefs.h. */ 6707 _ACEOF 6708 cat confdefs.h >>conftest.$ac_ext 6709 cat >>conftest.$ac_ext <<_ACEOF 6710 /* end confdefs.h. */ 6711 6712 6713 int 6714 main () 6715 { 6716 main (); 6717 ; 6718 return 0; 6719 } 6720 _ACEOF 6721 rm -f conftest.$ac_objext conftest$ac_exeext 6722 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 6723 (eval $ac_link) 2>conftest.er1 6724 ac_status=$? 6725 grep -v '^ *+' conftest.er1 >conftest.err 6726 rm -f conftest.er1 6727 cat conftest.err >&5 6728 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6729 (exit $ac_status); } && 6730 { ac_try='test -z "$ac_c_werror_flag" 6731 || test ! -s conftest.err' 6732 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6733 (eval $ac_try) 2>&5 6734 ac_status=$? 6735 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6736 (exit $ac_status); }; } && 6737 { ac_try='test -s conftest$ac_exeext' 6738 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6739 (eval $ac_try) 2>&5 6740 ac_status=$? 6741 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6742 (exit $ac_status); }; }; then 6743 ac_cv_lib_m_main=yes 6744 else 6745 echo "$as_me: failed program was:" >&5 6746 sed 's/^/| /' conftest.$ac_ext >&5 6747 6748 ac_cv_lib_m_main=no 6749 fi 6750 rm -f conftest.err conftest.$ac_objext \ 6751 conftest$ac_exeext conftest.$ac_ext 6752 LIBS=$ac_check_lib_save_LIBS 6753 fi 6754 echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 6755 echo "${ECHO_T}$ac_cv_lib_m_main" >&6 6756 if test $ac_cv_lib_m_main = yes; then 6757 cat >>confdefs.h <<_ACEOF 6758 #define HAVE_LIBM 1 6759 _ACEOF 6760 6761 LIBS="-lm $LIBS" 6762 6763 fi 6764 6765 6766 6767 # Checks for header files. 6768 echo "$as_me:$LINENO: checking for ANSI C header files" >&5 6769 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 6770 if test "${ac_cv_header_stdc+set}" = set; then 6771 echo $ECHO_N "(cached) $ECHO_C" >&6 6772 else 6773 cat >conftest.$ac_ext <<_ACEOF 6774 /* confdefs.h. */ 6775 _ACEOF 6776 cat confdefs.h >>conftest.$ac_ext 6777 cat >>conftest.$ac_ext <<_ACEOF 6778 /* end confdefs.h. */ 6779 #include <stdlib.h> 6780 #include <stdarg.h> 6781 #include <string.h> 6782 #include <float.h> 6783 6784 int 6785 main () 6786 { 6787 6788 ; 6789 return 0; 6790 } 6791 _ACEOF 6792 rm -f conftest.$ac_objext 6793 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 6794 (eval $ac_compile) 2>conftest.er1 6795 ac_status=$? 6796 grep -v '^ *+' conftest.er1 >conftest.err 6797 rm -f conftest.er1 6798 cat conftest.err >&5 6799 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6800 (exit $ac_status); } && 6801 { ac_try='test -z "$ac_c_werror_flag" 6802 || test ! -s conftest.err' 6803 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6804 (eval $ac_try) 2>&5 6805 ac_status=$? 6806 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6807 (exit $ac_status); }; } && 6808 { ac_try='test -s conftest.$ac_objext' 6809 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6810 (eval $ac_try) 2>&5 6811 ac_status=$? 6812 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6813 (exit $ac_status); }; }; then 6814 ac_cv_header_stdc=yes 6815 else 6816 echo "$as_me: failed program was:" >&5 6817 sed 's/^/| /' conftest.$ac_ext >&5 6818 6819 ac_cv_header_stdc=no 6820 fi 6821 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 6822 6823 if test $ac_cv_header_stdc = yes; then 6824 # SunOS 4.x string.h does not declare mem*, contrary to ANSI. 6825 cat >conftest.$ac_ext <<_ACEOF 6826 /* confdefs.h. */ 6827 _ACEOF 6828 cat confdefs.h >>conftest.$ac_ext 6829 cat >>conftest.$ac_ext <<_ACEOF 6830 /* end confdefs.h. */ 6831 #include <string.h> 6832 6833 _ACEOF 6834 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 6835 $EGREP "memchr" >/dev/null 2>&1; then 6836 : 6837 else 6838 ac_cv_header_stdc=no 6839 fi 6840 rm -f conftest* 6841 6842 fi 6843 6844 if test $ac_cv_header_stdc = yes; then 6845 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. 6846 cat >conftest.$ac_ext <<_ACEOF 6847 /* confdefs.h. */ 6848 _ACEOF 6849 cat confdefs.h >>conftest.$ac_ext 6850 cat >>conftest.$ac_ext <<_ACEOF 6851 /* end confdefs.h. */ 6852 #include <stdlib.h> 6853 6854 _ACEOF 6855 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 6856 $EGREP "free" >/dev/null 2>&1; then 6857 : 6858 else 6859 ac_cv_header_stdc=no 6860 fi 6861 rm -f conftest* 6862 6863 fi 6864 6865 if test $ac_cv_header_stdc = yes; then 6866 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. 6867 if test "$cross_compiling" = yes; then 6868 : 6869 else 6870 cat >conftest.$ac_ext <<_ACEOF 6871 /* confdefs.h. */ 6872 _ACEOF 6873 cat confdefs.h >>conftest.$ac_ext 6874 cat >>conftest.$ac_ext <<_ACEOF 6875 /* end confdefs.h. */ 6876 #include <ctype.h> 6877 #if ((' ' & 0x0FF) == 0x020) 6878 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') 6879 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) 6880 #else 6881 # define ISLOWER(c) \ 6882 (('a' <= (c) && (c) <= 'i') \ 6883 || ('j' <= (c) && (c) <= 'r') \ 6884 || ('s' <= (c) && (c) <= 'z')) 6885 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) 6886 #endif 6887 6888 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) 6889 int 6890 main () 6891 { 6892 int i; 6893 for (i = 0; i < 256; i++) 6894 if (XOR (islower (i), ISLOWER (i)) 6895 || toupper (i) != TOUPPER (i)) 6896 exit(2); 6897 exit (0); 6898 } 6899 _ACEOF 6900 rm -f conftest$ac_exeext 6901 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 6902 (eval $ac_link) 2>&5 6903 ac_status=$? 6904 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6905 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' 6906 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 6907 (eval $ac_try) 2>&5 6908 ac_status=$? 6909 echo "$as_me:$LINENO: \$? = $ac_status" >&5 6910 (exit $ac_status); }; }; then 6911 : 6912 else 6913 echo "$as_me: program exited with status $ac_status" >&5 6914 echo "$as_me: failed program was:" >&5 6915 sed 's/^/| /' conftest.$ac_ext >&5 6916 6917 ( exit $ac_status ) 6918 ac_cv_header_stdc=no 6919 fi 6920 rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext 6921 fi 6922 fi 6923 fi 6924 echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 6925 echo "${ECHO_T}$ac_cv_header_stdc" >&6 6926 if test $ac_cv_header_stdc = yes; then 6927 6928 cat >>confdefs.h <<\_ACEOF 6929 #define STDC_HEADERS 1 6930 _ACEOF 6931 6932 fi 6933 6934 6935 6936 for ac_header in stdlib.h string.h 6745 ## checking for gThread 6746 if test "$def_gthread" = yes; then 6747 6748 echo "$as_me:$LINENO: checking for gthread" >&5 6749 echo $ECHO_N "checking for gthread... $ECHO_C" >&6 6750 if `pkg-config --exists gthread-2.0`; then 6751 echo "yes" 6752 have_gthread=yes 6753 GTHREAD_LIBS=`pkg-config --libs gthread-2.0` 6754 GTHREAD_CFLAGS=`pkg-config --cflags gthread-2.0` 6755 6756 cat >>confdefs.h <<_ACEOF 6757 #define HAVE_GTHREAD 1 6758 _ACEOF 6759 6760 else 6761 echo "no" 6762 fi 6763 6764 fi 6765 6766 6767 6768 6769 if test x$have_gthread = xyes; then 6770 HAVE_GTHREAD_TRUE= 6771 HAVE_GTHREAD_FALSE='#' 6772 else 6773 HAVE_GTHREAD_TRUE='#' 6774 HAVE_GTHREAD_FALSE= 6775 fi 6776 6777 6778 ## checking for libcURL 6779 if test "$def_curl" = yes; then 6780 6781 6782 for ac_header in curl/curl.h 6937 6783 do 6938 6784 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` … … 7078 6924 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 7079 6925 _ACEOF 7080 6926 curlHeader="yes" 6927 else 6928 curlHeader="no" 7081 6929 fi 7082 6930 7083 6931 done 7084 6932 7085 7086 # Checks for typedefs, structures, and compiler characteristics. 7087 echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 7088 echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6 7089 if test "${ac_cv_header_stdbool_h+set}" = set; then 6933 echo "$as_me:$LINENO: checking for main in -lcurl" >&5 6934 echo $ECHO_N "checking for main in -lcurl... $ECHO_C" >&6 6935 if test "${ac_cv_lib_curl_main+set}" = set; then 7090 6936 echo $ECHO_N "(cached) $ECHO_C" >&6 7091 6937 else 7092 cat >conftest.$ac_ext <<_ACEOF 6938 ac_check_lib_save_LIBS=$LIBS 6939 LIBS="-lcurl $LIBS" 6940 cat >conftest.$ac_ext <<_ACEOF 7093 6941 /* confdefs.h. */ 7094 6942 _ACEOF … … 7097 6945 /* end confdefs.h. */ 7098 6946 7099 #include <stdbool.h>7100 #ifndef bool7101 # error bool is not defined7102 #endif7103 #ifndef false7104 # error false is not defined7105 #endif7106 #if false7107 # error false is not 07108 #endif7109 #ifndef true7110 # error true is not defined7111 #endif7112 #if true != 17113 # error true is not 17114 #endif7115 #ifndef __bool_true_false_are_defined7116 # error __bool_true_false_are_defined is not defined7117 #endif7118 7119 struct s { _Bool s: 1; _Bool t; } s;7120 7121 char a[true == 1 ? 1 : -1];7122 char b[false == 0 ? 1 : -1];7123 char c[__bool_true_false_are_defined == 1 ? 1 : -1];7124 char d[(bool) -0.5 == true ? 1 : -1];7125 bool e = &s;7126 char f[(_Bool) -0.0 == false ? 1 : -1];7127 char g[true];7128 char h[sizeof (_Bool)];7129 char i[sizeof s.t];7130 6947 7131 6948 int 7132 6949 main () 7133 6950 { 7134 return !a + !b + !c + !d + !e + !f + !g + !h + !i;6951 main (); 7135 6952 ; 7136 6953 return 0; 7137 6954 } 7138 6955 _ACEOF 7139 rm -f conftest.$ac_objext 7140 if { (eval echo "$as_me:$LINENO: \"$ac_ compile\"") >&57141 (eval $ac_ compile) 2>conftest.er16956 rm -f conftest.$ac_objext conftest$ac_exeext 6957 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 6958 (eval $ac_link) 2>conftest.er1 7142 6959 ac_status=$? 7143 6960 grep -v '^ *+' conftest.er1 >conftest.err … … 7153 6970 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7154 6971 (exit $ac_status); }; } && 7155 { ac_try='test -s conftest .$ac_objext'6972 { ac_try='test -s conftest$ac_exeext' 7156 6973 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7157 6974 (eval $ac_try) 2>&5 … … 7159 6976 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7160 6977 (exit $ac_status); }; }; then 7161 ac_cv_ header_stdbool_h=yes6978 ac_cv_lib_curl_main=yes 7162 6979 else 7163 6980 echo "$as_me: failed program was:" >&5 7164 6981 sed 's/^/| /' conftest.$ac_ext >&5 7165 6982 7166 ac_cv_header_stdbool_h=no 7167 fi 7168 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7169 fi 7170 echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 7171 echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6 7172 echo "$as_me:$LINENO: checking for _Bool" >&5 7173 echo $ECHO_N "checking for _Bool... $ECHO_C" >&6 7174 if test "${ac_cv_type__Bool+set}" = set; then 7175 echo $ECHO_N "(cached) $ECHO_C" >&6 7176 else 7177 cat >conftest.$ac_ext <<_ACEOF 7178 /* confdefs.h. */ 7179 _ACEOF 7180 cat confdefs.h >>conftest.$ac_ext 7181 cat >>conftest.$ac_ext <<_ACEOF 7182 /* end confdefs.h. */ 7183 $ac_includes_default 7184 int 7185 main () 7186 { 7187 if ((_Bool *) 0) 7188 return 0; 7189 if (sizeof (_Bool)) 7190 return 0; 7191 ; 7192 return 0; 7193 } 7194 _ACEOF 7195 rm -f conftest.$ac_objext 7196 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 7197 (eval $ac_compile) 2>conftest.er1 7198 ac_status=$? 7199 grep -v '^ *+' conftest.er1 >conftest.err 7200 rm -f conftest.er1 7201 cat conftest.err >&5 7202 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7203 (exit $ac_status); } && 7204 { ac_try='test -z "$ac_c_werror_flag" 7205 || test ! -s conftest.err' 7206 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7207 (eval $ac_try) 2>&5 7208 ac_status=$? 7209 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7210 (exit $ac_status); }; } && 7211 { ac_try='test -s conftest.$ac_objext' 7212 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7213 (eval $ac_try) 2>&5 7214 ac_status=$? 7215 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7216 (exit $ac_status); }; }; then 7217 ac_cv_type__Bool=yes 7218 else 7219 echo "$as_me: failed program was:" >&5 7220 sed 's/^/| /' conftest.$ac_ext >&5 7221 7222 ac_cv_type__Bool=no 7223 fi 7224 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7225 fi 7226 echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 7227 echo "${ECHO_T}$ac_cv_type__Bool" >&6 7228 if test $ac_cv_type__Bool = yes; then 6983 ac_cv_lib_curl_main=no 6984 fi 6985 rm -f conftest.err conftest.$ac_objext \ 6986 conftest$ac_exeext conftest.$ac_ext 6987 LIBS=$ac_check_lib_save_LIBS 6988 fi 6989 echo "$as_me:$LINENO: result: $ac_cv_lib_curl_main" >&5 6990 echo "${ECHO_T}$ac_cv_lib_curl_main" >&6 6991 if test $ac_cv_lib_curl_main = yes; then 6992 FOUND_curl=yes 6993 fi 6994 6995 if test x$curlHeader = xyes & test x$FOUND_curl = xyes ; then 6996 have_curl=yes 6997 CURL_LIBS=`curl-config --libs` 6998 CURLCFLAGS=`curl-config --cflags` 7229 6999 7230 7000 cat >>confdefs.h <<_ACEOF 7231 #define HAVE__BOOL 1 7232 _ACEOF 7233 7234 7235 fi 7236 7237 if test $ac_cv_header_stdbool_h = yes; then 7238 7239 cat >>confdefs.h <<\_ACEOF 7240 #define HAVE_STDBOOL_H 1 7241 _ACEOF 7242 7243 fi 7244 7245 7246 # Checks for library functions. 7247 7248 for ac_header in stdlib.h 7001 #define HAVE_CURL 1 7002 _ACEOF 7003 7004 else 7005 have_curl=no 7006 fi 7007 7008 fi 7009 7010 7011 7012 7013 if test x$have_curl = xyes; then 7014 HAVE_CURL_TRUE= 7015 HAVE_CURL_FALSE='#' 7016 else 7017 HAVE_CURL_TRUE='#' 7018 HAVE_CURL_FALSE= 7019 fi 7020 7021 7022 7023 ##checking for pthread 7024 if test x$def_pthread = xyes ; then 7025 if test x$have_gthread = xyes ; then 7026 7027 for ac_header in pthread.h 7249 7028 do 7250 7029 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` … … 7390 7169 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 7391 7170 _ACEOF 7171 pthreadHeader="yes" 7172 else 7173 pthreadHeader="no" 7174 fi 7175 7176 done 7177 7178 echo "$as_me:$LINENO: checking for main in -lpthread" >&5 7179 echo $ECHO_N "checking for main in -lpthread... $ECHO_C" >&6 7180 if test "${ac_cv_lib_pthread_main+set}" = set; then 7181 echo $ECHO_N "(cached) $ECHO_C" >&6 7182 else 7183 ac_check_lib_save_LIBS=$LIBS 7184 LIBS="-lpthread $LIBS" 7185 cat >conftest.$ac_ext <<_ACEOF 7186 /* confdefs.h. */ 7187 _ACEOF 7188 cat confdefs.h >>conftest.$ac_ext 7189 cat >>conftest.$ac_ext <<_ACEOF 7190 /* end confdefs.h. */ 7191 7192 7193 int 7194 main () 7195 { 7196 main (); 7197 ; 7198 return 0; 7199 } 7200 _ACEOF 7201 rm -f conftest.$ac_objext conftest$ac_exeext 7202 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 7203 (eval $ac_link) 2>conftest.er1 7204 ac_status=$? 7205 grep -v '^ *+' conftest.er1 >conftest.err 7206 rm -f conftest.er1 7207 cat conftest.err >&5 7208 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7209 (exit $ac_status); } && 7210 { ac_try='test -z "$ac_c_werror_flag" 7211 || test ! -s conftest.err' 7212 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7213 (eval $ac_try) 2>&5 7214 ac_status=$? 7215 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7216 (exit $ac_status); }; } && 7217 { ac_try='test -s conftest$ac_exeext' 7218 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7219 (eval $ac_try) 2>&5 7220 ac_status=$? 7221 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7222 (exit $ac_status); }; }; then 7223 ac_cv_lib_pthread_main=yes 7224 else 7225 echo "$as_me: failed program was:" >&5 7226 sed 's/^/| /' conftest.$ac_ext >&5 7227 7228 ac_cv_lib_pthread_main=no 7229 fi 7230 rm -f conftest.err conftest.$ac_objext \ 7231 conftest$ac_exeext conftest.$ac_ext 7232 LIBS=$ac_check_lib_save_LIBS 7233 fi 7234 echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_main" >&5 7235 echo "${ECHO_T}$ac_cv_lib_pthread_main" >&6 7236 if test $ac_cv_lib_pthread_main = yes; then 7237 FOUND_pthread=yes 7238 fi 7239 7240 if test "$FOUND_pthread" = "yes" ; then 7241 LIBS="$LIBS -lpthread" 7242 fi 7243 fi 7244 fi 7245 # FIXME: Replace `main' with a function in `-lm': 7246 7247 echo "$as_me:$LINENO: checking for main in -lm" >&5 7248 echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6 7249 if test "${ac_cv_lib_m_main+set}" = set; then 7250 echo $ECHO_N "(cached) $ECHO_C" >&6 7251 else 7252 ac_check_lib_save_LIBS=$LIBS 7253 LIBS="-lm $LIBS" 7254 cat >conftest.$ac_ext <<_ACEOF 7255 /* confdefs.h. */ 7256 _ACEOF 7257 cat confdefs.h >>conftest.$ac_ext 7258 cat >>conftest.$ac_ext <<_ACEOF 7259 /* end confdefs.h. */ 7260 7261 7262 int 7263 main () 7264 { 7265 main (); 7266 ; 7267 return 0; 7268 } 7269 _ACEOF 7270 rm -f conftest.$ac_objext conftest$ac_exeext 7271 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 7272 (eval $ac_link) 2>conftest.er1 7273 ac_status=$? 7274 grep -v '^ *+' conftest.er1 >conftest.err 7275 rm -f conftest.er1 7276 cat conftest.err >&5 7277 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7278 (exit $ac_status); } && 7279 { ac_try='test -z "$ac_c_werror_flag" 7280 || test ! -s conftest.err' 7281 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7282 (eval $ac_try) 2>&5 7283 ac_status=$? 7284 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7285 (exit $ac_status); }; } && 7286 { ac_try='test -s conftest$ac_exeext' 7287 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7288 (eval $ac_try) 2>&5 7289 ac_status=$? 7290 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7291 (exit $ac_status); }; }; then 7292 ac_cv_lib_m_main=yes 7293 else 7294 echo "$as_me: failed program was:" >&5 7295 sed 's/^/| /' conftest.$ac_ext >&5 7296 7297 ac_cv_lib_m_main=no 7298 fi 7299 rm -f conftest.err conftest.$ac_objext \ 7300 conftest$ac_exeext conftest.$ac_ext 7301 LIBS=$ac_check_lib_save_LIBS 7302 fi 7303 echo "$as_me:$LINENO: result: $ac_cv_lib_m_main" >&5 7304 echo "${ECHO_T}$ac_cv_lib_m_main" >&6 7305 if test $ac_cv_lib_m_main = yes; then 7306 cat >>confdefs.h <<_ACEOF 7307 #define HAVE_LIBM 1 7308 _ACEOF 7309 7310 LIBS="-lm $LIBS" 7311 7312 fi 7313 7314 7315 7316 # Checks for header files. 7317 echo "$as_me:$LINENO: checking for ANSI C header files" >&5 7318 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 7319 if test "${ac_cv_header_stdc+set}" = set; then 7320 echo $ECHO_N "(cached) $ECHO_C" >&6 7321 else 7322 cat >conftest.$ac_ext <<_ACEOF 7323 /* confdefs.h. */ 7324 _ACEOF 7325 cat confdefs.h >>conftest.$ac_ext 7326 cat >>conftest.$ac_ext <<_ACEOF 7327 /* end confdefs.h. */ 7328 #include <stdlib.h> 7329 #include <stdarg.h> 7330 #include <string.h> 7331 #include <float.h> 7332 7333 int 7334 main () 7335 { 7336 7337 ; 7338 return 0; 7339 } 7340 _ACEOF 7341 rm -f conftest.$ac_objext 7342 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 7343 (eval $ac_compile) 2>conftest.er1 7344 ac_status=$? 7345 grep -v '^ *+' conftest.er1 >conftest.err 7346 rm -f conftest.er1 7347 cat conftest.err >&5 7348 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7349 (exit $ac_status); } && 7350 { ac_try='test -z "$ac_c_werror_flag" 7351 || test ! -s conftest.err' 7352 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7353 (eval $ac_try) 2>&5 7354 ac_status=$? 7355 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7356 (exit $ac_status); }; } && 7357 { ac_try='test -s conftest.$ac_objext' 7358 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7359 (eval $ac_try) 2>&5 7360 ac_status=$? 7361 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7362 (exit $ac_status); }; }; then 7363 ac_cv_header_stdc=yes 7364 else 7365 echo "$as_me: failed program was:" >&5 7366 sed 's/^/| /' conftest.$ac_ext >&5 7367 7368 ac_cv_header_stdc=no 7369 fi 7370 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7371 7372 if test $ac_cv_header_stdc = yes; then 7373 # SunOS 4.x string.h does not declare mem*, contrary to ANSI. 7374 cat >conftest.$ac_ext <<_ACEOF 7375 /* confdefs.h. */ 7376 _ACEOF 7377 cat confdefs.h >>conftest.$ac_ext 7378 cat >>conftest.$ac_ext <<_ACEOF 7379 /* end confdefs.h. */ 7380 #include <string.h> 7381 7382 _ACEOF 7383 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 7384 $EGREP "memchr" >/dev/null 2>&1; then 7385 : 7386 else 7387 ac_cv_header_stdc=no 7388 fi 7389 rm -f conftest* 7390 7391 fi 7392 7393 if test $ac_cv_header_stdc = yes; then 7394 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. 7395 cat >conftest.$ac_ext <<_ACEOF 7396 /* confdefs.h. */ 7397 _ACEOF 7398 cat confdefs.h >>conftest.$ac_ext 7399 cat >>conftest.$ac_ext <<_ACEOF 7400 /* end confdefs.h. */ 7401 #include <stdlib.h> 7402 7403 _ACEOF 7404 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 7405 $EGREP "free" >/dev/null 2>&1; then 7406 : 7407 else 7408 ac_cv_header_stdc=no 7409 fi 7410 rm -f conftest* 7411 7412 fi 7413 7414 if test $ac_cv_header_stdc = yes; then 7415 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. 7416 if test "$cross_compiling" = yes; then 7417 : 7418 else 7419 cat >conftest.$ac_ext <<_ACEOF 7420 /* confdefs.h. */ 7421 _ACEOF 7422 cat confdefs.h >>conftest.$ac_ext 7423 cat >>conftest.$ac_ext <<_ACEOF 7424 /* end confdefs.h. */ 7425 #include <ctype.h> 7426 #if ((' ' & 0x0FF) == 0x020) 7427 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') 7428 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) 7429 #else 7430 # define ISLOWER(c) \ 7431 (('a' <= (c) && (c) <= 'i') \ 7432 || ('j' <= (c) && (c) <= 'r') \ 7433 || ('s' <= (c) && (c) <= 'z')) 7434 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) 7435 #endif 7436 7437 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) 7438 int 7439 main () 7440 { 7441 int i; 7442 for (i = 0; i < 256; i++) 7443 if (XOR (islower (i), ISLOWER (i)) 7444 || toupper (i) != TOUPPER (i)) 7445 exit(2); 7446 exit (0); 7447 } 7448 _ACEOF 7449 rm -f conftest$ac_exeext 7450 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 7451 (eval $ac_link) 2>&5 7452 ac_status=$? 7453 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7454 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' 7455 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7456 (eval $ac_try) 2>&5 7457 ac_status=$? 7458 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7459 (exit $ac_status); }; }; then 7460 : 7461 else 7462 echo "$as_me: program exited with status $ac_status" >&5 7463 echo "$as_me: failed program was:" >&5 7464 sed 's/^/| /' conftest.$ac_ext >&5 7465 7466 ( exit $ac_status ) 7467 ac_cv_header_stdc=no 7468 fi 7469 rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext 7470 fi 7471 fi 7472 fi 7473 echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 7474 echo "${ECHO_T}$ac_cv_header_stdc" >&6 7475 if test $ac_cv_header_stdc = yes; then 7476 7477 cat >>confdefs.h <<\_ACEOF 7478 #define STDC_HEADERS 1 7479 _ACEOF 7480 7481 fi 7482 7483 7484 7485 for ac_header in stdlib.h string.h 7486 do 7487 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` 7488 if eval "test \"\${$as_ac_Header+set}\" = set"; then 7489 echo "$as_me:$LINENO: checking for $ac_header" >&5 7490 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 7491 if eval "test \"\${$as_ac_Header+set}\" = set"; then 7492 echo $ECHO_N "(cached) $ECHO_C" >&6 7493 fi 7494 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 7495 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 7496 else 7497 # Is the header compilable? 7498 echo "$as_me:$LINENO: checking $ac_header usability" >&5 7499 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 7500 cat >conftest.$ac_ext <<_ACEOF 7501 /* confdefs.h. */ 7502 _ACEOF 7503 cat confdefs.h >>conftest.$ac_ext 7504 cat >>conftest.$ac_ext <<_ACEOF 7505 /* end confdefs.h. */ 7506 $ac_includes_default 7507 #include <$ac_header> 7508 _ACEOF 7509 rm -f conftest.$ac_objext 7510 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 7511 (eval $ac_compile) 2>conftest.er1 7512 ac_status=$? 7513 grep -v '^ *+' conftest.er1 >conftest.err 7514 rm -f conftest.er1 7515 cat conftest.err >&5 7516 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7517 (exit $ac_status); } && 7518 { ac_try='test -z "$ac_c_werror_flag" 7519 || test ! -s conftest.err' 7520 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7521 (eval $ac_try) 2>&5 7522 ac_status=$? 7523 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7524 (exit $ac_status); }; } && 7525 { ac_try='test -s conftest.$ac_objext' 7526 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7527 (eval $ac_try) 2>&5 7528 ac_status=$? 7529 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7530 (exit $ac_status); }; }; then 7531 ac_header_compiler=yes 7532 else 7533 echo "$as_me: failed program was:" >&5 7534 sed 's/^/| /' conftest.$ac_ext >&5 7535 7536 ac_header_compiler=no 7537 fi 7538 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7539 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 7540 echo "${ECHO_T}$ac_header_compiler" >&6 7541 7542 # Is the header present? 7543 echo "$as_me:$LINENO: checking $ac_header presence" >&5 7544 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 7545 cat >conftest.$ac_ext <<_ACEOF 7546 /* confdefs.h. */ 7547 _ACEOF 7548 cat confdefs.h >>conftest.$ac_ext 7549 cat >>conftest.$ac_ext <<_ACEOF 7550 /* end confdefs.h. */ 7551 #include <$ac_header> 7552 _ACEOF 7553 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 7554 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 7555 ac_status=$? 7556 grep -v '^ *+' conftest.er1 >conftest.err 7557 rm -f conftest.er1 7558 cat conftest.err >&5 7559 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7560 (exit $ac_status); } >/dev/null; then 7561 if test -s conftest.err; then 7562 ac_cpp_err=$ac_c_preproc_warn_flag 7563 ac_cpp_err=$ac_cpp_err$ac_c_werror_flag 7564 else 7565 ac_cpp_err= 7566 fi 7567 else 7568 ac_cpp_err=yes 7569 fi 7570 if test -z "$ac_cpp_err"; then 7571 ac_header_preproc=yes 7572 else 7573 echo "$as_me: failed program was:" >&5 7574 sed 's/^/| /' conftest.$ac_ext >&5 7575 7576 ac_header_preproc=no 7577 fi 7578 rm -f conftest.err conftest.$ac_ext 7579 echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 7580 echo "${ECHO_T}$ac_header_preproc" >&6 7581 7582 # So? What about this header? 7583 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in 7584 yes:no: ) 7585 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 7586 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} 7587 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 7588 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} 7589 ac_header_preproc=yes 7590 ;; 7591 no:yes:* ) 7592 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 7593 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} 7594 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 7595 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} 7596 { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 7597 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} 7598 { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 7599 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} 7600 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 7601 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} 7602 { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 7603 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} 7604 ( 7605 cat <<\_ASBOX 7606 ## ---------------------------------------------- ## 7607 ## Report this to orxonox-dev at mail.datacore.ch ## 7608 ## ---------------------------------------------- ## 7609 _ASBOX 7610 ) | 7611 sed "s/^/$as_me: WARNING: /" >&2 7612 ;; 7613 esac 7614 echo "$as_me:$LINENO: checking for $ac_header" >&5 7615 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 7616 if eval "test \"\${$as_ac_Header+set}\" = set"; then 7617 echo $ECHO_N "(cached) $ECHO_C" >&6 7618 else 7619 eval "$as_ac_Header=\$ac_header_preproc" 7620 fi 7621 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 7622 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 7623 7624 fi 7625 if test `eval echo '${'$as_ac_Header'}'` = yes; then 7626 cat >>confdefs.h <<_ACEOF 7627 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 7628 _ACEOF 7629 7630 fi 7631 7632 done 7633 7634 7635 # Checks for typedefs, structures, and compiler characteristics. 7636 echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 7637 echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6 7638 if test "${ac_cv_header_stdbool_h+set}" = set; then 7639 echo $ECHO_N "(cached) $ECHO_C" >&6 7640 else 7641 cat >conftest.$ac_ext <<_ACEOF 7642 /* confdefs.h. */ 7643 _ACEOF 7644 cat confdefs.h >>conftest.$ac_ext 7645 cat >>conftest.$ac_ext <<_ACEOF 7646 /* end confdefs.h. */ 7647 7648 #include <stdbool.h> 7649 #ifndef bool 7650 # error bool is not defined 7651 #endif 7652 #ifndef false 7653 # error false is not defined 7654 #endif 7655 #if false 7656 # error false is not 0 7657 #endif 7658 #ifndef true 7659 # error true is not defined 7660 #endif 7661 #if true != 1 7662 # error true is not 1 7663 #endif 7664 #ifndef __bool_true_false_are_defined 7665 # error __bool_true_false_are_defined is not defined 7666 #endif 7667 7668 struct s { _Bool s: 1; _Bool t; } s; 7669 7670 char a[true == 1 ? 1 : -1]; 7671 char b[false == 0 ? 1 : -1]; 7672 char c[__bool_true_false_are_defined == 1 ? 1 : -1]; 7673 char d[(bool) -0.5 == true ? 1 : -1]; 7674 bool e = &s; 7675 char f[(_Bool) -0.0 == false ? 1 : -1]; 7676 char g[true]; 7677 char h[sizeof (_Bool)]; 7678 char i[sizeof s.t]; 7679 7680 int 7681 main () 7682 { 7683 return !a + !b + !c + !d + !e + !f + !g + !h + !i; 7684 ; 7685 return 0; 7686 } 7687 _ACEOF 7688 rm -f conftest.$ac_objext 7689 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 7690 (eval $ac_compile) 2>conftest.er1 7691 ac_status=$? 7692 grep -v '^ *+' conftest.er1 >conftest.err 7693 rm -f conftest.er1 7694 cat conftest.err >&5 7695 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7696 (exit $ac_status); } && 7697 { ac_try='test -z "$ac_c_werror_flag" 7698 || test ! -s conftest.err' 7699 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7700 (eval $ac_try) 2>&5 7701 ac_status=$? 7702 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7703 (exit $ac_status); }; } && 7704 { ac_try='test -s conftest.$ac_objext' 7705 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7706 (eval $ac_try) 2>&5 7707 ac_status=$? 7708 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7709 (exit $ac_status); }; }; then 7710 ac_cv_header_stdbool_h=yes 7711 else 7712 echo "$as_me: failed program was:" >&5 7713 sed 's/^/| /' conftest.$ac_ext >&5 7714 7715 ac_cv_header_stdbool_h=no 7716 fi 7717 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7718 fi 7719 echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 7720 echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6 7721 echo "$as_me:$LINENO: checking for _Bool" >&5 7722 echo $ECHO_N "checking for _Bool... $ECHO_C" >&6 7723 if test "${ac_cv_type__Bool+set}" = set; then 7724 echo $ECHO_N "(cached) $ECHO_C" >&6 7725 else 7726 cat >conftest.$ac_ext <<_ACEOF 7727 /* confdefs.h. */ 7728 _ACEOF 7729 cat confdefs.h >>conftest.$ac_ext 7730 cat >>conftest.$ac_ext <<_ACEOF 7731 /* end confdefs.h. */ 7732 $ac_includes_default 7733 int 7734 main () 7735 { 7736 if ((_Bool *) 0) 7737 return 0; 7738 if (sizeof (_Bool)) 7739 return 0; 7740 ; 7741 return 0; 7742 } 7743 _ACEOF 7744 rm -f conftest.$ac_objext 7745 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 7746 (eval $ac_compile) 2>conftest.er1 7747 ac_status=$? 7748 grep -v '^ *+' conftest.er1 >conftest.err 7749 rm -f conftest.er1 7750 cat conftest.err >&5 7751 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7752 (exit $ac_status); } && 7753 { ac_try='test -z "$ac_c_werror_flag" 7754 || test ! -s conftest.err' 7755 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7756 (eval $ac_try) 2>&5 7757 ac_status=$? 7758 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7759 (exit $ac_status); }; } && 7760 { ac_try='test -s conftest.$ac_objext' 7761 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7762 (eval $ac_try) 2>&5 7763 ac_status=$? 7764 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7765 (exit $ac_status); }; }; then 7766 ac_cv_type__Bool=yes 7767 else 7768 echo "$as_me: failed program was:" >&5 7769 sed 's/^/| /' conftest.$ac_ext >&5 7770 7771 ac_cv_type__Bool=no 7772 fi 7773 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7774 fi 7775 echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 7776 echo "${ECHO_T}$ac_cv_type__Bool" >&6 7777 if test $ac_cv_type__Bool = yes; then 7778 7779 cat >>confdefs.h <<_ACEOF 7780 #define HAVE__BOOL 1 7781 _ACEOF 7782 7783 7784 fi 7785 7786 if test $ac_cv_header_stdbool_h = yes; then 7787 7788 cat >>confdefs.h <<\_ACEOF 7789 #define HAVE_STDBOOL_H 1 7790 _ACEOF 7791 7792 fi 7793 7794 7795 # Checks for library functions. 7796 7797 for ac_header in stdlib.h 7798 do 7799 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` 7800 if eval "test \"\${$as_ac_Header+set}\" = set"; then 7801 echo "$as_me:$LINENO: checking for $ac_header" >&5 7802 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 7803 if eval "test \"\${$as_ac_Header+set}\" = set"; then 7804 echo $ECHO_N "(cached) $ECHO_C" >&6 7805 fi 7806 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 7807 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 7808 else 7809 # Is the header compilable? 7810 echo "$as_me:$LINENO: checking $ac_header usability" >&5 7811 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 7812 cat >conftest.$ac_ext <<_ACEOF 7813 /* confdefs.h. */ 7814 _ACEOF 7815 cat confdefs.h >>conftest.$ac_ext 7816 cat >>conftest.$ac_ext <<_ACEOF 7817 /* end confdefs.h. */ 7818 $ac_includes_default 7819 #include <$ac_header> 7820 _ACEOF 7821 rm -f conftest.$ac_objext 7822 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 7823 (eval $ac_compile) 2>conftest.er1 7824 ac_status=$? 7825 grep -v '^ *+' conftest.er1 >conftest.err 7826 rm -f conftest.er1 7827 cat conftest.err >&5 7828 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7829 (exit $ac_status); } && 7830 { ac_try='test -z "$ac_c_werror_flag" 7831 || test ! -s conftest.err' 7832 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7833 (eval $ac_try) 2>&5 7834 ac_status=$? 7835 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7836 (exit $ac_status); }; } && 7837 { ac_try='test -s conftest.$ac_objext' 7838 { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 7839 (eval $ac_try) 2>&5 7840 ac_status=$? 7841 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7842 (exit $ac_status); }; }; then 7843 ac_header_compiler=yes 7844 else 7845 echo "$as_me: failed program was:" >&5 7846 sed 's/^/| /' conftest.$ac_ext >&5 7847 7848 ac_header_compiler=no 7849 fi 7850 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext 7851 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 7852 echo "${ECHO_T}$ac_header_compiler" >&6 7853 7854 # Is the header present? 7855 echo "$as_me:$LINENO: checking $ac_header presence" >&5 7856 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 7857 cat >conftest.$ac_ext <<_ACEOF 7858 /* confdefs.h. */ 7859 _ACEOF 7860 cat confdefs.h >>conftest.$ac_ext 7861 cat >>conftest.$ac_ext <<_ACEOF 7862 /* end confdefs.h. */ 7863 #include <$ac_header> 7864 _ACEOF 7865 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 7866 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 7867 ac_status=$? 7868 grep -v '^ *+' conftest.er1 >conftest.err 7869 rm -f conftest.er1 7870 cat conftest.err >&5 7871 echo "$as_me:$LINENO: \$? = $ac_status" >&5 7872 (exit $ac_status); } >/dev/null; then 7873 if test -s conftest.err; then 7874 ac_cpp_err=$ac_c_preproc_warn_flag 7875 ac_cpp_err=$ac_cpp_err$ac_c_werror_flag 7876 else 7877 ac_cpp_err= 7878 fi 7879 else 7880 ac_cpp_err=yes 7881 fi 7882 if test -z "$ac_cpp_err"; then 7883 ac_header_preproc=yes 7884 else 7885 echo "$as_me: failed program was:" >&5 7886 sed 's/^/| /' conftest.$ac_ext >&5 7887 7888 ac_header_preproc=no 7889 fi 7890 rm -f conftest.err conftest.$ac_ext 7891 echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 7892 echo "${ECHO_T}$ac_header_preproc" >&6 7893 7894 # So? What about this header? 7895 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in 7896 yes:no: ) 7897 { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 7898 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} 7899 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 7900 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} 7901 ac_header_preproc=yes 7902 ;; 7903 no:yes:* ) 7904 { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 7905 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} 7906 { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 7907 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} 7908 { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 7909 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} 7910 { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 7911 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} 7912 { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 7913 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} 7914 { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 7915 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} 7916 ( 7917 cat <<\_ASBOX 7918 ## ---------------------------------------------- ## 7919 ## Report this to orxonox-dev at mail.datacore.ch ## 7920 ## ---------------------------------------------- ## 7921 _ASBOX 7922 ) | 7923 sed "s/^/$as_me: WARNING: /" >&2 7924 ;; 7925 esac 7926 echo "$as_me:$LINENO: checking for $ac_header" >&5 7927 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 7928 if eval "test \"\${$as_ac_Header+set}\" = set"; then 7929 echo $ECHO_N "(cached) $ECHO_C" >&6 7930 else 7931 eval "$as_ac_Header=\$ac_header_preproc" 7932 fi 7933 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 7934 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 7935 7936 fi 7937 if test `eval echo '${'$as_ac_Header'}'` = yes; then 7938 cat >>confdefs.h <<_ACEOF 7939 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 7940 _ACEOF 7392 7941 7393 7942 fi … … 7713 8262 Usually this means the macro was only invoked conditionally." >&5 7714 8263 echo "$as_me: error: conditional \"HAVE_GTK2\" was never defined. 8264 Usually this means the macro was only invoked conditionally." >&2;} 8265 { (exit 1); exit 1; }; } 8266 fi 8267 if test -z "${HAVE_GTHREAD_TRUE}" && test -z "${HAVE_GTHREAD_FALSE}"; then 8268 { { echo "$as_me:$LINENO: error: conditional \"HAVE_GTHREAD\" was never defined. 8269 Usually this means the macro was only invoked conditionally." >&5 8270 echo "$as_me: error: conditional \"HAVE_GTHREAD\" was never defined. 8271 Usually this means the macro was only invoked conditionally." >&2;} 8272 { (exit 1); exit 1; }; } 8273 fi 8274 if test -z "${HAVE_CURL_TRUE}" && test -z "${HAVE_CURL_FALSE}"; then 8275 { { echo "$as_me:$LINENO: error: conditional \"HAVE_CURL\" was never defined. 8276 Usually this means the macro was only invoked conditionally." >&5 8277 echo "$as_me: error: conditional \"HAVE_CURL\" was never defined. 7715 8278 Usually this means the macro was only invoked conditionally." >&2;} 7716 8279 { (exit 1); exit 1; }; } … … 8319 8882 s,@HAVE_GTK2_TRUE@,$HAVE_GTK2_TRUE,;t t 8320 8883 s,@HAVE_GTK2_FALSE@,$HAVE_GTK2_FALSE,;t t 8884 s,@GTHREAD_LIBS@,$GTHREAD_LIBS,;t t 8885 s,@GTHREAD_CFLAGS@,$GTHREAD_CFLAGS,;t t 8886 s,@HAVE_GTHREAD_TRUE@,$HAVE_GTHREAD_TRUE,;t t 8887 s,@HAVE_GTHREAD_FALSE@,$HAVE_GTHREAD_FALSE,;t t 8888 s,@CURL_LIBS@,$CURL_LIBS,;t t 8889 s,@CURL_CFLAGS@,$CURL_CFLAGS,;t t 8890 s,@HAVE_CURL_TRUE@,$HAVE_CURL_TRUE,;t t 8891 s,@HAVE_CURL_FALSE@,$HAVE_CURL_FALSE,;t t 8321 8892 s,@LIBOBJS@,$LIBOBJS,;t t 8322 8893 s,@LTLIBOBJS@,$LTLIBOBJS,;t t -
orxonox/trunk/configure.ac
r3385 r3423 55 55 echo "no" 56 56 fi 57 58 ## gThread-disabled 59 AC_MSG_CHECKING([if gThread should be enabled]) 60 AC_ARG_WITH([gthread], 61 AC_HELP_STRING( [--without-gthread], 62 [Prevents gThread from being loaded]), [def_gthread=no], [def_gthread=yes]) 63 if test "$def_gthread" = yes; then 64 echo "yes" 65 fi 66 if test "$def_gthread" = no; then 67 echo "no" 68 fi 69 70 ## pthread-disabled 71 AC_MSG_CHECKING([if pthread should be enabled]) 72 AC_ARG_WITH([pthread], 73 AC_HELP_STRING( [--without-pthread], 74 [Prevents pthread from being loaded]), [def_pthread=no], [def_pthread=yes]) 75 if test "$def_pthread" = yes; then 76 echo "yes" 77 fi 78 if test "$def_pthread" = no; then 79 echo "no" 80 fi 81 82 ## libCurl disabled? 83 AC_MSG_CHECKING([if libcURL should be enabled]) 84 AC_ARG_WITH([curl], 85 AC_HELP_STRING( [--without-curl], 86 [Prevents libcURL from being loaded]), [def_curl=no], [def_curl=yes]) 87 if test "$def_curl" = yes; then 88 echo "yes" 89 fi 90 if test "$def_curl" = no; then 91 echo "no" 92 fi 93 57 94 ### SDL_image-disable 58 95 def_sdl_image=yes … … 353 390 AM_CONDITIONAL(HAVE_GTK2, test x$have_gtk2 = xyes) 354 391 355 356 357 #checking for pthread libs 358 # AC_CHECK_LIB([pthread], [main], FOUND_pthread=yes) 359 # if test "$FOUND_pthread" = "yes" ; then 360 # LIBS="$LIBS -lpthread" 361 # fi 362 363 392 ## checking for gThread 393 if test "$def_gthread" = yes; then 394 395 AC_MSG_CHECKING([for gthread]) 396 if `pkg-config --exists gthread-2.0`; then 397 echo "yes" 398 have_gthread=yes 399 GTHREAD_LIBS=`pkg-config --libs gthread-2.0` 400 GTHREAD_CFLAGS=`pkg-config --cflags gthread-2.0` 401 AC_DEFINE_UNQUOTED(HAVE_GTHREAD, 1, [if we have gThread]) 402 else 403 echo "no" 404 fi 405 406 fi 407 AC_SUBST(GTHREAD_LIBS) 408 AC_SUBST(GTHREAD_CFLAGS) 409 AM_CONDITIONAL(HAVE_GTHREAD, test x$have_gthread = xyes) 410 411 ## checking for libcURL 412 if test "$def_curl" = yes; then 413 414 AC_CHECK_HEADERS([curl/curl.h], curlHeader="yes", curlHeader="no") 415 AC_CHECK_LIB([curl], [main], [FOUND_curl=yes]) 416 if test x$curlHeader = xyes & test x$FOUND_curl = xyes ; then 417 have_curl=yes 418 CURL_LIBS=`curl-config --libs` 419 CURLCFLAGS=`curl-config --cflags` 420 AC_DEFINE_UNQUOTED(HAVE_CURL, 1, [if we have CURL]) 421 else 422 have_curl=no 423 fi 424 425 fi 426 AC_SUBST(CURL_LIBS) 427 AC_SUBST(CURL_CFLAGS) 428 AM_CONDITIONAL(HAVE_CURL, test x$have_curl = xyes) 429 430 431 ##checking for pthread 432 if test x$def_pthread = xyes ; then 433 if test x$have_gthread = xyes ; then 434 AC_CHECK_HEADERS([pthread.h], pthreadHeader="yes", pthreadHeader="no") 435 AC_CHECK_LIB([pthread], [main], FOUND_pthread=yes) 436 if test "$FOUND_pthread" = "yes" ; then 437 LIBS="$LIBS -lpthread" 438 fi 439 fi 440 fi 364 441 # FIXME: Replace `main' with a function in `-lm': 365 442 AC_CHECK_LIB([m], [main]) -
orxonox/trunk/src/Makefile.in
r3419 r3423 121 121 CPP = @CPP@ 122 122 CPPFLAGS = @CPPFLAGS@ 123 CURL_CFLAGS = @CURL_CFLAGS@ 124 CURL_LIBS = @CURL_LIBS@ 123 125 CXX = @CXX@ 124 126 CXXDEPMODE = @CXXDEPMODE@ … … 136 138 EGREP = @EGREP@ 137 139 EXEEXT = @EXEEXT@ 140 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ 141 GTHREAD_LIBS = @GTHREAD_LIBS@ 138 142 GTK2_CFLAGS = @GTK2_CFLAGS@ 139 143 GTK2_LIBS = @GTK2_LIBS@ 144 HAVE_CURL_FALSE = @HAVE_CURL_FALSE@ 145 HAVE_CURL_TRUE = @HAVE_CURL_TRUE@ 146 HAVE_GTHREAD_FALSE = @HAVE_GTHREAD_FALSE@ 147 HAVE_GTHREAD_TRUE = @HAVE_GTHREAD_TRUE@ 140 148 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 141 149 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ … … 310 318 esac; \ 311 319 done; \ 312 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/Makefile'; \320 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ 313 321 cd $(top_srcdir) && \ 314 $(AUTOMAKE) -- foreignsrc/Makefile322 $(AUTOMAKE) --gnu src/Makefile 315 323 .PRECIOUS: Makefile 316 324 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -
orxonox/trunk/src/console/Makefile.in
r3377 r3423 87 87 CPP = @CPP@ 88 88 CPPFLAGS = @CPPFLAGS@ 89 CURL_CFLAGS = @CURL_CFLAGS@ 90 CURL_LIBS = @CURL_LIBS@ 89 91 CXX = @CXX@ 90 92 CXXDEPMODE = @CXXDEPMODE@ … … 102 104 EGREP = @EGREP@ 103 105 EXEEXT = @EXEEXT@ 106 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ 107 GTHREAD_LIBS = @GTHREAD_LIBS@ 104 108 GTK2_CFLAGS = @GTK2_CFLAGS@ 105 109 GTK2_LIBS = @GTK2_LIBS@ 110 HAVE_CURL_FALSE = @HAVE_CURL_FALSE@ 111 HAVE_CURL_TRUE = @HAVE_CURL_TRUE@ 112 HAVE_GTHREAD_FALSE = @HAVE_GTHREAD_FALSE@ 113 HAVE_GTHREAD_TRUE = @HAVE_GTHREAD_TRUE@ 106 114 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 107 115 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ … … 195 203 esac; \ 196 204 done; \ 197 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/console/Makefile'; \205 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/console/Makefile'; \ 198 206 cd $(top_srcdir) && \ 199 $(AUTOMAKE) -- foreignsrc/console/Makefile207 $(AUTOMAKE) --gnu src/console/Makefile 200 208 .PRECIOUS: Makefile 201 209 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -
orxonox/trunk/src/gui/Makefile.am
r3144 r3423 1 AM_CXXFLAGS=$(GTK2_CFLAGS) $( MSBITFIELDS)2 #AM_LDFLAGS=$(GTK2_LIBS) 3 LIBS=$(GTK2_LIBS) 1 AM_CXXFLAGS=$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS) 2 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 3 LIBS=$(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 4 4 5 5 bin_PROGRAMS=gui … … 11 11 orxonox_gui_flags.cc \ 12 12 orxonox_gui_banner.cc \ 13 orxonox_gui_keys.cc 13 orxonox_gui_keys.cc \ 14 orxonox_gui_update.cc 14 15 15 16 noinst_HEADERS=orxonox_gui.h \ … … 20 21 orxonox_gui_flags.h \ 21 22 orxonox_gui_banner.h \ 22 orxonox_gui_keys.h 23 orxonox_gui_keys.h \ 24 orxonox_gui_update.h 23 25 24 26 # uncomment the following if orxonox requires the mathlibrary -
orxonox/trunk/src/gui/Makefile.in
r3377 r3423 56 56 orxonox_gui_video.$(OBJEXT) orxonox_gui_audio.$(OBJEXT) \ 57 57 orxonox_gui_exec.$(OBJEXT) orxonox_gui_flags.$(OBJEXT) \ 58 orxonox_gui_banner.$(OBJEXT) orxonox_gui_keys.$(OBJEXT) 58 orxonox_gui_banner.$(OBJEXT) orxonox_gui_keys.$(OBJEXT) \ 59 orxonox_gui_update.$(OBJEXT) 59 60 gui_OBJECTS = $(am_gui_OBJECTS) 60 61 gui_LDADD = $(LDADD) … … 69 70 @AMDEP_TRUE@ ./$(DEPDIR)/orxonox_gui_gtk.Po \ 70 71 @AMDEP_TRUE@ ./$(DEPDIR)/orxonox_gui_keys.Po \ 72 @AMDEP_TRUE@ ./$(DEPDIR)/orxonox_gui_update.Po \ 71 73 @AMDEP_TRUE@ ./$(DEPDIR)/orxonox_gui_video.Po 72 74 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ … … 94 96 CPP = @CPP@ 95 97 CPPFLAGS = @CPPFLAGS@ 98 CURL_CFLAGS = @CURL_CFLAGS@ 99 CURL_LIBS = @CURL_LIBS@ 96 100 CXX = @CXX@ 97 101 CXXDEPMODE = @CXXDEPMODE@ … … 109 113 EGREP = @EGREP@ 110 114 EXEEXT = @EXEEXT@ 115 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ 116 GTHREAD_LIBS = @GTHREAD_LIBS@ 111 117 GTK2_CFLAGS = @GTK2_CFLAGS@ 112 118 GTK2_LIBS = @GTK2_LIBS@ 119 HAVE_CURL_FALSE = @HAVE_CURL_FALSE@ 120 HAVE_CURL_TRUE = @HAVE_CURL_TRUE@ 121 HAVE_GTHREAD_FALSE = @HAVE_GTHREAD_FALSE@ 122 HAVE_GTHREAD_TRUE = @HAVE_GTHREAD_TRUE@ 113 123 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 114 124 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ … … 119 129 LDFLAGS = @LDFLAGS@ 120 130 LIBOBJS = @LIBOBJS@ 121 #AM_LDFLAGS=$(GTK2_LIBS) 122 LIBS = $(GTK2_LIBS) 131 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 132 LIBS = $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 123 133 LTLIBOBJS = @LTLIBOBJS@ 124 134 MAKEINFO = @MAKEINFO@ … … 180 190 target_os = @target_os@ 181 191 target_vendor = @target_vendor@ 182 AM_CXXFLAGS = $(GTK2_CFLAGS) $( MSBITFIELDS)192 AM_CXXFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS) 183 193 gui_SOURCES = orxonox_gui.cc \ 184 194 orxonox_gui_gtk.cc \ … … 188 198 orxonox_gui_flags.cc \ 189 199 orxonox_gui_banner.cc \ 190 orxonox_gui_keys.cc 200 orxonox_gui_keys.cc \ 201 orxonox_gui_update.cc 191 202 192 203 noinst_HEADERS = orxonox_gui.h \ … … 197 208 orxonox_gui_flags.h \ 198 209 orxonox_gui_banner.h \ 199 orxonox_gui_keys.h 210 orxonox_gui_keys.h \ 211 orxonox_gui_update.h 200 212 201 213 … … 222 234 esac; \ 223 235 done; \ 224 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/gui/Makefile'; \236 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gui/Makefile'; \ 225 237 cd $(top_srcdir) && \ 226 $(AUTOMAKE) -- foreignsrc/gui/Makefile238 $(AUTOMAKE) --gnu src/gui/Makefile 227 239 .PRECIOUS: Makefile 228 240 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status … … 282 294 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox_gui_gtk.Po@am__quote@ 283 295 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox_gui_keys.Po@am__quote@ 296 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox_gui_update.Po@am__quote@ 284 297 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox_gui_video.Po@am__quote@ 285 298 -
orxonox/trunk/src/gui/orxonox_gui.cc
r3187 r3423 24 24 */ 25 25 26 #include <unistd.h> 27 26 28 #include "orxonox_gui.h" 27 29 #include "orxonox_gui_video.h" … … 31 33 #include "orxonox_gui_banner.h" 32 34 #include "orxonox_gui_keys.h" 35 #include "orxonox_gui_update.h" 33 36 34 37 Window* orxonoxGUI; … … 39 42 OrxonoxGuiBanner* banner; 40 43 OrxonoxGuiKeys* keys; 44 OrxonoxGuiUpdate* update; 45 int verbose = 4; 41 46 42 int main( int argc, char *argv[])47 int main(int argc, char *argv[]) 43 48 { 44 49 OrxonoxGui* orxonoxgui = new OrxonoxGui(argc, argv); … … 51 56 \brief Initializes the Gui 52 57 */ 53 OrxonoxGui::OrxonoxGui 58 OrxonoxGui::OrxonoxGui(int argc, char *argv[]) 54 59 { 55 #ifdef HAVE_GTK2 56 initGTK(argc, argv); 57 #endif /* HAVE_GTK2 */ 58 orxonoxGUI = new Window( "Grafical OrxOnoX loader, "PACKAGE_VERSION); 59 #ifdef HAVE_GTK2 60 orxonoxGUI->connectSignal ("destroy", orxonoxGUI->orxonox_gui_quit); 61 orxonoxGUI->connectSignal ("delete_event", orxonoxGUI->orxonox_gui_quit); 62 #endif /* HAVE_GTK2 */ 60 initGUI(argc, argv); 61 62 orxonoxGUI = new Window( "grafical orxonox loader, "PACKAGE_VERSION); 63 63 64 64 Box* windowBox = new Box ('h'); … … 67 67 windowBox->fill (banner->getWidget()); 68 68 69 Box* optionBox = new Box 69 Box* optionBox = new Box('v'); 70 70 71 Box* avBox = new Box 71 Box* avBox = new Box('h'); 72 72 73 video = new OrxonoxGuiVideo 74 avBox->fill (video->getWidget());75 audio = new OrxonoxGuiAudio 76 avBox->fill (audio->getWidget());73 video = new OrxonoxGuiVideo(); 74 avBox->fill(video->getWidget()); 75 audio = new OrxonoxGuiAudio(); 76 avBox->fill(audio->getWidget()); 77 77 78 optionBox->fill 78 optionBox->fill(avBox); 79 79 80 keys = new OrxonoxGuiKeys 81 optionBox->fill (keys->getWidget());80 keys = new OrxonoxGuiKeys(); 81 optionBox->fill(keys->getWidget()); 82 82 83 exec = new OrxonoxGuiExec (orxonoxGUI);84 optionBox->fill (exec->getWidget());83 exec = new OrxonoxGuiExec(); 84 optionBox->fill(exec->getWidget()); 85 85 86 flags = new OrxonoxGuiFlags (orxonoxGUI); 86 flags = new OrxonoxGuiFlags(); 87 88 optionBox->fill(flags->getWidget()); 89 windowBox->fill(optionBox); 90 91 update = new OrxonoxGuiUpdate(); 92 optionBox->fill(update->getWidget()); 93 94 orxonoxGUI->fill(windowBox); 95 96 // Reading Values from File 97 exec->setFilename("~/.orxonox.conf"); 98 exec->readFromFile(orxonoxGUI); 99 // Merging changes to the Options from appended flags. 100 for (int optCount = 1; optCount < argc; optCount++) 101 orxonoxGUI->walkThrough(Widget::flagCheck, argv[optCount], 0); 102 103 flags->setTextFromFlags(orxonoxGUI); 104 orxonoxGUI->showall(); 105 106 //// Handling special Cases. /// 107 108 // case update // 109 #ifdef HAVE_CURL 110 if (static_cast<Option*>(orxonoxGUI->findWidgetByName("auto update", 0))->value == 1) 111 { 112 update->checkForUpdates(); 113 } 114 #endif /* HAVE_CURL */ 115 116 // case start-with-gui. 117 if (!access(exec->getConfigFile(), F_OK) && static_cast<Option*>(orxonoxGUI->findWidgetByName("Always Show this Menu", 0))->value == 0) 118 OrxonoxGuiExec::startOrxonox(NULL, exec); 119 else 120 { 121 mainloopGUI(); 122 } 123 124 } 87 125 88 126 89 optionBox->fill (flags->getWidget ()); 90 windowBox->fill (optionBox); 91 92 orxonoxGUI->fill (windowBox); 93 flags->setTextFromFlags (orxonoxGUI); 94 95 exec->setFilename ("~/.orxonox.conf"); 96 exec->readFromFile (orxonoxGUI); 97 // orxonoxGUI->walkThrough(orxonoxGUI->listOptions); 98 99 orxonoxGUI->showall (); 100 101 102 #ifdef HAVE_GTK2 103 mainloopGTK(); 104 #else /* HAVE_GTK2 */ 105 cout << " Listing all the Orxonox Options: \n"; 106 cout << " #############################\n"; 107 orxonoxGUI->walkThrough(orxonoxGUI->listOptions); 108 109 cout << "\nDo you want me to save the the above values now? [Yn] "; 110 char c = getchar(); 111 if ((c == 'y' || c == 'Y' || c== 10) && exec->shouldsave()) 112 exec->writeToFile (Window::mainWindow); 113 114 #endif /* HAVE_GTK2 */ 115 127 /** 128 \brief Destructor. 129 */ 130 OrxonoxGui::~OrxonoxGui(void) 131 { 132 delete video; 133 delete audio; 134 delete exec; 135 delete flags; 136 delete banner; 137 delete keys; 138 delete update; 116 139 } -
orxonox/trunk/src/gui/orxonox_gui.h
r3187 r3423 25 25 { 26 26 public: 27 OrxonoxGui 28 ~OrxonoxGui ();27 OrxonoxGui(int argc, char *argv[]); 28 ~OrxonoxGui(void); 29 29 30 30 }; 31 31 32 33 34 32 #endif /* _ORXONOX_GUI_H */ -
orxonox/trunk/src/gui/orxonox_gui_audio.cc
r2739 r3423 29 29 \brief Creates an Audio-Frame 30 30 */ 31 OrxonoxGuiAudio::OrxonoxGuiAudio ()31 OrxonoxGuiAudio::OrxonoxGuiAudio(void) 32 32 { 33 audioFrame = new Frame("Audio-Options:");34 audioBox = new Box('v');35 audioFrame->setGroupName("audio");33 this->audioFrame = new Frame("Audio-Options:"); 34 this->audioBox = new Box('v'); 35 this->audioFrame->setGroupName("audio"); 36 36 37 enableSound = new CheckButton("Disable Sound");38 enableSound->setFlagName ("no-sound", 0);39 enableSound->saveable = true;40 audioBox->fill (enableSound);41 Label* musicVolumeLabel = new Label 42 audioBox->fill(musicVolumeLabel);43 musicVolume = new Slider("Music Volume", 0, 100);44 musicVolume->setFlagName("music-volume", "m", 80);45 musicVolume->saveable = true;46 audioBox->fill (musicVolume);37 this->enableSound = new CheckButton("Disable Sound"); 38 this->enableSound->setFlagName ("no-sound", 0); 39 this->enableSound->saveability(); 40 this->audioBox->fill(this->enableSound); 41 Label* musicVolumeLabel = new Label("Music Volume"); 42 this->audioBox->fill(musicVolumeLabel); 43 this->musicVolume = new Slider("Music Volume", 0, 100); 44 this->musicVolume->setFlagName("music-volume", "m", 80); 45 this->musicVolume->saveability(); 46 this->audioBox->fill (this->musicVolume); 47 47 Label* effectsVolumeLabel = new Label ("Effects Volume"); 48 audioBox->fill (effectsVolumeLabel);49 effectsVolume = new Slider ("Effects Volume", 0, 100);50 effectsVolume->setFlagName ("effects-volume", "e", 80);51 effectsVolume->saveable = true;52 audioBox->fill (effectsVolume);48 this->audioBox->fill (effectsVolumeLabel); 49 this->effectsVolume = new Slider ("Effects Volume", 0, 100); 50 this->effectsVolume->setFlagName ("effects-volume", "e", 80); 51 this->effectsVolume->saveability(); 52 this->audioBox->fill (this->effectsVolume); 53 53 54 audioFrame->fill (audioBox); 54 this->audioFrame->fill (this->audioBox); 55 } 56 57 /** 58 \brief Destructs the Audio-Stuff 59 */ 60 OrxonoxGuiAudio::~OrxonoxGuiAudio(void) 61 { 62 // nothing to do here. 55 63 } 56 64 … … 59 67 \return Returns the Audio-frame 60 68 */ 61 Widget* OrxonoxGuiAudio::getWidget ()69 Widget* OrxonoxGuiAudio::getWidget(void) 62 70 { 63 return audioFrame;71 return this->audioFrame; 64 72 } -
orxonox/trunk/src/gui/orxonox_gui_audio.h
r3187 r3423 19 19 Slider* effectsVolume; //!< A Slider for effects volume. 20 20 public: 21 OrxonoxGuiAudio ();22 ~OrxonoxGuiAudio ();21 OrxonoxGuiAudio(void); 22 ~OrxonoxGuiAudio(void); 23 23 24 Widget* getWidget ();24 Widget* getWidget(void); 25 25 }; 26 26 #endif /* _ORXONOX_GUI_AUDIO_H */ -
orxonox/trunk/src/gui/orxonox_gui_banner.cc
r3165 r3423 29 29 \brief Creates a new BannerEventBox and its content. 30 30 */ 31 OrxonoxGuiBanner::OrxonoxGuiBanner ()31 OrxonoxGuiBanner::OrxonoxGuiBanner(void) 32 32 { 33 33 // Banner Itself // 34 bannerEventBox = new EventBox("BannerEventBox");35 bannerImage = new Image("banner.xpm");36 bannerEventBox->fill(bannerImage);34 this->bannerEventBox = new EventBox("BannerEventBox"); 35 this->bannerImage = new Image("banner.xpm"); 36 this->bannerEventBox->fill(this->bannerImage); 37 37 38 38 // Banner Window // 39 logoWindow = new Window("Logo");39 this->logoWindow = new Window("Logo"); 40 40 41 41 #ifdef HAVE_GTK2 42 bannerEventBox->connectSignal ("button_press_event",logoWindow, Window::windowOpen);42 this->bannerEventBox->connectSignal("button_press_event", this->logoWindow, Window::windowOpen); 43 43 44 logoWindow->connectSignal("destroy",logoWindow, Window::windowClose);45 logoWindow->connectSignal("delete_event",logoWindow, Window::windowClose);44 this->logoWindow->connectSignal("destroy", this->logoWindow, Window::windowClose); 45 this->logoWindow->connectSignal("delete_event", this->logoWindow, Window::windowClose); 46 46 #endif /* HAVE_GTK2 */ 47 logoEventBox = new EventBox();48 logoBox = new Box('v');49 logoLabel = new Label("OrxOnoX, Version: " PACKAGE_VERSION);50 logoImage = new Image("banner.xpm");51 logoEventBox->fill(logoImage);47 this->logoEventBox = new EventBox(); 48 this->logoBox = new Box('v'); 49 this->logoLabel = new Label("OrxOnoX, Version: " PACKAGE_VERSION); 50 this->logoImage = new Image("banner.xpm"); 51 this->logoEventBox->fill(this->logoImage); 52 52 53 logoBox->fill(logoLabel);54 logoBox->fill(logoEventBox);53 this->logoBox->fill(this->logoLabel); 54 this->logoBox->fill(this->logoEventBox); 55 55 #ifdef HAVE_GTK2 56 logoEventBox->connectSignal("button_press_event",logoWindow, Window::windowClose);56 this->logoEventBox->connectSignal("button_press_event", this->logoWindow, Window::windowClose); 57 57 #endif /* HAVE_GTK2 */ 58 58 59 logoWindow->fill (logoBox);59 this->logoWindow->fill(this->logoBox); 60 60 61 Window::addWindow (logoWindow);61 Window::addWindow(this->logoWindow); 62 62 } 63 63 … … 65 65 \brief Destructs it. 66 66 */ 67 OrxonoxGuiBanner::~OrxonoxGuiBanner ()67 OrxonoxGuiBanner::~OrxonoxGuiBanner(void) 68 68 { 69 // nothing to do here 69 70 } 70 71 … … 73 74 \return The EventBox, that holds the Banner. 74 75 */ 75 Widget* OrxonoxGuiBanner::getWidget ()76 Widget* OrxonoxGuiBanner::getWidget(void) 76 77 { 77 return bannerEventBox;78 return this->bannerEventBox; 78 79 } 79 80 -
orxonox/trunk/src/gui/orxonox_gui_banner.h
r3187 r3423 29 29 30 30 public: 31 OrxonoxGuiBanner ();32 ~OrxonoxGuiBanner ();31 OrxonoxGuiBanner(void); 32 ~OrxonoxGuiBanner(void); 33 33 34 Widget* getWidget ();34 Widget* getWidget(void); 35 35 36 36 }; -
orxonox/trunk/src/gui/orxonox_gui_exec.cc
r3187 r3423 28 28 #include <string> 29 29 30 HashTable* orxonoxFlagHash; 31 30 32 /** 31 33 \brief Creates the Exec-Frame 32 \param orxonoxGUI ExecFrame needs to know where to get the Options from 33 */ 34 OrxonoxGuiExec::OrxonoxGuiExec (Window* orxonoxGUI) 35 { 36 configFile = (char*)malloc (512*sizeof (char)); 37 38 execFrame = new Frame ("Execute-Tags:"); 39 execBox = new Box ('v'); 40 execFrame->setGroupName ("misc"); 34 */ 35 OrxonoxGuiExec::OrxonoxGuiExec(void) 36 { 37 configFile =(char*)malloc(512*sizeof(char)); 38 39 this->execFrame = new Frame("Execute-Tags:"); 40 this->execBox = new Box('v'); 41 this->execFrame->setGroupName("misc"); 41 42 42 start = new Button("Start");43 this->start = new Button("Start"); 43 44 #ifdef HAVE_GTK2 44 start->connectSignal ("clicked", startOrxonox);45 this->start->connectSignal("clicked", this, startOrxonox); 45 46 #endif /* HAVE_GTK2 */ 46 execBox->fill(start);47 saveSettings = new CheckButton("Save Settings");48 saveSettings->value = 1;49 saveSettings->saveable = true;50 execBox->fill (saveSettings);51 verboseMode = new Menu ("verbose mode", "no output", "verbose", "debug", "lastItem");52 verboseMode->setFlagName("verbose", "v", 0);53 verboseMode->saveable = true;54 execBox->fill (verboseMode);55 alwaysShow = new CheckButton("Always Show this Menu");56 alwaysShow->setFlagName("gui", "g", 0);57 alwaysShow->saveable = true;58 execBox->fill (alwaysShow);59 quit = new Button("Quit");47 this->execBox->fill(start); 48 this->saveSettings = new CheckButton("Save Settings"); 49 this->saveSettings->value = 1; 50 this->saveSettings->saveability(); 51 this->execBox->fill(this->saveSettings); 52 this->verboseMode = new Menu("verbose mode", "no output", "error", "warning", "info", "lastItem"); 53 this->verboseMode->setFlagName("verbose", "v", 0); 54 this->verboseMode->saveability(); 55 this->execBox->fill(this->verboseMode); 56 this->alwaysShow = new CheckButton("Always Show this Menu"); 57 this->alwaysShow->setFlagName("gui", "g", 0); 58 this->alwaysShow->saveability(); 59 this->execBox->fill(this->alwaysShow); 60 this->quit = new Button("Quit"); 60 61 #ifdef HAVE_GTK2 61 quit->connectSignal ("clicked", orxonoxGUI->orxonox_gui_quit); 62 this->quit->connectSignal("clicked", this, OrxonoxGuiExec::quitOrxonox); 63 // Window::mainWindow->connectSignal("remove", this, OrxonoxGuiExec::quitOrxonox); 64 Window::mainWindow->connectSignal("destroy", this, OrxonoxGuiExec::quitOrxonox); 62 65 #endif /* HAVE_GTK2 */ 63 execBox->fill (quit); 64 65 execFrame->fill (execBox); 66 this->execBox->fill(this->quit); 67 68 this->execFrame->fill(this->execBox); 69 } 70 71 /** 72 \brief Destructs the Execution-stuff 73 */ 74 OrxonoxGuiExec::~OrxonoxGuiExec(void) 75 { 76 if(this->configFile) 77 delete []this->configFile; 66 78 } 67 79 … … 70 82 \return Returns the Exec-frame 71 83 */ 72 Widget* OrxonoxGuiExec::getWidget ()84 Widget* OrxonoxGuiExec::getWidget(void) 73 85 { 74 86 return execFrame; … … 78 90 79 91 /** 80 \brief Sets the location of the configuration File.\n 81 * The name will be parsed from ~/ to /home/[username] on unix and c:/Documents and Settings/username/Settings/ on Windows 92 \brief Sets the location of the configuration File. 82 93 \param filename the location of the configFile 83 */ 84 void OrxonoxGuiExec::setFilename (char* filename) 85 { 86 char* buffer = (char*) malloc (512*sizeof(buffer)); 87 sprintf (buffer, "%s", filename); 88 if (!strncmp (buffer, "~/", 2)) 94 95 \todo: memory allocation could be better. 96 97 The name will be parsed from ~/ to /home/[username] on unix and c:/Documents and Settings/username/Settings/ on Windows 98 */ 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)) 89 104 { 90 105 #ifdef __WIN32__ 91 sprintf (configFile, "%s/%s", getenv("USERPROFILE"), buffer+2);106 sprintf(configFile, "%s/%s", getenv("USERPROFILE"), buffer+2); 92 107 #else 93 sprintf (configFile, "%s/%s", getenv("HOME"), buffer+2);108 sprintf(configFile, "%s/%s", getenv("HOME"), buffer+2); 94 109 #endif 95 110 } 96 else if (buffer) 97 sprintf(configFile, "%s", buffer); 98 delete buffer; 111 else if(buffer) 112 strcpy(this->configFile, buffer); 113 free (buffer); 114 } 115 116 /** 117 \returns The name of the Configuration-File 118 */ 119 char* OrxonoxGuiExec::getConfigFile(void) 120 { 121 return this->configFile; 99 122 } 100 123 … … 103 126 \return 1 if it should 0 if not/ 104 127 */ 105 int OrxonoxGuiExec::shouldsave 106 { 107 return (static_cast<Option*>(saveSettings)->value);128 int OrxonoxGuiExec::shouldsave() 129 { 130 return(static_cast<Option*>(this->saveSettings)->value); 108 131 } 109 132 … … 112 135 \param widget from which Widget on should be saved. 113 136 114 this Function only opens and closes the file, in between OrxonoxGuiExec::writeFileText 115 */ 116 void OrxonoxGuiExec::writeToFile 117 { 118 CONFIG_FILE = fopen(configFile, "w");119 if (CONFIG_FILE)120 writeFileText(widget, 0);121 fclose (CONFIG_FILE);137 this Function only opens and closes the file, in between OrxonoxGuiExec::writeFileText(Widget* widget) will execute the real writing process. 138 */ 139 void OrxonoxGuiExec::writeToFile(Widget* widget) 140 { 141 this->CONFIG_FILE = fopen(configFile, "w"); 142 if(this->CONFIG_FILE) 143 this->writeFileText(widget, 0); 144 fclose(this->CONFIG_FILE); 122 145 } 123 146 … … 127 150 \param depth initially "0", and grows higher, while new Groups are bundeled. 128 151 */ 129 void OrxonoxGuiExec::writeFileText 152 void OrxonoxGuiExec::writeFileText(Widget* widget, int depth) 130 153 { 131 154 int counter = 0; 132 while (counter < depth &&((widget->isOption>0133 && (static_cast<Option*>(widget)->saveable))134 || 135 136 { 137 fprintf (CONFIG_FILE, " ", depth);155 while(counter < depth &&((widget->isOption>0 156 &&(static_cast<Option*>(widget)->isSaveable())) 157 ||(widget->isOption<0 158 && static_cast<Packer*>(widget)->getGroupName()))) 159 { 160 fprintf(this->CONFIG_FILE, " ", depth); 138 161 counter++; 139 162 } 140 163 141 164 // check if it is a Packer, and if it is, check if it has a name and if there is something in it. 142 if 143 { 144 if 145 { 146 fprintf 147 writeFileText(static_cast<Packer*>(widget)->down, depth+1);165 if(widget->isOption <0) 166 { 167 if(static_cast<Packer*>(widget)->getGroupName()) 168 { 169 fprintf(CONFIG_FILE, "[%s]\n", static_cast<Packer*>(widget)->getGroupName()); 170 this->writeFileText(static_cast<Packer*>(widget)->down, depth+1); 148 171 fprintf(CONFIG_FILE, "\n"); 149 172 } 150 173 else 151 174 { 152 writeFileText(static_cast<Packer*>(widget)->down, depth);175 this->writeFileText(static_cast<Packer*>(widget)->down, depth); 153 176 } 154 177 } 155 // if 156 // printf ("%s\n",widget->label);157 if 158 if (static_cast<Option*>(widget)->saveable)178 // if(widget->isOption == 0) 179 // printf("%s\n",widget->title); 180 if(widget->isOption >= 1) 181 if (static_cast<Option*>(widget)->isSaveable()) 159 182 { 160 183 char Buffer[256]; 161 184 char* space2under; 162 strcpy (Buffer, static_cast<Option*>(widget)->label);163 if (strchr(Buffer, '_'))185 strcpy(Buffer, static_cast<Option*>(widget)->title); 186 if(strchr(Buffer, '_')) 164 187 cout << "Warning Optionname" << Buffer << " is not Valid for Saving, because it includes an underscore" << endl; 165 while 188 while(space2under = strchr(Buffer, ' ')) 166 189 { 167 190 space2under[0] = '_'; 168 191 } 169 if 170 fprintf 171 else if 172 fprintf 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); 173 196 } 174 197 175 if 176 writeFileText(widget->next, depth);198 if(widget->next != NULL) 199 this->writeFileText(widget->next, depth); 177 200 } 178 201 … … 181 204 \param widget from which Widget on should be saved. 182 205 */ 183 void OrxonoxGuiExec::readFromFile (Widget* widget) 184 { 185 CONFIG_FILE = fopen (configFile, "r"); 186 if (CONFIG_FILE) 206 void OrxonoxGuiExec::readFromFile(Widget* widget) 207 { 208 this->CONFIG_FILE = fopen(configFile, "r"); 209 VarInfo varInfo; 210 if(this->CONFIG_FILE) 187 211 { 188 212 Widget* groupWidget = widget; … … 190 214 char Variable[256]= ""; 191 215 char* Value; 192 while (fscanf (CONFIG_FILE, "%s", Buffer) != EOF)216 while(fscanf(this->CONFIG_FILE, "%s", Buffer) != EOF) 193 217 { 194 218 // group-search // 195 if (!strncmp(Buffer, "[", 1))219 if(!strncmp(Buffer, "[", 1)) 196 220 { 197 if ((groupWidget = locateGroup(widget, Buffer, 1))==NULL)221 if((groupWidget = locateGroup(widget, Buffer, 1))==NULL) 198 222 { 199 223 cout << "!!There is no group called " << Buffer << " in this GUI.\n First best Widget will get the Infos assigned.\n Config-File will be updated in next Save\n"; 200 224 groupWidget = widget; 201 225 } 226 else 227 PRINT(3)("Group %s located.\n", static_cast<Packer*>(groupWidget)->groupName); 202 228 } 203 229 // option-setting // 204 if (!strcmp(Buffer, "="))230 if(!strcmp(Buffer, "=")) 205 231 { 206 232 char* under2space; 207 while 233 while(under2space = strchr(Variable, '_')) 208 234 { 209 sprintf 235 sprintf(under2space, " %s", under2space+1); 210 236 } 211 237 212 fscanf (CONFIG_FILE, "%s", Buffer); 213 Value = Buffer; 214 readFileText (groupWidget, Variable, Value, 0); 215 sprintf (Variable, ""); 238 fscanf(this->CONFIG_FILE, "%s", Buffer); 239 varInfo.variableName = Variable; 240 varInfo.variableValue = Buffer; 241 groupWidget->walkThrough(this->readFileText, &varInfo, 0); 242 sprintf(Variable, ""); 216 243 } 217 sprintf (Variable, "%s", Buffer); 218 } 219 widget->walkThrough(widget->setOptions); 220 } 221 } 244 sprintf(Variable, "%s", Buffer); 245 } 246 widget->walkThrough(widget->setOptions, 0); 247 } 248 } 249 222 250 /** 223 251 \brief Maps Confugurations to the Options. 224 252 \param widget which widget downwards 225 \param variableName the name of the Variable that should be set up. 226 \param variableValue the Value of the Variable that should be set up 227 \param depth the depth of the local Widget 228 */ 229 void OrxonoxGuiExec::readFileText (Widget* widget, char* variableName, char* variableValue, int depth) 230 { 231 if (widget->isOption >= 1 && widget->isOption <= 3) 232 { 233 if (!strcmp (static_cast<Option*>(widget)->label, variableName)) 234 static_cast<Option*>(widget)->value = atoi(variableValue); 235 } 236 else if (widget->isOption == 5) 237 { 238 if (!strcmp (static_cast<Option*>(widget)->label, variableName)) 239 static_cast<OptionLabel*>(widget)->setValue(variableValue); 240 } 241 if (widget->isOption < 0) 242 { 243 readFileText (static_cast<Packer*>(widget)->down, variableName, variableValue, depth+1); 244 } 245 246 if (widget->next != NULL && depth !=0) 247 readFileText (widget->next, variableName, variableValue, depth); 253 \param varInfo Information about the Variable to read 254 */ 255 void OrxonoxGuiExec::readFileText(Widget* widget, void* varInfo) 256 { 257 VarInfo* info =(VarInfo*)varInfo; 258 if(widget->title && !strcmp(widget->title, info->variableName)) 259 { 260 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); 268 } 248 269 } 249 270 … … 254 275 \param depth The Depth of the search seen from the first widget we searched from. 255 276 \returns The Widget that holds the Group, or the NULL if the Group wasn't found. 277 278 \todo do this in gui-gtk. 256 279 */ 257 280 Widget* OrxonoxGuiExec::locateGroup(Widget* widget, char* groupName, int depth) … … 260 283 261 284 // removes the trailing and ending [ ]. 262 if (!strncmp(groupName, "[", 1))285 if(!strncmp(groupName, "[", 1)) 263 286 { 264 287 groupName = groupName+1; … … 266 289 } 267 290 268 if 269 { 270 if 291 if(widget->isOption < 0) 292 { 293 if(static_cast<Packer*>(widget)->getGroupName() && !strcmp(groupName, static_cast<Packer*>(widget)->getGroupName())) 271 294 { 272 295 return widget; … … 274 297 else 275 298 { 276 if ((tmp = locateGroup(static_cast<Packer*>(widget)->down, groupName, depth+1)) != NULL)299 if((tmp = locateGroup(static_cast<Packer*>(widget)->down, groupName, depth+1)) != NULL) 277 300 return tmp; 278 301 } 279 302 } 280 303 281 if 282 { 283 if ((tmp = locateGroup(widget->next, groupName, depth)) != NULL)304 if(widget->next != NULL && depth != 0) 305 { 306 if((tmp = locateGroup(widget->next, groupName, depth)) != NULL) 284 307 return tmp; 285 308 } … … 289 312 #ifdef HAVE_GTK2 290 313 /** 291 \brief Starts ORXONOX. (not really implemented yet, but the function is there.\n 292 This is a Signal and can be executed through Widget::signal_connect 314 \brief Starts ORXONOX.(not really implemented yet, but the function is there.\n 293 315 \param widget the widget that executed the start command 294 316 \param data additional data 295 */ 296 gint startOrxonox (GtkWidget *widget, Widget* data) 297 { 317 318 This is a Signal and can be executed through Widget::signal_connect 319 */ 320 int OrxonoxGuiExec::startOrxonox(GtkWidget* widget, void* data) 321 { 322 OrxonoxGuiExec* exec =(OrxonoxGuiExec*)data; 323 if(exec->shouldsave()) 324 exec->writeToFile(Window::mainWindow); 298 325 cout << "Starting Orxonox" <<endl; 299 } 326 gtk_main_quit(); 327 system("cd ..;./orxonox"); //!< \todo fix this. should execute orxonox for real(coded not over the shell) 328 } 329 330 /** 331 \brief Starts ORXONOX.(not really implemented yet, but the function is there.\n 332 \param widget the widget that executed the start command 333 \param data additional data 334 335 This is a Signal and can be executed through Widget::signal_connect 336 */ 337 int OrxonoxGuiExec::quitOrxonox(GtkWidget* widget, void* data) 338 { 339 OrxonoxGuiExec* exec =(OrxonoxGuiExec*)data; 340 PRINT(3)( "Quitting Orxonox %p\n", exec); 341 if(exec->shouldsave()) 342 exec->writeToFile(Window::mainWindow); 343 gtk_main_quit(); 344 } 345 #else /* HAVE_GTK2 */ 346 /** 347 \brief Starts ORXONOX.(not really implemented yet, but the function is there.\n 348 \param widget the widget that executed the start command 349 \param data additional data 350 */ 351 int OrxonoxGuiExec::startOrxonox(void* widget, void* data) 352 { 353 OrxonoxGuiExec* exec =(OrxonoxGuiExec*)data; 354 PRINT(3)("Starting Orxonox\n"); 355 if(exec->shouldsave()) 356 exec->writeToFile(Window::mainWindow); 357 system("cd ..;./orxonox"); //!< \todo fix this. should execute orxonox for real(coded not over the shell) 358 } 359 /** 360 \brief Quits ORXONOX. 361 \param widget the widget that executed the Quit command 362 \param data additional data 363 364 This is a Signal and can be executed through Widget::signal_connect 365 */ 366 int OrxonoxGuiExec::quitOrxonox(void* widget, void* data) 367 { 368 OrxonoxGuiExec* exec =(OrxonoxGuiExec*)data; 369 PRINT(3)("Quiting Orxonox"); 370 if(exec->shouldsave()) 371 exec->writeToFile(Window::mainWindow); 372 } 373 300 374 #endif /* HAVE_GTK2 */ -
orxonox/trunk/src/gui/orxonox_gui_exec.h
r3187 r3423 24 24 char* configFile; //!< The name of the .orxonox.conf(ig)-file. 25 25 FILE* CONFIG_FILE; //!< Filehandler for reading and writing. 26 27 //! A struct that holds informations about variables. 28 struct VarInfo 29 { 30 char* variableName; //!< The Name of this variable; 31 char* variableValue; //!< The Value this variable gets. 32 }; 26 33 27 34 public: 28 OrxonoxGuiExec (Window* orxonoxGUI);29 ~OrxonoxGuiExec ();35 OrxonoxGuiExec(void); 36 ~OrxonoxGuiExec(void); 30 37 31 Widget* getWidget ();38 Widget* getWidget(void); 32 39 33 void setFilename (char* filename); 34 int shouldsave (); 35 void writeToFile (Widget* widget); 36 void writeFileText (Widget* widget, int depth); 37 void readFromFile (Widget* widget); 38 void readFileText (Widget* widget, char* variableName, char* variableValue, int depth); 40 void setFilename(char* filename); 41 char* getConfigFile(void); 42 int shouldsave(void); 43 void writeToFile(Widget* widget); 44 void writeFileText(Widget* widget, int depth); 45 void readFromFile(Widget* widget); 46 static void readFileText(Widget* widget, void* varInfo); 39 47 Widget* locateGroup(Widget* widget, char* groupName, int depth); 40 48 49 #ifdef HAVE_GTK2 50 static int startOrxonox(GtkWidget *widget, void* data); 51 static int quitOrxonox(GtkWidget *widget, void* data); 52 #else /* HAVE_GTK2 */ 53 static int startOrxonox(void* widget, void* data); 54 static int quitOrxonox(void* widget, void* data); 55 #endif /* HAVE_GTK2 */ 41 56 }; 42 #ifdef HAVE_GTK2 43 gint startOrxonox (GtkWidget *widget, Widget* data); 44 #endif /* HAVE_GTK2 */ 57 58 59 struct HashTable 60 { 61 char* name; 62 char* value; 63 HashTable* next; 64 }; 65 66 45 67 #endif /* _ORXONOX_GUI_EXEC_H */ -
orxonox/trunk/src/gui/orxonox_gui_flags.cc
r3158 r3423 28 28 /** 29 29 \brief Creates the Flags-Frame 30 \param widget The Widget from which the data will be parsed31 30 */ 32 OrxonoxGuiFlags::OrxonoxGuiFlags (Widget* widget)31 OrxonoxGuiFlags::OrxonoxGuiFlags(void) 33 32 { 34 flagText = (char*) malloc (1024); 33 this->flagsFrame = new Frame("Orxonox-Startup-Flags:"); 34 this->flagsBox = new Box('v'); 35 35 36 flagsFrame = new Frame ("Orxonox-Startup-Flags:"); 37 flagsBox = new Box ('v'); 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); 38 41 39 flagsLabel = new Label (); 40 flagsLabel->setSize (260,60); 41 flagsBox->fill (flagsLabel); 42 shortFlags = new CheckButton ("shortFlags"); 43 flagsBox->fill (shortFlags); 42 this->flagsFrame->fill(flagsBox); 43 } 44 44 45 flagsFrame->fill (flagsBox); 45 /** 46 \brief Destructs the Flags-stuff 47 */ 48 OrxonoxGuiFlags::~OrxonoxGuiFlags(void) 49 { 50 // nothing to do here 46 51 } 47 52 … … 50 55 \returns Frame that holds the Flagtext. 51 56 */ 52 Widget* OrxonoxGuiFlags::getWidget ()57 Widget* OrxonoxGuiFlags::getWidget(void) 53 58 { 54 return flagsFrame;59 return this->flagsFrame; 55 60 } 56 61 … … 59 64 \param widget the Widget from which on to scan for deeper Options and their settings. 60 65 */ 61 void OrxonoxGuiFlags::setTextFromFlags 66 void OrxonoxGuiFlags::setTextFromFlags(Widget* widget) 62 67 { 63 sprintf (flagText, ""); 64 strcat (flagText, "orxonox"); 65 FlagsText (widget); 66 flagsLabel->setText (flagText); 68 FlagInfo flagInfo; 69 flagInfo.shortFlags = this->shortFlags; 70 flagInfo.flagsLabel = this->flagsLabel; 71 72 this->flagsLabel->ereaseText(); 73 this->flagsLabel->appendText("orxonox"); 74 widget->walkThrough(OrxonoxGuiFlags::flagsText, &flagInfo, 0); 75 // flagsLabel->setTitle(flagText); 67 76 } 68 77 … … 70 79 \brief this actually sets the flagtext, and appends it to flagText 71 80 \param widget like OrxonoxGuiFlags::setTextFromFlags(widget) 81 \param flagInfo Information aboout the Flag that should be updated. 72 82 */ 73 void OrxonoxGuiFlags:: FlagsText(Widget* widget)83 void OrxonoxGuiFlags::flagsText(Widget* widget, void* flagInfo) 74 84 { 75 if (widget->isOption >= 1) 76 if (static_cast<Option*>(widget)->value != static_cast<Option*>(widget)->defaultValue && (static_cast<Option*>(widget)->flagName || static_cast<Option*>(widget)->flagNameShort )) 85 FlagInfo* info =(FlagInfo*)flagInfo; 86 if(widget->isOption >= 1) 87 if (static_cast<Option*>(widget)->value != static_cast<Option*>(widget)->defaultValue ) 77 88 { 78 if (shortFlags->isActive())89 if(info->shortFlags->isActive() && static_cast<Option*>(widget)->flagNameShort) 79 90 { 80 strcat (flagText," -");81 strcat (flagText,static_cast<Option*>(widget)->flagNameShort);91 info->flagsLabel->appendText(" -"); 92 info->flagsLabel->appendText(static_cast<Option*>(widget)->flagNameShort); 82 93 } 83 else 94 else if(!info->shortFlags->isActive() && static_cast<Option*>(widget)->flagName) 84 95 { 85 strcat (flagText," --");86 strcat (flagText,static_cast<Option*>(widget)->flagName);96 info->flagsLabel->appendText(" --"); 97 info->flagsLabel->appendText(static_cast<Option*>(widget)->flagName); 87 98 } 88 if (static_cast<Option*>(widget)->isOption == 2) 99 100 if(static_cast<Option*>(widget)->isOption == 2) 89 101 { 90 sprintf (flagText, "%s=%i", flagText, static_cast<Option*>(widget)->value); 102 info->flagsLabel->appendText("="); 103 info->flagsLabel->appendInt(static_cast<Option*>(widget)->value); 91 104 } 92 105 } 93 switch (widget->isOption)94 {95 case -1:96 FlagsText (static_cast<Container*>(widget)->down);97 break;98 case -2:99 FlagsText (static_cast<Box*>(widget)->down);100 break;101 }102 103 if (widget->next != NULL)104 FlagsText (widget->next);105 106 } -
orxonox/trunk/src/gui/orxonox_gui_flags.h
r3187 r3423 17 17 CheckButton* shortFlags; //!< CheckButton to change the display of short and long flags \todo show long if long not availible... 18 18 Label* flagsLabel; //!< The Label of the Flags 19 char* flagText; //!< The Text of the Label. \todo Delete when Object is destroyed.20 19 21 20 public: 22 OrxonoxGuiFlags (Widget* widget);23 ~OrxonoxGuiFlags ();21 OrxonoxGuiFlags(void); 22 ~OrxonoxGuiFlags(void); 24 23 25 void setTextFromFlags 26 void OrxonoxGuiFlags::FlagsText(Widget* widget);24 void setTextFromFlags(Widget* widget); 25 static void flagsText(Widget* widget, void* flagInfo); 27 26 28 Widget* getWidget (); 27 struct FlagInfo 28 { 29 CheckButton* shortFlags; 30 Label* flagsLabel; 31 }; 32 Widget* getWidget(void); 29 33 }; 30 34 #endif /* _ORXONOX_GUI_FLAGS_H */ -
orxonox/trunk/src/gui/orxonox_gui_gtk.cc
r3192 r3423 34 34 // temporarily. 35 35 #include "orxonox_gui_flags.h" 36 #include "orxonox_gui_exec.h"37 36 extern Window* orxonoxGUI; 38 37 extern OrxonoxGuiFlags* flags; 39 extern OrxonoxGuiExec* exec; 40 41 #ifdef HAVE_GTK2 38 42 39 /** 43 40 \brief Initializes the Guis GTK-stuff. … … 45 42 \param argv The Argument strings. 46 43 */ 47 bool initGTK(int argc, char *argv[]) 48 { 49 gtk_init (&argc, &argv); 44 bool initGUI(int argc, char *argv[]) 45 { 46 #ifdef HAVE_GTK2 47 #ifdef HAVE_GTHREAD 48 PRINTF(3)("Initializing the ThreadSystem of the GUI\n"); 49 g_thread_init(NULL); 50 gdk_threads_init(); 51 #endif /* HAVE_GTHREAD */ 52 gtk_init(&argc, &argv); 50 53 gtk_rc_parse( "rc" ); 51 } 52 53 /** 54 \brief enters the GTK-main-loop 55 */ 56 bool mainloopGTK(void) 57 { 54 #endif /* HAVE_GTK2 */ 55 } 56 57 58 /** 59 \brief enters the GUI's main-loop 60 */ 61 bool mainloopGUI(void) 62 { 63 #ifdef HAVE_GTK2 64 gdk_threads_enter(); 58 65 gtk_main(); 59 } 60 #endif /* HAVE_GTK2 */ 66 gdk_threads_leave(); 67 delete Window::mainWindow; 68 #else /* HAVE_GTK2 */ 69 char boolAns = 'y'; 70 char ans[10]; 71 while(true) 72 { 73 PRINT(0)(" Listing all the Orxonox Options: \n"); 74 PRINT(0)(" #############################\n"); 75 Window::mainWindow->walkThrough(Widget::listOptionsAndGroups, 1); 76 77 PRINT(0)("\nDo you want change any of the above values now? [Yn] "); 78 cin >>boolAns ; 79 if (boolAns =='n' || boolAns=='N') 80 break; 81 82 PRINT(0)("\n Listing all groups\n"); 83 PRINT(0)(" #################\n"); 84 int groupCount = 0; 85 Window::mainWindow->walkThrough(Widget::listGroups, &groupCount, 1); 86 87 PRINT(0)("\nIn which Group? [1-%d] ", groupCount); 88 Packer* group; 89 while(true) 90 { 91 cin >> ans; 92 int ansIp = atoi(ans); 93 if (ansIp <= groupCount) 94 { 95 group = static_cast<Packer*>(Window::mainWindow->findGroupByNumber(&ansIp, 1)); 96 break; 97 } 98 else 99 PRINT(0)("\nChoose a smaler Number please: [1-%d] ", groupCount); 100 } 101 PRINT(0)("\n\nGroup: [%s]\n\n", group->groupName); 102 int optionCount = 0; 103 group->walkThrough(Widget::listOptions, &optionCount, 0); 104 PRINT(0)("\nWhich Option? [1-%d] ", optionCount); 105 Option* option; 106 while(true) 107 { 108 cin >> ans; 109 int ansIp = atoi(ans); 110 if (ansIp <= groupCount) 111 { 112 option = static_cast<Option*>(group->findOptionByNumber(&ansIp, 0)); 113 break; 114 } 115 else 116 PRINT(0)("\nChoose a smaler Number please: [1-%d] ", optionCount); 117 } 118 PRINT(0)("\n\n:: %s ::\n", option->title); 119 option->changeOption(); 120 121 // here follows the rest.... this will be nasty. 122 //! \todo move this into the gui-gtk-file 123 //! \todo finish it. 124 } 125 #endif /* HAVE_GTK2 */ 126 127 } 128 129 130 ////////////////////////////// 131 /// DEFINING WIDGET-CLASES /// 132 ////////////////////////////// 61 133 62 134 /* WIDGET */ … … 66 138 This is still pretty crappy. 67 139 */ 68 Widget::~Widget() 69 { 70 // cout << "hiding: " <<this->label <<"\n"; 71 this->hide(); 72 // cout << "check if Packer: "<<this->label <<"\n"; 73 if (this->isOption < 0) 74 { 75 // cout << "get Down "<<this->label <<"\n"; 76 static_cast<Packer*>(this)->down->~Widget(); 77 } 78 // cout << "next != NULL?: " <<this->label <<"\n"; 79 if (this->next != NULL) 80 this->next->~Widget(); 81 cout << "delete Widget: " <<this->label <<"\n"; 82 // delete widget; 140 Widget::~Widget(void) 141 { 142 this->destroy(); 83 143 } 84 144 … … 87 147 Initializes the next Pointer and the other Widget-specific Defaults. 88 148 */ 89 void Widget::init( )149 void Widget::init(void) 90 150 { 91 151 next = NULL; 92 label= NULL;152 this->title = NULL; 93 153 return; 94 154 } 95 155 96 156 /** 157 \brief Destroys a Widget 158 */ 159 void Widget::destroy(void) 160 { 161 if (this->title) 162 { 163 delete []this->title; 164 } 165 166 PRINTF(4)("deleting the Widget part.\n"); 167 168 PRINTF(4)("deleting recursively\n"); 169 170 // deleting next item if existent 171 if (this->next) 172 delete this->next; 173 this->next = NULL; 174 175 //! \todo not hiding widget, deleting. 176 // this->hide(); 177 // delete this->widget; 178 } 179 180 /** 97 181 \brief makes the widget visible. 98 182 */ 99 void Widget::show( )100 { 101 #ifdef HAVE_GTK2 102 gtk_widget_show 183 void Widget::show(void) 184 { 185 #ifdef HAVE_GTK2 186 gtk_widget_show(this->widget); 103 187 #endif /* HAVE_GTK2 */ 104 188 } … … 107 191 \brief hides the widget. 108 192 */ 109 void Widget::hide( )110 { 111 #ifdef HAVE_GTK2 112 gtk_widget_hide 193 void Widget::hide(void) 194 { 195 #ifdef HAVE_GTK2 196 gtk_widget_hide(this->widget); 113 197 #endif /* HAVE_GTK2 */ 114 198 } … … 122 206 { 123 207 #ifdef HAVE_GTK2 124 gtk_widget_set_usize (this->widget, width, height); 125 #endif /* HAVE_GTK2 */ 126 } 127 128 #ifdef HAVE_GTK2 129 /** 130 \brief Connect any signal to any given Sub-widget 131 */ 132 gulong Widget::connectSignal (char* event, gint (*signal)(GtkWidget*, GdkEvent*, void *)) 133 { 134 return g_signal_connect (G_OBJECT (this->widget), event, G_CALLBACK (signal), NULL); 135 } 136 137 /** 138 \brief Connect a signal with additionally passing the whole Object 139 */ 140 gulong Widget::connectSignal (char* event, gint (*signal)( GtkWidget*, Widget *)) 141 { 142 return g_signal_connect (G_OBJECT (this->widget), event, G_CALLBACK (signal), this); 143 } 144 145 /** 146 \brief Connect a signal with additionally passing a whole external Object 147 */ 148 gulong Widget::connectSignal (char* event, void* extObj, gint (*signal)(GtkWidget*, GdkEvent*, void *)) 149 { 150 return g_signal_connect (G_OBJECT (this->widget), event, G_CALLBACK (signal), extObj); 151 } 152 153 /** 154 \brief Connect a signal with additionally passing a whole external Object 155 */ 156 gulong Widget::connectSignal (char* event, void* extObj, gint (*signal)(GtkWidget*, GdkEventKey*, void *)) 157 { 158 return g_signal_connect (G_OBJECT (this->widget), event, G_CALLBACK (signal), extObj); 159 } 160 161 void Widget::disconnectSignal (gulong signalID) 162 { 163 g_signal_handler_disconnect (G_OBJECT (this->widget), signalID); 164 } 165 #endif /* HAVE_GTK2 */ 208 gtk_widget_set_usize(this->widget, width, height); 209 #endif /* HAVE_GTK2 */ 210 } 211 212 /** 213 \brief searches through widgets for a Name. 214 */ 215 Widget* Widget::findWidgetByName(char* name, unsigned int depth) 216 { 217 218 if (this->title && !strcmp(this->title, name)) 219 return this; 220 221 if (this->isOption < 0 && static_cast<Packer*>(this)->down) 222 { 223 Widget* tmp = static_cast<Packer*>(this)->down->findWidgetByName(name, depth+1); 224 if (tmp) 225 return tmp; 226 } 227 228 if (depth>0 && this->next) 229 return this->next->findWidgetByName(name, depth); 230 231 return NULL; 232 } 166 233 167 234 /** 168 235 \brief Moves through all the Widgets downwards from this and executes the function on them. 169 \param Function must be of type void and takes a Widget* as an Input. 170 */ 171 void Widget::walkThrough (void (*function)(Widget*)) 236 \param function must be of type void and takes a Widget* as an Input. 237 \param depth the current depth. if > 0 then the next Widget will also be walked through. 238 */ 239 void Widget::walkThrough(void(*function)(Widget*), unsigned int depth) 172 240 { 173 241 function(this); 174 242 if (this->isOption < 0) 175 243 { 176 static_cast<Packer*>(this)->down->walkThrough (function);244 static_cast<Packer*>(this)->down->walkThrough(function, depth+1); 177 245 } 178 246 179 if (this->next != NULL) 180 this->next->walkThrough(function); 247 if (this->next && depth != 0) 248 this->next->walkThrough(function, depth); 249 } 250 251 /** 252 \brief Moves through all the Widgets downwards from this and executes the function on them. 253 \param function must be of type void and takes a Widget* as an Input. 254 \param data Additional Data you want to pass to the function. 255 \param depth the current depth. if > 0 then the next Widget will also be walked through. 256 */ 257 void Widget::walkThrough(void(*function)(Widget*, void*), void* data, unsigned int depth) 258 { 259 function(this, data); 260 if (this->isOption < 0) 261 { 262 static_cast<Packer*>(this)->down->walkThrough(function, data, depth+1); 263 } 264 if (this->next && depth != 0) 265 this->next->walkThrough(function, data, depth); 181 266 } 182 267 183 268 /** 184 \brief This is for listing the option of "widget"269 \brief This is for listing the options of "widget" 185 270 \param widget specifies the widget that should be listed 186 271 */ 187 void Widget::listOptions 272 void Widget::listOptionsAndGroups(Widget* widget) 188 273 { 189 274 if (widget->isOption < 0 && static_cast<Packer*>(widget)->groupName) 190 275 cout << "[" << static_cast<Packer*>(widget)->groupName << "]\n"; 191 276 if (widget->isOption >= 1 && widget->isOption <= 3) 192 cout << " " << static_cast<Option*>(widget)-> label<<" is : " << static_cast<Option*>(widget)->value <<endl;277 cout << " " << static_cast<Option*>(widget)->title <<" is : " << static_cast<Option*>(widget)->value <<endl; 193 278 else if (widget->isOption == 5) 194 cout << " " << static_cast<Option*>(widget)->label <<" is : " << static_cast<OptionLabel*>(widget)->cValue <<endl; 195 } 196 279 cout << " " << static_cast<Option*>(widget)->title <<" is : " << static_cast<OptionLabel*>(widget)->cValue <<endl; 280 } 281 282 /** 283 \brief This is for listing the options of "widget" 284 \param widget specifies the widget that should be listed 285 */ 286 void Widget::listOptions(Widget* widget) 287 { 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; 292 } 293 294 /** 295 \brief This is for listing the options of "widget" 296 \param widget specifies the widget that should be listed 297 \param data A Counter, that always knows how many Options have been found yet. 298 */ 299 void Widget::listOptions(Widget* widget, void* data) 300 { 301 302 if (widget->isOption >= 1 && widget->isOption <= 3) 303 { 304 int* count =(int*)data; 305 *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; 313 } 314 } 315 316 /** 317 \brief Finds an Option by a given number(the n'th option found away from this Widget) 318 \param number The Count of options to wait(by reference) 319 \param depth The depth of the sarch. if 0 it will not search next pointer 320 321 \todo should return Option* would be much sexier. 322 */ 323 Widget* Widget::findOptionByNumber(int* number, unsigned int depth) 324 { 325 if (isOption > 0) 326 { 327 --*number; 328 if (*number <= 0) 329 { 330 return this; 331 } 332 } 333 if (this->isOption < 0 && static_cast<Packer*>(this)->down) 334 { 335 Widget* tmp = static_cast<Packer*>(this)->down->findOptionByNumber(number, depth+1); 336 if (tmp) 337 return tmp; 338 } 339 if (depth>0 && this->next) 340 return this->next->findOptionByNumber(number, depth); 341 342 return NULL; 343 } 344 345 /** 346 \brief This is for listing the groups of "widget" 347 \param widget specifies the widget that should be listed 348 */ 349 void Widget::listGroups(Widget* widget) 350 { 351 if (widget->isOption < 0 && static_cast<Packer*>(widget)->groupName) 352 cout << "[" << static_cast<Packer*>(widget)->groupName << "]\n"; 353 } 354 355 /** 356 \brief This is for listing the Groups of "widget". It also displays the n'th number found. 357 \param widget specifies the widget that should be listed 358 \param data the Counter, that will show the number(this function will raise it by one if a Group is fount. 359 */ 360 void Widget::listGroups(Widget* widget, void* data) 361 { 362 if (widget->isOption < 0 && static_cast<Packer*>(widget)->groupName) 363 { 364 int* count =(int*)data; 365 *count = *count +1; 366 cout << *count <<": [" << static_cast<Packer*>(widget)->groupName << "]\n"; 367 } 368 } 369 370 /** 371 \brief Finds a Group by a given number(the n'th Group found away from this Widget) 372 \param number The Count of options to wait(by reference) 373 \param depth The depth of the sarch. if 0 it will not search next pointer 374 */ 375 Widget* Widget::findGroupByNumber(int* number, unsigned int depth) 376 { 377 if (isOption < 0 && static_cast<Packer*>(this)->groupName) 378 { 379 --*number; 380 if (*number <= 0) 381 { 382 return this; 383 } 384 } 385 if (this->isOption < 0 && static_cast<Packer*>(this)->down) 386 { 387 Widget* tmp = static_cast<Packer*>(this)->down->findGroupByNumber(number, depth+1); 388 if (tmp) 389 return tmp; 390 } 391 if (depth>0 && this->next) 392 return this->next->findGroupByNumber(number, depth); 393 394 return NULL; 395 } 396 197 397 /** 198 398 \brief This is for setting the option of "widget" 199 399 \param widget specifies the widget that should be set. 200 400 */ 201 void Widget::setOptions 401 void Widget::setOptions(Widget* widget) 202 402 { 203 403 if (widget->isOption >= 1) 204 static_cast<Option*>(widget)->redraw();// <<" is : " << static_cast<Option*>(this)->value <<endl; 205 } 206 207 #ifdef HAVE_GTK2 404 static_cast<Option*>(widget)->redraw(); 405 } 406 407 /** 408 \brief Walks through all the Flags given at startuptime. 409 */ 410 void Widget::flagCheck(Widget* widget, void* flagName) 411 { 412 if (widget->isOption>=1) 413 { 414 Option* option =(Option*)widget; 415 char* name =(char*)flagName; 416 char* value = NULL; 417 bool found = false; 418 // check if long flag matches 419 if ((option->flagName && strlen(name)>2 && !strncmp(name+2, option->flagName, strlen(option->flagName)) &&(name[strlen(option->flagName)+2] == '\0' || name[strlen(option->flagName)+2] == '=') )) 420 { 421 found = true; 422 if (name[strlen(option->flagName)+2] == '=') 423 { 424 value = name+strlen(option->flagName)+3; 425 } 426 } 427 else if (option->flagNameShort && strlen(name)>1 && !strncmp(name+1, option->flagNameShort, strlen(option->flagNameShort))&&(name[strlen(option->flagNameShort)+1] == '\0' || name[strlen(option->flagNameShort)+1] == '=')) // check if short flag matches 428 { 429 found = true; 430 if (name[strlen(option->flagNameShort)+1] == '=') 431 { 432 value = name+strlen(option->flagNameShort)+2; 433 } 434 } 435 436 if (found) 437 { 438 PRINT(3)("found matching Flag %s\n", name); 439 if (value) 440 { 441 PRINT(3)("with Value %s\n", value); 442 option->value = atoi(value); 443 } 444 else 445 { 446 option->value = !option->defaultValue; 447 } 448 option->redraw(); 449 } 450 451 } 452 } 453 454 #ifdef HAVE_GTK2 455 /** 456 \brief Connect any signal to any given Sub-widget 457 */ 458 gulong Widget::connectSignal(char* event, gint(*signal)(GtkWidget*, GdkEvent*, void *)) 459 { 460 return g_signal_connect(G_OBJECT(this->widget), event, G_CALLBACK(signal), NULL); 461 } 462 463 /** 464 \brief Connect a signal with additionally passing the whole Object 465 */ 466 gulong Widget::connectSignal(char* event, gint(*signal)( GtkWidget*, Widget *)) 467 { 468 return g_signal_connect(G_OBJECT(this->widget), event, G_CALLBACK(signal), this); 469 } 470 471 /** 472 \brief Connect a signal with additionally passing a whole external Object 473 */ 474 gulong Widget::connectSignal(char* event, void* extObj, gint(*signal)(GtkWidget*, GdkEvent*, void *)) 475 { 476 return g_signal_connect(G_OBJECT(this->widget), event, G_CALLBACK(signal), extObj); 477 } 478 479 /** 480 \brief Connect a signal with additionally passing a whole external Object 481 */ 482 gulong Widget::connectSignal(char* event, void* extObj, gint(*signal)(GtkWidget*, void *)) 483 { 484 return g_signal_connect(G_OBJECT(this->widget), event, G_CALLBACK(signal), extObj); 485 } 486 487 /** 488 \brief Connect a signal with additionally passing a whole external Object 489 */ 490 gulong Widget::connectSignal(char* event, void* extObj, gint(*signal)(GtkWidget*, GdkEventKey*, void *)) 491 { 492 return g_signal_connect(G_OBJECT(this->widget), event, G_CALLBACK(signal), extObj); 493 } 494 495 void Widget::disconnectSignal(gulong signalID) 496 { 497 g_signal_handler_disconnect(G_OBJECT(this->widget), signalID); 498 } 208 499 209 500 /** … … 213 504 \param nothing nothin. 214 505 */ 215 gint Widget::doNothingSignal 506 gint Widget::doNothingSignal(GtkWidget *widget, GdkEvent* event, void* nothing) 216 507 { 217 508 } … … 228 519 Sets the down-pinter to NULL and other PackerSpecific-values to their defaults. 229 520 */ 230 void Packer::init 231 { 232 down = NULL;233 groupName = NULL;521 void Packer::init(void) 522 { 523 this->down = NULL; 524 this->groupName = NULL; 234 525 235 526 … … 239 530 240 531 /** 532 \brief Destroys a Packer. 533 */ 534 void Packer::destroy(void) 535 { 536 PRINTF(4)("deleting the Packer part.\n"); 537 538 if (this->groupName) 539 delete []this->groupName; 540 541 //deleting recursively. 542 if (this->down) 543 delete this->down; 544 this->down = NULL; 545 546 static_cast<Widget*>(this)->destroy(); 547 } 548 549 /** 241 550 \brief Sets the group name under which all the lower widgets of this will be saved. 242 551 \param name The name of the group. 243 552 */ 244 void Packer::setGroupName 245 { 246 if ( groupName)247 delete groupName;248 groupName = new char[strlen(name)+1];249 strcpy( groupName, name);553 void Packer::setGroupName(char* name) 554 { 555 if (this->groupName) 556 delete []this->groupName; 557 this->groupName = new char[strlen(name)+1]; 558 strcpy(this->groupName, name); 250 559 } 251 560 … … 254 563 \returns name The name of the group. 255 564 */ 256 char* Packer::getGroupName 257 { 258 return groupName;565 char* Packer::getGroupName(void) 566 { 567 return this->groupName; 259 568 } 260 569 … … 266 575 sets the Container-Specific defaults. 267 576 */ 268 void Container::init 269 { 270 isOption = -1;577 void Container::init(void) 578 { 579 this->isOption = -1; 271 580 272 581 static_cast<Packer*>(this)->init(); 273 582 274 583 return; 584 } 585 586 /** 587 \brief Destroys a Container. 588 */ 589 void Container::destroy(void) 590 { 591 PRINTF(4)("deleting the Container part.\n"); 592 593 static_cast<Packer*>(this)->destroy(); 275 594 } 276 595 … … 281 600 It does this by filling up the down pointer only if down points to NULL. 282 601 */ 283 void Container::fill 602 void Container::fill(Widget *lowerWidget) 284 603 { 285 604 if (this->down == NULL) 286 605 { 287 606 #ifdef HAVE_GTK2 288 gtk_container_add (GTK_CONTAINER(this->widget), lowerWidget->widget);607 gtk_container_add(GTK_CONTAINER(this->widget), lowerWidget->widget); 289 608 #endif /* HAVE_GTK2 */ 290 609 this->down = lowerWidget; 291 610 } 292 611 else 293 cout << "!!error!! You try to put more than one Widget into a Container. \nNot including this item.\nThis is only possible with Boxes.\n"<<endl;294 } 295 296 // gtk_container_set_border_width (GTK_CONTAINER(widget), 5);612 PRINTF(1)("!!error!! You try to put more than one Widget into a Container. \nNot including this item.\nThis is only possible with Boxes.\n"); 613 } 614 615 // gtk_container_set_border_width(GTK_CONTAINER(widget), 5); 297 616 298 617 /* WINDOW */ … … 303 622 \brief Adds a new Window Windows to the List of Windows. 304 623 \param windowToAdd The Windows that should be added to the List 305 \todo this instead of windowToAdd 624 \todo this instead of windowToAdd(possibly) 306 625 */ 307 626 void Window::addWindow(Window* windowToAdd) … … 314 633 315 634 Widget* tmpWindow = mainWindow; 316 while 635 while(tmpWindow->next) 317 636 tmpWindow = tmpWindow->next; 318 637 tmpWindow->next = windowToAdd; … … 322 641 323 642 324 325 643 /** 326 644 \brief Creating a new Window without a Name 327 645 */ 328 Window::Window 646 Window::Window(void) 329 647 { 330 648 this->init(); … … 335 653 \param windowName the name the window should get. 336 654 */ 337 Window::Window (char* windowName) 655 656 Window::Window(char* windowName) 338 657 { 339 658 this->init(); 340 this->setTitle (windowName); 659 this->setTitle(windowName); 660 } 661 662 /** 663 \brief Destructs a Window. 664 */ 665 Window::~Window(void) 666 { 667 this->destroy(); 341 668 } 342 669 … … 344 671 \brief initializes a new Window 345 672 */ 346 void Window::init( )673 void Window::init(void) 347 674 { 348 675 if (!mainWindow) … … 354 681 355 682 #ifdef HAVE_GTK2 356 widget = gtk_window_new 357 gtk_window_set_policy 683 widget = gtk_window_new(GTK_WINDOW_TOPLEVEL); 684 gtk_window_set_policy(GTK_WINDOW(widget), TRUE, TRUE, TRUE); 358 685 #if !defined(__WIN32__) 359 // gtk_window_set_decorated (GTK_WINDOW(widget), FALSE);686 // gtk_window_set_decorated(GTK_WINDOW(widget), FALSE); 360 687 #endif 361 gtk_container_set_border_width (GTK_CONTAINER (widget), 3); 362 #endif /* HAVE_GTK2 */ 688 gtk_container_set_border_width(GTK_CONTAINER(widget), 3); 689 #endif /* HAVE_GTK2 */ 690 } 691 692 /** 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 else 700 PRINTF(3)("deleting the Window.\n"); 701 // this->hide(); 702 static_cast<Container*>(this)->destroy(); 703 363 704 } 364 705 … … 366 707 \brief Shows all Widgets that are included within this->widget. 367 708 */ 368 void Window::showall ()369 { 370 if (! isOpen)371 { 372 // printf 373 #ifdef HAVE_GTK2 374 gtk_widget_show_all (widget);709 void Window::showall(void) 710 { 711 if (!this->isOpen) 712 { 713 // printf("showall\n"); 714 #ifdef HAVE_GTK2 715 gtk_widget_show_all(this->widget); 375 716 #endif /* HAVE_GTK2 */ 376 isOpen = true;717 this->isOpen = true; 377 718 } 378 719 else 379 720 { 380 // printf 381 #ifdef HAVE_GTK2 382 gtk_widget_show (widget);721 // printf("showone\n"); 722 #ifdef HAVE_GTK2 723 gtk_widget_show(this->widget); 383 724 #endif /* HAVE_GTK2 */ 384 725 } … … 389 730 \param title title the Window should get. 390 731 */ 391 void Window::setTitle 392 { 393 if ( label)394 delete [] label;395 label= new char[strlen(title)+1];396 strcpy( label, title);397 #ifdef HAVE_GTK2 398 gtk_window_set_title (GTK_WINDOW(widget), title);732 void Window::setTitle(char* title) 733 { 734 if (this->title) 735 delete []this->title; 736 this->title = new char[strlen(title)+1]; 737 strcpy(this->title, title); 738 #ifdef HAVE_GTK2 739 gtk_window_set_title(GTK_WINDOW(widget), title); 399 740 #endif /* HAVE_GTK2 */ 400 741 } … … 403 744 \brief opens up a Window and fixes the Focus to it 404 745 */ 405 void Window::open( )746 void Window::open(void) 406 747 { 407 748 if (this != mainWindow) … … 409 750 isOpen = true; 410 751 #ifdef HAVE_GTK2 411 gtk_widget_show_all( widget);412 gtk_grab_add( widget);752 gtk_widget_show_all(this->widget); 753 gtk_grab_add(this->widget); 413 754 #endif /* HAVE_GTK2 */ 414 755 } … … 418 759 \brief closes up a Window and removes the Focus from it 419 760 */ 420 void Window::close( )761 void Window::close(void) 421 762 { 422 763 if (this != mainWindow) 423 764 { 424 isOpen = false;425 #ifdef HAVE_GTK2 426 gtk_grab_remove( widget);427 gtk_widget_hide (widget);428 #endif /* HAVE_GTK2 */ 429 } 430 } 431 432 #ifdef HAVE_GTK2 433 /** 434 \brief opens up a window 765 this->isOpen = false; 766 #ifdef HAVE_GTK2 767 gtk_grab_remove(this->widget); 768 gtk_widget_hide(this->widget); 769 #endif /* HAVE_GTK2 */ 770 } 771 } 772 773 #ifdef HAVE_GTK2 774 /** 775 \brief opens up a window(not topmost Window). 435 776 this is the Signal that does it. !!SIGNALS ARE STATIC!! 436 777 \param widget the widget that did it. … … 438 779 \param window the Window that should be opened 439 780 */ 440 gint Window::windowOpen 781 gint Window::windowOpen(GtkWidget *widget, GdkEvent* event, void* window) 441 782 { 442 783 static_cast<Window*>(window)->open(); … … 444 785 445 786 /** 446 \brief closes a window 787 \brief closes a window(not topmost Window). 447 788 this is the Signal that does it. !!SIGNALS ARE STATIC!! 448 789 \param widget the widget that did it! … … 450 791 \param window the Window that should be closed 451 792 */ 452 gint Window::windowClose 793 gint Window::windowClose(GtkWidget *widget, GdkEvent* event, void* window) 453 794 { 454 795 static_cast<Window*>(window)->close(); 455 796 } 456 797 457 /**458 * Quits the orxonox_GUI.459 * This can be called as a Signal and is therefor static460 \param widget The widget that called this function461 \param event the event that happened to execute this function462 \param data some data passed with the Signal463 */464 gint Window::orxonox_gui_quit (GtkWidget *widget, GdkEvent *event, gpointer data)465 {466 if (exec->shouldsave())467 exec->writeToFile (Window::mainWindow);468 469 gtk_main_quit();470 return FALSE;471 }472 798 #endif /* HAVE_GTK2 */ 473 799 … … 478 804 \brief Creates a new Frame without a name 479 805 */ 480 Frame::Frame 806 Frame::Frame(void) 481 807 { 482 808 this->init(); … … 486 812 \brief Creates a new Frame with name title 487 813 */ 488 Frame::Frame 814 Frame::Frame(char* title) 489 815 { 490 816 this->init(); … … 492 818 } 493 819 820 /** 821 \brief destrcucts a Frame 822 */ 823 Frame::~Frame(void) 824 { 825 this->destroy(); 826 } 827 494 828 /** 495 829 \brief Initializes a new Frame with default settings 496 830 */ 497 void Frame::init( )831 void Frame::init(void) 498 832 { 499 833 static_cast<Container*>(this)->init(); 500 834 501 835 #ifdef HAVE_GTK2 502 widget = gtk_frame_new (""); 503 gtk_container_set_border_width (GTK_CONTAINER (widget), 3); 504 #endif /* HAVE_GTK2 */ 836 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 if (this->title) 847 PRINTF(3)("deleting the Frame: %s\n", this->title); 848 else 849 PRINTF(3)("deleting the Frame.\n"); 850 851 static_cast<Container*>(this)->destroy(); 505 852 } 506 853 … … 509 856 \param title The title the Frame should get. 510 857 */ 511 void Frame::setTitle 512 { 513 if ( label)514 delete [] label;515 label= new char[strlen(title)+1];516 strcpy( label, title);517 #ifdef HAVE_GTK2 518 gtk_frame_set_label (GTK_FRAME(widget), title);858 void Frame::setTitle(char* title) 859 { 860 if (this->title) 861 delete []this->title; 862 this->title = new char[strlen(title)+1]; 863 strcpy(this->title, title); 864 #ifdef HAVE_GTK2 865 gtk_frame_set_label(GTK_FRAME(widget), title); 519 866 #endif /* HAVE_GTK2 */ 520 867 } … … 525 872 \brief Creates a new EventBox with default settings. 526 873 */ 527 EventBox::EventBox ()874 EventBox::EventBox(void) 528 875 { 529 876 this->init(); 530 877 } 878 531 879 /** 532 880 \brief Creates a new EventBox with name title 533 \param title title the Eventbox should get 534 */ 535 EventBox::EventBox 881 \param title title the Eventbox should get(only data-structure-internal) 882 */ 883 EventBox::EventBox(char* title) 536 884 { 537 885 this->init(); … … 540 888 541 889 /** 890 \brief destructs an EventBox. 891 */ 892 EventBox::~EventBox(void) 893 { 894 this->destroy(); 895 896 } 897 898 /** 542 899 \brief Initializes a new EventBox 543 900 */ 544 901 void EventBox::init(void) 545 902 { 546 isOption = -1;903 this->isOption = -1; 547 904 548 905 static_cast<Container*>(this)->init(); 549 906 550 907 #ifdef HAVE_GTK2 551 widget = gtk_event_box_new (); 552 gtk_container_set_border_width (GTK_CONTAINER (widget), 3); 553 #endif /* HAVE_GTK2 */ 554 } 555 556 /** 557 \brief Sets the Title of the EventBox (not implemented) 558 \param title Name the EventBox should get (only datastructure-internal). 559 */ 560 void EventBox::setTitle (char* title) 561 { 562 if (label) 563 delete []label; 564 label = new char[strlen(title)+1]; 565 strcpy(label, title); 908 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 if (this->title) 919 PRINTF(3)("deleting the EventBox: %s\n", this->title); 920 else 921 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); 566 936 } 567 937 … … 571 941 \brief Creates a new horizontal Box 572 942 */ 573 Box::Box 943 Box::Box(void) 574 944 { 575 945 this->init('h'); … … 580 950 \param boxtype if 'v' the Box will be vertically, if 'h' the Box will be horizontally 581 951 */ 582 Box::Box 952 Box::Box(char boxtype) 583 953 { 584 954 this->init(boxtype); 955 } 956 957 /** 958 \brief destructs a Box. 959 */ 960 Box::~Box(void) 961 { 962 this->destroy(); 585 963 } 586 964 … … 591 969 void Box::init(char boxtype) 592 970 { 593 isOption = -2;971 this->isOption = -2; 594 972 595 973 static_cast<Packer*>(this)->init(); … … 597 975 if (boxtype == 'v') 598 976 { 599 widget = gtk_vbox_new(FALSE, 0);977 this->widget = gtk_vbox_new(FALSE, 0); 600 978 } 601 979 else 602 980 { 603 widget = gtk_hbox_new (FALSE, 0); 604 } 605 #endif /* HAVE_GTK2 */ 606 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 if (this->title) 992 PRINTF(3)("deleting the Box: %s\n", this->title); 993 else 994 PRINTF(3)("deleting the Box.\n"); 995 996 static_cast<Packer*>(this)->destroy(); 607 997 } 608 998 … … 613 1003 It does this by apending the first one to its down-pointer and all its following ones to the preceding next-pointer. The last one will receive a NULL pointer as Next 614 1004 */ 615 void Box::fill (Widget *lowerWidget)616 { 617 #ifdef HAVE_GTK2 618 gtk_box_pack_start (GTK_BOX(this->widget), lowerWidget->widget, TRUE, TRUE, 0);1005 void Box::fill(Widget* lowerWidget) 1006 { 1007 #ifdef HAVE_GTK2 1008 gtk_box_pack_start(GTK_BOX(this->widget), lowerWidget->widget, TRUE, TRUE, 0); 619 1009 #endif /* HAVE_GTK2 */ 620 1010 if (this->down == NULL) … … 624 1014 Widget* tmp; 625 1015 tmp = this->down; 626 while 1016 while(tmp->next != NULL) 627 1017 { 628 1018 tmp = tmp->next; … … 632 1022 } 633 1023 634 /* IMAGE */ 635 636 /** 637 \brief Creates a new Image 638 \param imagename the location of the Image on the Hard Disc 639 */ 640 Image::Image (char* imagename) 641 { 642 this->init(); 643 if (label) 644 delete []label; 645 label = new char[strlen(imagename)+1]; 646 strcpy(label, imagename); 647 648 #ifdef HAVE_GTK2 649 widget = gtk_image_new_from_file (imagename); 650 #endif /* HAVE_GTK2 */ 651 } 652 653 /** 654 \brief Initializes a new Image 655 */ 656 void Image::init() 657 { 658 isOption = 0; 659 660 static_cast<Widget*>(this)->init(); 661 } 662 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 } 663 1035 664 1036 /* OPTION */ … … 668 1040 sets all Option-Specific-Values to their defaults. 669 1041 */ 670 void Option::init( )671 { 672 value = 0;673 flagName = NULL;674 flagNameShort = NULL;675 saveable = false;676 defaultValue = 0;1042 void Option::init(void) 1043 { 1044 this->value = 0; 1045 this->flagName = NULL; 1046 this->flagNameShort = NULL; 1047 this->saveable = false; 1048 this->defaultValue = 0; 677 1049 678 1050 static_cast<Widget*>(this)->init(); 679 1051 680 1052 return; 1053 } 1054 1055 /** 1056 \brief Destroys an Option. 1057 */ 1058 void Option::destroy(void) 1059 { 1060 PRINTF(4)("deleting the Option Part.\n"); 1061 if (this->flagName) 1062 delete []this->flagName; 1063 if (this->flagNameShort) 1064 delete []this->flagNameShort; 1065 1066 static_cast<Widget*>(this)->destroy(); 681 1067 } 682 1068 … … 685 1071 !! Options will be saved if flagname is different from NULL !! 686 1072 \param flagname the Name that will be displayed in the output 687 \param defaultvalue the default Value for this Option 688 */ 689 void Option::setFlagName 690 { 691 if ( flagName)692 delete flagName;693 flagName = new char [strlen(flagname)+1];694 strcpy( flagName, flagname);695 defaultValue = defaultvalue;696 697 // cout << "Set Flagname of " << label<< " to " << flagname << endl;1073 \param defaultvalue the default Value for this Option(see definition of defaultvalue 1074 */ 1075 void Option::setFlagName(char* flagname, int defaultvalue) 1076 { 1077 if (this->flagName) 1078 delete this->flagName; 1079 this->flagName = new char [strlen(flagname)+1]; 1080 strcpy(this->flagName, flagname); 1081 this->defaultValue = defaultvalue; 1082 1083 // cout << "Set Flagname of " << this->title << " to " << flagname << endl; 698 1084 } 699 1085 700 1086 /** 701 \brief see Option::setFlagName 1087 \brief see Option::setFlagName(char* flagname, int defaultvalue) 702 1088 \param flagname the Name that will be displayed in the output 703 \param defaultvalue the default Value for this Option 1089 \param defaultvalue the default Value for this Option(see definition of defaultvalue 704 1090 \param flagnameshort a short flagname to be displayed in the output 705 1091 */ 706 void Option::setFlagName (char* flagname, char* flagnameshort, int defaultvalue) 707 { 708 if (flagName) 709 delete flagName; 710 flagName = new char [strlen(flagname)+1]; 711 strcpy(flagName, flagname); 712 713 if (flagNameShort) 714 delete flagNameShort; 715 flagNameShort = new char [strlen(flagnameshort)+1]; 716 strcpy(flagNameShort, flagnameshort); 717 defaultValue = defaultvalue; 718 // cout << "Set Flagname of " << label << " to " << flagname << endl; 719 } 1092 void Option::setFlagName(char* flagname, char* flagnameshort, int defaultvalue) 1093 { 1094 if (this->flagName) 1095 delete []this->flagName; 1096 this->flagName = new char [strlen(flagname)+1]; 1097 strcpy(this->flagName, flagname); 1098 1099 if (this->flagNameShort) 1100 delete []this->flagNameShort; 1101 this->flagNameShort = new char [strlen(flagnameshort)+1]; 1102 strcpy(this->flagNameShort, flagnameshort); 1103 this->defaultValue = defaultvalue; 1104 // cout << "Set Flagname of " << this->title << " to " << flagname << endl; 1105 } 1106 1107 /** 1108 \brief Sets the saveable-state of the option to true. 1109 */ 1110 void Option::saveability(void) 1111 { 1112 this->saveable = true; 1113 } 1114 1115 /** 1116 \brief Sets the saveable-state of the option. 1117 \param isSaveable the saveable-state to set. 1118 */ 1119 void Option::saveability(bool isSaveable) 1120 { 1121 this->saveable = isSaveable; 1122 } 1123 1124 /** 1125 \returns The saveable-state. 1126 */ 1127 bool Option::isSaveable(void) 1128 { 1129 return this->saveable; 1130 } 1131 1132 #ifdef HAVE_GTK2 1133 /** 1134 \brief Signal OptionChange writes the Value from the Slider to its Object-Database. 1135 \param widget The widget(Slider) that has a changed Value 1136 \param slider the Slider-Object that should receive the change. 1137 */ 1138 gint Option::OptionChange(GtkWidget *widget, Widget* option) 1139 { 1140 static_cast<Option*>(option)->changeOption(); 1141 flags->setTextFromFlags(Window::mainWindow); //// must be different !!! 1142 } 1143 #endif /* HAVE_GTK2 */ 720 1144 721 1145 … … 733 1157 734 1158 /** 1159 \brief destructs a Button. 1160 */ 1161 Button::~Button(void) 1162 { 1163 this->destroy(); 1164 } 1165 1166 /** 735 1167 \brief Initializes a new Button 736 1168 */ … … 742 1174 743 1175 #ifdef HAVE_GTK2 744 widget = gtk_button_new_with_label (""); 745 #endif /* HAVE_GTK2 */ 1176 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 if (this->title) 1186 PRINTF(3)("deleting the Label: %s\n", this->title); 1187 else 1188 PRINTF(3)("deleting the Label.\n"); 1189 1190 static_cast<Option*>(this)->destroy(); 746 1191 } 747 1192 … … 750 1195 \param title The name the Button should get 751 1196 */ 752 void Button::setTitle 753 { 754 if ( label)755 delete [] label;756 label= new char[strlen(title)+1];757 strcpy( label, title);758 #ifdef HAVE_GTK2 759 gtk_button_set_label 1197 void Button::setTitle(char *title) 1198 { 1199 if (this->title) 1200 delete []this->title; 1201 this->title = new char[strlen(title)+1]; 1202 strcpy(this->title, title); 1203 #ifdef HAVE_GTK2 1204 gtk_button_set_label(GTK_BUTTON(widget), title); 760 1205 #endif /* HAVE_GTK2 */ 761 1206 } … … 765 1210 not implemented yet 766 1211 */ 767 void Button::redraw () 768 { 1212 void Button::redraw(void) 1213 { 1214 } 1215 1216 /** 1217 \brief Button can not be changed, optionChange is empty) 1218 1219 \todo Actions for non-GTK-mode 1220 */ 1221 void Button::changeOption(void) 1222 { 1223 // This will possibly be used for ACTIONS ! 769 1224 } 770 1225 … … 775 1230 \param buttonname The name the CheckButton should display. 776 1231 */ 777 CheckButton::CheckButton 1232 CheckButton::CheckButton(char* buttonname) 778 1233 { 779 1234 this->init(); … … 781 1236 782 1237 #ifdef HAVE_GTK2 783 this->connectSignal ("clicked", this->OptionChange); 784 #endif /* HAVE_GTK2 */ 1238 this->connectSignal("clicked", this->OptionChange); 1239 #endif /* HAVE_GTK2 */ 1240 } 1241 1242 /** 1243 \brief destructs a CheckButton. 1244 */ 1245 CheckButton::~CheckButton(void) 1246 { 1247 this->destroy(); 785 1248 } 786 1249 … … 790 1253 void CheckButton::init(void) 791 1254 { 792 isOption = 1;1255 this->isOption = 1; 793 1256 794 1257 static_cast<Option*>(this)->init(); 795 1258 796 1259 #ifdef HAVE_GTK2 797 widget = gtk_check_button_new_with_label (""); 798 #endif /* HAVE_GTK2 */ 1260 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 if (this->title) 1270 PRINTF(3)("deleting the CheckButton: %s\n", this->title); 1271 else 1272 PRINTF(3)("deleting the CheckButton.\n"); 1273 1274 static_cast<Option*>(this)->destroy(); 799 1275 } 800 1276 … … 805 1281 void CheckButton::setTitle(char* title) 806 1282 { 807 if ( label)808 delete [] label;809 label= new char[strlen(title)+1];810 strcpy( label, title);1283 if (this->title) 1284 delete []this->title; 1285 this->title = new char[strlen(title)+1]; 1286 strcpy(this->title, title); 811 1287 #ifdef HAVE_GTK2 812 1288 gtk_button_set_label(GTK_BUTTON(widget), title); … … 814 1290 } 815 1291 816 bool CheckButton::isActive( )1292 bool CheckButton::isActive(void) 817 1293 { 818 1294 #ifdef HAVE_GTK2 … … 821 1297 } 822 1298 823 #ifdef HAVE_GTK2 824 /** 825 \brief Signal OptionChange writes the Value from the CheckButton to its Object-Database. 826 \param widget The widget(CheckButton) that has a changed Value 827 \param checkbutton the CheckButton-Object that should receive the change. 828 */ 829 gint CheckButton::OptionChange (GtkWidget *widget, Widget* checkbutton) 830 { 831 static_cast<CheckButton*>(checkbutton)->value = (int)gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON ((CheckButton*)checkbutton->widget)); 832 flags->setTextFromFlags(orxonoxGUI); ////// must be different!!! 833 cout << static_cast<CheckButton*>(checkbutton)->label << " set to: " << static_cast<CheckButton*>(checkbutton)->value << endl; 834 } 835 #endif /* HAVE_GTK2 */ 836 837 /** 838 \brief Redraws the CheckButton (if option has changed). 1299 /** 1300 \brief Changed the Option, call this Function 1301 */ 1302 void CheckButton::changeOption(void) 1303 { 1304 #ifdef HAVE_GTK2 1305 this->value =(int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(this->widget)); 1306 #else /* HAVE_GTK2 */ 1307 char tmpChar[20]; 1308 cout << "\nPlease give me a new value for " << this->title << " [0,1](defualt:" << this->defaultValue << "): "; 1309 cin >> tmpChar; 1310 1311 if ((this->value = atoi(tmpChar))=!0) 1312 this->value = 1; 1313 #endif /* HAVE_GTK2 */ 1314 cout << this->title << " set to: " << this->value << endl; 1315 } 1316 1317 1318 /** 1319 \brief Redraws the CheckButton(if option has changed). 839 1320 Example: if new settings are loaded the Button must be redrawn for the GUI to display that Change 840 1321 */ 841 void CheckButton::redraw ()842 { 843 #ifdef HAVE_GTK2 844 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value);1322 void CheckButton::redraw(void) 1323 { 1324 #ifdef HAVE_GTK2 1325 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(this->widget), value); 845 1326 #endif /* HAVE_GTK2 */ 846 1327 } … … 854 1335 \param end The maximal Value of the slider. 855 1336 */ 856 Slider::Slider 1337 Slider::Slider(char* slidername, int start, int end) 857 1338 { 858 1339 this->init(start, end); … … 860 1341 this->setTitle(slidername); 861 1342 #ifdef HAVE_GTK2 862 this->connectSignal ("value_changed", this->OptionChange); 863 #endif /* HAVE_GTK2 */ 1343 this->connectSignal("value_changed", this->OptionChange); 1344 #endif /* HAVE_GTK2 */ 1345 } 1346 1347 /** 1348 \brief destructs a Slider. 1349 */ 1350 Slider::~Slider(void) 1351 { 1352 this->destroy(); 864 1353 } 865 1354 866 1355 /** 867 1356 \brief Initializes a Slider with start and end Values 868 params: see Slider::Slider 1357 params: see Slider::Slider(char* slidername, int start, int end) 869 1358 */ 870 1359 void Slider::init(int start, int end) 871 1360 { 872 isOption = 2;1361 this->isOption = 2; 873 1362 874 1363 static_cast<Option*>(this)->init(); 875 1364 876 #ifdef HAVE_GTK2 877 widget = gtk_hscale_new_with_range (start, end, 5); 878 #endif /* HAVE_GTK2 */ 1365 this->start = start; 1366 this->end = end; 1367 #ifdef HAVE_GTK2 1368 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 if (this->title) 1378 PRINTF(3)("deleting the Slider: %s\n", this->title); 1379 else 1380 PRINTF(3)("deleting the Slider.\n"); 1381 1382 static_cast<Option*>(this)->destroy(); 1383 879 1384 } 880 1385 … … 885 1390 void Slider::setTitle(char* title) 886 1391 { 887 if ( label)888 delete [] label;889 label= new char[strlen(title)+1];890 strcpy( label, title);1392 if (this->title) 1393 delete []this->title; 1394 this->title = new char[strlen(title)+1]; 1395 strcpy(this->title, title); 891 1396 } 892 1397 … … 900 1405 } 901 1406 902 #ifdef HAVE_GTK2903 /**904 \brief Signal OptionChange writes the Value from the Slider to its Object-Database.905 \param widget The widget(Slider) that has a changed Value906 \param slider the Slider-Object that should receive the change.907 */908 gint Slider::OptionChange (GtkWidget *widget, Widget* slider)909 {910 static_cast<Slider*>(slider)->value = (int)gtk_range_get_value (GTK_RANGE ((Slider*)slider->widget));911 flags->setTextFromFlags(orxonoxGUI); //// must be different !!!912 cout << static_cast<Slider*>(slider)->label << " set to: "<< static_cast<Slider*>(slider)->value << endl;913 }914 #endif /* HAVE_GTK2 */915 916 1407 /** 917 1408 \brief Redraws the widget 918 Example: see void CheckButton::redraw () 919 */ 920 void Slider::redraw () 921 { 922 #ifdef HAVE_GTK2 923 gtk_range_set_value (GTK_RANGE (widget), value); 924 #endif /* HAVE_GTK2 */ 1409 Example: see void CheckButton::redraw(void) 1410 */ 1411 void Slider::redraw(void) 1412 { 1413 #ifdef HAVE_GTK2 1414 gtk_range_set_value(GTK_RANGE(this->widget), value); 1415 #endif /* HAVE_GTK2 */ 1416 } 1417 1418 /** 1419 \brief Changed the Option, call this Function 1420 */ 1421 void Slider::changeOption(void) 1422 { 1423 #ifdef HAVE_GTK2 1424 this->value =(int)gtk_range_get_value(GTK_RANGE(this->widget)); 1425 #else /* HAVE_GTK2 */ 1426 char tmpChar[20]; 1427 cout << "\nPlease give me a new value for " << this->title << " [" <<this->start << "-" << this->end << "](defualt:" << this->defaultValue << "): "; 1428 cin >> tmpChar; 1429 1430 if ((this->value = atoi(tmpChar))> this->end) 1431 this->value = this->end; 1432 if (this->value <= this->start) 1433 this->value = this->start; 1434 #endif /* HAVE_GTK2 */ 1435 cout << this->title << " set to: " << this->value << endl; 925 1436 } 926 1437 … … 933 1444 \param ... items to be added to this Menu. !! Consider, that the last input argument has to be "lastItem" for this to work!! 934 1445 */ 935 Menu::Menu 1446 Menu::Menu(char* menuname, ...) 936 1447 { 937 1448 this->init(); … … 941 1452 942 1453 #ifdef HAVE_GTK2 /////////////////////// REINPLEMENT 943 va_start 944 while (strcmp (itemName = va_arg(itemlist, char*), "lastItem"))1454 va_start(itemlist, menuname); 1455 while(strcmp(itemName = va_arg(itemlist, char*), "lastItem")) 945 1456 { 946 1457 this->addItem(itemName); … … 950 1461 951 1462 #ifdef HAVE_GTK2 952 gtk_option_menu_set_menu (GTK_OPTION_MENU (widget), menu); 953 this->connectSignal ("changed", this->OptionChange); 954 #endif /* HAVE_GTK2 */ 1463 gtk_option_menu_set_menu(GTK_OPTION_MENU(this->widget), menu); 1464 this->connectSignal("changed", this->OptionChange); 1465 #endif /* HAVE_GTK2 */ 1466 } 1467 1468 /** 1469 \brief destructs a Menu. 1470 */ 1471 Menu::~Menu(void) 1472 { 1473 this->destroy(); 955 1474 } 956 1475 … … 960 1479 void Menu::init(void) 961 1480 { 962 isOption = 2;1481 this->isOption = 2; 963 1482 964 1483 static_cast<Option*>(this)->init(); 965 1484 966 1485 #ifdef HAVE_GTK2 967 widget = gtk_option_menu_new (); 968 menu = gtk_menu_new (); 969 #endif /* HAVE_GTK2 */ 970 971 } 1486 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 if (this->title) 1498 PRINTF(3)("deleting the Menu: %s\n", this->title); 1499 else 1500 PRINTF(3)("deleting the Menu.\n"); 1501 //! \todo destroy menu 1502 1503 static_cast<Option*>(this)->destroy(); 1504 } 1505 972 1506 973 1507 /** … … 977 1511 void Menu::setTitle(char* title) 978 1512 { 979 if ( label)980 delete [] label;981 label= new char[strlen(title)+1];982 strcpy( label, title);1513 if (this->title) 1514 delete []this->title; 1515 this->title = new char[strlen(title)+1]; 1516 strcpy(this->title, title); 983 1517 } 984 1518 … … 986 1520 \brief appends a new Item to the Menu-List. 987 1521 \param itemName the itemName to be appendet. 988 */ 989 void Menu::addItem (char* itemName) 990 { 991 #ifdef HAVE_GTK2 992 item = gtk_menu_item_new_with_label (itemName); 993 gtk_menu_shell_append(GTK_MENU_SHELL (menu), item); 994 #endif /* HAVE_GTK2 */ 995 } 996 997 #ifdef HAVE_GTK2 998 /** 999 \brief Signal OptionChange writes the Value from the Menu to its Object-Database. 1000 \param widget The widget(Menu) that has a changed Value 1001 \param menu the Menu-Object that should receive the change. 1002 */ 1003 gint Menu::OptionChange (GtkWidget *widget, Widget* menu) 1004 { 1005 static_cast<Menu*>(menu)->value = (int)gtk_option_menu_get_history (GTK_OPTION_MENU (menu->widget)); 1006 flags->setTextFromFlags(orxonoxGUI); //// must be different !!! 1007 cout << static_cast<Menu*>(menu)->label << " changed to : " << static_cast<Menu*>(menu)->value << endl; 1008 } 1009 #endif /* HAVE_GTK2 */ 1522 1523 \todo make the item-list readable without GTK 1524 */ 1525 void Menu::addItem(char* itemName) 1526 { 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 */ 1531 } 1010 1532 1011 1533 /** 1012 1534 \brief Redraws the widget 1013 Example: see void CheckButton::redraw () 1014 */ 1015 void Menu::redraw () 1016 { 1017 #ifdef HAVE_GTK2 1018 gtk_option_menu_set_history (GTK_OPTION_MENU (widget), value); 1019 #endif /* HAVE_GTK2 */ 1020 } 1535 Example: see void CheckButton::redraw(void) 1536 */ 1537 void Menu::redraw(void) 1538 { 1539 #ifdef HAVE_GTK2 1540 gtk_option_menu_set_history(GTK_OPTION_MENU(this->widget), this->value); 1541 #endif /* HAVE_GTK2 */ 1542 } 1543 1544 /** 1545 \brief Changed the Option, call this Function 1546 */ 1547 void Menu::changeOption(void) 1548 { 1549 #ifdef HAVE_GTK2 1550 this->value =(int)gtk_option_menu_get_history(GTK_OPTION_MENU(this->widget)); 1551 #else /* HAVE_GTK2 */ 1552 char tmpChar[20]; 1553 cout << "\nPlease give me a new value for " << this->title << "(defualt:" << this->defaultValue << "): "; 1554 cin >> tmpChar; 1555 this->value = atoi(tmpChar); 1556 1557 #endif /* HAVE_GTK2 */ 1558 cout << this->title << " set to: " << this->value << endl; 1559 } 1560 1561 /* OPTION LABEL */ 1021 1562 1022 1563 /** 1023 1564 \brief Creates a new OptionLabel with a LabelName and a Value. 1024 1565 \param label The name of the OptionLabel. 1025 \param value The Value of the OptionLabel 1566 \param value The Value of the OptionLabel(what will be displayed). 1026 1567 */ 1027 1568 OptionLabel::OptionLabel(char* label, char* value) 1028 1569 { 1029 init(); 1030 setTitle(label); 1031 setValue(value); 1570 this->init(); 1571 this->setTitle(label); 1572 this->setValue(value); 1573 } 1574 1575 /** 1576 \brief destructs an OptionLabel. 1577 */ 1578 OptionLabel::~OptionLabel(void) 1579 { 1580 this->destroy(); 1032 1581 } 1033 1582 … … 1037 1586 void OptionLabel::init(void) 1038 1587 { 1588 this->isOption = 5; 1039 1589 static_cast<Option*>(this)->init(); 1040 isOption = 5; 1590 1041 1591 cValue = NULL; 1042 1592 1043 1593 #ifdef HAVE_GTK2 1044 widget = gtk_label_new (""); 1045 #endif /* HAVE_GTK2 */ 1046 } 1594 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 if (this->title) 1604 PRINTF(3)("deleting the OptionLabel: %s\n", this->title); 1605 else 1606 PRINTF(3)("deleting the OptionLabel.\n"); 1607 if (this->cValue) 1608 delete []this->cValue; 1609 1610 static_cast<Option*>(this)->destroy(); 1611 } 1612 1047 1613 1048 1614 /** … … 1052 1618 void OptionLabel::setValue(char* newValue) 1053 1619 { 1054 if ( cValue)1055 delete cValue;1056 cValue = new char [strlen(newValue)+1];1057 strcpy( cValue, newValue);1058 #ifdef HAVE_GTK2 1059 gtk_label_set_text (GTK_LABEL (widget),cValue);1620 if (this->cValue) 1621 delete []this->cValue; 1622 this->cValue = new char [strlen(newValue)+1]; 1623 strcpy(this->cValue, newValue); 1624 #ifdef HAVE_GTK2 1625 gtk_label_set_text(GTK_LABEL(this->widget), this->cValue); 1060 1626 #endif /* HAVE_GTK2 */ 1061 1627 } … … 1067 1633 void OptionLabel::setTitle(char* title) 1068 1634 { 1069 if (label) 1070 delete []label; 1071 label = new char [strlen(title)+1]; 1072 strcpy(label, title); 1073 #ifdef HAVE_GTK2 1074 gtk_label_set_text (GTK_LABEL (widget), title); 1075 #endif /* HAVE_GTK2 */ 1076 } 1077 1078 /** 1079 \brief Redraws an OptionLabel (not implemented yet, but it works). 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 \brief Redraws an OptionLabel(not implemented yet, but it works). 1080 1644 */ 1081 1645 void OptionLabel::redraw(void) 1082 1646 { 1083 1084 } 1647 #ifdef HAVE_GTK2 1648 gtk_label_set_text(GTK_LABEL(widget), title); 1649 #endif /* HAVE_GTK2 */ 1650 } 1651 1652 /** 1653 \brief Changed the Option, call this Function 1654 */ 1655 void OptionLabel::changeOption(void) 1656 { 1657 #ifdef HAVE_GTK2 1658 this->cValue =(char*)gtk_label_get_text(GTK_LABEL(this->widget)); 1659 #else /* HAVE_GTK2 */ 1660 cout << "\nPlease give me a new input for " << this->title << ": "; 1661 cin >> this->cValue; 1662 #endif /* HAVE_GTK2 */ 1663 cout << this->title << " set to: " << this->cValue << endl; 1664 } 1665 1085 1666 1086 1667 /** … … 1088 1669 You migth consider adding Label::setTitle with this. 1089 1670 */ 1090 Label::Label ()1671 Label::Label(void) 1091 1672 { 1092 1673 this->init(); … … 1097 1678 \param text The text to be displayed. 1098 1679 */ 1099 Label:: Label 1680 Label:: Label(char* text) 1100 1681 { 1101 1682 this->init(); 1102 this->setText(text); 1683 this->setTitle(text); 1684 } 1685 1686 /** 1687 \brief destructs a Label. 1688 */ 1689 Label::~Label(void) 1690 { 1691 this->destroy(); 1103 1692 } 1104 1693 … … 1108 1697 void Label::init(void) 1109 1698 { 1110 isOption = 0;1699 this->isOption = 0; 1111 1700 1112 1701 static_cast<Widget*>(this)->init(); 1113 1702 1114 1703 #ifdef HAVE_GTK2 1115 widget = gtk_label_new (""); 1116 gtk_label_set_line_wrap (GTK_LABEL(widget), TRUE); 1117 #endif /* HAVE_GTK2 */ 1704 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 if (this->title) 1715 PRINTF(3)("deleting the Label: %s\n", this->title); 1716 else 1717 PRINTF(3)("deleting the Label.\n"); 1718 1719 static_cast<Widget*>(this)->destroy(); 1118 1720 } 1119 1721 … … 1122 1724 \param text The text to be inserted into the Label. 1123 1725 */ 1124 void Label::setText (char* text) 1125 { 1126 if (label) 1127 delete []label; 1128 label = new char[strlen(text)+1]; 1129 strcpy(label, text); 1130 #ifdef HAVE_GTK2 1131 gtk_label_set_text (GTK_LABEL (this->widget), text); 1132 #endif /* HAVE_GTK2 */ 1133 } 1726 void Label::setTitle(char* text) 1727 { 1728 if (this->title) 1729 delete []this->title; 1730 this->title = new char[strlen(text)+1]; 1731 strcpy(this->title, text); 1732 #ifdef HAVE_GTK2 1733 gtk_label_set_text(GTK_LABEL(this->widget), this->title); 1734 #endif /* HAVE_GTK2 */ 1735 } 1736 1737 /** 1738 \brief ereases the Text of a Label 1739 */ 1740 void Label::ereaseText(void) 1741 { 1742 this->setTitle(""); 1743 } 1744 1745 /** 1746 \brief appends some Text to a Label 1747 \param textToAppend The text that will be appended to this Label 1748 */ 1749 void Label::appendText(char* textToAppend) 1750 { 1751 if (this->title) 1752 { 1753 char* tmpTitle = new char[strlen(this->title)+strlen(textToAppend)+1]; 1754 strcpy(tmpTitle, title); 1755 strcat(tmpTitle, textToAppend); 1756 delete []this->title; 1757 this->title = tmpTitle; 1758 } 1759 else 1760 { 1761 this->title = new char[strlen(textToAppend)]; 1762 } 1763 1764 #ifdef HAVE_GTK2 1765 gtk_label_set_text(GTK_LABEL(this->widget), title); 1766 #endif /* HAVE_GTK2 */ 1767 } 1768 1769 /** 1770 \brief Appends some integer to the Label 1771 \param intToAppend The Int that will be added. 1772 1773 it does this by just converting the int into a char* and send it to appendText 1774 */ 1775 void Label::appendInt(int intToAppend) 1776 { 1777 char append [32]; 1778 sprintf(append, "%d", intToAppend); 1779 this->appendText(append); 1780 } 1781 1134 1782 1135 1783 /** … … 1137 1785 \return The Text the Label holds. 1138 1786 */ 1139 char* Label::getText () 1140 { 1141 return label; 1142 } 1787 char* Label::getText(void) 1788 { 1789 return this->title; 1790 } 1791 1792 /** 1793 \brief Creates a new ProgressBar. 1794 */ 1795 ProgressBar::ProgressBar(void) 1796 { 1797 this->init(); 1798 } 1799 1800 /** 1801 \brief Creates a new ProgressBar. 1802 \param label The name you want to get the ProgressBar. 1803 */ 1804 ProgressBar::ProgressBar(char* label) 1805 { 1806 this->init(); 1807 this->setTitle(label); 1808 } 1809 1810 /** 1811 \brief destructs a ProgressBar 1812 */ 1813 ProgressBar::~ProgressBar(void) 1814 { 1815 this->destroy(); 1816 } 1817 1818 /** 1819 \brief Initializes a ProgressBar 1820 */ 1821 void ProgressBar::init(void) 1822 { 1823 this->isOption = 0; 1824 this->progress = 0.0; 1825 this->totalSize = 0.0; 1826 1827 static_cast<Widget*>(this)->init(); 1828 #ifdef HAVE_GTK2 1829 this->adjustment =(GtkAdjustment*)gtk_adjustment_new(0, 0, 100, 0, 0, 0); 1830 this->widget = gtk_progress_bar_new_with_adjustment(this->adjustment); 1831 #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 else 1842 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 } 1858 1859 /** 1860 \brief Sets the Total size of the Bar.(ex. The maximum one can download) 1861 */ 1862 void ProgressBar::setTotalSize(double totalSize) 1863 { 1864 this->totalSize = totalSize; 1865 } 1866 1867 /** 1868 \brief Sets the progress maximum is this->totalSize 1869 */ 1870 void ProgressBar::setProgress(double progress) 1871 { 1872 this->progress = progress; 1873 1874 if (this->progress > this->totalSize) 1875 this->progress = this->totalSize; 1876 1877 #ifdef HAVE_GTK2 1878 gtk_progress_set_value(GTK_PROGRESS(widget), this->progress*100.0/this->totalSize); 1879 #endif /* HAVE_GTK2 */ 1880 PRINTF(3)("Progress: %f\n", this->progress*100.0/this->totalSize); 1881 } 1882 1883 /** 1884 \brief returns the Progress Status 1885 */ 1886 double ProgressBar::getProgress(void) 1887 { 1888 return this->progress; 1889 } 1890 1891 /* IMAGE */ 1892 1893 /** 1894 \brief Creates a new Image 1895 \param imagename the location of the Image on the Hard Disc 1896 */ 1897 Image::Image(char* imagename) 1898 { 1899 this->init(); 1900 if (this->title) 1901 delete []this->title; 1902 this->title = new char[strlen(imagename)+1]; 1903 strcpy(this->title, imagename); 1904 1905 #ifdef HAVE_GTK2 1906 widget = gtk_image_new_from_file(imagename); 1907 #endif /* HAVE_GTK2 */ 1908 } 1909 1910 /** 1911 \brief destructs an Image. 1912 */ 1913 Image::~Image(void) 1914 { 1915 this->destroy(); 1916 } 1917 1918 /** 1919 \brief Initializes a new Image 1920 */ 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 if (this->title) 1934 PRINTF(3)("deleting the Image: %s\n", this->title); 1935 else 1936 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 } -
orxonox/trunk/src/gui/orxonox_gui_gtk.h
r3187 r3423 3 3 \brief Contains all th different Widgets. 4 4 */ 5 6 5 #ifndef _ORXONOX_GUI_GTK_H 7 6 #define _ORXONOX_GUI_GTK_H … … 10 9 #include <config.h> 11 10 #endif 11 12 //! verbose level, soon obsolete 13 extern int verbose; // soon obsolete here 14 15 #include "../debug.h" 12 16 13 17 #ifdef HAVE_GTK2 … … 26 30 #include <gtk/gtkimage.h> 27 31 #include <gtk/gtkeventbox.h> 28 #endif /* HAVE_GTK2 */ 29 30 #ifdef HAVE_GTK2 31 bool initGTK(int argc, char *argv[]); 32 bool mainloopGTK(void); 33 #endif /* HAVE_GTK2 */ 34 32 #include <gtk/gtkprogressbar.h> 33 #endif /* HAVE_GTK2 */ 34 35 bool initGUI(int argc, char* argv[]); 36 bool mainloopGUI(void); 35 37 36 38 //! This is the topmost object that can be displayed all others are derived from it. … … 40 42 41 43 public: 42 ~Widget (); 43 44 Widget* next; //!< next always points to the next Widget in the list. Every Widget has a next one, or has NULL as next 45 #ifdef HAVE_GTK2 46 GtkWidget* widget; //!< widget is the gtk_widget that the specific Object Contains. 47 #endif /* HAVE_GTK2 */ 48 void init(void); 49 int isOption; //!< with this Paramenter one can set the option-type: -2:Container, -1: Box, 0: not an Option, 1: Bool-option, 2: int-option, 3: float option, 4:char option, 5: char* option 50 /** 51 \briefdefines isOption states 52 */ 44 virtual ~Widget(void); 45 void init(void); 46 void destroy(void); 47 48 void show(void); 49 void hide(void); 50 void setSize(int width, int height); 51 virtual void setTitle(char* title) = 0; //!< An abstract Function, that sets the title of Widgets. 52 53 Widget* findWidgetByName(char* name, unsigned int depth); 54 void walkThrough(void(*function)(Widget*), unsigned int depth); 55 void walkThrough(void(*function)(Widget*, void*), void* data, unsigned int depth); 56 static void listOptionsAndGroups(Widget* widget); 57 static void listOptions(Widget* widget); 58 static void listOptions(Widget* widget, void* data); 59 Widget* findOptionByNumber(int* number, unsigned int depth); 60 static void listGroups(Widget* widget); 61 static void listGroups(Widget* widget, void* data); 62 Widget* findGroupByNumber(int* number, unsigned int depth); 63 static void setOptions(Widget* widget); 64 static void flagCheck(Widget* widget, void* flagName); 65 66 #ifdef HAVE_GTK2 67 // Connection - Functions 68 69 gulong connectSignal(char* event, gint(*signal)(GtkWidget*, GdkEvent*, void* )); 70 gulong connectSignal(char* event, gint(*signal)(GtkWidget*, Widget* )); 71 gulong connectSignal(char* event, void* extObj, gint(*signal)(GtkWidget*, GdkEvent*, void* )); 72 gulong connectSignal(char* event, void* extObj, gint(*signal)(GtkWidget*, void* )); 73 gulong connectSignal(char* event, void* extObj, gint(*signal)(GtkWidget*, GdkEventKey*, void* )); 74 void disconnectSignal(gulong signalID); 75 76 // Signals 77 static gint doNothingSignal(GtkWidget* widget, GdkEvent* event, void* nothing); 78 #endif /* HAVE_GTK2 */ 79 80 Widget* next; //!< next always points to the next Widget in the list. Every Widget has a next one, or has NULL as next 81 #ifdef HAVE_GTK2 82 GtkWidget* widget; //!< widget is the gtk_widget that the specific Object Contains. 83 #endif /* HAVE_GTK2 */ 84 int isOption; //!< with this Paramenter one can set the option-type: -2:Container, -1: Box, 0: not an Option, 1: Bool-option, 2: int-option, 3: float option, 4:char option, 5: char* option 85 86 //! defines isOption states 53 87 enum option { containerType = -2, boxType = -1, nothingType = 0, boolType = 1, intType = 2}; 54 char* label; //!< The name of the Widget. Some do display it, Options need it to save; 55 #ifdef HAVE_GTK2 56 gulong connectSignal (char* event, gint (*signal)(GtkWidget*, GdkEvent*, void *)); 57 gulong connectSignal (char* event, gint (*signal)(GtkWidget*, Widget *)); 58 gulong connectSignal (char* event, void* extObj, gint (*signal)(GtkWidget*, GdkEvent*, void *)); 59 gulong connectSignal (char* event, void* extObj, gint (*signal)(GtkWidget*, GdkEventKey*, void *)); 60 void disconnectSignal (gulong signalID); 61 #endif /* HAVE_GTK2 */ 62 void show (); 63 void hide (); 64 void setSize(int width, int height); 65 66 void walkThrough (void (*function)(Widget*)); 67 static void listOptions (Widget* widget); 68 static void setOptions (Widget* widget); 69 70 #ifdef HAVE_GTK2 71 static gint doNothingSignal (GtkWidget *widget, GdkEvent* event, void* nothing); 72 #endif /* HAVE_GTK2 */ 88 char* title; //!< The name of the Widget. Some do display it, Options need it to save; 73 89 }; 74 90 … … 81 97 82 98 void init(void); 83 void setGroupName (char* name); 84 char* getGroupName (void); 99 void destroy(void); 100 101 void setGroupName(char* name); 102 char* getGroupName(void); 103 104 virtual void fill(Widget* lowerWidget) = 0; //!< An abstract function, that fills Packers. 85 105 }; 86 106 … … 94 114 { 95 115 private: 96 int borderwidth; 97 int policy; 98 99 public: 100 void init(void); 101 // void setBorderWidth (int borderwidth); 102 // virtual void setTitle (char* title) = 0; 103 void fill (Widget *lowerWidget); 116 int borderwidth; //!< The width of The Container Boarder. 117 int policy; //!< The Update Policy of a Container. 118 119 public: 120 void init(void); 121 void destroy(void); 122 123 // void setBorderWidth(int borderwidth); 124 // virtual void setTitle(char* title) = 0; 125 void fill(Widget* lowerWidget); 104 126 }; 105 127 … … 112 134 { 113 135 private: 114 bool isOpen; //!< A bool Variable that checks if a Window is already open.115 public: 116 static Window* mainWindow; //!< Pointer to the First Window that was opened. By default this should be the GUI's main-Window.136 bool isOpen; //!< A bool Variable that checks if a Window is already open. 137 public: 138 static Window* mainWindow; //!< Pointer to the First Window that was opened. By default this should be the GUI's main-Window. 117 139 static void addWindow(Window* windowToAdd); 118 140 119 Window (void); 120 Window (char* windowName); 121 void init (); 122 123 void setTitle (char* title); 124 void showall (); 125 void open(); 126 void close(); 127 128 #ifdef HAVE_GTK2 129 static gint windowOpen (GtkWidget *widget, GdkEvent* event, void* window); 130 static gint windowClose (GtkWidget *widget, GdkEvent* event, void* window); 131 static gint orxonox_gui_quit (GtkWidget *widget, GdkEvent *event, gpointer data); 141 Window(void); 142 Window(char* windowName); 143 ~Window(void); 144 void init(void); 145 void destroy(void); 146 147 void setTitle(char* title); 148 void showall(void); 149 void open(void); 150 void close(void); 151 152 #ifdef HAVE_GTK2 153 // Signals 154 static gint windowOpen(GtkWidget* widget, GdkEvent* event, void* window); 155 static gint windowClose(GtkWidget* widget, GdkEvent* event, void* window); 132 156 #endif /* HAVE_GTK2 */ 133 157 }; … … 141 165 { 142 166 public: 143 Frame (char* frameName); 144 Frame (void); 145 void init(void); 146 147 void setTitle (char* title); 167 Frame(void); 168 Frame(char* frameName); 169 ~Frame(void); 170 void init(void); 171 void destroy(void); 172 173 void setTitle(char* title); 148 174 }; 149 175 … … 155 181 { 156 182 public: 157 EventBox (char* eventBoxName); 158 EventBox (void); 159 void init(void); 160 161 void setTitle (char* title); 183 EventBox(void); 184 EventBox(char* eventBoxName); 185 ~EventBox(void); 186 void init(void); 187 void destroy(void); 188 189 void setTitle(char* title); 162 190 }; 163 191 … … 166 194 A Box can Contain multiple Widgets, that are ordered either horizontally or vertically 167 195 I defined the standartbox to be horizontally. 168 A Box is always filled left->right (horizontally) or up->down(vertically)196 A Box is always filled left->right(horizontally) or up->down(vertically) 169 197 */ 170 198 class Box : public Packer 171 199 { 172 200 public: 173 Box (void); 174 Box (char boxtype); 201 Box(void); 202 Box(char boxtype); 203 ~Box(void); 175 204 void init(char boxtype); 176 177 void fill (Widget* lowerWidget); 178 205 void destroy(void); 206 207 void fill(Widget* lowerWidget); 208 209 void setTitle(char* title); 210 }; 211 212 //! An Option is a Widget that contains something that may change its state. 213 /** 214 * Options are the essence of a GUI, they: Configure, Start, Quit, Execute, and make it worth something 215 */ 216 class Option : public Widget 217 { 218 protected: 219 bool saveable; //!< Options can be Saved. 220 221 public: 222 void init(void); 223 void destroy(void); 224 225 int value; //!< every option has a value either true or false(0,1) or something else like 25 for 25% of the volume 226 char* flagName; //!< options have a flag name that will be appendet if you start the Program from the GUI. 227 char* flagNameShort; //!< like flag_name but shorter 228 int defaultValue; //!< A default value is good, for hiding a option if it is not needed.(hidden if value == default_value) 229 230 void saveability(void); 231 void saveability(bool isSaveable); 232 bool isSaveable(void); 233 void setFlagName(char* flagname, int defaultvalue); 234 void setFlagName(char* flagname, char* flagnameshort, int defaultvalue); 235 virtual void redraw(void) = 0; //!< A Option must be able to redraw itself. 236 virtual void changeOption(void) = 0; //!< What to do, if an Option is Changed. eacht option decides for itself. 237 #ifdef HAVE_GTK2 238 // Signals 239 static gint OptionChange(GtkWidget* widget, Widget* option); //!< Signal for Options that change. 240 #endif /* HAVE_GTK2 */ 241 }; 242 243 //! Buttons can be pressed, and released. 244 /** 245 * Buttons are mainly there for executing some action like Starting the Programm, or Quiting it. 246 */ 247 class Button : public Option 248 { 249 public: 250 Button(char* buttonname); 251 ~Button(void); 252 void init(void); 253 void destroy(void); 254 255 void setTitle(char* title); 256 void redraw(void); 257 void changeOption(void); 258 }; 259 260 //! CheckButtons are a key in configuring bool Variables 261 /** CheckButtons can configure bool Variables like wireframe on/off, enable_sound etc. 262 */ 263 class CheckButton : public Option 264 { 265 public: 266 CheckButton(char* buttonname); 267 ~CheckButton(void); 268 void init(void); 269 void destroy(void); 270 271 void setTitle(char* title); 272 bool isActive(void); //!< a Bool value to see, if this CheckButton is active. 273 void redraw(void); 274 void changeOption(void); 275 }; 276 277 //! Sliders are Options that can be modified in their value 278 /** 279 * good for volume, brightness, etc. 280 */ 281 class Slider : public Option 282 { 283 private: 284 int start; //!< The beginning of the Slider-range. 285 int end; //!< The end of the Slider-range. 286 public: 287 Slider(char* slidername, int start, int end); 288 ~Slider(void); 289 void init(int start, int end); 290 void destroy(void); 291 292 void setTitle(char* title); 293 void setValue(int value); 294 void redraw(void); 295 void changeOption(void); 296 }; 297 298 //! A Menu is an Option that has a dropdown menu, where you can chose between different Items 299 class Menu : public Option 300 { 301 private: 302 #ifdef HAVE_GTK2 303 GtkWidget* menu; //!< The menu That will hold the Options. 304 GtkWidget* item; //!< One Item From a Menu. 305 #endif /* HAVE_GTK2 */ 306 va_list itemlist; //!< The list to readin multiple Options. 307 308 public: 309 Menu(char* menuname, ...); 310 ~Menu(void); 311 void init(void); 312 void destroy(void); 313 314 void setTitle(char* title); 315 void addItem(char* itemName); 316 void redraw(void); 317 void changeOption(void); 318 }; 319 320 //! A OptionLabel is a simple Label, that holds a char*, and will be updated, if changed. 321 class OptionLabel : public Option 322 { 323 private: 324 325 public: 326 OptionLabel(char* label, char* value); 327 ~OptionLabel(void); 328 void init(void); 329 void destroy(void); 330 331 332 void setValue(char* newValue); 333 void setTitle(char* title); 334 void redraw(void); 335 void changeOption(void); 336 337 char* cValue; //!< The Value the Label will have. \todo make private 338 339 }; 340 341 //! A label is a Widget, that displays a text 342 class Label : public Widget 343 { 344 public: 345 Label(void); 346 Label(char* text); 347 ~Label(void); 348 void init(void); 349 void destroy(void); 350 351 void setTitle(char* text); 352 void ereaseText(void); 353 void appendText(char* textToAppend); 354 void appendInt(int intToAppend); 355 char* getText(void); 356 }; 357 358 //! A ProgressBar is a Widget, that can display a Progress 359 class ProgressBar : public Widget 360 { 361 public: 362 ProgressBar(void); 363 ProgressBar(char* label); 364 ~ProgressBar(void); 365 void init(void); 366 void destroy(void); 367 368 void setTitle(char* title); 369 void setProgress(double progress); 370 void setTotalSize(double totalSize); 371 double getProgress(void); 372 373 private: 374 double totalSize; //!< The total Size of a download Bar 375 double progress; //!< The progress of a Bar. 376 #ifdef HAVE_GTK2 377 GtkAdjustment* adjustment; 378 #endif /* HAVE_GTK2 */ 179 379 }; 180 380 … … 187 387 { 188 388 public: 189 Image (char* imgaename); 190 void init(void); 191 }; 192 193 //! An Option is a Widget that contains something that may change its state. 194 /** 195 * Options are the essence of a GUI, they: Configure, Start, Quit, Execute, and make it worth something 196 */ 197 class Option : public Widget 198 { 199 public: 200 //virtual gint OptionChange (GtkWidget *widget, GdkEvent *event, gpointer data); 201 void init(void); 202 203 int value; //!< every option has a value either true or false (0,1) or something else like 25 for 25% of the volume 204 char* flagName; //!< options have a flag name that will be appendet if you start the Program from the GUI. 205 char* flagNameShort; //!< like flag_name but shorter 206 int defaultValue; //!< A default value is good, for hiding a option if it is not needed. (hidden if value == default_value) 207 bool saveable; //!< Options can be Saved. 208 209 void setFlagName (char* flagname, int defaultvalue); 210 void setFlagName (char* flagname, char* flagnameshort, int defaultvalue); 211 virtual void redraw () = 0; //!< A Option must be able to redraw itself. 212 }; 213 214 //! Buttons can be pressed, and released. 215 /** 216 * Buttons are mainly there for executing some action like Starting the Programm, or Quiting it. 217 */ 218 class Button : public Option 219 { 220 public: 221 Button (char* buttonname); 222 void init(void); 223 224 void setTitle(char* title); 225 226 void redraw(); 227 }; 228 229 //! CheckButtons are a key in configuring bool Variables 230 /** CheckButtons can configure bool Variables like wireframe on/off, enable_sound etc. 231 */ 232 class CheckButton : public Option 233 { 234 public: 235 CheckButton (char* buttonname); 236 #ifdef HAVE_GTK2 237 static gint OptionChange (GtkWidget* widget, Widget* checkbutton); 238 #endif /* HAVE_GTK2 */ 239 240 void init(void); 241 void setTitle(char* title); 242 243 bool isActive(); 244 void redraw (); 245 }; 246 247 //! Sliders are Options that can be modified in their value 248 /** 249 * good for volume, brightness, etc. 250 */ 251 class Slider : public Option 252 { 253 public: 254 Slider (char* slidername,int start, int end); 255 void init(int start, int end); 256 257 void setTitle(char* title); 258 void setValue(int value); 259 260 #ifdef HAVE_GTK2 261 static gint OptionChange (GtkWidget* widget, Widget* slider); 262 #endif /* HAVE_GTK2 */ 263 void redraw(); 264 }; 265 266 //! A Menu is an Option that has a dropdown menu, where you can chose between different Items 267 class Menu : public Option 268 { 269 private: 270 #ifdef HAVE_GTK2 271 GtkWidget* menu; //!< The menu That will hold the Options. 272 GtkWidget* item; //!< One Item From a Menu. 273 #endif /* HAVE_GTK2 */ 274 va_list itemlist; //!> The list to readin multiple Options. 275 276 public: 277 Menu (char* menuname, ...); 278 void init(void); 279 280 void setTitle(char* title); 281 282 void addItem(char* itemName); 283 #ifdef HAVE_GTK2 284 static gint OptionChange (GtkWidget* widget, Widget* menu); 285 #endif /* HAVE_GTK2 */ 286 void redraw(); 287 }; 288 289 //! A CharLabel is a simple Label, that holds a char*, and will be updated, if changed. 290 class OptionLabel : public Option 291 { 292 public: 293 OptionLabel(char* label, char* value); 294 void init(void); 295 296 char* cValue; //!< The Value the Label will have. 297 298 void setValue(char* newValue); 299 void setTitle(char* title); 300 void redraw(); 301 }; 302 303 //! A label is a Widget, that displays a text 304 class Label : public Widget 305 { 306 public: 307 Label (); 308 Label (char* text); 309 void init(void); 310 311 void setText (char* text); 312 char* getText (); 313 }; 314 315 316 //gint orxonox_gui_quit (GtkWidget *widget, GdkEvent *event, gpointer data); 389 Image(char* imgaename); 390 ~Image(void); 391 void init(void); 392 void destroy(void); 393 394 void setTitle(char* title); 395 }; 396 397 //gint orxonox_gui_quit(GtkWidget* widget, GdkEvent* event, gpointer data); 317 398 318 399 #endif /* _ORXONOX_GUI_GTK_H */ -
orxonox/trunk/src/gui/orxonox_gui_keys.cc
r3187 r3423 29 29 \brief Creates an Keyboard-Frame 30 30 */ 31 OrxonoxGuiKeys::OrxonoxGuiKeys ()32 { 33 keysFrame = new Frame("Keyboard-Options:");31 OrxonoxGuiKeys::OrxonoxGuiKeys(void) 32 { 33 this->keysFrame = new Frame("Keyboard-Options:"); 34 34 // keysFrame->setGroupName("Keyboard"); 35 keysBox = new Box ('h'); 36 player1 = new Player("player1"); 37 player2 = new Player("player2"); 38 39 keysBox->fill(player1->getOpenButton()); 40 keysBox->fill(player2->getOpenButton()); 41 42 keysFrame->fill (keysBox); 35 this->keysBox = new Box('h'); 36 this->player1 = new Player("player1"); 37 this->player2 = new Player("player2"); 38 39 this->keysBox->fill(this->player1->getOpenButton()); 40 this->keysBox->fill(this->player2->getOpenButton()); 41 42 this->keysFrame->fill(this->keysBox); 43 } 44 45 /** 46 \brief Destructs the Keys-stuff 47 */ 48 OrxonoxGuiKeys::~OrxonoxGuiKeys(void) 49 { 50 // nothing to do here. 43 51 } 44 52 … … 47 55 \return Returns the Audio-frame 48 56 */ 49 Widget* OrxonoxGuiKeys::getWidget ()50 { 51 return keysFrame;57 Widget* OrxonoxGuiKeys::getWidget(void) 58 { 59 return this->keysFrame; 52 60 } 53 61 … … 60 68 Player::Player(char* player) 61 69 { 62 char windowName[100] = "Keyboard settings of "; 63 strcat (windowName, player); 64 pKeyWindow = new Window(windowName); 65 pKeyFrame = new Frame (windowName); 66 pKeysBox = new Box('v'); 67 pKeysBox->setGroupName (player); 68 pKeysBox->fill(addKey(UP, "up")); 69 pKeysBox->fill(addKey(DOWN, "down")); 70 pKeysBox->fill(addKey(LEFT, "left")); 71 pKeysBox->fill(addKey(RIGHT, "right")); 72 pKeysBox->fill(addKey(SHOOT, "shoot")); 73 70 char* windowName = new char[strlen(player)+25]; 71 strcpy(windowName, "Keyboard settings of "); 72 strcat(windowName, player); 73 this->pKeyWindow = new Window(windowName); 74 this->pKeyFrame = new Frame(windowName); 75 this->pKeysBox = new Box('v'); 76 this->pKeysBox->setGroupName(player); 77 this->pKeysBox->fill(addKey(UP, "up")); 78 this->pKeysBox->fill(addKey(DOWN, "down")); 79 this->pKeysBox->fill(addKey(LEFT, "left")); 80 this->pKeysBox->fill(addKey(RIGHT, "right")); 81 this->pKeysBox->fill(addKey(SHOOT, "shoot")); 82 delete windowName; 74 83 closeButton = new Button("close"); 75 84 #ifdef HAVE_GTK2 76 closeButton->connectSignal("button_press_event",pKeyWindow, Window::windowClose);77 #endif /* HAVE_GTK2 */ 78 79 pKeysBox->fill(closeButton);80 pKeyFrame->fill(pKeysBox);81 pKeyWindow->fill(pKeyFrame);82 Window::addWindow( pKeyWindow);83 #ifdef HAVE_GTK2 84 pKeyWindow->connectSignal("destroy",pKeyWindow, Window::windowClose);85 pKeyWindow->connectSignal("delete_event",pKeyWindow, Window::windowClose);86 #endif /* HAVE_GTK2 */ 87 88 openButton = new Button(player);89 #ifdef HAVE_GTK2 90 openButton->connectSignal("button_press_event",pKeyWindow, Window::windowOpen);91 #endif /* HAVE_GTK2 */ 92 93 inputWindow = new Window("inputWindow");94 95 inputButton = new Button("test");96 inputWindow->fill(inputButton);97 #ifdef HAVE_GTK2 98 inputWindow->connectSignal("destroy", Widget::doNothingSignal);99 inputWindow->connectSignal("delete_event", Widget::doNothingSignal);85 this->closeButton->connectSignal("button_press_event", this->pKeyWindow, Window::windowClose); 86 #endif /* HAVE_GTK2 */ 87 88 this->pKeysBox->fill(this->closeButton); 89 this->pKeyFrame->fill(this->pKeysBox); 90 this->pKeyWindow->fill(this->pKeyFrame); 91 Window::addWindow(this->pKeyWindow); 92 #ifdef HAVE_GTK2 93 this->pKeyWindow->connectSignal("destroy", this->pKeyWindow, Window::windowClose); 94 this->pKeyWindow->connectSignal("delete_event", this->pKeyWindow, Window::windowClose); 95 #endif /* HAVE_GTK2 */ 96 97 this->openButton = new Button(player); 98 #ifdef HAVE_GTK2 99 this->openButton->connectSignal("button_press_event", this->pKeyWindow, Window::windowOpen); 100 #endif /* HAVE_GTK2 */ 101 102 this->inputWindow = new Window("inputWindow"); 103 104 this->inputButton = new Button("test"); 105 this->inputWindow->fill(inputButton); 106 #ifdef HAVE_GTK2 107 this->inputWindow->connectSignal("destroy", Widget::doNothingSignal); 108 this->inputWindow->connectSignal("delete_event", Widget::doNothingSignal); 100 109 #endif /* HAVE_GTK2 */ 101 110 … … 108 117 \returns A widget that has the Key-Box 109 118 */ 110 Widget* Player::addKey 111 { 112 inputKey[key] = new InputKey;113 inputKey[key]->pKeyBox = new Box();114 inputKey[key]->pKeyButton = new Button(name);115 inputKey[key]->pKeyOLabel = new OptionLabel(name, name);116 inputKey[key]->pKeyOLabel->saveable = true;119 Widget* Player::addKey(KEYS key, char* name) 120 { 121 this->inputKey[key] = new InputKey; 122 this->inputKey[key]->pKeyBox = new Box(); 123 this->inputKey[key]->pKeyButton = new Button(name); 124 this->inputKey[key]->pKeyOLabel = new OptionLabel(name, name); 125 this->inputKey[key]->pKeyOLabel->saveability(); 117 126 118 127 #ifdef HAVE_GTK2 119 128 //inputKey[key]->pKeyButton->connectSignal("key_press_event", inputKey[key]->pKeyButton, key_cb); 120 inputKey[key]->pKeyButton->connectSignal("button_press_event",inputKey[key], inputWindowEvent);121 #endif /* HAVE_GTK2 */ 122 inputKey[key]->pKeyBox->fill(inputKey[key]->pKeyButton);123 inputKey[key]->pKeyBox->fill(inputKey[key]->pKeyOLabel);124 return inputKey[key]->pKeyBox;129 this->inputKey[key]->pKeyButton->connectSignal("button_press_event", this->inputKey[key], inputWindowEvent); 130 #endif /* HAVE_GTK2 */ 131 this->inputKey[key]->pKeyBox->fill(this->inputKey[key]->pKeyButton); 132 this->inputKey[key]->pKeyBox->fill(this->inputKey[key]->pKeyOLabel); 133 return this->inputKey[key]->pKeyBox; 125 134 } 126 135 … … 128 137 \returns the OpenButton of a Player 129 138 */ 130 Button* Player::getOpenButton( )131 { 132 return openButton;133 } 134 135 /** 136 \brief sets a new Key 139 Button* Player::getOpenButton(void) 140 { 141 return this->openButton; 142 } 143 144 /** 145 \brief sets a new Key(only output) 137 146 \param key the new Key. 138 147 */ … … 163 172 gint Player::key_cb(GtkWidget* w, GdkEventKey* event, void* inputKey) 164 173 { 165 InputKey* inputkey = 174 InputKey* inputkey =(InputKey*) inputKey; 166 175 char title [20]; 167 176 … … 256 265 char* tmp; 257 266 sprintf(tmp, "%c", event->keyval); 258 printf 267 printf("other key %s \n", tmp); 259 268 strcpy(title, tmp); 260 269 break; 261 270 } 262 271 263 inputkey->pKeyOLabel->setValue 272 inputkey->pKeyOLabel->setValue(title); 264 273 inputButton->disconnectSignal(keySignal); 265 274 inputWindow->close(); -
orxonox/trunk/src/gui/orxonox_gui_keys.h
r3187 r3423 15 15 \brief defines the Possible Player Keys 16 16 */ 17 enum KEYS { UP, DOWN, LEFT, RIGHT, SHOOT};17 enum KEYS {UP, DOWN, LEFT, RIGHT, SHOOT}; 18 18 19 19 class Player; … … 29 29 30 30 public: 31 OrxonoxGuiKeys ();32 ~OrxonoxGuiKeys ();31 OrxonoxGuiKeys(void); 32 ~OrxonoxGuiKeys(void); 33 33 34 Widget* getWidget ();34 Widget* getWidget(void); 35 35 }; 36 36 … … 64 64 Player(char* player); 65 65 66 Widget* addKey 66 Widget* addKey(KEYS key, char* name); 67 67 68 Button* getOpenButton( );68 Button* getOpenButton(void); 69 69 70 70 #ifdef HAVE_GTK2 -
orxonox/trunk/src/gui/orxonox_gui_video.cc
r3187 r3423 30 30 \brief Creates the Video-Option-Frame 31 31 */ 32 OrxonoxGuiVideo::OrxonoxGuiVideo ()32 OrxonoxGuiVideo::OrxonoxGuiVideo(void) 33 33 { 34 videoFrame = new Frame("Video-Options:");35 videoBox = new Box('v');36 videoFrame->setGroupName("video");34 this->videoFrame = new Frame("Video-Options:"); 35 this->videoBox = new Box('v'); 36 this->videoFrame->setGroupName("video"); 37 37 38 fullscreen = new CheckButton("Fullscreen-mode");39 fullscreen->setFlagName("windowed", "q", 1);40 fullscreen->saveable = true;41 videoBox->fill(fullscreen);42 wireframe = new CheckButton("WireFrame-mode");43 wireframe->setFlagName("wireframe", "w", 0);44 wireframe->saveable = true;45 videoBox->fill(wireframe);38 this->fullscreen = new CheckButton("Fullscreen-mode"); 39 this->fullscreen->setFlagName("windowed", "q", 1); 40 this->fullscreen->saveability(); 41 this->videoBox->fill(fullscreen); 42 this->wireframe = new CheckButton("WireFrame-mode"); 43 this->wireframe->setFlagName("wireframe", "w", 0); 44 this->wireframe->saveability(); 45 this->videoBox->fill(wireframe); 46 46 47 videoFrame->fill (videoBox); 47 this->advancedWindowCreate(); 48 this->videoBox->fill(this->advancedWindowGetButton()); 49 50 this->videoFrame->fill(videoBox); 51 } 52 53 /** 54 \brief Destructs the Video-stuff 55 */ 56 OrxonoxGuiVideo::~OrxonoxGuiVideo(void) 57 { 58 // nothing to do here. 48 59 } 49 60 … … 51 62 \return Returns the Video-frame 52 63 */ 53 Widget* OrxonoxGuiVideo::getWidget ()64 Widget* OrxonoxGuiVideo::getWidget(void) 54 65 { 55 return videoFrame;66 return this->videoFrame; 56 67 } 68 69 70 /** 71 \brief Creates a window, and all it contains for the Source-update. 72 */ 73 void OrxonoxGuiVideo::advancedWindowCreate(void) 74 { 75 // the button, that opens this Window. 76 this->advancedButton = new Button("advanced"); 77 78 // the Window itself 79 this->advancedWindow = new Window("Advanced Video Options"); 80 this->advancedWindow->setGroupName("advancedVideoOptions"); 81 82 this->advancedBox = new Box('v'); 83 84 // Advanced Performance Options 85 this->shadows = new CheckButton("Shadows"); 86 this->shadows->saveability(); 87 this->advancedBox->fill(this->shadows); 88 89 this->fog = new CheckButton("Fog"); 90 this->fog->saveability(); 91 this->advancedBox->fill(this->fog); 92 93 this->reflections = new CheckButton("Reflections"); 94 this->reflections->saveability(); 95 this->advancedBox->fill(this->reflections); 96 97 this->textures = new CheckButton("Textures"); 98 this->textures->saveability(); 99 this->advancedBox->fill(this->textures); 100 101 this->textureDetail = new Menu("Texture Detail", "low", "medium", "high", "lastItem"); 102 this->textureDetail->saveability(); 103 this->advancedBox->fill(this->textureDetail); 104 105 this->modelDetailLabel = new Label("Model Detail"); 106 this->advancedBox->fill(this->modelDetailLabel); 107 this->modelDetail = new Menu("Model Detail", "low", "medium", "high", "lastItem"); 108 this->modelDetail->saveability(); 109 this->advancedBox->fill(this->modelDetail); 110 111 this->antiAliasingLabel = new Label("Anti-Aliasing-depth:"); 112 this->advancedBox->fill(this->antiAliasingLabel); 113 this->antiAliasing = new Menu("Anti Aliasing", "0", "1", "2", "4", "8", "lastItem"); 114 this->antiAliasing->saveability(); 115 this->advancedBox->fill(this->antiAliasing); 116 117 this->filterMethodLabel = new Label("Filtering Method:"); 118 this->advancedBox->fill(this->filterMethodLabel); 119 this->filterMethod = new Menu("Filtering Method", "none", "linear", "bilinear", "trilinear", "anisortopic", "lastItem"); 120 this->filterMethod->saveability(); 121 this->advancedBox->fill(this->filterMethod); 122 123 this->closeButton = new Button("close"); 124 this->advancedBox->fill(this->closeButton); 125 126 this->advancedWindow->fill(advancedBox); 127 #ifdef HAVE_GTK2 128 this->advancedButton->connectSignal("button_press_event", this->advancedWindow, Window::windowOpen); 129 this->closeButton->connectSignal("button_press_event", this->advancedWindow, Window::windowClose); 130 this->advancedWindow->connectSignal("destroy", this->advancedWindow, Window::windowClose); 131 this->advancedWindow->connectSignal("delete_event", this->advancedWindow, Window::windowClose); 132 #endif /* HAVE_GTK2 */ 133 Window::addWindow(this->advancedWindow); 134 135 } 136 137 /** 138 \returns A Pointer to the Button of the UpdaterSourceWindow 139 */ 140 Button* OrxonoxGuiVideo::advancedWindowGetButton(void) 141 { 142 return this->advancedButton; 143 } 144 -
orxonox/trunk/src/gui/orxonox_gui_video.h
r3187 r3423 16 16 CheckButton* fullscreen; //!< CheckButton for fullscreen-mode 17 17 CheckButton* wireframe; //!< CheckButton for wireframe Mode. 18 19 // advanced-Performance-Options 20 Window* advancedWindow; //!< A Window to display advanced options. 21 Button* advancedButton; //!< A Button to open the Advanced Video Performance Window. 22 Box* advancedBox; //!< A Box to pack the options into. 23 CheckButton* shadows; //!< CheckButton for shadows 24 CheckButton* fog; //!< CheckButton for fog. 25 CheckButton* reflections; //!< CheckButton for reflections 26 CheckButton* textures; //!< CheckButton for textures 27 Menu* textureDetail; //!< Menu for the Texture-Detail. 28 29 Label* modelDetailLabel; //!< Label for model-detail. 30 Menu* modelDetail; //!< model-detail. 31 32 Label* antiAliasingLabel; //!< Label for the anti-aliasing mode. 33 Menu* antiAliasing; //!< Menu for the Antialiasing-mode. 34 35 Label* filterMethodLabel; //!< Label for filtering-Method. 36 Menu* filterMethod; //!< Menu for filtering Method. 37 38 Button* closeButton; //!< A Button to close the Advanced-settingsWindow. 39 40 Button* advancedWindowGetButton(void); 41 void advancedWindowCreate(void); 42 18 43 public: 19 OrxonoxGuiVideo ();20 ~OrxonoxGuiVideo ();44 OrxonoxGuiVideo(void); 45 ~OrxonoxGuiVideo(void); 21 46 22 Widget* getWidget ();47 Widget* getWidget(void); 23 48 }; 24 49 #endif /* _ORXONOX_GUI_VIDEO_H */ -
orxonox/trunk/src/gui/rc
r2595 r3423 120 120 # just listed in this document for the users reference. 121 121 122 widget_class "GtkWindow" style "window"123 widget_class "GtkFrame" style "window"124 widget_class "Gtk*EventBox" style "window"125 widget_class "GtkDialog" style "window"126 widget_class "GtkFileSelection" style "window"127 widget_class "*Gtk*Scale" style "scale"128 widget_class "*GtkCheckButton*" style "toggle_button"129 widget_class "*Gtk*Menu*" style "toggle_button"130 widget_class "*GtkRadioButton*" style "toggle_button"131 widget_class "*GtkButton*" style "button"132 widget_class "*Ruler" style "ruler"133 widget_class "*GtkText" style "text"134 widget_class "*GtkLabel" style "text"122 widget_class "GtkWindow" style "window" 123 widget_class "GtkFrame" style "window" 124 widget_class "Gtk*EventBox" style "window" 125 widget_class "GtkDialog" style "window" 126 widget_class "GtkFileSelection" style "window" 127 widget_class "*Gtk*Scale" style "scale" 128 widget_class "*GtkCheckButton*" style "toggle_button" 129 widget_class "*Gtk*Menu*" style "toggle_button" 130 widget_class "*GtkRadioButton*" style "toggle_button" 131 widget_class "*GtkButton*" style "button" 132 widget_class "*Ruler" style "ruler" 133 widget_class "*GtkText" style "text" 134 widget_class "*GtkLabel" style "text" 135 135 136 136 -
orxonox/trunk/src/importer/Makefile.in
r3396 r3423 89 89 CPP = @CPP@ 90 90 CPPFLAGS = @CPPFLAGS@ 91 CURL_CFLAGS = @CURL_CFLAGS@ 92 CURL_LIBS = @CURL_LIBS@ 91 93 CXX = @CXX@ 92 94 CXXDEPMODE = @CXXDEPMODE@ … … 104 106 EGREP = @EGREP@ 105 107 EXEEXT = @EXEEXT@ 108 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ 109 GTHREAD_LIBS = @GTHREAD_LIBS@ 106 110 GTK2_CFLAGS = @GTK2_CFLAGS@ 107 111 GTK2_LIBS = @GTK2_LIBS@ 112 HAVE_CURL_FALSE = @HAVE_CURL_FALSE@ 113 HAVE_CURL_TRUE = @HAVE_CURL_TRUE@ 114 HAVE_GTHREAD_FALSE = @HAVE_GTHREAD_FALSE@ 115 HAVE_GTHREAD_TRUE = @HAVE_GTHREAD_TRUE@ 108 116 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 109 117 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ … … 207 215 esac; \ 208 216 done; \ 209 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- foreignsrc/importer/Makefile'; \217 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/importer/Makefile'; \ 210 218 cd $(top_srcdir) && \ 211 $(AUTOMAKE) -- foreignsrc/importer/Makefile219 $(AUTOMAKE) --gnu src/importer/Makefile 212 220 .PRECIOUS: Makefile 213 221 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
Note: See TracChangeset
for help on using the changeset viewer.