Sample Code 522: How to grab focus on GtkEntry in a GtkNotebook page - Part 1 - highlight all text on focus? |
|
Written by kksou
|
|
Monday, 08 September 2008 |
|
Problem This is in response to Tropico's post titled "Finding first gtkentry widget into GtkNotebook page".
He would like to grab_focus on the first GtkEntry widget of one page of the notebook when the page becomes active as shown below:

Solution
- We make use of the technique as described in How to know which tab of GtkNotebook is being clicked on? to know when a new page is active.
- Once we know which tab the user has clicked, we can just grab focus on the GtkEntry associated with that tab.
- In this example, I have used a global variable to store the GtkEntry's. If you're using Glade, you can easily use $glade->get_widget(entry_name) to retrieve the pointer to the GtkEntry. If you're using OOP or classes, you can neatly encapsulate this as one of the members within the class.
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 37 38 39 40 41 42 43 44
| <?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(" Grab focus on GtkEntry in a GtkNotebook page\n". "Part 1 - whole text in GtkEntry is selected on focus"); $title->modify_font(new PangoFontDescription("Times New Roman Italic 10")); $title->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#0000ff")); $title->set_size_request(-1, 40); $vbox->pack_start($title, 0, 0); $vbox->pack_start(new GtkLabel(), 0, 0);
// setup notebook
$notebook = new GtkNotebook(); // note 1
$vbox->pack_start($notebook);
// add a vbox into each of the notebook page
for ($i=1; $i<=3; ++$i) { // add a vbox to each page
$page_vbox[$i] = new GtkVBox(); $tab_label = "Tab $i"; add_new_tab($notebook, $page_vbox[$i], $tab_label); // note 2
$hbox = new GtkHBox(); $page_vbox[$i]->pack_start($hbox, 0);
// add the first alignment containing a label
$alignment1 = new GtkAlignment(0, 0.5, 0, 0); // note 3
$alignment1->add(new GtkLabel("Label $i: ")); $hbox->pack_start($alignment1, 0);
// add the second alignment containing a GtkEntry
$alignment2 = new GtkAlignment(0, 0.5, 0, 0); // note 4
$entry[$tab_label] = new GtkEntry(); // note 5
$alignment2->add($entry[$tab_label]); $entry[$tab_label]->set_text("this is entry #$i"); $hbox->pack_start($alignment2, 0); }
$window->show_all(); Gtk::main();
|
- 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 The code above is based on How to know which tab of GtkNotebook is being clicked on?
What's new here:
- Create a new notebook.
- Create 3 tabs and stuff a vbox into each page.
- This is the first alignment that will hold the entry label.
- This is the second alignment that will hold the entry.
- This is the GtkEntry that will be focused on. Note how we store this in an associative array with the name of the tab as key.
- Use has clicked a new tab. Grab focus on the GtkEntry!
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. |
Latest Blog Articles
|
Monday, 05 October 2009 This module makes use of the Google Weather API to display the current temperature, weather condition and a four-day weather forecast, as you can see on the left of the page.
This is the first, and currently the only weather module with the following features:
- Uses the Google Weather API that provides 4-day weather forecast with images.
- Allows user to interactively enter zip codes (for US, UK and Canada) and city names.
- Displays the weather information in many different languages, as provided by Google.
- Allows you to display two or more weather modules in the same page.
- Supports both Joomla 1.0 and Joomla 1.5!
- You can turn on or off the input field.
- You can specify the default unit for the temperature (in °C or °F)
- You can switch between °C or °F interactively with no reloading of pages.
Download: Google Weather Module - AJAX version v1.5.
|
|
|
Friday, 02 October 2009 Added new parameter "hide_direction_text=1" - allows you to hide the text description on the right of the map.
Download here: googleDirections plugin v1.58
Demo: Show map directions with maps only (and text description hidden) |
|
|
Wednesday, 09 September 2009 You can now download the latest version of Glade 3 (v3.6.7) windows binary from glade.gnome.org.
Thanks to Roeland from Belgium who informed me about this.
Details here: How to install glade3 for PHP GTK2 on windows?
|
|
|
Tuesday, 08 September 2009 If you're using the googleMaps plugin, by default, the google search bar is displayed in the lower left hand corner.
To hide this google search bar, please refer to the following article: googleMaps with search bar hidden
By default, the Overview Map Control is also displayed in the lower right hand corner.
To hide this Overview Map Control, please refer to the following article: googleMaps with Overview Map Control hidden
To hide both the google search bar and the Overview Map Control, please refer to the following article: googleMaps with search bar and Overview Map Control hidden
|
|
|
Thursday, 03 September 2009 Have just added Joomla FAQs
http://www.kksou.com/php-gtk2/Joomla-FAQs/
Here you will find a list of Frequently Asked Questions (FAQs), Troubleshooting guides, and Tips & Techniques for the Joomla plugins, modules and components written by me.
Many of thees are contributed by users. Thanks to you all!
I'm starting with the DirectPHP plugin:
DirectPHP - FAQs, Troubleshoot and Tips & Techniques
If you know some tips and tricks, share them with the rest too!
|
|
|
Tuesday, 01 September 2009 Added support for retrieving google currency data using file_get_contents() or fread(). So for those people with no cURL library, you can now use the module using file_get_contents() or fread().
Download here: http://www.kksou.com/php-gtk2/Joomla-Gadgets/Google-Currency-Converter-AJAX-version.php
|
|
|
Tuesday, 01 September 2009 This is in response to Alamshahi's post titled "uncorrect results : missed digits".
The error occurred when Yahoo returns a conversion rate greater than 1,000. The original program was "confused" because of the ',' in 1,000. Have fixed the bug in this version.
In this new release, I've also added support for retrieving yahoo currency data using file_get_contents() or fread(). So for those people with no cURL library, you can now use the module using file_get_contents() or fread().
Download: http://www.kksou.com/php-gtk2/Joomla-Gadgets/Yahoo-Currency-Converter-AJAX-version.php |
|
|
Monday, 31 August 2009 This is in response to Redback's request to have time offset in half hours e.g. South Australian time is +9.30 GMT.
Download here: Yahoo Stock Quote (AJAX module version) v1.5.8 |
|
|
Saturday, 01 August 2009 This module allows you to display your twitter news in a module. The tweets are displayed using the Pausing up-down Scroller plugin.
This module is contributed by Claudio Tortorelli of Italy.
Download: Twitter Module v1.5. |
|
<< Start < Prev 1 Next > End >>
| | Results 1 - 9 of 9 |
|