PHP-GTK2 Newsletter

PHP-GTK2 Tips & Techniques
FREE Newsletter
by kksou



Sample Code 9: How to put a border around GtkLabel?
Written by kksou   
Wednesday, 13 September 2006
Problem

You want to achieve the following:

How to put a border around GtkLabel?


Solution
  • Create a GtkFrame
  • Place the label in the frame
  • Set the background color of the frame with modify_bg which will become the color of the border

Sample Code
1   
2   
3   
4   
5   
6   
7   
8   
9   
10   
11   
12   
13   
14   
15   
16   
17   
<?php
$window = &new GtkWindow();
$window->connect_simple('destroy', array( 'Gtk', 'main_quit'));
$window->set_size_request(400,200);

// create a vbox to hold multiple labels
$vbox = new GtkVBox();

$frame = new GtkFrame();
$frame->modify_bg(Gtk::STATE_NORMAL, GdkColor::parse('#0000ff')); // note 1

// create the title label and stuff it in the eventbox
$title = new GtkLabel('This is the title');
$title->set_size_request(100,48);
$frame->add($title);
$vbox->pack_start($frame, 0, 0); // note 2

  • 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

You can add a border to GtkLabel with GtkFrame.

Note 1: this sets the color of the border. Note the use of modify_bg and not modify_fg.

Note 2: this make sure that php-gtk doesn't change the size of title.

Note 3: this makes the body text stretechable, that is, it will take on whatever space remains below the title.

You may want to compare this with setting background color of GtkLabel. The concept is exactly the same, except a border uses GtkFrame, and setting background color uses eventbox.

 

User reviews   Average user ratings:    3.5   (from 2 users)
  1. Tiger-222
    July 10, 2008 8:28pm

  2. Roeland
    August 27, 2009 2:47am

Note: You have to be a registered member to leave a comment. Free registration here.

 
< Prev   Next >

Blog - Forum - Privacy Policy - Contact Us
Copyright © 2006-2009. kksou.com. All Rights Reserved