gnome-rdp-0.3.0.9/0000755000175000017500000000000011566224114010554 500000000000000gnome-rdp-0.3.0.9/gnome-rdp.in0000644000175000017500000000010611566224111012706 00000000000000#!/bin/sh exec mono "@expanded_libdir@/@PACKAGE@/gnome-rdp.exe" "$@" gnome-rdp-0.3.0.9/configure.ac0000644000175000017500000000305111566224111012756 00000000000000dnl Warning: This is an automatically generated file, do not edit! dnl Process this file with autoconf to produce a configure script. AC_PREREQ([2.54]) AC_INIT([gnome-rdp], [0.3.0.9]) AM_INIT_AUTOMAKE([foreign]) AM_MAINTAINER_MODE dnl pkg-config AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR([You need to install pkg-config]) fi SHAMROCK_EXPAND_LIBDIR SHAMROCK_EXPAND_BINDIR SHAMROCK_EXPAND_DATADIR AC_PROG_INSTALL AC_PATH_PROG(GMCS, gmcs, no) if test "x$GMCS" = "xno"; then AC_MSG_ERROR([gmcs Not found]) fi AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Use 'DEBUG' Configuration [default=NO]]), enable_debug=yes, enable_debug=no) AM_CONDITIONAL(ENABLE_DEBUG, test x$enable_debug = xyes) if test "x$enable_debug" = "xyes" ; then CONFIG_REQUESTED="yes" fi AC_ARG_ENABLE(release, AC_HELP_STRING([--enable-release], [Use 'RELEASE' Configuration [default=YES]]), enable_release=yes, enable_release=no) AM_CONDITIONAL(ENABLE_RELEASE, test x$enable_release = xyes) if test "x$enable_release" = "xyes" ; then CONFIG_REQUESTED="yes" fi if test -z "$CONFIG_REQUESTED" ; then AM_CONDITIONAL(ENABLE_RELEASE, true) enable_release=yes fi dnl package checks, common for all configs PKG_CHECK_MODULES([GTK_SHARP_20], [gtk-sharp-2.0]) PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0]) PKG_CHECK_MODULES([GLADE_SHARP_20], [glade-sharp-2.0]) PKG_CHECK_MODULES([GNOME_KEYRING_SHARP_10], [gnome-keyring-sharp-1.0]) dnl package checks, per config AC_CONFIG_FILES([ gnome-rdp Makefile ]) AC_OUTPUT gnome-rdp-0.3.0.9/AssemblyInfo.cs0000644000175000017500000000322511566224110013414 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following attributes. // Change them to the values specific to your project. [assembly: AssemblyTitle("gnome-rdp")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("1.0.*")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] gnome-rdp-0.3.0.9/missing0000755000175000017500000002623311331674343012104 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gnome-rdp-0.3.0.9/Makefile.am0000644000175000017500000000034511566224111012527 00000000000000 EXTRA_DIST = expansions.m4 #Warning: This is an automatically generated file, do not edit! if ENABLE_DEBUG SUBDIRS = . endif if ENABLE_RELEASE SUBDIRS = . endif # Include project specific makefile include gnome-rdp.makegnome-rdp-0.3.0.9/install-sh0000755000175000017500000003253711331674343012515 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gnome-rdp-0.3.0.9/app.desktop0000644000175000017500000000013511566224110012642 00000000000000[Desktop Entry] Encoding=UTF-8 Type=Application Name=gnome-rdp Exec=gnome-rdp Terminal=false gnome-rdp-0.3.0.9/Program.cs0000644000175000017500000001222111566224110012424 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Contributors // Stephen Phillips using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Threading; using Gtk; using GnomeRDP.Identies; using GnomeRDP.Database; using GnomeRDP.ApplicationDataFiles; using GnomeRDP.Logging; using GnomeRDP.Rdp; using GnomeRDP.Profiles; using GnomeRDP.Sessions; namespace GnomeRDP { public static class Program { [ThreadStatic] private static bool isMainThread; private static MainWindow mainWindow; private static void ShowVersion() { Console.WriteLine("GnomeRDP 3.0 alpha"); } private static void ShowHelp() { ShowVersion(); Console.WriteLine("Usage is mono gnome-rdp.exe [arguments]"); Console.WriteLine(); Console.WriteLine(" --help, -h Displays this help message"); Console.WriteLine(" --version, -v Displays the program version"); Console.WriteLine(" --start-hidden, -m Starts GnomeRDP with the main window hidden"); Console.WriteLine(" --databasepath Old Sqlite configuration to import from"); Console.WriteLine(" --configpath, -c Override location to configuration folder"); } public static void Main (string[] args) { bool startHidden; ParseArgs (args, out startHidden); Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); Log.LogLevelFilter = LogLevel.Verbose; Log.Added += (sender, e) => Trace.WriteLine(string.Format("{0}: {1}", e.logLevel, e.message)); FileManager.VerifyApplicationDataFolderExists(); identityCollection = new IdentityCollection(); profileCollection = new ProfileCollection(); sessionCollection = new SessionCollection(); if (sessionCollection.Count == 0) Sqlite.ImportSessions(); isMainThread = true; Application.Init(); mainWindow = new MainWindow(); mainWindow.Show(); if (startHidden) mainWindow.Visible = false; Application.Run(); isClosed = true; } private static void ParseArgs (string[] args, out bool startHidden) { startHidden = false; // previousArg allows for arguments that come in pairs string previousArg = null; foreach (var arg in args) { if (previousArg == null) { switch (arg) { case "--start-hidden": case "-m": startHidden = true; break; case "--version": case "-v": ShowVersion(); return; case "--help": case "-h": ShowHelp(); return; // In these cases, we just want to save the argument // because the next argument has the details we need. case "--databasepath": case "--configpath": case "-c": previousArg = arg; break; } } else { // Process the second of the pair of arguments switch (previousArg) { case "--databasepath": Sqlite.SetDatabasePath(arg); break; case "--configpath": case "-c": FileManager.SetApplicationDataFolderPath(arg); break; } previousArg = null; } } } private static SessionCollection sessionCollection; public static SessionCollection SessionCollection { get { return sessionCollection; } } private static ProfileCollection profileCollection; public static ProfileCollection ProfileCollection { get { return profileCollection; } } private static IdentityCollection identityCollection; public static IdentityCollection IdentityCollection { get { return identityCollection; } } public static string CreateID() { string id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()); if (id.EndsWith("==")) id = id.Substring(0, id.Length - 2); return id; } public static void Invoke(System.Action action, TimeSpan timeout) { if (isMainThread) { action(); return; } ManualResetEvent complete = new ManualResetEvent(false); GLib.Timeout.Add(0, () => { action(); complete.Set(); return false; }); if (complete.WaitOne(timeout) == false) throw new TimeoutException(); } public static void ToggleMainWindowVisible() { GLib.Timeout.Add(0, () => { mainWindow.Visible = !mainWindow.Visible; return false; }); } public static void SetMainWindowVisible(bool visible) { GLib.Timeout.Add(0, () => { mainWindow.Visible = visible; return false; }); } private static bool isClosed = false; public static bool IsClosed { get { return isClosed; } } } }gnome-rdp-0.3.0.9/Protocol.cs0000644000175000017500000000145111566224110012621 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; namespace GnomeRDP { public enum Protocol : byte { rdp, vnc, ssh, } } gnome-rdp-0.3.0.9/Profiles/0000755000175000017500000000000011566224114012337 500000000000000gnome-rdp-0.3.0.9/Profiles/ProfileCollection.cs0000644000175000017500000000423411566224110016221 00000000000000// // ProfileCollection.cs // // Author: // jmichels <${AuthorEmail}> // // Copyright (c) 2010 jmichels // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections; using System.Collections.Generic; using GnomeRDP.ApplicationDataFiles; using GnomeRDP.Rdp; using GnomeRDP.Vnc; using GnomeRDP.Ssh; namespace GnomeRDP.Profiles { public class ProfileCollection : Collection { protected override Profile[] LoadItems() { var items = new List(); items.AddRange(FileManager.LoadRdpProfiles()); items.AddRange(FileManager.LoadVncProfiles()); items.AddRange(FileManager.LoadSshProfiles()); return items.ToArray(); } public void Save(Protocol protocol) { switch (protocol) { case Protocol.rdp: FileManager.SaveRdpProfiles(GetProfiles()); break; case Protocol.vnc: FileManager.SaveVncProfiles(GetProfiles()); break; case Protocol.ssh: FileManager.SaveSshProfiles(GetProfiles()); break; default: throw new ArgumentException(string.Format("Unknown protocol {0}", protocol)); } } public override void Save () { FileManager.SaveRdpProfiles(GetProfiles()); FileManager.SaveVncProfiles(GetProfiles()); FileManager.SaveSshProfiles(GetProfiles()); } public IEnumerable GetProfiles() where U : Profile { foreach (var item in Items) { if (item is U) yield return (U)item; } } } } gnome-rdp-0.3.0.9/Profiles/ProfilesWidget.cs0000644000175000017500000001711411566224110015535 00000000000000// // ProfilesWidget.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using System.ComponentModel; using Gtk; using Gdk; using GnomeRDP.Identies; using GnomeRDP.Sessions; using GnomeRDP.Logging; using GnomeRDP.Rdp; using GnomeRDP.Ssh; using GnomeRDP.Vnc; namespace GnomeRDP.Profiles { [ToolboxItem(true)] public partial class ProfilesWidget : Bin { private Menu menu = new Menu(); public ProfilesWidget () { this.Build (); Initialize(); } private static class Columns { public const int id = 0; public const int icon = 1; public const int protocol = 2; public const int description = 3; } private void Initialize() { treeView.AppendColumn(new TreeViewColumn(null, new CellRendererPixbuf(), "pixbuf", Columns.icon)); treeView.AppendColumn(new TreeViewColumn("Protocol", new CellRendererText(), "text", Columns.protocol)); treeView.AppendColumn(new TreeViewColumn("Description", new CellRendererText(), "text", Columns.description)); treeView.Selection.Mode = SelectionMode.Multiple; treeView.Model = new ListStore(typeof(string), typeof(Pixbuf), typeof(string), typeof(string)); treeView.RulesHint = true; Resync(); // Initialize Context Menu var propertiesMenuItem = new MenuItem("Properties"); propertiesMenuItem.Activated += OnMenuPropertiesActivated; menu.Add(propertiesMenuItem); var deleteMenuItem = new MenuItem("Delete"); deleteMenuItem.Activated += OnMenuDeleteActivated; menu.Add(deleteMenuItem); } private void Resync() { try { ListStore listStore = (ListStore)treeView.Model; listStore.Clear(); foreach (var item in Program.ProfileCollection.Items) { listStore.AppendValues(item.Id, item.GetIcon(true), item.Protocol.ToString(), item.Description); } } catch { } } private Profile[] GetSelectedProfiles() { var items = new List(); try { foreach (var path in treeView.Selection.GetSelectedRows()) { TreeIter iter; treeView.Model.GetIter(out iter, path); string id = (string)treeView.Model.GetValue(iter, Columns.id); items.Add(Program.ProfileCollection.Find(id)); } return items.ToArray(); } catch { return new Profile[0]; } } [GLib.ConnectBefore()] protected virtual void OnTreeViewButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { try { if (args.Event.Button != 3) { args.RetVal = false; return; } TreePath path; if (treeView.GetPathAtPos((int)args.Event.X, (int)args.Event.Y, out path) == false) return; treeView.GrabFocus(); treeView.SetCursor(path, treeView.Columns[0], false); menu.ShowAll(); menu.Popup(); args.RetVal = true; } catch { } } protected virtual void OnMenuPropertiesActivated (object sender, System.EventArgs e) { try { foreach (var profile in GetSelectedProfiles()) { bool result; switch (profile.Protocol) { case Protocol.rdp: result = EditRdpProfile((RdpProfile)profile); break; case Protocol.vnc: result = EditVncProfile((VncProfile)profile); break; case Protocol.ssh: result = EditSshProfile((SshProfile)profile); break; default: result = false; break; } if (result == true) Program.ProfileCollection.Save(profile.Protocol); } } catch(Exception ex) { Log.Add(ex); } Resync(); } private bool EditRdpProfile(RdpProfile profile) { RdpProfileDialog dlg = new RdpProfileDialog(profile); try { if (dlg.Run() != (int)ResponseType.Ok) return false; profile.Description = dlg.Description; profile.RdpVersion = dlg.RdpVersion; profile.KeyboardLayout = dlg.KeyboardLayout; profile.Width = dlg.RdpWidth; profile.Height = dlg.RdpHeight; profile.RdpColorDepth = dlg.RdpColorDepth; profile.RdpExperience = dlg.RdpExperience; profile.RdpSound = dlg.RdpSound; profile.FullScreen = dlg.FullScreen; profile.EnableRdpCompression = dlg.EnableCompression; profile.AttachToConsole = dlg.AttachToConsole; return true; } catch(Exception ex) { Log.Add(ex); return false; } finally { dlg.Destroy(); } } private bool EditVncProfile(VncProfile profile) { VncProfileDialog dlg = new VncProfileDialog(profile); try { if (dlg.Run() != (int)ResponseType.Ok) return false; profile.Description = dlg.Description; profile.ColorDepth = dlg.ColorDepth; profile.Encoding = dlg.Encoding; profile.FullScreen = dlg.FullScreen; profile.Shared = dlg.Shared; profile.ViewOnly = dlg.ViewOnly; return true; } catch(Exception ex) { Log.Add(ex); return false; } finally { dlg.Destroy(); } } private bool EditSshProfile(SshProfile profile) { SshProfileDialog dlg = new SshProfileDialog(profile); try { if (dlg.Run() != (int)ResponseType.Ok) return false; profile.Description = dlg.Description; profile.FullScreen = dlg.FullScreen; profile.X11Forwarding = dlg.X11Forwarding; return true; } catch(Exception ex) { Log.Add(ex); return false; } finally { dlg.Destroy(); } } protected virtual void OnMenuDeleteActivated (object sender, System.EventArgs e) { try { foreach (var profile in GetSelectedProfiles()) { MessageDialog dlg = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, "Are you sure you want to delete {0} profile {1}?", profile.Protocol, profile.Description); try { if (dlg.Run() != (int)ResponseType.Yes) continue; } finally { dlg.Destroy(); } Program.ProfileCollection.Remove(profile); } } catch(Exception ex) { Log.Add(ex); } Resync(); } protected virtual void OnNewRdpActionActivated (object sender, System.EventArgs e) { try { RdpProfile profile = new RdpProfile(); if (EditRdpProfile(profile)) Program.ProfileCollection.Add(profile); } catch (Exception ex) { Log.Add(ex); } Resync(); } protected virtual void OnNewVncActionActivated (object sender, System.EventArgs e) { try { VncProfile profile = new VncProfile(); if (EditVncProfile(profile)) Program.ProfileCollection.Add(profile); } catch (Exception ex) { Log.Add(ex); } Resync(); } protected virtual void OnNewSshActionActivated (object sender, System.EventArgs e) { try { SshProfile profile = new SshProfile(); if (EditSshProfile(profile)) Program.ProfileCollection.Add(profile); } catch (Exception ex) { Log.Add(ex); } Resync(); } } } gnome-rdp-0.3.0.9/Profiles/Profile.cs0000644000175000017500000000530011566224110014200 00000000000000// // Profile.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using Gdk; using GnomeRDP.Rdp; using GnomeRDP.Vnc; using GnomeRDP.Ssh; namespace GnomeRDP.Profiles { public abstract class Profile : IIdType, IEquatable, ISimiliar { public Profile(Protocol protocol, string id, string description) { this.protocol = protocol; this.id = id; this.description = description; } public Profile(Protocol protocol, Dictionary dictionary) { this.protocol = protocol; this.id = dictionary[Fields.id]; this.description = dictionary[Fields.description]; } protected static class Fields { public const string protocol = "Protocol"; public const string id = "Id"; public const string description = "Description"; } protected readonly Protocol protocol; public Protocol Protocol { get { return protocol; } } private readonly string id; public string Id { get { return id; } } private string description; public string Description { get { return description; } set { description = value; } } public static Pixbuf GetIcon(Profile item, bool small) { if (item == null) return null; switch (item.Protocol) { case Protocol.rdp: return ResourceLoader.Find(small ? ResourceLoader.Icons.rdpSmall: ResourceLoader.Icons.rdp); case Protocol.ssh: return ResourceLoader.Find(small ? ResourceLoader.Icons.sshSmall: ResourceLoader.Icons.ssh); case Protocol.vnc: return ResourceLoader.Find(small ? ResourceLoader.Icons.vncSmall: ResourceLoader.Icons.vnc); default: return null; } } public Pixbuf GetIcon(bool small) { return GetIcon(this, small); } public bool Equals(Profile other) { return id == other.id; } public abstract bool IsLike(Profile other); } } gnome-rdp-0.3.0.9/Ssh/0000755000175000017500000000000011566224110011305 500000000000000gnome-rdp-0.3.0.9/Ssh/SshProfile.cs0000644000175000017500000000602611566224110013636 00000000000000// // SshProfile.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Text; using System.Collections; using System.Collections.Generic; using GnomeRDP.Profiles; using GnomeRDP.Identies; namespace GnomeRDP.Ssh { public class SshProfile : Profile { public SshProfile () : base(Protocol.ssh, Program.CreateID(), "") { } private SshProfile(Dictionary dictionary) : base(Protocol.ssh, dictionary) { fullScreen = bool.Parse(dictionary[Fields.fullScreen]); x11Forwarding = bool.Parse(dictionary[Fields.x11Forwarding]); } private new static class Fields { public const string fullScreen = "FullScreen"; public const string x11Forwarding = "X11Forwarding"; } public static SshProfile Create(Dictionary dictionary) { return new SshProfile(dictionary); } public static Dictionary ToDictionary(SshProfile item) { Dictionary dictionary = new Dictionary(); dictionary[Profile.Fields.id] = item.Id; dictionary[Profile.Fields.description] = item.Description; dictionary[Fields.fullScreen] = item.FullScreen.ToString(); dictionary[Fields.x11Forwarding] = item.X11Forwarding.ToString(); return dictionary; } private bool fullScreen = false; public bool FullScreen { get { return fullScreen; } set { fullScreen = value; } } private bool x11Forwarding = false; public bool X11Forwarding { get { return x11Forwarding; } set { x11Forwarding = value; } } public override bool IsLike (Profile other) { var sshOther = other as SshProfile; if(sshOther == null) return false; return FullScreen == sshOther.FullScreen && X11Forwarding == sshOther.X11Forwarding; } public string ToCommandLineArguements(string server, Identity identity) { StringBuilder text = new StringBuilder(); if (identity != null && string.IsNullOrEmpty(identity.Username) ==false) { text.AppendFormat(" -l {0}", identity.Username); } if (X11Forwarding) text.AppendFormat(" -X"); text.Append(" -e none -t"); text.AppendFormat(" {0}", server); return text.ToString(); } } } gnome-rdp-0.3.0.9/Ssh/SshProfileDialog.cs0000644000175000017500000000273611566224110014762 00000000000000// // SshProfileDialog.cs // // Author: // James P Michels III // // Copyright (c) 2010 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using GnomeRDP.Ssh; namespace GnomeRDP { public partial class SshProfileDialog : Gtk.Dialog { public SshProfileDialog (SshProfile profile) { this.Build (); txtDescription.Text = profile.Description; chkFullScreen.Active = profile.FullScreen; chkX11Forwarding.Active = profile.X11Forwarding; } public string Description { get { return txtDescription.Text; } } public bool FullScreen { get { return chkFullScreen.Active; } } public bool X11Forwarding { get { return chkX11Forwarding.Active; } } } } gnome-rdp-0.3.0.9/Collection.cs0000644000175000017500000000515311566224110013116 00000000000000// // Collection.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; namespace GnomeRDP { public abstract class Collection where T : class, IIdType, IEquatable { protected readonly Dictionary items = new Dictionary(); public Collection() { T[] items = LoadItems(); foreach (var item in items) { this.items[item.Id] = item; } } protected abstract T[] LoadItems(); public void Add(T item) { lock(this.items) { this.items[item.Id] = item; } Save(); } public void Remove(T item) { lock(this.items) { this.items.Remove(item.Id); } Save(); } public T Find(string id) { lock(this.items) { T item; this.items.TryGetValue(id, out item); return item; } } public T[] ToArray() { lock(this.items) { T[] array = new T[this.items.Values.Count]; this.items.Values.CopyTo(array, 0); return array; } } public int Count { get { lock (this.items) { return this.items.Count; } } } public IEnumerable Items { get { T[] items = ToArray(); foreach (var item in items) { yield return item; } } } // HACK workaround for mono 2.4.x compiler bug. remove after moving all deployments to mono 2.6 or higher. public T FindSimiliarOrAdd(T t) { ISimiliar u = (ISimiliar) t; foreach (var item in ToArray()) { if (u.IsLike(item)) return item; } Add(t); return t; } // public U FindSimiliarOrAdd(U u) where U : T ,ISimiliar // { // foreach (var item in ToArray()) // { // if (u.IsLike(item)) return (U)item; // } // // Add(u); // // return u; // } public abstract void Save(); } } gnome-rdp-0.3.0.9/ResourceLoader.cs0000644000175000017500000000363511566224110013744 00000000000000// // ResourceLoader.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using Gdk; namespace GnomeRDP { public static class ResourceLoader { private static readonly Dictionary pixBufs = new Dictionary(); public static class Icons { public const string gnomeRdp = "GnomeRDP.Resources.gnome-rdp-icon.png"; public const string folderSmall = "GnomeRDP.Resources.group_16.png"; public const string rdpSmall = "GnomeRDP.Resources.rdp_16.png"; public const string rdp = "GnomeRDP.Resources.rdp.png"; public const string sshSmall = "GnomeRDP.Resources.ssh_16.png"; public const string ssh = "GnomeRDP.Resources.ssh.png"; public const string vncSmall = "GnomeRDP.Resources.vnc_16.png"; public const string vnc = "GnomeRDP.Resources.vnc.png"; } public static Pixbuf Find(string name) { Pixbuf value; lock(pixBufs) { if (pixBufs.TryGetValue(name, out value) == false) { value = Pixbuf.LoadFromResource(name); pixBufs[name] = value; } } return value; } } } gnome-rdp-0.3.0.9/Sessions/0000755000175000017500000000000011566224110012356 500000000000000gnome-rdp-0.3.0.9/Sessions/Session.cs0000644000175000017500000001054111566224110014251 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Collections.Generic; using GnomeRDP.Identies; using GnomeRDP.Profiles; using GnomeRDP.Rdp; namespace GnomeRDP.Sessions { public class Session : IIdType, IEquatable { public const string defaultGroupName = "Default"; public Session () : this(Program.CreateID(), null, null, null, null) { } public Session(string server, string identityId, string profileId, string group) : this(Program.CreateID(), server, identityId, profileId, group) { } private Session(string id, string server, string identityId, string profileId, string group) { this.id = id; this.server = server; this.identityId = identityId; this.profileId = profileId; this.group = group; } private static class Fields { public const string id = "Id"; public const string server = "Server"; public const string identityId = "IdentityId"; public const string profileId = "ProfileId"; public const string group = "Group"; } public static Session Create(Dictionary dictionary) { string id = dictionary[Fields.id]; string server = dictionary[Fields.server]; string identityId = dictionary[Fields.identityId]; string profileId = dictionary[Fields.profileId]; string group = dictionary[Fields.group]; return new Session(id, server, identityId, profileId, group); } public static Dictionary ToDictionary(Session item) { Dictionary dictionary = new Dictionary(); dictionary[Fields.id] = item.Id; dictionary[Fields.server] = item.Server; dictionary[Fields.identityId] = item.identityId; dictionary[Fields.profileId] = item.profileId; dictionary[Fields.group] = item.Group; return dictionary; } public bool Equals(Session other) { return id == other.id; } public override int GetHashCode () { return id.GetHashCode(); } private readonly string id; public string Id { get { return id; } } private string server; public string Server { get { return server; } set { server = value; } } private string identityId = null; public Identity Identity { get { return Program.IdentityCollection.Find(identityId); } set { identityId = value.Id; } } private string profileId; public Profile Profile { get { return Program.ProfileCollection.Find(profileId); } set { profileId = value.Id; } } private string group; public string Group { get { return group; } set { group = value; } } public string MenuFormat { get { Identity identity = Identity; string identityDescription = identity == null ? null : identity.Description; string identitySeperator = string.IsNullOrEmpty(identityDescription) ? null : " - "; Profile profile = Profile; string profileDescription = profile == null ? null : profile.Description; string profileSeperator = string.IsNullOrEmpty(profileDescription) ? null : " - "; return string.Format("{0}{1}{2}{3}{4}", server, identitySeperator, identityDescription, profileSeperator, profileDescription); } } public string Tooltip { get { Identity identity = Identity; string domainUser = identity == null ? null : string.Format(@"{0}\{1}", identity.Domain, identity.Username); Profile profile = Profile; string protocol = profile == null ? null : profile.Protocol.ToString(); string description = profile == null ? null : profile.Description; return string.Format("{0}@{1}://{2} {3}", domainUser, protocol, server, description); } } } } gnome-rdp-0.3.0.9/Sessions/SessionsWidget.cs0000644000175000017500000003023111566224110015576 00000000000000// // SessionsWidget.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using Gtk; using Gdk; using GnomeRDP.Identies; using GnomeRDP.Sessions; using GnomeRDP.Logging; using GnomeRDP.Profiles; using GnomeRDP.Rdp; using GnomeRDP.Ssh; using GnomeRDP.Vnc; namespace GnomeRDP.Sessions { [ToolboxItem(true)] public partial class SessionsWidget : Bin { private Menu menu = new Menu(); public SessionsWidget () { this.Build (); Initialize(); } private static class Columns { public const int item = 0; public const int icon = 1; public const int protocol = 2; public const int server = 3; public const int identity = 4; public const int profile = 5; public const int group = 2; } private void Initialize() { // Columns treeView.AppendColumn(new TreeViewColumn(null, new CellRendererPixbuf(), "pixbuf", Columns.icon)); treeView.AppendColumn(new TreeViewColumn("Protocol", new CellRendererText(), "text", Columns.protocol)); treeView.AppendColumn(new TreeViewColumn("Server", new CellRendererText(), "text", Columns.server)); treeView.AppendColumn(new TreeViewColumn("Identity", new CellRendererText(), "text", Columns.identity)); treeView.AppendColumn(new TreeViewColumn("Profile", new CellRendererText(), "text", Columns.profile)); treeView.Selection.Mode = SelectionMode.Single; treeView.RowActivated += (s, e) => ConnectSelected(); // Model TreeStore treeStore = new TreeStore(typeof(object), typeof(Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string)); treeStore.AppendValues(null, ResourceLoader.Find(ResourceLoader.Icons.folderSmall), Session.defaultGroupName); treeStore.SetSortColumnId(Columns.group, SortType.Ascending); treeStore.SetSortFunc(Columns.group, TreeIterCompareCallback); treeView.Model = treeStore; // Drag Drop TargetEntry[] targets = new TargetEntry[] { new TargetEntry("session", TargetFlags.Widget, 0) }; treeView.EnableModelDragSource(ModifierType.Button1Mask, targets, DragAction.Copy); treeView.EnableModelDragDest(targets, DragAction.Private); treeView.DragDataReceived += TreeView_DragDataReceived; // Tweaks treeView.EnableTreeLines = true; treeView.HeadersVisible = false; treeView.RulesHint = true; // Initialize Context Menu var propertiesMenuItem = new MenuItem("Properties"); propertiesMenuItem.Activated += OnMenuPropertiesActivated; menu.Add(propertiesMenuItem); var deleteMenuItem = new MenuItem("Delete"); deleteMenuItem.Activated += OnMenuDeleteActivated; menu.Add(deleteMenuItem); // Load data into the tree. Resync(); } private void TreeView_DragDataReceived(object o, DragDataReceivedArgs args) { var selectedItems = GetSelectedItems(); if (selectedItems.Length != 1) return; Session session = selectedItems[0] as Session; if (session == null) return; TreePath path; TreeViewDropPosition pos; treeView.GetDestRowAtPos(args.X, args.Y, out path, out pos); TreeStore treeStore = (TreeStore)treeView.Model; TreeIter iter; treeStore.GetIter(out iter, path); TreeIter groupIter; if (TryFindGroup(treeStore, iter, out groupIter) == false) return; session.Group = (string)treeStore.GetValue(groupIter, Columns.group); Program.SessionCollection.Save(); Resync(); } private static int TreeIterCompareCallback(TreeModel model, TreeIter leftIter, TreeIter rightIter) { TreeStore treeStore = (TreeStore)model; string left = null; TreeIter leftGroup; if (TryFindGroup(treeStore, leftIter, out leftGroup)) { left = string.Format("{0} {1}", treeStore.GetValue(leftGroup, Columns.group), treeStore.GetValue(leftIter, Columns.server)); } string right = null; TreeIter rightGroup; if (TryFindGroup(treeStore, rightIter, out rightGroup)) { right = string.Format("{0} {1}", treeStore.GetValue(rightGroup, Columns.group), treeStore.GetValue(rightIter, Columns.server)); } return string.Compare(left, right); } private void Resync() { try { TreeStore treeStore = (TreeStore)treeView.Model; var deletedSessions = GetSessions(treeStore); foreach (var item in Program.SessionCollection.Items) { deletedSessions.Remove(item); string group = item.Group; TreeIter groupIter = FindGroup(string.IsNullOrEmpty(group) ? Session.defaultGroupName : group); object[] values = new object[] { item, Profile.GetIcon(item.Profile, true), item.Profile == null ? null : item.Profile.Protocol.ToString(), item.Server, item.Identity == null ? "" : item.Identity.ToString(), item.Profile == null ? "" : item.Profile.Description }; TreeIter itemIter; if (TryFindSession(item, out itemIter) == false) { treeStore.AppendValues(groupIter, values); } else { TreeIter parent; if (treeStore.IterParent(out parent, itemIter) == false || treeStore.GetPath(parent).Compare(treeStore.GetPath(groupIter)) != 0) { treeStore.Remove(ref itemIter); treeStore.AppendValues(groupIter, values); } else { treeStore.SetValues(itemIter, values); } } } foreach (var session in deletedSessions) { TreeIter iter; if (TryFindSession(session, out iter)) { treeStore.Remove(ref iter); } } } catch (Exception ex) { Log.Add(ex); } } private TreeIter FindGroup(string value) { TreeStore treeStore = (TreeStore)treeView.Model; foreach (var iter in EnumerateChildren(treeStore)) { string group = (string)treeStore.GetValue(iter, Columns.group); if (group == value) return iter; } return treeStore.AppendValues(null, ResourceLoader.Find(ResourceLoader.Icons.folderSmall), value); } private static bool TryFindGroup(TreeStore treeStore, TreeIter iter, out TreeIter groupIter) { groupIter = iter; while (treeStore.GetValue(groupIter, Columns.item) as Session != null) { if (treeStore.IterParent(out groupIter, groupIter) == false ) { groupIter = TreeIter.Zero; return false; } } return true; } private bool TryFindSession(Session item, out TreeIter iter) { TreeStore treeStore = (TreeStore)treeView.Model; foreach (var sessionIter in EnumerateSessions(treeStore)) { var session = (Session)treeStore.GetValue(sessionIter, Columns.item); if (session.Id == item.Id) { iter = sessionIter; return true; } } iter = TreeIter.Zero; return false; } private static IEnumerable EnumerateChildren(TreeStore treeStore) { TreeIter iter; if (treeStore.IterChildren(out iter) == false) yield break; do { yield return iter; } while (treeStore.IterNext(ref iter)); } private static IEnumerable EnumerateChildren(TreeStore treeStore, TreeIter parent) { TreeIter iter; if (treeStore.IterChildren(out iter, parent) == false) yield break; do { yield return iter; } while (treeStore.IterNext(ref iter)); } private static HashSet GetSessions(TreeStore treeStore) { HashSet sessions = new HashSet(); foreach (var iter in EnumerateSessions(treeStore)) { var session = (Session)treeStore.GetValue(iter, Columns.item); sessions.Add(session); } return sessions; } private static IEnumerable EnumerateSessions(TreeStore treeStore) { foreach (var groupIter in EnumerateChildren(treeStore)) { foreach (var sessionIter in EnumerateChildren(treeStore, groupIter)) { var value = treeStore.GetValue(sessionIter, Columns.item); if (value is Session) yield return sessionIter; } } } private object[] GetSelectedItems() { List items = new List(); try { foreach (var path in treeView.Selection.GetSelectedRows()) { TreeIter iter; treeView.Model.GetIter(out iter, path); items.Add(treeView.Model.GetValue(iter, Columns.item)); } return items.ToArray(); } catch { return new Session[0]; } } [GLib.ConnectBefore()] protected virtual void OnTreeViewButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { try { if (args.Event.Button != 3) { args.RetVal = false; return; } TreePath path; if (treeView.GetPathAtPos((int)args.Event.X, (int)args.Event.Y, out path) == false) return; treeView.GrabFocus(); treeView.SetCursor(path, treeView.Columns[0], false); menu.ShowAll(); menu.Popup(); args.RetVal = true; } catch { } } protected virtual void OnMenuPropertiesActivated (object sender, System.EventArgs e) { try { foreach (var item in GetSelectedItems().Where(i => i is Session)) { Session session = (Session)item; SessionDialog dlg = new SessionDialog(session); try { if (dlg.Run() == (int)ResponseType.Ok) { session.Server = dlg.Server; session.Identity = dlg.Identity; session.Profile = dlg.Profile; session.Group = dlg.Group; Program.SessionCollection.Save(); } } catch(Exception ex) { Log.Add(ex); } finally { dlg.Destroy(); } } } catch(Exception ex) { Log.Add(ex); } Resync(); } protected virtual void OnMenuDeleteActivated (object sender, System.EventArgs e) { try { HashSet sessions = new HashSet(); foreach (var item in GetSelectedItems()) { Session session = item as Session; if (session != null) sessions.Add(session); } if (sessions.Count == 0) return; MessageDialog dlg = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, "Are you sure you want to delete these {0} item(s)?", sessions.Count); try { if(dlg.Run() != (int)ResponseType.Yes) return; foreach (var session in sessions) { Program.SessionCollection.Remove(session); } } finally { dlg.Destroy(); } } catch(Exception ex) { Log.Add(ex); } Resync(); } protected virtual void OnNewSessionActionActivated (object sender, System.EventArgs e) { SessionDialog dlg = new SessionDialog(); try { if (dlg.Run() != (int)ResponseType.Ok) return; Session session = new Session(dlg.Server, dlg.Identity.Id, dlg.Profile.Id, dlg.Group); Program.SessionCollection.Add(session); } catch (Exception ex) { Log.Add(LogLevel.Error, ex.Message); } finally { dlg.Destroy(); } Resync(); } protected virtual void OnConnectActionActivated (object sender, System.EventArgs e) { ConnectSelected(); } private void ConnectSelected() { try { foreach (var item in GetSelectedItems().Where(i => i is Session)) { Program.SessionCollection.Connect((Session)item); } } catch(Exception ex) { Log.Add(ex); } } protected virtual void OnVisibilityNotifyEvent (object o, Gtk.VisibilityNotifyEventArgs args) { try { if (args.Event.State == VisibilityState.Unobscured) { Resync(); } } catch (Exception ex) { Log.Add(ex); } } } } gnome-rdp-0.3.0.9/Sessions/SessionHost.cs0000644000175000017500000001016611566224110015112 00000000000000// // SessionHost.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using System.Threading; using System.Diagnostics; using System.IO; using Mono.Unix; using GnomeRDP.Logging; namespace GnomeRDP { public class SessionHost { private readonly Process process; public SessionHost (string file, string args, string safeArgs) { Log.Add(LogLevel.Information, string.Format("Creating process for {0} {1}", file, safeArgs)); process = new Process(); process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = false; process.StartInfo.FileName = file; process.StartInfo.Arguments = args; process.StartInfo.WorkingDirectory = "/"; new Thread(new ThreadStart(WorkerThread)).Start(); } private void WorkerThread() { try { process.EnableRaisingEvents = true; process.OutputDataReceived += (s, e) => { string data = e.Data; if (string.IsNullOrEmpty(data)) return; Log.Add(LogLevel.Information, data); }; process.ErrorDataReceived += (s, e) => { string data = e.Data; if (string.IsNullOrEmpty(data)) return; Log.Add(LogLevel.Error, data); }; process.WaitForInputIdle(); if (process.Start() == false) throw new Exception("Process failed to start"); process.BeginOutputReadLine(); process.BeginErrorReadLine(); while (process.WaitForExit(1000) == false) { if (Program.IsClosed) { process.CloseMainWindow(); break; } } process.Close(); Log.Add( LogLevel.Information, "Process completed"); } catch (Exception ex) { Log.Add(ex); } finally { process.Dispose(); } } } public class SessionHostConsole { private readonly Process process; private const string terminalProgram = "gnome-terminal"; public SessionHostConsole (string file, string args, string safeArgs, bool fullScreen) { Log.Add(LogLevel.Information, string.Format("Creating process for {0} {1}", file, safeArgs)); string prefix = (fullScreen) ? "--full-screen" : ""; string terminalArgs = string.Format("{0} --command=\"{1} {2}\"", prefix, file, args); process = new Process(); process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = false; process.StartInfo.RedirectStandardOutput = false; process.StartInfo.RedirectStandardError = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.FileName = terminalProgram; process.StartInfo.Arguments = terminalArgs; process.StartInfo.WorkingDirectory = "/"; new Thread(new ThreadStart(WorkerThread)).Start(); } private void WorkerThread() { try { process.WaitForInputIdle(); if (process.Start() == false) throw new Exception("Process failed to start"); while (process.WaitForExit(1000) == false) { if (Program.IsClosed) { process.CloseMainWindow(); break; } } process.Close(); Log.Add( LogLevel.Information, "Process completed"); } catch (Exception ex) { Log.Add(ex); } finally { process.Dispose(); } } } } gnome-rdp-0.3.0.9/Sessions/SessionCollection.cs0000644000175000017500000000545311566224110016273 00000000000000// // SessionCollection.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using GnomeRDP.ApplicationDataFiles; using GnomeRDP.Database; using GnomeRDP.Rdp; using GnomeRDP.Identies; using GnomeRDP.Profiles; namespace GnomeRDP.Sessions { public class SessionCollection : Collection { protected override Session[] LoadItems() { return FileManager.LoadSessions(); } public override void Save() { FileManager.SaveSessions(ToArray()); } public IEnumerable Groups { get { HashSet groups = new HashSet(); foreach (var item in Items) { string group = item.Group; if (string.IsNullOrEmpty(group)) continue; if (groups.Contains(group)) continue; groups.Add(group); yield return group; } } } public void Connect(Session session) { Console.WriteLine(string.Format("Session start placeholder. Session {0} activated", session)); if (session.Profile is Rdp.RdpProfile) { var rdpProfile = (Rdp.RdpProfile)session.Profile; string args = rdpProfile.ToCommandLineArguements(session.Server, session.Identity, false); string safeArgs = rdpProfile.ToCommandLineArguements(session.Server, session.Identity, true); new SessionHost("rdesktop", args, safeArgs); } if (session.Profile is Vnc.VncProfile) { var vncProfile = (Vnc.VncProfile)session.Profile; string args = vncProfile.ToCommandLineArguements(session.Server, session.Identity, false); string safeArgs = vncProfile.ToCommandLineArguements(session.Server, session.Identity, true); new SessionHost("tight-vncviewer", args, safeArgs); } if (session.Profile is Ssh.SshProfile) { var sshProfile = (Ssh.SshProfile)session.Profile; string args = sshProfile.ToCommandLineArguements(session.Server, session.Identity); new SessionHostConsole("ssh", args, args, sshProfile.FullScreen); } } } }gnome-rdp-0.3.0.9/Sessions/SessionDialog.cs0000644000175000017500000001054711566224110015377 00000000000000// // SessionDialog.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Linq; using Gtk; using GnomeRDP.Profiles; using GnomeRDP.Identies; namespace GnomeRDP.Sessions { public partial class SessionDialog : Dialog { public SessionDialog() : this(null) { } public SessionDialog(Session session) { this.Build (); var cellRenderer = new CellRendererText(); cbProtocol.Model = new ListStore(typeof(Protocol), typeof(string)); cbProtocol.PackStart(cellRenderer, true); cbProtocol.AddAttribute(cellRenderer, "text", 1); cbProfile.Model = new ListStore(typeof(Profile), typeof(string)); cbProfile.PackStart(cellRenderer, true); cbProfile.AddAttribute(cellRenderer, "text", 1); cbIdentity.Model = new ListStore(typeof(Identity), typeof(string)); cbIdentity.PackStart(cellRenderer, true); cbIdentity.AddAttribute(cellRenderer, "text", 1); if (session == null) { SyncProtocolList(null); SyncProfileList(null); SyncIdentityList(null); } else { entryServer.Text = session.Server; entryGroup.Text = session.Group; SyncProtocolList(session.Profile); SyncProfileList(session.Profile); SyncIdentityList(session.Identity); } } private void SyncProtocolList(Profile profile) { try { cbProtocol.Active = -1; var model = (ListStore)cbProtocol.Model; model.Clear(); Protocol protocol = (profile == null) ? Protocol.rdp : profile.Protocol; foreach (Protocol item in Enum.GetValues(typeof(Protocol))) { var iter = model.AppendValues(item, item.ToString()); if (item == protocol) cbProtocol.SetActiveIter(iter); } } catch { } } private void SyncProfileList(Profile profile) { try { cbProfile.Active = -1; var model = (ListStore)cbProfile.Model; model.Clear(); TreeIter protocolIter; if (cbProtocol.GetActiveIter(out protocolIter) == false) return; var protocolModel = (ListStore)cbProtocol.Model; var protocol = (Protocol)protocolModel.GetValue(protocolIter, 0); foreach (var item in Program.ProfileCollection.Items.Where((i) => i.Protocol == protocol)) { var iter = model.AppendValues(item, item.Description); if (item == profile) cbProfile.SetActiveIter(iter); } } catch { } } private void SyncIdentityList(Identity identity) { try { cbIdentity.Active = -1; ListStore model = (ListStore)cbIdentity.Model; model.Clear(); foreach (var item in Program.IdentityCollection.Items) { var iter = model.AppendValues(item, item.ToString()); if (item == identity) cbIdentity.SetActiveIter(iter); } } catch { } } protected virtual void OnCbProtocolChanged (object sender, System.EventArgs e) { SyncProfileList(null); } public string Server { get { return entryServer.Text; } } public Profile Profile { get { TreeIter iter; if (cbProfile.GetActiveIter(out iter) == false) return null; var model = (ListStore)cbProfile.Model; Profile profile = (Profile)model.GetValue(iter, 0); return profile; } } public Identity Identity { get { TreeIter iter; if (cbIdentity.GetActiveIter(out iter) == false) return null; ListStore model = (ListStore)cbIdentity.Model; Identity identity = (Identity)model.GetValue(iter, 0); return identity; } } public new string Group { get { return entryGroup.Text; } } } } gnome-rdp-0.3.0.9/Resources/0000755000175000017500000000000011566224110012522 500000000000000gnome-rdp-0.3.0.9/Resources/rdp.png0000755000175000017500000001035711566224110013746 00000000000000PNG  IHDR00WgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?@++OFv&&fa&K6۷y=R Fzy[GɒGPSK_FXXFO۾}^֭sfk.@PۡSΝ;*fc% yMUv ccGc..nUNvFV&N6vf~~.Q.&&FلmV9k@y@AA1((2VVn&l&bgF^n fg:h+t`h,p1!!) (c acЖWcd`^,%/$n6vvVvVvv6V e6-10_ٗL 12D <@."聠XyBlg`#333 09p #3H`f'Ë?>o30< 3õ7 /02å K$Dy89@w|d]]:VV]6/?XQ )@=ȱ}gï>321|{9fcx_ `ƿ 4 hΙ' g20hs0 ˈ122 _<p2VA#bDL]o hDCWm}3@5kj^TnL,XNS {hɷVdoUuWz M6nt cK7WYX>|ffR}w&Q< 9>]@?@kB\JRAfA v4Ѡ7W̹'*L}`.~~&C7СAoS##ؗJ @ᗄ<@L$q˗?~303fd`f ?B¿ ?hTGFa󅅄$01 zҥ={~ !`|'Ц_PC?b9F@o`Iه~a'׮]tޝ_?`zX$~}(@PC J}~2D} YAfII5Ub<@L;o'3dcg#7X4/ pC @Ϳ>_ԼO˟P.>߀0O_y4/@ OacD@QB x_>?gDQ@CB=w0Z cJwV(HTDE9Un>B uޞ8/_`ԃ ?  B=aNCjO~3c@PHrܑXup0r/% !P n W<\=@Dy…߽Op2eV0i6<r8Hǿ b( z҂ykzi!VNNQBn 逭df`sYP;};0᱁ ev@O>}++;AKN8S!kYW<9Լ?×b0G*:F@b'~B ج =Ѕ^0G~iA=q<4V@C?w$$yDD$ @O˗? up2pN._ %bR@#!H㧿KXs@/=~0 ?WKq qR Ɯ(<,..D޾}޽;=c,"ĹkP |IFG-VkP5_5W vX0˗LDҨwZ;K`ff`fc`vt3(Cr?$A+(U !F, vZ\ jҬRƭ ۷^öZ$\x/*(qs033#yJCČ 3+33p1H3|Dp uk>}zǏϭs@w^xׯEMlvo.Ai45yo#f >nnfO=uînܼ~Ջ?tt$ffͷo;Kf`d0,%a:f\T94yXؙd8ęÇ~>"&D];zamyPZPR[ Xs> ͕8T$X9>p#o~3 002s2|)7oM 'OVTS0D@d {y$6R8濿h| ޿/Ǡ. e?p'0+1zׯ_xۏ޻}O})n < $$.7󸊚:+d .4eE^c^ۅ3w~zϠ-ozg.ܳ{ԫW,{b@dOpچ,acgcfg+2 / _A `/HKޭ oeS` O)~3KH0h gogN/i+| dkCBٟ=}l1s`- /33: l6A? =2p'?,, ,@ bg0TOέ#Vs @YYl""\_4rC`( 쬠q0`΍ fcX\R~cpõK7yO<#"11Ѷvat/&IIG0wZ葿 Ǐe L6jeEDŕ} fcEDExxy@sc>c} ㇏?uGּȿz H򀸸 ߲e[=xxm@C)$3KCo0}͋=SAD1(z㶭JE~J22,ـ=?1\dxx%ùsݽ{xӳgW1?=@$/u6_ ^1<~ãNpb'6i H_ 11nyV\̩ş;Ol?uz:-=`YMϟ~u?K;ݿrǏ/.C2 (Z,J%hΧX`T@BIENDB`gnome-rdp-0.3.0.9/Resources/ssh_16.png0000755000175000017500000000136311566224110014261 00000000000000PNG  IHDRabKGD pHYs  tIME 1e;IDAT8˅KHTax͝;T8&dHF!A$5("hѢeѢ jm*բ4P3ịi4$88p>9bjjLOOM46 f\JreŖhnn0@\Ʋ,8{SJJe2 oFGGRJJa VVV_tuuQ,QJQض htau?ʔMf455a&J)8m۬222yJ)Rm!ǡVQTp[I80 4Vuu)%P˲躎R mp>nfN H)H!L0 t]GӴ5@cGmx̳$1J&;wXj u jon8˥tzALLL;yGǶJ[o\9~(sO"(;ۗs}19ڒ; Ę+'h~rG N$@Z Z~eׁvZT3ȍ`V4ꃯsP\@kփT?M>흉~(( ʗ+/m`Q[ IENDB`gnome-rdp-0.3.0.9/Resources/group_16.png0000755000175000017500000000076211566224110014622 00000000000000PNG  IHDRabKGDC pHYs B(xtIME 9 pPIDAT8˥MRQc*@ZA ,b lf]P3*DeIPlF"( {Gfq ͗/Q.6S2Bԝ{3x^wZ=>Lxx3}Z=B)pS @0y.?iv2̥gn:RHaf'us1RC}X?<5_8 &3 \ _KM`e "(DZah}H,C+ \t]D#1Y~uڜ>{_w"a/_8hyʛ,‡ʧIENDB`gnome-rdp-0.3.0.9/Resources/ssh.png0000755000175000017500000000604111566224110013751 00000000000000PNG  IHDR00WgAMA7 IDATxŚklu샻\!֖h&EǪTvbF䴮`8 5 jh (RR!AQ)CIĒ[zR$9Ę&E!.]kfl%%r.s?R0o/ކUWW>z9q#G-г>ǎSSSZ))8qmYVsN&O:th%onn~߿Qߣ%IkK/MAkM8fXlO̪~0011A<GkaxKh^kL5Xh48I8&>Zq]xhhp%CGG\n@B~[\|_{X֜E|>nݢ&&''QJ8b|lݺSNH$PJ-SA Zk(=dr'eth4JGGGyZ;&ϔR.ZS__O0dffXIK477j*7 !(5Xa)%~T*uWid,i.R"Lb}L&qt:M"0 Y0Md2I.fgY3055Ecc}ف\BO** ,_r)vPGKe^v/!e[Ⱦ%k0BLD)Eww7 Zj)6)%xRz$,b@JYkzz\.Guu•{Rg1==d{P){*bppH$Byyyh1Rܖ@)UpהR$ t{kPDq0nn0MR3)Ӷm2 m#XEۨai e›%TA!U@1[0@Y(u:oBl.l)ẁ k,ŀ7^\mFJeYFk1-P_!>)J(.f-}9Ww=RElf!n@ok9irZk,Z/Pju^D3|\ٸq͕aX,H@A>n^/BfYHmc JN ZZZa```y,,|q!{%հ_ )6eeU1`@ n&0dǎ:eW.^)KɫRAl|%>J Cp[ >D\)۽X,F*͛tuuΟE;@{ pbQffl7&0MVOœ!t?h,7EeeeTTTP^^^Ⱦ[T *E,f&r tD#e`Mp1Q*[gTTTy|7z|SRmH$9p]eˎw @qh`%Gahh8Uo~v-l6U]]W^y{Ν[ZZZBuuuYfX6* ǏSu4-P4Wl{1n?إwy8t:f_5 ۷]vXECCܼyy6lT*E:.x&Yƽi Gj~&6}6l|ё80p<(mGT o}K4G45yq1z>"8yp'99y;B(!ݛ:mA|y *+@C9πiS ?_\?KÕUl 6>`%,gBi$uupf v?~p5u'4wjY硭ZQVNʇ !|Pa8ys{g7Ci)jFG>?`/!OZƼ|-pt r( zw=NonH[)P 3d+W1X Y*`4O >M(L3>cퟁ7a. T *Hfa<uXN:{{_}6i'.\J}U2ʊ*Cf*a|$>MeQ)ZSg-ڀ?( * u$Sl|;;WGy[!p\dQi5^G'wV&&ӛʂeU}g"2)`eQG?8f׏@+hm]_߸nH^B@aLL]ٹ3 S='iAUgtlo W v4lFΦgo hspRmɳ*1"&L;-ʉ7>BIENDB`gnome-rdp-0.3.0.9/Resources/vnc_16.png0000755000175000017500000000146311566224110014253 00000000000000PNG  IHDRabKGD pHYs  tIME .R:IDAT8eAo[U>?m^P6E JHDbI~/?UʎBJ$ NCڱk$M GHgY[[...~Bp"F*y]]]/,/--}e11c%F0b.9FBVVVv+GSTy 3L߭R(gG" mtAMDW 1 N1 %bǂb}N'`cTc UE!V{sD DbM(k-:#Bs??9<|iӗ#A"B.\2,Ki;  &'K-r[ \ ^CNGs>?PJn^|Ž+]]Ba9j #Qa,Fp0nB Al]L*RB:iG <-XkE54aMQ!FDy :Fdx*`{_ej$Y\$t/񸡪prrr׵fpooOwwwHFHt\pW3\{x8s||4MQUɲr$^ dY(*[k#!{ߪ뿯3prU\{R NL0yIENDB`gnome-rdp-0.3.0.9/Resources/gnome-rdp-icon.png0000755000175000017500000001343011566224110015772 00000000000000PNG  IHDR@@iqbKGD pHYs  tIME !IDATxY\y{o/`VM"͔-JPbN1THlOJ"5R8J*EVesIi&+`o7zvϷ|?+j67NF+_-4 ʧO>o={W_}x`x\.kXk7~}}}=== oG}?,@~{{ĉy$޼^ 7ERʖ彯!܏v}|p端crSmrrkNp`'}A(0m nc L>U* ; @DPaYJew6s~@wZw[|$!DZPRbb{6 * q~h2'* !Rv~ojڿ7Z>N,vlWyּqTBYJ*lƶl%q,!pH&$dcSo6YX )l[!@\onX#@ @h)@:ߥl5W=Ķ-dd[6>w8JM#J0 B!" $BDXhB%A%X(wTxpU^8z#CoBݲS`F\jA ә&V +6:ySkSʊ $hc ex)BV./~~K؊(T.Zb }.?C={-6 @KDG!> |g+[sE6\RͶ0@QBi֠54?b?D-` Tj.B@j[B@OAJI {naAoomRN<)4"jM^)i16YV RR@h5riwYe 46 M7hrjAZiP*7{BII!_=k~6 \ϧtiz!Q"?lS+SRsRA%~ a2<0$Hn@ gSضEp}.ZBfH*[__ZC{}#Ӓ0pzzm:ZfXu!$s1f Q "V+kk}CSeBis3+`Z)|v'.%4R +$PRrǭ#SopfS'0n;b{Q %4[ـB ~r"bJ'1˖Tk.,h^@p3,(%=#M/Vñ,^>y(%;VTm{5#/#lה6d051If *Kk = ]7Tk',# 5.{Y_Л"\/$J`IɅyOTHqʲ <[{RWٱ/xTV=yb8 (ҜU "Ur8hsЅ Ьԛ2;096Ya#$HĀ堵!܎\] tsy'na[,'?9m123IǦ\n0P\ntz#t| G% }g  ˲,0Ԅa!q<@nJјֺ%1&a95Bd4|f8;(U_%]&@:!rQH(*MVך$NϲVX] -n,( $Zc -kJJ hjMN-pA>>s/@jlbX?}ƷX-7T]1(Cß x5~)o'q[)5ZwlR0=노^7Nc'ԅ%aQo4Y_6]0B 0AWwW݌ ݒ[lAIPqCѢG^7O1RheIQؖe)nv^A"U C!<@R]kG,߽0 7PkR_Z!, vH$Lcs,}=eم t Yc?E鈾\B:$ !" "Ic(4kܺ[Y ix>ZAيm'TrWA!hQH胋@Ie9N}LVW0_ܹg0s\\cdV k.A-ck2&x)F2GHEG.R)ߒ\!lɥEF'A5u/቟sqmSC{SdC& `v,>E(U>O0!)]rhБF`caծ lvI> ~AS[b} bLa9&F$m{:Ã/V10BLϯq"c|F#`j%)sdfV令o k Pqzzz-ňB;ba-., dl8 w݆  pjBy>H(bY*ĵw7p  Tu^-<2a7)-􇧩)2)?\$巵țgx4fpvI[4cQJHÎ6:#t[ ])# RKZ) )Ioa3ױĶ}?+_$4 ʒ-%?XIJq! ' 00P܆y'ef_ԑ Cz 9UC1BJ HUPee8&Zዟk"vlBEDat%bEyԱ-l̥\t#ۛO!ci!$2Zw<)W,mɫ\\ctlJ+h D[ھB\vremn1 Ǻl$p( 0dvĦɥSʭ; 'l[cx;/)N~3U+d[gs2tM"8C2%׬46q!ﻕ( 7oeO%y'N60H6[><\$H4uC? ZJY-k eWVJRaj5/Ȕ :lRtQ:B_k$"MMt)p-U{KR @8oB\+]oxV)+}ַ~s|||>?J}3gΰsN} ǥ7-PJ}w}7aRכGO<߱cD":333l۶smNL ֚sqw8졣G}k&bY6gu8x۷nlFa{ku  FGG/;yd܌O<Ğ0EіVmeY]l6Iӭ-8b}To]hB e6rѧT*XEw`^SZL&?_.i6 9J)%벴^'O_}sTUmHR`VH$:˳>[yWnܴ90:::V188Cwz16qf N: /P{3gNt3OhejT*z{{ vaNjnٶM:&188HP`uuÇsС3?>qw3@ܤH8<룣;ahh>z{{ 󈢈0 8zlYֆez-+|/>v1rw0?;99gdddG!rL˲H&.6h}2Rwy믿~رcx%`XcpS<"+!d| HҙLobbbX, 3L.N'"N0u))JR[]ZZZy^-x`vy ]H݁T @ܒ5;:jSøN'_\#>cI$ݞ'l:Z]M >aWXl>AUk"@꾾9R_@[!IENDB`gnome-rdp-0.3.0.9/Resources/vnc.png0000755000175000017500000000730311566224110013744 00000000000000PNG  IHDR01^*"bKGD';"% pHYs  tIME! ?%PIDATh՚ۏ]}?o27{<6c!4"RU({ε|;V9:!.1<3 lL x衇{뭷`0x"Ica-W<;{7k};Kkkkx (Z+@@h~~3g<5??߿ku6$IOkh4 h@0FO?7? RUsGثQJB|VJBi)P1$IZz~H^ !MSĿ{(݇ cKY'1i Yf Yf qDk-Q1Za"5MMcYFj@BŗﻍÇoCk- deZkf¸CTRX7-`tFPYɺĽ$ IdEd4F6`Eh@,'А ヾ6fа1Ak"Ӯ`L@+uE)ABPB ʷBnS@h x<^ +cJKk@9S]/RD(cZ BQBc " |[+PfL8OB){V!"7 kёE+m06F|N@R# ^ɊX#41Zi>Tx"c#՞Sk!D<(ldQ&j% !P9OU A!D\IZQ-+4$QuUyMdiJ^ʠm)$3{OUEA^ X1`0%fLmU8WIJwLc@kVrXt "뚼(wr8'͒)nxפIXv HѠ&OC"CZ 1m2kB;dǎ%N"kQx_c"Hh >4Qd0& h` TUIkf6:"x0hޣ7 jCYp.F:qb$!X69BMic6Jp4'x82fc,yuۦ}C0kҰcv0k 5YcqAYctC|H%IcZbA#h&2 M76m,QxaBDY'%2dU8ȲcuüLL$`ĥڈ(NnՋU؀?{1llloasP%ÝmqOX J *Nו&B a6qJd.pif'#dqPD%U³zyeoy`!p6'.:Yk"ls1ocg쌶v剀Wf433_¹ 7[Os" nj5umP<7ι6] =JfS"Q # I!1۟ᮙ`}m.D'T.KPDtY\CA[<٧R5ZkD^ZFBػ6ZXW4&9Te*:t;n.m&ttEN] 6FX `;"IR>=E>~T7-$ZS&/Ht,-afvZW $I_UyPw}$E Tːhb juѠ鏉TEgW1c5WWX|sds3 t{Ȣ p ʪwr,[uL;Hy 5u 4װ=S;&4a"8KX1jDp}8x'\^p:,&24[ހd #G077V#9sFzo{Ή'i;MƖ%0le6v`E.\8#\O/sywɓeeeEdmmMN:uO?. 7߶sS7AB3hii G4TH:R1 /`d%Ƣ$ 8Cf0:ܯY 6PKcc~XI(22Đi*Ƈ…xd?u ۿ՚?P{Ƙ!.F G{'N^9M\nwQ>v $V2k@yfnctVUqfTG6%P4D`x\>a6WRC3iACdGKPFG"); this.toolbar = ((global::Gtk.Toolbar)(this.UIManager.GetWidget ("/toolbar"))); this.toolbar.Name = "toolbar"; this.toolbar.ShowArrow = false; this.toolbar.ToolbarStyle = ((global::Gtk.ToolbarStyle)(2)); this.toolbar.IconSize = ((global::Gtk.IconSize)(3)); this.vbox4.Add (this.toolbar); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.toolbar])); w5.Position = 1; w5.Expand = false; w5.Fill = false; this.Add (this.vbox4); if ((this.Child != null)) { this.Child.ShowAll (); } w1.SetUiManager (UIManager); this.Hide (); this.NewRdpAction.Activated += new global::System.EventHandler (this.OnNewRdpActionActivated); this.NewVncAction.Activated += new global::System.EventHandler (this.OnNewVncActionActivated); this.NewSshAction.Activated += new global::System.EventHandler (this.OnNewSshActionActivated); this.treeView.ButtonPressEvent += new global::Gtk.ButtonPressEventHandler (this.OnTreeViewButtonPressEvent); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs0000644000175000017500000002475611566224110017732 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP.Vnc { public partial class VncProfileDialog { private global::Gtk.Table table; private global::Gtk.CheckButton checkbuttonFullScreen; private global::Gtk.CheckButton checkbuttonShared; private global::Gtk.CheckButton checkbuttonViewOnly; private global::Gtk.ComboBox comboboxColorDepth; private global::Gtk.ComboBox comboboxEncoding; private global::Gtk.Entry entryDescription; private global::Gtk.HSeparator hseparator1; private global::Gtk.HSeparator hseparator2; private global::Gtk.Image image; private global::Gtk.Label labelColorDepth; private global::Gtk.Label labelDescription; private global::Gtk.Label labelEncoding; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.Vnc.VncProfileDialog this.Name = "GnomeRDP.Vnc.VncProfileDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Vnc Profile"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.gnome-rdp-icon.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child GnomeRDP.Vnc.VncProfileDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog_VBox.Gtk.Box+BoxChild this.table = new global::Gtk.Table (((uint)(8)), ((uint)(3)), false); this.table.Name = "table"; this.table.RowSpacing = ((uint)(6)); this.table.ColumnSpacing = ((uint)(6)); // Container child table.Gtk.Table+TableChild this.checkbuttonFullScreen = new global::Gtk.CheckButton (); this.checkbuttonFullScreen.CanFocus = true; this.checkbuttonFullScreen.Name = "checkbuttonFullScreen"; this.checkbuttonFullScreen.Label = global::Mono.Unix.Catalog.GetString ("Full Screen"); this.checkbuttonFullScreen.DrawIndicator = true; this.checkbuttonFullScreen.UseUnderline = true; this.table.Add (this.checkbuttonFullScreen); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table[this.checkbuttonFullScreen])); w2.TopAttach = ((uint)(5)); w2.BottomAttach = ((uint)(6)); w2.LeftAttach = ((uint)(2)); w2.RightAttach = ((uint)(3)); w2.XOptions = ((global::Gtk.AttachOptions)(4)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.checkbuttonShared = new global::Gtk.CheckButton (); this.checkbuttonShared.CanFocus = true; this.checkbuttonShared.Name = "checkbuttonShared"; this.checkbuttonShared.Label = global::Mono.Unix.Catalog.GetString ("Shared Server"); this.checkbuttonShared.DrawIndicator = true; this.checkbuttonShared.UseUnderline = true; this.table.Add (this.checkbuttonShared); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table[this.checkbuttonShared])); w3.TopAttach = ((uint)(7)); w3.BottomAttach = ((uint)(8)); w3.LeftAttach = ((uint)(2)); w3.RightAttach = ((uint)(3)); w3.XOptions = ((global::Gtk.AttachOptions)(4)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.checkbuttonViewOnly = new global::Gtk.CheckButton (); this.checkbuttonViewOnly.CanFocus = true; this.checkbuttonViewOnly.Name = "checkbuttonViewOnly"; this.checkbuttonViewOnly.Label = global::Mono.Unix.Catalog.GetString ("View Only"); this.checkbuttonViewOnly.DrawIndicator = true; this.checkbuttonViewOnly.UseUnderline = true; this.table.Add (this.checkbuttonViewOnly); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table[this.checkbuttonViewOnly])); w4.TopAttach = ((uint)(6)); w4.BottomAttach = ((uint)(7)); w4.LeftAttach = ((uint)(2)); w4.RightAttach = ((uint)(3)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); w4.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.comboboxColorDepth = global::Gtk.ComboBox.NewText (); this.comboboxColorDepth.Name = "comboboxColorDepth"; this.table.Add (this.comboboxColorDepth); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table[this.comboboxColorDepth])); w5.TopAttach = ((uint)(2)); w5.BottomAttach = ((uint)(3)); w5.LeftAttach = ((uint)(2)); w5.RightAttach = ((uint)(3)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.comboboxEncoding = global::Gtk.ComboBox.NewText (); this.comboboxEncoding.Name = "comboboxEncoding"; this.table.Add (this.comboboxEncoding); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table[this.comboboxEncoding])); w6.TopAttach = ((uint)(3)); w6.BottomAttach = ((uint)(4)); w6.LeftAttach = ((uint)(2)); w6.RightAttach = ((uint)(3)); w6.XOptions = ((global::Gtk.AttachOptions)(4)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.entryDescription = new global::Gtk.Entry (); this.entryDescription.CanFocus = true; this.entryDescription.Name = "entryDescription"; this.entryDescription.IsEditable = true; this.entryDescription.InvisibleChar = '●'; this.table.Add (this.entryDescription); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table[this.entryDescription])); w7.LeftAttach = ((uint)(2)); w7.RightAttach = ((uint)(3)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator1 = new global::Gtk.HSeparator (); this.hseparator1.Name = "hseparator1"; this.table.Add (this.hseparator1); global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator1])); w8.TopAttach = ((uint)(1)); w8.BottomAttach = ((uint)(2)); w8.LeftAttach = ((uint)(2)); w8.RightAttach = ((uint)(3)); w8.XOptions = ((global::Gtk.AttachOptions)(4)); w8.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator2 = new global::Gtk.HSeparator (); this.hseparator2.Name = "hseparator2"; this.table.Add (this.hseparator2); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator2])); w9.TopAttach = ((uint)(4)); w9.BottomAttach = ((uint)(5)); w9.LeftAttach = ((uint)(2)); w9.RightAttach = ((uint)(3)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.image.Yalign = 0f; this.image.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.vnc.png"); this.table.Add (this.image); global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table[this.image])); w10.BottomAttach = ((uint)(3)); w10.XOptions = ((global::Gtk.AttachOptions)(4)); w10.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.labelColorDepth = new global::Gtk.Label (); this.labelColorDepth.Name = "labelColorDepth"; this.labelColorDepth.Xalign = 1f; this.labelColorDepth.LabelProp = global::Mono.Unix.Catalog.GetString ("Color Depth"); this.table.Add (this.labelColorDepth); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table[this.labelColorDepth])); w11.TopAttach = ((uint)(2)); w11.BottomAttach = ((uint)(3)); w11.LeftAttach = ((uint)(1)); w11.RightAttach = ((uint)(2)); w11.XOptions = ((global::Gtk.AttachOptions)(4)); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.labelDescription = new global::Gtk.Label (); this.labelDescription.Name = "labelDescription"; this.labelDescription.LabelProp = global::Mono.Unix.Catalog.GetString ("Description"); this.table.Add (this.labelDescription); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table[this.labelDescription])); w12.LeftAttach = ((uint)(1)); w12.RightAttach = ((uint)(2)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.labelEncoding = new global::Gtk.Label (); this.labelEncoding.Name = "labelEncoding"; this.labelEncoding.Xalign = 1f; this.labelEncoding.LabelProp = global::Mono.Unix.Catalog.GetString ("Encoding"); this.table.Add (this.labelEncoding); global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table[this.labelEncoding])); w13.TopAttach = ((uint)(3)); w13.BottomAttach = ((uint)(4)); w13.LeftAttach = ((uint)(1)); w13.RightAttach = ((uint)(2)); w13.XOptions = ((global::Gtk.AttachOptions)(4)); w13.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table); global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(w1[this.table])); w14.Position = 0; w14.Expand = false; w14.Fill = false; // Internal child GnomeRDP.Vnc.VncProfileDialog.ActionArea global::Gtk.HButtonBox w15 = this.ActionArea; w15.Name = "dialog_ActionArea"; w15.Spacing = 10; w15.BorderWidth = ((uint)(5)); w15.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w16 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w15[this.buttonCancel])); w16.Expand = false; w16.Fill = false; // Container child dialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w15[this.buttonOk])); w17.Position = 1; w17.Expand = false; w17.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 400; this.DefaultHeight = 314; this.Show (); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs0000644000175000017500000004334411566224110017722 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP.Rdp { public partial class RdpProfileDialog { private global::Gtk.Table table; private global::Gtk.ComboBox cbColorDepth; private global::Gtk.ComboBoxEntry cbeHeight; private global::Gtk.ComboBoxEntry cbeWidth; private global::Gtk.ComboBox cbExperience; private global::Gtk.ComboBox cbRdpVersion; private global::Gtk.ComboBox cbSound; private global::Gtk.CheckButton chkAttachToConsole; private global::Gtk.CheckButton chkEnableCompression; private global::Gtk.CheckButton chkFullScreen; private global::Gtk.HSeparator hseparator1; private global::Gtk.HSeparator hseparator2; private global::Gtk.HSeparator hseparator3; private global::Gtk.HSeparator hseparator4; private global::Gtk.Image image; private global::Gtk.Label lblColorDepth; private global::Gtk.Label lblDescription; private global::Gtk.Label lblExperience; private global::Gtk.Label lblHeight; private global::Gtk.Label lblKeyboardLayout; private global::Gtk.Label lblRdpVersion; private global::Gtk.Label lblSound; private global::Gtk.Label lblWidth; private global::Gtk.Entry txtDescription; private global::Gtk.Entry txtKeyboardlayout; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.Rdp.RdpProfileDialog this.Name = "GnomeRDP.Rdp.RdpProfileDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Rdp Profile"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.gnome-rdp-icon.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child GnomeRDP.Rdp.RdpProfileDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog_VBox.Gtk.Box+BoxChild this.table = new global::Gtk.Table (((uint)(15)), ((uint)(3)), false); this.table.Name = "table"; this.table.RowSpacing = ((uint)(6)); this.table.ColumnSpacing = ((uint)(6)); // Container child table.Gtk.Table+TableChild this.cbColorDepth = global::Gtk.ComboBox.NewText (); this.cbColorDepth.Name = "cbColorDepth"; this.table.Add (this.cbColorDepth); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table[this.cbColorDepth])); w2.TopAttach = ((uint)(8)); w2.BottomAttach = ((uint)(9)); w2.LeftAttach = ((uint)(2)); w2.RightAttach = ((uint)(3)); w2.XOptions = ((global::Gtk.AttachOptions)(4)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbeHeight = global::Gtk.ComboBoxEntry.NewText (); this.cbeHeight.Name = "cbeHeight"; this.table.Add (this.cbeHeight); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table[this.cbeHeight])); w3.TopAttach = ((uint)(6)); w3.BottomAttach = ((uint)(7)); w3.LeftAttach = ((uint)(2)); w3.RightAttach = ((uint)(3)); w3.XOptions = ((global::Gtk.AttachOptions)(4)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbeWidth = global::Gtk.ComboBoxEntry.NewText (); this.cbeWidth.Name = "cbeWidth"; this.table.Add (this.cbeWidth); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table[this.cbeWidth])); w4.TopAttach = ((uint)(5)); w4.BottomAttach = ((uint)(6)); w4.LeftAttach = ((uint)(2)); w4.RightAttach = ((uint)(3)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); w4.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbExperience = global::Gtk.ComboBox.NewText (); this.cbExperience.Name = "cbExperience"; this.table.Add (this.cbExperience); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table[this.cbExperience])); w5.TopAttach = ((uint)(9)); w5.BottomAttach = ((uint)(10)); w5.LeftAttach = ((uint)(2)); w5.RightAttach = ((uint)(3)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbRdpVersion = global::Gtk.ComboBox.NewText (); this.cbRdpVersion.Name = "cbRdpVersion"; this.table.Add (this.cbRdpVersion); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table[this.cbRdpVersion])); w6.TopAttach = ((uint)(1)); w6.BottomAttach = ((uint)(2)); w6.LeftAttach = ((uint)(2)); w6.RightAttach = ((uint)(3)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbSound = global::Gtk.ComboBox.NewText (); this.cbSound.Name = "cbSound"; this.table.Add (this.cbSound); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table[this.cbSound])); w7.TopAttach = ((uint)(10)); w7.BottomAttach = ((uint)(11)); w7.LeftAttach = ((uint)(2)); w7.RightAttach = ((uint)(3)); w7.XOptions = ((global::Gtk.AttachOptions)(4)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.chkAttachToConsole = new global::Gtk.CheckButton (); this.chkAttachToConsole.CanFocus = true; this.chkAttachToConsole.Name = "chkAttachToConsole"; this.chkAttachToConsole.Label = global::Mono.Unix.Catalog.GetString ("Attach To Console"); this.chkAttachToConsole.DrawIndicator = true; this.chkAttachToConsole.UseUnderline = true; this.table.Add (this.chkAttachToConsole); global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table[this.chkAttachToConsole])); w8.TopAttach = ((uint)(14)); w8.BottomAttach = ((uint)(15)); w8.LeftAttach = ((uint)(2)); w8.RightAttach = ((uint)(3)); w8.XOptions = ((global::Gtk.AttachOptions)(4)); w8.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.chkEnableCompression = new global::Gtk.CheckButton (); this.chkEnableCompression.CanFocus = true; this.chkEnableCompression.Name = "chkEnableCompression"; this.chkEnableCompression.Label = global::Mono.Unix.Catalog.GetString ("Enable Compression"); this.chkEnableCompression.DrawIndicator = true; this.chkEnableCompression.UseUnderline = true; this.table.Add (this.chkEnableCompression); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table[this.chkEnableCompression])); w9.TopAttach = ((uint)(13)); w9.BottomAttach = ((uint)(14)); w9.LeftAttach = ((uint)(2)); w9.RightAttach = ((uint)(3)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.chkFullScreen = new global::Gtk.CheckButton (); this.chkFullScreen.CanFocus = true; this.chkFullScreen.Name = "chkFullScreen"; this.chkFullScreen.Label = global::Mono.Unix.Catalog.GetString ("Full Screen"); this.chkFullScreen.DrawIndicator = true; this.chkFullScreen.UseUnderline = true; this.table.Add (this.chkFullScreen); global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table[this.chkFullScreen])); w10.TopAttach = ((uint)(12)); w10.BottomAttach = ((uint)(13)); w10.LeftAttach = ((uint)(2)); w10.RightAttach = ((uint)(3)); w10.XOptions = ((global::Gtk.AttachOptions)(4)); w10.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator1 = new global::Gtk.HSeparator (); this.hseparator1.Name = "hseparator1"; this.table.Add (this.hseparator1); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator1])); w11.TopAttach = ((uint)(11)); w11.BottomAttach = ((uint)(12)); w11.LeftAttach = ((uint)(2)); w11.RightAttach = ((uint)(3)); w11.XOptions = ((global::Gtk.AttachOptions)(4)); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator2 = new global::Gtk.HSeparator (); this.hseparator2.Name = "hseparator2"; this.table.Add (this.hseparator2); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator2])); w12.TopAttach = ((uint)(7)); w12.BottomAttach = ((uint)(8)); w12.LeftAttach = ((uint)(2)); w12.RightAttach = ((uint)(3)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator3 = new global::Gtk.HSeparator (); this.hseparator3.Name = "hseparator3"; this.table.Add (this.hseparator3); global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator3])); w13.TopAttach = ((uint)(4)); w13.BottomAttach = ((uint)(5)); w13.LeftAttach = ((uint)(2)); w13.RightAttach = ((uint)(3)); w13.XOptions = ((global::Gtk.AttachOptions)(4)); w13.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator4 = new global::Gtk.HSeparator (); this.hseparator4.Name = "hseparator4"; this.table.Add (this.hseparator4); global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator4])); w14.TopAttach = ((uint)(2)); w14.BottomAttach = ((uint)(3)); w14.LeftAttach = ((uint)(2)); w14.RightAttach = ((uint)(3)); w14.XOptions = ((global::Gtk.AttachOptions)(4)); w14.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.image.Xalign = 0f; this.image.Yalign = 0f; this.image.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.rdp.png"); this.table.Add (this.image); global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table[this.image])); w15.BottomAttach = ((uint)(2)); w15.XOptions = ((global::Gtk.AttachOptions)(4)); w15.YOptions = ((global::Gtk.AttachOptions)(0)); // Container child table.Gtk.Table+TableChild this.lblColorDepth = new global::Gtk.Label (); this.lblColorDepth.Name = "lblColorDepth"; this.lblColorDepth.Xalign = 1f; this.lblColorDepth.LabelProp = global::Mono.Unix.Catalog.GetString ("Color Depth"); this.table.Add (this.lblColorDepth); global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table[this.lblColorDepth])); w16.TopAttach = ((uint)(8)); w16.BottomAttach = ((uint)(9)); w16.LeftAttach = ((uint)(1)); w16.RightAttach = ((uint)(2)); w16.XOptions = ((global::Gtk.AttachOptions)(4)); w16.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblDescription = new global::Gtk.Label (); this.lblDescription.Name = "lblDescription"; this.lblDescription.Xalign = 1f; this.lblDescription.LabelProp = global::Mono.Unix.Catalog.GetString ("Description"); this.table.Add (this.lblDescription); global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table[this.lblDescription])); w17.LeftAttach = ((uint)(1)); w17.RightAttach = ((uint)(2)); w17.XOptions = ((global::Gtk.AttachOptions)(4)); w17.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblExperience = new global::Gtk.Label (); this.lblExperience.Name = "lblExperience"; this.lblExperience.Xalign = 1f; this.lblExperience.LabelProp = global::Mono.Unix.Catalog.GetString ("Experience"); this.table.Add (this.lblExperience); global::Gtk.Table.TableChild w18 = ((global::Gtk.Table.TableChild)(this.table[this.lblExperience])); w18.TopAttach = ((uint)(9)); w18.BottomAttach = ((uint)(10)); w18.LeftAttach = ((uint)(1)); w18.RightAttach = ((uint)(2)); w18.XOptions = ((global::Gtk.AttachOptions)(4)); w18.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblHeight = new global::Gtk.Label (); this.lblHeight.Name = "lblHeight"; this.lblHeight.Xalign = 1f; this.lblHeight.LabelProp = global::Mono.Unix.Catalog.GetString ("Height"); this.table.Add (this.lblHeight); global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table[this.lblHeight])); w19.TopAttach = ((uint)(6)); w19.BottomAttach = ((uint)(7)); w19.LeftAttach = ((uint)(1)); w19.RightAttach = ((uint)(2)); w19.XOptions = ((global::Gtk.AttachOptions)(4)); w19.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblKeyboardLayout = new global::Gtk.Label (); this.lblKeyboardLayout.Name = "lblKeyboardLayout"; this.lblKeyboardLayout.Xalign = 1f; this.lblKeyboardLayout.LabelProp = global::Mono.Unix.Catalog.GetString (" Keyboard Layout"); this.table.Add (this.lblKeyboardLayout); global::Gtk.Table.TableChild w20 = ((global::Gtk.Table.TableChild)(this.table[this.lblKeyboardLayout])); w20.TopAttach = ((uint)(3)); w20.BottomAttach = ((uint)(4)); w20.LeftAttach = ((uint)(1)); w20.RightAttach = ((uint)(2)); w20.XOptions = ((global::Gtk.AttachOptions)(4)); w20.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblRdpVersion = new global::Gtk.Label (); this.lblRdpVersion.Name = "lblRdpVersion"; this.lblRdpVersion.Xalign = 1f; this.lblRdpVersion.LabelProp = global::Mono.Unix.Catalog.GetString ("Rdp Version"); this.table.Add (this.lblRdpVersion); global::Gtk.Table.TableChild w21 = ((global::Gtk.Table.TableChild)(this.table[this.lblRdpVersion])); w21.TopAttach = ((uint)(1)); w21.BottomAttach = ((uint)(2)); w21.LeftAttach = ((uint)(1)); w21.RightAttach = ((uint)(2)); w21.XOptions = ((global::Gtk.AttachOptions)(4)); w21.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblSound = new global::Gtk.Label (); this.lblSound.Name = "lblSound"; this.lblSound.Xalign = 1f; this.lblSound.LabelProp = global::Mono.Unix.Catalog.GetString ("Sound"); this.table.Add (this.lblSound); global::Gtk.Table.TableChild w22 = ((global::Gtk.Table.TableChild)(this.table[this.lblSound])); w22.TopAttach = ((uint)(10)); w22.BottomAttach = ((uint)(11)); w22.LeftAttach = ((uint)(1)); w22.RightAttach = ((uint)(2)); w22.XOptions = ((global::Gtk.AttachOptions)(4)); w22.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblWidth = new global::Gtk.Label (); this.lblWidth.Name = "lblWidth"; this.lblWidth.Xalign = 1f; this.lblWidth.LabelProp = global::Mono.Unix.Catalog.GetString ("Width"); this.table.Add (this.lblWidth); global::Gtk.Table.TableChild w23 = ((global::Gtk.Table.TableChild)(this.table[this.lblWidth])); w23.TopAttach = ((uint)(5)); w23.BottomAttach = ((uint)(6)); w23.LeftAttach = ((uint)(1)); w23.RightAttach = ((uint)(2)); w23.XOptions = ((global::Gtk.AttachOptions)(4)); w23.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.txtDescription = new global::Gtk.Entry (); this.txtDescription.CanFocus = true; this.txtDescription.Name = "txtDescription"; this.txtDescription.IsEditable = true; this.txtDescription.InvisibleChar = '●'; this.table.Add (this.txtDescription); global::Gtk.Table.TableChild w24 = ((global::Gtk.Table.TableChild)(this.table[this.txtDescription])); w24.LeftAttach = ((uint)(2)); w24.RightAttach = ((uint)(3)); w24.XOptions = ((global::Gtk.AttachOptions)(4)); w24.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.txtKeyboardlayout = new global::Gtk.Entry (); this.txtKeyboardlayout.CanFocus = true; this.txtKeyboardlayout.Name = "txtKeyboardlayout"; this.txtKeyboardlayout.IsEditable = true; this.txtKeyboardlayout.InvisibleChar = '●'; this.table.Add (this.txtKeyboardlayout); global::Gtk.Table.TableChild w25 = ((global::Gtk.Table.TableChild)(this.table[this.txtKeyboardlayout])); w25.TopAttach = ((uint)(3)); w25.BottomAttach = ((uint)(4)); w25.LeftAttach = ((uint)(2)); w25.RightAttach = ((uint)(3)); w25.XOptions = ((global::Gtk.AttachOptions)(4)); w25.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table); global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(w1[this.table])); w26.Position = 0; w26.Expand = false; w26.Fill = false; // Internal child GnomeRDP.Rdp.RdpProfileDialog.ActionArea global::Gtk.HButtonBox w27 = this.ActionArea; w27.Name = "dialog_ActionArea"; w27.Spacing = 10; w27.BorderWidth = ((uint)(5)); w27.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w28 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w27[this.buttonCancel])); w28.Expand = false; w28.Fill = false; // Container child dialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w29 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w27[this.buttonOk])); w29.Position = 1; w29.Expand = false; w29.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 376; this.DefaultHeight = 522; this.Show (); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.Sessions.SessionDialog.cs0000644000175000017500000002223111566224110020350 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP.Sessions { public partial class SessionDialog { private global::Gtk.Table table; private global::Gtk.ComboBox cbIdentity; private global::Gtk.ComboBox cbProfile; private global::Gtk.ComboBox cbProtocol; private global::Gtk.Entry entryGroup; private global::Gtk.Entry entryServer; private global::Gtk.Image image; private global::Gtk.Label lblGroup; private global::Gtk.Label lblIdentity; private global::Gtk.Label lblProfile; private global::Gtk.Label lblProtocol; private global::Gtk.Label lblServer; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.Sessions.SessionDialog this.Name = "GnomeRDP.Sessions.SessionDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Session"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child GnomeRDP.Sessions.SessionDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.table = new global::Gtk.Table (((uint)(5)), ((uint)(3)), false); this.table.Name = "table"; this.table.RowSpacing = ((uint)(6)); this.table.ColumnSpacing = ((uint)(6)); // Container child table.Gtk.Table+TableChild this.cbIdentity = new global::Gtk.ComboBox (); this.cbIdentity.Name = "cbIdentity"; this.table.Add (this.cbIdentity); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table[this.cbIdentity])); w2.TopAttach = ((uint)(3)); w2.BottomAttach = ((uint)(4)); w2.LeftAttach = ((uint)(2)); w2.RightAttach = ((uint)(3)); w2.XOptions = ((global::Gtk.AttachOptions)(4)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbProfile = new global::Gtk.ComboBox (); this.cbProfile.Name = "cbProfile"; this.table.Add (this.cbProfile); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table[this.cbProfile])); w3.TopAttach = ((uint)(2)); w3.BottomAttach = ((uint)(3)); w3.LeftAttach = ((uint)(2)); w3.RightAttach = ((uint)(3)); w3.XOptions = ((global::Gtk.AttachOptions)(4)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.cbProtocol = new global::Gtk.ComboBox (); this.cbProtocol.Name = "cbProtocol"; this.table.Add (this.cbProtocol); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table[this.cbProtocol])); w4.TopAttach = ((uint)(1)); w4.BottomAttach = ((uint)(2)); w4.LeftAttach = ((uint)(2)); w4.RightAttach = ((uint)(3)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); w4.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.entryGroup = new global::Gtk.Entry (); this.entryGroup.CanFocus = true; this.entryGroup.Name = "entryGroup"; this.entryGroup.IsEditable = true; this.entryGroup.InvisibleChar = '●'; this.table.Add (this.entryGroup); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table[this.entryGroup])); w5.TopAttach = ((uint)(4)); w5.BottomAttach = ((uint)(5)); w5.LeftAttach = ((uint)(2)); w5.RightAttach = ((uint)(3)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.entryServer = new global::Gtk.Entry (); this.entryServer.CanFocus = true; this.entryServer.Name = "entryServer"; this.entryServer.IsEditable = true; this.entryServer.InvisibleChar = '●'; this.table.Add (this.entryServer); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table[this.entryServer])); w6.LeftAttach = ((uint)(2)); w6.RightAttach = ((uint)(3)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.image.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-preferences", global::Gtk.IconSize.Dialog); this.table.Add (this.image); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table[this.image])); w7.BottomAttach = ((uint)(2)); w7.XOptions = ((global::Gtk.AttachOptions)(4)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblGroup = new global::Gtk.Label (); this.lblGroup.Name = "lblGroup"; this.lblGroup.Xalign = 0f; this.lblGroup.LabelProp = global::Mono.Unix.Catalog.GetString ("Group"); this.table.Add (this.lblGroup); global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table[this.lblGroup])); w8.TopAttach = ((uint)(4)); w8.BottomAttach = ((uint)(5)); w8.LeftAttach = ((uint)(1)); w8.RightAttach = ((uint)(2)); w8.XOptions = ((global::Gtk.AttachOptions)(4)); w8.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblIdentity = new global::Gtk.Label (); this.lblIdentity.Name = "lblIdentity"; this.lblIdentity.Xalign = 0f; this.lblIdentity.LabelProp = global::Mono.Unix.Catalog.GetString ("Identity"); this.table.Add (this.lblIdentity); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table[this.lblIdentity])); w9.TopAttach = ((uint)(3)); w9.BottomAttach = ((uint)(4)); w9.LeftAttach = ((uint)(1)); w9.RightAttach = ((uint)(2)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblProfile = new global::Gtk.Label (); this.lblProfile.Name = "lblProfile"; this.lblProfile.Xalign = 0f; this.lblProfile.LabelProp = global::Mono.Unix.Catalog.GetString ("Profile"); this.table.Add (this.lblProfile); global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table[this.lblProfile])); w10.TopAttach = ((uint)(2)); w10.BottomAttach = ((uint)(3)); w10.LeftAttach = ((uint)(1)); w10.RightAttach = ((uint)(2)); w10.XOptions = ((global::Gtk.AttachOptions)(4)); w10.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblProtocol = new global::Gtk.Label (); this.lblProtocol.Name = "lblProtocol"; this.lblProtocol.Xalign = 0f; this.lblProtocol.LabelProp = global::Mono.Unix.Catalog.GetString ("Protocol"); this.table.Add (this.lblProtocol); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table[this.lblProtocol])); w11.TopAttach = ((uint)(1)); w11.BottomAttach = ((uint)(2)); w11.LeftAttach = ((uint)(1)); w11.RightAttach = ((uint)(2)); w11.XOptions = ((global::Gtk.AttachOptions)(4)); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.lblServer = new global::Gtk.Label (); this.lblServer.Name = "lblServer"; this.lblServer.Xalign = 0f; this.lblServer.LabelProp = global::Mono.Unix.Catalog.GetString ("Server"); this.table.Add (this.lblServer); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table[this.lblServer])); w12.LeftAttach = ((uint)(1)); w12.RightAttach = ((uint)(2)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(w1[this.table])); w13.Position = 0; w13.Expand = false; w13.Fill = false; // Internal child GnomeRDP.Sessions.SessionDialog.ActionArea global::Gtk.HButtonBox w14 = this.ActionArea; w14.Name = "dialog1_ActionArea"; w14.Spacing = 10; w14.BorderWidth = ((uint)(5)); w14.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w15 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w14[this.buttonCancel])); w15.Expand = false; w15.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w16 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w14[this.buttonOk])); w16.Position = 1; w16.Expand = false; w16.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 426; this.DefaultHeight = 275; this.Show (); this.cbProtocol.Changed += new global::System.EventHandler (this.OnCbProtocolChanged); } } } gnome-rdp-0.3.0.9/gtk-gui/gui.stetic0000644000175000017500000034443711566224110014057 00000000000000 .. 2.12 ButtonPressMask Gnome RDP CenterOnParent True 1 Left ButtonPressMask Sessions tab ButtonPressMask 1 Identities tab ButtonPressMask 2 Profiles tab ButtonPressMask 3 Log tab 0 False Identity resource:GnomeRDP.Resources.gnome-rdp-icon.png Center False 2 False 2 6 3 6 6 5 True TextOnly Clear Stored Passwords True 5 6 1 2 True Fill Fill False True False False True False True TextOnly Replace Saved Passwords True 5 6 2 3 True Fill Fill False True False False True False True Save Password True True True 3 4 2 3 True Fill Fill False True False False True False True True 2 3 2 3 True Fill Fill False True False False True False True True 2 3 True Fill Fill False True False False True False True True 1 2 2 3 True Fill Fill False True False False True False 4 5 3 True Fill Fill False True False False True False stock:gtk-dialog-authentication Dialog 2 True Fill Fill False True False False True False 1 Description: 2 3 1 2 True Fill Fill False True False False True False 1 Domain: 1 2 True Fill Fill False True False False True False 1 Username: 1 2 1 2 True Fill Fill False True False False True False 0 True False False 6 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Rdp Profile resource:GnomeRDP.Resources.gnome-rdp-icon.png CenterOnParent 2 False 2 15 3 6 6 True 8 9 2 3 True Fill Fill False True False False True False True 6 7 2 3 True Fill Fill False True False False True False True 5 6 2 3 True Fill Fill False True False False True False True 9 10 2 3 True Fill Fill False True False False True False True 1 2 2 3 False Fill True True False False True False True 10 11 2 3 True Fill Fill False True False False True False True Attach To Console True True True 14 15 2 3 True Fill Fill False True False False True False True Enable Compression True True True 13 14 2 3 True Fill Fill False True False False True False True Full Screen True True True 12 13 2 3 True Fill Fill False True False False True False 11 12 2 3 True Fill Fill False True False False True False 7 8 2 3 True Fill Fill False True False False True False 4 5 2 3 True Fill Fill False True False False True False 2 3 2 3 True Fill Fill False True False False True False 0 0 resource:GnomeRDP.Resources.rdp.png 2 False Fill 0 False True False False False False 1 Color Depth 8 9 1 2 True Fill Fill False True False False True False 1 Description 1 2 True Fill Fill False True False False True False 1 Experience 9 10 1 2 True Fill Fill False True False False True False 1 Height 6 7 1 2 True Fill Fill False True False False True False 1 Keyboard Layout 3 4 1 2 True Fill Fill False True False False True False 1 Rdp Version 1 2 1 2 False Fill Fill False True False False True False 1 Sound 10 11 1 2 True Fill Fill False True False False True False 1 Width 5 6 1 2 True Fill Fill False True False False True False True True 2 3 True Fill Fill False True False False True False True True 3 4 2 3 True Fill Fill False True False False True False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Session CenterOnParent 2 False 2 5 3 6 6 False 3 4 2 3 True Fill Fill False True False False True False False 2 3 2 3 True Fill Fill False True False False True False False 1 2 2 3 True Fill Fill False True False False True False True True 4 5 2 3 True Fill Fill False True False False True False True True 2 3 False Fill True True False False True False stock:gtk-preferences Dialog 2 True Fill Fill False True False False True False 0 Group 4 5 1 2 True Fill Fill False True False False True False 0 Identity 3 4 1 2 True Fill Fill False True False False True False 0 Profile 2 3 1 2 True Fill Fill False True False False True False 0 Protocol 1 2 1 2 True Fill Fill False True False False True False 0 Server 1 2 True Fill Fill False True False False True False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Action Connect Connect gtk-connect Action New Session New Session gtk-add False 6 In True True 0 True False Both LargeToolbar 1 True False False Action New Identity New Identity gtk-add False 6 In True True 0 True False Both LargeToolbar 1 True False False Action New Rdp New Rdp gtk-add Action New Vnc New Vnc gtk-add Action New Ssh New Ssh gtk-add False 6 In True True 0 True False Both LargeToolbar 1 True False False Password resource:GnomeRDP.Resources.gnome-rdp-icon.png CenterOnParent 2 False 2 6 6 0 stock:gtk-network Dialog 0 True False False 6 2 6 6 True True True False 5 6 1 2 False Fill True True False False True False 4 5 2 True Fill Fill False True False False True False 0 Domain: 2 3 True Fill Fill False True False False True False 0 Password: 5 6 True Fill Fill False True False False True False 0 Protocol: True Fill Fill False True False False True False 0 Server: 1 2 True Fill Fill False True False False True False 0 Username: 3 4 True Fill Fill False True False False True False 0 2 3 1 2 False Fill True True False False True False 0 1 2 False Fill True True False False True False 0 1 2 1 2 False Fill True True False False True False 0 3 4 1 2 False Fill True True False False True False 1 False 0 False 10 5 2 Edge True True StockItem gtk-cancel -6 gtk-cancel False False True True True True StockItem gtk-ok -5 gtk-ok 1 False False False 6 6 True End 0 True False False Log level filter End 1 True False False 0 True False False In True True False 1 True Vnc Profile resource:GnomeRDP.Resources.gnome-rdp-icon.png CenterOnParent 2 False 2 8 3 6 6 True Full Screen True True True 5 6 2 3 True Fill Fill False True False False True False True Shared Server True True True 7 8 2 3 True Fill Fill False True False False True False True View Only True True True 6 7 2 3 True Fill Fill False True False False True False True 2 3 2 3 True Fill Fill False True False False True False True 3 4 2 3 True Fill Fill False True False False True False True True 2 3 False Fill True True False False True False 1 2 2 3 True Fill Fill False True False False True False 4 5 2 3 True Fill Fill False True False False True False 0 resource:GnomeRDP.Resources.vnc.png 3 True Fill Fill False True False False True False 1 Color Depth 2 3 1 2 True Fill Fill False True False False True False Description 1 2 True Fill Fill False True False False True False 1 Encoding 3 4 1 2 True Fill Fill False True False False True False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False Ssh Profile resource:GnomeRDP.Resources.gnome-rdp-icon.png CenterOnParent 2 False 2 3 3 6 6 True Full Screen True True True 1 2 2 3 True Fill True True False False True False True X11 Forwarding True True True 2 3 2 3 True Fill True True False False True False resource:GnomeRDP.Resources.ssh.png 2 False Fill 0 False True False False False False Description 1 2 True Fill Fill False True False False True False True True 2 3 True Fill True True False False True False 0 True False False 10 5 2 End True True True StockItem gtk-cancel -6 gtk-cancel False False True True True StockItem gtk-ok -5 gtk-ok 1 False False gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.SshProfileDialog.cs0000644000175000017500000001337411566224110017206 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP { public partial class SshProfileDialog { private global::Gtk.Table table; private global::Gtk.CheckButton chkFullScreen; private global::Gtk.CheckButton chkX11Forwarding; private global::Gtk.Image image; private global::Gtk.Label lblDescription; private global::Gtk.Entry txtDescription; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.SshProfileDialog this.Name = "GnomeRDP.SshProfileDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Ssh Profile"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.gnome-rdp-icon.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Internal child GnomeRDP.SshProfileDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild this.table = new global::Gtk.Table (((uint)(3)), ((uint)(3)), false); this.table.Name = "table"; this.table.RowSpacing = ((uint)(6)); this.table.ColumnSpacing = ((uint)(6)); // Container child table.Gtk.Table+TableChild this.chkFullScreen = new global::Gtk.CheckButton (); this.chkFullScreen.CanFocus = true; this.chkFullScreen.Name = "chkFullScreen"; this.chkFullScreen.Label = global::Mono.Unix.Catalog.GetString ("Full Screen"); this.chkFullScreen.DrawIndicator = true; this.chkFullScreen.UseUnderline = true; this.table.Add (this.chkFullScreen); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table[this.chkFullScreen])); w2.TopAttach = ((uint)(1)); w2.BottomAttach = ((uint)(2)); w2.LeftAttach = ((uint)(2)); w2.RightAttach = ((uint)(3)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.chkX11Forwarding = new global::Gtk.CheckButton (); this.chkX11Forwarding.CanFocus = true; this.chkX11Forwarding.Name = "chkX11Forwarding"; this.chkX11Forwarding.Label = global::Mono.Unix.Catalog.GetString ("X11 Forwarding"); this.chkX11Forwarding.DrawIndicator = true; this.chkX11Forwarding.UseUnderline = true; this.table.Add (this.chkX11Forwarding); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table[this.chkX11Forwarding])); w3.TopAttach = ((uint)(2)); w3.BottomAttach = ((uint)(3)); w3.LeftAttach = ((uint)(2)); w3.RightAttach = ((uint)(3)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.image.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.ssh.png"); this.table.Add (this.image); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table[this.image])); w4.BottomAttach = ((uint)(2)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); w4.YOptions = ((global::Gtk.AttachOptions)(0)); // Container child table.Gtk.Table+TableChild this.lblDescription = new global::Gtk.Label (); this.lblDescription.Name = "lblDescription"; this.lblDescription.LabelProp = global::Mono.Unix.Catalog.GetString ("Description"); this.table.Add (this.lblDescription); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table[this.lblDescription])); w5.LeftAttach = ((uint)(1)); w5.RightAttach = ((uint)(2)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.txtDescription = new global::Gtk.Entry (); this.txtDescription.CanFocus = true; this.txtDescription.Name = "txtDescription"; this.txtDescription.IsEditable = true; this.txtDescription.InvisibleChar = '●'; this.table.Add (this.txtDescription); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table[this.txtDescription])); w6.LeftAttach = ((uint)(2)); w6.RightAttach = ((uint)(3)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table); global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(w1[this.table])); w7.Position = 0; w7.Expand = false; w7.Fill = false; // Internal child GnomeRDP.SshProfileDialog.ActionArea global::Gtk.HButtonBox w8 = this.ActionArea; w8.Name = "dialog1_ActionArea"; w8.Spacing = 10; w8.BorderWidth = ((uint)(5)); w8.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w9 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w8[this.buttonCancel])); w9.Expand = false; w9.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w10 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w8[this.buttonOk])); w10.Position = 1; w10.Expand = false; w10.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 386; this.DefaultHeight = 167; this.Show (); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs0000644000175000017500000000664711566224110020574 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP.Sessions { public partial class SessionsWidget { private global::Gtk.UIManager UIManager; private global::Gtk.Action connectAction; private global::Gtk.Action NewSessionAction; private global::Gtk.VBox vbox2; private global::Gtk.ScrolledWindow GtkScrolledWindow; private global::Gtk.TreeView treeView; private global::Gtk.Toolbar toolbar; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.Sessions.SessionsWidget Stetic.BinContainer w1 = global::Stetic.BinContainer.Attach (this); this.UIManager = new global::Gtk.UIManager (); global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Default"); this.connectAction = new global::Gtk.Action ("connectAction", global::Mono.Unix.Catalog.GetString ("Connect"), null, "gtk-connect"); this.connectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Connect"); w2.Add (this.connectAction, null); this.NewSessionAction = new global::Gtk.Action ("NewSessionAction", global::Mono.Unix.Catalog.GetString ("New Session"), null, "gtk-add"); this.NewSessionAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("New Session"); w2.Add (this.NewSessionAction, null); this.UIManager.InsertActionGroup (w2, 0); this.Name = "GnomeRDP.Sessions.SessionsWidget"; // Container child GnomeRDP.Sessions.SessionsWidget.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild this.treeView = new global::Gtk.TreeView (); this.treeView.CanFocus = true; this.treeView.Name = "treeView"; this.GtkScrolledWindow.Add (this.treeView); this.vbox2.Add (this.GtkScrolledWindow); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.GtkScrolledWindow])); w4.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.UIManager.AddUiFromString (""); this.toolbar = ((global::Gtk.Toolbar)(this.UIManager.GetWidget ("/toolbar"))); this.toolbar.Name = "toolbar"; this.toolbar.ShowArrow = false; this.toolbar.ToolbarStyle = ((global::Gtk.ToolbarStyle)(2)); this.toolbar.IconSize = ((global::Gtk.IconSize)(3)); this.vbox2.Add (this.toolbar); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.toolbar])); w5.Position = 1; w5.Expand = false; w5.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } w1.SetUiManager (UIManager); this.Hide (); this.VisibilityNotifyEvent += new global::Gtk.VisibilityNotifyEventHandler (this.OnVisibilityNotifyEvent); this.connectAction.Activated += new global::System.EventHandler (this.OnConnectActionActivated); this.NewSessionAction.Activated += new global::System.EventHandler (this.OnNewSessionActionActivated); this.treeView.ButtonPressEvent += new global::Gtk.ButtonPressEventHandler (this.OnTreeViewButtonPressEvent); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.LogWidget.cs0000644000175000017500000000530511566224110015670 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP { public partial class LogWidget { private global::Gtk.VBox vbox; private global::Gtk.HBox hbox; private global::Gtk.ComboBox cbLogLevelFilter; private global::Gtk.Label labelLogLevelFilter; private global::Gtk.ScrolledWindow GtkScrolledWindow; private global::Gtk.TextView textview; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.LogWidget global::Stetic.BinContainer.Attach (this); this.Name = "GnomeRDP.LogWidget"; // Container child GnomeRDP.LogWidget.Gtk.Container+ContainerChild this.vbox = new global::Gtk.VBox (); this.vbox.Name = "vbox"; this.vbox.Spacing = 6; // Container child vbox.Gtk.Box+BoxChild this.hbox = new global::Gtk.HBox (); this.hbox.Name = "hbox"; this.hbox.Spacing = 6; // Container child hbox.Gtk.Box+BoxChild this.cbLogLevelFilter = global::Gtk.ComboBox.NewText (); this.cbLogLevelFilter.Name = "cbLogLevelFilter"; this.hbox.Add (this.cbLogLevelFilter); global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox[this.cbLogLevelFilter])); w1.PackType = ((global::Gtk.PackType)(1)); w1.Position = 0; w1.Expand = false; w1.Fill = false; // Container child hbox.Gtk.Box+BoxChild this.labelLogLevelFilter = new global::Gtk.Label (); this.labelLogLevelFilter.Name = "labelLogLevelFilter"; this.labelLogLevelFilter.LabelProp = global::Mono.Unix.Catalog.GetString ("Log level filter"); this.hbox.Add (this.labelLogLevelFilter); global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox[this.labelLogLevelFilter])); w2.PackType = ((global::Gtk.PackType)(1)); w2.Position = 1; w2.Expand = false; w2.Fill = false; this.vbox.Add (this.hbox); global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox[this.hbox])); w3.Position = 0; w3.Expand = false; w3.Fill = false; // Container child vbox.Gtk.Box+BoxChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild this.textview = new global::Gtk.TextView (); this.textview.CanFocus = true; this.textview.Name = "textview"; this.textview.CursorVisible = false; this.GtkScrolledWindow.Add (this.textview); this.vbox.Add (this.GtkScrolledWindow); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox[this.GtkScrolledWindow])); w5.Position = 1; this.Add (this.vbox); if ((this.Child != null)) { this.Child.ShowAll (); } this.Hide (); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.MainWindow.cs0000644000175000017500000001131711566224110016057 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP { public partial class MainWindow { private global::Gtk.UIManager UIManager; private global::Gtk.VBox mainWindowContainer; private global::Gtk.Notebook notebook; private global::GnomeRDP.Sessions.SessionsWidget sessionswidget1; private global::Gtk.Label sessionsLabel; private global::GnomeRDP.Identies.IdentitiesWidget identitieswidget1; private global::Gtk.Label identitiesLabel; private global::GnomeRDP.Profiles.ProfilesWidget profileswidget1; private global::Gtk.Label profilesLabel; private global::GnomeRDP.LogWidget logwidget1; private global::Gtk.Label Loglabel; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.MainWindow this.UIManager = new global::Gtk.UIManager (); global::Gtk.ActionGroup w1 = new global::Gtk.ActionGroup ("Default"); this.UIManager.InsertActionGroup (w1, 0); this.AddAccelGroup (this.UIManager.AccelGroup); this.Events = ((global::Gdk.EventMask)(256)); this.Name = "GnomeRDP.MainWindow"; this.Title = global::Mono.Unix.Catalog.GetString ("Gnome RDP"); this.WindowPosition = ((global::Gtk.WindowPosition)(4)); // Container child GnomeRDP.MainWindow.Gtk.Container+ContainerChild this.mainWindowContainer = new global::Gtk.VBox (); this.mainWindowContainer.Name = "mainWindowContainer"; // Container child mainWindowContainer.Gtk.Box+BoxChild this.notebook = new global::Gtk.Notebook (); this.notebook.CanFocus = true; this.notebook.Name = "notebook"; this.notebook.CurrentPage = 1; this.notebook.TabPos = ((global::Gtk.PositionType)(0)); // Container child notebook.Gtk.Notebook+NotebookChild this.sessionswidget1 = new global::GnomeRDP.Sessions.SessionsWidget (); this.sessionswidget1.Events = ((global::Gdk.EventMask)(256)); this.sessionswidget1.Name = "sessionswidget1"; this.notebook.Add (this.sessionswidget1); // Notebook tab this.sessionsLabel = new global::Gtk.Label (); this.sessionsLabel.Name = "sessionsLabel"; this.sessionsLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Sessions"); this.notebook.SetTabLabel (this.sessionswidget1, this.sessionsLabel); this.sessionsLabel.ShowAll (); // Container child notebook.Gtk.Notebook+NotebookChild this.identitieswidget1 = new global::GnomeRDP.Identies.IdentitiesWidget (); this.identitieswidget1.Events = ((global::Gdk.EventMask)(256)); this.identitieswidget1.Name = "identitieswidget1"; this.notebook.Add (this.identitieswidget1); global::Gtk.Notebook.NotebookChild w3 = ((global::Gtk.Notebook.NotebookChild)(this.notebook[this.identitieswidget1])); w3.Position = 1; // Notebook tab this.identitiesLabel = new global::Gtk.Label (); this.identitiesLabel.Name = "identitiesLabel"; this.identitiesLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Identities"); this.notebook.SetTabLabel (this.identitieswidget1, this.identitiesLabel); this.identitiesLabel.ShowAll (); // Container child notebook.Gtk.Notebook+NotebookChild this.profileswidget1 = new global::GnomeRDP.Profiles.ProfilesWidget (); this.profileswidget1.Events = ((global::Gdk.EventMask)(256)); this.profileswidget1.Name = "profileswidget1"; this.notebook.Add (this.profileswidget1); global::Gtk.Notebook.NotebookChild w4 = ((global::Gtk.Notebook.NotebookChild)(this.notebook[this.profileswidget1])); w4.Position = 2; // Notebook tab this.profilesLabel = new global::Gtk.Label (); this.profilesLabel.Name = "profilesLabel"; this.profilesLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Profiles"); this.notebook.SetTabLabel (this.profileswidget1, this.profilesLabel); this.profilesLabel.ShowAll (); // Container child notebook.Gtk.Notebook+NotebookChild this.logwidget1 = new global::GnomeRDP.LogWidget (); this.logwidget1.Events = ((global::Gdk.EventMask)(256)); this.logwidget1.Name = "logwidget1"; this.notebook.Add (this.logwidget1); global::Gtk.Notebook.NotebookChild w5 = ((global::Gtk.Notebook.NotebookChild)(this.notebook[this.logwidget1])); w5.Position = 3; // Notebook tab this.Loglabel = new global::Gtk.Label (); this.Loglabel.Name = "Loglabel"; this.Loglabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Log"); this.notebook.SetTabLabel (this.logwidget1, this.Loglabel); this.Loglabel.ShowAll (); this.mainWindowContainer.Add (this.notebook); global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.mainWindowContainer[this.notebook])); w6.Position = 0; this.Add (this.mainWindowContainer); if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 798; this.DefaultHeight = 565; this.Show (); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs0000644000175000017500000000556611566224110021024 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP.Identies { public partial class IdentitiesWidget { private global::Gtk.UIManager UIManager; private global::Gtk.Action newIdentityAction; private global::Gtk.VBox vbox2; private global::Gtk.ScrolledWindow GtkScrolledWindow; private global::Gtk.TreeView treeView; private global::Gtk.Toolbar toolbar; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.Identies.IdentitiesWidget Stetic.BinContainer w1 = global::Stetic.BinContainer.Attach (this); this.UIManager = new global::Gtk.UIManager (); global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Default"); this.newIdentityAction = new global::Gtk.Action ("newIdentityAction", global::Mono.Unix.Catalog.GetString ("New Identity"), null, "gtk-add"); this.newIdentityAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("New Identity"); w2.Add (this.newIdentityAction, null); this.UIManager.InsertActionGroup (w2, 0); this.Name = "GnomeRDP.Identies.IdentitiesWidget"; // Container child GnomeRDP.Identies.IdentitiesWidget.Gtk.Container+ContainerChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; this.vbox2.Spacing = 6; // Container child vbox2.Gtk.Box+BoxChild this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); this.GtkScrolledWindow.Name = "GtkScrolledWindow"; this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); // Container child GtkScrolledWindow.Gtk.Container+ContainerChild this.treeView = new global::Gtk.TreeView (); this.treeView.CanFocus = true; this.treeView.Name = "treeView"; this.GtkScrolledWindow.Add (this.treeView); this.vbox2.Add (this.GtkScrolledWindow); global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.GtkScrolledWindow])); w4.Position = 0; // Container child vbox2.Gtk.Box+BoxChild this.UIManager.AddUiFromString (""); this.toolbar = ((global::Gtk.Toolbar)(this.UIManager.GetWidget ("/toolbar"))); this.toolbar.Name = "toolbar"; this.toolbar.ShowArrow = false; this.toolbar.ToolbarStyle = ((global::Gtk.ToolbarStyle)(2)); this.toolbar.IconSize = ((global::Gtk.IconSize)(3)); this.vbox2.Add (this.toolbar); global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.toolbar])); w5.Position = 1; w5.Expand = false; w5.Fill = false; this.Add (this.vbox2); if ((this.Child != null)) { this.Child.ShowAll (); } w1.SetUiManager (UIManager); this.Hide (); this.newIdentityAction.Activated += new global::System.EventHandler (this.OnNewIdentityActionActivated); this.treeView.ButtonPressEvent += new global::Gtk.ButtonPressEventHandler (this.OnTreeViewButtonPressEvent); } } } gnome-rdp-0.3.0.9/gtk-gui/GnomeRDP.Identies.IdentityDialog.cs0000644000175000017500000002500411566224110020455 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace GnomeRDP.Identies { public partial class IdentityDialog { private global::Gtk.Table table; private global::Gtk.Button buttonClearSavedPasswords; private global::Gtk.Button buttonReplaceSavedPasswords; private global::Gtk.CheckButton chkSavePassword; private global::Gtk.Entry entryDescription; private global::Gtk.Entry entryDomain; private global::Gtk.Entry entryUsername; private global::Gtk.HSeparator hseparator1; private global::Gtk.Image image; private global::Gtk.Label labelDescription; private global::Gtk.Label labelDomain; private global::Gtk.Label labelUsername; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; protected virtual void Build () { global::Stetic.Gui.Initialize (this); // Widget GnomeRDP.Identies.IdentityDialog this.Name = "GnomeRDP.Identies.IdentityDialog"; this.Title = global::Mono.Unix.Catalog.GetString ("Identity"); this.Icon = global::Gdk.Pixbuf.LoadFromResource ("GnomeRDP.Resources.gnome-rdp-icon.png"); this.WindowPosition = ((global::Gtk.WindowPosition)(1)); this.Resizable = false; // Internal child GnomeRDP.Identies.IdentityDialog.VBox global::Gtk.VBox w1 = this.VBox; w1.Name = "dialogVBox"; w1.BorderWidth = ((uint)(2)); // Container child dialogVBox.Gtk.Box+BoxChild this.table = new global::Gtk.Table (((uint)(6)), ((uint)(3)), false); this.table.Name = "table"; this.table.RowSpacing = ((uint)(6)); this.table.ColumnSpacing = ((uint)(6)); this.table.BorderWidth = ((uint)(5)); // Container child table.Gtk.Table+TableChild this.buttonClearSavedPasswords = new global::Gtk.Button (); this.buttonClearSavedPasswords.CanFocus = true; this.buttonClearSavedPasswords.Name = "buttonClearSavedPasswords"; this.buttonClearSavedPasswords.UseUnderline = true; this.buttonClearSavedPasswords.Label = global::Mono.Unix.Catalog.GetString ("Clear Stored Passwords"); this.table.Add (this.buttonClearSavedPasswords); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table[this.buttonClearSavedPasswords])); w2.TopAttach = ((uint)(5)); w2.BottomAttach = ((uint)(6)); w2.LeftAttach = ((uint)(1)); w2.RightAttach = ((uint)(2)); w2.XOptions = ((global::Gtk.AttachOptions)(4)); w2.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.buttonReplaceSavedPasswords = new global::Gtk.Button (); this.buttonReplaceSavedPasswords.CanFocus = true; this.buttonReplaceSavedPasswords.Name = "buttonReplaceSavedPasswords"; this.buttonReplaceSavedPasswords.UseUnderline = true; this.buttonReplaceSavedPasswords.Label = global::Mono.Unix.Catalog.GetString ("Replace Saved Passwords"); this.table.Add (this.buttonReplaceSavedPasswords); global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table[this.buttonReplaceSavedPasswords])); w3.TopAttach = ((uint)(5)); w3.BottomAttach = ((uint)(6)); w3.LeftAttach = ((uint)(2)); w3.RightAttach = ((uint)(3)); w3.XOptions = ((global::Gtk.AttachOptions)(4)); w3.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.chkSavePassword = new global::Gtk.CheckButton (); this.chkSavePassword.CanFocus = true; this.chkSavePassword.Name = "chkSavePassword"; this.chkSavePassword.Label = global::Mono.Unix.Catalog.GetString ("Save Password"); this.chkSavePassword.DrawIndicator = true; this.chkSavePassword.UseUnderline = true; this.table.Add (this.chkSavePassword); global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table[this.chkSavePassword])); w4.TopAttach = ((uint)(3)); w4.BottomAttach = ((uint)(4)); w4.LeftAttach = ((uint)(2)); w4.RightAttach = ((uint)(3)); w4.XOptions = ((global::Gtk.AttachOptions)(4)); w4.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.entryDescription = new global::Gtk.Entry (); this.entryDescription.CanFocus = true; this.entryDescription.Name = "entryDescription"; this.entryDescription.IsEditable = true; this.entryDescription.InvisibleChar = '•'; this.table.Add (this.entryDescription); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table[this.entryDescription])); w5.TopAttach = ((uint)(2)); w5.BottomAttach = ((uint)(3)); w5.LeftAttach = ((uint)(2)); w5.RightAttach = ((uint)(3)); w5.XOptions = ((global::Gtk.AttachOptions)(4)); w5.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.entryDomain = new global::Gtk.Entry (); this.entryDomain.CanFocus = true; this.entryDomain.Name = "entryDomain"; this.entryDomain.IsEditable = true; this.entryDomain.InvisibleChar = '●'; this.table.Add (this.entryDomain); global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table[this.entryDomain])); w6.LeftAttach = ((uint)(2)); w6.RightAttach = ((uint)(3)); w6.XOptions = ((global::Gtk.AttachOptions)(4)); w6.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.entryUsername = new global::Gtk.Entry (); this.entryUsername.CanFocus = true; this.entryUsername.Name = "entryUsername"; this.entryUsername.IsEditable = true; this.entryUsername.InvisibleChar = '●'; this.table.Add (this.entryUsername); global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table[this.entryUsername])); w7.TopAttach = ((uint)(1)); w7.BottomAttach = ((uint)(2)); w7.LeftAttach = ((uint)(2)); w7.RightAttach = ((uint)(3)); w7.XOptions = ((global::Gtk.AttachOptions)(4)); w7.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.hseparator1 = new global::Gtk.HSeparator (); this.hseparator1.Name = "hseparator1"; this.table.Add (this.hseparator1); global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table[this.hseparator1])); w8.TopAttach = ((uint)(4)); w8.BottomAttach = ((uint)(5)); w8.RightAttach = ((uint)(3)); w8.XOptions = ((global::Gtk.AttachOptions)(4)); w8.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.image = new global::Gtk.Image (); this.image.Name = "image"; this.image.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-dialog-authentication", global::Gtk.IconSize.Dialog); this.table.Add (this.image); global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table[this.image])); w9.BottomAttach = ((uint)(2)); w9.XOptions = ((global::Gtk.AttachOptions)(4)); w9.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.labelDescription = new global::Gtk.Label (); this.labelDescription.Name = "labelDescription"; this.labelDescription.Xalign = 1f; this.labelDescription.LabelProp = global::Mono.Unix.Catalog.GetString ("Description:"); this.table.Add (this.labelDescription); global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table[this.labelDescription])); w10.TopAttach = ((uint)(2)); w10.BottomAttach = ((uint)(3)); w10.LeftAttach = ((uint)(1)); w10.RightAttach = ((uint)(2)); w10.XOptions = ((global::Gtk.AttachOptions)(4)); w10.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.labelDomain = new global::Gtk.Label (); this.labelDomain.Name = "labelDomain"; this.labelDomain.Xalign = 1f; this.labelDomain.LabelProp = global::Mono.Unix.Catalog.GetString ("Domain:"); this.table.Add (this.labelDomain); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table[this.labelDomain])); w11.LeftAttach = ((uint)(1)); w11.RightAttach = ((uint)(2)); w11.XOptions = ((global::Gtk.AttachOptions)(4)); w11.YOptions = ((global::Gtk.AttachOptions)(4)); // Container child table.Gtk.Table+TableChild this.labelUsername = new global::Gtk.Label (); this.labelUsername.Name = "labelUsername"; this.labelUsername.Xalign = 1f; this.labelUsername.LabelProp = global::Mono.Unix.Catalog.GetString ("Username:"); this.table.Add (this.labelUsername); global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table[this.labelUsername])); w12.TopAttach = ((uint)(1)); w12.BottomAttach = ((uint)(2)); w12.LeftAttach = ((uint)(1)); w12.RightAttach = ((uint)(2)); w12.XOptions = ((global::Gtk.AttachOptions)(4)); w12.YOptions = ((global::Gtk.AttachOptions)(4)); w1.Add (this.table); global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(w1[this.table])); w13.Position = 0; w13.Expand = false; w13.Fill = false; // Internal child GnomeRDP.Identies.IdentityDialog.ActionArea global::Gtk.HButtonBox w14 = this.ActionArea; w14.Name = "dialogActionArea"; w14.Spacing = 6; w14.BorderWidth = ((uint)(5)); w14.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialogActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.UseStock = true; this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); global::Gtk.ButtonBox.ButtonBoxChild w15 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w14[this.buttonCancel])); w15.Expand = false; w15.Fill = false; // Container child dialogActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; this.buttonOk.Label = "gtk-ok"; this.AddActionWidget (this.buttonOk, -5); global::Gtk.ButtonBox.ButtonBoxChild w16 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w14[this.buttonOk])); w16.Position = 1; w16.Expand = false; w16.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } this.DefaultWidth = 432; this.DefaultHeight = 288; this.Show (); this.buttonReplaceSavedPasswords.Clicked += new global::System.EventHandler (this.OnButtonReplaceSavedPasswordsClicked); this.buttonClearSavedPasswords.Clicked += new global::System.EventHandler (this.OnButtonClearSavedPasswordsClicked); this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked); } } } gnome-rdp-0.3.0.9/gtk-gui/generated.cs0000644000175000017500000000621611566224110014331 00000000000000 // This file has been generated by the GUI designer. Do not modify. namespace Stetic { internal class Gui { private static bool initialized; static internal void Initialize (Gtk.Widget iconRenderer) { if ((Stetic.Gui.initialized == false)) { Stetic.Gui.initialized = true; } } } internal class IconLoader { public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size) { Gdk.Pixbuf res = widget.RenderIcon (name, size, null); if ((res != null)) { return res; } else { int sz; int sy; global::Gtk.Icon.SizeLookup (size, out sz, out sy); try { return Gtk.IconTheme.Default.LoadIcon (name, sz, 0); } catch (System.Exception) { if ((name != "gtk-missing-image")) { return Stetic.IconLoader.LoadIcon (widget, "gtk-missing-image", size); } else { Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz); Gdk.GC gc = new Gdk.GC (pmap); gc.RgbFgColor = new Gdk.Color (255, 255, 255); pmap.DrawRectangle (gc, true, 0, 0, sz, sz); gc.RgbFgColor = new Gdk.Color (0, 0, 0); pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1)); gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); gc.RgbFgColor = new Gdk.Color (255, 0, 0); pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); } } } } } internal class BinContainer { private Gtk.Widget child; private Gtk.UIManager uimanager; public static BinContainer Attach (Gtk.Bin bin) { BinContainer bc = new BinContainer (); bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested); bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated); bin.Added += new Gtk.AddedHandler (bc.OnAdded); return bc; } private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args) { if ((this.child != null)) { args.Requisition = this.child.SizeRequest (); } } private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args) { if ((this.child != null)) { this.child.Allocation = args.Allocation; } } private void OnAdded (object sender, Gtk.AddedArgs args) { this.child = args.Widget; } public void SetUiManager (Gtk.UIManager uim) { this.uimanager = uim; this.child.Realized += new System.EventHandler (this.OnRealized); } private void OnRealized (object sender, System.EventArgs args) { if ((this.uimanager != null)) { Gtk.Widget w; w = this.child.Toplevel; if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) { ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup); this.uimanager = null; } } } } internal class ActionGroups { public static Gtk.ActionGroup GetActionGroup (System.Type type) { return Stetic.ActionGroups.GetActionGroup (type.FullName); } public static Gtk.ActionGroup GetActionGroup (string name) { return null; } } } gnome-rdp-0.3.0.9/MainWindow.cs0000644000175000017500000000736111566224110013102 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using Gtk; using GnomeRDP.Identies; using GnomeRDP.Sessions; using GnomeRDP.Logging; using GnomeRDP.Profiles; using GnomeRDP.Rdp; using GnomeRDP.Ssh; using GnomeRDP.Vnc; namespace GnomeRDP { public partial class MainWindow: Gtk.Window { private StatusIcon statusIcon; private Gtk.Action actionQuit; private const string sessionKey = "Session"; public MainWindow(): base (Gtk.WindowType.Toplevel) { Build (); this.DeleteEvent += (s, e) => { Visible = false; e.RetVal = true; }; this.actionQuit = new Gtk.Action("QuitAction", "Quit"); this.actionQuit.Activated+= (s, e) => Application.Quit(); this.statusIcon = new StatusIcon(ResourceLoader.Find(ResourceLoader.Icons.gnomeRdp)); this.statusIcon.Visible = true; this.statusIcon.Tooltip = "GnomeRDP"; this.statusIcon.Activate += OnStatusIcon_Activate; this.statusIcon.PopupMenu += OnStatusIcon_PopupMenu; this.Icon = ResourceLoader.Find(ResourceLoader.Icons.gnomeRdp); } private void OnStatusIcon_Activate(object sender, EventArgs e) { Visible = !Visible; } private void OnStatusIcon_PopupMenu(object sender, PopupMenuArgs e) { try { Menu topMenu = new Menu(); topMenu.Popup(); foreach (var group in Program.SessionCollection.Groups) { MenuItem groupMenu = new MenuItem(group); topMenu.Append(groupMenu); Menu subMenu = new Menu(); foreach(var session in Program.SessionCollection.Items.Where(s => s.Group == group).OrderBy(s => s.Server)) { MenuItem menuItem = new MenuItem(session.MenuFormat); menuItem.TooltipText = session.Tooltip; menuItem.Activated += PopupMenuItem_Activated; menuItem.Data[sessionKey] = session; subMenu.Append(menuItem); } groupMenu.Submenu = subMenu; } topMenu.Append(new SeparatorMenuItem()); foreach (var session in Program.SessionCollection.Items.Where(s => string.IsNullOrEmpty(s.Group)).OrderBy(s => s.Server)) { MenuItem menuItem = new MenuItem(session.MenuFormat); menuItem.TooltipText = session.Tooltip; menuItem.Activated += PopupMenuItem_Activated; menuItem.Data[sessionKey] = session; topMenu.Append(menuItem); } topMenu.Append(new SeparatorMenuItem()); topMenu.Append(actionQuit.CreateMenuItem()); topMenu.ShowAll(); // topMenu.Popup(); } catch { } } private void PopupMenuItem_Activated(object sender, EventArgs e) { try { MenuItem menuItem = (MenuItem) sender; Session session = (Session)menuItem.Data[sessionKey]; Program.SessionCollection.Connect(session); } catch { } } protected virtual void OnNewRdpActionActivated (object sender, System.EventArgs e) { } protected virtual void OnNewVncActionActivated (object sender, System.EventArgs e) { } protected virtual void OnNewSshActionActivated (object sender, System.EventArgs e) { } } }gnome-rdp-0.3.0.9/Interfaces.cs0000644000175000017500000000203611566224110013103 00000000000000// // IIdType.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP { public interface IIdType { string Id { get; } } public interface ISimiliar { bool IsLike(T other); } } gnome-rdp-0.3.0.9/Makefile.include0000644000175000017500000001504311566224111013556 00000000000000VALID_CULTURES = ar bg ca zh-CHS cs da de el en es fi fr he hu is it ja ko nl no pl pt ro ru hr sk sq sv th tr id uk be sl et lv lt fa vi hy eu mk af ka fo hi sw gu ta te kn mr gl kok ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko-KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR id-ID uk-UA be-BY sl-SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM eu-ES mk-MK af-ZA ka-GE fo-FO hi-IN sw-KE gu-IN ta-IN te-IN kn-IN mr-IN gl-ES kok-IN ar-IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sv-FI ar-EG zh-HK de-AT en-AU es-ES fr-CA ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO en-NZ es-CR fr-LU ar-MA en-IE es-PA ar-TN en-ZA es-DO ar-OM es-VE ar-YE es-CO ar-SY es-PE ar-JO en-TT es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es-BO es-SV es-HN es-NI es-PR zh-CHT s2q=$(subst \ ,?,$1) q2s=$(subst ?,\ ,$1) # use this when result will be quoted unesc2=$(subst ?, ,$1) build_sources = $(FILES) $(GENERATED_FILES) build_sources_esc= $(call s2q,$(build_sources)) # use unesc2, as build_sources_embed is quoted build_sources_embed= $(call unesc2,$(build_sources_esc:%='$(srcdir)/%')) comma__=, get_resource_name = $(firstword $(subst $(comma__), ,$1)) get_culture = $(lastword $(subst ., ,$(basename $1))) is_cultured_resource = $(and $(word 3,$(subst ., ,$1)), $(filter $(VALID_CULTURES),$(lastword $(subst ., ,$(basename $1))))) RESOURCES_ESC=$(call s2q,$(RESOURCES)) build_resx_list = $(foreach res, $(RESOURCES_ESC), $(if $(filter %.resx, $(call get_resource_name,$(res))),$(res),)) build_non_culture_resx_list = $(foreach res, $(build_resx_list),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res))) build_non_culture_others_list = $(foreach res, $(filter-out $(build_resx_list),$(RESOURCES_ESC)),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res))) build_others_list = $(build_non_culture_others_list) build_xamlg_list = $(filter %.xaml.g.cs, $(FILES)) # resgen all .resx resources build_resx_files = $(foreach res, $(build_resx_list), $(call get_resource_name,$(res))) build_resx_resources_esc = $(build_resx_files:.resx=.resources) build_resx_resources = $(call q2s,$(build_resx_resources_esc)) # embed resources for the main assembly build_resx_resources_hack = $(subst .resx,.resources, $(build_non_culture_resx_list)) # use unesc2, as build_resx_resources_embed is quoted build_resx_resources_embed = $(call unesc2,$(build_resx_resources_hack:%='-resource:%')) build_others_files = $(call q2s,$(foreach res, $(build_others_list),$(call get_resource_name,$(res)))) build_others_resources = $(build_others_files) # use unesc2, as build_others_resources_embed is quoted build_others_resources_embed = $(call unesc2,$(build_others_list:%='-resource:$(srcdir)/%')) build_resources = $(build_resx_resources) $(build_others_resources) build_resources_embed = $(build_resx_resources_embed) $(build_others_resources_embed) # -usesourcepath is available only for resgen2 emit_resgen_target_1=$(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); cd '$$(shell dirname '$$<')' && MONO_IOMAP=drive $$(RESGEN) '$$(shell basename '$$<')' '$$(shell basename '$$@')' emit_resgen_target_2=$(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); MONO_IOMAP=drive $$(RESGEN) -usesourcepath '$$<' '$$@' emit_resgen_target=$(if $(filter resgen2,$(RESGEN)),$(emit_resgen_target_2),$(emit_resgen_target_1)) emit_resgen_targets=$(foreach res,$(build_resx_resources_esc),$(eval $(call emit_resgen_target,$(res)))) build_references_ref = $(call q2s,$(foreach ref, $(call s2q,$(REFERENCES)), $(if $(filter -pkg:%, $(ref)), $(ref), $(if $(filter -r:%, $(ref)), $(ref), -r:$(ref))))) build_references_ref += $(call q2s,$(foreach ref, $(call s2q,$(DLL_REFERENCES)), -r:$(ref))) build_references_ref += $(call q2s,$(foreach ref, $(call s2q,$(PROJECT_REFERENCES)), -r:$(ref))) s2q2s=$(call unesc2,$(call s2q,$1)) cp_actual=test -z $1 || cp $1 $2 cp=$(call cp_actual,'$(call s2q2s,$1)','$(call s2q2s,$2)') rm_actual=test -z '$1' || rm -f '$2' rm=$(call rm_actual,$(call s2q2s,$1),$(call s2q2s,$2)/$(shell basename '$(call s2q2s,$1)')) EXTRA_DIST += $(build_sources) $(build_resx_files) $(build_others_files) $(ASSEMBLY_WRAPPER_IN) $(EXTRAS) $(DATA_FILES) $(build_culture_res_files) CLEANFILES += $(ASSEMBLY) $(ASSEMBLY).mdb $(BINARIES) $(build_resx_resources) $(build_satellite_assembly_list) DISTCLEANFILES = $(GENERATED_FILES) $(pc_files) $(BUILD_DIR)/* pkglib_SCRIPTS = $(ASSEMBLY) bin_SCRIPTS = $(BINARIES) programfilesdir = @libdir@/@PACKAGE@ programfiles_DATA = $(PROGRAMFILES) # macros # $(call emit-deploy-target,deploy-variable-name) define emit-deploy-target $($1): $($1_SOURCE) mkdir -p '$$(shell dirname '$$@')' cp '$$<' '$$@' endef # $(call emit-deploy-wrapper,wrapper-variable-name,wrapper-sourcefile,x) # assumes that for a wrapper foo.pc its source template is foo.pc.in # if $3 is non-empty then wrapper is marked exec define emit-deploy-wrapper $($1): $2 mkdir -p '$$(shell dirname '$$@')' cp '$$<' '$$@' $(if $3,chmod +x '$$@') endef # generating satellite assemblies culture_resources = $(foreach res, $(RESOURCES_ESC), $(if $(call is_cultured_resource,$(call get_resource_name, $(res))),$(res))) cultures = $(sort $(foreach res, $(culture_resources), $(call get_culture,$(call get_resource_name,$(res))))) culture_resource_dependencies = $(call q2s,$(BUILD_DIR)/$1/$(SATELLITE_ASSEMBLY_NAME): $(subst .resx,.resources,$2)) culture_resource_commandlines = $(call unesc2,cmd_line_satellite_$1 += '/embed:$(subst .resx,.resources,$2)') build_satellite_assembly_list = $(call q2s,$(cultures:%=$(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME))) build_culture_res_files = $(call q2s,$(foreach res, $(culture_resources),$(call get_resource_name,$(res)))) install_satellite_assembly_list = $(subst $(BUILD_DIR),$(DESTDIR)$(libdir)/$(PACKAGE),$(build_satellite_assembly_list)) $(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_dependencies,$(call get_culture,$(call get_resource_name,$(res))),$(call get_resource_name,$(res)))))) $(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_commandlines,$(call get_culture,$(call get_resource_name,$(res))),$(res))))) $(build_satellite_assembly_list): $(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME): mkdir -p '$(@D)' $(AL) -out:'$@' -culture:$* -t:lib $(cmd_line_satellite_$*) $(install_satellite_assembly_list): mkdir -p '$(@D)' cp $(subst $(DESTDIR)$(libdir)/$(PACKAGE), $(BUILD_DIR), $@) $@ install-satellite-assemblies: $(install_satellite_assembly_list) uninstall-satellite-assemblies: rm -rf $(install_satellite_assembly_list)gnome-rdp-0.3.0.9/KeyringProxy.cs0000644000175000017500000001005211566224110013467 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using Gnome.Keyring; using Mono.Unix; using GnomeRDP.Logging; namespace GnomeRDP { /// /// Generic class to manage the GNOME keyring. /// public static class KeyringProxy { private const string objectName = "Gnome-RDP"; /// /// Gets a password from the GNOME keyring. /// /// /// Returns the password from the GNOME keyring. If no password is found, returns null. /// public static string GetPassword(string user, string domain, string server, Protocol protocol) { try { string defaultKeyring = Ring.GetDefaultKeyring(); string obj = objectName; string authType = null; int port = 0; NetItemData[] items = Ring.FindNetworkPassword(user, domain, server, obj, protocol.ToString(), authType, port); if(items == null) return null; string password = null; foreach(NetItemData item in items) { if(item.Keyring == defaultKeyring && password == null) { password = item.Secret; } else { Log.Add(LogLevel.Warning, Catalog.GetString("Duplicate entries found. Deleting item {0} from keyring {1}"), item.ItemID, item.Keyring); Ring.DeleteItem(item.Keyring, item.ItemID); } } return password; } catch (Exception) { Log.Add(LogLevel.Error, "Error retreiving password for {0}\\{1} at {2}:{3}", domain, user, server, protocol); return null; } } /// /// Stores a password in the gnome keyring. /// public static void SetPassword(string user, string domain, string server, Protocol protocol, string password) { try { string defaultKeyring = Ring.GetDefaultKeyring(); string obj = objectName; string authType = null; int port = 0; Ring.CreateOrModifyNetworkPassword(defaultKeyring, user, domain, server, obj, protocol.ToString(), authType, port, password); } catch (Exception ex) { Log.Add(ex); } } public static void ClearSavedPasswords(string user, string domain) { try { string defaultKeyring = Ring.GetDefaultKeyring(); var attributes = new Hashtable(); attributes["object"] = objectName; attributes["user"] = user; attributes["domain"] = domain; foreach (var itemData in Ring.Find(ItemType.NetworkPassword, attributes)) { if (itemData.Keyring == defaultKeyring) Ring.DeleteItem(defaultKeyring, itemData.ItemID); } } catch (Exception ex) { Log.Add(ex); } } public static void ReplaceSavedPasswords(string user, string domain, string password) { try { string defaultKeyring = Ring.GetDefaultKeyring(); var attributes = new Hashtable(); attributes["object"] = objectName; attributes["user"] = user; attributes["domain"] = domain; foreach (var itemData in Ring.Find(ItemType.NetworkPassword, attributes)) { var netItemData = (NetItemData)itemData; string server = netItemData.Server; string protocol = netItemData.Protocol; string authType = null; int port = 0; Ring.CreateOrModifyNetworkPassword(defaultKeyring, user, domain, server, objectName, protocol, authType, port, password); } } catch (Exception ex) { Log.Add(ex); } } } } gnome-rdp-0.3.0.9/ChangeLog0000644000175000017500000003774011566224110012255 000000000000002011-05-22 James P Michels III * gnome-rdp.sln: * gnome-rdp.csproj: Advanced version 2011-05-22 James P Michels III * Program.cs: * gnome-rdp.csproj: * gtk-gui/gui.stetic: Removing DBus support 2011-04-30 James P Michels III * gnome-rdp.sln: * gnome-rdp.csproj: * Database/Sqlite.cs: * gtk-gui/generated.cs: * gtk-gui/GnomeRDP.PasswordDialog.cs: Fixed crash on start bug when legacy sqLite DB does not exist. 2011-03-20 James P Michels III * gnome-rdp.sln: * MainWindow.cs: * gnome-rdp.csproj: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Sessions/Session.cs: * Identities/Identity.cs: * Sessions/SessionsWidget.cs: * Identities/IdentityDialog.cs: * Identities/IdentitiesWidget.cs: * gtk-gui/GnomeRDP.PasswordDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: Improvements to disambiguate items in notification area menu. 2011-03-20 James P Michels III * gnome-rdp.sln: * gnome-rdp.csproj: * gtk-gui/gui.stetic: * gtk-gui/GnomeRDP.PasswordDialog.cs: Fixed default button in password dialog. 2011-01-14 James P Michels III * gnome-rdp.sln: * gnome-rdp.csproj: * gtk-gui/gui.stetic: Updated version for packaging fixes. 2011-01-13 James P Michels III * Tests: * gnome-rdp.sln: * Tests/ChangeLog: * gnome-rdp.csproj: * gtk-gui/gui.stetic: * Sessions/Session.cs: * gtk-gui/generated.cs: * Tests/ApplicationDataFiles: * Sessions/SessionsWidget.cs: * Tests/gnome-rdp-tests.csproj: * gtk-gui/GnomeRDP.LogWidget.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * gtk-gui/GnomeRDP.PasswordDialog.cs: * gtk-gui/GnomeRDP.SshProfileDialog.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesWidget.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs: * Tests/ApplicationDataFiles/FileManagerTests.cs: Fixes for launchpad bug 650839 Removed unused unit testing project. Author fails at unit testing. 2010-11-03 James P Michels III * gnome-rdp.sln: * gnome-rdp.csproj: Updated version information. 2010-11-03 James P Michels III * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Database/Sqlite.cs: * gtk-gui/generated.cs: * gtk-gui/GnomeRDP.LogWidget.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * gtk-gui/GnomeRDP.PasswordDialog.cs: * gtk-gui/GnomeRDP.SshProfileDialog.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesWidget.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs: Bug fixes. Mono.Data.SqliteClient references changes to Mono.Data.Sqlite 2010-04-18 James P Michels III * Program.cs: * DBus/GnomeRdpServer.cs: Fixed message pump deadlock for Docky Plugin calls to GnomeRDP UI. 2010-04-18 James P Michels III * Program.cs: * MainWindow.cs: * gtk-gui/gui.stetic: * DBus/GnomeRdpServer.cs: * Profiles/ProfileCollection.cs: Docky plugin support. 2010-04-18 James P Michels III * gnome-rdp.sln: * MainWindow.cs: * gnome-rdp.csproj: * gtk-gui/gui.stetic: * gtk-gui/GnomeRDP.MainWindow.cs: Cleaup project setting errors. 2010-03-13 James P Michels III * IIdType.cs: * Interfaces.cs: * Collection.cs: * gnome-rdp.csproj: * Ssh/SshProfile.cs: * Rdp/RdpProfile.cs: * Vnc/VncProfile.cs: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Profiles/Profile.cs: * Sessions/Session.cs: * Identities/Identity.cs: * Vnc/VncProfileDialog.cs: * Ssh/SshProfileDialog.cs: * Profiles/ProfilesWidget.cs: * gtk-gui/GnomeRDP.SshProfileDialog.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs: Refactoring to use ISimiliar. This removed an inconsistency where IEquatable was being used to identify similiar, but not equal items. 2010-03-07 James P Michels III * Program.cs: * Collection.cs: * gnome-rdp.csproj: * Vnc/VncProfile.cs: * Ssh/SshProfile.cs: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Database/Sqlite.cs: * Vnc/VncEncoding.cs: * Profiles/Profile.cs: * Sessions/Session.cs: * Vnc/VncColorDepth.cs: * Identities/Identity.cs: * Sessions/SessionDialog.cs: * Profiles/ProfilesWidget.cs: * Vnc/VncProfileCollection.cs: * Rdp/RdpProfileCollection.cs: * Profiles/ProfileCollection.cs: * ApplicationDataFiles/FileManager.cs: Refactored to use ProfileCollection for all Profile derived types. Further implimented Vnc and SSh profiles. 2010-03-06 James P Michels III * Profiles/ProfileCollection.cs: Adding support for a static ProfileCollection class * Database/Sqlite.cs: * Sessions/Session.cs: * Sessions/SessionDialog.cs: * Profiles/ProfilesWidget.cs: Refactoring * Vnc/VncProfile.cs: * Vnc/VncProfileCollection.cs: WIP support for VNC * gnome-rdp.csproj: New classes added * Program.cs: Moved profiles function 2010-03-04 James P Michels III * Database/Sqlite.cs: Adding changes with some modification based on Stephen Phillips patch submission * Sessions/Session.cs: Added new construct to allow group to be passed. * gtk-gui/gui.stetic: Auto generated code change. 2010-02-13 James P Michels III * MainWindow.cs: Tweaks to obtain desire popup menu behavior from status icon 2010-02-13 James P Michels III * Program.cs: * gnome-rdp.csproj: * Vnc/VncProfile.cs: * gtk-gui/gui.stetic: * Database/Sqlite.cs: * Vnc/VncProfileDialog.cs: * ApplicationDataFiles/FileManager.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs: 2010-01-18 James P Michels III * Program.cs: * gnome-rdp.csproj: * Ssh/SshProfile.cs: * Rdp/RdpProfile.cs: * Vnc/VncProfile.cs: * Vnc/VncEncoding.cs: * gtk-gui/gui.stetic: * Vnc/VncColorDepth.cs: * Identities/Identity.cs: * Sessions/SessionHost.cs: * Sessions/SessionDialog.cs: * Sessions/SessionsWidget.cs: * Identities/IdentityDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: 2009-12-27 James P Michels III * Program.cs: * Protocol.cs: * KeyringProxy.cs: * gnome-rdp.csproj: * Ssh/SshProfile.cs: * Vnc/VncProfile.cs: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Profiles/Profile.cs: * Logging/LogWindow.cs: * gtk-gui/generated.cs: * Logging/LogWidget.cs: * Identities/Identity.cs: * Sessions/SessionsWidget.cs: * Profiles/ProfilesWidget.cs: * Identities/IdentityDialog.cs: * Identities/PasswordDialog.cs: * gtk-gui/GnomeRDP.LogWidget.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * gtk-gui/GnomeRDP.PasswordDialog.cs: * gtk-gui/GnomeRDP.Logging.LogWindow.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: 2009-12-27 James P Michels III * Program.cs: * gnome-rdp.sln: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Database/Sqlite.cs: * Sessions/Session.cs: * Identities/Identity.cs: * Sessions/SessionsWidget.cs: * Sessions/SessionCollection.cs: * gtk-gui/GnomeRDP.PasswordDialog.cs: 2009-11-29 James P Michels III * Program.cs: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Identities/Identity.cs: * Sessions/SessionHost.cs: * Sessions/SessionsWidget.cs: * Profiles/ProfilesWidget.cs: * Sessions/SessionCollection.cs: * Identities/IdentitiesWidget.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: 2009-11-28 James P Michels III * Processes: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * Profiles/Profile.cs: * Logging/LogWindow.cs: * Sessions/SessionHost.cs: * Sessions/SessionsWidget.cs: * Profiles/ProfilesWidget.cs: * Sessions/SessionCollection.cs: 2009-11-22 James P Michels III * MainWindow.cs: * gnome-rdp.csproj: * Resources/vnc.png: * Resources/rdp.png: * ResourceLoader.cs: * Resources/ssh.png: * Resources/ssh_16.png: * Resources/rdp_16.png: * Resources/vnc_16.png: * Resources/group_16.png: * Sessions/SessionsWidget.cs: * Sessions/SessionCollection.cs: 2009-11-22 James P Michels III * Resources: * Program.cs: * Collection.cs: * MainWindow.cs: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Sessions/Session.cs: * gtk-gui/generated.cs: * Identities/Identity.cs: * Sessions/SessionDialog.cs: * Sessions/SessionsWidget.cs: * Rdp/RdpProfileCollection.cs: * Resources/gnome-rdp-icon.png: * Identities/IdentityDialog.cs: * Sessions/SessionCollection.cs: * Identities/IdentitiesWidget.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * Identities/IdentityCollection.cs: * ApplicationDataFiles/FileManager.cs: * gtk-gui/GnomeRDP.Logging.LogWindow.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionDialog.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesWidget.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs: 2009-11-01 James P Michels III * MainWindow.cs: * gtk-gui/gui.stetic: * Sessions/SessionsWidget.cs: * Identities/IdentitiesWidget.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: 2009-11-01 James P Michels III * Program.cs: * MainWindow.cs: * gnome-rdp.csproj: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Sessions/Session.cs: * gtk-gui/generated.cs: * Sessions/SessionDialog.cs: * Sessions/SessionsWidget.cs: * Profiles/ProfilesWidget.cs: * Sessions/SessionCollection.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * Identities/IdentitiesWidget.cs: * gtk-gui/GnomeRDP.SessionDialog.cs: * ApplicationDataFiles/FileManager.cs: * gtk-gui/GnomeRDP.Sessions.SessionDialog.cs: * gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesWidget.cs: * gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs: 2009-10-31 James P Michels III * Program.cs: * MainWindow.cs: * gnome-rdp.csproj: * gtk-gui/gui.stetic: * gtk-gui/generated.cs: * Profiles/ProfilesDialog.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesDialog.cs: 2009-10-31 James P Michels III * Program.cs: * MainWindow.cs: * gnome-rdp.csproj: * gtk-gui/gui.stetic: * gtk-gui/generated.cs: * Sessions/SessionDialog.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * Identities/IdentitiesDialog.cs: * gtk-gui/GnomeRDP.SessionDialog.cs: * gtk-gui/GnomeRDP.Logging.LogWindow.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentitiesDialog.cs: 2009-10-20 James P Michels III * gnome-rdp.csproj: * gtk-gui/gui.stetic: * Sessions/SessionDialog.cs: * gtk-gui/GnomeRDP.SessionDialog.cs: 2009-10-20 James P Michels III * gnome-rdp.csproj: * Sessions/Session.cs: * Identities/Identity.cs: * Identities/IdentityCollection.cs: 2009-10-20 James P Michels III * IIdType.cs: * Collection.cs: * gnome-rdp.csproj: * gtk-gui/gui.stetic: * Profiles/Profile.cs: * Sessions/Session.cs: * Rdp/RdpProfileDialog.cs: * Profiles/ProfilesDialog.cs: * Rdp/RdpProfileCollection.cs: * Sessions/SessionCollection.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: 2009-10-08 James P Michels III * gnome-rdp.csproj: * Rdp/RdpProfileDialog.cs: * Profiles/ProfilesDialog.cs: * gtk-gui/GnomeRDP.Profiles.ProfilesDialog.cs: 2009-10-08 James P Michels III * Ssh: * Vnc: * Sessions: * gnome-rdp.csproj: * Ssh/SshProfile.cs: * Vnc/VncProfile.cs: * gtk-gui/gui.stetic: * Profiles/ProfilesDialog.cs: * gtk-gui/GnomeRDP.ProfilesDialog.cs: 2009-10-08 James P Michels III * Protocol.cs: * Rdp/RdpSound.cs: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * Rdp/RdpVersion.cs: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Rdp/RdpExperience.cs: * Rdp/RdpColorDepth.cs: * Profiles/ProfilesDialog.cs: * gtk-gui/GnomeRDP.ProfilesDialog.cs: 2009-10-08 James P Michels III * MainWindow.cs: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Database/Sqlite.cs: * Logging/LogWindow.cs: * Identities/Identity.cs: * Rdp/RdpProfileDialog.cs: * Profiles/ProfilesDialog.cs: * Identities/IdentityDialog.cs: * gtk-gui/GnomeRDP.MainWindow.cs: * Identities/IdentitiesDialog.cs: * gtk-gui/GnomeRDP.ProfilesDialog.cs: * ApplicationDataFiles/FileManager.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: * gtk-gui/GnomeRDP.Identies.IdentityDialog.cs: 2009-10-04 James P Michels III * Program.cs: * gnome-rdp.csproj: * Database/Sqlite.cs: * Rdp/ProfileCollection.cs: * Rdp/RdpProfileCollection.cs: 2009-10-04 James P Michels III * KeyringProxy.cs: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Profiles/Profile.cs: * Identities/Identity.cs: * Rdp/ProfileCollection.cs: * Profiles/ProfileCollection.cs: * ApplicationDataFiles/FileManager.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: 2009-10-04 James P Michels III * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: 2009-10-03 James P Michels III * Tests: 2009-10-03 James P Michels III * gnome-rdp.csproj: * gtk-gui/gui.stetic: * gtk-gui/GnomeRDP.Logging.LogWindow.cs: 2009-10-03 James P Michels III * gnome-rdp.csproj: * gtk-gui/gui.stetic: * Logging/LogWindow.cs: 2009-10-03 James P Michels III * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Profiles/Profile.cs: * Logging/LogWindow.cs: * gtk-gui/GnomeRDP.Logging.LogWindow.cs: 2009-10-03 James P Michels III * Program.cs: * gnome-rdp.sln: * gnome-rdp.csproj: * Rdp/RdpProfile.cs: * Database/Sqlite.cs: * gtk-gui/gui.stetic: * Logging/LogWindow.cs: * Identities/Identity.cs: * Rdp/RdpProfileDialog.cs: * Identities/IdentitiesDialog.cs: * gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs: 2009-10-01 James P Michels III * Program.cs: * MainWindow.cs: * Logging/Log.cs: * KeyringProxy.cs: * gtk-gui/gui.stetic: * Logging/LogLevel.cs: * Profiles/Profile.cs: * Logging/LogEventArgs.cs: * Profiles/ProfileCollection.cs: * Identities/IdentitiesDialog.cs: * ApplicationDataFiles/FileManager.cs: 2009-09-26 James P Michels III * Program.cs: * MainWindow.cs: * Logging/Log.cs: * KeyringProxy.cs: * gtk-gui/gui.stetic: * Logging/LogLevel.cs: * Logging/LogWindow.cs: * Logging/LogEventArgs.cs: * Identities/IdentitiesDialog.cs: * ApplicationDataFiles/FileManager.cs: * gtk-gui/GnomeRDP.Logging.LogWindow.cs: 2009-09-24 James P Michels III * Program.cs: * MainWindow.cs: * Rdp/RdpProfile.cs: * gtk-gui/gui.stetic: * Logging/LogWindow.cs: * Rdp/RdpColorDepth.cs: * Rdp/RdpExperience.cs: * gtk-gui/GnomeRDP.LogWindow.cs: * gtk-gui/GnomeRDP.MainWindow.cs: gnome-rdp-0.3.0.9/Vnc/0000755000175000017500000000000011566224110011276 500000000000000gnome-rdp-0.3.0.9/Vnc/VncProfileDialog.cs0000644000175000017500000000612211566224110014735 00000000000000// // VncProfileDialog.cs // // Author: // James P Michels III // // Copyright (c) 2010 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using Gtk; namespace GnomeRDP.Vnc { public partial class VncProfileDialog : Gtk.Dialog { public VncProfileDialog (VncProfile profile) { this.Build (); string colorDepthName = (profile == null) ? null : profile.ColorDepth.ToString(); ListStore colorDepthModel = (ListStore)comboboxColorDepth.Model; foreach(var name in Enum.GetNames(typeof(VncColorDepth))) { var iter = colorDepthModel.AppendValues(name); if (name == colorDepthName) comboboxColorDepth.SetActiveIter(iter); } string encodingName = (profile == null) ? null : profile.Encoding.ToString(); ListStore encodingModel = (ListStore)comboboxEncoding.Model; foreach (var name in Enum.GetNames(typeof(VncEncoding))) { var iter = encodingModel.AppendValues(name); if (name == encodingName) comboboxEncoding.SetActiveIter(iter); } if (profile == null) return; entryDescription.Text = profile.Description; checkbuttonFullScreen.Active = profile.FullScreen; checkbuttonViewOnly.Active = profile.ViewOnly; checkbuttonShared.Active = profile.Shared; } public string Description { get { return entryDescription.Text; } } public VncColorDepth ColorDepth { get { TreeIter iter; if (comboboxColorDepth.GetActiveIter(out iter) == false) throw new InvalidOperationException("No color depth is selected"); ListStore model = (ListStore)comboboxColorDepth.Model; string name = (string)model.GetValue(iter, 0); return (VncColorDepth)Enum.Parse(typeof(VncColorDepth), name); } } public VncEncoding Encoding { get { TreeIter iter; if (comboboxEncoding.GetActiveIter(out iter) == false) throw new InvalidOperationException("No encoding is selected"); ListStore model = (ListStore)comboboxEncoding.Model; string name = (string)model.GetValue(iter, 0); return (VncEncoding)Enum.Parse(typeof(VncEncoding), name); } } public bool FullScreen { get { return checkbuttonFullScreen.Active; } } public bool ViewOnly { get { return checkbuttonViewOnly.Active; } } public bool Shared { get { return checkbuttonShared.Active; } } } } gnome-rdp-0.3.0.9/Vnc/VncEncoding.cs0000644000175000017500000000203611566224110013743 00000000000000// // VncEncoding.cs // // Author: // James P Michels III // // Copyright (c) 2010 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Vnc { public enum VncEncoding : byte { Unspecified, CopyRect, CoRre, Hextile, Raw, Rre, Tight, Zlib, } } gnome-rdp-0.3.0.9/Vnc/VncColorDepth.cs0000644000175000017500000000202711566224110014260 00000000000000// // VncColorDepth.cs // // Author: // James P Michels III // // Copyright (c) 2010 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Vnc { public enum VncColorDepth : byte { Bpp8 = 8, Bpp15 = 15, Bpp16 = 16, Bpp24 = 24, Bpp32 = 32, } } gnome-rdp-0.3.0.9/Vnc/VncProfile.cs0000644000175000017500000001064111566224110013616 00000000000000// // VncProfile.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Text; using System.Collections.Generic; using GnomeRDP.Profiles; using GnomeRDP.Identies; namespace GnomeRDP.Vnc { public class VncProfile : Profile { public VncProfile () : base(Protocol.vnc, Program.CreateID(), "") { } private VncProfile(Dictionary dictionary) : base(Protocol.vnc, dictionary) { fullScreen = bool.Parse(dictionary[Fields.fullScreen]); viewOnly = bool.Parse(dictionary[Fields.viewOnly]); shared = bool.Parse(dictionary[Fields.shared]); colorDepth = (VncColorDepth)Enum.Parse(typeof(VncColorDepth), dictionary[Fields.colorDepth]); encoding = (VncEncoding)Enum.Parse(typeof(VncEncoding), dictionary[Fields.encoding]); } private new static class Fields { public const string fullScreen = "FullScreen"; public const string viewOnly = "ViewOnly"; public const string shared = "Shared"; public const string colorDepth = "ColorDepth"; public const string encoding = "Encoding"; } public static VncProfile Create(Dictionary dictionary) { return new VncProfile(dictionary); } public static Dictionary ToDictionary(VncProfile item) { Dictionary dictionary = new Dictionary(); dictionary[Profile.Fields.id] = item.Id; dictionary[Profile.Fields.description] = item.Description; dictionary[Fields.fullScreen] = item.FullScreen.ToString(); dictionary[Fields.viewOnly] = item.ViewOnly.ToString(); dictionary[Fields.shared] = item.Shared.ToString(); dictionary[Fields.colorDepth] = item.ColorDepth.ToString(); dictionary[Fields.encoding] = item.Encoding.ToString(); return dictionary; } private bool fullScreen = false; public bool FullScreen { get { return fullScreen; } set { fullScreen = value; } } private bool viewOnly = false; public bool ViewOnly { get { return viewOnly; } set { viewOnly = value; } } private bool shared = false; public bool Shared { get { return shared; } set { shared = value; } } private VncColorDepth colorDepth; public VncColorDepth ColorDepth { get { return colorDepth; } set { colorDepth = value; } } private VncEncoding encoding; public VncEncoding Encoding { get { return encoding; } set { encoding = value; } } public override bool IsLike (Profile other) { var vncOther = other as VncProfile; if (vncOther == null) return false; return FullScreen == vncOther.FullScreen && ViewOnly == vncOther.ViewOnly && Shared == vncOther.Shared && ColorDepth == vncOther.ColorDepth && Encoding == vncOther.Encoding; } public string ToCommandLineArguements(string server, Identity identity, bool hidePassword) { StringBuilder text = new StringBuilder(); string user = (identity == null) ? null : identity.Username; if (string.IsNullOrEmpty(user) == false) { if (user.Contains(" ")) { text.AppendFormat(" -user \"{0}\"", user); } else { text.AppendFormat(" -user {0}", user); } } if (FullScreen) text.Append(" -fullscreen"); if (ViewOnly) text.Append(" -viewonly"); if (Shared == false) text.Append(" -noshared"); text.AppendFormat(" -depth {0}", (byte)ColorDepth); var encoding = Encoding; if (encoding != VncEncoding.Unspecified) { text.AppendFormat(" -encodings {0}", encoding.ToString().ToLower()); } return text.ToString(); } } }gnome-rdp-0.3.0.9/Makefile.in0000644000175000017500000011225311566224112012543 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Warning: This is an automatically generated file, do not edit! VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/gnome-rdp.in \ $(srcdir)/gnome-rdp.make $(top_srcdir)/Makefile.include \ $(top_srcdir)/configure ChangeLog install-sh missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/expansions.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = gnome-rdp CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibdir)" \ "$(DESTDIR)$(programfilesdir)" SCRIPTS = $(bin_SCRIPTS) $(pkglib_SCRIPTS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive DATA = $(programfiles_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = . DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@ GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@ GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@ GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@ GMCS = @GMCS@ GNOME_KEYRING_SHARP_10_CFLAGS = @GNOME_KEYRING_SHARP_10_CFLAGS@ GNOME_KEYRING_SHARP_10_LIBS = @GNOME_KEYRING_SHARP_10_LIBS@ GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@ GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ expanded_bindir = @expanded_bindir@ expanded_datadir = @expanded_datadir@ expanded_libdir = @expanded_libdir@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = expansions.m4 $(build_sources) $(build_resx_files) \ $(build_others_files) $(ASSEMBLY_WRAPPER_IN) $(EXTRAS) \ $(DATA_FILES) $(build_culture_res_files) #Warning: This is an automatically generated file, do not edit! @ENABLE_DEBUG_TRUE@SUBDIRS = . @ENABLE_RELEASE_TRUE@SUBDIRS = . @ENABLE_DEBUG_TRUE@ASSEMBLY_COMPILER_COMMAND = gmcs @ENABLE_RELEASE_TRUE@ASSEMBLY_COMPILER_COMMAND = gmcs @ENABLE_DEBUG_TRUE@ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:3 -optimize- -debug -define:DEBUG "-define:DEBUG, TRACE" "-main:GnomeRDP.Program" @ENABLE_RELEASE_TRUE@ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- "-main:GnomeRDP.Program" @ENABLE_DEBUG_TRUE@ASSEMBLY = bin/Debug/gnome-rdp.exe @ENABLE_RELEASE_TRUE@ASSEMBLY = bin/Release/gnome-rdp.exe @ENABLE_DEBUG_TRUE@ASSEMBLY_MDB = $(ASSEMBLY).mdb @ENABLE_RELEASE_TRUE@ASSEMBLY_MDB = @ENABLE_DEBUG_TRUE@COMPILE_TARGET = exe @ENABLE_RELEASE_TRUE@COMPILE_TARGET = exe @ENABLE_DEBUG_TRUE@PROJECT_REFERENCES = @ENABLE_RELEASE_TRUE@PROJECT_REFERENCES = @ENABLE_DEBUG_TRUE@BUILD_DIR = bin/Debug @ENABLE_RELEASE_TRUE@BUILD_DIR = bin/Release @ENABLE_DEBUG_TRUE@GNOME_RDP_EXE_MDB_SOURCE = bin/Debug/gnome-rdp.exe.mdb @ENABLE_DEBUG_TRUE@GNOME_RDP_EXE_MDB = $(BUILD_DIR)/gnome-rdp.exe.mdb @ENABLE_RELEASE_TRUE@GNOME_RDP_EXE_MDB = AL = al2 SATELLITE_ASSEMBLY_NAME = $(notdir $(basename $(ASSEMBLY))).resources.dll PROGRAMFILES = \ $(GNOME_RDP_EXE_MDB) BINARIES = \ $(GNOME_RDP) RESGEN = resgen2 FILES = \ gtk-gui/generated.cs \ MainWindow.cs \ Program.cs \ AssemblyInfo.cs \ Identities/IdentityDialog.cs \ gtk-gui/GnomeRDP.MainWindow.cs \ Identities/Identity.cs \ Identities/IdentityCollection.cs \ Database/Sqlite.cs \ ApplicationDataFiles/FileManager.cs \ gtk-gui/GnomeRDP.Identies.IdentityDialog.cs \ Logging/Log.cs \ KeyringProxy.cs \ Protocol.cs \ Rdp/RdpProfile.cs \ Rdp/RdpVersion.cs \ Rdp/RdpSound.cs \ Rdp/RdpExperience.cs \ Rdp/RdpColorDepth.cs \ Logging/LogEventArgs.cs \ Logging/LogLevel.cs \ Profiles/Profile.cs \ Rdp/RdpProfileDialog.cs \ Ssh/SshProfile.cs \ Vnc/VncProfile.cs \ Sessions/Session.cs \ Sessions/SessionCollection.cs \ Collection.cs \ gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs \ Sessions/SessionDialog.cs \ gtk-gui/GnomeRDP.Sessions.SessionDialog.cs \ Sessions/SessionsWidget.cs \ gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs \ Identities/IdentitiesWidget.cs \ gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs \ Profiles/ProfilesWidget.cs \ gtk-gui/GnomeRDP.Profiles.ProfilesWidget.cs \ ResourceLoader.cs \ Sessions/SessionHost.cs \ Identities/PasswordDialog.cs \ gtk-gui/GnomeRDP.PasswordDialog.cs \ Logging/LogWidget.cs \ gtk-gui/GnomeRDP.LogWidget.cs \ Vnc/VncEncoding.cs \ Vnc/VncColorDepth.cs \ Vnc/VncProfileDialog.cs \ gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs \ Profiles/ProfileCollection.cs \ Ssh/SshProfileDialog.cs \ gtk-gui/GnomeRDP.SshProfileDialog.cs \ Interfaces.cs DATA_FILES = RESOURCES = \ gtk-gui/gui.stetic \ Resources/gnome-rdp-icon.png,GnomeRDP.Resources.gnome-rdp-icon.png \ Resources/group_16.png,GnomeRDP.Resources.group_16.png \ Resources/rdp.png,GnomeRDP.Resources.rdp.png \ Resources/rdp_16.png,GnomeRDP.Resources.rdp_16.png \ Resources/ssh.png,GnomeRDP.Resources.ssh.png \ Resources/ssh_16.png,GnomeRDP.Resources.ssh_16.png \ Resources/vnc.png,GnomeRDP.Resources.vnc.png \ Resources/vnc_16.png,GnomeRDP.Resources.vnc_16.png EXTRAS = \ app.desktop \ Identities \ Sessions \ Database \ ApplicationDataFiles \ Logging \ Rdp \ Vnc \ Ssh \ Resources \ ChangeLog \ gnome-rdp.in REFERENCES = \ System \ Mono.Posix \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(GLADE_SHARP_20_LIBS) \ System.Data \ System.Core \ $(GNOME_KEYRING_SHARP_10_LIBS) \ Mono.Data.Sqlite DLL_REFERENCES = CLEANFILES = $(PROGRAMFILES) $(BINARIES) $(ASSEMBLY) $(ASSEMBLY).mdb \ $(BINARIES) $(build_resx_resources) \ $(build_satellite_assembly_list) VALID_CULTURES = ar bg ca zh-CHS cs da de el en es fi fr he hu is it ja ko nl no pl pt ro ru hr sk sq sv th tr id uk be sl et lv lt fa vi hy eu mk af ka fo hi sw gu ta te kn mr gl kok ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko-KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR id-ID uk-UA be-BY sl-SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM eu-ES mk-MK af-ZA ka-GE fo-FO hi-IN sw-KE gu-IN ta-IN te-IN kn-IN mr-IN gl-ES kok-IN ar-IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sv-FI ar-EG zh-HK de-AT en-AU es-ES fr-CA ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO en-NZ es-CR fr-LU ar-MA en-IE es-PA ar-TN en-ZA es-DO ar-OM es-VE ar-YE es-CO ar-SY es-PE ar-JO en-TT es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es-BO es-SV es-HN es-NI es-PR zh-CHT s2q = $(subst \ ,?,$1) q2s = $(subst ?,\ ,$1) # use this when result will be quoted unesc2 = $(subst ?, ,$1) build_sources = $(FILES) $(GENERATED_FILES) build_sources_esc = $(call s2q,$(build_sources)) # use unesc2, as build_sources_embed is quoted build_sources_embed = $(call unesc2,$(build_sources_esc:%='$(srcdir)/%')) comma__ = , get_resource_name = $(firstword $(subst $(comma__), ,$1)) get_culture = $(lastword $(subst ., ,$(basename $1))) is_cultured_resource = $(and $(word 3,$(subst ., ,$1)), $(filter $(VALID_CULTURES),$(lastword $(subst ., ,$(basename $1))))) RESOURCES_ESC = $(call s2q,$(RESOURCES)) build_resx_list = $(foreach res, $(RESOURCES_ESC), $(if $(filter %.resx, $(call get_resource_name,$(res))),$(res),)) build_non_culture_resx_list = $(foreach res, $(build_resx_list),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res))) build_non_culture_others_list = $(foreach res, $(filter-out $(build_resx_list),$(RESOURCES_ESC)),$(if $(call is_cultured_resource,$(call get_resource_name,$(res))),,$(res))) build_others_list = $(build_non_culture_others_list) build_xamlg_list = $(filter %.xaml.g.cs, $(FILES)) # resgen all .resx resources build_resx_files = $(foreach res, $(build_resx_list), $(call get_resource_name,$(res))) build_resx_resources_esc = $(build_resx_files:.resx=.resources) build_resx_resources = $(call q2s,$(build_resx_resources_esc)) # embed resources for the main assembly build_resx_resources_hack = $(subst .resx,.resources, $(build_non_culture_resx_list)) # use unesc2, as build_resx_resources_embed is quoted build_resx_resources_embed = $(call unesc2,$(build_resx_resources_hack:%='-resource:%')) build_others_files = $(call q2s,$(foreach res, $(build_others_list),$(call get_resource_name,$(res)))) build_others_resources = $(build_others_files) # use unesc2, as build_others_resources_embed is quoted build_others_resources_embed = $(call unesc2,$(build_others_list:%='-resource:$(srcdir)/%')) build_resources = $(build_resx_resources) $(build_others_resources) build_resources_embed = $(build_resx_resources_embed) $(build_others_resources_embed) # -usesourcepath is available only for resgen2 emit_resgen_target_1 = $(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); cd '$$(shell dirname '$$<')' && MONO_IOMAP=drive $$(RESGEN) '$$(shell basename '$$<')' '$$(shell basename '$$@')' emit_resgen_target_2 = $(call q2s,$1) : $(call q2s,$(subst .resources,.resx,$1)); MONO_IOMAP=drive $$(RESGEN) -usesourcepath '$$<' '$$@' emit_resgen_target = $(if $(filter resgen2,$(RESGEN)),$(emit_resgen_target_2),$(emit_resgen_target_1)) emit_resgen_targets = $(foreach res,$(build_resx_resources_esc),$(eval $(call emit_resgen_target,$(res)))) build_references_ref = $(call q2s,$(foreach ref, $(call \ s2q,$(REFERENCES)), $(if $(filter -pkg:%, $(ref)), $(ref), \ $(if $(filter -r:%, $(ref)), $(ref), -r:$(ref))))) $(call \ q2s,$(foreach ref, $(call s2q,$(DLL_REFERENCES)), -r:$(ref))) \ $(call q2s,$(foreach ref, $(call s2q,$(PROJECT_REFERENCES)), \ -r:$(ref))) s2q2s = $(call unesc2,$(call s2q,$1)) cp_actual = test -z $1 || cp $1 $2 cp = $(call cp_actual,'$(call s2q2s,$1)','$(call s2q2s,$2)') rm_actual = test -z '$1' || rm -f '$2' rm = $(call rm_actual,$(call s2q2s,$1),$(call s2q2s,$2)/$(shell basename '$(call s2q2s,$1)')) DISTCLEANFILES = $(GENERATED_FILES) $(pc_files) $(BUILD_DIR)/* pkglib_SCRIPTS = $(ASSEMBLY) bin_SCRIPTS = $(BINARIES) programfilesdir = @libdir@/@PACKAGE@ programfiles_DATA = $(PROGRAMFILES) # generating satellite assemblies culture_resources = $(foreach res, $(RESOURCES_ESC), $(if $(call is_cultured_resource,$(call get_resource_name, $(res))),$(res))) cultures = $(sort $(foreach res, $(culture_resources), $(call get_culture,$(call get_resource_name,$(res))))) culture_resource_dependencies = $(call q2s,$(BUILD_DIR)/$1/$(SATELLITE_ASSEMBLY_NAME): $(subst .resx,.resources,$2)) culture_resource_commandlines = $(call unesc2,cmd_line_satellite_$1 += '/embed:$(subst .resx,.resources,$2)') build_satellite_assembly_list = $(call q2s,$(cultures:%=$(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME))) build_culture_res_files = $(call q2s,$(foreach res, $(culture_resources),$(call get_resource_name,$(res)))) install_satellite_assembly_list = $(subst $(BUILD_DIR),$(DESTDIR)$(libdir)/$(PACKAGE),$(build_satellite_assembly_list)) GNOME_RDP = $(BUILD_DIR)/gnome-rdp all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/gnome-rdp.make $(top_srcdir)/Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): gnome-rdp: $(top_builddir)/config.status $(srcdir)/gnome-rdp.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files install-pkglibSCRIPTS: $(pkglib_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_SCRIPTS)'; test -n "$(pkglibdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibdir)$$dir" || exit $$?; \ } \ ; done uninstall-pkglibSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(pkglib_SCRIPTS)'; test -n "$(pkglibdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkglibdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkglibdir)" && rm -f $$files install-programfilesDATA: $(programfiles_DATA) @$(NORMAL_INSTALL) test -z "$(programfilesdir)" || $(MKDIR_P) "$(DESTDIR)$(programfilesdir)" @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(programfilesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(programfilesdir)" || exit $$?; \ done uninstall-programfilesDATA: @$(NORMAL_UNINSTALL) @list='$(programfiles_DATA)'; test -n "$(programfilesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(programfilesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(programfilesdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(programfilesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-programfilesDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binSCRIPTS install-pkglibSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-pkglibSCRIPTS \ uninstall-programfilesDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ distclean distclean-generic distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pkglibSCRIPTS install-programfilesDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binSCRIPTS uninstall-pkglibSCRIPTS \ uninstall-programfilesDATA all: $(ASSEMBLY) $(PROGRAMFILES) $(BINARIES) # macros # $(call emit-deploy-target,deploy-variable-name) define emit-deploy-target $($1): $($1_SOURCE) mkdir -p '$$(shell dirname '$$@')' cp '$$<' '$$@' endef # $(call emit-deploy-wrapper,wrapper-variable-name,wrapper-sourcefile,x) # assumes that for a wrapper foo.pc its source template is foo.pc.in # if $3 is non-empty then wrapper is marked exec define emit-deploy-wrapper $($1): $2 mkdir -p '$$(shell dirname '$$@')' cp '$$<' '$$@' $(if $3,chmod +x '$$@') endef $(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_dependencies,$(call get_culture,$(call get_resource_name,$(res))),$(call get_resource_name,$(res)))))) $(eval $(foreach res, $(culture_resources), $(eval $(call culture_resource_commandlines,$(call get_culture,$(call get_resource_name,$(res))),$(res))))) $(build_satellite_assembly_list): $(BUILD_DIR)/%/$(SATELLITE_ASSEMBLY_NAME): mkdir -p '$(@D)' $(AL) -out:'$@' -culture:$* -t:lib $(cmd_line_satellite_$*) $(install_satellite_assembly_list): mkdir -p '$(@D)' cp $(subst $(DESTDIR)$(libdir)/$(PACKAGE), $(BUILD_DIR), $@) $@ install-satellite-assemblies: $(install_satellite_assembly_list) uninstall-satellite-assemblies: rm -rf $(install_satellite_assembly_list) $(eval $(call emit-deploy-wrapper,GNOME_RDP,gnome-rdp,x)) $(eval $(call emit_resgen_targets)) $(build_xamlg_list): %.xaml.g.cs: %.xaml xamlg '$<' $(ASSEMBLY_MDB): $(ASSEMBLY) $(ASSEMBLY): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list) mkdir -p $(shell dirname $(ASSEMBLY)) $(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref) # Include project specific makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-rdp-0.3.0.9/gnome-rdp.make0000644000175000017500000000764711566224111013236 00000000000000 # Warning: This is an automatically generated file, do not edit! if ENABLE_DEBUG ASSEMBLY_COMPILER_COMMAND = gmcs ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:3 -optimize- -debug -define:DEBUG "-define:DEBUG, TRACE" "-main:GnomeRDP.Program" ASSEMBLY = bin/Debug/gnome-rdp.exe ASSEMBLY_MDB = $(ASSEMBLY).mdb COMPILE_TARGET = exe PROJECT_REFERENCES = BUILD_DIR = bin/Debug GNOME_RDP_EXE_MDB_SOURCE=bin/Debug/gnome-rdp.exe.mdb GNOME_RDP_EXE_MDB=$(BUILD_DIR)/gnome-rdp.exe.mdb endif if ENABLE_RELEASE ASSEMBLY_COMPILER_COMMAND = gmcs ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- "-main:GnomeRDP.Program" ASSEMBLY = bin/Release/gnome-rdp.exe ASSEMBLY_MDB = COMPILE_TARGET = exe PROJECT_REFERENCES = BUILD_DIR = bin/Release GNOME_RDP_EXE_MDB= endif AL=al2 SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll PROGRAMFILES = \ $(GNOME_RDP_EXE_MDB) BINARIES = \ $(GNOME_RDP) RESGEN=resgen2 all: $(ASSEMBLY) $(PROGRAMFILES) $(BINARIES) FILES = \ gtk-gui/generated.cs \ MainWindow.cs \ Program.cs \ AssemblyInfo.cs \ Identities/IdentityDialog.cs \ gtk-gui/GnomeRDP.MainWindow.cs \ Identities/Identity.cs \ Identities/IdentityCollection.cs \ Database/Sqlite.cs \ ApplicationDataFiles/FileManager.cs \ gtk-gui/GnomeRDP.Identies.IdentityDialog.cs \ Logging/Log.cs \ KeyringProxy.cs \ Protocol.cs \ Rdp/RdpProfile.cs \ Rdp/RdpVersion.cs \ Rdp/RdpSound.cs \ Rdp/RdpExperience.cs \ Rdp/RdpColorDepth.cs \ Logging/LogEventArgs.cs \ Logging/LogLevel.cs \ Profiles/Profile.cs \ Rdp/RdpProfileDialog.cs \ Ssh/SshProfile.cs \ Vnc/VncProfile.cs \ Sessions/Session.cs \ Sessions/SessionCollection.cs \ Collection.cs \ gtk-gui/GnomeRDP.Rdp.RdpProfileDialog.cs \ Sessions/SessionDialog.cs \ gtk-gui/GnomeRDP.Sessions.SessionDialog.cs \ Sessions/SessionsWidget.cs \ gtk-gui/GnomeRDP.Sessions.SessionsWidget.cs \ Identities/IdentitiesWidget.cs \ gtk-gui/GnomeRDP.Identies.IdentitiesWidget.cs \ Profiles/ProfilesWidget.cs \ gtk-gui/GnomeRDP.Profiles.ProfilesWidget.cs \ ResourceLoader.cs \ Sessions/SessionHost.cs \ Identities/PasswordDialog.cs \ gtk-gui/GnomeRDP.PasswordDialog.cs \ Logging/LogWidget.cs \ gtk-gui/GnomeRDP.LogWidget.cs \ Vnc/VncEncoding.cs \ Vnc/VncColorDepth.cs \ Vnc/VncProfileDialog.cs \ gtk-gui/GnomeRDP.Vnc.VncProfileDialog.cs \ Profiles/ProfileCollection.cs \ Ssh/SshProfileDialog.cs \ gtk-gui/GnomeRDP.SshProfileDialog.cs \ Interfaces.cs DATA_FILES = RESOURCES = \ gtk-gui/gui.stetic \ Resources/gnome-rdp-icon.png,GnomeRDP.Resources.gnome-rdp-icon.png \ Resources/group_16.png,GnomeRDP.Resources.group_16.png \ Resources/rdp.png,GnomeRDP.Resources.rdp.png \ Resources/rdp_16.png,GnomeRDP.Resources.rdp_16.png \ Resources/ssh.png,GnomeRDP.Resources.ssh.png \ Resources/ssh_16.png,GnomeRDP.Resources.ssh_16.png \ Resources/vnc.png,GnomeRDP.Resources.vnc.png \ Resources/vnc_16.png,GnomeRDP.Resources.vnc_16.png EXTRAS = \ app.desktop \ Identities \ Sessions \ Database \ ApplicationDataFiles \ Logging \ Rdp \ Vnc \ Ssh \ Resources \ ChangeLog \ gnome-rdp.in REFERENCES = \ System \ Mono.Posix \ $(GTK_SHARP_20_LIBS) \ $(GLIB_SHARP_20_LIBS) \ $(GLADE_SHARP_20_LIBS) \ System.Data \ System.Core \ $(GNOME_KEYRING_SHARP_10_LIBS) \ Mono.Data.Sqlite DLL_REFERENCES = CLEANFILES = $(PROGRAMFILES) $(BINARIES) include $(top_srcdir)/Makefile.include GNOME_RDP = $(BUILD_DIR)/gnome-rdp $(eval $(call emit-deploy-wrapper,GNOME_RDP,gnome-rdp,x)) $(eval $(call emit_resgen_targets)) $(build_xamlg_list): %.xaml.g.cs: %.xaml xamlg '$<' $(ASSEMBLY_MDB): $(ASSEMBLY) $(ASSEMBLY): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list) mkdir -p $(shell dirname $(ASSEMBLY)) $(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref) gnome-rdp-0.3.0.9/aclocal.m40000644000175000017500000007314511566224112012344 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([expansions.m4]) gnome-rdp-0.3.0.9/expansions.m40000644000175000017500000000146611566224111013131 00000000000000AC_DEFUN([SHAMROCK_EXPAND_LIBDIR], [ expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` AC_SUBST(expanded_libdir) ]) AC_DEFUN([SHAMROCK_EXPAND_BINDIR], [ expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` AC_SUBST(expanded_bindir) ]) AC_DEFUN([SHAMROCK_EXPAND_DATADIR], [ case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` AC_SUBST(expanded_datadir) ]) gnome-rdp-0.3.0.9/configure0000755000175000017500000036104211566224113012410 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for gnome-rdp 0.3.0.9. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='gnome-rdp' PACKAGE_TARNAME='gnome-rdp' PACKAGE_VERSION='0.3.0.9' PACKAGE_STRING='gnome-rdp 0.3.0.9' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS GNOME_KEYRING_SHARP_10_LIBS GNOME_KEYRING_SHARP_10_CFLAGS GLADE_SHARP_20_LIBS GLADE_SHARP_20_CFLAGS GLIB_SHARP_20_LIBS GLIB_SHARP_20_CFLAGS GTK_SHARP_20_LIBS GTK_SHARP_20_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH ENABLE_RELEASE_FALSE ENABLE_RELEASE_TRUE ENABLE_DEBUG_FALSE ENABLE_DEBUG_TRUE GMCS expanded_datadir expanded_bindir expanded_libdir PKG_CONFIG MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_debug enable_release ' ac_precious_vars='build_alias host_alias target_alias PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GTK_SHARP_20_CFLAGS GTK_SHARP_20_LIBS GLIB_SHARP_20_CFLAGS GLIB_SHARP_20_LIBS GLADE_SHARP_20_CFLAGS GLADE_SHARP_20_LIBS GNOME_KEYRING_SHARP_10_CFLAGS GNOME_KEYRING_SHARP_10_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures gnome-rdp 0.3.0.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/gnome-rdp] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of gnome-rdp 0.3.0.9:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-debug Use 'DEBUG' Configuration [default=NO] --enable-release Use 'RELEASE' Configuration [default=YES] Some influential environment variables: PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GTK_SHARP_20_CFLAGS C compiler flags for GTK_SHARP_20, overriding pkg-config GTK_SHARP_20_LIBS linker flags for GTK_SHARP_20, overriding pkg-config GLIB_SHARP_20_CFLAGS C compiler flags for GLIB_SHARP_20, overriding pkg-config GLIB_SHARP_20_LIBS linker flags for GLIB_SHARP_20, overriding pkg-config GLADE_SHARP_20_CFLAGS C compiler flags for GLADE_SHARP_20, overriding pkg-config GLADE_SHARP_20_LIBS linker flags for GLADE_SHARP_20, overriding pkg-config GNOME_KEYRING_SHARP_10_CFLAGS C compiler flags for GNOME_KEYRING_SHARP_10, overriding pkg-config GNOME_KEYRING_SHARP_10_LIBS linker flags for GNOME_KEYRING_SHARP_10, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF gnome-rdp configure 0.3.0.9 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by gnome-rdp $as_me 0.3.0.9, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='gnome-rdp' VERSION='0.3.0.9' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$PKG_CONFIG" = "xno"; then as_fn_error $? "You need to install pkg-config" "$LINENO" 5 fi expanded_libdir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $libdir )` expanded_bindir=`( case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac eval echo $bindir )` case $prefix in NONE) prefix=$ac_default_prefix ;; *) ;; esac case $exec_prefix in NONE) exec_prefix=$prefix ;; *) ;; esac expanded_datadir=`(eval echo $datadir)` expanded_datadir=`(eval echo $expanded_datadir)` # Extract the first word of "gmcs", so it can be a program name with args. set dummy gmcs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMCS+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMCS in [\\/]* | ?:[\\/]*) ac_cv_path_GMCS="$GMCS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMCS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMCS" && ac_cv_path_GMCS="no" ;; esac fi GMCS=$ac_cv_path_GMCS if test -n "$GMCS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMCS" >&5 $as_echo "$GMCS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$GMCS" = "xno"; then as_fn_error $? "gmcs Not found" "$LINENO" 5 fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug=yes else enable_debug=no fi if test x$enable_debug = xyes; then ENABLE_DEBUG_TRUE= ENABLE_DEBUG_FALSE='#' else ENABLE_DEBUG_TRUE='#' ENABLE_DEBUG_FALSE= fi if test "x$enable_debug" = "xyes" ; then CONFIG_REQUESTED="yes" fi # Check whether --enable-release was given. if test "${enable_release+set}" = set; then : enableval=$enable_release; enable_release=yes else enable_release=no fi if test x$enable_release = xyes; then ENABLE_RELEASE_TRUE= ENABLE_RELEASE_FALSE='#' else ENABLE_RELEASE_TRUE='#' ENABLE_RELEASE_FALSE= fi if test "x$enable_release" = "xyes" ; then CONFIG_REQUESTED="yes" fi if test -z "$CONFIG_REQUESTED" ; then if true; then ENABLE_RELEASE_TRUE= ENABLE_RELEASE_FALSE='#' else ENABLE_RELEASE_TRUE='#' ENABLE_RELEASE_FALSE= fi enable_release=yes fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK_SHARP_20" >&5 $as_echo_n "checking for GTK_SHARP_20... " >&6; } if test -n "$GTK_SHARP_20_CFLAGS"; then pkg_cv_GTK_SHARP_20_CFLAGS="$GTK_SHARP_20_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_SHARP_20_CFLAGS=`$PKG_CONFIG --cflags "gtk-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK_SHARP_20_LIBS"; then pkg_cv_GTK_SHARP_20_LIBS="$GTK_SHARP_20_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK_SHARP_20_LIBS=`$PKG_CONFIG --libs "gtk-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk-sharp-2.0" 2>&1` else GTK_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK_SHARP_20_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk-sharp-2.0) were not met: $GTK_SHARP_20_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GTK_SHARP_20_CFLAGS and GTK_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GTK_SHARP_20_CFLAGS and GTK_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GTK_SHARP_20_CFLAGS=$pkg_cv_GTK_SHARP_20_CFLAGS GTK_SHARP_20_LIBS=$pkg_cv_GTK_SHARP_20_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB_SHARP_20" >&5 $as_echo_n "checking for GLIB_SHARP_20... " >&6; } if test -n "$GLIB_SHARP_20_CFLAGS"; then pkg_cv_GLIB_SHARP_20_CFLAGS="$GLIB_SHARP_20_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_SHARP_20_CFLAGS=`$PKG_CONFIG --cflags "glib-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIB_SHARP_20_LIBS"; then pkg_cv_GLIB_SHARP_20_LIBS="$GLIB_SHARP_20_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_SHARP_20_LIBS=`$PKG_CONFIG --libs "glib-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIB_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-sharp-2.0" 2>&1` else GLIB_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_SHARP_20_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-sharp-2.0) were not met: $GLIB_SHARP_20_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GLIB_SHARP_20_CFLAGS and GLIB_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GLIB_SHARP_20_CFLAGS and GLIB_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GLIB_SHARP_20_CFLAGS=$pkg_cv_GLIB_SHARP_20_CFLAGS GLIB_SHARP_20_LIBS=$pkg_cv_GLIB_SHARP_20_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLADE_SHARP_20" >&5 $as_echo_n "checking for GLADE_SHARP_20... " >&6; } if test -n "$GLADE_SHARP_20_CFLAGS"; then pkg_cv_GLADE_SHARP_20_CFLAGS="$GLADE_SHARP_20_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glade-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glade-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLADE_SHARP_20_CFLAGS=`$PKG_CONFIG --cflags "glade-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLADE_SHARP_20_LIBS"; then pkg_cv_GLADE_SHARP_20_LIBS="$GLADE_SHARP_20_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glade-sharp-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glade-sharp-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLADE_SHARP_20_LIBS=`$PKG_CONFIG --libs "glade-sharp-2.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLADE_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glade-sharp-2.0" 2>&1` else GLADE_SHARP_20_PKG_ERRORS=`$PKG_CONFIG --print-errors "glade-sharp-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLADE_SHARP_20_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glade-sharp-2.0) were not met: $GLADE_SHARP_20_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GLADE_SHARP_20_CFLAGS and GLADE_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GLADE_SHARP_20_CFLAGS and GLADE_SHARP_20_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GLADE_SHARP_20_CFLAGS=$pkg_cv_GLADE_SHARP_20_CFLAGS GLADE_SHARP_20_LIBS=$pkg_cv_GLADE_SHARP_20_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNOME_KEYRING_SHARP_10" >&5 $as_echo_n "checking for GNOME_KEYRING_SHARP_10... " >&6; } if test -n "$GNOME_KEYRING_SHARP_10_CFLAGS"; then pkg_cv_GNOME_KEYRING_SHARP_10_CFLAGS="$GNOME_KEYRING_SHARP_10_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-keyring-sharp-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gnome-keyring-sharp-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GNOME_KEYRING_SHARP_10_CFLAGS=`$PKG_CONFIG --cflags "gnome-keyring-sharp-1.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GNOME_KEYRING_SHARP_10_LIBS"; then pkg_cv_GNOME_KEYRING_SHARP_10_LIBS="$GNOME_KEYRING_SHARP_10_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnome-keyring-sharp-1.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gnome-keyring-sharp-1.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GNOME_KEYRING_SHARP_10_LIBS=`$PKG_CONFIG --libs "gnome-keyring-sharp-1.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GNOME_KEYRING_SHARP_10_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnome-keyring-sharp-1.0" 2>&1` else GNOME_KEYRING_SHARP_10_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnome-keyring-sharp-1.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GNOME_KEYRING_SHARP_10_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gnome-keyring-sharp-1.0) were not met: $GNOME_KEYRING_SHARP_10_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables GNOME_KEYRING_SHARP_10_CFLAGS and GNOME_KEYRING_SHARP_10_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables GNOME_KEYRING_SHARP_10_CFLAGS and GNOME_KEYRING_SHARP_10_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5 ; } else GNOME_KEYRING_SHARP_10_CFLAGS=$pkg_cv_GNOME_KEYRING_SHARP_10_CFLAGS GNOME_KEYRING_SHARP_10_LIBS=$pkg_cv_GNOME_KEYRING_SHARP_10_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi ac_config_files="$ac_config_files gnome-rdp Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DEBUG_TRUE}" && test -z "${ENABLE_DEBUG_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DEBUG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_RELEASE_TRUE}" && test -z "${ENABLE_RELEASE_FALSE}"; then as_fn_error $? "conditional \"ENABLE_RELEASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_RELEASE_TRUE}" && test -z "${ENABLE_RELEASE_FALSE}"; then as_fn_error $? "conditional \"ENABLE_RELEASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by gnome-rdp $as_me 0.3.0.9, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ gnome-rdp config.status 0.3.0.9 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "gnome-rdp") CONFIG_FILES="$CONFIG_FILES gnome-rdp" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi gnome-rdp-0.3.0.9/Logging/0000755000175000017500000000000011566224110012136 500000000000000gnome-rdp-0.3.0.9/Logging/LogLevel.cs0000644000175000017500000000203511566224110014116 00000000000000// // LogMessageType.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Logging { public enum LogLevel : byte { None = 0, Error = 1, Warning = 2, Information = 3, Verbose = 4, } } gnome-rdp-0.3.0.9/Logging/LogWidget.cs0000644000175000017500000000472711566224110014304 00000000000000// // LogWidget.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.ComponentModel; using System.Collections.Generic; using GnomeRDP.Logging; using Gtk; namespace GnomeRDP { [ToolboxItem(true)] public partial class LogWidget : Gtk.Bin { private Queue logEvents = new Queue(); private bool destroyed = false; public LogWidget () { this.Build (); string logLevelName = Log.LogLevelFilter.ToString(); string[] names = Enum.GetNames(typeof(LogLevel)); for (int i = 0; i < names.Length; i++) { cbLogLevelFilter.AppendText(names[i]); if (names[i] == logLevelName) cbLogLevelFilter.Active = i; } Log.Added += (sender, e) => { lock(logEvents) { logEvents.Enqueue(e); } }; GLib.Timeout.Add(1000, () => { Update(); return destroyed == false; }); } private void Update() { TextBuffer textBuffer = textview.Buffer; while (true) { LogEventArgs e; lock (logEvents) { if (logEvents.Count == 0) return; e = logEvents.Dequeue(); } string text = string.Format("{0}: {1}{2}", e.logLevel, e.message, Environment.NewLine); TextIter endIter = textBuffer.EndIter; textBuffer.Insert(ref endIter, text); } } protected virtual void OnCbLogLevelFilterChanged (object sender, System.EventArgs e) { try { LogLevel logLevel = (LogLevel)Enum.Parse(typeof(LogLevel), cbLogLevelFilter.ActiveText); Log.LogLevelFilter = logLevel; } catch { } } protected override void OnDestroyed () { destroyed = true; base.OnDestroyed (); } } } gnome-rdp-0.3.0.9/Logging/Log.cs0000644000175000017500000000422611566224110013132 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Diagnostics; namespace GnomeRDP.Logging { public static class Log { private static LogLevel logLevelFilter = LogLevel.Information; public static LogLevel LogLevelFilter { get { return logLevelFilter; } set { logLevelFilter = value; } } public static event EventHandler Added; private static void OnAdded(LogLevel logLevel, string message) { var added = Added; if (added == null) return; added(null, new LogEventArgs(logLevel, message)); } public static void Add(LogLevel logLevel, string message) { if (logLevel == LogLevel.None) throw new ArgumentException("LogLevel.None is not valid for add operations"); if (logLevel > LogLevelFilter) return; OnAdded(logLevel, message); } public static void Add(LogLevel logLevel, string format, params object[] args) { if (logLevel == LogLevel.None) throw new ArgumentException("LogLevel.None is not valid for add operations"); if (logLevel > LogLevelFilter) return; OnAdded(logLevel, string.Format(format, args)); } public static void Add(LogLevel logLevel, Func func) { if (logLevel == LogLevel.None) throw new ArgumentException("LogLevel.None is not valid for add operations"); if (logLevel > LogLevelFilter) return; OnAdded(logLevel, func()); } public static void Add(Exception ex) { Add(LogLevel.Error, ex.Message); Add(LogLevel.Verbose, ex.ToString()); } } } gnome-rdp-0.3.0.9/Logging/LogEventArgs.cs0000644000175000017500000000223711566224110014751 00000000000000// // LogEventArgs.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Logging { public class LogEventArgs : EventArgs { public readonly LogLevel logLevel; public readonly string message; public LogEventArgs (LogLevel logLevel, string message) { this.logLevel = logLevel; this.message = message; } } } gnome-rdp-0.3.0.9/Database/0000755000175000017500000000000011566224110012254 500000000000000gnome-rdp-0.3.0.9/Database/Sqlite.cs0000644000175000017500000001526511566224110013775 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Contributors // Stephen Phillips using System; using System.Collections.Generic; using System.Data; using Mono.Data.Sqlite; using GnomeRDP.Identies; using GnomeRDP.Sessions; using GnomeRDP.Profiles; using GnomeRDP.Rdp; using GnomeRDP.Logging; namespace GnomeRDP.Database { public static class Sqlite { private static string filename = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "/.gnome-rdp.db"; public static void SetDatabasePath(string newPath) { filename = newPath; } private static SqliteConnection Connect(string filename) { string connectString = "URI=file:" + filename + ",version=3,encoding=UTF-8"; SqliteConnection connection = new SqliteConnection(connectString); connection.Open(); return connection; } private static class SessionFields { public const string id = "id"; public const string parentId = "parentid"; public const string isCategory = "iscategory"; public const string sessionName = "sessionname"; public const string protocol = "protocol"; public const string computer = "computer"; public const string user = "user"; public const string password = "password"; public const string domain = "domain"; public const string serverType = "srvtype"; public const string colorDepth = "colordepth"; public const string screenResolutionX = "screenresolutionx"; public const string screenResolutionY = "screenresolutiony"; public const string soundRedirection = "soundredirection"; public const string keyboardLanguage = "keyboardlang"; public const string connectionType = "connectiontype"; public const string windowMode = "windowmode"; public const string terminalSize = "terminalsize"; public const string compressionLevel = "compressionlevel"; public const string imageQuality = "imagequality"; } private static RdpProfile ParseRdpProfile(IDataReader reader) { int protocol = reader.GetInt32(reader.GetOrdinal(SessionFields.protocol)); if (protocol != 0) throw new ArgumentException("protocol must be 0 for Rdp"); int serverType = reader.GetInt32(reader.GetOrdinal(SessionFields.serverType)); int colorDepth = reader.GetInt32(reader.GetOrdinal(SessionFields.colorDepth)); int width = reader.GetInt32(reader.GetOrdinal(SessionFields.screenResolutionX)); int height = reader.GetInt32(reader.GetOrdinal(SessionFields.screenResolutionY)); int soundRedirection = reader.GetInt32(reader.GetOrdinal(SessionFields.soundRedirection)); string keyboardLanguage = reader.GetString(reader.GetOrdinal(SessionFields.keyboardLanguage)); int windowMode = reader.GetInt32(reader.GetOrdinal(SessionFields.windowMode)); RdpProfile profile = new RdpProfile(); profile.RdpVersion = (serverType == 0) ? RdpVersion.Version4 : RdpVersion.Version5; profile.RdpColorDepth = IntToRdpColorDepth(colorDepth); profile.Width = width; profile.Height = height; profile.RdpSound = IntToRdpSound(soundRedirection); if (profile.RdpSound == RdpSound.Remote) { profile.AttachToConsole = true; } profile.KeyboardLayout = keyboardLanguage; profile.FullScreen = windowMode > 0 ? true : false; return profile; } private static Identity ParseIdentity(IDataReader reader) { string domain = reader.GetString(reader.GetOrdinal(SessionFields.domain)); string username = reader.GetString(reader.GetOrdinal(SessionFields.user)); Identity identity = new Identity(Program.CreateID(), domain, username, true, ""); return identity; } private static RdpColorDepth IntToRdpColorDepth(int colorDepth) { switch (colorDepth) { case 0: return RdpColorDepth.Bpp8; case 1: return RdpColorDepth.Bpp15; default: case 2: return RdpColorDepth.Bpp16; case 3: return RdpColorDepth.Bpp24; case 4: return RdpColorDepth.Bpp32; } } private static RdpSound IntToRdpSound(int soundRedirection) { switch (soundRedirection) { case 0: return RdpSound.Off; case 1: return RdpSound.Remote; case 2: return RdpSound.Local; default: return RdpSound.Unspecified; } } public static void ImportSessions() { try { using(SqliteConnection connection = Connect(filename)) { var groups = LoadGroups(connection); IDbCommand command = connection.CreateCommand(); // TODO remove where clause after adding Ssh and Vnc support command.CommandText = "SELECT * FROM session where protocol=0"; IDataReader reader = command.ExecuteReader(); while (reader.NextResult()) { string server = reader.GetString(reader.GetOrdinal(SessionFields.computer)); int groupId = reader.GetInt32(reader.GetOrdinal(SessionFields.parentId)); string group; if (groups.TryGetValue(groupId, out group) == false) group = null; // Let's be explicit about this behavior. // HACK workaround for mono 2.4.x compiler bug. remove after moving all deployments to mono 2.6 or higher. Identity identity = (Identity)Program.IdentityCollection.FindSimiliarOrAdd(ParseIdentity(reader)); RdpProfile rdpProfile = (RdpProfile)Program.ProfileCollection.FindSimiliarOrAdd(ParseRdpProfile(reader)); Program.SessionCollection.Add(new Session(server, identity.Id, rdpProfile.Id, group)); } } } catch (Exception ex) { Log.Add(ex); } } private static Dictionary LoadGroups(SqliteConnection connection) { var groups = new Dictionary(); try { IDbCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM session where protocol=99"; IDataReader reader = command.ExecuteReader(); while (reader.NextResult()) { int groupId = reader.GetInt32(reader.GetOrdinal(SessionFields.id)); string groupName = reader.GetString(reader.GetOrdinal(SessionFields.sessionName)); groups.Add(groupId, groupName); } } catch (Exception ex) { Log.Add(ex); } return groups; } } } gnome-rdp-0.3.0.9/ApplicationDataFiles/0000755000175000017500000000000011566224110014570 500000000000000gnome-rdp-0.3.0.9/ApplicationDataFiles/FileManager.cs0000644000175000017500000001623511566224110017220 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Contributors // Stephen Phillips using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Diagnostics; using GnomeRDP.Identies; using GnomeRDP.Logging; using GnomeRDP.Rdp; using GnomeRDP.Vnc; using GnomeRDP.Ssh; using GnomeRDP.Sessions; namespace GnomeRDP.ApplicationDataFiles { public static class FileManager { private const string nullValue = ""; private static class Files { public const string gnomeRdp = "gnome-rdp.conf"; public const string indentities = "identities.conf"; public const string rdpProfiles = "rdpProfiles.conf"; public const string vncProfiles = "vncProfiles.conf"; public const string sshProfiles = "sshProfiles.conf"; public const string sessions = "sessions.conf"; private static string applicationDataFolderPath = GetDefaultApplicationDataFolderPath(); public static string GetPathTo(string file) { return string.Format("{0}{1}{2}", GetApplicationDataFolderPath(), Path.DirectorySeparatorChar, file); } public static void SetApplicationDataFolderPath(string path) { applicationDataFolderPath = path; } private static string GetDefaultApplicationDataFolderPath() { return string.Format("{0}{1}{2}", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Path.DirectorySeparatorChar, "GnomeRDP"); } public static string GetApplicationDataFolderPath() { return applicationDataFolderPath; } } private static class ItemKeys { public const string identity = "[Identity]"; public const string rdpProfile = "[RdpProfile]"; public const string vncProfile = "[VncProfile]"; public const string sshProfile = "[SshProfile]"; public const string session = "[Session]"; } public static void SetApplicationDataFolderPath(string path) { Files.SetApplicationDataFolderPath(path); } public static void VerifyApplicationDataFolderExists() { string path = Files.GetApplicationDataFolderPath(); if (Directory.Exists(path)) return; Directory.CreateDirectory(path); } public static Identity[] LoadIdentities() { return LoadObjects(Files.indentities, ItemKeys.identity, Identity.Create); } public static void SaveIdentities(IEnumerable identities) { SaveObjects(identities, Files.indentities, ItemKeys.identity, Identity.ToDictionary); } public static RdpProfile[] LoadRdpProfiles() { return LoadObjects(Files.rdpProfiles, ItemKeys.rdpProfile, RdpProfile.Create); } public static void SaveRdpProfiles(IEnumerable rdpProfiles) { SaveObjects(rdpProfiles, Files.rdpProfiles, ItemKeys.rdpProfile, RdpProfile.ToDictionary); } public static VncProfile[] LoadVncProfiles() { return LoadObjects(Files.vncProfiles, ItemKeys.vncProfile, VncProfile.Create); } public static void SaveVncProfiles(IEnumerable vncProfiles) { SaveObjects(vncProfiles, Files.vncProfiles, ItemKeys.vncProfile, VncProfile.ToDictionary); } public static SshProfile[] LoadSshProfiles() { return LoadObjects(Files.sshProfiles, ItemKeys.sshProfile, SshProfile.Create); } public static void SaveSshProfiles(IEnumerable sshProfiles) { SaveObjects(sshProfiles, Files.sshProfiles, ItemKeys.sshProfile, SshProfile.ToDictionary); } public static Session[] LoadSessions() { return LoadObjects(Files.sessions, ItemKeys.session, Session.Create); } public static void SaveSessions(IEnumerable sessions) { SaveObjects(sessions, Files.sessions, ItemKeys.session, Session.ToDictionary); } private static T[] LoadObjects(string filename, string itemKey, Func, T> CreateDelegate) { List items = new List(); try { string path = Files.GetPathTo(filename); using (StreamReader r = File.OpenText(path)) { Dictionary dictionary = new Dictionary(); string line; while ((line = r.ReadLine()) != null) { if (line == itemKey) { if (dictionary.ContainsKey(itemKey)) { // Create item from existing dictionary before starting a new one. try { items.Add(CreateDelegate(dictionary)); } catch (Exception ex) { Log.Add(LogLevel.Error, "Error in file {0} deserializing object.", filename); Log.Add(ex); } } // clear the dictionary so that it can be used for the next item. dictionary.Clear(); dictionary[itemKey] = null; continue; } int index = line.IndexOf('='); if (index == -1) continue; string key = line.Substring(0, index).Trim(); string value = line.Substring(index + 1).Trim(); if (value == nullValue) { value = null; } else if (value.StartsWith("\"") && value.EndsWith("\"")) { value = value.Substring(1,value.Length - 2); } dictionary[key] = value; } if (dictionary.ContainsKey(itemKey)) { // Get the last entry. try { items.Add(CreateDelegate(dictionary)); } catch (Exception ex) { Log.Add(LogLevel.Error, "Error in file {0} deserializing object. {1}", filename, ex.Message); } } } } catch (Exception ex) { Log.Add(LogLevel.Error, "Error in file {0} loading objects. {1}", filename, ex.Message); } return items.ToArray(); } private static void SaveObjects(IEnumerable items, string filename, string itemKey, Func> ToDictionaryDelegate) { string filePath = Files.GetPathTo(filename); string randomPath = Files.GetPathTo(Path.GetRandomFileName()); try { using (StreamWriter w = File.CreateText(randomPath)) { foreach (var item in items) { Dictionary dictionary = ToDictionaryDelegate(item); w.WriteLine(itemKey); foreach (var pair in dictionary) { if (pair.Value == null) { w.WriteLine(string.Format("{0}={1}", pair.Key, nullValue)); } else { w.WriteLine(string.Format("{0}=\"{1}\"", pair.Key, pair.Value)); } } w.WriteLine(); } } File.Copy(randomPath, filePath, true); } finally { File.Delete(randomPath); } } } } gnome-rdp-0.3.0.9/Identities/0000755000175000017500000000000011566224110012651 500000000000000gnome-rdp-0.3.0.9/Identities/IdentityCollection.cs0000644000175000017500000000214511566224110016727 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Collections.Generic; using GnomeRDP.Identies; using GnomeRDP.ApplicationDataFiles; using GnomeRDP.Database; namespace GnomeRDP.Identies { public class IdentityCollection : Collection { protected override Identity[] LoadItems() { return FileManager.LoadIdentities(); } public override void Save() { FileManager.SaveIdentities(ToArray()); } } } gnome-rdp-0.3.0.9/Identities/PasswordDialog.cs0000644000175000017500000000244311566224110016045 00000000000000// // PasswordDialog.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP { public partial class PasswordDialog : Gtk.Dialog { public PasswordDialog (string protocol, string server, string domain, string username) { this.Build (); txtProtocol.Text = protocol; txtServer.Text = server; txtDomain.Text = domain; txtUsername.Text = username; } public string Password { get { return entryPassword.Text; } } } } gnome-rdp-0.3.0.9/Identities/IdentitiesWidget.cs0000644000175000017500000001270111566224110016366 00000000000000// // IdentitiesWidget.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; using System.Collections.Generic; using System.ComponentModel; using Gtk; using GnomeRDP.Identies; using GnomeRDP.Sessions; using GnomeRDP.Logging; using GnomeRDP.Profiles; using GnomeRDP.Rdp; using GnomeRDP.Ssh; using GnomeRDP.Vnc; namespace GnomeRDP.Identies { [ToolboxItem(true)] public partial class IdentitiesWidget : Gtk.Bin { private Menu menu = new Menu(); public IdentitiesWidget () { this.Build (); Initialize(); } private static class Columns { public const int id = 0; public const int domain = 1; public const int username = 2; public const int description = 3; } private void Initialize() { treeView.AppendColumn(new TreeViewColumn("Domain", new CellRendererText(), "text", Columns.domain)); treeView.AppendColumn(new TreeViewColumn("Username", new CellRendererText(), "text", Columns.username)); treeView.AppendColumn(new TreeViewColumn("Description", new CellRendererText(), "text", Columns.description)); treeView.Selection.Mode = SelectionMode.Multiple; treeView.RulesHint = true; treeView.Model = new ListStore(typeof(string), typeof(string), typeof(string), typeof(string)); Resync(); // Initialize Context Menu var propertiesMenuItem = new MenuItem("Properties"); propertiesMenuItem.Activated += OnMenuPropertiesActivated; menu.Add(propertiesMenuItem); var deleteMenuItem = new MenuItem("Delete"); deleteMenuItem.Activated += OnMenuDeleteActivated; menu.Add(deleteMenuItem); } protected virtual void OnNewIdentityActionActivated (object sender, System.EventArgs e) { IdentityDialog dlg = new IdentityDialog(); try { int result = dlg.Run(); if (result != (int)Gtk.ResponseType.Ok) return; Identity item = new Identity(Program.CreateID(), dlg.Domain, dlg.Username, dlg.SavePassword, dlg.Description); Program.IdentityCollection.Add(item); } catch(Exception ex) { Log.Add(ex); } finally { dlg.Destroy(); } Resync(); } private void Resync() { try { ListStore listStore = (ListStore)treeView.Model; listStore.Clear(); foreach (var item in Program.IdentityCollection.ToArray()) { listStore.AppendValues(item.Id, item.Domain, item.Username, item.Description); } } catch { } } private Identity[] GetSelectedIdentities() { List items = new List(); try { foreach (var path in treeView.Selection.GetSelectedRows()) { TreeIter iter; treeView.Model.GetIter(out iter, path); string id = (string)treeView.Model.GetValue(iter, Columns.id); items.Add(Program.IdentityCollection.Find(id)); } return items.ToArray(); } catch { return new Identity[0]; } } [GLib.ConnectBefore()] protected virtual void OnTreeViewButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) { try { if (args.Event.Button != 3) { args.RetVal = false; return; } TreePath path; if (treeView.GetPathAtPos((int)args.Event.X, (int)args.Event.Y, out path) == false) return; treeView.GrabFocus(); treeView.SetCursor(path, treeView.Columns[0], false); menu.ShowAll(); menu.Popup(); args.RetVal = true; } catch { } } protected virtual void OnMenuPropertiesActivated (object sender, System.EventArgs e) { try { foreach (var identity in GetSelectedIdentities()) { IdentityDialog dlg = new IdentityDialog(identity); try { if (dlg.Run() == (int)ResponseType.Ok) { identity.Set(dlg.Domain, dlg.Username, dlg.SavePassword, dlg.Description); Program.IdentityCollection.Save(); } } catch(Exception ex) { Log.Add(ex); } finally { dlg.Destroy(); } } } catch(Exception ex) { Log.Add(ex); } Resync(); } protected virtual void OnMenuDeleteActivated (object sender, System.EventArgs e) { try { Identity[] identities = GetSelectedIdentities(); if(identities.Length == 0) return; MessageDialog dlg = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, "Are you sure you want to delete these {0} item(s)?", identities.Length); try { if(dlg.Run() != (int)ResponseType.Yes) return; foreach (var identity in identities) { Program.IdentityCollection.Remove(identity); } } finally { dlg.Destroy(); } } catch(Exception ex) { Log.Add(ex); } Resync(); } } } gnome-rdp-0.3.0.9/Identities/Identity.cs0000644000175000017500000001123011566224110014706 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Collections.Generic; using GnomeRDP.Logging; namespace GnomeRDP.Identies { public class Identity : IIdType, IEquatable, ISimiliar { public Identity() : this(Program.CreateID(), "", "", true, "") { } public Identity(string id, string domain, string username, bool savePassword, string description) { this.id = id; this.domain = domain; this.username = username; this.savePassword = savePassword; this.description = description; } private static class Fields { public const string id = "Id"; public const string domain = "Domain"; public const string username = "Username"; public const string savePassword = "SavePassword"; public const string description = "Description"; } public static Identity Create(Dictionary dictionary) { string id = dictionary[Fields.id]; string domain = dictionary[Fields.domain]; string username = dictionary[Fields.username]; bool savePassword = bool.Parse(dictionary[Fields.savePassword]); string description = dictionary.ContainsKey(Fields.description) ? dictionary[Fields.description] : string.Empty; return new Identity(id, domain, username, savePassword, description); } public static Dictionary ToDictionary(Identity item) { Dictionary dictionary = new Dictionary(); dictionary[Fields.id] = item.Id; dictionary[Fields.domain] = item.Domain; dictionary[Fields.username] = item.Username; dictionary[Fields.savePassword] = item.SavePassword.ToString(); dictionary[Fields.description] = item.Description; return dictionary; } public void Set(string domain, string username, bool savePassword, string description) { this.domain = domain; this.username = username; this.savePassword = savePassword; this.description = description; } private readonly string id; public string Id { get { return id; } } private string domain; public string Domain { get { return domain; } set { domain = value; } } private string username; public string Username { get { return username; } set { username = value; } } private bool savePassword; public bool SavePassword { get { return savePassword; } set { savePassword = value; } } private string description; public string Description { get { return description; } set { description = value; } } public bool Equals (Identity other) { return id == other.id; } public bool IsLike (Identity other) { return Domain == other.Domain && Username == other.Username && SavePassword == other.SavePassword; } public override int GetHashCode () { return domain.GetHashCode() ^ username.GetHashCode() ^ savePassword.GetHashCode(); } public override string ToString () { if (string.IsNullOrEmpty(description) == false) { return string.Format(@"{0}\{1} ({2})", domain, username, description); } else { return string.Format(@"{0}\{1}", domain, username); } } public string GetPassword(string server, Protocol protocol) { string domain = Domain; string username = Username; string password = KeyringProxy.GetPassword(username, domain, server, protocol); if (password == null) { Program.Invoke(() => { PasswordDialog dlg = new PasswordDialog(protocol.ToString(), server, domain, username); try { if (dlg.Run() == (int)Gtk.ResponseType.Ok) { password = dlg.Password; } } catch (Exception ex) { Log.Add(ex); } finally { dlg.Destroy(); } }, TimeSpan.FromSeconds(120)); if (password != null && SavePassword) { KeyringProxy.SetPassword(username, domain, server, protocol, password); } } return password; } } } gnome-rdp-0.3.0.9/Identities/IdentityDialog.cs0000644000175000017500000000474111566224110016037 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using Gtk; namespace GnomeRDP.Identies { public partial class IdentityDialog : Gtk.Dialog { public IdentityDialog() { this.Build(); } public IdentityDialog(Identity identity) : this() { if (identity == null) return; entryDescription.Text = identity.Description; entryDomain.Text = identity.Domain; entryUsername.Text = identity.Username; chkSavePassword.Active = identity.SavePassword; } protected virtual void OnButtonOkClicked (object sender, System.EventArgs e) { this.Respond(Gtk.ResponseType.Ok); } protected virtual void OnButtonClearSavedPasswordsClicked (object sender, System.EventArgs e) { MessageDialog dlg = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, "This will clear all saved passwords for this identity. Are you sure?"); try { if(dlg.Run() != (int)ResponseType.Yes) return; KeyringProxy.ClearSavedPasswords(Username, Domain); } finally { dlg.Destroy(); } } protected virtual void OnButtonReplaceSavedPasswordsClicked (object sender, System.EventArgs e) { string username = Username; string domain = Domain; PasswordDialog dlg = new PasswordDialog("All", "All", domain, username); try { if (dlg.Run() != (int)ResponseType.Ok) return; KeyringProxy.ReplaceSavedPasswords(username, domain, dlg.Password); } finally { dlg.Destroy(); } } public string Domain { get { return entryDomain.Text; } } public string Username { get { return entryUsername.Text; } } public bool SavePassword { get { return chkSavePassword.Active; } } public string Description { get { return entryDescription.Text; } } } } gnome-rdp-0.3.0.9/Rdp/0000755000175000017500000000000011566224110011275 500000000000000gnome-rdp-0.3.0.9/Rdp/RdpVersion.cs0000644000175000017500000000146211566224110013642 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; namespace GnomeRDP.Rdp { public enum RdpVersion : byte { Version4, Version5, } } gnome-rdp-0.3.0.9/Rdp/RdpProfileDialog.cs0000644000175000017500000001035511566224110014736 00000000000000// // RdpProfileDialog.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Rdp { public partial class RdpProfileDialog : Gtk.Dialog { public RdpProfileDialog (RdpProfile profile) { this.Build (); txtDescription.Text = profile.Description; string rdpVersionName = profile.RdpVersion.ToString(); string[] rdpVersionNames = Enum.GetNames(typeof(RdpVersion)); for (int i = 0; i < rdpVersionNames.Length; i++) { cbRdpVersion.AppendText(rdpVersionNames[i]); if (rdpVersionNames[i] == rdpVersionName) cbRdpVersion.Active = i; } txtKeyboardlayout.Text = profile.KeyboardLayout; cbeWidth.AppendText("640"); cbeWidth.AppendText("800"); cbeWidth.AppendText("1024"); cbeWidth.AppendText("1280"); cbeWidth.AppendText("1680"); cbeWidth.Entry.Text = profile.Width.ToString(); cbeHeight.AppendText("480"); cbeHeight.AppendText("600"); cbeHeight.AppendText("768"); cbeHeight.AppendText("1024"); cbeHeight.AppendText("1050"); cbeHeight.Entry.Text = profile.Height.ToString(); string colorDepthName = profile.RdpColorDepth.ToString(); string[] colorDepthNames = Enum.GetNames(typeof(RdpColorDepth)); for (int i = 0; i < colorDepthNames.Length; i++) { cbColorDepth.AppendText(colorDepthNames[i]); if (colorDepthNames[i] == colorDepthName) cbColorDepth.Active = i; } string experienceName = profile.RdpExperience.ToString(); string[] experienceNames = Enum.GetNames(typeof(RdpExperience)); for (int i = 0; i < experienceNames.Length; i++) { cbExperience.AppendText(experienceNames[i]); if (experienceNames[i] == experienceName) cbExperience.Active = i; } string soundName = profile.RdpSound.ToString(); string[] soundNames = Enum.GetNames(typeof(RdpSound)); for (int i = 0; i < soundNames.Length; i++) { cbSound.AppendText(soundNames[i]); if (soundNames[i] == soundName) cbSound.Active = i; } chkFullScreen.Active = profile.FullScreen; chkEnableCompression.Active = profile.EnableRdpCompression; chkAttachToConsole.Active = profile.AttachToConsole; } public string Description { get { return txtDescription.Text; } } public RdpVersion RdpVersion { get { return (RdpVersion)Enum.Parse(typeof(RdpVersion), cbRdpVersion.ActiveText); } } public string KeyboardLayout { get { return txtKeyboardlayout.Text; } } public int RdpWidth { get { int width; if (int.TryParse(cbeWidth.Entry.Text, out width) == false) return 640; return width; } } public int RdpHeight { get { int height; if (int.TryParse(cbeHeight.Entry.Text, out height) == false) return 480; return height; } } public RdpColorDepth RdpColorDepth { get { return (RdpColorDepth)Enum.Parse(typeof(RdpColorDepth), cbColorDepth.ActiveText); } } public RdpExperience RdpExperience { get { return (RdpExperience)Enum.Parse(typeof(RdpExperience), cbExperience.ActiveText); } } public RdpSound RdpSound { get { return (RdpSound)Enum.Parse(typeof(RdpSound), cbSound.ActiveText); } } public bool FullScreen { get { return chkFullScreen.Active; } } public bool EnableCompression { get { return chkEnableCompression.Active; } } public bool AttachToConsole { get { return chkAttachToConsole.Active; } } } } gnome-rdp-0.3.0.9/Rdp/RdpColorDepth.cs0000644000175000017500000000202711566224110014256 00000000000000// // RdpColorDepth.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Rdp { public enum RdpColorDepth : byte { Bpp8 = 8, Bpp15 = 15, Bpp16 = 16, Bpp24 = 24, Bpp32 = 32, } } gnome-rdp-0.3.0.9/Rdp/RdpSound.cs0000644000175000017500000000150111566224110013277 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; namespace GnomeRDP.Rdp { public enum RdpSound : byte { Unspecified, Local, Off, Remote, } } gnome-rdp-0.3.0.9/Rdp/RdpProfile.cs0000644000175000017500000001756511566224110013630 00000000000000// // Copyright (C) 2009 James P Michels III // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // using System; using System.Collections.Generic; using System.Text; using GnomeRDP.Profiles; using GnomeRDP.Identies; namespace GnomeRDP.Rdp { public class RdpProfile : Profile { public RdpProfile() : base(Protocol.rdp, Program.CreateID(), "") { } private RdpProfile(Dictionary dictionary) : base(Protocol.rdp, dictionary) { rdpVersion = (RdpVersion)Enum.Parse(typeof(RdpVersion), dictionary[Fields.rdpVersion]); keyboardLayout = dictionary[Fields.keyboardLayout]; width = int.Parse(dictionary[Fields.width]); height = int.Parse(dictionary[Fields.height]); fullScreen = bool.Parse(dictionary[Fields.fullScreen]); windowTitle = dictionary[Fields.windowTitle]; attachToConsole = bool.Parse(dictionary[Fields.attachToConsole]); rdpExperience = (RdpExperience)Enum.Parse(typeof(RdpExperience), dictionary[Fields.rdpExperience]); rdpColorDepth = (RdpColorDepth)Enum.Parse(typeof(RdpColorDepth), dictionary[Fields.rdpColorDepth]); rdpSound = (RdpSound)Enum.Parse(typeof(RdpSound), dictionary[Fields.rdpSound]); } private new static class Fields { public const string rdpVersion = "RdpVersion"; public const string keyboardLayout = "KeyboardLayout"; public const string width = "Width"; public const string height = "Height"; public const string fullScreen = "FullScreen"; public const string windowTitle = "WindowTitle"; public const string attachToConsole = "AttachToConsole"; public const string rdpExperience = "RdpExperience"; public const string rdpColorDepth = "RdpColorDepth"; public const string rdpSound = "RdpSound"; } public static RdpProfile Create(Dictionary dictionary) { return new RdpProfile(dictionary); } public static Dictionary ToDictionary(RdpProfile item) { Dictionary dictionary = new Dictionary(); dictionary[Profile.Fields.id] = item.Id; dictionary[Profile.Fields.description] = item.Description; dictionary[Fields.rdpVersion] = item.RdpVersion.ToString(); dictionary[Fields.keyboardLayout] = item.KeyboardLayout; dictionary[Fields.width] = item.Width.ToString(); dictionary[Fields.height] = item.Height.ToString(); dictionary[Fields.fullScreen] = item.FullScreen.ToString(); dictionary[Fields.windowTitle] = item.WindowTitle; dictionary[Fields.attachToConsole] = item.AttachToConsole.ToString(); dictionary[Fields.rdpExperience] = item.RdpExperience.ToString(); dictionary[Fields.rdpColorDepth] = item.RdpColorDepth.ToString(); dictionary[Fields.rdpSound] = item.RdpSound.ToString(); return dictionary; } private RdpVersion rdpVersion = RdpVersion.Version5; public RdpVersion RdpVersion { get { return rdpVersion; } set { rdpVersion = value; } } private string keyboardLayout = "en-us"; public string KeyboardLayout { get { return keyboardLayout; } set { keyboardLayout = value; } } private int width = 800; public int Width { get { return width; } set { if (value <= 0) throw new ArgumentException("Value must be greater than zero."); width = value; } } private int height = 600; public int Height { get { return height; } set { if (value <= 0) throw new ArgumentException("Value must be greater than zero."); height = value; } } private bool fullScreen; public bool FullScreen { get { return fullScreen; } set { fullScreen = value; } } private string windowTitle; public string WindowTitle { get { return windowTitle; } set { windowTitle = value; } } private bool attachToConsole; public bool AttachToConsole { get { return attachToConsole; } set { attachToConsole = value; } } private RdpColorDepth rdpColorDepth = RdpColorDepth.Bpp16; public RdpColorDepth RdpColorDepth { get { return rdpColorDepth; } set { rdpColorDepth = value; } } private bool enableRdpCompression = true; public bool EnableRdpCompression { get { return enableRdpCompression; } set { enableRdpCompression = value; } } private RdpExperience rdpExperience = RdpExperience.Lan; public RdpExperience RdpExperience { get { return rdpExperience; } set { rdpExperience = value; } } private RdpSound rdpSound = RdpSound.Local; public RdpSound RdpSound { get { return rdpSound; } set { rdpSound = value; } } public override bool IsLike (Profile other) { var otherRdp = other as RdpProfile; if (otherRdp == null) return false; return AttachToConsole == otherRdp.AttachToConsole && EnableRdpCompression == otherRdp.EnableRdpCompression && FullScreen == otherRdp.FullScreen && Height == otherRdp.Height && Width == otherRdp.Width && KeyboardLayout == otherRdp.KeyboardLayout && RdpColorDepth == otherRdp.RdpColorDepth && RdpExperience == otherRdp.RdpExperience && RdpSound == otherRdp.RdpSound && RdpVersion == otherRdp.RdpVersion && WindowTitle == otherRdp.WindowTitle; } public string ToCommandLineArguements(string server, Identity identity, bool hidePassword) { StringBuilder result = new StringBuilder(); string domain = identity.Domain; if (string.IsNullOrEmpty(domain) == false) { result.AppendFormat(" -d {0}", domain); } string username = identity.Username; if (string.IsNullOrEmpty(username) == false) { string format = username.Contains(" ") ? " -u \"{0}\"" : " -u {0}"; result.AppendFormat(format, username); } string password; if (hidePassword) { password = ""; } else { password = identity.GetPassword(server, Protocol.rdp); } if (string.IsNullOrEmpty(password) == false) { //string format = password.Contains(" ") ? " -p \"{0}\"" : " -p {0}"; string format = " -p \"{0}\""; result.AppendFormat(format, password); } if (string.IsNullOrEmpty(keyboardLayout) == false) { result.AppendFormat(" -k {0}", keyboardLayout); } result.AppendFormat(" -g {0}x{1}", width, height); if (fullScreen) { result.Append(" -f"); } if (string.IsNullOrEmpty(windowTitle) == false) { result.AppendFormat(" -T \"{0}\"", windowTitle); } result.AppendFormat(" -a {0}", (byte)rdpColorDepth); if (enableRdpCompression) { result.Append(" -z"); } result.AppendFormat(" -x {0}", (char)rdpExperience); if (attachToConsole) { result.Append(" -0"); } switch (rdpVersion) { case RdpVersion.Version4: result.Append(" -4"); break; case RdpVersion.Version5: default: result.Append(" -5"); break; } switch (rdpSound) { case RdpSound.Local: result.Append(" -r sound:local"); break; case RdpSound.Remote: result.Append(" -r sound:remote"); break; case RdpSound.Off: result.Append(" -r sound:off"); break; } result.Append(string.Format(" {0}", server)); return result.ToString(); } } } gnome-rdp-0.3.0.9/Rdp/RdpExperience.cs0000644000175000017500000000202411566224110014277 00000000000000// // RdpExperience.cs // // Author: // James P Michels III // // Copyright (c) 2009 James P Michels III // // This library is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation; either version 2.1 of the // License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA using System; namespace GnomeRDP.Rdp { public enum RdpExperience : byte { Modem = (byte)'m', Broadband = (byte)'b', Lan = (byte)'l', } } gnome-rdp-0.3.0.9/Menu/.svn/text-base/gnome-rdp.png.svn-base0000444000175000017500000000740211566222533020277 00000000000000PNG  IHDR00WbKGD pHYs  tIME $:e;IDAThՙYl\ygsg 9"ڢlUݤnB.uQ@ ?Hm֧hQڠp h!qV,)qYˋV.Hg8]9}(J4{?K|_T*?>R (@,XU7O|85Oc:퐷_726E>?w-s}pg.+5Htb=М0ơZNvxh铌3hh4þԢ {NkCBc-XG.?,1zaŏ(-g3Y3/C]YCEIPJD)0\ bpu1>Cj,a2nD'Xk<ŭZ4˜VH OH B`XG]VM&N8NFdF*sQcirGpGt{1hR1K/Ρ5Y\>ρ; 9A8'qΑ';JޓMR7e=r ae35>žQst{ a՟\fߞ! 4R{4%IR`#Ȭ}p q&)~ ['JV:LUK\] tE~”(JqjGZ6r 7Ђ.I}` vb!NB'y3o^c\̡d~bCޣݍ]hŬ4CRo:! K X'pN Hdq1wiQ ) #iuaLJjsu?`׶*GfЁyq9S9N_X A✣ҥbL4@*hH6kA>+~81(Niwb:%>&9s:}f;"5xJjHҔ8N|@>9>4BF!vp3dsyʕ*RxB;,7zt@bM&sYOyD!SuLVKYL$q1c'~;oԪ)Оgu|# -rY͹w֑W^ffYsLJDQʏߞ;%VfMZG? YMy>)}smwf,6(3;!+|cf8G/zO+􈢄Vǹwf9{篰s{_;("< ,YGkO%,$IB# !sXcHk RJr1VP46Uff(N1@k˧J]+(Myx:>.Z"5H Q~&C8!9sOL)inNj c 臶\:سc %%V59ыb Ϡ$RFGd}v(i{Xkv' <]Q. lMBͥ6/G89_C{$Jwea*A%%ƘUMblʄsd φ 0g h,QTpGyw߾e_ :iJ$IQعGt-81ѵ>P,f(#0paJL#G4RHXO/?xd]*e!$Ƈ 94ZKF)v-i7n`F˅U; !+1&]p^ɭzN3KQ_k7;E?bVOaJ{ds9r"nY? flE MtWI1LQHv+ǕRH #Z#Ef'ם# yYyWtd2ƊDa5|n&4о2vK|Bl4h,i`:i (Lq<^rZ)'>nV_WiZhZ,@zmũS\.?t:t:d,1Z~RJ֤iJLOOo*ŋO|uÛ" E>lg谴Nj6cH8 Ð8YXXC&=9>[ox]{\zlɅa:14MZ ؔ*j5 Z@9G\>\_SNtQ(~nm6֚\.o>}Yش z=n笵oݺ\VY{с'a!"^z΋/xŋo/ \ҺpF]YYWJ*Vq^)I) J%*… /'Nٳg\MG! ;HMw=z<:==Ϟ=SSSZR*d2d2Փ!(h4,..v.]tӗ^{ 7nܸ ,s `V {={윜RVG B< c #1C1C307C8383", ", c #1CBE3A27854C", "< c #1E65309488B2", "1 c #1E57371A88A5", "2 c #290C3E5B8614", "3 c #228B35C98DB3", "4 c #1FAE32DD8AC3", "5 c #2639394288C1", "6 c #24B33F2289FB", "7 c #2B483D4B8AE0", "8 c #26FC3AEB930D", "9 c #256538F29109", "0 c #270A3B239463", "q c #27733B9A95A8", "w c #274D3BE694BA", "e c #27B63B919359", "r c #291A3DBD9211", "t c #286C3CBF9657", "y c #2AD53F789960", "u c #22EA40408917", "i c #2A9C43AE8CA9", "p c #2C8248488DFF", "a c #29D44079935A", "s c #2F2F489E9102", "d c #2B5140239A44", "f c #2D5342139B29", "g c #2E92437C9C8E", "h c #33DE478097B4", "j c #35C44BBD93DA", "k c #381B492C9696", "l c #312C45629AE1", "z c #3E214ED39A58", "x c #381B4DF89A61", "c c #3D0D557B978D", "v c #3B9F536F9696", "b c #3D04532899CB", "n c #336C4864A221", "m c #35C44AAEA626", "M c #39F34F7AAC73", "N c #3A3A4F16AA71", "B c #3C92514AA2B7", "V c #3ECD5445B1A2", "C c #4096513493CC", "Z c #426C538C9C5C", "A c #45E25DD09BC6", "S c #4B2E5BCD9DD6", "D c #575760D288DE", "F c #4AD960D29FBC", "G c #642B6CFB9320", "H c #639C6DDF9B7E", "J c #6CC2751F9A9A", "K c #76207C0A9578", "L c #464658CAA7A7", "P c #47215B5BA269", "I c #4A2D5C52A1F7", "U c #4096568FAECB", "Y c #45FF58BCABAB", "T c #4D275E76A9D9", "R c #42985538A34D", "E c #42985858B55F", "W c #467F5C79BAF3", "Q c #4E1E64E0A138", "! c #4D306228A487", "~ c #4F326060AAF1", "^ c #4E4E6060B005", "/ c #54AA69D2A5B8", "( c #5A3D6EFDA819", ") c #51096347AD02", "_ c #53486430AACC", "` c #5BA26CB3AAC6", "' c #551C642BA56C", "] c #5BCD7037A7A7", "[ c #5D247184A9A9", "{ c #5B2270A9A852", "} c #4FC16229B0E9", "| c #4EF963D5BFDC", " . c #5BEA6CFAB442", ".. c #53E26784BEA1", "X. c #56AC6A14BEF7", "o. c #630D7428ACC9", "O. c #66A07A08AE11", "+. c #6A4D7C26AF21", "@. c #63F276B0B442", "#. c #6B887D0BB25C", "$. c #65D7769CBB19", "%. c #61F07390BFA2", "&. c #70A97F46BC11", "*. c #4EB2642BC37C", "=. c #51EE672EC35F", "-. c #541B69DBCA1F", ";. c #5B5B7154D025", ":. c #59926FC5D05E", ">. c #5CB272E4D299", ",. c #7FF185BE9D64", "<. c #785B819EAA54", "1. c #76F78933B69A", "2. c #7C678CA9BA3A", "3. c #7457843DC48B", "4. c #77CD89A6C738", "5. c #7A248917C06A", "6. c #7A0889B4CAE7", "7. c #8DE38DE38DE3", "8. c #8BA88BA88BA8", "9. c #846784678467", "0. c #9DF39DF39DF3", "q. c gray62", "w. c #9C639D0E9F82", "e. c #990A990A990A", "r. c #9826997CA112", "t. c #943098D1ACF4", "y. c #97C29AE1A8F0", "u. c #832D9376BD52", "i. c #8F5698B5BC4A", "p. c #8BE19578BD84", "a. c #97259B0CB0CD", "s. c #9C0D9FD8B093", "d. c #9D51A168B3D0", "f. c #A705A705A705", "g. c #AB55AB55AB55", "h. c #A14BA588B761", "j. c #A68AA8FDB660", "k. c #A5A5AA54BD12", "l. c #AA54AD9FBF06", "z. c #B6D2B6D2B6F9", "x. c #B3ECB3ECB3EC", "c. c #B87FB87FB87F", "v. c #B308B4B4BDA0", "b. c #8DD59A0BC68D", "n. c #8CC59ADBC2FB", "m. c #8FBA9BFFCC85", "M. c #917C9D81C670", "N. c #8C629B62D765", "B. c #8F8F9DD6D5B8", "V. c #83BC9422D097", "C. c #91919F3BD2FD", "Z. c #90909F83DA12", "A. c #94B0A0CAC755", "S. c #9637A184CB29", "D. c #97B4A432CB3C", "F. c #9AE6A57FCC89", "G. c #9C46A852CC04", "H. c #94EAA1DAD4B8", "J. c #9B6CA5AED331", "K. c #9E1EA8C4D4D4", "L. c #912DA03CDB69", "P. c #95CAA3F4DCAB", "I. c #9AB6A752DB86", "U. c #987BA651DDA4", "Y. c #A112AB64CEC0", "T. c #AD87B1C4C478", "R. c #A533B0E9CF24", "E. c #AD74B3F6CD6E", "W. c #B15BB55FC771", "Q. c #B0E9B5A7C9E5", "!. c #B6D3BB82CD3E", "~. c #BB49BF14CF5D", "^. c #A24CAE03E035", "/. c #AB38B543D3A8", "(. c #AC16B511D4EA", "). c #AC73B699DF50", "_. c #AF20B8D5DF50", "`. c #B0E9B9D6D781", "'. c #B8B8BF69D7BA", "]. c #B234BA64DB5D", "[. c #B70CBFCED8F4", "{. c #B24EBB90DDA4", "}. c #9DE4AB80E253", "|. c #A533B0E9E165", " X c #AAC6B5B5E152", ".X c #BB65C389DC3F", "XX c #BEDBC56FE152", "oX c #C780C780C780", "OX c #C14FC14FC14F", "+X c #CBD2CBD2CBD2", "@X c #C94DC94DC973", "#X c #CD08CD08CD08", "$X c #CF6ECF6ECF6E", "%X c #C196C60CD7AC", "&X c #C1FAC46ED198", "*X c #CF96CF96D1D1", "=X c #C3DFCA91DDFA", "-X c #D1F0D1F0D1F0", ";X c #D07AD07AD07A", ":X c #D2DFD2DFD2DF", ">X c #D2EFD2EFD533", ",X c #D60ED60ED613", " u ( n.M.O.] <.uXhXiX(.` %.P.P.Z.m.M.aXSXFXUXUX", "UX9XxXh.0 8 t 3 o X p { =X.XO.u.O.@.].K.b P P.P.H.C.S.aXSXFXUXUX", "UX9XzXj.q t g d o : u c ].uX/..X/ P D.J.i ! N.P.Z.Z.D.sXZXFXUXUX", "UX9XkXk.e d m V a , : p A.tX#.{ ` ! 2.@.F ! 3.6.N.C.C.aXnXSXUXUX", "UX4XkXk.e t n E U u , , _.VX+.( Q c v c j _ $.$.3.3.&.%X8XMXUXUX", "UX3XjXl.q 0 y M *.B s c F..X1.1.] / A c 2 R B k 5 < h W.2XNXUXUX", "UX3XqXT.0 q q d V =.x Q n.n.n.n.u.2.Q b l 9 3 < - = 5 T..-.N 3 4 - = 5 W.:XMXUXUX", "UX,X8XW.l l l l l n U =.X.I t.<.~ ..;.:.*.W m 3 4 ; 7 W.;XmXUXUX", "UXX9X&X%. ._ _ _ ) ' H J K <.8.G G D C z Z z Z P Z S !.$XmXUXUX", "UX>X:X6X c #1C1C307C8383", ", c #1CBE3A27854C", "< c #1E65309488B2", "1 c #1E57371A88A5", "2 c #290C3E5B8614", "3 c #228B35C98DB3", "4 c #1FAE32DD8AC3", "5 c #2639394288C1", "6 c #24B33F2289FB", "7 c #2B483D4B8AE0", "8 c #26FC3AEB930D", "9 c #256538F29109", "0 c #270A3B239463", "q c #27733B9A95A8", "w c #274D3BE694BA", "e c #27B63B919359", "r c #291A3DBD9211", "t c #286C3CBF9657", "y c #2AD53F789960", "u c #22EA40408917", "i c #2A9C43AE8CA9", "p c #2C8248488DFF", "a c #29D44079935A", "s c #2F2F489E9102", "d c #2B5140239A44", "f c #2D5342139B29", "g c #2E92437C9C8E", "h c #33DE478097B4", "j c #35C44BBD93DA", "k c #381B492C9696", "l c #312C45629AE1", "z c #3E214ED39A58", "x c #381B4DF89A61", "c c #3D0D557B978D", "v c #3B9F536F9696", "b c #3D04532899CB", "n c #336C4864A221", "m c #35C44AAEA626", "M c #39F34F7AAC73", "N c #3A3A4F16AA71", "B c #3C92514AA2B7", "V c #3ECD5445B1A2", "C c #4096513493CC", "Z c #426C538C9C5C", "A c #45E25DD09BC6", "S c #4B2E5BCD9DD6", "D c #575760D288DE", "F c #4AD960D29FBC", "G c #642B6CFB9320", "H c #639C6DDF9B7E", "J c #6CC2751F9A9A", "K c #76207C0A9578", "L c #464658CAA7A7", "P c #47215B5BA269", "I c #4A2D5C52A1F7", "U c #4096568FAECB", "Y c #45FF58BCABAB", "T c #4D275E76A9D9", "R c #42985538A34D", "E c #42985858B55F", "W c #467F5C79BAF3", "Q c #4E1E64E0A138", "! c #4D306228A487", "~ c #4F326060AAF1", "^ c #4E4E6060B005", "/ c #54AA69D2A5B8", "( c #5A3D6EFDA819", ") c #51096347AD02", "_ c #53486430AACC", "` c #5BA26CB3AAC6", "' c #551C642BA56C", "] c #5BCD7037A7A7", "[ c #5D247184A9A9", "{ c #5B2270A9A852", "} c #4FC16229B0E9", "| c #4EF963D5BFDC", " . c #5BEA6CFAB442", ".. c #53E26784BEA1", "X. c #56AC6A14BEF7", "o. c #630D7428ACC9", "O. c #66A07A08AE11", "+. c #6A4D7C26AF21", "@. c #63F276B0B442", "#. c #6B887D0BB25C", "$. c #65D7769CBB19", "%. c #61F07390BFA2", "&. c #70A97F46BC11", "*. c #4EB2642BC37C", "=. c #51EE672EC35F", "-. c #541B69DBCA1F", ";. c #5B5B7154D025", ":. c #59926FC5D05E", ">. c #5CB272E4D299", ",. c #7FF185BE9D64", "<. c #785B819EAA54", "1. c #76F78933B69A", "2. c #7C678CA9BA3A", "3. c #7457843DC48B", "4. c #77CD89A6C738", "5. c #7A248917C06A", "6. c #7A0889B4CAE7", "7. c #8DE38DE38DE3", "8. c #8BA88BA88BA8", "9. c #846784678467", "0. c #9DF39DF39DF3", "q. c gray62", "w. c #9C639D0E9F82", "e. c #990A990A990A", "r. c #9826997CA112", "t. c #943098D1ACF4", "y. c #97C29AE1A8F0", "u. c #832D9376BD52", "i. c #8F5698B5BC4A", "p. c #8BE19578BD84", "a. c #97259B0CB0CD", "s. c #9C0D9FD8B093", "d. c #9D51A168B3D0", "f. c #A705A705A705", "g. c #AB55AB55AB55", "h. c #A14BA588B761", "j. c #A68AA8FDB660", "k. c #A5A5AA54BD12", "l. c #AA54AD9FBF06", "z. c #B6D2B6D2B6F9", "x. c #B3ECB3ECB3EC", "c. c #B87FB87FB87F", "v. c #B308B4B4BDA0", "b. c #8DD59A0BC68D", "n. c #8CC59ADBC2FB", "m. c #8FBA9BFFCC85", "M. c #917C9D81C670", "N. c #8C629B62D765", "B. c #8F8F9DD6D5B8", "V. c #83BC9422D097", "C. c #91919F3BD2FD", "Z. c #90909F83DA12", "A. c #94B0A0CAC755", "S. c #9637A184CB29", "D. c #97B4A432CB3C", "F. c #9AE6A57FCC89", "G. c #9C46A852CC04", "H. c #94EAA1DAD4B8", "J. c #9B6CA5AED331", "K. c #9E1EA8C4D4D4", "L. c #912DA03CDB69", "P. c #95CAA3F4DCAB", "I. c #9AB6A752DB86", "U. c #987BA651DDA4", "Y. c #A112AB64CEC0", "T. c #AD87B1C4C478", "R. c #A533B0E9CF24", "E. c #AD74B3F6CD6E", "W. c #B15BB55FC771", "Q. c #B0E9B5A7C9E5", "!. c #B6D3BB82CD3E", "~. c #BB49BF14CF5D", "^. c #A24CAE03E035", "/. c #AB38B543D3A8", "(. c #AC16B511D4EA", "). c #AC73B699DF50", "_. c #AF20B8D5DF50", "`. c #B0E9B9D6D781", "'. c #B8B8BF69D7BA", "]. c #B234BA64DB5D", "[. c #B70CBFCED8F4", "{. c #B24EBB90DDA4", "}. c #9DE4AB80E253", "|. c #A533B0E9E165", " X c #AAC6B5B5E152", ".X c #BB65C389DC3F", "XX c #BEDBC56FE152", "oX c #C780C780C780", "OX c #C14FC14FC14F", "+X c #CBD2CBD2CBD2", "@X c #C94DC94DC973", "#X c #CD08CD08CD08", "$X c #CF6ECF6ECF6E", "%X c #C196C60CD7AC", "&X c #C1FAC46ED198", "*X c #CF96CF96D1D1", "=X c #C3DFCA91DDFA", "-X c #D1F0D1F0D1F0", ";X c #D07AD07AD07A", ":X c #D2DFD2DFD2DF", ">X c #D2EFD2EFD533", ",X c #D60ED60ED613", " u ( n.M.O.] <.uXhXiX(.` %.P.P.Z.m.M.aXSXFXUXUX", "UX9XxXh.0 8 t 3 o X p { =X.XO.u.O.@.].K.b P P.P.H.C.S.aXSXFXUXUX", "UX9XzXj.q t g d o : u c ].uX/..X/ P D.J.i ! N.P.Z.Z.D.sXZXFXUXUX", "UX9XkXk.e d m V a , : p A.tX#.{ ` ! 2.@.F ! 3.6.N.C.C.aXnXSXUXUX", "UX4XkXk.e t n E U u , , _.VX+.( Q c v c j _ $.$.3.3.&.%X8XMXUXUX", "UX3XjXl.q 0 y M *.B s c F..X1.1.] / A c 2 R B k 5 < h W.2XNXUXUX", "UX3XqXT.0 q q d V =.x Q n.n.n.n.u.2.Q b l 9 3 < - = 5 T..-.N 3 4 - = 5 W.:XMXUXUX", "UX,X8XW.l l l l l n U =.X.I t.<.~ ..;.:.*.W m 3 4 ; 7 W.;XmXUXUX", "UXX9X&X%. ._ _ _ ) ' H J K <.8.G G D C z Z z Z P Z S !.$XmXUXUX", "UX>X:X6X>R (@,XU7O|85Oc:퐷_726E>?w-s}pg.+5Htb=М0ơZNvxh铌3hh4þԢ {NkCBc-XG.?,1zaŏ(-g3Y3/C]YCEIPJD)0\ bpu1>Cj,a2nD'Xk<ŭZ4˜VH OH B`XG]VM&N8NFdF*sQcirGpGt{1hR1K/Ρ5Y\>ρ; 9A8'qΑ';JޓMR7e=r ae35>žQst{ a՟\fߞ! 4R{4%IR`#Ȭ}p q&)~ ['JV:LUK\] tE~”(JqjGZ6r 7Ђ.I}` vb!NB'y3o^c\̡d~bCޣݍ]hŬ4CRo:! K X'pN Hdq1wiQ ) #iuaLJjsu?`׶*GfЁyq9S9N_X A✣ҥbL4@*hH6kA>+~81(Niwb:%>&9s:}f;"5xJjHҔ8N|@>9>4BF!vp3dsyʕ*RxB;,7zt@bM&sYOyD!SuLVKYL$q1c'~;oԪ)Оgu|# -rY͹w֑W^ffYsLJDQʏߞ;%VfMZG? YMy>)}smwf,6(3;!+|cf8G/zO+􈢄Vǹwf9{篰s{_;("< ,YGkO%,$IB# !sXcHk RJr1VP46Uff(N1@k˧J]+(Myx:>.Z"5H Q~&C8!9sOL)inNj c 臶\:سc %%V59ыb Ϡ$RFGd}v(i{Xkv' <]Q. lMBͥ6/G89_C{$Jwea*A%%ƘUMblʄsd φ 0g h,QTpGyw߾e_ :iJ$IQعGt-81ѵ>P,f(#0paJL#G4RHXO/?xd]*e!$Ƈ 94ZKF)v-i7n`F˅U; !+1&]p^ɭzN3KQ_k7;E?bVOaJ{ds9r"nY? flE MtWI1LQHv+ǕRH #Z#Ef'ם# yYyWtd2ƊDa5|n&4о2vK|Bl4h,i`:i (Lq<^rZ)'>nV_WiZhZ,@zmũS\.?t:t:d,1Z~RJ֤iJLOOo*ŋO|uÛ" E>lg谴Nj6cH8 Ð8YXXC&=9>[ox]{\zlɅa:14MZ ؔ*j5 Z@9G\>\_SNtQ(~nm6֚\.o>}Yش z=n笵oݺ\VY{с'a!"^z΋/xŋo/ \ҺpF]YYWJ*Vq^)I) J%*… /'Nٳg\MG! ;HMw=z<:==Ϟ=SSSZR*d2d2Փ!(h4,..v.]tӗ^{ 7nܸ ,s `V {={윜RVG B<