Mike Blumenkrantz <mike@zentific.com>
Leif Middelschulte <leif.middelschulte@gmail.com>
Mike McCormack <mj.mccormack@samsung.com>
+Sangho Park <gouache95@gmail.com>
+Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com>
-Wed Jun 8 16:56:30 2005 Michael Jennings (mej)
+2011-01-29 Carsten Haitzler (The Rasterman)
+
+ 1.0.0 release
+
+2011-01-29 Mike McCormack
+
+ * Convert fd list to inlist to save allocs
+
+2011-01-29 Rui Miguel Silva Seabra
+
+ * make https not fail (that's curl's responsibility, really).
+
+2011-01-31 Carsten Haitzler (The Rasterman)
+
+ * Fix: ecore-evas CAN send "render done" messages even if not
+ waiting for sync counter when using gl engine. new semi-sync
+ mode to account for that.
+
+2011-02-01 Mike McCormack
+
+ * Remove SIGRT from ecore's signals since it's unused and broken
+
+2011-02-09 Mathieu Taillefumier
+
+ * Add xrandr backlight support to ecore_x
+
+2011-02-10 Mike Blumenkrantz
+
+ * Added some more possibly useless safety checks to ecore_con_ares
+
+ * Implement event-driven error message api for all non-curl ecore_con
+ +ECORE_CON_EVENT_CLIENT_ERROR, ECORE_CON_EVENT_SERVER_ERROR events
+ +Ecore_Con_Event_Server_Error, Ecore_Con_Event_Client_Error types
+
+ * Unify event handler code
+ * Always increment server event count for client events
+
+2011-02-11 Mike Blumenkrantz
+
+ * Added ecore_con_client_port_get
+
+2011-02-16 Sangho Park
+
+ * Added ecore_file_download_full API.
+
+2011-02-20 Vincent Torri
+
+ * Ecore_Win32: improve resize of windows and fix key up event for
+ the 'space' key.
+ * Ecore_WinCE: do not erase a window background
+
+2011-02-21 Jihoon Kim
+
+ * Add get calls in ecore_imf for ecore_imf_context_canvas_get() and
+ ecore_imf_context_window_get().
+
+2011-02-21 Raoul Hecky
+
+ * Remove 300 second timeout so large downloads work in ecore_con.
+
+2011-02-22 Carsten Haitzler (The Rasterman)
+
+ * Fix: ecore-file inotify fd would be duplicated in children
+ on fork. Have it detecti this on next monitor add and re-init the
+ inotify fd and fd handler.
+
+2011-02-24 Vincent Torri
+
+ * Ecore_File: fix compilation when ecore_con and curl are not
+ available
+
+2011-02-27 Jihoon Kim
+
+ * Add ecore_imf_context_preedit_string_with_attributes_get API.
+
+2011-03-01 Raoul Hecky
+
+ * Add ecore_con_url_ssl_verify_peer_set API.
+
+2011-03-01 Guillaume Friloux
+
+ * Fix detection of complete file write in ecore_file inotify.
-Fix spec file.
-----------------------------------------------------------------------
#!/bin/sh
-rm -rf autom4te.cache
-rm -f aclocal.m4 ltmain.sh
-
touch README
+touch ABOUT-NLS
echo "Running autopoint..." ; autopoint -f || :
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
if [ -z "$NOCONFIGURE" ]; then
- ./configure "$@"
+ ./configure -C "$@"
fi
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
m4_define([v_maj], [1])
m4_define([v_min], [0])
-m4_define([v_mic], [0])
+m4_define([v_mic], [999])
m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n']))
m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
##-- When released, remove the dnl on the below line
-m4_undefine([v_rev])
+dnl m4_undefine([v_rev])
##-- When doing snapshots - change soname. remove dnl on below line
dnl m4_define([relname], [ver-pre-svn-07])
dnl m4_define([v_rel], [-release relname])
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
-AC_INIT([ecore], [v_ver.beta3], [enlightenment-devel@lists.sourceforge.net])
+AC_INIT([ecore], [v_ver], [enlightenment-devel@lists.sourceforge.net])
AC_PREREQ([2.52])
AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_MACRO_DIR([m4])
m4_ifdef([AM_GNU_GETTEXT], [
AM_GNU_GETTEXT([external])
-po_makefile_in=po/Makefile.in
AM_CONDITIONAL([HAVE_PO], [true])
],[
AM_CONDITIONAL([HAVE_PO], [false])
[${have_ecore_wince}],
[requirements_ecore_evas="ecore-wince >= 1.0.0 ${requirements_ecore_evas}"])
-
-
### requirements
AC_SUBST(requirements_ecore)
AC_SUBST(requirements_ecore_win32)
AC_SUBST(requirements_ecore_wince)
-AC_OUTPUT([
+AC_CONFIG_FILES([
Makefile
ecore-con.pc
ecore-config.pc
src/tests/Makefile
README
ecore.spec
-$po_makefile_in
])
+m4_ifdef([AM_GNU_GETTEXT], [AC_CONFIG_FILES([po/Makefile.in])])
+
+AC_OUTPUT
+
echo
echo "$PACKAGE $VERSION"
echo
@image html e.png
@version @PACKAGE_VERSION@
-@author Carsten Haitzler <raster\@rasterman.com>
-@author Tom Gilbert <tom\@linuxbrit.co.uk>
-@author Burra <burra\@colorado.edu>
-@author Chris Ross <chris\@darkrock.co.uk>
-@author Term <term\@twistedpath.org>
-@author Tilman Sauerbeck <tilman\@code-monkey.de>
-@author Ibukun Olumuyiwa <ibukun\@computer.org>
-@author Yuri <da2001\@hotmail.ru>
-@author Nicholas Curran <quasar\@bigblue.net.au>
-@author Howell Tam <pigeon\@pigeond.net>
-@author Nathan Ingersoll <rbdpngn\@users.sourceforge.net>
-@author Andrew Elcock <andy\@elcock.org>
-@author Kim Woelders <kim\@woelders.dk>
-@author Sebastian Dransfeld <sebastid\@tango.flipp.net>
-@author Simon Poole <simon.armlinux\@themalago.net>
-@author Jorge Luis Zapata Muga <jorgeluis.zapata\@gmail.com>
-@author dan sinclair <zero\@everburning.com>
-@author Michael 'Mickey' Lauer <mickey\@tm.informatik.uni-frankfurt.de>
-@author David 'onefang' Seikel <onefang\@gmail.com>
-@author Hisham 'CodeWarrior' Mardam Bey <hisham\@hisham.cc>
-@author Brian 'rephorm' Mattern <rephorm\@rephorm.com>
-@author Tim Horton <hortont424\@gmail.com>
-@author Arnaud de Turckheim 'quarium' <quarium\@gmail.com>
-@author Matt Barclay <mbarclay\@gmail.com>
-@author Peter Wehrfritz <peter.wehrfritz\@web.de>
-@author Albin "Lutin" Tonnerre <albin.tonnerre\@gmail.com>
-@author Vincent Torri <vincent.torri\@gmail.com>
-@author Lars Munch <lars\@segv.dk>
-@author Andre Dieb <andre.dieb\@gmail.com>
-@author Mathieu Taillefumier <mathieu.taillefumier\@free.fr>
-@author Rui Miguel Silva Seabra <rms\@1407.org>
-@author Saumsung Electronics
+@author Carsten Haitzler <raster@@rasterman.com>
+@author Tom Gilbert <tom@@linuxbrit.co.uk>
+@author Burra <burra@@colorado.edu>
+@author Chris Ross <chris@@darkrock.co.uk>
+@author Term <term@@twistedpath.org>
+@author Tilman Sauerbeck <tilman@@code-monkey.de>
+@author Ibukun Olumuyiwa <ibukun@@computer.org>
+@author Yuri <da2001@@hotmail.ru>
+@author Nicholas Curran <quasar@@bigblue.net.au>
+@author Howell Tam <pigeon@@pigeond.net>
+@author Nathan Ingersoll <rbdpngn@@users.sourceforge.net>
+@author Andrew Elcock <andy@@elcock.org>
+@author Kim Woelders <kim@@woelders.dk>
+@author Sebastian Dransfeld <sebastid@@tango.flipp.net>
+@author Simon Poole <simon.armlinux@@themalago.net>
+@author Jorge Luis Zapata Muga <jorgeluis.zapata@@gmail.com>
+@author dan sinclair <zero@@everburning.com>
+@author Michael 'Mickey' Lauer <mickey@@tm.informatik.uni-frankfurt.de>
+@author David 'onefang' Seikel <onefang@@gmail.com>
+@author Hisham 'CodeWarrior' Mardam Bey <hisham@@hisham.cc>
+@author Brian 'rephorm' Mattern <rephorm@@rephorm.com>
+@author Tim Horton <hortont424@@gmail.com>
+@author Arnaud de Turckheim 'quarium' <quarium@@gmail.com>
+@author Matt Barclay <mbarclay@@gmail.com>
+@author Peter Wehrfritz <peter.wehrfritz@@web.de>
+@author Albin "Lutin" Tonnerre <albin.tonnerre@@gmail.com>
+@author Vincent Torri <vincent.torri@@gmail.com>
+@author Lars Munch <lars@@segv.dk>
+@author Andre Dieb <andre.dieb@@gmail.com>
+@author Mathieu Taillefumier <mathieu.taillefumier@@free.fr>
+@author Rui Miguel Silva Seabra <rms@@1407.org>
+@author Samsung Electronics
@author Samsung SAIT
-@author Nicolas Aguirre <aguirre.nicolas\@gmail.com>
-@author Brett Nash <nash\@nash.id.au>
-@author Mike Blumenkrantz <mike\@zentific.com>
-@date 2000-2010
+@author Nicolas Aguirre <aguirre.nicolas@@gmail.com>
+@author Brett Nash <nash@@nash.id.au>
+@author Mike Blumenkrantz <mike@@zentific.com>
+@author Leif Middelschulte <leif.middelschulte@@gmail.com>
+@author Mike McCormack <mj.mccormack@@samsung.com>
+@author Sangho Park <gouache95@gmail.com>
+@author Jihoon Kim <jihoon48.kim@samsung.com> <imfine98@gmail.com>
+@date 2000-2011
@section intro Introduction
Ecore functions for dealing with the X Windows System
%prep
-%setup -q -n %{name}-%{version}
+%setup -q
%build
CFLAGS="-I/usr/kerberos/include -I/usr/X11R6/include/X11/extensions"
%{_libdir}/*.a
%{_libdir}/pkgconfig/*
#%{_datadir}/aclocal/*
-%{_includedir}/*.h
+%{_includedir}/ecore-1/*.h
%files con
%defattr(-, root, root)
--- /dev/null
+#include <stdio.h>
+#include <Eina.h>
+#include <Ecore.h>
+#include <Ecore_File.h>
+
+/*
+ * ecore_file_download() example
+ *
+ * compile with:
+ * gcc ecore_file_download_example.c `pkg-config --libs --cflags ecore-file` \
+ * -o ecore_file_download_example
+ *
+ */
+
+#define URL "http://www.kernel.org/pub/linux/kernel/v1.0/linux-1.0.tar.gz"
+#define DST "linux-1.0.tar.gz"
+#define DST_MIME "[x-gzip]linux-1.0.tar.gz"
+
+
+void
+completion_cb(void *data, const char *file, int status)
+{
+ printf("Done (status: %d)\n", status);
+ ecore_main_loop_quit();
+}
+
+int
+progress_cb(void *data, const char *file,
+ long int dltotal, long int dlnow,
+ long int ultotal, long int ulnow)
+{
+ printf("Progress: %ld/%ld\n", dlnow, dltotal);
+ return ECORE_FILE_PROGRESS_CONTINUE; // continue the download
+}
+
+
+int main(void)
+{
+ double start;
+ Eina_Hash *headers;
+
+ eina_init();
+ ecore_init();
+ ecore_file_init();
+
+ if (ecore_file_exists(DST))
+ ecore_file_unlink(DST);
+
+ start = ecore_time_get();
+
+ if (ecore_file_download(URL, DST, completion_cb, progress_cb, NULL, NULL))
+ {
+ printf("Download started successfully:\n URL: %s\n DEST: %s\n", URL, DST);
+ ecore_main_loop_begin();
+ printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start);
+ printf("Downloaded %lld bytes\n", ecore_file_size(DST));
+ }
+ else
+ {
+ printf("Error, can't start download\n");
+ goto done;
+ }
+
+ headers = eina_hash_string_small_new(NULL);
+ eina_hash_add(headers, "Content-type", "application/x-gzip");
+
+ if (ecore_file_download_full(URL, DST_MIME, completion_cb, progress_cb, NULL, NULL, headers))
+ {
+ printf("Download started successfully:\n URL: %s\n DEST: %s\n", URL, DST_MIME);
+ ecore_main_loop_begin();
+ printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start);
+ printf("Downloaded %lld bytes\n", ecore_file_size(DST));
+ }
+ else
+ {
+ printf("Error, can't start download\n");
+ goto done;
+ }
+
+done:
+ if (headers) eina_hash_free(headers);
+ ecore_file_shutdown();
+ ecore_shutdown();
+ eina_shutdown();
+ return 0;
+}
-cs de el fr it pt
+cs de el fr it pt sl
msgstr ""
"Project-Id-Version: ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
"PO-Revision-Date: 2009-10-27 19:35+0100\n"
"Last-Translator: quaker66 <quaker66@gmail.com>\n"
"Language-Team: cs <quaker66@gmail.com>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
#: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
msgid "value has no pointer set.\n"
msgstr "hodnota nemá nastaven pointer.\n"
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "neznámá boolean hodnota %s.\n"
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
#, c-format
msgid "invalid number format %s\n"
msgstr "neznámý číselný formát %s\n"
msgid "missing parameter to append.\n"
msgstr "chybějící parametr k připojení.\n"
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
msgid "could not parse value.\n"
msgstr "nemůžu parsovat hodnotu.\n"
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing parameter.\n"
msgstr "chybějící parametr.\n"
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
msgid "missing callback function!\n"
msgstr "chybějící callback funkce!\n"
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
msgid "no version was defined.\n"
msgstr "nebyla definována verze.\n"
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
msgid "no copyright was defined.\n"
msgstr "nebyl definován copyright.\n"
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
msgid "no license was defined.\n"
msgstr "nebyla definována licence.\n"
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "CHYBA: neznámá volba --%s, ignoruji.\n"
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "CHYBA: volba --%s vyžaduje argument!\n"
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "CHYBA: neznámá volba -%c, ignoruji.\n"
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "CHYBA: volba -%c vyžaduje argument!\n"
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
msgid "ERROR: no parser provided.\n"
msgstr "CHYBA: nebyl poskytnut parser.\n"
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no values provided.\n"
msgstr "CHYBA: nebyly poskytnuty hodnoty.\n"
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
msgid "ERROR: no arguments provided.\n"
msgstr "CHYBA: nebyly poskytnuty argumenty.\n"
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
msgid "ERROR: invalid options found."
msgstr "CHYBA: nalezeny neplatné volby."
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
#, c-format
msgid " See --%s.\n"
msgstr " viz. --%s.\n"
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
#, c-format
msgid " See -%c.\n"
msgstr " viz. -%c.\n"
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "CHYBA: neplatná hodnota geometrie '%s'\n"
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "CHYBA: neplatná hodnota velikosti '%s'\n"
msgstr ""
"Project-Id-Version: ecore 0.9.9.063-2\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-11-23 23:14+0100\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
"PO-Revision-Date: 2010-01-03 21:52+GMT\n"
"Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
"PO-Revision-Date: 2009-12-15 00:56+0200\n"
"Last-Translator: Giorgos Koutsikos <ragecryx@yahoo.gr>\n"
"Language-Team: Greek\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
#: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
msgid "value has no pointer set.\n"
msgstr "η τιμή δεν έχει δείκτη ορισμένο.\n"
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "άγνωστη τιμή boolean %s.\n"
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
#, c-format
msgid "invalid number format %s\n"
msgstr "άγνωστη μορφή αριθμού %s\n"
msgid "missing parameter to append.\n"
msgstr "ελλιπής παράμετρος προς επισύναψη.\n"
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
msgid "could not parse value.\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing parameter.\n"
msgstr "ελλιπής παράμετρος.\n"
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
msgid "missing callback function!\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
msgid "no version was defined.\n"
msgstr "δεν έχει οριστεί έκδοση.\n"
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
msgid "no copyright was defined.\n"
msgstr "δεν έχουν οριστεί πνευματικά δικαιώματα.\n"
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
msgid "no license was defined.\n"
msgstr "δεν έχει οριστεί άδεια.\n"
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
msgid "ERROR: no parser provided.\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no values provided.\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
msgid "ERROR: no arguments provided.\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
msgid "ERROR: invalid options found."
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
#, c-format
msgid " See --%s.\n"
msgstr " Δες --%s.\n"
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
#, c-format
msgid " See -%c.\n"
msgstr " Δες -%c.\n"
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr ""
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr ""
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
"PO-Revision-Date: 2010-07-11 11:01+0400\n"
"Last-Translator: batden <batden@orange.fr>\n"
"Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
#: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
msgid "value has no pointer set.\n"
msgstr "la valeur n'a aucun pointeur défini.\n"
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "valeur booléenne inconnue %s.\n"
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
#, c-format
msgid "invalid number format %s\n"
msgstr "format du nombre non valide %s\n"
msgid "missing parameter to append.\n"
msgstr "paramètre manquant à ajouter.\n"
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
msgid "could not parse value.\n"
msgstr "analyse de la valeur impossible.\n"
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing parameter.\n"
msgstr "paramètre manquant.\n"
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
msgid "missing callback function!\n"
msgstr "fonction de rappel manquante !\n"
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
msgid "no version was defined.\n"
msgstr "aucune version n'est définie.\n"
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
msgid "no copyright was defined.\n"
msgstr "aucun copyright n'est défini.\n"
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
msgid "no license was defined.\n"
msgstr "aucune licence n'est définie.\n"
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "ERREUR : option inconnue --%s, non prise en compte.\n"
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "ERREUR : l'option --%s requiert un argument !\n"
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "ERREUR : option inconnue -%c, non prise en compte.\n"
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "ERREUR : l'option -%c requiert un argument !\n"
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
msgid "ERROR: no parser provided.\n"
msgstr "ERREUR : aucun analyseur n'est fourni.\n"
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no values provided.\n"
msgstr "ERREUR : aucune valeur n'est fournie.\n"
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
msgid "ERROR: no arguments provided.\n"
msgstr "ERREUR : aucun argument n'est fourni.\n"
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
msgid "ERROR: invalid options found."
msgstr "ERREUR : options non valides détectées."
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
#, c-format
msgid " See --%s.\n"
msgstr " Voir --%s.\n"
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
#, c-format
msgid " See -%c.\n"
msgstr " Voir -%c.\n"
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "ERREUR : valeur géométrique incorrecte « %s »\n"
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "ERREUR : valeur de taille incorrecte « %s »\n"
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
"PO-Revision-Date: 2009-10-27 19:36+0100\n"
"Last-Translator: quaker66 <quaker66@gmail.com>\n"
"Language-Team: none\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
#: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161 src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
msgid "value has no pointer set.\n"
msgstr "il valore non ha puntatori impostati.\n"
-#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "valore booleano sconosciuto %s.\n"
-#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
#, c-format
msgid "invalid number format %s\n"
msgstr "formato numero non valido %s\n"
msgid "missing parameter to append.\n"
msgstr "parametro da appendere mancante.\n"
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
msgid "could not parse value.\n"
msgstr "impossibile il parsing del valore.\n"
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing parameter.\n"
msgstr "parametro mancante.\n"
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
msgid "missing callback function!\n"
msgstr "funzione callback mancante!\n"
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
msgid "no version was defined.\n"
msgstr "nessuna versione definita.\n"
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
msgid "no copyright was defined.\n"
msgstr "nessun copyright definito.\n"
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
msgid "no license was defined.\n"
msgstr "nessuna licenza definita.\n"
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "ERRORE: opzione sconosciuta --%s, ignorata.\n"
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "ERRORE: l'opzione --%s richiede un argomento!\n"
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "ERRORE: opzione sconosciuta -%c, ignorata.\n"
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "ERRORE: l'opzione -%c richiede un argomento!\n"
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
msgid "ERROR: no parser provided.\n"
msgstr "ERRORE: nessun parser fornito.\n"
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no values provided.\n"
msgstr "ERRORE: nessun valore fornito.\n"
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
msgid "ERROR: no arguments provided.\n"
msgstr "ERRORE: nessun argomento fornito.\n"
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
msgid "ERROR: invalid options found."
msgstr "ERRORE: trovate opzioni non valide."
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
#, c-format
msgid " See --%s.\n"
msgstr " Vedere --%s.\n"
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
#, c-format
msgid " See -%c.\n"
msgstr " Vedere -%c.\n"
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "ERRORE: valore geometrico non corretto '%s'\n"
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "ERRORE: valore dimensione non corretto '%s'\n"
msgstr ""
"Project-Id-Version: ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-08-16 17:14+0900\n"
+"POT-Creation-Date: 2011-01-30 13:29-0600\n"
"PO-Revision-Date: 2010-10-06 12:37-0000\n"
"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "ERROR: "
msgstr "ERRO: "
-#: src/lib/ecore/ecore_getopt.c:853
-#: src/lib/ecore/ecore_getopt.c:969
-#: src/lib/ecore/ecore_getopt.c:982
-#: src/lib/ecore/ecore_getopt.c:994
-#: src/lib/ecore/ecore_getopt.c:1008
-#: src/lib/ecore/ecore_getopt.c:1052
-#: src/lib/ecore/ecore_getopt.c:1161
-#: src/lib/ecore/ecore_getopt.c:1198
+#: src/lib/ecore/ecore_getopt.c:853 src/lib/ecore/ecore_getopt.c:969
+#: src/lib/ecore/ecore_getopt.c:982 src/lib/ecore/ecore_getopt.c:994
+#: src/lib/ecore/ecore_getopt.c:1008 src/lib/ecore/ecore_getopt.c:1052
+#: src/lib/ecore/ecore_getopt.c:1160 src/lib/ecore/ecore_getopt.c:1196
msgid "value has no pointer set.\n"
msgstr "o valor não está definido.\n"
-#: src/lib/ecore/ecore_getopt.c:882
-#: src/lib/ecore/ecore_getopt.c:1072
+#: src/lib/ecore/ecore_getopt.c:882 src/lib/ecore/ecore_getopt.c:1071
#, c-format
msgid "unknown boolean value %s.\n"
msgstr "valor booleano desconhecido %s.\n"
-#: src/lib/ecore/ecore_getopt.c:926
-#: src/lib/ecore/ecore_getopt.c:1152
+#: src/lib/ecore/ecore_getopt.c:926 src/lib/ecore/ecore_getopt.c:1151
#, c-format
msgid "invalid number format %s\n"
msgstr "formato do número inválido %s\n"
msgid "missing parameter to append.\n"
msgstr "faltam os parâmetros a anexar.\n"
-#: src/lib/ecore/ecore_getopt.c:1142
+#: src/lib/ecore/ecore_getopt.c:1141
msgid "could not parse value.\n"
msgstr "incapaz de analisar o valor.\n"
-#: src/lib/ecore/ecore_getopt.c:1191
+#: src/lib/ecore/ecore_getopt.c:1190
msgid "missing parameter.\n"
msgstr "parâmetro em falta.\n"
-#: src/lib/ecore/ecore_getopt.c:1205
+#: src/lib/ecore/ecore_getopt.c:1203
msgid "missing callback function!\n"
msgstr "função de chamada em falta!\n"
-#: src/lib/ecore/ecore_getopt.c:1228
+#: src/lib/ecore/ecore_getopt.c:1226
msgid "no version was defined.\n"
msgstr "nenhuma versão definida.\n"
-#: src/lib/ecore/ecore_getopt.c:1242
+#: src/lib/ecore/ecore_getopt.c:1240
msgid "no copyright was defined.\n"
msgstr "direitos de autor não definidos.\n"
-#: src/lib/ecore/ecore_getopt.c:1256
+#: src/lib/ecore/ecore_getopt.c:1254
msgid "no license was defined.\n"
msgstr "licença não definida.\n"
-#: src/lib/ecore/ecore_getopt.c:1310
+#: src/lib/ecore/ecore_getopt.c:1308
#, c-format
msgid "ERROR: unknown option --%s, ignored.\n"
msgstr "ERRO: opção desconhecida --%s, ignorada.\n"
-#: src/lib/ecore/ecore_getopt.c:1343
+#: src/lib/ecore/ecore_getopt.c:1341
#, c-format
msgid "ERROR: option --%s requires an argument!\n"
msgstr "ERRO: a opção --%s requer um argumento!\n"
-#: src/lib/ecore/ecore_getopt.c:1379
+#: src/lib/ecore/ecore_getopt.c:1377
#, c-format
msgid "ERROR: unknown option -%c, ignored.\n"
msgstr "ERRO: opção desconhecida --%c, ignorada.\n"
-#: src/lib/ecore/ecore_getopt.c:1417
+#: src/lib/ecore/ecore_getopt.c:1415
#, c-format
msgid "ERROR: option -%c requires an argument!\n"
msgstr "ERRO: a opção --%c requer um argumento!\n"
-#: src/lib/ecore/ecore_getopt.c:1620
+#: src/lib/ecore/ecore_getopt.c:1614
msgid "ERROR: no parser provided.\n"
msgstr "ERRO: nenhum analisador fornecido.\n"
-#: src/lib/ecore/ecore_getopt.c:1625
+#: src/lib/ecore/ecore_getopt.c:1619
msgid "ERROR: no values provided.\n"
msgstr "ERRO: nenhum valor fornecido.\n"
-#: src/lib/ecore/ecore_getopt.c:1634
+#: src/lib/ecore/ecore_getopt.c:1628
msgid "ERROR: no arguments provided.\n"
msgstr "ERRO: nenhum argumento fornecido.\n"
-#: src/lib/ecore/ecore_getopt.c:1660
+#: src/lib/ecore/ecore_getopt.c:1654
msgid "ERROR: invalid options found."
msgstr "ERRO: encontradas opções inválidas."
-#: src/lib/ecore/ecore_getopt.c:1666
+#: src/lib/ecore/ecore_getopt.c:1660
#, c-format
msgid " See --%s.\n"
msgstr " Veja --%s.\n"
-#: src/lib/ecore/ecore_getopt.c:1668
+#: src/lib/ecore/ecore_getopt.c:1662
#, c-format
msgid " See -%c.\n"
msgstr " Veja -%c.\n"
-#: src/lib/ecore/ecore_getopt.c:1705
+#: src/lib/ecore/ecore_getopt.c:1699
#, c-format
msgid "ERROR: incorrect geometry value '%s'\n"
msgstr "ERRO: valor geométrico incorreto \"%s\"\n"
-#: src/lib/ecore/ecore_getopt.c:1728
+#: src/lib/ecore/ecore_getopt.c:1722
#, c-format
msgid "ERROR: incorrect size value '%s'\n"
msgstr "ERRO: tamanho incorreto \"%s\"\n"
-
--- /dev/null
+# Slovenian translation of ecore.
+# This file is put in the public domain.
+# r1to <renato.rener@gmail.com>, 2011.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ecore 1.0\n"
+"Report-Msgid-Bugs-To: http://trac.enlightenment.org/e/\n"
+"POT-Creation-Date: 2011-02-22 20:00-0800\n"
+"PO-Revision-Date: 2011-02-24 16:54+0100\n"
+"Last-Translator: r1to <renato.rener@gmail.com>\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../src/lib/ecore/ecore_getopt.c:87
+msgid "Version:"
+msgstr "Različica"
+
+#: ../src/lib/ecore/ecore_getopt.c:95
+msgid "Usage:"
+msgstr "Uporaba:"
+
+#: ../src/lib/ecore/ecore_getopt.c:100
+#, c-format
+msgid "%s [options]\n"
+msgstr "%s·[možnosti]\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:248
+msgid "Copyright:"
+msgstr "Avtorstvo:"
+
+#: ../src/lib/ecore/ecore_getopt.c:259
+msgid "License:"
+msgstr "Licenca:"
+
+#: ../src/lib/ecore/ecore_getopt.c:411
+msgid "Type: "
+msgstr "Vrsta:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:478
+msgid "Default: "
+msgstr "Privzeto:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:501
+msgid "Choices: "
+msgstr "Izbire:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:598
+msgid "Options:\n"
+msgstr "Možnosti:\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:718
+#, c-format
+msgid "ERROR: unknown option --%s.\n"
+msgstr "NAPAKA:·Neznana možnost·--%s.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:720
+#, c-format
+msgid "ERROR: unknown option -%c.\n"
+msgstr "NAPAKA:·neznana možnost·-%c.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:776
+msgid "ERROR: "
+msgstr "NAPAKA:"
+
+#: ../src/lib/ecore/ecore_getopt.c:853 ../src/lib/ecore/ecore_getopt.c:969
+#: ../src/lib/ecore/ecore_getopt.c:982 ../src/lib/ecore/ecore_getopt.c:994
+#: ../src/lib/ecore/ecore_getopt.c:1008 ../src/lib/ecore/ecore_getopt.c:1052
+#: ../src/lib/ecore/ecore_getopt.c:1160 ../src/lib/ecore/ecore_getopt.c:1196
+msgid "value has no pointer set.\n"
+msgstr "vrednost nima nastavljenega kazalnika.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:882 ../src/lib/ecore/ecore_getopt.c:1071
+#, c-format
+msgid "unknown boolean value %s.\n"
+msgstr "neznana Boolova vrednost·%s.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:926 ../src/lib/ecore/ecore_getopt.c:1151
+#, c-format
+msgid "invalid number format %s\n"
+msgstr "napačen·format števila·%s\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1021
+#, c-format
+msgid "invalid choice \"%s\". Valid values are: "
+msgstr "napačna izbira·\"%s\".·Pravilne izbire so:·"
+
+#: ../src/lib/ecore/ecore_getopt.c:1046
+msgid "missing parameter to append.\n"
+msgstr "manjka·parameter·za dodajo.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1141
+msgid "could not parse value.\n"
+msgstr "vrednosti ni bilo možno razčleniti.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1190
+msgid "missing parameter.\n"
+msgstr "manjkajoči·parameter.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1203
+msgid "missing callback function!\n"
+msgstr "manjkajoča povratno-zasilna funkcija !\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1226
+msgid "no version was defined.\n"
+msgstr "definirana ni bila nobena različica.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1240
+msgid "no copyright was defined.\n"
+msgstr "definirano ni bilo nobeno avtorstvo.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1254
+msgid "no license was defined.\n"
+msgstr "definirana ni bila nobena licenca.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1308
+#, c-format
+msgid "ERROR: unknown option --%s, ignored.\n"
+msgstr "NAPAKA:·neznana možnost·--%s,·prezrto.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1341
+#, c-format
+msgid "ERROR: option --%s requires an argument!\n"
+msgstr "NAPAKA:·možnost·--%s·zahteva argument!\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1377
+#, c-format
+msgid "ERROR: unknown option -%c, ignored.\n"
+msgstr "NAPAKA:·neznana možnost·-%c,·prezrto.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1415
+#, c-format
+msgid "ERROR: option -%c requires an argument!\n"
+msgstr "NAPAKA:·možnost·-%c zahteva argument!\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1614
+msgid "ERROR: no parser provided.\n"
+msgstr "NAPAKA:·ni podan razčlenjevalnik.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1619
+msgid "ERROR: no values provided.\n"
+msgstr "NAPAKA::·ni podanih vrednosti.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1628
+msgid "ERROR: no arguments provided.\n"
+msgstr "NAPAKA::·ni podanih argumentov.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1654
+msgid "ERROR: invalid options found."
+msgstr "NAPAKA::·najdene nepravilne možnosti"
+
+#: ../src/lib/ecore/ecore_getopt.c:1660
+#, c-format
+msgid " See --%s.\n"
+msgstr "·Glej·--%s.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1662
+#, c-format
+msgid " See -%c.\n"
+msgstr "·Glej·-%c.\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1699
+#, c-format
+msgid "ERROR: incorrect geometry value '%s'\n"
+msgstr "NAPAKA::·nepravilna geometrijska vrednost·'%s'\n"
+
+#: ../src/lib/ecore/ecore_getopt.c:1722
+#, c-format
+msgid "ERROR: incorrect size value '%s'\n"
+msgstr "NAPAKA::·nepravilna vrednost velikosti·'%s'\n"
#endif
/**
+ * @file Ecore.h
* @defgroup Ecore_Group Ecore - Main Loop and Job Functions.
* @brief The file that provides the program utility, main loop and timer
* functions.
enum _Ecore_Exe_Flags /* flags for executing a child with its stdin and/or stdout piped back */
{
+ ECORE_EXE_NONE = 0, /**< No exe flags at all */
ECORE_EXE_PIPE_READ = 1, /**< Exe Pipe Read mask */
ECORE_EXE_PIPE_WRITE = 2, /**< Exe Pipe Write mask */
ECORE_EXE_PIPE_ERROR = 4, /**< Exe Pipe error mask */
struct _Ecore_Event_Signal_Exit /** Exit request event */
{
- unsigned int interrupt : 1; /**< Set if the exit request was an interrupt signal*/
- unsigned int quit : 1; /**< set if the exit request was a quit signal */
- unsigned int terminate : 1; /**< Set if the exit request was a terminate singal */
+ Eina_Bool interrupt : 1; /**< Set if the exit request was an interrupt signal*/
+ Eina_Bool quit : 1; /**< set if the exit request was a quit signal */
+ Eina_Bool terminate : 1; /**< Set if the exit request was a terminate singal */
void *ext_data; /**< Extension data - not used */
#ifndef _WIN32
int exit_code; /**< The exit code of the process */
Ecore_Exe *exe; /**< The handle to the exited process, or NULL if not found */
int exit_signal; /** < The signal that caused the process to exit */
- unsigned int exited : 1; /** < set to 1 if the process exited of its own accord */
- unsigned int signalled : 1; /** < set to 1 id the process exited due to uncaught signal */
+ Eina_Bool exited : 1; /** < set to 1 if the process exited of its own accord */
+ Eina_Bool signalled : 1; /** < set to 1 id the process exited due to uncaught signal */
void *ext_data; /**< Extension data - not used */
#ifndef _WIN32
siginfo_t data; /**< Signal info */
EAPI void ecore_main_loop_iterate(void);
EAPI void ecore_main_loop_select_func_set(Ecore_Select_Function func);
- EAPI void *ecore_main_loop_select_func_get(void);
+ EAPI Ecore_Select_Function ecore_main_loop_select_func_get(void);
EAPI Eina_Bool ecore_main_loop_glib_integrate(void);
EAPI void ecore_main_loop_glib_always_integrate_disable(void);
{
EINA_INLIST;
ECORE_MAGIC;
+ Ecore_Fd_Handler *next_ready;
int fd;
Ecore_Fd_Handler_Flags flags;
Ecore_Fd_Cb func;
static Eina_List *fd_handlers_with_buffer = NULL;
static Eina_List *fd_handlers_to_delete = NULL;
-static Eina_List *fd_handlers_to_call = NULL;
-static Eina_List *fd_handlers_to_call_current;
-static Eina_List *fd_handlers_to_call_current_next;
+/* single linked list of ready fdhs, terminated by loop to self */
+static Ecore_Fd_Handler *fd_handlers_to_call;
+static Ecore_Fd_Handler *fd_handlers_to_call_current;
#ifdef _WIN32
static Ecore_Win32_Handler *win32_handlers = NULL;
#endif
}
+static inline void
+_ecore_try_add_to_call_list(Ecore_Fd_Handler *fdh)
+{
+ /* check if this fdh is already in the list */
+ if (fdh->next_ready)
+ return;
+ if (fdh->read_active || fdh->write_active || fdh->error_active)
+ {
+ /*
+ * make sure next_ready is non-null by pointing to ourselves
+ * use that to indicate this fdh is in the ready list
+ * insert at the head of the list to avoid trouble
+ */
+ fdh->next_ready = fd_handlers_to_call ? fd_handlers_to_call : fdh;
+ fd_handlers_to_call = fdh;
+ }
+}
+
#ifdef HAVE_EPOLL
static inline int
_ecore_get_epoll_fd(void)
for (i = 0; i < ret; i++)
{
Ecore_Fd_Handler *fdh;
- Eina_Bool pst, st;
fdh = ev[i].data.ptr;
if (!ECORE_MAGIC_CHECK(fdh, ECORE_MAGIC_FD_HANDLER))
ERR("deleted fd in epoll");
continue;
}
- pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
- if ((ev[i].events & EPOLLIN) && (!fdh->read_active))
- st = fdh->read_active = EINA_TRUE;
- if ((ev[i].events & EPOLLOUT) && (!fdh->write_active))
- st = fdh->write_active = EINA_TRUE;
- if ((ev[i].events & EPOLLERR) && (!fdh->error_active))
- st = fdh->error_active = EINA_TRUE;
- if (pst != st)
- fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+
+ if (ev[i].events & EPOLLIN)
+ fdh->read_active = EINA_TRUE;
+ if (ev[i].events & EPOLLOUT)
+ fdh->write_active = EINA_TRUE;
+ if (ev[i].events & EPOLLERR)
+ fdh->error_active = EINA_TRUE;
+
+ _ecore_try_add_to_call_list(fdh);
}
return ret;
static inline int _ecore_main_fdh_poll_mark_active(void)
{
Ecore_Fd_Handler *fdh;
- Eina_Bool pst, st;
int ret = 0;
/* call the prepare callback for all handlers */
if (fdh->delete_me)
continue;
- pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
- if ((fdh->gfd.revents & G_IO_IN) && (!fdh->read_active))
- st = fdh->read_active = EINA_TRUE;
- if ((fdh->gfd.revents & G_IO_OUT) && (!fdh->write_active))
- st = fdh->write_active = EINA_TRUE;
- if ((fdh->gfd.revents & G_IO_ERR) && (!fdh->error_active))
- st = fdh->error_active = EINA_TRUE;
- if (pst != st)
- fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+ if (fdh->gfd.revents & G_IO_IN)
+ fdh->read_active = EINA_TRUE;
+ if (fdh->gfd.revents & G_IO_OUT)
+ fdh->write_active = EINA_TRUE;
+ if (fdh->gfd.revents & G_IO_ERR)
+ fdh->error_active = EINA_TRUE;
+
+ _ecore_try_add_to_call_list(fdh);
+
if (fdh->gfd.revents & (G_IO_IN|G_IO_OUT|G_IO_ERR)) ret++;
}
* or the native select function if none was set.
*
*/
-EAPI void *
+EAPI Ecore_Select_Function
ecore_main_loop_select_func_get(void)
{
return main_loop_select;
fdh = calloc(1, sizeof(Ecore_Fd_Handler));
if (!fdh) return NULL;
ECORE_MAGIC_SET(fdh, ECORE_MAGIC_FD_HANDLER);
+ fdh->next_ready = NULL;
fdh->fd = fd;
fdh->flags = flags;
if (_ecore_main_fdh_poll_add(fdh) < 0)
{
- ERR("Failed to add poll on fd %d (errno = %d)!", fd, errno);
+ int err = errno;
+ ERR("Failed to add poll on fd %d (errno = %d: %s)!", fd, err, strerror(err));
free(fdh);
return NULL;
}
EAPI void
ecore_main_fd_handler_active_set(Ecore_Fd_Handler *fd_handler, Ecore_Fd_Handler_Flags flags)
{
+ int ret;
+
if (!ECORE_MAGIC_CHECK(fd_handler, ECORE_MAGIC_FD_HANDLER))
{
ECORE_MAGIC_FAIL(fd_handler, ECORE_MAGIC_FD_HANDLER,
return;
}
fd_handler->flags = flags;
- if (_ecore_main_fdh_poll_modify(fd_handler) < 0)
+ ret = _ecore_main_fdh_poll_modify(fd_handler);
+ if (ret < 0)
{
- ERR("Failed to mod epoll fd %d!", fd_handler->fd);
+ ERR("Failed to mod epoll fd %d: %s!", fd_handler->fd, strerror(ret));
}
}
fd_handlers_with_prep = eina_list_free(fd_handlers_with_prep);
if (fd_handlers_to_delete)
fd_handlers_to_delete = eina_list_free(fd_handlers_to_delete);
- if (fd_handlers_to_call)
- fd_handlers_to_call = eina_list_free(fd_handlers_to_call);
+ fd_handlers_to_call = NULL;
fd_handlers_to_call_current = NULL;
fd_handlers_to_delete = NULL;
fd_handler_current = NULL;
{
if (!fdh->delete_me)
{
- Eina_Bool pst, st;
- pst = st = fdh->read_active | fdh->write_active | fdh->error_active;
- if ((FD_ISSET(fdh->fd, &rfds)) && (!fdh->read_active))
- st = fdh->read_active = EINA_TRUE;
- if ((FD_ISSET(fdh->fd, &wfds)) && (!fdh->write_active))
- st = fdh->write_active = EINA_TRUE;
- if ((FD_ISSET(fdh->fd, &exfds)) && (!fdh->error_active))
- st = fdh->error_active = EINA_TRUE;
- if (pst != st)
- fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
+ if (FD_ISSET(fdh->fd, &rfds))
+ fdh->read_active = EINA_TRUE;
+ if (FD_ISSET(fdh->fd, &wfds))
+ fdh->write_active = EINA_TRUE;
+ if (FD_ISSET(fdh->fd, &exfds))
+ fdh->error_active = EINA_TRUE;
+ _ecore_try_add_to_call_list(fdh);
}
}
#endif /* HAVE_EPOLL */
static void
_ecore_main_fd_handlers_call(void)
{
+ /* grab a new list */
if (!fd_handlers_to_call_current)
{
- /* regular main loop, start from head */
fd_handlers_to_call_current = fd_handlers_to_call;
- fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current);
- }
- else
- {
- /* recursive main loop, continue from where we were */
- fd_handlers_to_call_current = fd_handlers_to_call_current_next;
- fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current);
+ fd_handlers_to_call = NULL;
}
while (fd_handlers_to_call_current)
{
- Ecore_Fd_Handler *fdh = fd_handlers_to_call_current->data;
+ Ecore_Fd_Handler *fdh = fd_handlers_to_call_current;
if (!fdh->delete_me)
{
}
}
- fd_handlers_to_call = eina_list_remove_list(fd_handlers_to_call, fd_handlers_to_call_current);
- fd_handlers_to_call_current = fd_handlers_to_call_current_next;
- fd_handlers_to_call_current_next = eina_list_next(fd_handlers_to_call_current_next);
+ /* stop when we point to ourselves */
+ if (fdh->next_ready == fdh)
+ {
+ fdh->next_ready = NULL;
+ fd_handlers_to_call_current = NULL;
+ break;
+ }
+
+ fd_handlers_to_call_current = fdh->next_ready;
+ fdh->next_ready = NULL;
}
}
if (fdh->buf_func(fdh->buf_data, fdh))
{
ret |= fdh->func(fdh->data, fdh);
- if (!fdh->read_active)
- {
- fdh->read_active = EINA_TRUE;
- if ((!fdh->write_active) && (!fdh->error_active))
- fd_handlers_to_call = eina_list_append(fd_handlers_to_call, fdh);
- }
+ fdh->read_active = EINA_TRUE;
+ _ecore_try_add_to_call_list(fdh);
}
fdh->references--;
}
else if (ret == 0)
{
if (!p->delete_me)
- p->handler((void *)p->data, NULL, 0);
+ p->handler((void *)p->data, NULL, 0);
pipe_close(p->fd_read);
p->fd_read = PIPE_FD_INVALID;
p->fd_handler = NULL;
return ECORE_CALLBACK_CANCEL;
}
#ifndef _WIN32
- else if ((ret == PIPE_FD_ERROR) &&
+ else if ((ret == PIPE_FD_ERROR) &&
((errno == EINTR) || (errno == EAGAIN)))
{
_ecore_pipe_unhandle(p);
return ECORE_CALLBACK_CANCEL;
}
#ifndef _WIN32
- else if ((ret == PIPE_FD_ERROR) &&
- ((errno == EINTR) || (errno == EAGAIN)))
+ else if ((ret == PIPE_FD_ERROR) &&
+ ((errno == EINTR) || (errno == EAGAIN)))
return ECORE_CALLBACK_RENEW;
else
{
/* make mono happy - this is evil though... */
#undef SIGPWR
/* valgrind in some versions/setups uses SIGRT's... hmmm */
-#undef SIGRTMIN
typedef void (*Signal_Handler)(int sig, siginfo_t *si, void *foo);
static void _ecore_signal_callback_sigpwr(int sig, siginfo_t *si, void *foo);
#endif
-#ifdef SIGRTMIN
-static void _ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo);
-#endif
-
static Eina_Bool _ecore_signal_exe_exit_delay(void *data);
//#define MAXSIGQ 256 // 32k
#ifdef SIGPWR
static volatile sig_atomic_t sigpwr_count = 0;
#endif
-#ifdef SIGRTMIN
-static volatile sig_atomic_t *sigrt_count = NULL;
-#endif
static volatile siginfo_t sigchld_info[MAXSIGQ];
static volatile siginfo_t sigusr1_info[MAXSIGQ];
#ifdef SIGPWR
static volatile siginfo_t sigpwr_info[MAXSIGQ];
#endif
-#ifdef SIGRTMIN
-static volatile siginfo_t *sigrt_info[MAXSIGQ];
-#endif
void
_ecore_signal_shutdown(void)
{
-#ifdef SIGRTMIN
- int i, num = SIGRTMAX - SIGRTMIN;
-#endif
-
_ecore_signal_callback_set(SIGPIPE, (Signal_Handler) SIG_DFL);
_ecore_signal_callback_set(SIGALRM, (Signal_Handler) SIG_DFL);
_ecore_signal_callback_set(SIGCHLD, (Signal_Handler) SIG_DFL);
sigterm_count = 0;
sig_count = 0;
-#ifdef SIGRTMIN
- for (i = 0; i < num; i++)
- {
- _ecore_signal_callback_set(SIGRTMIN + i, (Signal_Handler) SIG_DFL);
- sigrt_count[i] = 0;
- }
-
- if (sigrt_count)
- {
- free((sig_atomic_t *) sigrt_count);
- sigrt_count = NULL;
- }
-
- for (i = 0; i < MAXSIGQ; i++)
- {
- if (sigrt_info[i])
- {
- free((siginfo_t *) sigrt_info[i]);
- sigrt_info[i] = NULL;
- }
- }
-#endif
}
void
_ecore_signal_init(void)
{
-#ifdef SIGRTMIN
- int i, num = SIGRTMAX - SIGRTMIN;
-#endif
-
_ecore_signal_callback_set(SIGPIPE, _ecore_signal_callback_ignore);
_ecore_signal_callback_set(SIGALRM, _ecore_signal_callback_ignore);
_ecore_signal_callback_set(SIGCHLD, _ecore_signal_callback_sigchld);
#ifdef SIGPWR
_ecore_signal_callback_set(SIGPWR, _ecore_signal_callback_sigpwr);
#endif
-
-#ifdef SIGRTMIN
- sigrt_count = calloc(1, sizeof(sig_atomic_t) * num);
- assert(sigrt_count);
-
- for (i = 0; i < MAXSIGQ; i++)
- {
- sigrt_info[i] = calloc(1, sizeof(siginfo_t) * num);
- assert(sigrt_info[i]);
- }
-
- for (i = 0; i < num; i++)
- _ecore_signal_callback_set(SIGRTMIN + i, _ecore_signal_callback_sigrt);
-#endif
}
int
void
_ecore_signal_call(void)
{
-#ifdef SIGRTMIN
- int i, num = SIGRTMAX - SIGRTMIN;
-#endif
volatile sig_atomic_t n;
sigset_t oldset, newset;
#ifdef SIGPWR
sigaddset(&newset, SIGPWR);
#endif
-#ifdef SIGRTMIN
- for (i = 0; i < num; i++)
- sigaddset(&newset, SIGRTMIN + i);
-#endif
sigprocmask(SIG_BLOCK, &newset, &oldset);
if (sigchld_count > MAXSIGQ)
WRN("%i SIGCHLD in queue. max queue size %i. losing "
sigpwr_count = 0;
#endif
-#ifdef SIGRTMIN
- for (i = 0; i < num; i++)
- {
- if (sigrt_count[i] > MAXSIGQ)
- WRN("%i SIGRT%i in queue. max queue size %i. losing "
- "siginfo for extra signals.", i + 1, sigrt_count[i], MAXSIGQ);
- for (n = 0; n < sigrt_count[i]; n++)
- {
- Ecore_Event_Signal_Realtime *e;
-
- if ((e = _ecore_event_signal_realtime_new()))
- {
- e->num = i;
-
- if ((n < MAXSIGQ) && (sigrt_info[n][i].si_signo))
- e->data = sigrt_info[n][i];
-
- ecore_event_add(ECORE_EVENT_SIGNAL_REALTIME, e, NULL, NULL);
- }
- sig_count--;
- }
- sigrt_count[i] = 0;
- }
-#endif
sigprocmask(SIG_SETMASK, &oldset, NULL);
}
}
#endif
-#ifdef SIGRTMIN
-static void
-_ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo __UNUSED__)
-{
- volatile sig_atomic_t n;
- n = sigrt_count[sig - SIGRTMIN];
- if (n < MAXSIGQ)
- {
- if (si)
- sigrt_info[n][sig - SIGRTMIN] = *si;
- else
- sigrt_info[n][sig - SIGRTMIN].si_signo = 0;
- }
- sigrt_count[sig - SIGRTMIN]++;
- sig_count++;
-}
-#endif
-
static Eina_Bool
_ecore_signal_exe_exit_delay(void *data)
{
* @param func_end The function that will be called in the main loop if the thread terminate correctly.
* @param func_cancel The function that will be called in the main loop if the thread is cancelled.
* @param data User context data to pass to all callback.
- * @param try_no_queue If you wan't to run outside of the thread pool.
+ * @param try_no_queue If you want to run outside of the thread pool.
* @return A reference to the newly created thread instance, or NULL if it failed.
*
* ecore_thread_feedback_run provide a facility for easily managing heavy task in a
* that will do the heavy work in another thread (so you should not use the
* EFL in it except Eina and Eet if you are careful). The second one, func_notify,
* will receive the data send from the thread function (func_heavy) by ecore_thread_notify
- * in the main loop (and so, can use all the EFL). Tje third, func_end,
+ * in the main loop (and so, can use all the EFL). The third, func_end,
* that will be called in Ecore main loop when func_heavy is done. So you
* can use all the EFL inside this function. The last one, func_cancel, will
* be called in the main loop also, if the thread is cancelled or could not run at all.
typedef struct _Ecore_Con_Event_Client_Del Ecore_Con_Event_Client_Del;
/**
+ * @typedef Ecore_Con_Event_Client_Error
+ * Used as the @p data param for the corresponding event
+ */
+typedef struct _Ecore_Con_Event_Client_Error Ecore_Con_Event_Client_Error;
+
+/**
* @typedef Ecore_Con_Event_Server_Add
* Used as the @p data param for the corresponding event
*/
typedef struct _Ecore_Con_Event_Server_Del Ecore_Con_Event_Server_Del;
/**
+ * @typedef Ecore_Con_Event_Server_Error
+ * Used as the @p data param for the corresponding event
+ */
+typedef struct _Ecore_Con_Event_Server_Error Ecore_Con_Event_Server_Error;
+
+/**
* @typedef Ecore_Con_Event_Client_Data
* Used as the @p data param for the corresponding event
*/
};
/**
+ * @struct _Ecore_Con_Event_Client_Error
+ * Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_ERROR event
+ */
+struct _Ecore_Con_Event_Client_Error
+{
+ Ecore_Con_Client *client; /** the client for which an error occurred */
+ char *error; /**< the error string describing what happened */
+};
+
+/**
* @struct _Ecore_Con_Event_Server_Add
* Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ADD event
*/
};
/**
+ * @struct _Ecore_Con_Event_Server_Error
+ * Used as the @p data param for the @ref ECORE_CON_EVENT_SERVER_ERROR event
+ */
+struct _Ecore_Con_Event_Server_Error
+{
+ Ecore_Con_Server *server; /** the server for which an error occurred */
+ char *error; /**< the error string describing what happened */
+};
+
+/**
* @struct _Ecore_Con_Event_Client_Data
* Used as the @p data param for the @ref ECORE_CON_EVENT_CLIENT_DATA event
*/
EAPI extern int ECORE_CON_EVENT_CLIENT_ADD;
/** A client has disconnected from the server */
EAPI extern int ECORE_CON_EVENT_CLIENT_DEL;
+/** A client experienced an error */
+EAPI extern int ECORE_CON_EVENT_CLIENT_ERROR;
/** A server was created */
EAPI extern int ECORE_CON_EVENT_SERVER_ADD;
/** A server connection was lost */
EAPI extern int ECORE_CON_EVENT_SERVER_DEL;
+/** A server experienced an error */
+EAPI extern int ECORE_CON_EVENT_SERVER_ERROR;
/** A client connected to the server has sent data */
EAPI extern int ECORE_CON_EVENT_CLIENT_DATA;
/** A server connection object has data */
EAPI double ecore_con_client_timeout_get(Ecore_Con_Client *cl);
EAPI void ecore_con_client_timeout_set(Ecore_Con_Client *cl, double timeout);
EAPI Eina_Bool ecore_con_client_connected_get(Ecore_Con_Client *cl);
+EAPI int ecore_con_client_port_get(Ecore_Con_Client *cl);
/**
* @}
EINA_DEPRECATED EAPI Eina_Bool ecore_con_url_send(Ecore_Con_Url *url_con,
const void *data, long length,
const char *content_type);
-EAPI Eina_Bool ecore_con_url_get(Ecore_Con_Url *url_con,
- const void *data, long length,
- const char *content_type);
+EAPI Eina_Bool ecore_con_url_get(Ecore_Con_Url *url_con);
EAPI Eina_Bool ecore_con_url_post(Ecore_Con_Url *url_con,
const void *data, long length,
const char *content_type);
const char * const cookiejar_file);
EAPI void ecore_con_url_cookies_jar_write(Ecore_Con_Url *url_con);
+EAPI void ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con,
+ Eina_Bool verify);
+
/**
* @}
*/
static void _ecore_con_server_free(Ecore_Con_Server *svr);
static void _ecore_con_client_free(Ecore_Con_Client *cl);
+static void _ecore_con_cl_read(Ecore_Con_Server *svr);
static Eina_Bool _ecore_con_svr_tcp_handler(void *data,
Ecore_Fd_Handler *fd_handler);
static Eina_Bool _ecore_con_cl_handler(void *data,
static void _ecore_con_server_flush(Ecore_Con_Server *svr);
static void _ecore_con_client_flush(Ecore_Con_Client *cl);
-static void _ecore_con_event_client_add_free(void *data,
+static void _ecore_con_event_client_add_free(Ecore_Con_Server *svr,
void *ev);
-static void _ecore_con_event_client_del_free(void *data,
+static void _ecore_con_event_client_del_free(Ecore_Con_Server *svr,
void *ev);
-static void _ecore_con_event_client_data_free(void *data,
+static void _ecore_con_event_client_data_free(Ecore_Con_Server *svr,
void *ev);
static void _ecore_con_event_server_add_free(void *data,
void *ev);
void *ev);
static void _ecore_con_event_server_data_free(void *data,
void *ev);
+static void _ecore_con_event_server_error_free(void *data,
+ Ecore_Con_Event_Server_Error *e);
+static void _ecore_con_event_client_error_free(Ecore_Con_Server *svr,
+ Ecore_Con_Event_Client_Error *e);
static void _ecore_con_lookup_done(void *data,
Ecore_Con_Info *infos);
EAPI int ECORE_CON_EVENT_SERVER_DEL = 0;
EAPI int ECORE_CON_EVENT_CLIENT_DATA = 0;
EAPI int ECORE_CON_EVENT_SERVER_DATA = 0;
+EAPI int ECORE_CON_EVENT_CLIENT_ERROR = 0;
+EAPI int ECORE_CON_EVENT_SERVER_ERROR = 0;
static Eina_List *servers = NULL;
static int _ecore_con_init_count = 0;
ECORE_CON_EVENT_SERVER_DEL = ecore_event_type_new();
ECORE_CON_EVENT_CLIENT_DATA = ecore_event_type_new();
ECORE_CON_EVENT_SERVER_DATA = ecore_event_type_new();
+ ECORE_CON_EVENT_CLIENT_ERROR = ecore_event_type_new();
+ ECORE_CON_EVENT_SERVER_ERROR = ecore_event_type_new();
eina_magic_string_set(ECORE_MAGIC_CON_SERVER, "Ecore_Con_Server");
}
/**
- * Gets the IP address of a cleint that has connected.
+ * Gets the IP address of a client that has connected.
*
* @param cl The given client.
* @return A pointer to an internal string that contains the IP address of
}
/**
+ * @brief Return the port that the client has connected to
+ * @param cl The client
+ * @return The port that @p cl has connected to, or -1 on error
+ * Use this function to return the port on which a given client has connected.
+ */
+EAPI int
+ecore_con_client_port_get(Ecore_Con_Client *cl)
+{
+ if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT))
+ {
+ ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_port_get");
+ return -1;
+ }
+ if (cl->client_addr->sa_family == AF_INET)
+ return ((struct sockaddr_in*)cl->client_addr)->sin_port;
+ return ((struct sockaddr_in6*)cl->client_addr)->sin6_port;
+}
+
+/**
* @brief Check how long a client has been connected
* @param cl The client to check
* @return The total time, in seconds, that the client has been connected to the server
* @}
*/
+void
+ecore_con_event_server_add(Ecore_Con_Server *svr)
+{
+ /* we got our server! */
+ Ecore_Con_Event_Server_Add *e;
+
+ e = calloc(1, sizeof(Ecore_Con_Event_Server_Add));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ svr->event_count++;
+ e->server = svr;
+ ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e,
+ _ecore_con_event_server_add_free, NULL);
+}
+
+void
+ecore_con_event_server_del(Ecore_Con_Server *svr)
+{
+ Ecore_Con_Event_Server_Del *e;
+
+ e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ svr->event_count++;
+ e->server = svr;
+ ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
+ _ecore_con_event_server_del_free, NULL);
+}
+
+void
+ecore_con_event_server_data(Ecore_Con_Server *svr, unsigned char *buf, int num)
+{
+ Ecore_Con_Event_Server_Data *e;
+
+ e = malloc(sizeof(Ecore_Con_Event_Server_Data));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ svr->event_count++;
+ e->server = svr;
+ e->data = malloc(num);
+ if (!e->data)
+ {
+ ERR("alloc!");
+ free(e);
+ return;
+ }
+ memcpy(e->data, buf, num);
+ e->size = num;
+ ecore_event_add(ECORE_CON_EVENT_SERVER_DATA, e,
+ _ecore_con_event_server_data_free, NULL);
+}
+
+void
+ecore_con_event_client_add(Ecore_Con_Client *cl)
+{
+ Ecore_Con_Event_Client_Add *e;
+
+ e = calloc(1, sizeof(Ecore_Con_Event_Client_Add));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ cl->event_count++;
+ cl->host_server->event_count++;
+ _ecore_con_cl_timer_update(cl);
+ e->client = cl;
+ ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, e,
+ (Ecore_End_Cb)_ecore_con_event_client_add_free, cl->host_server);
+
+}
+
+void
+ecore_con_event_client_del(Ecore_Con_Client *cl)
+{
+ Ecore_Con_Event_Client_Del *e;
+
+ e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ if (cl)
+ {
+ cl->event_count++;
+ cl->host_server->event_count++;
+ _ecore_con_cl_timer_update(cl);
+ }
+ e->client = cl;
+ ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
+ (Ecore_End_Cb)_ecore_con_event_client_del_free, cl->host_server);
+}
+
+void
+ecore_con_event_client_data(Ecore_Con_Client *cl, unsigned char *buf, int num)
+{
+ Ecore_Con_Event_Client_Data *e;
+ e = malloc(sizeof(Ecore_Con_Event_Client_Data));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ cl->host_server->event_count++;
+ cl->event_count++;
+ _ecore_con_cl_timer_update(cl);
+ e->client = cl;
+ e->data = malloc(num);
+ if (!e->data)
+ {
+ free(cl->client_addr);
+ free(cl);
+ return;
+ }
+
+ memcpy(e->data, buf, num);
+ e->size = num;
+ ecore_event_add(ECORE_CON_EVENT_CLIENT_DATA, e,
+ (Ecore_End_Cb)_ecore_con_event_client_data_free, cl->host_server);
+}
+
+
+void
+ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info)
+{
+ svr->infos = eina_list_remove(svr->infos, info);
+}
+
+void
+ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error)
+{
+ Ecore_Con_Event_Server_Error *e;
+
+ e = calloc(1, sizeof(Ecore_Con_Event_Server_Error));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ e->server = svr;
+ e->error = strdup(error);
+ ERR("%s", error);
+ svr->event_count++;
+ ecore_event_add(ECORE_CON_EVENT_SERVER_ERROR, e, (Ecore_End_Cb)_ecore_con_event_server_error_free, NULL);
+}
+
+void
+ecore_con_event_client_error(Ecore_Con_Client *cl, const char *error)
+{
+ Ecore_Con_Event_Client_Error *e;
+
+ e = calloc(1, sizeof(Ecore_Con_Event_Client_Error));
+ EINA_SAFETY_ON_NULL_RETURN(e);
+
+ e->client = cl;
+ e->error = strdup(error);
+ ERR("%s", error);
+ cl->event_count++;
+ cl->host_server->event_count++;
+ ecore_event_add(ECORE_CON_EVENT_CLIENT_ERROR, e, (Ecore_End_Cb)_ecore_con_event_client_error_free, cl->host_server);
+}
+
static void
_ecore_con_server_free(Ecore_Con_Server *svr)
{
Ecore_Con_Client *cl;
double t_start, t;
+ while (svr->infos)
+ {
+ ecore_con_info_data_clear(svr->infos->data);
+ svr->infos = eina_list_remove_list(svr->infos, svr->infos);
+ }
if ((!svr->write_buf) && svr->delete_me && (!svr->dead) && (svr->event_count < 1))
{
/* this is a catch-all for cases when a server is not properly killed. */
-
- Ecore_Con_Event_Server_Del *e;
-
svr->dead = EINA_TRUE;
- e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- svr->event_count++;
- e->server = svr;
- ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
- _ecore_con_event_server_del_free, NULL);
+ ecore_con_event_server_del(svr);
return;
}
if (cl->delete_me && (!cl->dead) && (cl->event_count < 1))
{
/* this is a catch-all for cases when a client is not properly killed. */
-
- /* we lost our client! */
- Ecore_Con_Event_Client_Del *e;
-
cl->dead = EINA_TRUE;
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
- _ecore_con_event_client_del_free, NULL);
+ ecore_con_event_client_del(cl);
return;
}
_ecore_con_server_kill(Ecore_Con_Server *svr)
{
if (!svr->delete_me)
- {
- Ecore_Con_Event_Server_Del *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- svr->event_count++;
- e->server = svr;
- ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
- _ecore_con_event_server_del_free, NULL);
- }
-
+ ecore_con_event_server_del(svr);
+
svr->dead = EINA_TRUE;
if (svr->fd_handler)
ecore_main_fd_handler_del(svr->fd_handler);
svr = data;
- if (!net_info)
+ if (!net_info) /* error message has already been handled */
goto error;
svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
net_info->info.ai_protocol);
if (svr->fd < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
- goto error;
-
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
+
if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
- goto error;
-
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
+
lin.l_onoff = 1;
lin.l_linger = 0;
if (setsockopt(svr->fd, SOL_SOCKET, SO_LINGER, (const void *)&lin,
sizeof(struct linger)) < 0)
- goto error;
-
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
+
if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY)
{
int flag = 1;
if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag,
sizeof(int)) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
}
if (bind(svr->fd, net_info->info.ai_addr,
net_info->info.ai_addrlen) < 0)
- goto error;
-
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (listen(svr->fd, 4096) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ,
_ecore_con_svr_tcp_handler, svr, NULL, NULL);
if (!svr->fd_handler)
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Memory allocation failure");
+ goto error;
+ }
return;
type = svr->type;
type &= ECORE_CON_TYPE;
- if (!net_info)
+ if (!net_info) /* error message has already been handled */
goto error;
svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
net_info->info.ai_protocol);
if (svr->fd < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (type == ECORE_CON_REMOTE_MCAST)
{
{
if (!inet_pton(net_info->info.ai_family, net_info->ip,
&mreq.imr_multiaddr))
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
mreq.imr_interface.s_addr = htonl(INADDR_ANY);
if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
(const void *)&mreq, sizeof(mreq)) != 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
}
else if (net_info->info.ai_family == AF_INET6)
{
if (!inet_pton(net_info->info.ai_family, net_info->ip,
&mreq6.ipv6mr_multiaddr))
- goto error;
-
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
mreq6.ipv6mr_interface = htonl(INADDR_ANY);
if (setsockopt(svr->fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
(const void *)&mreq6, sizeof(mreq6)) != 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
}
+ }
- if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on,
- sizeof(on)) != 0)
- goto error;
+ if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&on, sizeof(on)) != 0)
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
}
if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
- if (bind(svr->fd, net_info->info.ai_addr,
- net_info->info.ai_addrlen) < 0)
- goto error;
+ if (bind(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
svr->fd_handler =
ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ,
_ecore_con_svr_udp_handler, svr, NULL, NULL);
if (!svr->fd_handler)
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Memory allocation failure");
+ goto error;
+ }
svr->ip = eina_stringshare_add(net_info->ip);
svr = data;
- if (!net_info)
+ if (!net_info) /* error message has already been handled */
goto error;
svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
net_info->info.ai_protocol);
if (svr->fd < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
- if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate,
- sizeof(curstate)) < 0)
- goto error;
+ if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate, sizeof(curstate)) < 0)
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_NODELAY)
{
int flag = 1;
- if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag,
- sizeof(int)) < 0)
- goto error;
+ if (setsockopt(svr->fd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) < 0)
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
}
res = connect(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen);
if (res == SOCKET_ERROR)
{
if (WSAGetLastError() != WSAEINPROGRESS)
- goto error;
+ goto error; /* FIXME: strerror on windows? */
#else
if (res < 0)
{
if (errno != EINPROGRESS)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
#endif
svr->connecting = EINA_TRUE;
}
if (!svr->fd_handler)
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Memory allocation failure");
+ goto error;
+ }
svr->ip = eina_stringshare_add(net_info->ip);
int broadcast = 1;
svr = data;
- if (!net_info)
+ if (!net_info) /* error message has already been handled */
goto error;
svr->fd = socket(net_info->info.ai_family, net_info->info.ai_socktype,
net_info->info.ai_protocol);
if (svr->fd < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (fcntl(svr->fd, F_SETFL, O_NONBLOCK) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (fcntl(svr->fd, F_SETFD, FD_CLOEXEC) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if ((svr->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_BROADCAST)
{
if (setsockopt(svr->fd, SOL_SOCKET, SO_BROADCAST,
(const void *)&broadcast,
sizeof(broadcast)) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
}
else if (setsockopt(svr->fd, SOL_SOCKET, SO_REUSEADDR,
(const void *)&curstate, sizeof(curstate)) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
if (connect(svr->fd, net_info->info.ai_addr, net_info->info.ai_addrlen) < 0)
- goto error;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
svr->fd_handler = ecore_main_fd_handler_add(svr->fd, ECORE_FD_READ | ECORE_FD_WRITE,
_ecore_con_cl_udp_handler, svr, NULL, NULL);
if (!svr->fd_handler)
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Memory allocation failure");
+ goto error;
+ }
svr->ip = eina_stringshare_add(net_info->ip);
if (so_err)
{
/* we lost our server! */
+ ecore_con_event_server_error(svr, strerror(errno));
ERR("Connection lost: %s", strerror(so_err));
_ecore_con_server_kill(svr);
return ECORE_CON_DISCONNECTED;
if ((!svr->delete_me) && (!svr->handshaking) && svr->connecting)
{
- /* we got our server! */
- Ecore_Con_Event_Server_Add *e;
-
svr->connecting = EINA_FALSE;
- e = calloc(1, sizeof(Ecore_Con_Event_Server_Add));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CON_CONNECTED);
-
- svr->event_count++;
svr->start_time = ecore_time_get();
- e->server = svr;
- ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e,
- _ecore_con_event_server_add_free, NULL);
+ ecore_con_event_server_add(svr);
}
if (svr->fd_handler && (!svr->write_buf))
if (getnameinfo(client_addr, size, ipbuf, sizeof (ipbuf), NULL, 0, NI_NUMERICHOST))
return eina_stringshare_add("0.0.0.0");
- ipbuf[sizeof (ipbuf) - 1] = 0;
+ ipbuf[sizeof(ipbuf) - 1] = 0;
return eina_stringshare_add(ipbuf);
}
memset(&client_addr, 0, client_addr_len);
new_fd = accept(svr->fd, (struct sockaddr *)&client_addr, (socklen_t *)&client_addr_len);
if (new_fd < 0)
- /* error! */
- return ECORE_CALLBACK_RENEW;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ return ECORE_CALLBACK_RENEW;
+ }
if ((svr->client_limit >= 0) && (svr->reject_excess_clients) &&
(svr->client_count >= (unsigned int)svr->client_limit))
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Maximum client limit reached");
+ goto error;
+ }
cl = calloc(1, sizeof(Ecore_Con_Client));
if (!cl)
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Memory allocation failure when attempting to add a new client");
+ goto error;
+ }
- fcntl(new_fd, F_SETFL, O_NONBLOCK);
- fcntl(new_fd, F_SETFD, FD_CLOEXEC);
cl->fd = new_fd;
cl->host_server = svr;
-
+ if (fcntl(new_fd, F_SETFL, O_NONBLOCK) < 0)
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
+ if (fcntl(new_fd, F_SETFD, FD_CLOEXEC) < 0)
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ goto error;
+ }
cl->fd_handler = ecore_main_fd_handler_add(cl->fd, ECORE_FD_READ,
_ecore_con_svr_cl_handler, cl, NULL, NULL);
ECORE_MAGIC_SET(cl, ECORE_MAGIC_CON_CLIENT);
cl->client_addr = malloc(client_addr_len);
if (!cl->client_addr)
- goto error;
+ {
+ ecore_con_event_server_error(svr, "Memory allocation failure when attempting to add a new client");
+ return ECORE_CALLBACK_RENEW;
+ }
cl->client_addr_len = client_addr_len;
memcpy(cl->client_addr, &client_addr, client_addr_len);
svr->client_count++;
if ((!cl->delete_me) && (!cl->handshaking))
- {
- Ecore_Con_Event_Client_Add *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Add));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, e,
- _ecore_con_event_client_add_free, NULL);
-
- }
-
+ ecore_con_event_client_add(cl);
+
return ECORE_CALLBACK_RENEW;
error:
/* 0 is not a valid return value for a tcp socket */
if ((num > 0) || ((num < 0) && (errno == EAGAIN)))
lost_server = EINA_FALSE;
+ else if (num < 0)
+ ecore_con_event_server_error(svr, strerror(errno));
}
else
{
}
if ((!svr->delete_me) && (num > 0))
- {
- Ecore_Con_Event_Server_Data *e;
-
- e = malloc(sizeof(Ecore_Con_Event_Server_Data));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- svr->event_count++;
- e->server = svr;
- e->data = malloc(num);
- if (!e->data)
- {
- ERR("alloc!");
- free(e);
- return;
- }
- memcpy(e->data, buf, num);
- e->size = num;
- ecore_event_add(ECORE_CON_EVENT_SERVER_DATA, e,
- _ecore_con_event_server_data_free, NULL);
- }
+ ecore_con_event_server_data(svr, buf, num);
if (lost_server)
_ecore_con_server_kill(svr);
{
ERR("ssl handshaking failed!");
svr->handshaking = EINA_FALSE;
- Ecore_Con_Event_Server_Del *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Server_Del));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
- svr->event_count++;
- e->server = svr;
- ecore_event_add(ECORE_CON_EVENT_SERVER_DEL, e,
- _ecore_con_event_server_del_free, NULL);
}
else if (!svr->ssl_state)
{
- /* we got our server! */
- Ecore_Con_Event_Server_Add *e;
-
svr->connecting = EINA_FALSE;
- e = calloc(1, sizeof(Ecore_Con_Event_Server_Add));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- svr->event_count++;
svr->start_time = ecore_time_get();
- e->server = svr;
- ecore_event_add(ECORE_CON_EVENT_SERVER_ADD, e,
- _ecore_con_event_server_add_free, NULL);
+ ecore_con_event_server_add(svr);
}
}
else if (want_read)
_ecore_con_cl_udp_handler(void *data,
Ecore_Fd_Handler *fd_handler)
{
- Ecore_Con_Event_Server_Data *e;
- unsigned char *inbuf;
unsigned char buf[READBUFSIZ];
int num;
Ecore_Con_Server *svr;
num = read(svr->fd, buf, READBUFSIZ);
if ((!svr->delete_me) && (num > 0))
- {
- inbuf = malloc(num);
- EINA_SAFETY_ON_NULL_RETURN_VAL(inbuf, ECORE_CALLBACK_RENEW);
-
- memcpy(inbuf, buf, num);
-
- e = malloc(sizeof(Ecore_Con_Event_Server_Data));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- svr->event_count++;
- e->server = svr;
- e->data = inbuf;
- e->size = num;
- ecore_event_add(ECORE_CON_EVENT_SERVER_DATA, e,
- _ecore_con_event_server_data_free, NULL);
- }
+ ecore_con_event_server_data(svr, buf, num);
if (num < 0 && (errno != EAGAIN) && (errno != EINTR))
- _ecore_con_server_kill(svr);
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ _ecore_con_server_kill(svr);
+ }
return ECORE_CALLBACK_RENEW;
}
if (num < 0 && (errno != EAGAIN) && (errno != EINTR))
{
+ ecore_con_event_server_error(svr, strerror(errno));
if (!svr->delete_me)
{
- /* we lost our client! */
- Ecore_Con_Event_Client_Del *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- svr->event_count++;
- /* be explicit here */
- e->client = NULL;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
- _ecore_con_event_client_del_free, NULL);
+ svr->event_count++;
+ ecore_con_event_client_del(NULL);
}
svr->dead = EINA_TRUE;
svr->clients = eina_list_append(svr->clients, cl);
svr->client_count++;
- { /* indent to keep it all nicely separated */
- Ecore_Con_Event_Client_Add *add;
-
- add = malloc(sizeof(Ecore_Con_Event_Client_Add));
- EINA_SAFETY_ON_NULL_RETURN_VAL(add, ECORE_CALLBACK_RENEW);
-
- /*cl->event_count++;*/
- add->client = cl;
- _ecore_con_cl_timer_update(cl);
- ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, add,
- _ecore_con_event_client_add_free, NULL);
- }
-
-
- {
- Ecore_Con_Event_Client_Data *e;
- e = malloc(sizeof(Ecore_Con_Event_Client_Data));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- svr->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- e->data = malloc(num);
- if (!e->data)
- {
- free(cl->client_addr);
- free(cl);
- return ECORE_CALLBACK_RENEW;
- }
-
- memcpy(e->data, buf, num);
- e->size = num;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DATA, e,
- _ecore_con_event_client_data_free, NULL);
- }
+ ecore_con_event_client_add(cl);
+ ecore_con_event_client_data(cl, buf, num);
return ECORE_CALLBACK_RENEW;
}
/* 0 is not a valid return value for a tcp socket */
if ((num > 0) || ((num < 0) && ((errno == EAGAIN) || (errno == EINTR))))
lost_client = EINA_FALSE;
+ else if (num < 0)
+ ecore_con_event_client_error(cl, strerror(errno));
}
else
{
}
if ((!cl->delete_me) && (num > 0))
- {
- Ecore_Con_Event_Client_Data *e;
-
- e = malloc(sizeof(Ecore_Con_Event_Client_Data));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- e->data = malloc(num);
- if (!e->data)
- {
- ERR("alloc!");
- free(e);
- return;
- }
- memcpy(e->data, buf, num);
- e->size = num;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DATA, e,
- _ecore_con_event_client_data_free, NULL);
- }
+ ecore_con_event_client_data(cl, buf, num);
if (lost_client)
{
if (!cl->delete_me)
- {
- /* we lost our client! */
- Ecore_Con_Event_Client_Del *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
- _ecore_con_event_client_del_free, NULL);
- }
+ ecore_con_event_client_del(cl);
INF("Lost client %s", (cl->ip) ? cl->ip : "");
cl->dead = EINA_TRUE;
if (cl->fd_handler)
{
ERR("ssl handshaking failed!");
cl->handshaking = EINA_FALSE;
- /* we lost our client! */
- Ecore_Con_Event_Client_Del *e;
-
cl->dead = EINA_TRUE;
INF("Lost client %s", (cl->ip) ? cl->ip : "");
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
- _ecore_con_event_client_del_free, NULL);
+ ecore_con_event_client_del(cl);
}
else if (!cl->ssl_state)
- {
- Ecore_Con_Event_Client_Add *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Add));
- EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
-
- e->client = cl;
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- ecore_event_add(ECORE_CON_EVENT_CLIENT_ADD, e,
- _ecore_con_event_client_add_free, NULL);
- }
+ ecore_con_event_client_add(cl);
}
else if (ecore_main_fd_handler_active_get(fd_handler, ECORE_FD_READ))
_ecore_con_svr_cl_read(cl);
int count, num;
if (!svr->write_buf)
- return;
+ {
+ ecore_main_fd_handler_active_set(svr->fd_handler, ECORE_FD_READ);
+ return;
+ }
num = svr->write_buf_size - svr->write_buf_offset;
if (count < 0)
{
if ((errno != EAGAIN) && (errno != EINTR))
- _ecore_con_server_kill(svr);
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ _ecore_con_server_kill(svr);
+ }
return;
}
int num, count = 0;
if (!cl->buf)
- return;
+ {
+ ecore_main_fd_handler_active_set(cl->fd_handler, ECORE_FD_READ);
+ return;
+ }
if (cl->handshaking)
{
{
if ((errno != EAGAIN) && (errno != EINTR) && (!cl->delete_me))
{
- /* we lost our client! */
- Ecore_Con_Event_Client_Del *e;
-
- e = calloc(1, sizeof(Ecore_Con_Event_Client_Del));
- EINA_SAFETY_ON_NULL_RETURN(e);
-
- cl->event_count++;
- _ecore_con_cl_timer_update(cl);
- e->client = cl;
- ecore_event_add(ECORE_CON_EVENT_CLIENT_DEL, e,
- _ecore_con_event_client_del_free, NULL);
-
+ ecore_con_event_client_error(cl, strerror(errno));
+ ecore_con_event_client_del(cl);
cl->dead = EINA_TRUE;
INF("Lost client %s", (cl->ip) ? cl->ip : "");
if (cl->fd_handler)
}
static void
-_ecore_con_event_client_add_free(void *data __UNUSED__,
+_ecore_con_event_client_add_free(Ecore_Con_Server *svr,
void *ev)
{
Ecore_Con_Event_Client_Add *e;
e = ev;
e->client->event_count--;
- if ((e->client->event_count <= 0) &&
- (e->client->delete_me))
+ e->client->host_server->event_count--;
+ if ((e->client->event_count <= 0) && (e->client->delete_me))
ecore_con_client_del(e->client);
+ if ((svr->event_count <= 0) && (svr->delete_me))
+ _ecore_con_server_free(svr);
free(e);
}
static void
-_ecore_con_event_client_del_free(void *data __UNUSED__,
+_ecore_con_event_client_del_free(Ecore_Con_Server *svr,
void *ev)
{
Ecore_Con_Event_Client_Del *e;
if (!e->client) return;
e->client->event_count--;
+ e->client->host_server->event_count--;
if ((e->client->event_count <= 0) && (e->client->delete_me))
ecore_con_client_del(e->client);
+ if ((svr->event_count <= 0) && (svr->delete_me))
+ _ecore_con_server_free(svr);
free(e);
}
static void
-_ecore_con_event_client_data_free(void *data __UNUSED__,
+_ecore_con_event_client_data_free(Ecore_Con_Server *svr,
void *ev)
{
Ecore_Con_Event_Client_Data *e;
e = ev;
e->client->event_count--;
+ e->client->host_server->event_count--;
if (e->data)
free(e->data);
((e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_UDP ||
(e->client->host_server->type & ECORE_CON_TYPE) == ECORE_CON_REMOTE_MCAST))))
ecore_con_client_del(e->client);
+ if ((svr->event_count <= 0) && (svr->delete_me))
+ _ecore_con_server_free(svr);
free(e);
}
e = ev;
e->server->event_count--;
- if ((e->server->event_count <= 0) &&
- (e->server->delete_me))
+ if ((e->server->event_count <= 0) && (e->server->delete_me))
_ecore_con_server_free(e->server);
free(e);
e = ev;
e->server->event_count--;
- if ((e->server->event_count <= 0) &&
- (e->server->delete_me))
+ if ((e->server->event_count <= 0) && (e->server->delete_me))
_ecore_con_server_free(e->server);
free(e);
if (e->data)
free(e->data);
- if ((e->server->event_count <= 0) &&
- (e->server->delete_me))
+ if ((e->server->event_count <= 0) && (e->server->delete_me))
_ecore_con_server_free(e->server);
free(e);
}
+
+static void
+_ecore_con_event_server_error_free(void *data __UNUSED__, Ecore_Con_Event_Server_Error *e)
+{
+ e->server->event_count--;
+ if ((e->server->event_count <= 0) && (e->server->delete_me))
+ _ecore_con_server_free(e->server);
+ if (e->error) free(e->error);
+ free(e);
+}
+
+static void
+_ecore_con_event_client_error_free(Ecore_Con_Server *svr, Ecore_Con_Event_Client_Error *e)
+{
+ e->client->event_count--;
+ e->client->host_server->event_count--;
+ if ((e->client->event_count <= 0) && (e->client->delete_me))
+ _ecore_con_client_free(e->client);
+ if ((svr->event_count <= 0) && (svr->delete_me))
+ _ecore_con_server_free(svr);
+ if (e->error) free(e->error);
+ free(e);
+
+}
+
static void
_ecore_con_lookup_done(void *data,
Ecore_Con_Info *infos)
cares);
}
+ svr->infos = eina_list_append(svr->infos, cares);
return 1;
}
+void
+ecore_con_info_data_clear(void *info)
+{
+ Ecore_Con_CAres *cares = info;
+ cares->data = NULL;
+}
+
static Eina_Bool
_ecore_con_info_cares_timeout_cb(void *data __UNUSED__)
{
case ARES_ENODATA: /* no data returned */
case ARES_ECONNREFUSED: /* connection refused */
case ARES_ETIMEOUT: /* connection timed out */
+ ecore_con_event_server_error(arg->svr, ares_strerror(status));
goto on_error;
default:
- ERR("Unknown status returned by c-ares: %i assuming error",
- status);
+ ERR("Unknown status returned by c-ares: %i assuming error", status);
+ ecore_con_event_server_error(arg->svr, ares_strerror(status));
goto on_error;
}
ERR("Not enough memory");
on_error:
- arg->done_cb(arg->data, NULL);
+ if (arg->data)
+ {
+ ecore_con_server_infos_del(arg->data, arg);
+ arg->done_cb(arg->data, NULL);
+ }
free(arg);
}
else
*arg->result->service = '\0';
- arg->done_cb(arg->data, arg->result);
+ if (arg->data) arg->done_cb(arg->data, arg->result);
break;
case ARES_ENOTIMP:
case ARES_ENOMEM:
case ARES_EDESTRUCTION:
case ARES_EBADFLAGS:
- arg->done_cb(arg->data, NULL);
+ ecore_con_event_server_error(arg->svr, ares_strerror(status));
+ if (arg->data) arg->done_cb(arg->data, NULL);
break;
}
free(arg->result->info.ai_addr);
free(arg->result);
+ if (arg->data) ecore_con_server_infos_del(arg->data, arg);
free(arg);
}
# include <netdb.h>
#endif
+#include <errno.h>
+
#include "Ecore.h"
#include "ecore_private.h"
#include "ecore_con_private.h"
int fd[2];
if (pipe(fd) < 0)
- return 0;
+ {
+ ecore_con_event_server_error(svr, strerror(errno));
+ return 0;
+ }
cbdata = calloc(1, sizeof(CB_Data));
if (!cbdata)
cbdata,
NULL, NULL)))
{
+ ecore_con_event_server_error(svr, "Memory allocation failure");
free(cbdata);
close(fd[0]);
close(fd[1]);
info_slaves = (CB_Data *)eina_inlist_append(EINA_INLIST_GET(
info_slaves),
EINA_INLIST_GET(cbdata));
+ svr->infos = eina_list_append(svr->infos, cbdata);
return 1;
}
+void
+ecore_con_info_data_clear(void *info)
+{
+ CB_Data *cbdata = info;
+ cbdata->data = NULL;
+}
+
static void
_ecore_con_info_readdata(CB_Data *cbdata)
{
recv->info.ai_next = NULL;
- cbdata->cb_done(cbdata->data, recv);
+ if (cbdata->data)
+ {
+ cbdata->cb_done(cbdata->data, recv);
+ ecore_con_server_infos_del(cbdata->data, cbdata);
+ }
free(torecv);
}
else
- cbdata->cb_done(cbdata->data, NULL);
+ {
+ if (cbdata->data)
+ {
+ cbdata->cb_done(cbdata->data, NULL);
+ ecore_con_server_infos_del(cbdata->data, cbdata);
+ }
+ }
}
else
- cbdata->cb_done(cbdata->data, NULL);
+ {
+ if (cbdata->data)
+ {
+ ecore_con_event_server_error(cbdata->data, strerror(errno));
+ cbdata->cb_done(cbdata->data, NULL);
+ ecore_con_server_infos_del(cbdata->data, cbdata);
+ }
+ }
cbdata->cb_done = NULL;
}
ecore_main_fd_handler_del(cbdata->fdh);
ecore_event_handler_del(cbdata->handler);
close(ecore_main_fd_handler_fd_get(cbdata->fdh));
+ if (cbdata->data) ecore_con_server_infos_del(cbdata->data, cbdata);
free(cbdata);
}
_ecore_con_info_readdata(cbdata);
else
{
- cbdata->cb_done(cbdata->data, NULL);
- cbdata->cb_done = NULL;
+ if (cbdata->data)
+ {
+ cbdata->cb_done(cbdata->data, NULL);
+ cbdata->cb_done = NULL;
+ ecore_con_server_infos_del(cbdata->data, cbdata);
+ }
}
}
int write_buf_size;
int write_buf_offset;
unsigned char *write_buf;
+ Eina_List *infos;
int event_count;
int client_limit;
pid_t ppid;
const void *data;
};
+/* from ecore_con.c */
+void ecore_con_server_infos_del(Ecore_Con_Server *svr, void *info);
+void ecore_con_event_server_error(Ecore_Con_Server *svr, const char *error);
+void ecore_con_event_client_error(Ecore_Con_Client *cl, const char *error);
+
/* from ecore_local.c */
int ecore_con_local_init(void);
int ecore_con_local_shutdown(void);
int ecore_con_info_mcast_listen(Ecore_Con_Server *svr,
Ecore_Con_Info_Cb done_cb,
void *data);
+void ecore_con_info_data_clear(void *info);
+
/* from ecore_con_ssl.c */
Ecore_Con_Ssl_Error ecore_con_ssl_init(void);
Ecore_Con_Ssl_Error ecore_con_ssl_shutdown(void);
#if USE_GNUTLS
static void
-_gnutls_print_errors(int ret)
-{
- if (ret)
- ERR("gnutls returned with error: %s - %s", gnutls_strerror_name(ret), gnutls_strerror(ret));
+_gnutls_print_errors(void *conn, int type, int ret)
+{
+ char buf[1024];
+
+ if (!ret) return;
+
+ snprintf(buf, sizeof(buf), "GNUTLS error: %s - %s", gnutls_strerror_name(ret), gnutls_strerror(ret));
+ if (type == ECORE_CON_EVENT_CLIENT_ERROR)
+ ecore_con_event_client_error(conn, buf);
+ else
+ ecore_con_event_server_error(conn, buf);
}
#ifdef ISCOMFITOR
#elif USE_OPENSSL
static void
-_openssl_print_errors(void)
+_openssl_print_errors(void *conn, int type)
{
+ char buf[1024];
do
{
unsigned long err;
err = ERR_get_error();
if (!err) break;
- ERR("openssl error: %s", ERR_reason_error_string(err));
+ snprintf(buf, sizeof(buf), "OpenSSL error: %s", ERR_reason_error_string(err));
+ if (type == ECORE_CON_EVENT_CLIENT_ERROR)
+ ecore_con_event_client_error(conn, buf);
+ else
+ ecore_con_event_server_error(conn, buf);
+
} while (1);
}
return ECORE_CON_SSL_ERROR_NONE;
error:
- _gnutls_print_errors(ret);
+ _gnutls_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR, ret);
_ecore_con_ssl_server_shutdown_gnutls(svr);
return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
}
return ECORE_CON_SSL_ERROR_NONE;
error:
- _gnutls_print_errors(ret);
+ _gnutls_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR, ret);
if ((ret == GNUTLS_E_WARNING_ALERT_RECEIVED) || (ret == GNUTLS_E_FATAL_ALERT_RECEIVED))
ERR("Also received alert: %s", gnutls_alert_get_name(gnutls_alert_get(svr->session)));
if (svr->session && (svr->ssl_state != ECORE_CON_SSL_STATE_DONE))
return ECORE_CON_SSL_ERROR_NONE;
error:
- _gnutls_print_errors(ret);
+ _gnutls_print_errors(cl, ECORE_CON_EVENT_CLIENT_ERROR, ret);
if ((ret == GNUTLS_E_WARNING_ALERT_RECEIVED) || (ret == GNUTLS_E_FATAL_ALERT_RECEIVED))
ERR("Also received alert: %s", gnutls_alert_get_name(gnutls_alert_get(cl->session)));
if (cl->session && (cl->ssl_state != ECORE_CON_SSL_STATE_DONE))
ERR("openssl error: dh_params could not generate a safe prime!");
}
else
- _openssl_print_errors();
+ _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
_ecore_con_ssl_server_shutdown_openssl(svr);
return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
}
return ECORE_CON_SSL_ERROR_NONE;
error:
- _openssl_print_errors();
+ _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
_ecore_con_ssl_server_shutdown_openssl(svr);
return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
}
return EINA_TRUE;
error:
- _openssl_print_errors();
+ _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
return EINA_FALSE;
}
return EINA_TRUE;
error:
- _openssl_print_errors();
+ _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
return EINA_FALSE;
}
error:
if (fp)
fclose(fp);
- _openssl_print_errors();
+ _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
return EINA_FALSE;
}
error:
if (fp)
fclose(fp);
- _openssl_print_errors();
+ _openssl_print_errors(svr, ECORE_CON_EVENT_SERVER_ERROR);
return EINA_FALSE;
}
return ECORE_CON_SSL_ERROR_NONE;
error:
- _openssl_print_errors();
+ _openssl_print_errors(cl, ECORE_CON_EVENT_CLIENT_ERROR);
_ecore_con_ssl_client_shutdown_openssl(cl);
return ECORE_CON_SSL_ERROR_SERVER_INIT_FAILED;
}
*
* Example Usage 1 (HTTP GET):
* ecore_con_url_url_set(url_con, "http://www.google.com");
- * ecore_con_url_get(url_con, NULL, 0, NULL);
+ * ecore_con_url_get(url_con);
*
* Example usage 2 (HTTP POST):
* ecore_con_url_url_set(url_con, "http://www.example.com/post_handler.cgi");
*
* Example Usage 3 (FTP download):
* ecore_con_url_url_set(url_con, "ftp://ftp.example.com/pub/myfile");
- * ecore_con_url_get(url_con, NULL, 0, NULL);
+ * ecore_con_url_get(url_con);
*
* Example Usage 4 (FTP upload as ftp://ftp.example.com/file):
* ecore_con_url_url_set(url_con, "ftp://ftp.example.com");
curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION,
_ecore_con_url_progress_cb);
curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSDATA, url_con);
- curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_TRUE);
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_NOPROGRESS, EINA_FALSE);
curl_easy_setopt(url_con->curl_easy, CURLOPT_HEADERFUNCTION,
_ecore_con_url_header_cb);
* FIXME: Provide a means to change these timeouts
*/
curl_easy_setopt(url_con->curl_easy, CURLOPT_CONNECTTIMEOUT, 30);
- curl_easy_setopt(url_con->curl_easy, CURLOPT_TIMEOUT, 300);
curl_easy_setopt(url_con->curl_easy, CURLOPT_FOLLOWLOCATION, 1);
return url_con;
{
// FIXME: For an unknown reason, progress continue to arrive after destruction
// this prevent any further call to the callback.
- curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
-
- if (url_con->active)
- {
- url_con->active = EINA_FALSE;
-
- ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
- if (ret != CURLM_OK)
- ERR("curl_multi_remove_handle failed: %s",
- curl_multi_strerror(ret));
- }
-
- curl_easy_cleanup(url_con->curl_easy);
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
+
+ if (url_con->active)
+ {
+ url_con->active = EINA_FALSE;
+
+ ret = curl_multi_remove_handle(_curlm, url_con->curl_easy);
+ if (ret != CURLM_OK)
+ ERR("curl_multi_remove_handle failed: %s",
+ curl_multi_strerror(ret));
+ }
+
+ curl_easy_cleanup(url_con->curl_easy);
}
_url_con_list = eina_list_remove(_url_con_list, url_con);
* Sends a get request.
*
* @param url_con Connection object to perform a request on, previously created
- * with ecore_con_url_new() or ecore_con_url_custom_new().
- * @param data Payload (data sent on the request)
- * @param length Payload length. If @c -1, rely on automatic length
- * calculation via @c strlen() on @p data.
- * @param content_type Content type of the payload (e.g. text/xml)
- *
+ *
* @return #EINA_TRUE on success, #EINA_FALSE on error.
*
* @see ecore_con_url_custom_new()
* @see ecore_con_url_post()
*/
EAPI Eina_Bool
-ecore_con_url_get(Ecore_Con_Url *url_con,
- const void *data,
- long length,
- const char *content_type)
+ecore_con_url_get(Ecore_Con_Url *url_con)
{
- return _ecore_con_url_send(url_con, MODE_GET, data, length, content_type);
+ return _ecore_con_url_send(url_con, MODE_GET, NULL, 0, NULL);
}
/**
}
/**
+ * Toggle libcurl's verify peer's certificate option.
+ *
+ * If @p verify is @c EINA_TRUE, libcurl will verify
+ * the authenticity of the peer's certificate, otherwise
+ * it will not. Default behavior of libcurl is to check
+ * peer's certificate.
+ *
+ * @param url_con Ecore_Con_Url instance which will be acted upon.
+ * @param verify Whether or not libcurl will check peer's certificate.
+ * @since 1.1.0
+ */
+EAPI void
+ecore_con_url_ssl_verify_peer_set(Ecore_Con_Url *url_con,
+ Eina_Bool verify)
+{
+#ifdef HAVE_CURL
+ if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
+ {
+ ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL,
+ "ecore_con_url_ssl_verify_peer_set");
+ return;
+ }
+
+ if (url_con->active)
+ return;
+
+ if (!url_con->url)
+ return;
+
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_SSL_VERIFYPEER, (int)verify);
+#else
+ (void)url_con;
+ (void)verify;
+#endif
+}
+
+/**
* @}
*/
snprintf(buf, PATH_MAX, "%s/.ecore/%s/.global", p, name);
global = creat(buf, S_IRWXU);
- if (global)
+ if (global >= 0)
close(global);
free(buf);
#endif
#ifndef __ECORE_WINCE_H__
-typedef void Ecore_WinCE_Window;
+typedef struct _Ecore_WinCE_Window Ecore_WinCE_Window;
#endif
#ifndef _ECORE_EVAS_PRIVATE_H
unsigned char manual_render : 1;
unsigned char registered : 1;
unsigned char no_comp_sync : 1;
+ unsigned char semi_sync : 1;
int gl_sync_draw_done; // added by gl77.lee
};
ee->engine.x.sync_val++;
if (!ee->engine.x.sync_cancel)
{
- ecore_x_sync_counter_val_wait(ee->engine.x.sync_counter,
- ee->engine.x.sync_val);
+ if (!ee->semi_sync)
+ ecore_x_sync_counter_val_wait(ee->engine.x.sync_counter,
+ ee->engine.x.sync_val);
}
}
}
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
ee->driver = "opengl_x11";
+ ee->semi_sync = 0; // gl engine doesnt need to sync - its whole swaps
ee->no_comp_sync = 0; // gl engine doesnt need to sync - its whole swaps
if (disp_name) ee->name = strdup(disp_name);
return NULL;
}
EAPI Ecore_Evas *
-ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent,
- int x, int y, int w, int h, const int *opt)
+ecore_evas_gl_x11_options_new(const char *disp_name __UNUSED__, Ecore_X_Window parent __UNUSED__,
+ int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__, const int *opt __UNUSED__)
{
return NULL;
}
}
#else
EAPI void
-ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee, void *data, void (*pre_cb) (void *data, Evas *e), void (*post_cb) (void *data, Evas *e))
+ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee __UNUSED__, void *data __UNUSED__, void (*pre_cb) (void *data, Evas *e) __UNUSED__, void (*post_cb) (void *data, Evas *e) __UNUSED__)
{
return;
}
"0x7e",
"0x7f"
};
-static int _ecore_fb_kbd_fd = 0;
+static int _ecore_fb_kbd_fd = -1;
static int _ecore_fb_ctrl = 0;
static int _ecore_fb_alt = 0;
static int _ecore_fb_shift = 0;
if (_ecore_fb_kbd_fd_handler_handle)
ecore_main_fd_handler_del(_ecore_fb_kbd_fd_handler_handle);
if (_ecore_fb_kbd_fd >= 0) close(_ecore_fb_kbd_fd);
- _ecore_fb_kbd_fd = 0;
+ _ecore_fb_kbd_fd = -1;
_ecore_fb_kbd_fd_handler_handle = NULL;
_ecore_fb_ctrl = 0;
_ecore_fb_lock = 0;
#endif
/**
- * @defgroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @defgroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
ECORE_FILE_EVENT_DELETED_FILE, /**< Deleted file event. */
ECORE_FILE_EVENT_DELETED_DIRECTORY, /**< Deleted directory event. */
ECORE_FILE_EVENT_DELETED_SELF, /**< Deleted monitored directory event. */
- ECORE_FILE_EVENT_MODIFIED /**< Modified file or directory event. */
+ ECORE_FILE_EVENT_MODIFIED, /**< Modified file or directory event. */
+ ECORE_FILE_EVENT_CLOSED /**< Closed file event */
} Ecore_File_Event;
/**
typedef void (*Ecore_File_Download_Completion_Cb)(void *data, const char *file, int status);
/**
+ * @typedef Ecore_File_Progress_Return
+ * What to do with the download as a return from the
+ * Ecore_File_Download_Progress_Cb function, if provided.
+ */
+typedef enum _Ecore_File_Progress_Return
+{
+ ECORE_FILE_PROGRESS_CONTINUE = 0, /**< Continue the download. */
+ ECORE_FILE_PROGRESS_ABORT = 1 /**< Abort the download. */
+} Ecore_File_Progress_Return;
+
+/**
* @typedef Ecore_File_Download_Progress_Cb
- * Callback type used when a download is finished.
+ * Callback type used while a download is in progress.
*/
typedef int (*Ecore_File_Download_Progress_Cb)(void *data,
const char *file,
Ecore_File_Download_Progress_Cb progress_cb,
void *data,
Ecore_File_Download_Job **job_ret);
+EAPI Eina_Bool ecore_file_download_full(const char *url,
+ const char *dst,
+ Ecore_File_Download_Completion_Cb completion_cb,
+ Ecore_File_Download_Progress_Cb progress_cb,
+ void *data,
+ Ecore_File_Download_Job **job_ret,
+ Eina_Hash *headers);
+
EAPI void ecore_file_download_abort_all(void);
EAPI void ecore_file_download_abort(Ecore_File_Download_Job *job);
EAPI Eina_Bool ecore_file_download_protocol_available(const char *protocol);
/* externally accessible functions */
/**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
/**
* @brief Get the path pointed by the given link.
*
- * @param link The name of the link.
+ * @param lnk The name of the link.
* @return The path pointed by link or NULL.
*
* This function returns the path pointed by @p link as a newly
* returned value must be freed.
*/
EAPI char *
-ecore_file_readlink(const char *link)
+ecore_file_readlink(const char *lnk)
{
char buf[PATH_MAX];
int count;
- if ((count = readlink(link, buf, sizeof(buf) - 1)) < 0) return NULL;
+ if ((count = readlink(lnk, buf, sizeof(buf) - 1)) < 0) return NULL;
buf[count] = 0;
return strdup(buf);
}
Ecore_File_Download_Job *_ecore_file_download_curl(const char *url, const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
Ecore_File_Download_Progress_Cb progress_cb,
- void *data);
+ void *data,
+ Eina_Hash *headers);
static Eina_Bool _ecore_file_download_url_complete_cb(void *data, int type, void *event);
static Eina_Bool _ecore_file_download_url_progress_cb(void *data, int type, void *event);
#endif /* BUILD_ECORE_CON */
}
-/**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
- *
- * @{
- */
+#ifdef BUILD_ECORE_CON
+# ifdef HAVE_CURL
+static Eina_Bool
+_ecore_file_download_headers_foreach_cb(const Eina_Hash *hash __UNUSED__, const void *key, void *data, void *fdata)
+{
+ Ecore_File_Download_Job *job = fdata;
+ ecore_con_url_additional_header_add(job->url_con, key, data);
-/**
- * @brief Download the given url to the given destination.
- *
- * @param url The complete url to download.
- * @param dst The local file to save the downloaded to.
- * @param completion_cb A callback called on download complete.
- * @param progress_cb A callback called during the download operation.
- * @param data User data passed to both callbacks.
- * @param job_ret Job used to abort the download.
- * @return EINA_TRUE if the download start or EINA_FALSE on failure
- *
- * This function starts the download of the URL @p url and saves it to
- * @p dst. @p url must provide the protocol, including 'http://',
- * 'ftp://' or 'file://'. Ecore_File must be compiled with CURL to
- * download using http and ftp protocols. If @p dst is ill-formed, or
- * if it already exists, the function returns EINA_FALSE. When the
- * download is complete, the callback @p completion_cb is called and
- * @p data is passed to it. The @p status parameter of @p completion_cb
- * will be filled with the status of the download (200, 404,...). The
- * @p progress_cb is called during the download operation, each time a
- * packet i received or when CURL wants. It can be used to display the
- * percentage of the downloaded file. The only operations that can be
- * aborted are those with protocol 'http' or 'ftp'. In that case @p job_ret
- * can be filled. It can be used with ecore_file_download_abort() or
- * ecore_file_download_abort_all() to respectively abort one or all
- * download operations. This function returns EINA_TRUE if the
- * download starts, EINA_FALSE otherwise.
- */
-EAPI Eina_Bool
-ecore_file_download(const char *url,
- const char *dst,
- Ecore_File_Download_Completion_Cb completion_cb,
- Ecore_File_Download_Progress_Cb progress_cb,
- void *data,
- Ecore_File_Download_Job **job_ret)
+ return EINA_TRUE;
+}
+# endif
+#endif
+
+static Eina_Bool
+_ecore_file_download(const char *url,
+ const char *dst,
+ Ecore_File_Download_Completion_Cb completion_cb,
+ Ecore_File_Download_Progress_Cb progress_cb,
+ void *data,
+ Ecore_File_Download_Job **job_ret,
+ Eina_Hash *headers)
{
#ifdef BUILD_ECORE_CON
char *dir = ecore_file_dir_get(dst);
if (!ecore_file_is_dir(dir))
{
+ EINA_LOG_ERR("%s is not a directory", dir);
free(dir);
return EINA_FALSE;
}
free(dir);
- if (ecore_file_exists(dst)) return EINA_FALSE;
+ if (ecore_file_exists(dst))
+ {
+ EINA_LOG_ERR("%s already exists", dst);
+ return EINA_FALSE;
+ }
- /* FIXME: Add handlers for http and ftp! */
if (!strncmp(url, "file://", 7))
{
/* FIXME: Maybe fork? Might take a while to copy.
return ecore_file_cp(url, dst);
}
# ifdef HAVE_CURL
- else if ((!strncmp(url, "http://", 7)) ||
+ else if ((!strncmp(url, "http://", 7)) || (!strncmp(url, "https://", 8)) ||
(!strncmp(url, "ftp://", 6)))
{
/* download */
Ecore_File_Download_Job *job;
- job = _ecore_file_download_curl(url, dst, completion_cb, progress_cb, data);
+ job = _ecore_file_download_curl(url, dst, completion_cb, progress_cb, data, headers);
if(job_ret) *job_ret = job;
+ if(job)
+ return EINA_TRUE;
+ else
+ {
+ EINA_LOG_ERR("no job returned\n");
+ return EINA_FALSE;
+ }
return job ? EINA_TRUE : EINA_FALSE;
}
# else
- else if ((!strncmp(url, "http://", 7)) ||
+ else if ((!strncmp(url, "http://", 7)) || (!strncmp(url, "https://", 8)) ||
(!strncmp(url, "ftp://", 6)))
{
(void)completion_cb;
}
/**
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
+ *
+ * @{
+ */
+
+/**
+ * @brief Download the given url to the given destination.
+ *
+ * @param url The complete url to download.
+ * @param dst The local file to save the downloaded to.
+ * @param completion_cb A callback called on download complete.
+ * @param progress_cb A callback called during the download operation.
+ * @param data User data passed to both callbacks.
+ * @param job_ret Job used to abort the download.
+ * @return EINA_TRUE if the download start or EINA_FALSE on failure
+ *
+ * This function starts the download of the URL @p url and saves it to
+ * @p dst. @p url must provide the protocol, including 'http://',
+ * 'ftp://' or 'file://'. Ecore_File must be compiled with CURL to
+ * download using http and ftp protocols. If @p dst is ill-formed, or
+ * if it already exists, the function returns EINA_FALSE. When the
+ * download is complete, the callback @p completion_cb is called and
+ * @p data is passed to it. The @p status parameter of @p completion_cb
+ * will be filled with the status of the download (200, 404,...). The
+ * @p progress_cb is called during the download operation, each time a
+ * packet is received or when CURL wants. It can be used to display the
+ * percentage of the downloaded file. Return 0 from this callback, if provided,
+ * to continue the operation or anything else to abort the download. The only
+ * operations that can be aborted are those with protocol 'http' or 'ftp'. In
+ * that case @p job_ret can be filled. It can be used with
+ * ecore_file_download_abort() or ecore_file_download_abort_all() to
+ * respectively abort one or all download operations. This function returns
+ * EINA_TRUE if the download starts, EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool
+ecore_file_download(const char *url,
+ const char *dst,
+ Ecore_File_Download_Completion_Cb completion_cb,
+ Ecore_File_Download_Progress_Cb progress_cb,
+ void *data,
+ Ecore_File_Download_Job **job_ret)
+{
+ return _ecore_file_download(url, dst, completion_cb, progress_cb, data, job_ret, NULL);
+}
+
+/**
+ * @brief Download the given url to the given destination with additional headers.
+ *
+ * @param url The complete url to download.
+ * @param dst The local file to save the downloaded to.
+ * @param completion_cb A callback called on download complete.
+ * @param progress_cb A callback called during the download operation.
+ * @param data User data passed to both callbacks.
+ * @param job_ret Job used to abort the download.
+ * @param headers pointer of header lists.
+ * @return EINA_TRUE if the download start or EINA_FALSE on failure
+ */
+EAPI Eina_Bool
+ecore_file_download_full(const char *url,
+ const char *dst,
+ Ecore_File_Download_Completion_Cb completion_cb,
+ Ecore_File_Download_Progress_Cb progress_cb,
+ void *data,
+ Ecore_File_Download_Job **job_ret,
+ Eina_Hash *headers)
+{
+ return _ecore_file_download(url, dst, completion_cb, progress_cb, data, job_ret, headers);
+}
+
+/**
* @brief Check if the given protocol is available.
*
* @param protocol The protocol to check.
_ecore_file_download_curl(const char *url, const char *dst,
Ecore_File_Download_Completion_Cb completion_cb,
Ecore_File_Download_Progress_Cb progress_cb,
- void *data)
+ void *data,
+ Eina_Hash *headers)
{
Ecore_File_Download_Job *job;
return NULL;
}
+ if (headers) eina_hash_foreach(headers, _ecore_file_download_headers_foreach_cb, job);
ecore_con_url_fd_set(job->url_con, fileno(job->file));
ecore_con_url_data_set(job->url_con, data);
job->progress_cb = progress_cb;
_job_list = eina_list_append(_job_list, job);
- ecore_con_url_get(job->url_con, NULL, 0, NULL);
+ ecore_con_url_get(job->url_con);
return job;
}
}
/**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
static Ecore_Fd_Handler *_fdh = NULL;
static Ecore_File_Monitor *_monitors = NULL;
+static pid_t _inotify_fd_pid = -1;
static Eina_Bool _ecore_file_monitor_inotify_handler(void *data, Ecore_Fd_Handler *fdh);
static Ecore_File_Monitor *_ecore_file_monitor_inotify_monitor_find(int wd);
fd = inotify_init();
if (fd < 0)
return 0;
-
+
_fdh = ecore_main_fd_handler_add(fd, ECORE_FD_READ, _ecore_file_monitor_inotify_handler,
NULL, NULL, NULL);
if (!_fdh)
return 0;
}
+ _inotify_fd_pid = getpid();
return 1;
}
ecore_main_fd_handler_del(_fdh);
close(fd);
}
+ _inotify_fd_pid = -1;
return 1;
}
Ecore_File_Monitor *em;
int len;
+ if (_inotify_fd_pid == -1) return NULL;
+
+ if (_inotify_fd_pid != getpid())
+ {
+ ecore_file_monitor_inotify_shutdown();
+ ecore_file_monitor_inotify_init();
+ }
+
em = calloc(1, sizeof(Ecore_File_Monitor_Inotify));
if (!em) return NULL;
if (mask & IN_CLOSE_WRITE)
{
if (!isdir)
- em->func(em->data, em, ECORE_FILE_EVENT_MODIFIED, buf);
+ em->func(em->data, em, ECORE_FILE_EVENT_CLOSED, buf);
}
if (mask & IN_MODIFY)
{
}
/**
- * @addtogroup Ecore_File_Group Ecore_File - Files and direcotries convenience functions
+ * @addtogroup Ecore_File_Group Ecore_File - Files and directories convenience functions
*
* @{
*/
typedef enum
{
- ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF, /**< Off */
+ ECORE_IMF_INPUT_PANEL_CAPS_MODE_OFF, /**< Off */
ECORE_IMF_INPUT_PANEL_CAPS_MODE_ON, /**< On */
ECORE_IMF_INPUT_PANEL_CAPS_MODE_LOCK, /**< Lock */
} Ecore_IMF_Input_Panel_Caps_Mode;
typedef struct _Ecore_IMF_Context_Class Ecore_IMF_Context_Class; /**< An Input Method Context class */
typedef struct _Ecore_IMF_Context_Info Ecore_IMF_Context_Info; /**< An Input Method Context info */
+/* Preedit attribute info */
+typedef struct _Ecore_IMF_Preedit_Attr Ecore_IMF_Preedit_Attr;
+
EAPI extern int ECORE_IMF_EVENT_PREEDIT_START;
EAPI extern int ECORE_IMF_EVENT_PREEDIT_END;
EAPI extern int ECORE_IMF_EVENT_PREEDIT_CHANGED;
ECORE_IMF_INPUT_MODE_AUTOCAP = 1 << 30
} Ecore_IMF_Input_Mode;
+typedef enum
+{
+ ECORE_IMF_PREEDIT_TYPE_NONE,
+ ECORE_IMF_PREEDIT_TYPE_SUB1,
+ ECORE_IMF_PREEDIT_TYPE_SUB2,
+ ECORE_IMF_PREEDIT_TYPE_SUB3
+} Ecore_IMF_Preedit_Type;
+
struct _Ecore_IMF_Event_Preedit_Start
{
Ecore_IMF_Context *ctx;
Ecore_IMF_Event_Key_Up key_up;
};
-typedef enum
-{
- ECORE_IMF_PREEDIT_TYPE_NONE = 0,
- ECORE_IMF_PREEDIT_TYPE_SUB1 = 1,
- ECORE_IMF_PREEDIT_TYPE_SUB2 = 2,
- ECORE_IMF_PREEDIT_TYPE_SUB3 = 3
-} Ecore_IMF_Preedit_Type;
-
-typedef struct _Ecore_IMF_Preedit_Attr Ecore_IMF_Preedit_Attr;
-
struct _Ecore_IMF_Preedit_Attr
{
Ecore_IMF_Preedit_Type preedit_type;
EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_get(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_del(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window);
-EAPI void* ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
+EAPI void *ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas);
-EAPI void* ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
-EINA_DEPRECATED EAPI void ecore_imf_context_show(Ecore_IMF_Context *ctx);
-EINA_DEPRECATED EAPI void ecore_imf_context_hide(Ecore_IMF_Context *ctx);
+EAPI void *ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_show(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_hide(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cursor_pos);
EAPI void ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, char **str, Eina_List **attrs, int *cursor_pos);
EAPI void ecore_imf_context_focus_in(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos);
EAPI void ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit);
EAPI void ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos), const void *data);
-EINA_DEPRECATED EAPI void ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
-EINA_DEPRECATED EAPI Ecore_IMF_Input_Mode ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
+EAPI Ecore_IMF_Input_Mode ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx);
EAPI Eina_Bool ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
/* plugin specific functions */
EAPI void ecore_imf_context_input_panel_orient_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Orient orientation);
EAPI Ecore_IMF_Input_Panel_Orient ecore_imf_context_input_panel_orient_get(Ecore_IMF_Context *ctx);
EAPI Ecore_IMF_Input_Panel_State ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx);
-EAPI void ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
-EAPI void ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*pEventCallbackFunc) (void *data, Ecore_IMF_Context *ctx, int value));
+EAPI void ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
+EAPI void ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value));
EAPI void ecore_imf_context_input_panel_key_disabled_set(Ecore_IMF_Context *ctx, int layout_index, int key_index, Eina_Bool disabled);
EAPI Eina_List *ecore_imf_context_input_panel_key_disabled_list_get(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_input_panel_move(Ecore_IMF_Context *ctx, int x, int y);
MAINTAINERCLEANFILES = Makefile.in
-if BUILD_ECORE_IMF
AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib/ecore \
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
@EVIL_LIBS@
libecore_imf_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
-endif
EXTRA_DIST = ecore_imf_private.h
* @param ctx An #Ecore_IMF_Context.
* @ingroup Ecore_IMF_Context_Group
*/
-EINA_DEPRECATED EAPI void
+EAPI void
ecore_imf_context_show(Ecore_IMF_Context *ctx)
{
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
* @param ctx An #Ecore_IMF_Context.
* @ingroup Ecore_IMF_Context_Group
*/
-EINA_DEPRECATED EAPI void
+EAPI void
ecore_imf_context_hide(Ecore_IMF_Context *ctx)
{
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
* @param input_mode The input mode to be used by @p ctx.
* @ingroup Ecore_IMF_Context_Group
*/
-EINA_DEPRECATED EAPI void
+EAPI void
ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode)
{
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
* @return The input mode being used by @p ctx.
* @ingroup Ecore_IMF_Context_Group
*/
-EINA_DEPRECATED EAPI Ecore_IMF_Input_Mode
+EAPI Ecore_IMF_Input_Mode
ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx)
{
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
const Ecore_IMF_Context_Class *klass;
void *data;
int input_mode;
- void* window;
- void* client_canvas;
+ void *window;
+ void *client_canvas;
Ecore_IMF_Input_Panel_Layout input_panel_layout;
Ecore_IMF_Input_Panel_Lang input_panel_lang;
int use_effect;
static int _ecore_win32_init_count = 0;
+static void
+_ecore_win32_size_check(Ecore_Win32_Window *win, int w, int h, int *dx, int *dy)
+{
+ int minimal_width;
+ int minimal_height;
+
+ minimal_width = GetSystemMetrics(SM_CXMIN);
+ minimal_height = GetSystemMetrics(SM_CYMIN);
+ if ((w) < MAX(minimal_width, (int)win->min_width))
+ *dx = 0;
+ if ((w) > (int)win->max_width)
+ *dx = 0;
+ if ((h) < MAX(minimal_height, (int)win->min_height))
+ *dy = 0;
+ if ((h) > (int)win->max_height)
+ *dy = 0;
+}
+
LRESULT CALLBACK
_ecore_win32_window_procedure(HWND window,
UINT message,
LPARAM data_param)
{
Ecore_Win32_Callback_Data *data;
- POINTS pt;
+ POINTS point;
DWORD coord;
data = (Ecore_Win32_Callback_Data *)malloc(sizeof(Ecore_Win32_Callback_Data));
data->data_param = data_param;
data->time = GetMessageTime();
coord = GetMessagePos();
- pt = MAKEPOINTS(coord);
- data->x = pt.x;
- data->y = pt.y;
+ point = MAKEPOINTS(coord);
+ data->x = point.x;
+ data->y = point.y;
switch (data->message)
{
INF("keydown message");
_ecore_win32_event_handle_key_press(data, 1);
return 0;
- case WM_CHAR:
- INF("char message");
- _ecore_win32_event_handle_key_press(data, 0);
- return 0;
+ /* case WM_CHAR: */
+ /* INF("char message"); */
+ /* _ecore_win32_event_handle_key_press(data, 0); */
+ /* return 0; */
case WM_KEYUP:
INF("keyup message");
_ecore_win32_event_handle_key_release(data, 1);
_ecore_win32_event_handle_button_press(data, 3);
return 0;
case WM_LBUTTONUP:
- INF("left button up message");
- _ecore_win32_event_handle_button_release(data, 1);
- return 0;
+ {
+ Ecore_Win32_Window *w = NULL;
+
+ INF("left button up message");
+
+ w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
+ if (w->drag.dragging)
+ {
+ ReleaseCapture();
+ w->drag.dragging = 0;
+ return 0;
+ }
+
+ _ecore_win32_event_handle_button_release(data, 1);
+ return 0;
+ }
case WM_MBUTTONUP:
INF("middle button up message");
_ecore_win32_event_handle_button_release(data, 2);
return 0;
case WM_MOUSEMOVE:
{
- RECT rect;
- struct _Ecore_Win32_Window *w = NULL;
+ RECT rect;
+ Ecore_Win32_Window *w = NULL;
INF("moue move message");
- w = (struct _Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
+ w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
+
+ if (w->drag.dragging)
+ {
+ POINT pt;
+
+ pt.x = GET_X_LPARAM(data_param);
+ pt.y = GET_Y_LPARAM(data_param);
+ if (ClientToScreen(window, &pt))
+ {
+ if (w->drag.type == HTCAPTION)
+ {
+ int dx;
+ int dy;
+
+ dx = pt.x - w->drag.px;
+ dy = pt.y - w->drag.py;
+ ecore_win32_window_move(w, w->drag.x + dx, w->drag.y + dy);
+ w->drag.x += dx;
+ w->drag.y += dy;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTLEFT)
+ {
+ int dw;
+
+ dw = pt.x - w->drag.px;
+ ecore_win32_window_move_resize(w, w->drag.x + dw, w->drag.y, w->drag.w - dw, w->drag.h);
+ w->drag.x += dw;
+ w->drag.w -= dw;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTRIGHT)
+ {
+ int dw;
+
+ dw = pt.x - w->drag.px;
+ ecore_win32_window_resize(w, w->drag.w + dw, w->drag.h);
+ w->drag.w += dw;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTTOP)
+ {
+ int dh;
+
+ dh = pt.y - w->drag.py;
+ ecore_win32_window_move_resize(w, w->drag.x, w->drag.y + dh, w->drag.w, w->drag.h - dh);
+ w->drag.y += dh;
+ w->drag.h -= dh;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTBOTTOM)
+ {
+ int dh;
+
+ dh = pt.y - w->drag.py;
+ ecore_win32_window_resize(w, w->drag.w, w->drag.h + dh);
+ w->drag.h += dh;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTTOPLEFT)
+ {
+ int dx;
+ int dy;
+ int dh;
+ int dw;
+
+ dw = pt.x - w->drag.px;
+ dh = pt.y - w->drag.py;
+ dx = dw;
+ dy = dh;
+ _ecore_win32_size_check(w,
+ w->drag.w - dw, w->drag.h - dh,
+ &dx, &dy);
+
+ ecore_win32_window_move_resize(w, w->drag.x + dx, w->drag.y + dy, w->drag.w - dw, w->drag.h - dh);
+ w->drag.x += dx;
+ w->drag.y += dy;
+ w->drag.w -= dw;
+ w->drag.h -= dh;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTTOPRIGHT)
+ {
+ int dx;
+ int dy;
+ int dh;
+ int dw;
+
+ dw = pt.x - w->drag.px;
+ dh = pt.y - w->drag.py;
+ dx = dw;
+ dy = dh;
+ _ecore_win32_size_check(w,
+ w->drag.w, w->drag.h - dh,
+ &dx, &dy);
+ ecore_win32_window_move_resize(w, w->drag.x, w->drag.y + dy, w->drag.w, w->drag.h - dh);
+ w->drag.y += dy;
+ w->drag.w += dw;
+ w->drag.h -= dh;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTBOTTOMLEFT)
+ {
+ int dx;
+ int dy;
+ int dh;
+ int dw;
+
+ dw = pt.x - w->drag.px;
+ dh = pt.y - w->drag.py;
+ dx = dw;
+ dy = dh;
+ _ecore_win32_size_check(w,
+ w->drag.w - dw, w->drag.h + dh,
+ &dx, &dy);
+ ecore_win32_window_move_resize(w, w->drag.x + dx, w->drag.y, w->drag.w - dw, w->drag.h + dh);
+ w->drag.x += dx;
+ w->drag.w -= dw;
+ w->drag.h += dh;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ if (w->drag.type == HTBOTTOMRIGHT)
+ {
+ int dh;
+ int dw;
+
+ dw = pt.x - w->drag.px;
+ dh = pt.y - w->drag.py;
+ ecore_win32_window_resize(w, w->drag.w + dw, w->drag.h + dh);
+ w->drag.w += dw;
+ w->drag.h += dh;
+ w->drag.px = pt.x;
+ w->drag.py = pt.y;
+ return 0;
+ }
+ }
+ }
if (GetClientRect(window, &rect))
{
return 0;
case WM_NCLBUTTONDOWN:
INF("non client left button down window message");
+
if (((DWORD)window_param == HTCAPTION) ||
((DWORD)window_param == HTBOTTOM) ||
((DWORD)window_param == HTBOTTOMLEFT) ||
w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
ecore_win32_window_geometry_get(w,
- &w->drag.x, &w->drag.y,
+ NULL, NULL,
&w->drag.w, &w->drag.h);
+ SetCapture(window);
+ w->drag.type = (DWORD)window_param;
w->drag.px = GET_X_LPARAM(data_param);
w->drag.py = GET_Y_LPARAM(data_param);
w->drag.dragging = 1;
}
return DefWindowProc(window, message, window_param, data_param);
case WM_SYSCOMMAND:
- INF("sys command window message", (int)window_param);
+ INF("sys command window message %d", (int)window_param);
+
if ((((DWORD)window_param & 0xfff0) == SC_MOVE) ||
(((DWORD)window_param & 0xfff0) == SC_SIZE))
{
return 0;
}
return DefWindowProc(window, message, window_param, data_param);
- case WM_NCMOUSEMOVE:
- INF("non client mouse move window message");
- if ((DWORD)window_param == HTCAPTION)
- {
- Ecore_Win32_Window *w;
-
- w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
- if (w->drag.dragging)
- {
- int dx;
- int dy;
-
- dx = GET_X_LPARAM(data_param) - w->drag.px;
- dy = GET_Y_LPARAM(data_param) - w->drag.py;
- ecore_win32_window_move(w, w->drag.x + dx, w->drag.y + dy);
- w->drag.x += dx;
- w->drag.y += dy;
- w->drag.px = GET_X_LPARAM(data_param);
- w->drag.py = GET_Y_LPARAM(data_param);
- return 0;
- }
- }
- if ((DWORD)window_param == HTLEFT)
- {
- Ecore_Win32_Window *w;
-
- w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
- if (w->drag.dragging)
- {
- int dw;
- dw = GET_X_LPARAM(data_param) - w->drag.px;
- ecore_win32_window_move_resize(w, w->drag.x + dw, w->drag.y, w->drag.w - dw, w->drag.h);
- w->drag.x += dw;
- w->drag.w -= dw;
- w->drag.px = GET_X_LPARAM(data_param);
- w->drag.py = GET_Y_LPARAM(data_param);
- return 0;
- }
- }
- if ((DWORD)window_param == HTRIGHT)
- {
- Ecore_Win32_Window *w;
-
- w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
- if (w->drag.dragging)
- {
- int dw;
- dw = GET_X_LPARAM(data_param) - w->drag.px;
- ecore_win32_window_resize(w, w->drag.w + dw, w->drag.h);
- w->drag.w += dw;
- w->drag.px = GET_X_LPARAM(data_param);
- w->drag.py = GET_Y_LPARAM(data_param);
- return 0;
- }
- }
- if ((DWORD)window_param == HTTOP)
- {
- Ecore_Win32_Window *w;
-
- w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
- if (w->drag.dragging)
- {
- int dh;
- dh = GET_Y_LPARAM(data_param) - w->drag.py;
- ecore_win32_window_move_resize(w, w->drag.x, w->drag.y + dh, w->drag.w, w->drag.h - dh);
- w->drag.y += dh;
- w->drag.h -= dh;
- w->drag.px = GET_X_LPARAM(data_param);
- w->drag.py = GET_Y_LPARAM(data_param);
- return 0;
- }
- }
- if ((DWORD)window_param == HTBOTTOM)
- {
- Ecore_Win32_Window *w;
-
- w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
- if (w->drag.dragging)
- {
- int dh;
- dh = GET_Y_LPARAM(data_param) - w->drag.py;
- ecore_win32_window_resize(w, w->drag.w, w->drag.h + dh);
- w->drag.h += dh;
- w->drag.px = GET_X_LPARAM(data_param);
- w->drag.py = GET_Y_LPARAM(data_param);
- return 0;
- }
- }
- return DefWindowProc(window, message, window_param, data_param);
- case WM_NCLBUTTONUP:
- INF("non client left button up window message");
- if (((DWORD)window_param == HTCAPTION) ||
- ((DWORD)window_param == HTBOTTOM) ||
- ((DWORD)window_param == HTBOTTOMLEFT) ||
- ((DWORD)window_param == HTBOTTOMRIGHT) ||
- ((DWORD)window_param == HTLEFT) ||
- ((DWORD)window_param == HTRIGHT) ||
- ((DWORD)window_param == HTTOP) ||
- ((DWORD)window_param == HTTOPLEFT) ||
- ((DWORD)window_param == HTTOPRIGHT))
- {
- Ecore_Win32_Window *w;
-
- w = (Ecore_Win32_Window *)GetWindowLongPtr(window, GWL_USERDATA);
- if (w->drag.dragging)
- {
- w->drag.dragging = 0;
- return 0;
- }
- }
- return DefWindowProc(window, message, window_param, data_param);
/* GDI notifications */
+ case WM_ERASEBKGND:
+ return 1;
case WM_PAINT:
{
RECT rect;
ecore_win32_dnd_register_drop_target(Ecore_Win32_Window *window,
Ecore_Win32_Dnd_DropTarget_Callback callback)
{
- struct _Ecore_Win32_Window *wnd = (struct _Ecore_Win32_Window *)window;
+ Ecore_Win32_Window *wnd = (Ecore_Win32_Window *)window;
if (!window)
return EINA_FALSE;
EAPI void
ecore_win32_dnd_unregister_drop_target(Ecore_Win32_Window *window)
{
- struct _Ecore_Win32_Window *wnd = (struct _Ecore_Win32_Window *)window;
+ Ecore_Win32_Window *wnd = (Ecore_Win32_Window *)window;
if (!window)
return;
return S_OK;
}
-HRESULT DataObject::GetDataHere(FORMATETC *pFormatEtc, STGMEDIUM *pmedium)
+HRESULT DataObject::GetDataHere(FORMATETC *pFormatEtc __UNUSED__, STGMEDIUM *pmedium __UNUSED__)
{
return DATA_E_FORMATETC;
}
return (lookup_format_etc(pFormatEtc) == -1) ? DV_E_FORMATETC : S_OK;
}
-HRESULT DataObject::GetCanonicalFormatEtc(FORMATETC *pFormatEct, FORMATETC *pFormatEtcOut)
+HRESULT DataObject::GetCanonicalFormatEtc(FORMATETC *pFormatEct __UNUSED__, FORMATETC *pFormatEtcOut)
{
// Apparently we have to set this field to NULL even though we don't do anything else
pFormatEtcOut->ptd = NULL;
return E_NOTIMPL;
}
-HRESULT DataObject::SetData(FORMATETC *pFormatEtc, STGMEDIUM *pMedium, BOOL fRelease)
+HRESULT DataObject::SetData(FORMATETC *pFormatEtc __UNUSED__, STGMEDIUM *pMedium __UNUSED__, BOOL fRelease __UNUSED__)
{
return E_NOTIMPL;
}
}
}
-HRESULT DataObject::DAdvise(FORMATETC *pFormatEtc, DWORD advf, IAdviseSink *, DWORD *)
+HRESULT DataObject::DAdvise(FORMATETC *pFormatEtc __UNUSED__, DWORD advf __UNUSED__, IAdviseSink *, DWORD *)
{
return OLE_E_ADVISENOTSUPPORTED;
}
-HRESULT DataObject::DUnadvise(DWORD dwConnection)
+HRESULT DataObject::DUnadvise(DWORD dwConnection __UNUSED__)
{
return OLE_E_ADVISENOTSUPPORTED;
}
-HRESULT DataObject::EnumDAdvise(IEnumSTATDATA **ppEnumAdvise)
+HRESULT DataObject::EnumDAdvise(IEnumSTATDATA **ppEnumAdvise __UNUSED__)
{
return OLE_E_ADVISENOTSUPPORTED;
}
return S_OK;
}
-HRESULT DropSource::GiveFeedback(DWORD dwEffect)
+HRESULT DropSource::GiveFeedback(DWORD dwEffect __UNUSED__)
{
return DRAGDROP_S_USEDEFAULTCURSORS;
}
// internal helper function
-DWORD DropTarget::DropEffect(DWORD grfKeyState, POINTL pt, DWORD dwAllowed)
+DWORD DropTarget::DropEffect(DWORD grfKeyState, POINTL pt __UNUSED__, DWORD dwAllowed)
{
DWORD dwEffect = 0;
kn = "space";
ks = "space";
kc = "space";
+ break;
case VK_F1:
kn = "F1";
ks = "F1";
extern "C" {
#endif
+#ifdef MIN
+# undef MIN
+#endif
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+
+#ifdef MAX
+# undef MAX
+#endif
+#define MAX(a,b) (((a) < (b)) ? (b) : (a))
/* logging messages macros */
extern int _ecore_win32_log_dom_global;
#endif
#define INF(...) EINA_LOG_DOM_INFO(_ecore_win32_log_dom_global , __VA_ARGS__)
+#ifdef WRN
+# undef WRN
+#endif
+#define WRN(...) EINA_LOG_DOM_WARN(_ecore_win32_log_dom_global, __VA_ARGS__)
+
#define ECORE_WIN32_WINDOW_CLASS "Ecore_Win32_Window_Class"
typedef struct _Ecore_Win32_Callback_Data Ecore_Win32_Callback_Data;
} shape;
struct {
- unsigned int x;
- unsigned int y;
- unsigned int w;
- unsigned int h;
- unsigned int px;
- unsigned int py;
- unsigned int dragging : 1;
+ DWORD type;
+ int x;
+ int y;
+ int w;
+ int h;
+ int px;
+ int py;
+ unsigned int dragging : 1;
} drag;
void *dnd_drop_target;
int height,
DWORD style)
{
- RECT rect;
- struct _Ecore_Win32_Window *w;
- int minimal_width;
- int minimal_height;
+ RECT rect;
+ Ecore_Win32_Window *w;
+ int minimal_width;
+ int minimal_height;
- w = (struct _Ecore_Win32_Window *)calloc(1, sizeof(struct _Ecore_Win32_Window));
+ w = (Ecore_Win32_Window *)calloc(1, sizeof(Ecore_Win32_Window));
if (!w)
{
ERR("malloc() failed");
rect.top = 0;
rect.right = width;
rect.bottom = height;
- if (!AdjustWindowRect(&rect, style, FALSE))
+ if (!AdjustWindowRectEx(&rect, style, FALSE, 0))
{
ERR("AdjustWindowRect() failed");
free(w);
x, y,
rect.right - rect.left,
rect.bottom - rect.top,
- parent ? ((struct _Ecore_Win32_Window *)parent)->window : NULL,
+ parent ? ((Ecore_Win32_Window *)parent)->window : NULL,
NULL, _ecore_win32_instance, NULL);
if (!w->window)
{
EAPI void
ecore_win32_window_free(Ecore_Win32_Window *window)
{
- struct _Ecore_Win32_Window *wnd = window;
+ Ecore_Win32_Window *wnd = window;
if (!window) return;
if (wnd->shape.mask)
free(wnd->shape.mask);
- DestroyWindow(((struct _Ecore_Win32_Window *)window)->window);
+ DestroyWindow(((Ecore_Win32_Window *)window)->window);
free(window);
}
{
if (!window) return NULL;
- return ((struct _Ecore_Win32_Window *)window)->window;
+ return ((Ecore_Win32_Window *)window)->window;
}
/*
default:
return;
}
- SetWindowPos((struct _Ecore_Win32_Window *)window->window, w, x, y, width, height, ???);
+ SetWindowPos((Ecore_Win32_Window *)window->window, w, x, y, width, height, ???);
}
*/
INF("moving window (%dx%d)", x, y);
- w = ((struct _Ecore_Win32_Window *)window)->window;
+ w = ((Ecore_Win32_Window *)window)->window;
if (!GetWindowRect(w, &rect))
{
ERR("GetWindowRect() failed");
int width,
int height)
{
- RECT rect;
- struct _Ecore_Win32_Window *w;
- DWORD style;
- int x;
- int y;
+ RECT rect;
+ Ecore_Win32_Window *w;
+ DWORD style;
+ int x;
+ int y;
+ int minimal_width;
+ int minimal_height;
/* FIXME: on fullscreen, should not resize it */
if (!window) return;
INF("resizing window (%dx%d)", width, height);
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
+
+ minimal_width = MAX(GetSystemMetrics(SM_CXMIN), (int)w->min_width);
+ minimal_height = MAX(GetSystemMetrics(SM_CYMIN), (int)w->min_height);
+
if (!GetWindowRect(w->window, &rect))
{
ERR("GetWindowRect() failed");
y = rect.top;
rect.left = 0;
rect.top = 0;
-/* if (width < w->min_width) width = w->min_width; */
-/* if (width > w->max_width) width = w->max_width; */
-/* printf ("ecore_win32_window_resize 1 : %d %d %d\n", w->min_height, w->max_height, height); */
-/* if (height < w->min_height) height = w->min_height; */
-/* printf ("ecore_win32_window_resize 2 : %d %d\n", w->max_height, height); */
-/* if (height > w->max_height) height = w->max_height; */
-/* printf ("ecore_win32_window_resize 3 : %d %d\n", w->max_height, height); */
+ if (width < minimal_width) width = minimal_width;
+ if (width > (int)w->max_width) width = w->max_width;
+ if (height < minimal_height) height = minimal_height;
+ if (height > (int)w->max_height) height = w->max_height;
rect.right = width;
rect.bottom = height;
if (!(style = GetWindowLong(w->window, GWL_STYLE)))
int width,
int height)
{
- RECT rect;
- struct _Ecore_Win32_Window *w;
- DWORD style;
+ RECT rect;
+ Ecore_Win32_Window *w;
+ DWORD style;
+ int minimal_width;
+ int minimal_height;
/* FIXME: on fullscreen, should not move/resize it */
if (!window) return;
INF("moving and resizing window (%dx%d %dx%d)", x, y, width, height);
- w = ((struct _Ecore_Win32_Window *)window);
+ w = ((Ecore_Win32_Window *)window);
+
+ minimal_width = MAX(GetSystemMetrics(SM_CXMIN), (int)w->min_width);
+ minimal_height = MAX(GetSystemMetrics(SM_CYMIN), (int)w->min_height);
+
rect.left = 0;
rect.top = 0;
- if ((unsigned int)width < w->min_width) width = w->min_width;
- if ((unsigned int)width > w->max_width) width = w->max_width;
- if ((unsigned int)height < w->min_height) height = w->min_height;
- if ((unsigned int)height > w->max_height) height = w->max_height;
+ if (width < minimal_width) width = minimal_width;
+ if (width > (int)w->max_width) width = w->max_width;
+ if (height < minimal_height) height = minimal_height;
+ if (height > (int)w->max_height) height = w->max_height;
rect.right = width;
rect.bottom = height;
if (!(style = GetWindowLong(w->window, GWL_STYLE)))
return;
}
- if (!GetClientRect(((struct _Ecore_Win32_Window *)window)->window,
+ if (!GetClientRect(((Ecore_Win32_Window *)window)->window,
&rect))
{
ERR("GetClientRect() failed");
w = rect.right - rect.left;
h = rect.bottom - rect.top;
- if (!GetWindowRect(((struct _Ecore_Win32_Window *)window)->window,
+ if (!GetWindowRect(((Ecore_Win32_Window *)window)->window,
&rect))
{
ERR("GetWindowRect() failed");
return;
}
- if (!GetClientRect(((struct _Ecore_Win32_Window *)window)->window,
+ if (!GetClientRect(((Ecore_Win32_Window *)window)->window,
&rect))
{
ERR("GetClientRect() failed");
unsigned int min_width,
unsigned int min_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
if (!window) return;
printf ("ecore_win32_window_size_min_set : %p %d %d\n", window, min_width, min_height);
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
w->min_width = min_width;
w->min_height = min_height;
}
unsigned int *min_width,
unsigned int *min_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
if (!window) return;
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
printf ("ecore_win32_window_size_min_get : %p %d %d\n", window, w->min_width, w->min_height);
if (min_width) *min_width = w->min_width;
if (min_height) *min_height = w->min_height;
unsigned int max_width,
unsigned int max_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
if (!window) return;
printf ("ecore_win32_window_size_max_set : %p %d %d\n", window, max_width, max_height);
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
w->max_width = max_width;
w->max_height = max_height;
}
unsigned int *max_width,
unsigned int *max_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
if (!window) return;
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
printf ("ecore_win32_window_size_max_get : %p %d %d\n", window, w->max_width, w->max_height);
if (max_width) *max_width = w->max_width;
if (max_height) *max_height = w->max_height;
unsigned int base_width,
unsigned int base_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
printf ("ecore_win32_window_size_base_set : %p %d %d\n", window, base_width, base_height);
if (!window) return;
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
w->base_width = base_width;
w->base_height = base_height;
}
unsigned int *base_width,
unsigned int *base_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
if (!window) return;
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
printf ("ecore_win32_window_size_base_get : %p %d %d\n", window, w->base_width, w->base_height);
if (base_width) *base_width = w->base_width;
if (base_height) *base_height = w->base_height;
unsigned int step_width,
unsigned int step_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
printf ("ecore_win32_window_size_step_set : %p %d %d\n", window, step_width, step_height);
if (!window) return;
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
w->step_width = step_width;
w->step_height = step_height;
}
unsigned int *step_width,
unsigned int *step_height)
{
- struct _Ecore_Win32_Window *w;
+ Ecore_Win32_Window *w;
if (!window) return;
- w = (struct _Ecore_Win32_Window *)window;
+ w = (Ecore_Win32_Window *)window;
printf ("ecore_win32_window_size_step_get : %p %d %d\n", window, w->step_width, w->step_height);
if (step_width) *step_width = w->step_width;
if (step_height) *step_height = w->step_height;
unsigned short height,
unsigned char *mask)
{
- struct _Ecore_Win32_Window *wnd;
+ Ecore_Win32_Window *wnd;
HRGN rgn;
int x;
int y;
if (!window)
return;
- wnd = (struct _Ecore_Win32_Window *)window;
+ wnd = (Ecore_Win32_Window *)window;
if (!mask)
{
INF("showing window");
- ShowWindow(((struct _Ecore_Win32_Window *)window)->window, SW_SHOWNORMAL);
- if (!UpdateWindow(((struct _Ecore_Win32_Window *)window)->window))
+ ShowWindow(((Ecore_Win32_Window *)window)->window, SW_SHOWNORMAL);
+ if (!UpdateWindow(((Ecore_Win32_Window *)window)->window))
{
ERR("UpdateWindow() failed");
}
INF("hiding window");
- ShowWindow(((struct _Ecore_Win32_Window *)window)->window, SW_HIDE);
+ ShowWindow(((Ecore_Win32_Window *)window)->window, SW_HIDE);
}
/**
INF("raising window");
- if (!SetWindowPos(((struct _Ecore_Win32_Window *)window)->window,
+ if (!SetWindowPos(((Ecore_Win32_Window *)window)->window,
HWND_TOP, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE))
{
INF("lowering window");
- if (!SetWindowPos(((struct _Ecore_Win32_Window *)window)->window,
+ if (!SetWindowPos(((Ecore_Win32_Window *)window)->window,
HWND_BOTTOM, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE))
{
INF("setting window title");
- if (!SetWindowText(((struct _Ecore_Win32_Window *)window)->window, title))
+ if (!SetWindowText(((Ecore_Win32_Window *)window)->window, title))
{
ERR("SetWindowText() failed");
}
INF("focusing window");
- if (!SetFocus(((struct _Ecore_Win32_Window *)window)->window))
+ if (!SetFocus(((Ecore_Win32_Window *)window)->window))
{
ERR("SetFocus() failed");
}
ecore_win32_window_iconified_set(Ecore_Win32_Window *window,
Eina_Bool on)
{
- struct _Ecore_Win32_Window *ew;
+ Ecore_Win32_Window *ew;
if (!window) return;
- ew = (struct _Ecore_Win32_Window *)window;
+ ew = (Ecore_Win32_Window *)window;
if (((ew->iconified) && (on)) ||
((!ew->iconified) && (!on)))
return;
ecore_win32_window_borderless_set(Ecore_Win32_Window *window,
Eina_Bool on)
{
- RECT rect;
- DWORD style;
- struct _Ecore_Win32_Window *ew;
- HWND w;
+ RECT rect;
+ DWORD style;
+ Ecore_Win32_Window *ew;
+ HWND w;
if (!window) return;
- ew = (struct _Ecore_Win32_Window *)window;
+ ew = (Ecore_Win32_Window *)window;
if (((ew->borderless) && (on)) ||
((!ew->borderless) && (!on)))
return;
ecore_win32_window_fullscreen_set(Ecore_Win32_Window *window,
Eina_Bool on)
{
- struct _Ecore_Win32_Window *ew;
+ Ecore_Win32_Window *ew;
HWND w;
if (!window) return;
- ew = (struct _Ecore_Win32_Window *)window;
+ ew = (Ecore_Win32_Window *)window;
if (((ew->fullscreen) && (on)) ||
((!ew->fullscreen) && (!on)))
return;
if (!window || !cursor)
return;
- if (!SetClassLongPtr(((struct _Ecore_Win32_Window *)window)->window,
+ if (!SetClassLongPtr(((Ecore_Win32_Window *)window)->window,
GCL_HCURSOR, (LONG_PTR)cursor))
{
ERR("SetClassLong() failed");
switch (state[i])
{
case ECORE_WIN32_WINDOW_STATE_ICONIFIED:
- ((struct _Ecore_Win32_Window *)window)->state.iconified = 1;
+ ((Ecore_Win32_Window *)window)->state.iconified = 1;
break;
case ECORE_WIN32_WINDOW_STATE_MODAL:
- ((struct _Ecore_Win32_Window *)window)->state.modal = 1;
+ ((Ecore_Win32_Window *)window)->state.modal = 1;
break;
case ECORE_WIN32_WINDOW_STATE_STICKY:
- ((struct _Ecore_Win32_Window *)window)->state.sticky = 1;
+ ((Ecore_Win32_Window *)window)->state.sticky = 1;
break;
case ECORE_WIN32_WINDOW_STATE_MAXIMIZED_VERT:
- ((struct _Ecore_Win32_Window *)window)->state.maximized_vert = 1;
+ ((Ecore_Win32_Window *)window)->state.maximized_vert = 1;
break;
case ECORE_WIN32_WINDOW_STATE_MAXIMIZED_HORZ:
- ((struct _Ecore_Win32_Window *)window)->state.maximized_horz = 1;
+ ((Ecore_Win32_Window *)window)->state.maximized_horz = 1;
break;
case ECORE_WIN32_WINDOW_STATE_MAXIMIZED:
- ((struct _Ecore_Win32_Window *)window)->state.maximized_horz = 1;
- ((struct _Ecore_Win32_Window *)window)->state.maximized_vert = 1;
+ ((Ecore_Win32_Window *)window)->state.maximized_horz = 1;
+ ((Ecore_Win32_Window *)window)->state.maximized_vert = 1;
break;
case ECORE_WIN32_WINDOW_STATE_SHADED:
- ((struct _Ecore_Win32_Window *)window)->state.shaded = 1;
+ ((Ecore_Win32_Window *)window)->state.shaded = 1;
break;
case ECORE_WIN32_WINDOW_STATE_HIDDEN:
- ((struct _Ecore_Win32_Window *)window)->state.hidden = 1;
+ ((Ecore_Win32_Window *)window)->state.hidden = 1;
break;
case ECORE_WIN32_WINDOW_STATE_FULLSCREEN:
- ((struct _Ecore_Win32_Window *)window)->state.fullscreen = 1;
+ ((Ecore_Win32_Window *)window)->state.fullscreen = 1;
break;
case ECORE_WIN32_WINDOW_STATE_ABOVE:
- ((struct _Ecore_Win32_Window *)window)->state.above = 1;
+ ((Ecore_Win32_Window *)window)->state.above = 1;
break;
case ECORE_WIN32_WINDOW_STATE_BELOW:
- ((struct _Ecore_Win32_Window *)window)->state.below = 1;
+ ((Ecore_Win32_Window *)window)->state.below = 1;
break;
case ECORE_WIN32_WINDOW_STATE_DEMANDS_ATTENTION:
- ((struct _Ecore_Win32_Window *)window)->state.demands_attention = 1;
+ ((Ecore_Win32_Window *)window)->state.demands_attention = 1;
break;
case ECORE_WIN32_WINDOW_STATE_UNKNOWN:
/* nothing to be done */
Ecore_Win32_Window_State state,
unsigned int set)
{
- struct _Ecore_Win32_Window *ew;
- HWND w;
+ Ecore_Win32_Window *ew;
+ HWND w;
if (!window) return;
- ew = (struct _Ecore_Win32_Window *)window;
+ ew = (Ecore_Win32_Window *)window;
w = ew->window;
INF("sending cursor state");
switch (type)
{
case ECORE_WIN32_WINDOW_TYPE_DESKTOP:
- ((struct _Ecore_Win32_Window *)window)->type.desktop = 1;
+ ((Ecore_Win32_Window *)window)->type.desktop = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_DOCK:
- ((struct _Ecore_Win32_Window *)window)->type.dock = 1;
+ ((Ecore_Win32_Window *)window)->type.dock = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_TOOLBAR:
- ((struct _Ecore_Win32_Window *)window)->type.toolbar = 1;
+ ((Ecore_Win32_Window *)window)->type.toolbar = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_MENU:
- ((struct _Ecore_Win32_Window *)window)->type.menu = 1;
+ ((Ecore_Win32_Window *)window)->type.menu = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_UTILITY:
- ((struct _Ecore_Win32_Window *)window)->type.utility = 1;
+ ((Ecore_Win32_Window *)window)->type.utility = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_SPLASH:
- ((struct _Ecore_Win32_Window *)window)->type.splash = 1;
+ ((Ecore_Win32_Window *)window)->type.splash = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_DIALOG:
- ((struct _Ecore_Win32_Window *)window)->type.dialog = 1;
+ ((Ecore_Win32_Window *)window)->type.dialog = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_NORMAL:
- ((struct _Ecore_Win32_Window *)window)->type.normal = 1;
+ ((Ecore_Win32_Window *)window)->type.normal = 1;
break;
case ECORE_WIN32_WINDOW_TYPE_UNKNOWN:
- ((struct _Ecore_Win32_Window *)window)->type.normal = 1;
+ ((Ecore_Win32_Window *)window)->type.normal = 1;
break;
}
}
*/
-#ifndef _ECORE_EVAS_H
-typedef void Ecore_WinCE_Window;
-#endif
+/**
+ * @typedef Ecore_WinCE_Window
+ * Abstract type for a window.
+ */
+typedef struct _Ecore_WinCE_Window Ecore_WinCE_Window;
/**
break;
case WM_MOUSEMOVE:
{
- RECT rect;
- struct _Ecore_WinCE_Window *w = NULL;
+ RECT rect;
+ Ecore_WinCE_Window *w = NULL;
- w = (struct _Ecore_WinCE_Window *)GetWindowLong(window, GWL_USERDATA);
+ w = (Ecore_WinCE_Window *)GetWindowLong(window, GWL_USERDATA);
if (GetClientRect(window, &rect))
{
_ecore_wince_event_handle_delete_request(data);
break;
/* GDI notifications */
+ case WM_ERASEBKGND:
+ return 1;
case WM_PAINT:
{
PAINTSTRUCT paint;
_ecore_wince_event_handle_focus_in(Ecore_WinCE_Callback_Data *msg)
{
Ecore_WinCE_Event_Window_Focus_In *e;
- struct _Ecore_WinCE_Window *window;
+ Ecore_WinCE_Window *window;
INF("focus in");
_ecore_wince_event_handle_focus_out(Ecore_WinCE_Callback_Data *msg)
{
Ecore_WinCE_Event_Window_Focus_Out *e;
- struct _Ecore_WinCE_Window *window;
+ Ecore_WinCE_Window *window;
INF("focus out");
int width,
int height)
{
- struct _Ecore_WinCE_Window *w;
- HWND window;
- RECT rect;
+ Ecore_WinCE_Window *w;
+ HWND window;
+ RECT rect;
INF("creating window");
- w = (struct _Ecore_WinCE_Window *)calloc(1, sizeof(struct _Ecore_WinCE_Window));
+ w = (Ecore_WinCE_Window *)calloc(1, sizeof(Ecore_WinCE_Window));
if (!w)
{
ERR("malloc() failed");
WS_CAPTION | WS_SYSMENU | WS_VISIBLE,
x, y,
rect.right - rect.left, rect.bottom - rect.top,
- parent ? ((struct _Ecore_WinCE_Window *)parent)->window : NULL,
+ parent ? ((Ecore_WinCE_Window *)parent)->window : NULL,
NULL, _ecore_wince_instance, NULL);
if (!window)
{
INF("destroying window");
- DestroyWindow(((struct _Ecore_WinCE_Window *)window)->window);
+ DestroyWindow(((Ecore_WinCE_Window *)window)->window);
free(window);
}
if (!window)
return NULL;
- return ((struct _Ecore_WinCE_Window *)window)->window;
+ return ((Ecore_WinCE_Window *)window)->window;
}
/**
RECT rect;
HWND w;
- if (!window || ((struct _Ecore_WinCE_Window *)window)->fullscreen)
+ if (!window || ((Ecore_WinCE_Window *)window)->fullscreen)
return;
INF("moving window (%dx%d)", x, y);
- w = ((struct _Ecore_WinCE_Window *)window)->window;
+ w = ((Ecore_WinCE_Window *)window)->window;
if (!GetWindowRect(w, &rect))
{
ERR("GetWindowRect() failed");
int width,
int height)
{
- RECT rect;
- struct _Ecore_WinCE_Window *w;
- DWORD style;
- DWORD exstyle;
- int x;
- int y;
-
- if (!window || ((struct _Ecore_WinCE_Window *)window)->fullscreen)
+ RECT rect;
+ Ecore_WinCE_Window *w;
+ DWORD style;
+ DWORD exstyle;
+ int x;
+ int y;
+
+ if (!window || ((Ecore_WinCE_Window *)window)->fullscreen)
return;
INF("resizing window (%dx%d)", width, height);
- w = (struct _Ecore_WinCE_Window *)window;
+ w = (Ecore_WinCE_Window *)window;
if (!GetWindowRect(w->window, &rect))
{
ERR("GetWindowRect() failed");
int width,
int height)
{
- RECT rect;
- struct _Ecore_WinCE_Window *w;
- DWORD style;
- DWORD exstyle;
+ RECT rect;
+ Ecore_WinCE_Window *w;
+ DWORD style;
+ DWORD exstyle;
- if (!window || ((struct _Ecore_WinCE_Window *)window)->fullscreen)
+ if (!window || ((Ecore_WinCE_Window *)window)->fullscreen)
return;
INF("moving and resizing window (%dx%d %dx%d)", x, y, width, height);
- w = ((struct _Ecore_WinCE_Window *)window);
+ w = ((Ecore_WinCE_Window *)window);
rect.left = 0;
rect.top = 0;
rect.right = width;
INF("showing window");
- if (!ShowWindow(((struct _Ecore_WinCE_Window *)window)->window, SW_SHOWNORMAL))
+ if (!ShowWindow(((Ecore_WinCE_Window *)window)->window, SW_SHOWNORMAL))
{
ERR("ShowWindow() failed");
return;
}
- if (!UpdateWindow(((struct _Ecore_WinCE_Window *)window)->window))
+ if (!UpdateWindow(((Ecore_WinCE_Window *)window)->window))
{
ERR("UpdateWindow() failed");
}
- if (!SendMessage(((struct _Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 1, 0))
+ if (!SendMessage(((Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 1, 0))
{
ERR("SendMessage() failed");
}
INF("hiding window");
- if (!ShowWindow(((struct _Ecore_WinCE_Window *)window)->window, SW_HIDE))
+ if (!ShowWindow(((Ecore_WinCE_Window *)window)->window, SW_HIDE))
{
ERR("ShowWindow() failed");
return;
}
- if (!SendMessage(((struct _Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 0, 0))
+ if (!SendMessage(((Ecore_WinCE_Window *)window)->window, WM_SHOWWINDOW, 0, 0))
{
ERR("SendMessage() failed");
}
wtitle = evil_char_to_wchar(title);
if (!wtitle) return;
- if (!SetWindowText(((struct _Ecore_WinCE_Window *)window)->window, wtitle))
+ if (!SetWindowText(((Ecore_WinCE_Window *)window)->window, wtitle))
{
ERR("SetWindowText() failed");
}
ecore_wince_window_backend_set(Ecore_WinCE_Window *window,
int backend)
{
- struct _Ecore_WinCE_Window *w;
+ Ecore_WinCE_Window *w;
if (!window)
return;
INF("setting backend");
- w = (struct _Ecore_WinCE_Window *)window;
+ w = (Ecore_WinCE_Window *)window;
w->backend = backend;
}
EAPI void
ecore_wince_window_suspend_cb_set(Ecore_WinCE_Window *window, int (*suspend_cb)(int))
{
- struct _Ecore_WinCE_Window *w;
+ Ecore_WinCE_Window *w;
if (!window)
return;
INF("setting suspend callback");
- w = (struct _Ecore_WinCE_Window *)window;
+ w = (Ecore_WinCE_Window *)window;
w->suspend_cb = suspend_cb;
}
EAPI void
ecore_wince_window_resume_cb_set(Ecore_WinCE_Window *window, int (*resume_cb)(int))
{
- struct _Ecore_WinCE_Window *w;
+ Ecore_WinCE_Window *w;
if (!window)
return;
INF("setting resume callback");
- w = (struct _Ecore_WinCE_Window *)window;
+ w = (Ecore_WinCE_Window *)window;
w->resume_cb = resume_cb;
}
return;
}
- if (!GetClientRect(((struct _Ecore_WinCE_Window *)window)->window,
+ if (!GetClientRect(((Ecore_WinCE_Window *)window)->window,
&rect))
{
ERR("GetClientRect() failed");
w = rect.right - rect.left;
h = rect.bottom - rect.top;
- if (!GetWindowRect(((struct _Ecore_WinCE_Window *)window)->window,
+ if (!GetWindowRect(((Ecore_WinCE_Window *)window)->window,
&rect))
{
ERR("GetWindowRect() failed");
return;
}
- if (!GetClientRect(((struct _Ecore_WinCE_Window *)window)->window,
+ if (!GetClientRect(((Ecore_WinCE_Window *)window)->window,
&rect))
{
ERR("GetClientRect() failed");
ecore_wince_window_fullscreen_set(Ecore_WinCE_Window *window,
Eina_Bool on)
{
- struct _Ecore_WinCE_Window *ew;
- HWND w;
- HWND task_bar;
+ Ecore_WinCE_Window *ew;
+ HWND w;
+ HWND task_bar;
if (!window) return;
- ew = (struct _Ecore_WinCE_Window *)window;
+ ew = (Ecore_WinCE_Window *)window;
if (((ew->fullscreen) && (on)) ||
((!ew->fullscreen) && (!on)))
return;
int h)
{
Ecore_X_GC tgc = 0;
-
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!gc)
{
XGCValues gcv;
gc = tgc;
}
if (!im->xim) _ecore_x_image_shm_create(im);
- XShmPutImage(_ecore_x_disp, draw, gc, im->xim, sx, sy, x, y, w, h, False);
+ if (im->xim)
+ XShmPutImage(_ecore_x_disp, draw, gc, im->xim, sx, sy, x, y, w, h, False);
if (tgc) ecore_x_gc_free(tgc);
} /* ecore_x_image_put */
ret->vTotal = res->modes[i].vTotal;
ret->name = NULL;
ret->nameLength = 0;
- if (res->modes[i].nameLength > 0)
+ if (res->modes[i].nameLength > 0)
{
ret->nameLength = res->modes[i].nameLength;
- ret->name = strndup(res->modes[i].name,
- res->modes[i].nameLength);
+ ret->name = malloc(res->modes[i].nameLength + 1);
+ if (ret->name)
+ memcpy(ret->name, res->modes[i].name,
+ res->modes[i].nameLength + 1);
}
ret->modeFlags = res->modes[i].modeFlags;
break;
Ecore_X_Randr_Unset);
#endif
}
+
+/**
+ * @brief set up the backlight level to the given level.
+ * @param root the window's screen which will be set.
+ * @param level of the backlight between 0 and 1
+ */
+
+EAPI void
+ecore_x_randr_screen_backlight_level_set(Ecore_X_Window root,
+ double level)
+{
+#ifdef ECORE_XRANDR
+ RANDR_CHECK_1_2_RET();
+ Atom _backlight;
+ XRRScreenResources *resources = NULL;
+ Ecore_X_Randr_Output output;
+ int o;
+
+ if ((level < 0) || (level > 1))
+ {
+ ERR("Wrong value for the backlight level. It should be between 0 and 1.");
+ return;
+ }
+
+ /*
+ * To make sure that the _backlight atomic property still exists.
+ */
+ _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
+ if (_backlight == None)
+ {
+ WRN("Backlight setting is not supported on this server or driver");
+ return;
+ }
+
+ /* get the ressources */
+ resources = _ecore_x_randr_get_screen_resources(_ecore_x_disp, root);
+ if (!resources) return;
+
+ for (o = 0; o < resources->noutput; o++)
+ {
+ output = resources->outputs[o];
+ if (ecore_x_randr_output_backlight_level_get(root, output) >= 0)
+ {
+ ecore_x_randr_output_backlight_level_set(root, output, level);
+ }
+ }
+ XRRFreeScreenResources(resources);
+#endif
+}
+
+/*
+ * @brief get the backlight level of the given output
+ * @param root window which's screen should be queried
+ * @param output from which the backlight level should be retrieved
+ * @return the backlight level
+ */
+
+EAPI double
+ecore_x_randr_output_backlight_level_get(Ecore_X_Window root,
+ Ecore_X_Randr_Output output)
+{
+#ifdef ECORE_XRANDR
+ RANDR_CHECK_1_2_RET(-1);
+ Atom actual_type;
+ Atom _backlight;
+ XRRPropertyInfo *info = NULL;
+ double dvalue;
+ int actual_format;
+ long value, max, min;
+ unsigned long nitems;
+ unsigned long bytes_after;
+ unsigned char *prop = NULL;
+
+ /* set backlight variable if not already done */
+
+ _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
+ if (_backlight == None)
+ {
+ ERR("Backlight property is not suppported on this server or driver");
+ return -1;
+ }
+
+ if (!_ecore_x_randr_output_validate(root, output))
+ {
+ ERR("Invalid output");
+ return -1;
+ }
+
+ if (XRRGetOutputProperty(_ecore_x_disp, output, _backlight,
+ 0, 4, False, False, None,
+ &actual_type, &actual_format,
+ &nitems, &bytes_after, &prop) != Success)
+ {
+ WRN("Backlight not supported on this output");
+ return -1;
+ }
+
+ if ((actual_type != XA_INTEGER) || (nitems != 1) || (actual_format != 32)) return -1;
+
+ value = *((long *)prop);
+ free (prop);
+
+ /* I have the current value of the backlight */
+ /* Now retrieve the min and max intensities of the output */
+ info = XRRQueryOutputProperty(_ecore_x_disp, output, _backlight);
+ if (info)
+ {
+ dvalue = -1;
+ if ((info->range) && (info->num_values == 2))
+ {
+ /* finally convert the current value in the interval [0..1] */
+ min = info->values[0];
+ max = info->values[1];
+ dvalue = ((double)(value - min)) / ((double)(max - min));
+ }
+ free(info);
+ return dvalue;
+ }
+#endif
+ return -1;
+}
+
+/*
+ * @brief set the backlight level of a given output
+ * @param root window which's screen should be queried
+ * @param output that should be set
+ * @param level for which the backlight should be set
+ * @return EINA_TRUE in case of success
+ */
+
+EAPI Eina_Bool
+ecore_x_randr_output_backlight_level_set(Ecore_X_Window root,
+ Ecore_X_Randr_Output output,
+ double level)
+{
+#ifdef ECORE_XRANDR
+ RANDR_CHECK_1_2_RET(EINA_FALSE);
+ Atom _backlight;
+ XRRPropertyInfo *info = NULL;
+ double min, max, tmp;
+ long new;
+
+ if ((level < 0) || (level > 1))
+ {
+ ERR("Backlight level should be between 0 and 1");
+ return EINA_FALSE;
+ }
+
+ if (!_ecore_x_randr_output_validate(root, output))
+ {
+ ERR("Wrong output value");
+ return EINA_FALSE;
+ }
+
+ _backlight = XInternAtom(_ecore_x_disp, RANDR_PROPERTY_BACKLIGHT, True);
+ if (_backlight == None)
+ {
+ WRN("Backlight property is not suppported on this server or driver");
+ return EINA_FALSE;
+ }
+
+ info = XRRQueryOutputProperty(_ecore_x_disp, output, _backlight);
+ if (info)
+ {
+ if ((info->range) && (info->num_values == 2))
+ {
+ min = info->values[0];
+ max = info->values[1];
+ tmp = (level * (max - min)) + min;
+ new = tmp;
+ if (new > max) new = max;
+ if (new < min) new = min;
+ XRRChangeOutputProperty(_ecore_x_disp, output, _backlight, XA_INTEGER, 32,
+ PropModeReplace, (unsigned char *)&new, 1);
+ XFlush(_ecore_x_disp);
+ }
+ free(info);
+ return EINA_TRUE;
+ }
+#endif
+ return EINA_FALSE;
+}
+++ /dev/null
-\r
- This folder content:\r
-\r
- common - common sources necessary to build efl with MSVC\r
- config.h - configuration file\r
-\r
- vs9 - Visual Studio 9 project files\r
- ecore.sln - Evil MSVC solution\r
- libecore.vcproj - libecore project\r
- libecore_evas.vcproj - libecore project\r
- libecore_file.vcproj - libecore project\r
- libecore_input.vcproj - libecore project\r
- libecore_input_evas.vcproj - libecore project\r
- libecore_win32.vcproj - libecore project\r
-\r
- start.bat - batch script to start work with the solution\r
- MANIFEST.txt - this file\r
- README.txt - about this folder\r
+++ /dev/null
- This folder contains Microsoft Visual Studio projects and some sources for\r
- building Evil.\r
-\r
-Important:\r
-\r
- Do not launch manually any solutions or projects in the folder, to start\r
- a solution run the start.bat script, it will setup environment for\r
- projects and will check system requirements. start.bat will detect\r
- automatically the version of Visual Studio which is installed. It\r
- currently supports Visual Studio 2008, Visual Studio 2010 should convert\r
- the files.\r
-\r
- Before start make sure that the EXT_DIR variable points to proper\r
- extern directory. Extern directory layout and content (may be different, but\r
- this is guaranteed to be enough):\r
-\r
- extern\r
- bin\r
- freetype6.dll\r
- iconv.dll\r
- jpeg62.dll\r
- libpng14.dll\r
- libtiff3.dll\r
- libungif4.dll\r
- zlib1.dll\r
-\r
- include\r
- freetype\r
- ... (freetype includes)\r
- sys\r
- param.h\r
-\r
- ft2build.h\r
- gif_lib.h\r
- iconv.h\r
- jconfig.h\r
- jerror.h\r
- jmorecfg.h\r
- jpeglib.h\r
- png.h\r
- pngconf.h\r
- tiff.h\r
- tiffconf.h\r
- tiffio.h\r
- tiffvers.h\r
- zconf.h\r
- zlib.h\r
-\r
- lib\r
- freetype.lib\r
- iconv.lib\r
- jpeg.lib\r
- libpng.lib\r
- libtiff.lib\r
- libungif.lib\r
- zlib.lib\r
+++ /dev/null
-/* config.h. Generated from config.h.in by configure. */
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define if building universal (internal helper macro) */
-/* #undef AC_APPLE_UNIVERSAL_BUILD */
-
-/* Build Ecore_Cocoa Module */
-/* #undef BUILD_ECORE_COCOA */
-
-/* Build Ecore_Con Module */
-/* #undef BUILD_ECORE_CON */
-
-/* Build Ecore_DirectFB Module */
-/* #undef BUILD_ECORE_DIRECTFB */
-
-/* Build Ecore_Evas Module */
-#define BUILD_ECORE_EVAS 1
-
-/* Support for Cocoa Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_COCOA */
-
-/* Support for Direct3d Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_DIRECT3D */
-
-/* Support for DirectFB Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_DIRECTFB */
-
-/* Support for Linux Framebuffer Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_FB */
-
-/* Support for Glew OpenGL Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_OPENGL_GLEW */
-
-/* Support for OpenGL SDL Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_OPENGL_SDL */
-
-/* Support for OpenGL Xlib Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_OPENGL_X11 */
-
-/* Support for SVN SDL */
-/* #undef BUILD_ECORE_EVAS_SDL_130 */
-
-/* Support for 16 bpp Software DirectDraw Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW */
-
-/* Support for 16 bpp Software Windows CE Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE */
-
-/* Support for Software Xlib 16 bits Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
-
-/* Support for Software 8bit X11 Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_8_X11 */
-
-/* Support for Software Buffer Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_SOFTWARE_BUFFER 1
-
-/* Support for Software DirectDraw Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_SOFTWARE_DDRAW 1
-
-/* Support for Software GDI Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_SOFTWARE_GDI 1
-
-/* Support for Software SDL Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_SDL */
-
-/* Support for Software X11 Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_X11 */
-
-/* Evas Software XCB Engine Support */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_XCB */
-
-/* Evas Software Xlib Engine Support */
-/* #undef BUILD_ECORE_EVAS_SOFTWARE_XLIB */
-
-/* Support for Win32 Engine in Ecore_Evas */
-#define BUILD_ECORE_EVAS_WIN32 1
-
-/* Support for X Window Engines in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_X11 */
-
-/* Support for XRender Xlib Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_XRENDER_X11 */
-
-/* Support for XRender XCB Engine in Ecore_Evas */
-/* #undef BUILD_ECORE_EVAS_XRENDER_XCB */
-
-/* Build Ecore_FB Module */
-/* #undef BUILD_ECORE_FB */
-
-/* Build Ecore_File Module */
-#define BUILD_ECORE_FILE 1
-
-/* Build Ecore_Imf Module */
-#define BUILD_ECORE_IMF 1
-
-/* Build Ecore_Imf_Evas Module */
-#define BUILD_ECORE_IMF_EVAS 1
-
-/* Build Ecore_Input Module */
-#define BUILD_ECORE_INPUT 1
-
-/* Build Ecore_Input_Evas Module */
-#define BUILD_ECORE_INPUT_EVAS 1
-
-/* Build Ecore_Ipc Module */
-/* #undef BUILD_ECORE_IPC */
-
-/* Build Ecore_Sdl Module */
-/* #undef BUILD_ECORE_SDL */
-
-/* Build Ecore_Win32 Module */
-#define BUILD_ECORE_WIN32 1
-
-/* Build Ecore_WinCE Module */
-/* #undef BUILD_ECORE_WINCE */
-
-/* Build Ecore_X Module */
-/* #undef BUILD_ECORE_X */
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
- */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define to 1 if using `alloca.c'. */
-/* #undef C_ALLOCA */
-
-/* Build support for XCB composite */
-/* #undef ECORE_XCB_COMPOSITE */
-
-/* Build support for XCB damage */
-/* #undef ECORE_XCB_DAMAGE */
-
-/* Build support for XCB dpms */
-/* #undef ECORE_XCB_DPMS */
-
-/* Build support for XCB xfixes */
-/* #undef ECORE_XCB_FIXES */
-
-/* Build support for XCB randr */
-/* #undef ECORE_XCB_RANDR */
-
-/* Build support for XCB render */
-/* #undef ECORE_XCB_RENDER */
-
-/* Build support for XCB screensaver */
-/* #undef ECORE_XCB_SCREENSAVER */
-
-/* Build support for XCB shape */
-/* #undef ECORE_XCB_SHAPE */
-
-/* Build support for XCB sync */
-/* #undef ECORE_XCB_SYNC */
-
-/* Build support for XCB xinerama */
-/* #undef ECORE_XCB_XINERAMA */
-
-/* Build support for XCB xprint */
-/* #undef ECORE_XCB_XPRINT */
-
-/* Build support for XCB xtest */
-/* #undef ECORE_XCB_XTEST */
-
-/* Build support for Xcomposite */
-/* #undef ECORE_XCOMPOSITE */
-
-/* Build support for Xcursor */
-/* #undef ECORE_XCURSOR */
-
-/* Build support for Xdamage */
-/* #undef ECORE_XDAMAGE */
-
-/* Build support for Xdpms */
-/* #undef ECORE_XDPMS */
-
-/* Build support for Xfixes */
-/* #undef ECORE_XFIXES */
-
-/* Build support for Xi2 */
-/* #undef ECORE_XI2 */
-
-/* Build support for Xinerama */
-/* #undef ECORE_XINERAMA */
-
-/* Build support for Xkb */
-/* #undef ECORE_XKB */
-
-/* Build support for Xprint */
-/* #undef ECORE_XPRINT */
-
-/* Build support for Xrandr */
-/* #undef ECORE_XRANDR */
-
-/* Build support for Xrender */
-/* #undef ECORE_XRENDER */
-
-/* Build support for Xss */
-/* #undef ECORE_XSS */
-
-/* Build support for Xtest */
-/* #undef ECORE_XTEST */
-
-/* Define to mention that POSIX threads are supported */
-/* #define EFL_HAVE_PTHREAD 1 */
-
-/* Define to mention that POSIX threads spinlocks are supported */
-/* #undef EFL_HAVE_PTHREAD_SPINLOCK */
-
-/* if set, logging is limited to this amount. */
-/* #undef EINA_LOG_LEVEL_MAXIMUM */
-
-/* Enable X Input Method */
-#define ENABLE_XIM 1
-
-/* Always integrate glib if support compiled */
-/* #undef GLIB_INTEGRATION_ALWAYS */
-
-/* Have abstract sockets namespace */
-#define HAVE_ABSTRACT_SOCKETS 1
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-/* #undef HAVE_ARPA_INET_H */
-
-/* Define to 1 if you have the <arpa/nameser.h> header file. */
-/* #undef HAVE_ARPA_NAMESER_H */
-
-/* mkdirat exists */
-/* #undef HAVE_ATFILE_SOURCE */
-
-/* Build Ecore_Con_Info with c-ares support */
-/* #undef HAVE_CARES */
-
-/* Downloading with CURL */
-/* #undef HAVE_CURL */
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Defined to 1 if XCB is enabled. */
-/* #undef HAVE_ECORE_X_XCB */
-
-/* Defined to 1 if Xlib is enabled. */
-/* #undef HAVE_ECORE_X_XLIB */
-
-/* Set to 1 if Evil library is installed */
-#define HAVE_EVIL 1
-
-/* Define to 1 if you have the <features.h> header file. */
-/* #undef HAVE_FEATURES_H */
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Have GLib */
-/* #undef HAVE_GLIB */
-
-/* File monitoring with Inotify */
-/* #undef HAVE_INOTIFY */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the <langinfo.h> header file. */
-/* #undef HAVE_LANGINFO_H */
-
-/* Define to 1 if you have the <locale.h> header file. */
-/* #undef HAVE_LOCALE_H */
-
-/* Gather memory statistic */
-/* #undef HAVE_MALLINFO */
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mkdirat' function. */
-/* #undef HAVE_MKDIRAT */
-
-/* Define to 1 if you have the <netdb.h> header file. */
-/* #undef HAVE_NETDB_H */
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-/* #undef HAVE_NETINET_IN_H */
-
-/* Define to 1 if you have the <netinet/tcp.h> header file. */
-/* #undef HAVE_NETINET_TCP_H */
-
-/* File monitoring with Windows notification */
-#define HAVE_NOTIFY_WIN32 1
-
-/* File monitoring with polling */
-#define HAVE_POLL 1
-
-/* Define to 1 if you have the <signal.h> header file. */
-/* #undef HAVE_SIGNAL_H */
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strlcpy' function. */
-/* #undef HAVE_STRLCPY */
-
-/* Define to 1 if you have the <sys/epoll.h> header file. */
-/* #undef HAVE_SYS_EPOLL_H */
-
-/* File monitoring with Inotify - sys/inotify.h */
-/* #undef HAVE_SYS_INOTIFY */
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#define HAVE_SYS_MMAN_H 1
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-/* #undef HAVE_SYS_RESOURCE_H */
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-/* #undef HAVE_SYS_SOCKET_H */
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/un.h> header file. */
-/* #undef HAVE_SYS_UN_H */
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-/* #undef HAVE_SYS_WAIT_H */
-
-/* Build Ecore_FB Touchscreen Code */
-/* #undef HAVE_TSLIB */
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#define HAVE_WS2TCPIP_H 1
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#define LT_OBJDIR ".libs/"
-
-/* Name of package */
-#define PACKAGE "ecore"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "enlightenment-devel@lists.sourceforge.net"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "ecore"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "ecore 1.0.0"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "ecore"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.0.0"
-
-/* default value since PATH_MAX is not defined */
-/* #undef PATH_MAX */
-
-/* The size of `int', as computed by sizeof. */
-#define SIZEOF_INT 4
-
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 4
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at runtime.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
-/* #undef STACK_DIRECTION */
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-
-/* Version number of package */
-#define VERSION "1.0.0"
-
-/* Major version */
-#define VERS_MAJ 1
-
-/* Micro version */
-#define VERS_MIC 0
-
-/* Minor version */
-#define VERS_MIN 0
-
-/* Revison */
-#define VERS_REV 0
+++ /dev/null
-@echo off\r
-\r
-rem Set external libraries directory.\r
-set EXT_DIR=%cd%\..\..\..\extern\r
-\r
-if not exist %EXT_DIR% (\r
- set EXT_DIR=\r
- echo ERROR: External libs dir is not set.\r
- pause\r
- goto END\r
-)\r
-\r
-if "%DXSDK_DIR%" == "" (\r
- echo ERROR: Microsoft DirectX SDK is not installed.\r
- pause\r
- goto END\r
-)\r
-\r
-rem Check for basic requirements for Visual Studio 2008\r
-if "%VS90COMNTOOLS%" == "" (\r
- echo ERROR: Microsoft Visual Studio 2008 is not installed.\r
- echo ERROR: Try to launch Microsoft Visual Studio 2005.\r
- pause\r
- goto NOVS9\r
-)\r
-\r
-set PROJECT_TYPE=vs9\r
-set VSCOMMONTOOLS=%VS90COMNTOOLS%vsvars32.bat\r
-\r
-goto STARTVS\r
-\r
-:NOVS9\r
-\r
-rem Check for basic requirements for Visual Studio 2005\r
-if "%VS80COMNTOOLS%" == "" (\r
- echo ERROR: Microsoft Visual Studio 2005 is not installed.\r
- pause\r
- goto END\r
-)\r
-\r
-set PROJECT_TYPE=vs8\r
-set VSCOMMONTOOLS=%VS80COMNTOOLS%vsvars32.bat\r
-\r
-rem Patching Eina\r
-patch.exe --binary -p1 < %cd%\patch\eina.diff\r
-echo INFO: Eina patched.\r
-\r
-pause\r
-\r
-:STARTVS\r
-\r
-rem Setup common Win32 environment variables\r
-\r
-rem Add DirectX includes and libraries dirs.\r
-set INCLUDE=%DXSDK_DIR%Include;%INCLUDE%\r
-set LIB=%DXSDK_DIR%Lib\x86;%LIB%\r
-\r
-rem Add Evil lib path\r
-set EvilInclude=%cd%\..\..\evil\src\lib\r
-set EvilCommon=%cd%\..\..\evil\win32\common\r
-set EvilOut=%cd%\..\..\evil\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EvilCommon%;%EvilInclude%;%EvilInclude%\dlfcn;%INCLUDE%\r
-set LIB=%EvilOut%;%LIB%\r
-\r
-rem Add Eina lib path\r
-set EinaInclude=%cd%\..\..\eina\src\include\r
-set EinaCommon=%cd%\..\..\eina\win32\common\r
-set EinaOut=%cd%\..\..\eina\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EinaInclude%;%EinaCommon%;%INCLUDE%\r
-set LIB=%EinaOut%;%LIB%\r
-\r
-rem Add Eet lib path\r
-set EetInclude=%cd%\..\..\eet\src\lib\r
-set EetOut=%cd%\..\..\eet\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EetInclude%;%INCLUDE%\r
-set LIB=%EetOut%;%LIB%\r
-\r
-rem Add Evas lib path\r
-set EvasInclude=%cd%\..\..\evas\src\lib;%cd%\..\..\evas\src\modules\engines\buffer;%cd%\..\..\evas\src\modules\engines\software_gdi;%cd%\..\..\evas\src\modules\engines\software_ddraw\r
-set EvasOut=%cd%\..\..\evas\win32\%PROJECT_TYPE%\out\r
-\r
-set INCLUDE=%EvasInclude%;%INCLUDE%\r
-set LIB=%EvasOut%;%LIB%\r
-\r
-rem Add installation directory pathes.\r
-set INCLUDE=%EXT_DIR%\include;%INCLUDE%\r
-set LIB=%EXT_DIR%\lib;%LIB%\r
-\r
-set INCLUDE=%cd%\common;%cd%\..\src\lib\ecore;%cd%\..\src\lib\ecore_input;%cd%\..\src\lib\ecore_input_evas;%cd%\..\src\lib\ecore_win32;%INCLUDE%\r
-\r
-set SolutionDirectory=%cd%\%PROJECT_TYPE%\r
-set DebugOutputDirectory=%SolutionDirectory%\out\r
-set ReleaseOutputDirectory=%SolutionDirectory%\out\r
-set DebugLibraryDirectory=%SolutionDirectory%\out\r
-set ReleaseLibraryDirectory=%SolutionDirectory%\out\r
-set TemporaryDirectory=%SolutionDirectory%\temp\r
-\r
-rem Setting environment for using Microsoft Visual Studio x86 tools.\r
-call "%VSCOMMONTOOLS%"\r
-\r
-%PROJECT_TYPE%\ecore.sln\r
-\r
-:END\r
+++ /dev/null
-\r
-Microsoft Visual Studio Solution File, Format Version 10.00\r
-# Visual Studio 2008\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore", "libecore.vcproj", "{689B4F2B-666D-439F-9BF3-1203D813DE3F}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_win32", "libecore_win32.vcproj", "{3266A791-E050-48C1-A114-798B98CAB12C}"\r
- ProjectSection(ProjectDependencies) = postProject\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
- {1EA2B2BF-E021-4611-AEEC-5EED621347B6} = {1EA2B2BF-E021-4611-AEEC-5EED621347B6}\r
- EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_evas", "libecore_evas.vcproj", "{DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}"\r
- ProjectSection(ProjectDependencies) = postProject\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
- {3F8D2B53-364C-40A4-9F0E-18C134010223} = {3F8D2B53-364C-40A4-9F0E-18C134010223}\r
- {3266A791-E050-48C1-A114-798B98CAB12C} = {3266A791-E050-48C1-A114-798B98CAB12C}\r
- EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_file", "libecore_file.vcproj", "{EAD9796F-A372-4505-8BF6-520AA6686F27}"\r
- ProjectSection(ProjectDependencies) = postProject\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
- EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_input", "libecore_input.vcproj", "{1EA2B2BF-E021-4611-AEEC-5EED621347B6}"\r
- ProjectSection(ProjectDependencies) = postProject\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F}\r
- EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libecore_input_evas", "libecore_input_evas.vcproj", "{3F8D2B53-364C-40A4-9F0E-18C134010223}"\r
- ProjectSection(ProjectDependencies) = postProject\r
- {1EA2B2BF-E021-4611-AEEC-5EED621347B6} = {1EA2B2BF-E021-4611-AEEC-5EED621347B6}\r
- EndProjectSection\r
-EndProject\r
-Global\r
- GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
- Debug|Win32 = Debug|Win32\r
- Release|Win32 = Release|Win32\r
- EndGlobalSection\r
- GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.Build.0 = Debug|Win32\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.ActiveCfg = Release|Win32\r
- {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.Build.0 = Release|Win32\r
- {3266A791-E050-48C1-A114-798B98CAB12C}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {3266A791-E050-48C1-A114-798B98CAB12C}.Debug|Win32.Build.0 = Debug|Win32\r
- {3266A791-E050-48C1-A114-798B98CAB12C}.Release|Win32.ActiveCfg = Release|Win32\r
- {3266A791-E050-48C1-A114-798B98CAB12C}.Release|Win32.Build.0 = Release|Win32\r
- {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Debug|Win32.Build.0 = Debug|Win32\r
- {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Release|Win32.ActiveCfg = Release|Win32\r
- {DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}.Release|Win32.Build.0 = Release|Win32\r
- {EAD9796F-A372-4505-8BF6-520AA6686F27}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {EAD9796F-A372-4505-8BF6-520AA6686F27}.Debug|Win32.Build.0 = Debug|Win32\r
- {EAD9796F-A372-4505-8BF6-520AA6686F27}.Release|Win32.ActiveCfg = Release|Win32\r
- {EAD9796F-A372-4505-8BF6-520AA6686F27}.Release|Win32.Build.0 = Release|Win32\r
- {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Debug|Win32.Build.0 = Debug|Win32\r
- {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Release|Win32.ActiveCfg = Release|Win32\r
- {1EA2B2BF-E021-4611-AEEC-5EED621347B6}.Release|Win32.Build.0 = Release|Win32\r
- {3F8D2B53-364C-40A4-9F0E-18C134010223}.Debug|Win32.ActiveCfg = Debug|Win32\r
- {3F8D2B53-364C-40A4-9F0E-18C134010223}.Debug|Win32.Build.0 = Debug|Win32\r
- {3F8D2B53-364C-40A4-9F0E-18C134010223}.Release|Win32.ActiveCfg = Release|Win32\r
- {3F8D2B53-364C-40A4-9F0E-18C134010223}.Release|Win32.Build.0 = Release|Win32\r
- EndGlobalSection\r
- GlobalSection(SolutionProperties) = preSolution\r
- HideSolutionNode = FALSE\r
- EndGlobalSection\r
-EndGlobal\r
+++ /dev/null
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="libecore"\r
- ProjectGUID="{689B4F2B-666D-439F-9BF3-1203D813DE3F}"\r
- RootNamespace="libecore"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="131072"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(DebugOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=_stricmp;finite=_finite;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS;HAVE_GETTIMEOFDAY;EFL_HAVE_THREADS;EFL_HAVE_WIN32_THREADS"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libeina.lib libevil.lib ws2_32.lib"\r
- OutputFile="$(OutDir)\libecore.dll"\r
- LinkIncremental="2"\r
- AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(ReleaseOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=_stricmp;finite=_finite;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS;HAVE_GETTIMEOFDAY;EFL_HAVE_THREADS;EFL_HAVE_WIN32_THREADS"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libeina.lib libevil.lib ws2_32.lib"\r
- OutputFile="$(OutDir)\libecore.dll"\r
- LinkIncremental="1"\r
- AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Header Files"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore\Ecore.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\Ecore_Getopt.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_private.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_anim.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_app.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_events.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_exe_win32.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_getopt.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_glib.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_idle_enterer.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_idle_exiter.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_idler.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_job.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_main.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_pipe.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_poll.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_thread.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_time.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore\ecore_timer.c"\r
- >\r
- </File>\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="libecore_evas"\r
- ProjectGUID="{DE0016EC-1096-42FF-A2BA-BDCFD3A95E50}"\r
- RootNamespace="libecore_evas"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="131072"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(DebugOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;BUILD_ECORE_WIN32;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libevas.lib libeina.lib libevil.lib"\r
- OutputFile="$(OutDir)\libecore_evas.dll"\r
- LinkIncremental="2"\r
- AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(ReleaseOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;BUILD_ECORE_WIN32;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libevas.lib libeina.lib libevil.lib"\r
- OutputFile="$(OutDir)\libecore_evas.dll"\r
- LinkIncremental="1"\r
- AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Header Files"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_evas\Ecore_Evas.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_evas\ecore_evas_private.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_evas\ecore_evas.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_evas\ecore_evas_buffer.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_evas\ecore_evas_win32.c"\r
- >\r
- </File>\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="libecore_file"\r
- ProjectGUID="{EAD9796F-A372-4505-8BF6-520AA6686F27}"\r
- RootNamespace="libecore_file"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="131072"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(DebugOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_FILE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libecore.lib libeina.lib libevil.lib"\r
- OutputFile="$(OutDir)\libecore_file.dll"\r
- LinkIncremental="2"\r
- AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(ReleaseOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_FILE_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libecore.lib libeina.lib libevil.lib"\r
- OutputFile="$(OutDir)\libecore_file.dll"\r
- LinkIncremental="1"\r
- AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Header Files"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\Ecore_File.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file_private.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file_download.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file_monitor.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file_monitor_poll.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file_monitor_win32.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_file\ecore_file_path.c"\r
- >\r
- </File>\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="libecore_input"\r
- ProjectGUID="{1EA2B2BF-E021-4611-AEEC-5EED621347B6}"\r
- RootNamespace="libecore_input"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="196613"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(DebugOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_BUILD;DLL_EXPORT;inline=__inline;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libecore.lib libeina.lib"\r
- OutputFile="$(OutDir)\libecore_input.dll"\r
- LinkIncremental="2"\r
- AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(ReleaseOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_BUILD;DLL_EXPORT;inline=__inline;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__="\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libecore.lib libeina.lib"\r
- OutputFile="$(OutDir)\libecore_input.dll"\r
- LinkIncremental="1"\r
- AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Fichiers sources"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_input\ecore_input.c"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Fichiers d'en-tête"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_input\Ecore_Input.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_input\ecore_input_private.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Fichiers de ressources"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="libecore_input_evas"\r
- ProjectGUID="{3F8D2B53-364C-40A4-9F0E-18C134010223}"\r
- RootNamespace="libecore_input_evas"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="196613"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(DebugOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libecore.lib libecore_input.lib libevas.lib libeina.lib"\r
- OutputFile="$(OutDir)\libecore_input_evas.dll"\r
- LinkIncremental="2"\r
- AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(ReleaseOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_INPUT_EVAS_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libecore.lib libecore_input.lib libevas.lib libeina.lib"\r
- OutputFile="$(OutDir)\libecore_input_evas.dll"\r
- LinkIncremental="1"\r
- AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Fichiers sources"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_input_evas\ecore_input_evas.c"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Fichiers d'en-tête"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_input_evas\Ecore_Input_Evas.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_input_evas\ecore_input_evas_private.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Fichiers de ressources"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r
+++ /dev/null
-<?xml version="1.0" encoding="windows-1251"?>\r
-<VisualStudioProject\r
- ProjectType="Visual C++"\r
- Version="9,00"\r
- Name="libecore_win32"\r
- ProjectGUID="{3266A791-E050-48C1-A114-798B98CAB12C}"\r
- RootNamespace="libecore_win32"\r
- Keyword="Win32Proj"\r
- TargetFrameworkVersion="131072"\r
- >\r
- <Platforms>\r
- <Platform\r
- Name="Win32"\r
- />\r
- </Platforms>\r
- <ToolFiles>\r
- </ToolFiles>\r
- <Configurations>\r
- <Configuration\r
- Name="Debug|Win32"\r
- OutputDirectory="$(DebugOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- Optimization="0"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EFL_ECORE_WIN32_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
- MinimalRebuild="true"\r
- BasicRuntimeChecks="3"\r
- RuntimeLibrary="3"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="4"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libeina.lib"\r
- OutputFile="$(OutDir)\libecore_win32.dll"\r
- LinkIncremental="2"\r
- AdditionalLibraryDirectories="$(LIB); $(DebugLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- <Configuration\r
- Name="Release|Win32"\r
- OutputDirectory="$(ReleaseOutputDirectory)"\r
- IntermediateDirectory="$(TemporaryDirectory)\$(TargetName)\$(ConfigurationName)"\r
- ConfigurationType="2"\r
- CharacterSet="0"\r
- WholeProgramOptimization="1"\r
- >\r
- <Tool\r
- Name="VCPreBuildEventTool"\r
- />\r
- <Tool\r
- Name="VCCustomBuildTool"\r
- />\r
- <Tool\r
- Name="VCXMLDataGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCWebServiceProxyGeneratorTool"\r
- />\r
- <Tool\r
- Name="VCMIDLTool"\r
- />\r
- <Tool\r
- Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories="$(INCLUDE)"\r
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EFL_ECORE_WIN32_BUILD;DLL_EXPORT;__CRT_INLINE=__inline;inline=__inline;snprintf=_snprintf_c;strcasecmp=stricmp;HAVE_CONFIG_H;HAVE_EVIL;__UNUSED__=;_CRT_SECURE_NO_WARNINGS"\r
- RuntimeLibrary="2"\r
- UsePrecompiledHeader="0"\r
- WarningLevel="3"\r
- Detect64BitPortabilityProblems="true"\r
- DebugInformationFormat="3"\r
- CompileAs="0"\r
- />\r
- <Tool\r
- Name="VCManagedResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCResourceCompilerTool"\r
- />\r
- <Tool\r
- Name="VCPreLinkEventTool"\r
- />\r
- <Tool\r
- Name="VCLinkerTool"\r
- IgnoreImportLibrary="false"\r
- LinkLibraryDependencies="true"\r
- UseLibraryDependencyInputs="false"\r
- AdditionalDependencies="libeina.lib"\r
- OutputFile="$(OutDir)\libecore_win32.dll"\r
- LinkIncremental="1"\r
- AdditionalLibraryDirectories="$(LIB); $(ReleaseLibraryDirectory)"\r
- AddModuleNamesToAssembly=""\r
- GenerateDebugInformation="true"\r
- SubSystem="2"\r
- OptimizeReferences="2"\r
- EnableCOMDATFolding="2"\r
- RandomizedBaseAddress="1"\r
- DataExecutionPrevention="0"\r
- TargetMachine="1"\r
- />\r
- <Tool\r
- Name="VCALinkTool"\r
- />\r
- <Tool\r
- Name="VCManifestTool"\r
- />\r
- <Tool\r
- Name="VCXDCMakeTool"\r
- />\r
- <Tool\r
- Name="VCBscMakeTool"\r
- />\r
- <Tool\r
- Name="VCFxCopTool"\r
- />\r
- <Tool\r
- Name="VCAppVerifierTool"\r
- />\r
- <Tool\r
- Name="VCPostBuildEventTool"\r
- />\r
- </Configuration>\r
- </Configurations>\r
- <References>\r
- </References>\r
- <Files>\r
- <Filter\r
- Name="Header Files"\r
- Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\Ecore_Win32.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_data_object.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_source.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_target.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_enumformatetc.h"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_private.h"\r
- >\r
- </File>\r
- </Filter>\r
- <Filter\r
- Name="Resource Files"\r
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
- >\r
- </Filter>\r
- <Filter\r
- Name="Source Files"\r
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
- >\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_cursor.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_data_object.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_source.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_drop_target.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_dnd_enumformatetc.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_event.c"\r
- >\r
- </File>\r
- <File\r
- RelativePath="..\..\src\lib\ecore_win32\ecore_win32_window.c"\r
- >\r
- </File>\r
- </Filter>\r
- </Files>\r
- <Globals>\r
- </Globals>\r
-</VisualStudioProject>\r