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 modify_bg/set-the-background-color-of-GtkLabel.php">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.0   (from 1 user)
  1. Tiger-222
    July 10, 2008 9:28pm

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-2008. kksou.com. All Rights Reserved