File: entry_completion.rb

package info (click to toggle)
ruby-gnome2 0.15.0-1.1
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 7,692 kB
  • ctags: 8,558
  • sloc: ansic: 69,912; ruby: 19,511; makefile: 97; xml: 35; sql: 13
file content (63 lines) | stat: -rw-r--r-- 1,569 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
# This program is licenced under the same licence as Ruby-GNOME2.
# $Id: entry_completion.rb,v 1.3 2005/02/25 17:09:24 kzys Exp $
=begin
= Entry Completion (EntryCompletion)

GtkEntryCompletion provides a mechanism for adding support for
completion in GtkEntry.
=end

require 'common'

module Demo
  class EntryCompletion < Gtk::Dialog
    def initialize
      super('GtkEntryCompletion',
	    nil, # parent
	    0,
	    [Gtk::Stock::CLOSE, Gtk::Dialog::RESPONSE_NONE])

      self.resizable = false

      signal_connect('response') do
        self.destroy
      end

      vbox = Gtk::VBox.new(false, 5)
      self.vbox.pack_start(vbox, true, true)
      vbox.border_width = 5

      label = Gtk::Label.new
      label.markup = 'Completion demo, try writing <b>total</b> or <b>gnome</b> for example'
      vbox.pack_start(label, false, false)

      # Create our entry
      entry = Gtk::Entry.new
      vbox.pack_start(entry, false, false)

      # Create the completion object
      completion = Gtk::EntryCompletion.new

      # Assign the completion to the entry
      entry.completion = completion

      # Create a tree model and use it as the completion model
      completion.model = create_completion_model

      # Use model column 0 as the text column
      completion.text_column = 0
    end


    def create_completion_model
      store = Gtk::ListStore.new(String)
      %w(GNOME total totally).each do |word|
        iter = store.append
        iter[0] = word
      end

      store
    end
  end
end