@@ -7,6 +7,7 @@ | |||
objects = { | |||
/* Begin PBXFileReference section */ | |||
E68A871110CD1F040047EB17 /* mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mouse.c; path = ../examples/mouse.c; sourceTree = SOURCE_ROOT; }; | |||
E6A7681710B560BB008B6DEC /* caca++.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "caca++.cpp"; path = "../cxx/caca++.cpp"; sourceTree = SOURCE_ROOT; }; | |||
E6A7681810B560BB008B6DEC /* caca++.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "caca++.h"; path = "../cxx/caca++.h"; sourceTree = SOURCE_ROOT; }; | |||
E6A7681910B560BB008B6DEC /* cxxtest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cxxtest.cpp; path = ../cxx/cxxtest.cpp; sourceTree = SOURCE_ROOT; }; | |||
@@ -273,6 +274,7 @@ | |||
E6DB665310AECDF500B6F924 /* truecolor.c */, | |||
E6DB665410AECDF500B6F924 /* unicode.c */, | |||
E6DB663910AECD1F00B6F924 /* trifiller.c */, | |||
E68A871110CD1F040047EB17 /* mouse.c */, | |||
); | |||
name = examples; | |||
sourceTree = "<group>"; | |||
@@ -2,7 +2,7 @@ | |||
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -I$(top_builddir)/caca | |||
noinst_PROGRAMS = trifiller blit canvas colors conio $(conio_snake) demo demo0 dithering driver event export figfont font font2tga frames fullwidth gamma hsv input spritedit swallow text transform truecolor unicode import | |||
noinst_PROGRAMS = trifiller blit canvas colors conio $(conio_snake) demo demo0 dithering driver event export figfont font font2tga frames fullwidth gamma hsv input spritedit swallow text transform truecolor unicode import mouse | |||
if USE_CXX | |||
conio_snake = conio-snake | |||
@@ -94,5 +94,8 @@ unicode_LDADD = ../caca/libcaca.la | |||
import_SOURCES = import.c | |||
import_LDADD = ../caca/libcaca.la | |||
mouse_SOURCES = mouse.c | |||
mouse_LDADD = ../caca/libcaca.la | |||
echo-sources: ; echo $(SOURCES) | |||
@@ -0,0 +1,92 @@ | |||
/* | |||
* mouse libcaca mouse events | |||
* Copyright (c) 2006-2009 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id: mouse.c 3495 2009-05-21 20:55:21Z jylam $ | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
* and/or modify it under the terms of the Do What The Fuck You Want | |||
* To Public License, Version 2, as published by Sam Hocevar. See | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
#include "config.h" | |||
#if !defined(__KERNEL__) | |||
# include <math.h> | |||
# include <string.h> | |||
# include <stdio.h> | |||
#endif | |||
#include "caca.h" | |||
int main(int argc, char *argv[]) | |||
{ | |||
int quit = 0; | |||
int x = 0, y = 0, p = 0, b = 0; | |||
caca_canvas_t *cv; | |||
caca_display_t *dp; | |||
cv = caca_create_canvas(80, 24); | |||
if (cv == NULL) | |||
{ | |||
printf("Failed to create canvas\n"); | |||
return 1; | |||
} | |||
dp = caca_create_display(cv); | |||
if (dp == NULL) | |||
{ | |||
printf("Failed to create display\n"); | |||
return 1; | |||
} | |||
caca_set_display_time(dp, 40000); | |||
caca_set_cursor(dp, 0); | |||
while (!quit) | |||
{ | |||
caca_event_t ev; | |||
while (caca_get_event(dp, CACA_EVENT_ANY, &ev, 0)) | |||
{ | |||
if ((caca_get_event_type(&ev) & CACA_EVENT_KEY_PRESS)) | |||
{ | |||
quit = 1; | |||
} | |||
if (caca_get_event_type(&ev) & CACA_EVENT_MOUSE_MOTION) | |||
{ | |||
x = caca_get_event_mouse_x(&ev); | |||
y = caca_get_event_mouse_y(&ev); | |||
} | |||
if (caca_get_event_type(&ev) & CACA_EVENT_MOUSE_PRESS) | |||
{ | |||
p = 1; | |||
b = caca_get_event_mouse_button(&ev); | |||
} | |||
else if (caca_get_event_type(&ev) & CACA_EVENT_MOUSE_RELEASE) | |||
{ | |||
p = 0; | |||
b = caca_get_event_mouse_button(&ev); | |||
} | |||
} | |||
caca_printf(cv, 0, 0, "%d,%d", x, y); | |||
if (b) | |||
{ | |||
caca_printf(cv, 0, 1, "Mouse button %d %s", b, | |||
p == 1 ? "pressed" : "released"); | |||
} | |||
caca_printf(cv, x - 2, y - 1, " |"); | |||
caca_printf(cv, x - 2, y, "--|--"); | |||
caca_printf(cv, x - 2, y + 1, " |"); | |||
caca_refresh_display(dp); | |||
caca_clear_canvas(cv); | |||
} | |||
caca_free_display(dp); | |||
caca_free_canvas(cv); | |||
return 0; | |||
} |