Class: FXIrb
- Inherits:
-
FXText
- Object
- FXText
- FXIrb
- Includes:
- Responder, Singleton
- Defined in:
- lib/fxirb.rb
Instance Attribute Summary collapse
-
#input ⇒ Object
readonly
Returns the value of attribute input.
-
#multiline ⇒ Object
Returns the value of attribute multiline.
Class Method Summary collapse
Instance Method Summary collapse
- #create ⇒ Object
- #get_line ⇒ Object
-
#initialize(p, tgt, sel, opts) ⇒ FXIrb
constructor
A new instance of FXIrb.
- #on_exit(&block) ⇒ Object
- #send_command(cmd) ⇒ Object
- #write(obj) ⇒ Object
Constructor Details
#initialize(p, tgt, sel, opts) ⇒ FXIrb
Returns a new instance of FXIrb.
173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/fxirb.rb', line 173 def initialize(p, tgt, sel, opts) FXMAPFUNC(SEL_KEYRELEASE, 0, "onKeyRelease") FXMAPFUNC(SEL_KEYPRESS, 0, "onKeyPress") FXMAPFUNC(SEL_LEFTBUTTONPRESS,0,"onLeftBtnPress") FXMAPFUNC(SEL_MIDDLEBUTTONPRESS,0,"onMiddleBtnPress") FXMAPFUNC(SEL_LEFTBUTTONRELEASE,0,"onLeftBtnRelease") super setFont(FXFont.new(FXApp.instance, "lucida console", 9)) @anchor = 0 end |
Instance Attribute Details
#input ⇒ Object (readonly)
Returns the value of attribute input.
158 159 160 |
# File 'lib/fxirb.rb', line 158 def input @input end |
#multiline ⇒ Object
Returns the value of attribute multiline.
159 160 161 |
# File 'lib/fxirb.rb', line 159 def multiline @multiline end |
Class Method Details
.init(p, tgt, sel, opts) ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/fxirb.rb', line 161 def FXIrb.init(p, tgt, sel, opts) unless @__instance__ Thread.critical = true begin @__instance__ ||= new(p, tgt, sel, opts) ensure Thread.critical = false end end return @__instance__ end |
Instance Method Details
#create ⇒ Object
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/fxirb.rb', line 185 def create super setFocus # IRB initialization @inputAdded = 0 @input = IO.pipe $DEFAULT_OUTPUT = self @im = FXIRBInputMethod.new @irb = Thread.new { IRB.start_in_fxirb(@im) self.crash } @multiline = false @exit_proc = lambda {exit} end |
#get_line ⇒ Object
439 440 441 442 443 444 445 446 447 448 449 |
# File 'lib/fxirb.rb', line 439 def get_line @anchor = getLength if @inputAdded == 0 Thread.stop end @inputAdded -= 1 retval = @input[0].gets # don't print every prompt for multiline input @im.print_prompt = (@inputAdded == 0) return retval end |
#on_exit(&block) ⇒ Object
204 205 206 |
# File 'lib/fxirb.rb', line 204 def on_exit(&block) @exit_proc = block end |
#send_command(cmd) ⇒ Object
423 424 425 426 427 428 429 |
# File 'lib/fxirb.rb', line 423 def send_command(cmd) setCursorPos(getLength) makePositionVisible(getLength) unless isPosVisible(getLength) cmd += "\n" appendText(cmd) process_commandline(cmd) end |
#write(obj) ⇒ Object
431 432 433 434 435 436 437 |
# File 'lib/fxirb.rb', line 431 def write(obj) str = obj.to_s appendText(str) setCursorPos(getLength) makePositionVisible(getLength) unless isPosVisible(getLength) return str.length end |