Esempio n. 1
0
File: caca.php Progetto: dns/libcaca
 function getMouseX()
 {
     return caca_get_event_mouse_x($this->ev);
 }
Esempio n. 2
0
File: demo.php Progetto: dns/libcaca
function main()
{
    $cv = caca_create_canvas(0, 0);
    if (!$cv) {
        die("Error while creating canvas\n");
    }
    $dp = caca_create_display($cv);
    if (!$dp) {
        die("Error while attaching canvas to display\n");
    }
    caca_set_display_time($dp, 40000);
    /* Disable X cursor */
    caca_set_mouse($dp, 0);
    /* Main menu */
    $bounds = $outline = $dithering = 0;
    display_menu($cv, $dp, $bounds, $outline);
    /* Go ! */
    $need_refresh = false;
    $quit = 0;
    while (!$quit) {
        while ($ev = caca_get_event($dp, CACA_EVENT_ANY, 1000)) {
            if (caca_get_event_type($ev) & CACA_EVENT_KEY_PRESS) {
                switch (caca_get_event_key_ch($ev)) {
                    case ord('q'):
                    case ord('Q'):
                    case CACA_KEY_ESCAPE:
                        $demo = false;
                        $quit = 1;
                        break;
                    case ord('o'):
                    case ord('O'):
                        $outline = ($outline + 1) % 3;
                        display_menu($cv, $dp, $bounds, $outline);
                        break;
                    case ord('b'):
                    case ord('B'):
                        $bounds = ($bounds + 1) % 2;
                        display_menu($cv, $dp, $bounds, $outline);
                        break;
                    case ord('d'):
                    case ord('D'):
                        $dithering = ($dithering + 1) % 5;
                        caca_set_feature($cv, $dithering);
                        display_menu($cv, $dp, $bounds, $outline);
                        break;
                    case ord('f'):
                    case ord('F'):
                        demo_go($dp, "demo_all", $cv, $bounds, $outline);
                        break;
                    case ord('1'):
                        demo_go($dp, "demo_dots", $cv, $bounds, $outline);
                        break;
                    case ord('2'):
                        demo_go($dp, "demo_lines", $cv, $bounds, $outline);
                        break;
                    case ord('3'):
                        demo_go($dp, "demo_boxes", $cv, $bounds, $outline);
                        break;
                    case ord('4'):
                        demo_go($dp, "demo_triangles", $cv, $bounds, $outline);
                        break;
                    case ord('5'):
                        demo_go($dp, "demo_ellipses", $cv, $bounds, $outline);
                        break;
                    case ord('s'):
                    case ord('S'):
                        demo_go($dp, "demo_sprites", $cv, $bounds, $outline);
                        break;
                    case ord('r'):
                    case ord('R'):
                        demo_go($dp, "demo_render", $cv, $bounds, $outline);
                        break;
                }
            } else {
                if (caca_get_event_type($ev) & CACA_EVENT_MOUSE_MOTION) {
                    $x = caca_get_event_mouse_x($ev);
                    $y = caca_get_event_mouse_y($ev);
                    display_menu($cv, $dp, $bounds, $outline, false);
                    caca_set_color_ansi($cv, CACA_RED, CACA_BLACK);
                    caca_put_str($cv, $x, $y, ".");
                    caca_put_str($cv, $x, $y + 1, "|\\");
                    $need_refresh = true;
                } else {
                    if (caca_get_event_type($ev) & CACA_EVENT_RESIZE) {
                        display_menu($cv, $dp, $bounds, $outline);
                    }
                }
            }
        }
        if ($need_refresh) {
            caca_refresh_display($dp);
            $need_refresh = false;
        }
    }
}