ocaml-tmk-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ocaml-tmk-devel] Handling xterm resizing


From: Erik de Castro Lopo
Subject: Re: [Ocaml-tmk-devel] Handling xterm resizing
Date: Mon, 1 Nov 2010 15:14:24 +1100

Paul Pelzl wrote:

> On Sun, Oct 31, 2010 at 7:26 PM, Erik de Castro Lopo <
> address@hidden <address@hidden>> wrote:
> 
> > I've just noticed something strange. I do indeed get a KEY_RESIZE
> > character from Curses.getch(), but only after I get another key.
> >
> 
> Could you post your code for this test case?


Code follows.

CHeers,
Erik


let (count, resize) = ref 0, ref 0

let draw_window w =
        assert (Curses.wmove w 0 0) ;
        let text = Printf.sprintf "Key.resize : %d / %d" !resize !count in
        assert (Curses.mvaddstr 10 10 text)

let key_handler w =
        let ch = ref 0 in
        while !ch != 113 do
                count := succ !count ;
                draw_window w ;
                assert (Curses.wrefresh w) ;
                ch := Curses.getch () ;
                if !ch == Curses.Key.resize then
                (       resize := succ !resize ;
                        Curses.clear () ;
                        )
                done

let () =
        Sys.set_signal Sys.sigint Sys.Signal_ignore ;

        let w = Curses.initscr () in

        (       try Curses.winch_handler_on ()
                with Invalid_argument "winch_handler_on" -> ()
                ) ;


        if Curses.has_colors () then
        (       assert (Curses.start_color ()) ;
                assert (Curses.init_pair 1 Curses.Color.white Curses.Color.red)
                ) ;

        assert (Curses.cbreak ()) ;
        assert (Curses.noecho ()) ;
        assert (Curses.intrflush w false) ;
        assert (Curses.keypad w true) ;
        assert (Curses.curs_set 0) ;                            (* hide the 
cursor. *)
        Curses.nonl () ;

        draw_window w ;

        let (trows, tcols) = Curses.get_size () in

        key_handler w ;
        Curses.endwin () ;

        Printf.printf "Term size : %d x %d\n" trows tcols




> 
> Paul


-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]