Class: Ncurses::Panel

Inherits:
Object show all
Defined in:
lib/canis/core/system/panel.rb

Overview

making minimal changes as per ffi-ncurses 0.4.0 which implements panels module Canis # too many places call Ncurses::Panel

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(window) ⇒ Panel

< Struct.new(:pointer)



7
8
9
10
11
12
13
# File 'lib/canis/core/system/panel.rb', line 7

def initialize(window)
  if window.respond_to?(:pointer)
    @pointer = FFI::NCurses.new_panel(window.pointer)
  else
    @pointer = FFI::NCurses.new_panel(window)
  end
end

Class Method Details

.method_missing(name, *args) ⇒ Object



121
122
123
124
125
126
# File 'lib/canis/core/system/panel.rb', line 121

def method_missing(name, *args)
  if (FFI::NCurses.respond_to?(name))
    return FFI::NCurses.send(name, *args)
  end
  raise "Panel did not respond_to #{name} "
end

.update_panelsObject

these will be used when you say Ncurses::Panel.del_panel(@panel.pointer) You could directly say FFI:NCurses or even @panel.del_panel.



118
119
120
# File 'lib/canis/core/system/panel.rb', line 118

def update_panels
  FFI::NCurses.update_panels
end

Instance Method Details

#bottom_panelObject Also known as: bottom

Puts panel below all other panels.



19
20
21
# File 'lib/canis/core/system/panel.rb', line 19

def bottom_panel
  FFI::NCurses.bottom_panel(@pointer)
end

#del_panelObject Also known as: del, delete

Remove the panel from the stack and deallocate the PANEL structure. Doesn’t remove the associated window.



109
110
111
# File 'lib/canis/core/system/panel.rb', line 109

def del_panel
  FFI::NCurses.del_panel(@pointer)
end

#hide_panelObject Also known as: hide

Removes the given panel from the panel stack and thus hides it from view. The PANEL structure is not lost, merely removed from the stack.



45
46
47
# File 'lib/canis/core/system/panel.rb', line 45

def hide_panel
  FFI::NCurses.hide_panel(@pointer)
end

#move_panel(starty = 0, startx = 0) ⇒ Object Also known as: move

Move the panel window so that its upper-left corner is at (starty,startx). It does not change the position of the panel in the stack. Be sure to use this method instead of mvwin, to move a panel window.



69
70
71
# File 'lib/canis/core/system/panel.rb', line 69

def move_panel(starty = 0, startx = 0)
  FFI::NCurses.move_panel(@pointer, starty, startx)
end

#panel_aboveObject Also known as: above

Returns pointer to the panel above.



82
83
84
# File 'lib/canis/core/system/panel.rb', line 82

def panel_above
  FFI::NCurses.panel_above(@pointer)
end

#panel_belowObject Also known as: below

Return a pointer to the panel just below panel. If the panel argument is a pointer to 0, it returns a pointer to the top panel in the stack.



90
91
92
# File 'lib/canis/core/system/panel.rb', line 90

def panel_below
  FFI::NCurses.panel_below(@pointer)
end

#panel_hiddenObject Also known as: hidden?

Returns true if the panel is in the panel stack, false if not. Returns ERR if the panel pointer is a null pointer.



76
77
78
# File 'lib/canis/core/system/panel.rb', line 76

def panel_hidden
  FFI::NCurses.panel_hidden(@pointer) == 0
end

#panel_userptrObject Also known as: userptr

Returns the user pointer for a given panel.



96
97
98
# File 'lib/canis/core/system/panel.rb', line 96

def panel_userptr
  FFI::NCurses.panel_userptr(@pointer)
end

#panel_windowObject Also known as: window

Returns a pointer to the window of the given panel.



51
52
53
# File 'lib/canis/core/system/panel.rb', line 51

def panel_window
  FFI::NCurses.panel_window(@pointer)
end

#pointerObject



14
15
16
# File 'lib/canis/core/system/panel.rb', line 14

def pointer
  @pointer
end

#replace_panel(window) ⇒ Object Also known as: replace

Replace the window of the panel with the given window. Useful, for example, if you want to resize a panel. You can call #replace_panel on the output of wresize. It does not change the position of the panel in the stack.



60
61
62
# File 'lib/canis/core/system/panel.rb', line 60

def replace_panel(window)
  FFI::NCurses.replace_panel(@pointer, window)
end

#set_panel_userptr(user_pointer) ⇒ Object Also known as: userptr=

sets the panel’s user pointer.



102
103
104
# File 'lib/canis/core/system/panel.rb', line 102

def set_panel_userptr(user_pointer)
  FFI::NCurses.set_panel_userptr(@pointer, user_pointer)
end

#show_panelObject Also known as: show

Makes hidden panel visible by placing it on the top of the stack.

To ensure compatibility across platforms, use this method instead of #top_panel when the panel is hidden.



37
38
39
# File 'lib/canis/core/system/panel.rb', line 37

def show_panel
  FFI::NCurses.show_panel(@pointer)
end

#top_panelObject Also known as: top

Put the visible panel on top of all other panels in the stack.

To ensure compatibility across platforms, use this method instead of #show_panel when the panel is shown.



28
29
30
# File 'lib/canis/core/system/panel.rb', line 28

def top_panel
  FFI::NCurses.top_panel(@pointer)
end