Dobrý den,
jistě znáte dobře ten případ, kdy děláte 2 vlastně totožné věci a jedna funguje - a druhá ne...
Tedy rozdíl tu mám pouze v tom kdo koho volá - ale volají se přesně stejné metody - první volání nastává při inicializaci a druhé (sekundární) - po vstupu z myši.
class Window
attr_accessor :x, :y, :window
def initialize
createWindow 0, 0, 50, 20
@x = 0
@y = 0
end
def createWindow x, y, width, height
@window = Ncurses::WINDOW.new height, width, y, x
@window.border 124, 124, 45, 45, 43, 43, 43, 43
@window.bkgd Ncurses.COLOR_PAIR(2)
@window.refresh
end
def setTitle title
@window.mvprintw 0, 4, title
@window.mvprintw 1, 2, ""
@window.refresh
end
def write content
@window.printw content
@window.refresh
end
end
Po inicializaci se okno bez problémů zobrazí - po kliknutí myší:
when Ncurses::KEY_MOUSE
event = Ncurses::MEVENT.new
Ncurses.getmouse event
if event
if event.bstate & Ncurses::BUTTON1_PRESSED
canvas.screen.clear
windows[0].x = event.x
windows[0].y = event.y
windows[0].window.move windows[0].y, windows[0].x
windows[0].window.refresh
elsif event.bstate & Ncurses::BUTTON3_PRESSED
canvas.screen.clear
width = event.x - windows[0].x
height = event.y - windows[0].y
if event.x < windows[0].x
width = windows[0].x - event.x
windows[0].x = event.x
end
if event.y < windows[0].y
height = windows[0].y - event.y;
windows[0].y = event.y
end
windows[0].createWindow window.x, window.y, width, height
end
end
Co s tím mohu udělat?
(Po myši jen černo.)
Děkuji.