Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Ncurses Terminal Screen Control Functions : ncurses_getmouse

ncurses_getmouse

Reads mouse event (PHP 4 >= 4.2.0, PHP 5, PECL ncurses:1.0.0)
bool ncurses_getmouse ( array &mevent )

Example 1589. ncurses_getmouse() example

<?php
switch (ncurses_getch()){
 case
NCURSES_KEY_MOUSE:
   if (!
ncurses_getmouse(&$mevent)){
     if (
$mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
       
$mouse_x = $mevent["x"]; // Save mouse position
       
$mouse_y = $mevent["y"];
     }
   }
 break;

 default:
   
/* .... */
}
?>

Code Examples / Notes » ncurses_getmouse

m dot quinton

a working example with mouse, 3 windows  (need to be completed, but it works) ...
<?php
error_reporting(E_ALL);
function win($w, $h, $x, $y, $txt){
// now lets create a small window
$win = ncurses_newwin($w, $h, $x, $y);
// border our small window.
ncurses_wborder($win,0,0, 0,0, 0,0, 0,0);
# ncurses_wrefresh($win);// paint both windows
ncurses_refresh();// paint both windows
// move into the small window and write a string
ncurses_mvwaddstr($win, 0, 1, " $txt ");
ncurses_mvwaddstr($win, 1, 1, "($w, $h, $x, $y)");
// show our handiwork and refresh our small window
ncurses_wrefresh($win);
return $win;
}
// Initialie ncurses
$ncurse = ncurses_init();
// A full screen window
$win0 = win(0, 0, 0, 0, 'win0');
$win1 = win(10, 30, 7, 25, 'win1');
$win2 = win(10, 30, 20, 25, 'win2');
$info = win(15, 20, 2, 2, 'info');
// Draw everything so far
// ncurses_refresh();
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
# $newmask = NCURSES_ALL_MOUSE_EVENTS;
$mask = ncurses_mousemask($newmask, &$oldmask);
$events = array();
while(1){
ncurses_wmove($info, 1,1);
$ch = ncurses_getch();
ncurses_wclear($info);
ncurses_refresh();// paint both windows
ncurses_wborder($info,0,0, 0,0, 0,0, 0,0);
ncurses_refresh();// paint both windows
ncurses_mvwaddstr($win, 0, 1, " info ");
ncurses_refresh();// paint both windows
switch($ch){
case NCURSES_KEY_MOUSE:
if(ncurses_getmouse($mevent)){
$events[] = $mevent;
ncurses_mvwaddstr($info, 2, 1, " mouse event   ");
ncurses_mvwaddstr($info, 3, 1, " ({$mevent['x']}/{$mevent['y']}) ");
ncurses_mvwaddstr($info, 4, 1, " ({$mevent['mmask']}) ");
ncurses_wrefresh($info);
}
break;
case chr('q'):
break 2;
default:
if($ch > 0x40)
$txt = chr($ch) . " $ch ";
else
$txt = '.' . " $ch";
ncurses_mvwaddstr($info, 1, 1, " $txt   ");
ncurses_wrefresh($info);
}
if(chr($ch) == 'q')
break;
}
ncurses_end();// clean up our screen
print_r($events);
?>


Change Language


Follow Navioo On Twitter
ncurses_addch
ncurses_addchnstr
ncurses_addchstr
ncurses_addnstr
ncurses_addstr
ncurses_assume_default_colors
ncurses_attroff
ncurses_attron
ncurses_attrset
ncurses_baudrate
ncurses_beep
ncurses_bkgd
ncurses_bkgdset
ncurses_border
ncurses_bottom_panel
ncurses_can_change_color
ncurses_cbreak
ncurses_clear
ncurses_clrtobot
ncurses_clrtoeol
ncurses_color_content
ncurses_color_set
ncurses_curs_set
ncurses_def_prog_mode
ncurses_def_shell_mode
ncurses_define_key
ncurses_del_panel
ncurses_delay_output
ncurses_delch
ncurses_deleteln
ncurses_delwin
ncurses_doupdate
ncurses_echo
ncurses_echochar
ncurses_end
ncurses_erase
ncurses_erasechar
ncurses_filter
ncurses_flash
ncurses_flushinp
ncurses_getch
ncurses_getmaxyx
ncurses_getmouse
ncurses_getyx
ncurses_halfdelay
ncurses_has_colors
ncurses_has_ic
ncurses_has_il
ncurses_has_key
ncurses_hide_panel
ncurses_hline
ncurses_inch
ncurses_init_color
ncurses_init_pair
ncurses_init
ncurses_insch
ncurses_insdelln
ncurses_insertln
ncurses_insstr
ncurses_instr
ncurses_isendwin
ncurses_keyok
ncurses_keypad
ncurses_killchar
ncurses_longname
ncurses_meta
ncurses_mouse_trafo
ncurses_mouseinterval
ncurses_mousemask
ncurses_move_panel
ncurses_move
ncurses_mvaddch
ncurses_mvaddchnstr
ncurses_mvaddchstr
ncurses_mvaddnstr
ncurses_mvaddstr
ncurses_mvcur
ncurses_mvdelch
ncurses_mvgetch
ncurses_mvhline
ncurses_mvinch
ncurses_mvvline
ncurses_mvwaddstr
ncurses_napms
ncurses_new_panel
ncurses_newpad
ncurses_newwin
ncurses_nl
ncurses_nocbreak
ncurses_noecho
ncurses_nonl
ncurses_noqiflush
ncurses_noraw
ncurses_pair_content
ncurses_panel_above
ncurses_panel_below
ncurses_panel_window
ncurses_pnoutrefresh
ncurses_prefresh
ncurses_putp
ncurses_qiflush
ncurses_raw
ncurses_refresh
ncurses_replace_panel
ncurses_reset_prog_mode
ncurses_reset_shell_mode
ncurses_resetty
ncurses_savetty
ncurses_scr_dump
ncurses_scr_init
ncurses_scr_restore
ncurses_scr_set
ncurses_scrl
ncurses_show_panel
ncurses_slk_attr
ncurses_slk_attroff
ncurses_slk_attron
ncurses_slk_attrset
ncurses_slk_clear
ncurses_slk_color
ncurses_slk_init
ncurses_slk_noutrefresh
ncurses_slk_refresh
ncurses_slk_restore
ncurses_slk_set
ncurses_slk_touch
ncurses_standend
ncurses_standout
ncurses_start_color
ncurses_termattrs
ncurses_termname
ncurses_timeout
ncurses_top_panel
ncurses_typeahead
ncurses_ungetch
ncurses_ungetmouse
ncurses_update_panels
ncurses_use_default_colors
ncurses_use_env
ncurses_use_extended_names
ncurses_vidattr
ncurses_vline
ncurses_waddch
ncurses_waddstr
ncurses_wattroff
ncurses_wattron
ncurses_wattrset
ncurses_wborder
ncurses_wclear
ncurses_wcolor_set
ncurses_werase
ncurses_wgetch
ncurses_whline
ncurses_wmouse_trafo
ncurses_wmove
ncurses_wnoutrefresh
ncurses_wrefresh
ncurses_wstandend
ncurses_wstandout
ncurses_wvline
eXTReMe Tracker