Class: Gtk::TextBufferExample
- Defined in:
- lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb
Constant Summary collapse
- ARRAY_USE_THESE_COLOURS =
#
ARRAY_USE_THESE_COLOURS
#
%w( red gold green steelblue white )
- CSS_STRING =
#
CSS_STRING
#
<<-EOF /* The following variants do not all seem to work that well ... */ textview { border: none; background-color: white; padding: 8px; border: 8px solid darkblue; border-width: 12px 12px 12px 12px; border-style: solid; border-color: #000; border-radius: 3px; } #scrolledwindow1 { border: 3px solid darkblue; } /* And if you want to style the text as well */ textview text { color: darkgreen; } .larger_font { font-size: 30px; } EOF
Instance Method Summary collapse
-
#add_css_rules ⇒ Object
# === add_css_rules ========================================================================= #.
-
#connect_skeleton ⇒ Object
# === connect_skeleton ========================================================================= #.
-
#consider_allowing_the_text_buffer_to_respond_to_certain_events ⇒ Object
# === consider_allowing_the_text_buffer_to_respond_to_certain_events (event tag) ========================================================================= #.
-
#create_grid ⇒ Object
# === create_grid ========================================================================= #.
-
#create_scrolled_window ⇒ Object
# === create_scrolled_window ========================================================================= #.
-
#create_skeleton ⇒ Object
# === create_skeleton ========================================================================= #.
-
#create_textview ⇒ Object
# === create_textview ========================================================================= #.
-
#initialize(run_already = true) ⇒ TextBufferExample
constructor
# === initialize ========================================================================= #.
-
#reset ⇒ Object
# === reset ========================================================================= #.
-
#return_current_iter ⇒ Object
# === return_current_iter ========================================================================= #.
-
#run ⇒ Object
# === run ========================================================================= #.
Methods inherited from Box
#add_space, #left_aligned_text, #text
Constructor Details
#initialize(run_already = true) ⇒ TextBufferExample
#
initialize
#
57 58 59 60 61 62 63 64 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 57 def initialize( run_already = true ) super(:horizontal) reset add_css_rules run if run_already end |
Instance Method Details
#add_css_rules ⇒ Object
#
add_css_rules
#
159 160 161 162 163 164 165 166 167 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 159 def add_css_rules provider = ::Gtk::CssProvider.new provider.load(data: CSS_STRING) ::Gtk::StyleContext.add_provider_for_screen( Gdk::Screen.default, provider, Gtk::StyleProvider::PRIORITY_APPLICATION ) end |
#connect_skeleton ⇒ Object
#
connect_skeleton
#
139 140 141 142 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 139 def connect_skeleton add(@grid) consider_allowing_the_text_buffer_to_respond_to_certain_events end |
#consider_allowing_the_text_buffer_to_respond_to_certain_events ⇒ Object
#
consider_allowing_the_text_buffer_to_respond_to_certain_events (event tag)
#
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 172 def consider_allowing_the_text_buffer_to_respond_to_certain_events @text_buffer.signal_connect(:delete_range) {|, event| e 'Something was deleted.' } @text_buffer.signal_connect(:changed) {|, event| e 'The cursor position is at: '+ .cursor_position.to_s } @text_buffer.signal_connect('notify::cursor-position') {|, event| e 'The cursor position was changed. It is now at: '+ .cursor_position.to_s } # @text_buffer.signal_connect(:insert_text) {|widget, iter| # widget is text-buffer, logically. @text_view.signal_connect(:key_press_event) {|, event| e 'The key that was added was: '+ Gdk::Keyval.to_name(event.keyval).to_s false } end |
#create_grid ⇒ Object
#
create_grid
#
132 133 134 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 132 def create_grid @grid = ::Gtk::Grid.new end |
#create_scrolled_window ⇒ Object
#
create_scrolled_window
#
147 148 149 150 151 152 153 154 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 147 def create_scrolled_window @scrolled_window = ::Gtk::ScrolledWindow.new @scrolled_window.(true) @scrolled_window.(true) @scrolled_window.set_name('scrolledwindow1') @scrolled_window.shadow_type = :in @scrolled_window.style_context.add_class('larger_font') end |
#create_skeleton ⇒ Object
#
create_skeleton
#
195 196 197 198 199 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 195 def create_skeleton create_grid create_scrolled_window create_textview end |
#create_textview ⇒ Object
#
create_textview
#
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 75 def create_textview @grid.attach(@scrolled_window, 0, 1, 3, 1) @text_view = ::Gtk::TextView.new @text_buffer = @text_view.buffer @text_view.pixels_above_lines = 2 @text_view.pixels_below_lines = 2 @text_view.pixels_inside_wrap = 2 start_iter = @text_buffer.start_iter # Obtain the start iter. @text_buffer.insert(start_iter, 'This is some text ') # Insert some regular text. # ======================================================================= # # Next, insert some markup text - bold text. # ======================================================================= # @text_buffer.insert_markup( @text_buffer.end_iter, "<b>and some bold text</b>", -1 ) @text_buffer.insert_markup( @text_buffer.end_iter, "... <i>and italic, too!</i> \\o/\n\n", -1 ) ARRAY_USE_THESE_COLOURS.each {|entry| @text_buffer.insert_markup( @text_buffer.end_iter, "<span color=\"#{entry}\">This is a test message.</span>\n", -1 ) } iter = return_current_iter @text_buffer.insert(iter, "This is more text that "\ "is just added (appended, actually).\n") iter = return_current_iter darkblue = @text_buffer.create_tag(nil, { foreground: 'darkblue' }) @text_buffer.insert( iter, 'A hyperlink: <a href="blog.fefe.de">here</a>', tags: [darkblue] ) @scrolled_window.add(@text_view) end |
#reset ⇒ Object
#
reset
#
69 70 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 69 def reset end |
#return_current_iter ⇒ Object
#
return_current_iter
#
125 126 127 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 125 def return_current_iter @text_buffer.get_iter_at(offset: -1) end |
#run ⇒ Object
#
run
#
204 205 206 207 |
# File 'lib/gtk_paradise/examples/gtk3/070_text_buffer_example.rb', line 204 def run create_skeleton connect_skeleton end |