Sample Code 148: How to search for text in GtkTextView - Part 1? |
|
Written by kksou
|
|
Saturday, 20 January 2007 |
|
Problem You want to provide a search field that allow user to search for text in a GtkTextView as shown below:

Solution
Sample Code 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
| <?php $window = new GtkWindow(); $window->set_size_request(400, 240); $window->connect_simple('destroy', array('Gtk','main_quit')); $window->add($vbox = new GtkVBox());
// display title
$title = new GtkLabel("Search for text in GtkTextView - Part 1\n"); $title->modify_font(new PangoFontDescription("Times New Roman Italic 10")); $title->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#0000ff")); $title->set_size_request(-1, 60); $title->set_justify(Gtk::JUSTIFY_CENTER); $alignment = new GtkAlignment(0.5, 0, 0, 0); $alignment->add($title); $vbox->pack_start($alignment, 0, 0); $vbox->pack_start(new GtkLabel(), 0, 0);
$hbox = new GtkHBox(); $hbox->pack_start(new GtkLabel("Search string: "), 0); $hbox->pack_start($entry = new GtkEntry(), 0); $hbox->pack_start($button_search = new GtkButton('Search'), 0); $vbox->pack_start($hbox, 0); $button_search->connect('clicked', 'on_search_button', $entry); // note 1
// Create a new buffer and a new view to show the buffer.
$buffer = new GtkTextBuffer(); $view = new GtkTextView(); $view->set_buffer($buffer); $view->modify_font(new PangoFontDescription("Arial 12")); $view->set_wrap_mode(Gtk::WRAP_WORD);
$scrolled_win = new GtkScrolledWindow(); $scrolled_win->set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $vbox->pack_start($scrolled_win); $scrolled_win->add($view);
|
- Note that this is only 70% of the sample code. You have to be a registered member to see the entire sample code. Please login or register.
- Registration is free and immediate.
- Have some doubt about the registration? Please read this forum article.
Explanation
- Set up the search button.
- Get the start iter.
- The iter that will store the start of match.
- The iter that will store the end of match.
- Search for the text.
- Highlight the text if the text is found.
Note
In the next article, we will add the "Find Next" button.
Related Links
User reviews There are no user reviews yet. Note: You have to be a registered member to leave a comment. Free registration here. |