Odkazy:
Tak a dostali jsme se ke komponentě textového editoru Scintilla.  Tento objekt se jmanuje Wx::StyledTextCtrl.  Scintilla je sofistikovaný editor pro editaci textu.  Má rozsáhlé možnosti nastavení a dovede takové věci jako: barevnou syntaxi, počítání řádků, sbalování a rozbalování bloků kód a mnohé další.
Příklad 40.6. Nejjednodušší editor se Scintillou
#!/usr/bin/env ruby
require 'rubygems'
require 'wx'
class Editor < Wx::Frame
  def initialize
    super nil
    @scintilla = Wx::StyledTextCtrl.new self
  end
end
class App < Wx::App
  def on_init
    frame = Editor.new
    frame.show
  end
end
app = App.new.main_loop
Takto jednoduchý program není použitelný. Neimplementovali jsme ani nejzákladnější dvě oprace, tedy načtění textu ze souboru a zápis textu zpět do souboru.
Nahrávání a zápis do souborů (Load and save to file).
StyledTextCtrl.load_file StyledTextCtrl.save_file
Samotný text mohu do objektu dostat metodami:
StyledTextCtrl.add_text StyledTextCtrl.append_text StyledTextCtrl.insert_text StyledTextCtrl.clear_all
Jednoduché vložení textu pomocí insert_text  je v následující ukázce.  Nejdříve vymažu veškerý stávající obsah pomocí clear_all a poté vložím nový.
def initialize
    super nil
    @scintilla = Wx::StyledTextCtrl.new self
    @scintilla.clear_all
    @scintilla.insert_text(0, 'ěšč Předloha')
endA teď zkusíme načíst soubor. Zatím zadáme jméno přímo do programu.
def initialize
    super nil
    @scintilla = Wx::StyledTextCtrl.new self
    @scintilla.load_file 'redit.rbw'
endNež pokročím dál, potřebuji se naučit odchytávat událost ukončení editoru, a správně na ni zareagovat uložením rozpracovaného souboru.
def initialize
    …
    # Bind events to code and/or methods
    evt_close :on_close
end
def on_close
    puts "Zavírám rámec editoru!"
    destroy
endPokud spouštíme aplikaci na MS Windows pomoci Ruby(GUI), není standardní výstup definován a například příkaz puts způsobí havárii programu.
