mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 9eded5fa13
			
		
	
	
		9eded5fa13
		
	
	
	
	
		
			
			colors and key codes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1,011 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1,011 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| #!/usr/local/bin/ruby
 | |
| 
 | |
| require "curses"
 | |
| include Curses
 | |
| 
 | |
| def show_message(*msgs)
 | |
|   message = msgs.join
 | |
|   width = message.length + 6
 | |
|   win = Window.new(5, width,
 | |
| 		   (lines - 5) / 2, (cols - width) / 2)
 | |
|   win.keypad = true
 | |
|   win.attron(color_pair(COLOR_RED)){
 | |
|     win.box(?|, ?-, ?+)
 | |
|   }
 | |
|   win.setpos(2, 3)
 | |
|   win.addstr(message)
 | |
|   win.refresh
 | |
|   win.getch
 | |
|   win.close
 | |
| end
 | |
| 
 | |
| init_screen
 | |
| start_color
 | |
| init_pair(COLOR_BLUE,COLOR_BLUE,COLOR_WHITE)
 | |
| init_pair(COLOR_RED,COLOR_RED,COLOR_WHITE)
 | |
| crmode
 | |
| noecho
 | |
| stdscr.keypad(true)
 | |
| 
 | |
| begin
 | |
|   mousemask(BUTTON1_CLICKED|BUTTON2_CLICKED|BUTTON3_CLICKED|BUTTON4_CLICKED)
 | |
|   setpos((lines - 5) / 2, (cols - 10) / 2)
 | |
|   attron(color_pair(COLOR_BLUE)|A_BOLD){
 | |
|     addstr("click")
 | |
|   }
 | |
|   refresh
 | |
|   while( true )
 | |
|     c = getch
 | |
|     case c
 | |
|     when KEY_MOUSE
 | |
|       m = getmouse
 | |
|       if( m )
 | |
| 	show_message("getch = #{c.inspect}, ",
 | |
| 		     "mouse event = #{'0x%x' % m.bstate}, ",
 | |
| 		     "axis = (#{m.x},#{m.y},#{m.z})")
 | |
|       end
 | |
|       break
 | |
|     end
 | |
|   end
 | |
|   refresh
 | |
| ensure
 | |
|   close_screen
 | |
| end
 |