]>
git.immae.eu Git - perso/Immae/Projets/Ruby/Monitor.git/blob - monitor.rb
4 require_relative
'ini_read'
5 require_relative
'windows'
6 require_relative
'buffer'
8 def make_bufwins(sections
,size
)
10 sections
.each
{ |section_name
,section
|
11 bufwin
= Buff_Win
.new(Ncurses
.COLS()-size
*Ncurses
.COLS()/100,
12 size
*Ncurses
.COLS()/100,
19 def update_buffers(bufwins
)
20 bufwins
.each
do |bufwin
|
25 def redraw_all(list
,bufwins
,curr_bufwin
, size
)
26 bufwins
.each
do |bufwin
|
27 bufwin
.move_resize(Ncurses
.COLS()-size
*Ncurses
.COLS()/100,size*Ncurses.COLS()/100)
29 list
.resize(Ncurses
.LINES(), size
*Ncurses
.COLS()/100)
37 inistruct
= Ini_read
.new()
42 Ncurses
.cbreak
# provide unbuffered input
43 Ncurses
.noecho
# turn off input echoing
44 #Ncurses.nonl # turn off newline translation
45 #Ncurses.stdscr.intrflush(false) # turn off flush-on-interrupt
46 Ncurses
.stdscr
.keypad(true) # turn on keypad mode
47 Ncurses
.init_pair(1, Ncurses
::COLOR_RED, Ncurses
::COLOR_BLACK)
48 Ncurses
.init_pair(10, Ncurses
::COLOR_WHITE, Ncurses
::COLOR_BLACK)
51 list
= List_Win
.new(inistruct
.sections
, inistruct
.global
['list_size'])
52 bufwins
= make_bufwins(inistruct
.sections
, inistruct
.global
['list_size'])
54 cur_bufwin
= bufwins
[entry
]
57 while(ch
= list
.getch()) do
60 entry
= (entry +
1) % bufwins
.length
61 cur_bufwin
= bufwins
[entry
]
63 list
.print_list(entry
=entry
)
65 entry
= (entry
-1) % bufwins
.length
66 cur_bufwin
= bufwins
[entry
]
68 list
.print_list(entry
=entry
)
70 redraw_all(list
,bufwins
,cur_bufwin
, inistruct
.global
['list_size'])
72 cur_bufwin
.update(force
=true)
73 when Ncurses
::KEY_RESIZE
74 redraw_all(list
,bufwins
,cur_bufwin
, inistruct
.global
['list_size'])
75 when Ncurses
::KEY_LEFT
76 cur_bufwin
.hscroll(scroll
=-1)
77 when Ncurses
::KEY_RIGHT
78 cur_bufwin
.hscroll(scroll
=1)
79 when Ncurses
::KEY_DOWN
80 cur_bufwin
.scroll(scroll
=-1)
82 cur_bufwin
.scroll(scroll
=1)
83 when Ncurses
::KEY_NPAGE
84 cur_bufwin
.scroll(scroll
=0,goto
=nil,fact
=-0.75)
85 when Ncurses
::KEY_PPAGE
86 cur_bufwin
.scroll(scroll
=0,goto
=nil,fact
=0.75)
87 when Ncurses
::KEY_HOME
88 cur_bufwin
.scroll(scroll
=0,goto
=1.0)
90 cur_bufwin
.scroll(scroll
=0,goto
=0.0)
92 update_buffers(bufwins
)